From ebaba196d8d3c10dcbaa563e19bd4fae06795127 Mon Sep 17 00:00:00 2001 From: nullgate Date: Sat, 30 May 2026 11:41:52 +0800 Subject: [PATCH 1/3] ds4c: add swa_shard save/load for partial raw-SWA restore --- ds4.c | 285 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ds4.h | 15 ++++ 2 files changed, 300 insertions(+) diff --git a/ds4.c b/ds4.c index b448c147b..bc8b938ba 100644 --- a/ds4.c +++ b/ds4.c @@ -6689,6 +6689,13 @@ typedef struct { uint32_t head_dim; } ds4_kv_cache; +uint32_t ds4_tail_swa_rows(uint32_t ctx_size) { + uint32_t rows = DS4_N_SWA; + if (rows > ctx_size) rows = ctx_size; + if (rows == 0) rows = 1; + return rows; +} + static uint32_t ds4_default_raw_cap(uint32_t ctx_size) { uint32_t raw_cap = DS4_N_SWA; if (raw_cap > ctx_size) raw_cap = ctx_size; @@ -18223,6 +18230,284 @@ void ds4_session_snapshot_free(ds4_session_snapshot *snap) { memset(snap, 0, sizeof(*snap)); } +void ds4_session_swa_shard_free(ds4_session_swa_shard *shard) { + if (!shard) return; + free(shard->ptr); + memset(shard, 0, sizeof(*shard)); +} + +/* ========================================================================= + * SWA shard — partial raw-SWA KV data. It can be restored only onto a + * compatible trunk and is not a standalone session snapshot. + * ========================================================================= */ + +static uint64_t session_swa_payload_live_tensor_bytes(const ds4_gpu_graph *g, uint32_t checkpoint_len) { + uint64_t bytes = 0; + const uint32_t raw_live = session_raw_live_rows(g, checkpoint_len); + for (uint32_t il = 0; il < DS4_N_LAYER; il++) { + bytes += (uint64_t)raw_live * DS4_N_HEAD_DIM * sizeof(float); + } + return bytes; +} + +static uint64_t ds4_session_swa_shard_payload_bytes_at(ds4_session *s, uint32_t checkpoint_len) { + if (!s || !s->checkpoint_valid) return 0; + if (ds4_session_is_cpu(s)) return 0; /* SWA shard not supported for CPU path */ + const ds4_gpu_graph *g = &s->graph; + uint64_t bytes = (uint64_t)DS4_SESSION_PAYLOAD_U32_FIELDS * sizeof(uint32_t); + bytes += (uint64_t)checkpoint_len * sizeof(int); /* token IDs */ + bytes += (uint64_t)DS4_N_VOCAB * sizeof(float); /* logits */ + bytes += (uint64_t)DS4_N_LAYER * sizeof(uint32_t); /* n_comp frontier */ + bytes += (uint64_t)DS4_N_LAYER * sizeof(uint32_t); /* n_index_comp frontier */ + bytes += session_swa_payload_live_tensor_bytes(g, checkpoint_len); + return bytes; +} + +uint64_t ds4_session_swa_shard_payload_bytes(ds4_session *s) { + if (!s || !s->checkpoint_valid) return 0; + return ds4_session_swa_shard_payload_bytes_at(s, (uint32_t)s->checkpoint.len); +} + +int ds4_session_save_swa_shard_at(ds4_session *s, int point, ds4_session_swa_shard *shard, char *err, size_t errlen) { + if (!s || !shard) { + payload_set_err(err, errlen, "invalid swa shard save"); + return 1; + } + if (!s->checkpoint_valid || point <= 0 || point > s->checkpoint.len) { + payload_set_err(err, errlen, "invalid swa shard point"); + return 1; + } + if (ds4_session_is_cpu(s)) { + payload_set_err(err, errlen, "SWA shard not supported on CPU backend"); + return 1; + } +#ifndef DS4_NO_GPU + if (ds4_gpu_synchronize() == 0) { + payload_set_err(err, errlen, "failed to synchronize accelerator before swa shard"); + return 1; + } + ds4_gpu_graph *g = &s->graph; + const uint32_t checkpoint_len = (uint32_t)point; + const uint32_t raw_live = session_raw_live_rows(g, checkpoint_len); + const uint32_t raw_first = checkpoint_len - raw_live; + if ((uint32_t)s->checkpoint.len - raw_first > g->raw_cap) { + payload_set_err(err, errlen, "swa shard point is outside live raw cache window"); + return 1; + } + + uint32_t header[DS4_SESSION_PAYLOAD_U32_FIELDS] = { + DS4_SESSION_PAYLOAD_MAGIC, + DS4_SESSION_PAYLOAD_VERSION, + (uint32_t)s->ctx_size, + s->prefill_cap, + g->raw_cap, + g->raw_window, + g->comp_cap, + checkpoint_len, + DS4_N_LAYER, + DS4_N_HEAD_DIM, + DS4_N_INDEXER_HEAD_DIM, + DS4_N_VOCAB, + raw_live, + }; + + const uint64_t bytes = ds4_session_swa_shard_payload_bytes_at(s, checkpoint_len); + if (shard->cap < bytes) { + uint8_t *p = realloc(shard->ptr, (size_t)bytes); + if (!p) { + payload_set_err(err, errlen, "out of memory allocating swa shard"); + return 1; + } + shard->ptr = p; + shard->cap = bytes; + } + + FILE *fp = fmemopen(shard->ptr, (size_t)bytes, "wb"); + if (!fp) { + payload_set_err(err, errlen, "failed to open memory stream for swa shard"); + return 1; + } + int rc = 0; + for (uint32_t i = 0; rc == 0 && i < DS4_SESSION_PAYLOAD_U32_FIELDS; i++) + rc = payload_write_u32(fp, header[i], err, errlen); + for (uint32_t i = 0; rc == 0 && i < checkpoint_len; i++) + rc = payload_write_u32(fp, (uint32_t)s->checkpoint.v[i], err, errlen); + if (rc == 0) + rc = payload_write_bytes(fp, s->logits, (uint64_t)DS4_N_VOCAB * sizeof(float), err, errlen); + for (uint32_t il = 0; rc == 0 && il < DS4_N_LAYER; il++) { + const uint32_t ratio = ds4_layer_compress_ratio(il); + const uint32_t n_comp = ratio == 0 ? 0 : checkpoint_len / ratio; + rc = payload_write_u32(fp, n_comp, err, errlen); + } + for (uint32_t il = 0; rc == 0 && il < DS4_N_LAYER; il++) { + const uint32_t ratio = ds4_layer_compress_ratio(il); + const uint32_t n_index_comp = ratio == 4 ? checkpoint_len / ratio : 0; + rc = payload_write_u32(fp, n_index_comp, err, errlen); + } + + uint8_t *buf = NULL; + if (rc == 0) buf = xmalloc(DS4_SESSION_IO_CHUNK); + for (uint32_t il = 0; rc == 0 && il < DS4_N_LAYER; il++) { + for (uint32_t r = 0; rc == 0 && r < raw_live; r++) { + const uint32_t pos = raw_first + r; + const uint32_t phys = pos % g->raw_cap; + rc = payload_write_tensor_span(fp, + g->layer_raw_cache[il], + (uint64_t)phys * DS4_N_HEAD_DIM * sizeof(float), + (uint64_t)DS4_N_HEAD_DIM * sizeof(float), + buf, DS4_SESSION_IO_CHUNK, err, errlen); + } + } + free(buf); + if (fclose(fp) != 0 && rc == 0) { + payload_set_err(err, errlen, "failed to finalize swa shard"); + return 1; + } + if (rc != 0) return 1; + shard->len = bytes; + return 0; +#else + payload_set_err(err, errlen, "GPU support not compiled in"); + return 1; +#endif +} + +int ds4_session_save_swa_shard(ds4_session *s, ds4_session_swa_shard *shard, char *err, size_t errlen) { + if (!s || !s->checkpoint_valid) { + payload_set_err(err, errlen, "invalid swa shard save"); + return 1; + } + return ds4_session_save_swa_shard_at(s, s->checkpoint.len, shard, err, errlen); +} + +int ds4_session_load_swa_shard(ds4_session *s, const ds4_session_swa_shard *shard, char *err, size_t errlen) { + if (!s || !shard || !shard->ptr || shard->len == 0) { + payload_set_err(err, errlen, "invalid swa shard load"); + return 1; + } + if (ds4_session_is_cpu(s)) { + payload_set_err(err, errlen, "SWA shard not supported on CPU backend"); + return 1; + } +#ifndef DS4_NO_GPU + if (shard->len > (uint64_t)SIZE_MAX) { + payload_set_err(err, errlen, "swa shard is too large for this platform"); + return 1; + } + FILE *fp = fmemopen((void *)shard->ptr, (size_t)shard->len, "rb"); + if (!fp) { + payload_set_err(err, errlen, "failed to open memory stream for swa shard restore"); + return 1; + } + + uint64_t remaining = shard->len; + uint32_t h[DS4_SESSION_PAYLOAD_U32_FIELDS]; + int rc = 0; + for (uint32_t i = 0; rc == 0 && i < DS4_SESSION_PAYLOAD_U32_FIELDS; i++) + rc = payload_read_u32(fp, &h[i], &remaining, err, errlen); + if (rc != 0) { fclose(fp); return 1; } + if (h[0] != DS4_SESSION_PAYLOAD_MAGIC || h[1] != DS4_SESSION_PAYLOAD_VERSION) { + fclose(fp); + payload_set_err(err, errlen, "unsupported swa shard version"); + return 1; + } + const uint32_t saved_tokens = h[7]; + const uint32_t saved_raw_window = h[5]; + const uint32_t saved_raw_cap = h[4]; + const uint32_t saved_raw_live = h[12]; + if (h[8] != DS4_N_LAYER || h[9] != DS4_N_HEAD_DIM || + h[10] != DS4_N_INDEXER_HEAD_DIM || h[11] != DS4_N_VOCAB) + { + fclose(fp); + payload_set_err(err, errlen, "swa shard was written for a different DS4 layout"); + return 1; + } + + ds4_gpu_graph *g = &s->graph; + if (saved_raw_window != g->raw_window) { + fclose(fp); + payload_set_err(err, errlen, "swa shard graph chunk layout does not match current runtime"); + return 1; + } + const uint32_t expected_raw_live = saved_tokens < saved_raw_window ? saved_tokens : saved_raw_window; + if (saved_raw_cap == 0 || saved_raw_live != expected_raw_live || saved_raw_live > g->raw_cap) { + fclose(fp); + payload_set_err(err, errlen, "swa shard raw ring layout does not match"); + return 1; + } + + token_vec new_checkpoint = {0}; + for (uint32_t i = 0; rc == 0 && i < saved_tokens; i++) { + uint32_t tok = 0; + rc = payload_read_u32(fp, &tok, &remaining, err, errlen); + if (rc == 0) token_vec_push(&new_checkpoint, (int)tok); + } + if (rc == 0) + rc = payload_read_bytes(fp, s->logits, (uint64_t)DS4_N_VOCAB * sizeof(float), &remaining, err, errlen); + + uint32_t n_comp[DS4_MAX_LAYER]; + uint32_t n_index_comp[DS4_MAX_LAYER]; + for (uint32_t il = 0; rc == 0 && il < DS4_N_LAYER; il++) { + rc = payload_read_u32(fp, &n_comp[il], &remaining, err, errlen); + if (rc == 0 && n_comp[il] > g->layer_comp_cap[il]) { + rc = 1; + payload_set_err(err, errlen, "swa shard has invalid compressed row count"); + } + } + for (uint32_t il = 0; rc == 0 && il < DS4_N_LAYER; il++) { + rc = payload_read_u32(fp, &n_index_comp[il], &remaining, err, errlen); + if (rc == 0 && n_index_comp[il] > g->layer_comp_cap[il]) { + rc = 1; + payload_set_err(err, errlen, "swa shard has invalid indexer row count"); + } + } + + if (rc == 0 && ds4_gpu_synchronize() == 0) { + token_vec_free(&new_checkpoint); + fclose(fp); + payload_set_err(err, errlen, "failed to synchronize accelerator before swa shard restore"); + return 1; + } + + s->checkpoint_valid = false; + s->mtp_draft_valid = false; + g->mtp_n_raw = 0; + + uint8_t *buf = NULL; + if (rc == 0) buf = xmalloc(DS4_SESSION_IO_CHUNK); + for (uint32_t il = 0; rc == 0 && il < DS4_N_LAYER; il++) { + const uint32_t raw_first = saved_tokens - saved_raw_live; + for (uint32_t r = 0; rc == 0 && r < saved_raw_live; r++) { + const uint32_t pos = raw_first + r; + const uint32_t phys = pos % g->raw_cap; + rc = payload_read_tensor_span(fp, + g->layer_raw_cache[il], + (uint64_t)phys * DS4_N_HEAD_DIM * sizeof(float), + (uint64_t)DS4_N_HEAD_DIM * sizeof(float), + buf, DS4_SESSION_IO_CHUNK, &remaining, err, errlen); + } + g->layer_n_comp[il] = n_comp[il]; + g->layer_n_index_comp[il] = n_index_comp[il]; + } + free(buf); + + if (rc != 0) { + token_vec_free(&new_checkpoint); + fclose(fp); + return 1; + } + + token_vec_free(&s->checkpoint); + s->checkpoint = new_checkpoint; + s->checkpoint_valid = true; + fclose(fp); + return 0; +#else + payload_set_err(err, errlen, "GPU support not compiled in"); + return 1; +#endif +} + void ds4_engine_dump_tokens(ds4_engine *e, const ds4_tokens *tokens) { dump_tokens(&e->vocab, tokens); } diff --git a/ds4.h b/ds4.h index 7b7233c36..66e5642b2 100644 --- a/ds4.h +++ b/ds4.h @@ -131,6 +131,12 @@ typedef struct { uint64_t bytes; } ds4_session_payload_file; +typedef struct { + uint8_t *ptr; + uint64_t len; + uint64_t cap; +} ds4_session_swa_shard; + int ds4_engine_open(ds4_engine **out, const ds4_engine_options *opt); void ds4_engine_close(ds4_engine *e); void ds4_engine_summary(ds4_engine *e); @@ -231,6 +237,7 @@ ds4_session_rewrite_result ds4_session_rewrite_from_common( ds4_session *s, const ds4_tokens *prompt, int common, char *err, size_t errlen); int ds4_session_common_prefix(ds4_session *s, const ds4_tokens *prompt); +uint32_t ds4_tail_swa_rows(uint32_t ctx_size); int ds4_session_argmax(ds4_session *s); int ds4_session_argmax_excluding(ds4_session *s, int excluded_id); int ds4_sample_logits(const float *logits, int n_vocab, float temperature, @@ -297,6 +304,14 @@ int ds4_session_load_payload(ds4_session *s, FILE *fp, uint64_t payload_bytes, c int ds4_session_save_snapshot(ds4_session *s, ds4_session_snapshot *snap, char *err, size_t errlen); int ds4_session_load_snapshot(ds4_session *s, const ds4_session_snapshot *snap, char *err, size_t errlen); void ds4_session_snapshot_free(ds4_session_snapshot *snap); +void ds4_session_swa_shard_free(ds4_session_swa_shard *shard); + +/* SWA shard: partial raw-SWA data that can be restored only onto a + * compatible trunk. This is not a standalone session snapshot. */ +uint64_t ds4_session_swa_shard_payload_bytes(ds4_session *s); +int ds4_session_save_swa_shard(ds4_session *s, ds4_session_swa_shard *shard, char *err, size_t errlen); +int ds4_session_save_swa_shard_at(ds4_session *s, int point, ds4_session_swa_shard *shard, char *err, size_t errlen); +int ds4_session_load_swa_shard(ds4_session *s, const ds4_session_swa_shard *shard, char *err, size_t errlen); uint64_t ds4_session_layer_payload_bytes(ds4_session *s, uint32_t layer_start, From d8ab592430085cabda7a4eacf99ab0ad5aaf528a Mon Sep 17 00:00:00 2001 From: nullgate Date: Sat, 30 May 2026 11:41:52 +0800 Subject: [PATCH 2/3] ds4c: add in-memory point checkpoints and rolling tail-cache --- ds4_server.c | 1283 +++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 1270 insertions(+), 13 deletions(-) diff --git a/ds4_server.c b/ds4_server.c index 2cd33b18a..286485cf4 100644 --- a/ds4_server.c +++ b/ds4_server.c @@ -37,6 +37,7 @@ #include #include #include +#include static volatile sig_atomic_t g_stop_requested = 0; static volatile sig_atomic_t g_listen_fd = -1; @@ -603,6 +604,7 @@ typedef struct { ds4_think_mode think_mode; bool has_tools; bool prompt_preserves_reasoning; + bool skip_decode_cache_updates; /* X-C0NR-MOTIF: on */ /* For /v1/responses: emit reasoning_summary_* events / fields only when the * client opted in via reasoning.summary. Other APIs leave this false; the * field is ignored on those code paths. */ @@ -4654,10 +4656,10 @@ static bool try_repair_dsml(const char *s, size_t len, buf *out) { size_t d; if ((d = strlen(ts)) && !strncmp(p, ts, d)) { tos++; p += d; } else if ((d = strlen(te)) && !strncmp(p, te, d)) { toe++; p += d; } - else if ((d = strlen(is)) && !strncmp(p, is, d)) { ios++; p += d; } - else if ((d = strlen(ie)) && !strncmp(p, ie, d)) { ioe++; p += d; } else if ((d = strlen(ps)) && !strncmp(p, ps, d)) { pos++; p += d; } else if ((d = strlen(pe)) && !strncmp(p, pe, d)) { poe++; p += d; } + else if ((d = strlen(is)) && !strncmp(p, is, d)) { ios++; p += d; } + else if ((d = strlen(ie)) && !strncmp(p, ie, d)) { ioe++; p += d; } else p++; } if (tos == toe && ios == ioe && pos == poe) return false; @@ -7592,6 +7594,19 @@ static double now_sec(void) { return (double)ts.tv_sec + (double)ts.tv_nsec * 1e-9; } +/* Get current physical memory footprint in MiB (equivalent to Activity + * Monitor's "Memory" column on macOS). Uses phys_footprint which includes + * Metal GPU buffer allocations, mmap-backed pages, and wired memory — + * unlike resident_size which excludes clean file-backed pages. */ +static double get_rss_mib(void) { + task_vm_info_data_t info; + mach_msg_type_number_t count = TASK_VM_INFO_COUNT; + if (task_info(mach_task_self(), TASK_VM_INFO, + (task_info_t)&info, &count) != KERN_SUCCESS) + return 0.0; + return (double)info.phys_footprint / (1024.0 * 1024.0); +} + static void server_log(ds4_log_type type, const char *fmt, ...) { time_t now = time(NULL); struct tm tm; @@ -7693,6 +7708,50 @@ typedef struct { size_t visible_len; } visible_live_state; +#define POINT_CHECKPOINT_ALIGNMENT_TOKENS 128 +#define POINT_CHECKPOINT_MIN_INTERVAL_TOKENS 2048 +#ifndef POINT_CHECKPOINT_INTERVAL_TOKENS +#define POINT_CHECKPOINT_INTERVAL_TOKENS 4096 +#endif +#define POINT_CHECKPOINT_DEFAULT_SPACE_MB 8192 + +#define PREFIX_LOOKBACK_MAX_TOKENS 2048 +#define PREFIX_LOOKBACK_DEFAULT_MIN_REWIND 128 +#define PREFIX_LOOKBACK_RING_SLOTS 18 + +typedef struct { + int point; /* absolute token position */ + int offset; + bool valid; /* semantic validity; buffers may remain allocated */ + char token_prefix_hash[41]; /* SHA1(token_ids[0..point)) at capture time */ + char verify_hash[41]; /* SHA1(live[0..point)) — rebuilt after each invalidation */ + ds4_tokens tokens; /* exact token IDs at capture time, for prefix comparison */ + ds4_session_swa_shard swa_shard; /* partial raw-SWA data for this point */ + time_t created_at; + int hits; +} point_checkpoint_entry; + +typedef struct { + int lookback_tokens; + int min_rewind_tokens; + int tail_rows; + int hits; + int count; + int next; + int last_store_point; + uint64_t total_bytes; + point_checkpoint_entry entries[PREFIX_LOOKBACK_RING_SLOTS]; +} prefix_lookback_cache; + +typedef struct { + int interval; /* N = capture at every N-token boundary */ + uint64_t max_bytes; /* memory budget in bytes; 0 = unlimited (one entry) */ + point_checkpoint_entry *entries; + int count; + int capacity; + uint64_t total_bytes; +} point_checkpoint_cache; + static bool id_list_contains(const stop_list *ids, const char *id); static void id_list_push_unique(stop_list *ids, const char *id); @@ -7706,6 +7765,8 @@ struct server { live_tool_state anthropic_live; visible_live_state thinking_live; bool disable_exact_dsml_tool_replay; + bool cache_verbose; + bool point_checkpoint_replay_boundary_token; bool enable_cors; pthread_mutex_t tool_mu; pthread_mutex_t mu; @@ -7719,6 +7780,8 @@ struct server { FILE *trace; pthread_mutex_t trace_mu; uint64_t trace_seq; + prefix_lookback_cache prefix_lookback; + point_checkpoint_cache point_checkpoint; }; /* Jobs are stack-owned by the client thread. The worker signals completion @@ -7733,6 +7796,98 @@ struct job { job *next; }; +static void checkpoint_time_str(time_t t, char *buf, size_t len) { + if (!buf || len == 0) return; + if (t <= 0) { + snprintf(buf, len, "-"); + return; + } + struct tm tm; + localtime_r(&t, &tm); + strftime(buf, len, "%Y-%m-%dT%H:%M:%S%z", &tm); +} + +static long checkpoint_age_seconds(time_t t) { + time_t now = time(NULL); + return t > 0 && now >= t ? (long)(now - t) : 0; +} + +static bool is_point_checkpoint_boundary(const server *s, int point) { + return s && s->point_checkpoint.interval > 0 && point > 0 && + point % s->point_checkpoint.interval == 0; +} + +static int prefix_lookback_effective_tokens(const prefix_lookback_cache *c) { + if (!c || c->lookback_tokens <= 0) return 0; + return c->lookback_tokens < PREFIX_LOOKBACK_MAX_TOKENS ? + c->lookback_tokens : PREFIX_LOOKBACK_MAX_TOKENS; +} + +static void point_checkpoint_refresh_offsets(point_checkpoint_cache *c) { + if (!c) return; + for (int i = 0; i < c->count; i++) c->entries[i].offset = i; +} + +static int point_checkpoint_find_index(const point_checkpoint_cache *c, + int point, + const char hash[41]) { + if (!c || !hash) return -1; + for (int i = 0; i < c->count; i++) { + const point_checkpoint_entry *e = &c->entries[i]; + if (e->point == point && strncmp(e->token_prefix_hash, hash, 40) == 0) + return i; + } + return -1; +} + +static void log_active_checkpoints(server *s, const char *reason) { + if (!s || !s->cache_verbose) return; + prefix_lookback_cache *pl = &s->prefix_lookback; + point_checkpoint_cache *pc = &s->point_checkpoint; + server_log(DS4_LOG_KVCACHE, + "ds4-server: active checkpoints reason=%s prefix_lookback_tokens=%d min_rewind=%d tail_rows=%d prefix_hits=%d point=%d/%d point_bytes=%llu", + reason ? reason : "?", + pl->lookback_tokens, + pl->min_rewind_tokens, + pl->tail_rows, + pl->hits, + pc->count, + pc->capacity, + (unsigned long long)pc->total_bytes); + for (int i = 0; i < pc->count; i++) { + point_checkpoint_entry *e = &pc->entries[i]; + char ts[40]; + checkpoint_time_str(e->created_at, ts, sizeof(ts)); + server_log(DS4_LOG_KVCACHE, + "ds4-server: active point checkpoint offset=%d point=%d created_at=%s age=%lds hits=%d tokens=%d bytes=%llu hash=%.12s", + e->offset, + e->point, + ts, + checkpoint_age_seconds(e->created_at), + e->hits, + e->tokens.len, + (unsigned long long)e->swa_shard.cap, + e->token_prefix_hash); + } + for (int i = 0; i < PREFIX_LOOKBACK_RING_SLOTS; i++) { + point_checkpoint_entry *e = &pl->entries[i]; + if (!e->valid || !e->swa_shard.ptr) continue; + char ts[40]; + checkpoint_time_str(e->created_at, ts, sizeof(ts)); + server_log(DS4_LOG_KVCACHE, + "ds4-server: active tail checkpoint class=tail offset=%d point=%d point_boundary=%d created_at=%s age=%lds hits=%d tokens=%d bytes=%llu hash=%.12s", + e->offset, + e->point, + is_point_checkpoint_boundary(s, e->point) ? 1 : 0, + ts, + checkpoint_age_seconds(e->created_at), + e->hits, + e->tokens.len, + (unsigned long long)e->swa_shard.cap, + e->token_prefix_hash); + } +} + /* ========================================================================= * Tool Call Text Memory. * ========================================================================= @@ -8625,6 +8780,556 @@ static void build_prompt_from_exact_prefix_and_text_suffix( engine, exact_prefix, suffix_text, out); } +static void sha1_token_prefix_hex(const ds4_tokens *tokens, int prefix_len, char out[41]); +static void point_checkpoint_entry_free(point_checkpoint_entry *entry); +static void point_checkpoint_entry_invalidate(point_checkpoint_entry *entry); + +static void prefix_lookback_free(prefix_lookback_cache *c) { + if (!c) return; + for (int i = 0; i < PREFIX_LOOKBACK_RING_SLOTS; i++) { + point_checkpoint_entry_free(&c->entries[i]); + } + memset(c, 0, sizeof(*c)); +} + +static void point_checkpoint_rebuild_index(server *s); +static int point_checkpoint_first_token_mismatch(const point_checkpoint_entry *e, + const ds4_tokens *prompt); +static void point_checkpoint_log_token_mismatch(const char *where, + const point_checkpoint_entry *e, + const ds4_tokens *prompt); + +static void prefix_lookback_refresh_offsets(prefix_lookback_cache *c) { + if (!c) return; + for (int i = 0; i < PREFIX_LOOKBACK_RING_SLOTS; i++) c->entries[i].offset = i; +} + +static int prefix_lookback_valid_count(const prefix_lookback_cache *c) { + if (!c) return 0; + int n = 0; + for (int i = 0; i < PREFIX_LOOKBACK_RING_SLOTS; i++) { + if (c->entries[i].valid && c->entries[i].swa_shard.ptr) n++; + } + return n; +} + +static int prefix_lookback_latest_valid_point(const prefix_lookback_cache *c) { + if (!c) return 0; + int point = 0; + for (int i = 0; i < PREFIX_LOOKBACK_RING_SLOTS; i++) { + const point_checkpoint_entry *e = &c->entries[i]; + if (e->valid && e->swa_shard.ptr && e->point > point) point = e->point; + } + return point; +} + +static void prefix_lookback_refresh_state(prefix_lookback_cache *c) { + if (!c) return; + c->count = prefix_lookback_valid_count(c); + c->last_store_point = prefix_lookback_latest_valid_point(c); + prefix_lookback_refresh_offsets(c); +} + +static void prefix_lookback_reset_metadata(prefix_lookback_cache *c) { + if (!c) return; + for (int i = 0; i < PREFIX_LOOKBACK_RING_SLOTS; i++) { + point_checkpoint_entry_invalidate(&c->entries[i]); + } + prefix_lookback_refresh_state(c); +} + +static int prefix_lookback_spacing(const prefix_lookback_cache *c) { + (void)c; + return 128; +} + +static bool prefix_lookback_has_nearby_point(const prefix_lookback_cache *c, int point) { + if (!c || point <= 0) return false; + int spacing = prefix_lookback_spacing(c); + for (int i = 0; i < PREFIX_LOOKBACK_RING_SLOTS; i++) { + const point_checkpoint_entry *e = &c->entries[i]; + if (!e->valid || !e->swa_shard.ptr) continue; + int d = e->point > point ? e->point - point : point - e->point; + if (d < spacing) return true; + } + return false; +} + +static void prefix_lookback_trim_window(prefix_lookback_cache *c, int latest_point) { + if (!c || c->lookback_tokens <= 0 || latest_point <= 0) return; + int floor = latest_point - prefix_lookback_effective_tokens(c); + for (int i = 0; i < PREFIX_LOOKBACK_RING_SLOTS; i++) { + point_checkpoint_entry *e = &c->entries[i]; + if (e->valid && e->point < floor) point_checkpoint_entry_invalidate(e); + } + prefix_lookback_refresh_state(c); +} + +static int prefix_lookback_try_load(server *s, const ds4_tokens *prompt, + ds4_tokens *effective_prompt, char *err, size_t errlen) { + prefix_lookback_cache *c = s ? &s->prefix_lookback : NULL; + if (!s || !c || c->lookback_tokens <= 0 || !prompt || prompt->len <= 0) { + (void)err; (void)errlen; + return 0; + } + point_checkpoint_entry *best = NULL; + point_checkpoint_entry *nearest_mismatch = NULL; + for (int i = 0; i < PREFIX_LOOKBACK_RING_SLOTS; i++) { + point_checkpoint_entry *e = &c->entries[i]; + int mismatch_pos = point_checkpoint_first_token_mismatch(e, prompt); + const char *skip_reason = NULL; + if (!e->valid) skip_reason = "invalid"; + else if (!e->swa_shard.ptr) skip_reason = "no_swa_shard"; + else if (e->point <= 0) skip_reason = "bad_point"; + else if (e->point > (int)prompt->len) skip_reason = "point_gt_prompt"; + else if (e->point == (int)prompt->len) skip_reason = "no_suffix"; + else if (e->point % 128 != 0) skip_reason = "unaligned"; + else if (mismatch_pos < e->point) { + if (!nearest_mismatch) nearest_mismatch = e; + continue; + } + if (skip_reason) continue; + if (mismatch_pos == e->point && (!best || e->point > best->point)) best = e; + } + if (!best) { + if (nearest_mismatch) point_checkpoint_log_token_mismatch("tail-lookup", nearest_mismatch, prompt); + return 0; + } + int checkpoint_point = best->point; + int restore_point = checkpoint_point; + server_log(DS4_LOG_KVCACHE, + "ds4-server: tail checkpoint hit class=tail offset=%d point=%d prompt=%d suffix=%d point_boundary=%d hash=%s bytes=%llu", + best->offset, + best->point, + prompt->len, + prompt->len - best->point, + is_point_checkpoint_boundary(s, best->point) ? 1 : 0, + best->token_prefix_hash, + (unsigned long long)best->swa_shard.cap); + if (ds4_session_load_swa_shard(s->session, &best->swa_shard, err, errlen) != 0) + return 0; + const ds4_tokens *loaded = ds4_session_tokens(s->session); + if (!loaded || loaded->len < checkpoint_point) { + snprintf(err, errlen, "tail checkpoint load token mismatch"); + ds4_session_invalidate(s->session); + return 0; + } + for (int i = 0; i < checkpoint_point; i++) { + if (i >= (int)prompt->len || loaded->v[i] != best->tokens.v[i] || loaded->v[i] != prompt->v[i]) { + snprintf(err, errlen, "tail checkpoint token-id mismatch at %d", i); + ds4_session_invalidate(s->session); + return 0; + } + } + ds4_tokens_copy(effective_prompt, loaded); + for (int i = restore_point; i < (int)prompt->len; i++) + ds4_tokens_push(effective_prompt, prompt->v[i]); + best->hits++; + c->hits++; + prefix_lookback_reset_metadata(c); + return restore_point; +} + +static bool prefix_lookback_store_at(server *s, const ds4_tokens *tokens, int position, const char *ctx) { + if (!s || !tokens || s->prefix_lookback.lookback_tokens <= 0) return false; + if (position <= 0 || position % 128 != 0) return false; + if (position > tokens->len) return false; + prefix_lookback_cache *c = &s->prefix_lookback; + char live_hash[41] = {0}; + sha1_token_prefix_hex(tokens, position, live_hash); + for (int i = 0; i < PREFIX_LOOKBACK_RING_SLOTS; i++) { + point_checkpoint_entry *e = &c->entries[i]; + if (e->valid && e->point == position && + strncmp(e->token_prefix_hash, live_hash, 40) == 0) + return true; + } + int slot = c->next % PREFIX_LOOKBACK_RING_SLOTS; + c->next = (slot + 1) % PREFIX_LOOKBACK_RING_SLOTS; + point_checkpoint_entry *entry = &c->entries[slot]; + uint64_t old_cap = entry->swa_shard.cap; + char err[160] = {0}; + if (ds4_session_save_swa_shard_at(s->session, position, &entry->swa_shard, err, sizeof(err)) != 0) { + server_log(DS4_LOG_WARNING, + "ds4-server: tail checkpoint swa capture failed at %d: %s", + position, err); + return false; + } + tokens_copy_prefix(&entry->tokens, tokens, position); + entry->point = position; + entry->valid = true; + memcpy(entry->token_prefix_hash, live_hash, sizeof(entry->token_prefix_hash)); + memcpy(entry->verify_hash, live_hash, sizeof(entry->verify_hash)); + entry->created_at = time(NULL); + entry->hits = 0; + if (entry->swa_shard.cap > old_cap) c->total_bytes += entry->swa_shard.cap - old_cap; + else if (old_cap > entry->swa_shard.cap && c->total_bytes >= old_cap - entry->swa_shard.cap) + c->total_bytes -= old_cap - entry->swa_shard.cap; + c->last_store_point = position; + prefix_lookback_trim_window(c, position); + server_log(DS4_LOG_KVCACHE, + "ds4-server: tail checkpoint stored class=tail offset=%d point=%d point_boundary=%d hash=%s bytes=%llu total=%llu ctx=%s", + entry->offset, entry->point, + is_point_checkpoint_boundary(s, entry->point) ? 1 : 0, + entry->token_prefix_hash, + (unsigned long long)entry->swa_shard.cap, + (unsigned long long)c->total_bytes, + ctx ? ctx : "-"); + log_active_checkpoints(s, "tail-store"); + return true; +} + +static void prefix_lookback_store_window(server *s, const ds4_tokens *tokens, const char *ctx) { + if (!s || !tokens || s->prefix_lookback.lookback_tokens <= 0) return; + prefix_lookback_cache *c = &s->prefix_lookback; + int end = tokens->len - (tokens->len % 128); + if (end <= 0) return; + int spacing = prefix_lookback_spacing(c); + int floor = end - prefix_lookback_effective_tokens(c); + int start = c->last_store_point > 0 ? c->last_store_point + spacing : floor; + if (start < floor) start = floor; + if (start < 128) start = 128; + start += (128 - (start % 128)) % 128; + for (int point = start; point <= end; point += spacing) { + if (prefix_lookback_has_nearby_point(c, point)) continue; + prefix_lookback_store_at(s, tokens, point, ctx); + } +} + +static void prefix_lookback_maybe_store_current(server *s, const char *ctx) { + if (!s || s->prefix_lookback.lookback_tokens <= 0) return; + const ds4_tokens *tokens = ds4_session_tokens(s->session); + if (!tokens || tokens->len <= 0) return; + prefix_lookback_store_window(s, tokens, ctx); +} + +/* ========================================================================= + * Phase-4 in-memory pointwise checkpoint cache + * ========================================================================= */ + +static void sha1_token_prefix_hex(const ds4_tokens *tokens, int prefix_len, char out[41]) { + ds4_kvstore_sha1_bytes_hex(tokens->v, (size_t)prefix_len * sizeof(int), out); +} + +static void point_checkpoint_entry_free(point_checkpoint_entry *entry) { + if (!entry) return; + ds4_tokens_free(&entry->tokens); + ds4_session_swa_shard_free(&entry->swa_shard); + memset(entry, 0, sizeof(*entry)); +} + +static void point_checkpoint_entry_invalidate(point_checkpoint_entry *entry) { + if (!entry) return; + entry->valid = false; + entry->tokens.len = 0; + entry->swa_shard.len = 0; + entry->token_prefix_hash[0] = '\0'; + entry->verify_hash[0] = '\0'; + entry->created_at = 0; + entry->hits = 0; +} + +static void point_checkpoint_cache_free(point_checkpoint_cache *c) { + if (!c) return; + for (int i = 0; i < c->count; i++) point_checkpoint_entry_free(&c->entries[i]); + free(c->entries); + memset(c, 0, sizeof(*c)); +} + +static void point_checkpoint_evict_oldest(point_checkpoint_cache *c) { + if (!c || c->count <= 0) return; + c->total_bytes -= c->entries[0].swa_shard.cap; + point_checkpoint_entry_free(&c->entries[0]); + if (c->count > 1) + memmove(c->entries, c->entries + 1, (size_t)(c->count - 1) * sizeof(point_checkpoint_entry)); + c->count--; + if (c->entries) memset(&c->entries[c->count], 0, sizeof(c->entries[c->count])); + point_checkpoint_refresh_offsets(c); +} + +static void point_checkpoint_invalidate_after(point_checkpoint_cache *c, int point) { + if (!c || c->count <= 0) return; + for (int i = 0; i < c->count; i++) + if (c->entries[i].point > point) point_checkpoint_entry_invalidate(&c->entries[i]); + point_checkpoint_refresh_offsets(c); +} + +static void point_checkpoint_rebuild_index(server *s) { + point_checkpoint_cache *c = &s->point_checkpoint; + if (!c || c->count <= 0) return; + const ds4_tokens *live = ds4_session_tokens(s->session); + if (!live || live->len <= 0) return; + for (int i = 0; i < c->count; i++) { + point_checkpoint_entry *e = &c->entries[i]; + if (!e->valid || !e->swa_shard.ptr) continue; + if (e->point > live->len) { + memset(e->verify_hash, 0, sizeof(e->verify_hash)); + continue; + } + sha1_token_prefix_hex(live, e->point, e->verify_hash); + } +} + +static bool point_checkpoint_insert(point_checkpoint_cache *c, point_checkpoint_entry *entry) { + if (!c || !entry) return false; + uint64_t cost = entry->swa_shard.cap; + int idx = 0; + while (idx < c->count && c->entries[idx].point < entry->point) idx++; + if (idx < c->count && c->entries[idx].point == entry->point) { + if (c->total_bytes >= c->entries[idx].swa_shard.cap) c->total_bytes -= c->entries[idx].swa_shard.cap; + else c->total_bytes = 0; + point_checkpoint_entry_free(&c->entries[idx]); + c->entries[idx] = *entry; + c->total_bytes += cost; + memset(entry, 0, sizeof(*entry)); + point_checkpoint_refresh_offsets(c); + return true; + } + /* Evict oldest while over budget (except keep at least one entry when max_bytes==0) */ + while (c->count > 0 && c->max_bytes > 0 && c->total_bytes + cost > c->max_bytes) + point_checkpoint_evict_oldest(c); + idx = 0; + while (idx < c->count && c->entries[idx].point < entry->point) idx++; + if (c->count >= c->capacity) { + int new_cap = c->capacity ? c->capacity * 2 : 4; + point_checkpoint_entry *new_entries = realloc(c->entries, + (size_t)new_cap * sizeof(point_checkpoint_entry)); + if (!new_entries) { point_checkpoint_entry_free(entry); return false; } + c->entries = new_entries; + c->capacity = new_cap; + } + memmove(c->entries + idx + 1, c->entries + idx, + (size_t)(c->count - idx) * sizeof(point_checkpoint_entry)); + c->entries[idx] = *entry; + c->count++; + c->total_bytes += cost; + memset(entry, 0, sizeof(*entry)); + point_checkpoint_refresh_offsets(c); + return true; +} + +static int point_checkpoint_first_token_mismatch(const point_checkpoint_entry *e, + const ds4_tokens *prompt) { + if (!e || !prompt) return 0; + int limit = e->tokens.len < prompt->len ? e->tokens.len : prompt->len; + if (limit > e->point) limit = e->point; + for (int i = 0; i < limit; i++) { + if (e->tokens.v[i] != prompt->v[i]) return i; + } + return limit; +} + +static void point_checkpoint_log_token_mismatch(const char *where, + const point_checkpoint_entry *e, + const ds4_tokens *prompt) { + if (!e || !prompt) return; + int pos = point_checkpoint_first_token_mismatch(e, prompt); + int ckpt = pos < e->tokens.len ? e->tokens.v[pos] : -1; + int incoming = pos < prompt->len ? prompt->v[pos] : -1; + server_log(DS4_LOG_KVCACHE, + "ds4-server: point checkpoint token-id mismatch %s point=%d at=%d checkpoint=%d prompt=%d prompt_len=%d", + where ? where : "?", e->point, pos, ckpt, incoming, prompt->len); +} + +static void point_checkpoint_capture_maybe(server *s, int position) { + if (!s || s->point_checkpoint.interval <= 0) return; + if (position <= 0) return; + int interval = s->point_checkpoint.interval; + if (position % interval != 0) return; + point_checkpoint_cache *c = &s->point_checkpoint; + const ds4_tokens *live = ds4_session_tokens(s->session); + if (!live || live->len < position) return; + char live_hash[41] = {0}; + sha1_token_prefix_hex(live, position, live_hash); + if (c->count > 0) { + for (int i = 0; i < c->count; i++) { + if (c->entries[i].valid && c->entries[i].point == position && + strncmp(live_hash, c->entries[i].token_prefix_hash, 40) == 0) + return; + } + } + int existing = -1; + for (int i = 0; i < c->count; i++) { + if (c->entries[i].point == position) { + existing = i; + break; + } + } + if (existing >= 0) { + point_checkpoint_entry *entry = &c->entries[existing]; + uint64_t old_cap = entry->swa_shard.cap; + char err[160] = {0}; + if (ds4_session_save_swa_shard(s->session, &entry->swa_shard, err, sizeof(err)) != 0) { + server_log(DS4_LOG_WARNING, + "ds4-server: point checkpoint swa capture failed at %d: %s", + position, err); + return; + } + tokens_copy_prefix(&entry->tokens, live, position); + entry->valid = true; + memcpy(entry->token_prefix_hash, live_hash, sizeof(entry->token_prefix_hash)); + memcpy(entry->verify_hash, live_hash, sizeof(entry->verify_hash)); + entry->created_at = time(NULL); + entry->hits = 0; + if (entry->swa_shard.cap > old_cap) c->total_bytes += entry->swa_shard.cap - old_cap; + char ts[40]; + checkpoint_time_str(entry->created_at, ts, sizeof(ts)); + server_log(DS4_LOG_KVCACHE, + "ds4-server: point checkpoint stored offset=%d point=%d created_at=%s hash=%s bytes=%llu total=%llu interval=%d reuse=1", + entry->offset, entry->point, ts, entry->token_prefix_hash, + (unsigned long long)entry->swa_shard.cap, + (unsigned long long)c->total_bytes, + c->interval); + log_active_checkpoints(s, "point-store"); + return; + } + point_checkpoint_entry entry = {0}; + entry.point = position; + char err[160] = {0}; + if (ds4_session_save_swa_shard(s->session, &entry.swa_shard, err, sizeof(err)) != 0) { + server_log(DS4_LOG_WARNING, + "ds4-server: point checkpoint swa capture failed at %d: %s", + position, err); + return; + } + tokens_copy_prefix(&entry.tokens, live, position); + entry.valid = true; + memcpy(entry.token_prefix_hash, live_hash, sizeof(entry.token_prefix_hash)); + entry.created_at = time(NULL); + entry.hits = 0; + memcpy(entry.verify_hash, live_hash, sizeof(entry.verify_hash)); + int stored_point = entry.point; + char stored_hash[41] = {0}; + memcpy(stored_hash, entry.token_prefix_hash, sizeof(stored_hash)); + time_t stored_created_at = entry.created_at; + uint64_t stored_bytes = entry.swa_shard.cap; + if (point_checkpoint_insert(c, &entry)) { + int stored_offset = point_checkpoint_find_index(c, stored_point, stored_hash); + char ts[40]; + checkpoint_time_str(stored_created_at, ts, sizeof(ts)); + server_log(DS4_LOG_KVCACHE, + "ds4-server: point checkpoint stored offset=%d point=%d created_at=%s hash=%s bytes=%llu total=%llu interval=%d", + stored_offset, stored_point, ts, stored_hash, + (unsigned long long)stored_bytes, + (unsigned long long)c->total_bytes, + c->interval); + log_active_checkpoints(s, "point-store"); + } +} + +static int point_checkpoint_try_load(server *s, const ds4_tokens *prompt, + ds4_tokens *effective_prompt, char *err, size_t errlen) { + point_checkpoint_cache *c = &s->point_checkpoint; + if (!c || c->interval <= 0 || c->count <= 0) { + (void)err; (void)errlen; + return 0; + } + /* Point checkpoints are RAM SWA shards keyed by the incoming + * prompt's token prefix. Do not cap them by the current live LCP: a replay + * with clamped max_tokens can diverge in sampled decode while still having + * deeper prefill checkpoints from the previous full prompt. */ + { + server_log(DS4_LOG_KVCACHE, + "ds4-server: point checkpoint manifest start count=%d prompt=%d", + c->count, (int)prompt->len); + point_checkpoint_entry *best = NULL; + point_checkpoint_entry *nearest_mismatch = NULL; + for (int i = c->count - 1; i >= 0; i--) { + point_checkpoint_entry *e = &c->entries[i]; + int mismatch_pos = point_checkpoint_first_token_mismatch(e, prompt); + const char *skip_reason = NULL; + if (!e->valid) skip_reason = "invalid"; + else if (!e->swa_shard.ptr) skip_reason = "no_swa_shard"; + else if (e->point <= 0) skip_reason = "bad_point"; + else if (e->point > (int)prompt->len) skip_reason = "point_gt_prompt"; + else if (mismatch_pos < e->point) { + int ckpt = mismatch_pos < e->tokens.len ? e->tokens.v[mismatch_pos] : -1; + int prom = mismatch_pos < (int)prompt->len ? prompt->v[mismatch_pos] : -1; + server_log(DS4_LOG_KVCACHE, + "ds4-server: point checkpoint manifest scan offset=%d point=%d skip=mismatch at=%d ckpt=%d prompt=%d", + e->offset, e->point, mismatch_pos, ckpt, prom); + if (!nearest_mismatch) nearest_mismatch = e; + } + if (skip_reason) { + server_log(DS4_LOG_KVCACHE, + "ds4-server: point checkpoint manifest scan offset=%d point=%d skip=%s prompt=%d", + e->offset, e->point, skip_reason, (int)prompt->len); + continue; + } + if (mismatch_pos == e->point) { + best = e; + server_log(DS4_LOG_KVCACHE, + "ds4-server: point checkpoint manifest hit offset=%d point=%d tokens=%d bytes=%llu", + e->offset, e->point, e->tokens.len, + (unsigned long long)e->swa_shard.cap); + break; + } + } + if (!best) { + if (nearest_mismatch) + point_checkpoint_log_token_mismatch("lookup", nearest_mismatch, prompt); + server_log(DS4_LOG_WARNING, + "ds4-server: point checkpoint miss count=%d prompt=%d no_match", + c->count, (int)prompt->len); + return 0; + } + int checkpoint_point = best->point; + if (checkpoint_point <= 0) return 0; + if (ds4_session_load_swa_shard(s->session, &best->swa_shard, err, errlen) != 0) + return 0; + const ds4_tokens *loaded = ds4_session_tokens(s->session); + if (!loaded || loaded->len < checkpoint_point) { + snprintf(err, errlen, "point checkpoint load token mismatch"); + ds4_session_invalidate(s->session); + return 0; + } + for (int i = 0; i < checkpoint_point; i++) { + if (i >= (int)prompt->len || loaded->v[i] != best->tokens.v[i] || loaded->v[i] != prompt->v[i]) { + int loaded_id = loaded && i < loaded->len ? loaded->v[i] : -1; + int ckpt_id = i < best->tokens.len ? best->tokens.v[i] : -1; + int prompt_id = i < prompt->len ? prompt->v[i] : -1; + snprintf(err, errlen, + "point checkpoint token-id mismatch at %d loaded=%d checkpoint=%d prompt=%d", + i, loaded_id, ckpt_id, prompt_id); + ds4_session_invalidate(s->session); + return 0; + } + } + int restore_point = checkpoint_point; + if (s->point_checkpoint_replay_boundary_token) { + restore_point = checkpoint_point - 1; + ds4_session_rewind(s->session, restore_point); + loaded = ds4_session_tokens(s->session); + } + ds4_tokens_copy(effective_prompt, loaded); + for (int i = restore_point; i < (int)prompt->len; i++) + ds4_tokens_push(effective_prompt, prompt->v[i]); + best->hits++; + /* Higher checkpoints belong to the previous token track; warm prefill + * must regenerate them with the current prompt's hashes and token IDs. + * The optional boundary-token replay is experimental; the default path + * restores the exact checkpoint point. */ + point_checkpoint_invalidate_after(c, restore_point); + point_checkpoint_rebuild_index(s); + if (s->cache_verbose) { + char ts[40]; + checkpoint_time_str(best->created_at, ts, sizeof(ts)); + server_log(DS4_LOG_KVCACHE, + "ds4-server: point checkpoint hit checkpoint offset=%d point=%d restore=%d replay_boundary=%d created_at=%s age=%lds hits=%d tokens=%d bytes=%llu hash=%.12s", + best->offset, + best->point, + restore_point, + s->point_checkpoint_replay_boundary_token ? 1 : 0, + ts, + checkpoint_age_seconds(best->created_at), + best->hits, + best->tokens.len, + (unsigned long long)best->swa_shard.cap, + best->token_prefix_hash); + } + return restore_point; + } +} + static int kv_cache_store_len(const kv_disk_cache *kc, int tokens) { return ds4_kvstore_store_len(kc, tokens); } @@ -8829,6 +9534,24 @@ static int kv_cache_try_load(server *s, const request *req, req && req->api == API_RESPONSES); } + + + + + + + + + + + + + + + + + + static int live_text_prefix_prompt(server *s, const request *req, ds4_tokens *effective_prompt) { if (!s || !req || !req->prompt_text || !effective_prompt) return 0; @@ -9205,6 +9928,8 @@ static uint64_t trace_begin( (unsigned long long)j->req.seed); fprintf(s->trace, "stream_include_usage: %d\n", j->req.stream_include_usage ? 1 : 0); + fprintf(s->trace, "skip_decode_cache_updates: %d\n", + j->req.skip_decode_cache_updates ? 1 : 0); trace_write_cache_diag(s, cache_diag, &j->req.tool_replay, cached, cache_source, disk_cached, disk_path); if (j->req.raw_body) { @@ -9304,6 +10029,7 @@ typedef struct { const char *phase; bool has_tools; bool responses_protocol; + bool skip_decode_cache_updates; double t0; double last_t; int last_current; @@ -9344,6 +10070,7 @@ static void log_flags(char *buf, size_t len, bool responses_protocol, } static void log_decode_progress(req_kind kind, int prompt_tokens, int completion, + int max_tokens, bool responses_protocol, bool tools, bool thinking, bool dsml_start, bool dsml_end, @@ -9355,6 +10082,7 @@ static void log_decode_progress(req_kind kind, int prompt_tokens, int completion const int interval_tokens = completion - *last_completion; const double chunk_tps = interval_s > 0.0 ? (double)interval_tokens / interval_s : 0.0; const double avg_tps = elapsed > 0.0 ? (double)completion / elapsed : 0.0; + const double pct = max_tokens > 0 ? 100.0 * (double)completion / (double)max_tokens : 0.0; char ctx[48]; request_ctx_span(ctx, sizeof(ctx), prompt_tokens + *last_completion, @@ -9363,10 +10091,12 @@ static void log_decode_progress(req_kind kind, int prompt_tokens, int completion log_flags(flags, sizeof(flags), responses_protocol, tools, thinking, dsml_start, dsml_end); server_log(DS4_LOG_GENERATION, - "ds4-server: %s ctx=%s gen=%d%s%s decoding chunk=%.2f t/s avg=%.2f t/s %.3fs", + "ds4-server: %s ctx=%s gen=%d max=%d pct=%.1f%%%s%s decoding chunk=%.2f t/s avg=%.2f t/s %.3fs", kind == REQ_CHAT ? "chat" : "completion", ctx, completion, + max_tokens, + pct, flags[0] ? " " : "", flags, chunk_tps, @@ -9574,6 +10304,7 @@ static void server_progress_cb(void *ud, const char *event, int current, int tot if (p->seen && current == p->last_current) { if (p->srv && current > p->cached_tokens) { kv_cache_maybe_store_continued(p->srv); + prefix_lookback_maybe_store_current(p->srv, p->ctx); } return; } @@ -9615,6 +10346,8 @@ static void server_progress_cb(void *ud, const char *event, int current, int tot elapsed); if (p->srv && current > p->cached_tokens) { kv_cache_maybe_store_continued(p->srv); + prefix_lookback_maybe_store_current(p->srv, p->ctx); + point_checkpoint_capture_maybe(p->srv, current); } } @@ -9826,6 +10559,7 @@ static void canonicalize_tool_checkpoint(server *s, const job *j, const char *ct .cached_tokens = loaded, .phase = "tool checkpoint rebuild", .has_tools = j->req.has_tools, + .skip_decode_cache_updates = j->req.skip_decode_cache_updates, .t0 = rebuild_t0, .fd = j->fd, .stream = j->req.stream, @@ -9915,21 +10649,56 @@ static void generate_job(server *s, job *j) { ds4_tokens effective_prompt = {0}; const ds4_tokens *prompt_for_sync = &j->req.prompt; const bool responses_protocol = j->req.api == API_RESPONSES; - bool responses_live_continuation = false; - bool anthropic_live_continuation = false; - bool thinking_live_continuation = false; - const char *responses_live_match = NULL; - int responses_live_match_ids = 0; - int anthropic_live_match_ids = 0; + int cached = 0; + const char *cache_source = "none"; + if (cached == 0) { + char restore_err[160] = {0}; + cached = prefix_lookback_try_load(s, &j->req.prompt, &effective_prompt, + restore_err, sizeof(restore_err)); + if (cached > 0) { + cache_source = "memory-prefix-lookback"; + prompt_for_sync = &effective_prompt; + server_log(DS4_LOG_KVCACHE, + "ds4-server: prefix lookback hit tokens=%d", cached); + } else if (restore_err[0]) { + server_log(DS4_LOG_WARNING, + "ds4-server: prefix lookback restore failed: %s", + restore_err); + } + } + /* Phase-4: pointwise in-memory checkpoint fallback after Phase-3 miss */ + if (cached == 0 && s->point_checkpoint.interval > 0) { + char checkpoint_err[160] = {0}; + cached = point_checkpoint_try_load(s, &j->req.prompt, &effective_prompt, + checkpoint_err, sizeof(checkpoint_err)); + if (cached > 0) { + cache_source = "memory-point-checkpoint"; + prompt_for_sync = &effective_prompt; + server_log(DS4_LOG_KVCACHE, + "ds4-server: point checkpoint hit tokens=%d", cached); + } else if (checkpoint_err[0]) { + server_log(DS4_LOG_WARNING, + "ds4-server: point checkpoint restore failed: %s", + checkpoint_err); + } + } /* Responses gets the first chance to continue from live state. This is * the whole point of the API shape: a request that is bound to prior live * output by visible transcript or tool call ids does not need to prove an * exact token-prefix match. Exact token/text/disk matching remains the * fallback when the live state is absent or no longer describes the * request. */ - int cached = responses_live_visible_prefix_prompt(s, &j->req, old_pos, - &effective_prompt); - const char *cache_source = cached > 0 ? "responses-visible" : "none"; + bool responses_live_continuation = false; + bool anthropic_live_continuation = false; + bool thinking_live_continuation = false; + const char *responses_live_match = NULL; + int responses_live_match_ids = 0; + int anthropic_live_match_ids = 0; + if (cached == 0) { + cached = responses_live_visible_prefix_prompt(s, &j->req, old_pos, + &effective_prompt); + cache_source = cached > 0 ? "responses-visible" : "none"; + } if (cached > 0) { responses_live_match = "visible-prefix"; if (responses_live_matches_request(s, &j->req.responses_live_call_ids, @@ -10026,6 +10795,20 @@ static void generate_job(server *s, job *j) { prompt_for_sync = &effective_prompt; } } + + + + + + + + + + + + + + const bool responses_reasoning_state_preserved = cached > 0 && ((!strcmp(cache_source, "responses-visible") || @@ -10048,6 +10831,16 @@ static void generate_job(server *s, job *j) { cache_source, disk_cached, disk_cache_path); char ctx_span[48]; request_ctx_span(ctx_span, sizeof(ctx_span), cached, prompt_tokens); + server_log(DS4_LOG_KVCACHE, + "ds4-server: cache decision source=%s cached=%d prompt=%d suffix=%d motif=%s skip_decode_cache_updates=%d", + cache_source, + cached, + prompt_tokens, + prompt_tokens > cached ? prompt_tokens - cached : 0, + j->req.skip_decode_cache_updates ? "on" : "off", + j->req.skip_decode_cache_updates ? 1 : 0); + server_log(DS4_LOG_KVCACHE, + "ds4-server: rss %.1f MiB", get_rss_mib()); server_prefill_progress progress = { .srv = s, .kind = j->req.kind, @@ -10055,6 +10848,7 @@ static void generate_job(server *s, job *j) { .cached_tokens = cached, .has_tools = j->req.has_tools, .responses_protocol = responses_protocol, + .skip_decode_cache_updates = j->req.skip_decode_cache_updates, .t0 = t0, .fd = j->fd, .stream = j->req.stream, @@ -10191,7 +10985,9 @@ static void generate_job(server *s, job *j) { ctx_span, req_flags[0] ? " " : "", req_flags, - now_sec() - t0); + now_sec() - t0); + prefix_lookback_store_window(s, prompt_for_sync, ctx_span); + point_checkpoint_capture_maybe(s, prompt_for_sync->len); if (cold_store_len == prompt_for_sync->len) { if (kv_cache_store_live_prefix(s, prompt_for_sync, cold_store_len, "cold")) { kv_cache_note_store(&s->kv, cold_store_len); @@ -10298,6 +11094,7 @@ static void generate_job(server *s, job *j) { thinking_gates_tool_markers && thinking.inside; dsml_decode_tracker dsml_tracker; dsml_decode_tracker_init(&dsml_tracker); + bool logged_decode_cache_skip = false; while (!g_stop_requested && completion < max_tokens && ds4_session_pos(s->session) < ds4_session_ctx(s->session)) { @@ -10306,6 +11103,14 @@ static void generate_job(server *s, job *j) { const bool in_tool_call = dsml_decode_state_is_tool(dsml_state); if (!(j->req.kind == REQ_CHAT && j->req.has_tools && (saw_tool_start || in_tool_call))) { kv_cache_maybe_store_continued(s); + if (!j->req.skip_decode_cache_updates) { + prefix_lookback_maybe_store_current(s, ctx_span); + } else if (!logged_decode_cache_skip) { + server_log(DS4_LOG_KVCACHE, + "ds4-server: decode cache updates skipped motif=on ctx=%s", + ctx_span); + logged_decode_cache_skip = true; + } } float temperature = j->req.temperature; int top_k = j->req.top_k; @@ -10484,6 +11289,7 @@ static void generate_job(server *s, job *j) { if (completion >= next_decode_log) { log_decode_progress(j->req.kind, prompt_tokens, completion, + max_tokens, responses_protocol, j->req.has_tools, thinking.inside, @@ -10597,6 +11403,7 @@ static void generate_job(server *s, job *j) { if (completion > last_decode_log_completion) { log_decode_progress(j->req.kind, prompt_tokens, completion, + max_tokens, responses_protocol, j->req.has_tools, thinking.inside, @@ -10967,6 +11774,7 @@ typedef struct { char path[256]; char *body; size_t body_len; + bool x_c0nr_motif; /* X-C0NR-MOTIF: on */ } http_request; static void http_request_free(http_request *r) { @@ -11001,6 +11809,23 @@ static long content_length(const char *h, size_t n) { return 0; } +static bool header_x_c0nr_motif(const char *h, size_t n) { + const char *p = h, *end = h + n; + while (p < end) { + const char *line = p; + while (p < end && *p != '\n') p++; + size_t len = (size_t)(p - line); + if (len && line[len - 1] == '\r') len--; + if (len >= 14 && strncasecmp(line, "X-C0NR-MOTIF:", 13) == 0) { + const char *v = line + 13; + while (v < line + len && isspace((unsigned char)*v)) v++; + return strncasecmp(v, "on", 2) == 0; + } + if (p < end) p++; + } + return false; +} + static bool read_http_request(int fd, http_request *r) { buf b = {0}; ssize_t hend = -1; @@ -11028,6 +11853,8 @@ static bool read_http_request(int fd, http_request *r) { char *q = strchr(r->path, '?'); if (q) *q = '\0'; + r->x_c0nr_motif = header_x_c0nr_motif(b.ptr, (size_t)hend); + long clen = content_length(b.ptr, (size_t)hend); if (clen < 0 || (size_t)clen > max_body) goto fail; while (b.len < (size_t)hend + (size_t)clen) { @@ -11119,6 +11946,36 @@ static bool send_models(server *s, int fd) { return ok; } +static bool fd_path_json(buf *b, const char *key, int fd) { +#ifdef F_GETPATH + char pathbuf[PATH_MAX]; + if (fcntl(fd, F_GETPATH, pathbuf) == 0 && pathbuf[0]) { + json_escape(b, key); + buf_putc(b, ':'); + json_escape(b, pathbuf); + return true; + } +#else + (void)fd; +#endif + return false; +} + +static bool send_ds4_runtime(server *s, int fd) { + buf b = {0}; + buf_puts(&b, "{\"ok\":true,\"server\":\"ds4-server\",\"model\":"); + json_escape(&b, ds4_engine_model_name(s->engine)); + buf_printf(&b, ",\"ctx\":%d,\"logs\":{", ds4_session_ctx(s->session)); + bool any = fd_path_json(&b, "stdout", STDOUT_FILENO); + if (any) buf_putc(&b, ','); + if (fd_path_json(&b, "stderr", STDERR_FILENO)) any = true; + (void)any; + buf_puts(&b, "}}\n"); + bool ok = http_response(fd, s->enable_cors, 200, "application/json", b.ptr); + buf_free(&b); + return ok; +} + static void client_done(server *s) { pthread_mutex_lock(&s->mu); if (s->clients > 0) s->clients--; @@ -11151,6 +12008,11 @@ static void *client_main(void *arg) { http_request_free(&hr); goto done; } + if (!strcmp(hr.method, "GET") && !strcmp(hr.path, "/__ds4/runtime")) { + send_ds4_runtime(s, fd); + http_request_free(&hr); + goto done; + } const char *model_path_prefix = "/v1/models/"; const size_t model_path_prefix_len = strlen(model_path_prefix); if (!strcmp(hr.method, "GET") && @@ -11184,6 +12046,8 @@ static void *client_main(void *arg) { goto done; } if (ok) req.raw_body = xstrndup(hr.body, hr.body_len); + if (ok && !strcmp(hr.path, "/v1/chat/completions")) + req.skip_decode_cache_updates = hr.x_c0nr_motif; http_request_free(&hr); if (!ok) { http_error(fd, s->enable_cors, 400, err); @@ -11282,7 +12146,12 @@ typedef struct { const char *kv_disk_dir; uint64_t kv_disk_space_mb; kv_cache_options kv_cache; + int prefix_lookback_tokens; + int prefix_lookback_min_rewind_tokens; + int point_checkpoint_space_mb; bool kv_cache_reject_different_quant; + bool cache_verbose; + bool point_checkpoint_replay_boundary_token; bool disable_exact_dsml_tool_replay; int tool_memory_max_ids; bool enable_cors; @@ -11344,6 +12213,8 @@ static void server_close_resources(server *s) { s->trace = NULL; } kv_cache_close(&s->kv); + prefix_lookback_free(&s->prefix_lookback); + point_checkpoint_cache_free(&s->point_checkpoint); tool_memory_free(&s->tool_mem); live_tool_state_free(&s->responses_live); live_tool_state_free(&s->anthropic_live); @@ -11429,6 +12300,16 @@ static void usage(FILE *fp) { " Align cold boundary saves down to this token multiple. 0 disables alignment. Default: 2048\n" " --kv-cache-reject-different-quant\n" " Refuse checkpoints written by the same model with a different routed-expert quantization.\n" + " --kv-prefix-lookback-tokens N\n" + " Enable live token-prefix lookback over the last N tokens. Default: 0\n" + " --kv-prefix-lookback-min-rewind-tokens N\n" + " Minimum useful live-tail rewind distance. Default: 128\n" + " --kv-point-checkpoint-space-mb N\n" + " Maximum memory budget for point checkpoints in MiB. Default: 8192 (0=unlimited)\n" + " --kv-point-checkpoint-replay-boundary-token\n" + " Experimental: restore one token before the checkpoint point and replay the boundary token. Default: off\n" + " --kv-cache-verbose\n" + " Log active in-memory checkpoint metadata after cache events.\n" " --disable-exact-dsml-tool-replay\n" " Disable the tool-id -> exact sampled DSML map. Tool history falls back to canonical JSON rendering.\n" " --tool-memory-max-ids N\n" @@ -11473,6 +12354,25 @@ static ds4_backend default_server_backend(void) { #endif } +static void validate_checkpoint_geometry(const server_config *c) { + if (POINT_CHECKPOINT_INTERVAL_TOKENS != 0) { + if (POINT_CHECKPOINT_INTERVAL_TOKENS < POINT_CHECKPOINT_MIN_INTERVAL_TOKENS || + POINT_CHECKPOINT_INTERVAL_TOKENS % POINT_CHECKPOINT_ALIGNMENT_TOKENS != 0) { + server_log(DS4_LOG_DEFAULT, + "ds4-server: POINT_CHECKPOINT_INTERVAL_TOKENS must be 0 (disabled) or a multiple of %d and >= %d", + POINT_CHECKPOINT_ALIGNMENT_TOKENS, + POINT_CHECKPOINT_MIN_INTERVAL_TOKENS); + exit(2); + } + return; + } + if (c && c->prefix_lookback_tokens > 0) { + server_log(DS4_LOG_DEFAULT, + "ds4-server: --kv-prefix-lookback-tokens requires point checkpoints; POINT_CHECKPOINT_INTERVAL_TOKENS=0 disables tail cache"); + exit(2); + } +} + static server_config parse_options(int argc, char **argv) { server_config c = { .engine = { @@ -11486,6 +12386,8 @@ static server_config parse_options(int argc, char **argv) { .ctx_size = 32768, .default_tokens = 393216, .tool_memory_max_ids = DS4_TOOL_MEMORY_DEFAULT_MAX_IDS, + .prefix_lookback_min_rewind_tokens = PREFIX_LOOKBACK_DEFAULT_MIN_REWIND, + .point_checkpoint_space_mb = POINT_CHECKPOINT_DEFAULT_SPACE_MB, }; c.kv_cache = kv_cache_default_options(); @@ -11553,6 +12455,21 @@ static server_config parse_options(int argc, char **argv) { c.kv_cache.boundary_align_tokens = parse_nonneg_int_arg(need_arg(&i, argc, argv, arg), arg); } else if (!strcmp(arg, "--kv-cache-reject-different-quant")) { c.kv_cache_reject_different_quant = true; + } else if (!strcmp(arg, "--kv-prefix-lookback-tokens")) { + c.prefix_lookback_tokens = parse_nonneg_int_arg(need_arg(&i, argc, argv, arg), arg); + } else if (!strcmp(arg, "--kv-prefix-lookback-min-rewind-tokens") || + !strcmp(arg, "--kv-prefix-lookback-align-tokens")) { + c.prefix_lookback_min_rewind_tokens = parse_nonneg_int_arg(need_arg(&i, argc, argv, arg), arg); + } else if (!strcmp(arg, "--kv-prefix-lookback-entries")) { + (void)need_arg(&i, argc, argv, arg); + server_log(DS4_LOG_WARNING, + "ds4-server: --kv-prefix-lookback-entries is ignored; prefix lookback uses the live SWA tail"); + } else if (!strcmp(arg, "--kv-point-checkpoint-space-mb")) { + c.point_checkpoint_space_mb = parse_nonneg_int_arg(need_arg(&i, argc, argv, arg), arg); + } else if (!strcmp(arg, "--kv-point-checkpoint-replay-boundary-token")) { + c.point_checkpoint_replay_boundary_token = true; + } else if (!strcmp(arg, "--kv-cache-verbose")) { + c.cache_verbose = true; } else if (!strcmp(arg, "--disable-exact-dsml-tool-replay")) { c.disable_exact_dsml_tool_replay = true; } else if (!strcmp(arg, "--tool-memory-max-ids")) { @@ -11607,6 +12524,7 @@ static server_config parse_options(int argc, char **argv) { server_log(DS4_LOG_DEFAULT, "ds4-server: %s", dist_err); exit(2); } + validate_checkpoint_geometry(&c); return c; } @@ -11654,12 +12572,29 @@ int main(int argc, char **argv) { s.session = session; s.default_tokens = cfg.default_tokens; s.disable_exact_dsml_tool_replay = cfg.disable_exact_dsml_tool_replay; + s.cache_verbose = cfg.cache_verbose; + s.point_checkpoint_replay_boundary_token = cfg.point_checkpoint_replay_boundary_token; s.tool_mem.max_entries = cfg.tool_memory_max_ids; s.enable_cors = cfg.enable_cors; + s.prefix_lookback.lookback_tokens = cfg.prefix_lookback_tokens; + s.prefix_lookback.min_rewind_tokens = cfg.prefix_lookback_min_rewind_tokens > 0 ? + cfg.prefix_lookback_min_rewind_tokens : PREFIX_LOOKBACK_DEFAULT_MIN_REWIND; + s.prefix_lookback.tail_rows = s.prefix_lookback.lookback_tokens > 0 ? + s.prefix_lookback.lookback_tokens + 2 * s.prefix_lookback.min_rewind_tokens : 0; + s.point_checkpoint.interval = POINT_CHECKPOINT_INTERVAL_TOKENS; + s.point_checkpoint.max_bytes = cfg.point_checkpoint_space_mb > 0 ? + (uint64_t)cfg.point_checkpoint_space_mb * 1024ULL * 1024ULL : 0; if (cfg.kv_disk_dir) { kv_cache_open(&s.kv, cfg.kv_disk_dir, cfg.kv_disk_space_mb, cfg.kv_cache_reject_different_quant, cfg.kv_cache); } + if (s.prefix_lookback.lookback_tokens > 0) { + server_log(DS4_LOG_DEFAULT, + "ds4-server: live prefix lookback enabled tokens=%d min_rewind=%d tail_rows=%d", + s.prefix_lookback.lookback_tokens, + s.prefix_lookback.min_rewind_tokens, + s.prefix_lookback.tail_rows); + } if (s.disable_exact_dsml_tool_replay) { server_log(DS4_LOG_DEFAULT, "ds4-server: exact DSML tool replay disabled; tool history uses canonical JSON rendering"); @@ -15545,6 +16480,308 @@ static void test_thinking_canonical_non_thinking_mode_noop(void) { chat_msgs_free(&msgs); } +static ds4_tokens test_tokens_range(int n, int base) { + ds4_tokens t = {0}; + for (int i = 0; i < n; i++) ds4_tokens_push(&t, base + i); + return t; +} + +static point_checkpoint_entry test_checkpoint_entry(int point, int base, size_t bytes) { + point_checkpoint_entry e = {0}; + e.point = point; + e.valid = true; + e.swa_shard.ptr = malloc(bytes); + e.swa_shard.len = bytes; + e.swa_shard.cap = bytes; + memset(e.swa_shard.ptr, base & 0xff, bytes); + e.tokens = test_tokens_range(point, base); + sha1_token_prefix_hex(&e.tokens, point, e.token_prefix_hash); + memcpy(e.verify_hash, e.token_prefix_hash, sizeof(e.verify_hash)); + return e; +} + +static void test_prefix_lookback_ring_keeps_window_points(void) { + prefix_lookback_cache c = {.lookback_tokens = 4096, .min_rewind_tokens = 128}; + for (int i = 0; i < PREFIX_LOOKBACK_RING_SLOTS; i++) { + c.entries[i] = test_checkpoint_entry((i + 1) * 128, 1000 + i * 1000, 4096); + } + prefix_lookback_trim_window(&c, PREFIX_LOOKBACK_RING_SLOTS * 128); + TEST_ASSERT(prefix_lookback_valid_count(&c) == 17); + TEST_ASSERT(!c.entries[0].valid); + for (int i = 1; i < PREFIX_LOOKBACK_RING_SLOTS; i++) TEST_ASSERT(c.entries[i].valid); + prefix_lookback_free(&c); +} + +static void test_prefix_lookback_reset_metadata_preserves_buffers(void) { + prefix_lookback_cache c = {.lookback_tokens = 4096, .min_rewind_tokens = 128}; + c.entries[0] = test_checkpoint_entry(128, 1000, 4096); + c.entries[1] = test_checkpoint_entry(256, 2000, 8192); + c.entries[2] = test_checkpoint_entry(384, 3000, 16384); + c.last_store_point = 384; + uint8_t *p1 = c.entries[1].swa_shard.ptr; + uint8_t *p2 = c.entries[2].swa_shard.ptr; + prefix_lookback_reset_metadata(&c); + TEST_ASSERT(!c.entries[0].valid); + TEST_ASSERT(!c.entries[1].valid); + TEST_ASSERT(!c.entries[2].valid); + TEST_ASSERT(c.entries[1].swa_shard.ptr == p1); + TEST_ASSERT(c.entries[2].swa_shard.ptr == p2); + TEST_ASSERT(c.entries[1].swa_shard.cap == 8192); + TEST_ASSERT(c.entries[2].swa_shard.cap == 16384); + TEST_ASSERT(c.entries[1].swa_shard.len == 0); + TEST_ASSERT(c.entries[2].tokens.len == 0); + TEST_ASSERT(prefix_lookback_valid_count(&c) == 0); + TEST_ASSERT(c.last_store_point == 0); + prefix_lookback_free(&c); +} + +static void test_prefix_lookback_pointwise_exact_match_only(void) { + point_checkpoint_entry e = test_checkpoint_entry(256, 1000, 4096); + ds4_tokens prompt = test_tokens_range(384, 1000); + TEST_ASSERT(point_checkpoint_first_token_mismatch(&e, &prompt) == 256); + prompt.v[255] = 999999; + TEST_ASSERT(point_checkpoint_first_token_mismatch(&e, &prompt) == 255); + point_checkpoint_entry_free(&e); + ds4_tokens_free(&prompt); +} + +static void test_prefix_lookback_disabled_by_default(void) { + prefix_lookback_cache c = {0}; + server s = {0}; + s.prefix_lookback = c; + char err[32] = {0}; + ds4_tokens prompt = test_tokens_range(384, 1000); + ds4_tokens effective = {0}; + TEST_ASSERT(prefix_lookback_try_load(&s, &prompt, &effective, err, sizeof(err)) == 0); + TEST_ASSERT(effective.len == 0); + ds4_tokens_free(&prompt); + ds4_tokens_free(&effective); +} + +static void test_prefix_lookback_accepts_small_prompt_tail(void) { + server s = {0}; + s.prefix_lookback = (prefix_lookback_cache){.lookback_tokens = 2048, .min_rewind_tokens = 128}; + char err[32] = {0}; + ds4_tokens prompt = test_tokens_range(384, 1000); + ds4_tokens effective = {0}; + prompt.v[128] = 999999; + TEST_ASSERT(prefix_lookback_try_load(&s, &prompt, &effective, err, sizeof(err)) == 0); + TEST_ASSERT(effective.len == 0); + ds4_tokens_free(&prompt); + ds4_tokens_free(&effective); +} + +static void test_prefix_lookback_ignores_generated_tail_when_prompt_tail_matches(void) { + server s = {0}; + s.prefix_lookback = (prefix_lookback_cache){.lookback_tokens = 2048, .min_rewind_tokens = 128}; + char err[32] = {0}; + ds4_tokens prompt = test_tokens_range(480, 1000); + ds4_tokens effective = {0}; + prompt.v[384] = 999999; + TEST_ASSERT(prefix_lookback_try_load(&s, &prompt, &effective, err, sizeof(err)) == 0); + TEST_ASSERT(effective.len == 0); + ds4_tokens_free(&prompt); + ds4_tokens_free(&effective); +} + +static void test_prefix_lookback_accepts_min_rewind(void) { + server s = {0}; + s.prefix_lookback = (prefix_lookback_cache){.lookback_tokens = 2048, .min_rewind_tokens = 128}; + char err[32] = {0}; + ds4_tokens prompt = test_tokens_range(384, 1000); + ds4_tokens effective = {0}; + prompt.v[128] = 999999; + TEST_ASSERT(prefix_lookback_try_load(&s, &prompt, &effective, err, sizeof(err)) == 0); + TEST_ASSERT(effective.len == 0); + ds4_tokens_free(&prompt); + ds4_tokens_free(&effective); +} + +static void test_prefix_lookback_accepts_unaligned_point_in_window(void) { + server s = {0}; + s.prefix_lookback = (prefix_lookback_cache){.lookback_tokens = 2048, .min_rewind_tokens = 128}; + char err[32] = {0}; + ds4_tokens prompt = test_tokens_range(4300, 1000); + ds4_tokens effective = {0}; + prompt.v[2500] = 999999; + TEST_ASSERT(prefix_lookback_try_load(&s, &prompt, &effective, err, sizeof(err)) == 0); + TEST_ASSERT(effective.len == 0); + ds4_tokens_free(&prompt); + ds4_tokens_free(&effective); +} + + + +static void test_prefix_lookback_rejects_outside_window(void) { + server s = {0}; + s.prefix_lookback = (prefix_lookback_cache){.lookback_tokens = 2048, .min_rewind_tokens = 128}; + char err[32] = {0}; + ds4_tokens prompt = test_tokens_range(4300, 1000); + ds4_tokens effective = {0}; + prompt.v[1900] = 999999; + TEST_ASSERT(prefix_lookback_try_load(&s, &prompt, &effective, err, sizeof(err)) == 0); + TEST_ASSERT(effective.len == 0); + ds4_tokens_free(&prompt); + ds4_tokens_free(&effective); +} + +static void test_prefix_lookback_rejects_full_prefix(void) { + server s = {0}; + s.prefix_lookback = (prefix_lookback_cache){.lookback_tokens = 2048, .min_rewind_tokens = 128}; + char err[32] = {0}; + ds4_tokens prompt = test_tokens_range(384, 1000); + ds4_tokens effective = {0}; + TEST_ASSERT(prefix_lookback_try_load(&s, &prompt, &effective, err, sizeof(err)) == 0); + TEST_ASSERT(effective.len == 0); + ds4_tokens_free(&prompt); + ds4_tokens_free(&effective); +} + +static void test_prefix_lookback_options_do_not_enable_disk_cache(void) { + char *argv[] = { + "ds4-server", + "--kv-prefix-lookback-tokens", "4096", + "--kv-prefix-lookback-min-rewind-tokens", "128", + }; + server_config cfg = parse_options((int)(sizeof(argv) / sizeof(argv[0])), argv); + TEST_ASSERT(cfg.prefix_lookback_tokens == 4096); + TEST_ASSERT(cfg.prefix_lookback_min_rewind_tokens == 128); + TEST_ASSERT(cfg.kv_disk_dir == NULL); +} + +static void test_prefix_lookback_rejects_below_min_rewind(void) { + server s = {0}; + s.prefix_lookback = (prefix_lookback_cache){.lookback_tokens = 2048, .min_rewind_tokens = 128}; + char err[32] = {0}; + ds4_tokens prompt = test_tokens_range(384, 1000); + ds4_tokens effective = {0}; + prompt.v[200] = 999999; + TEST_ASSERT(prefix_lookback_try_load(&s, &prompt, &effective, err, sizeof(err)) == 0); + TEST_ASSERT(effective.len == 0); + ds4_tokens_free(&prompt); + ds4_tokens_free(&effective); +} + +/* Phase-4 point checkpoint unit tests */ + +static void test_point_checkpoint_disabled_by_default(void) { + /* Default interval is 4096; test that 0 explicitly means disabled */ + point_checkpoint_cache c = {0}; + c.interval = 0; + /* capture_maybe should be a no-op when interval==0; tested via smoke */ + TEST_ASSERT(c.interval == 0); + point_checkpoint_cache_free(&c); +} + +static void test_point_checkpoint_rejects_without_entries(void) { + /* With interval set but no entries captured, count should be 0 */ + point_checkpoint_cache c = {.interval = 4096, .max_bytes = 0}; + TEST_ASSERT(c.count == 0); + TEST_ASSERT(c.entries == NULL); + point_checkpoint_cache_free(&c); +} + +static void test_point_checkpoint_eviction(void) { + /* Test budget enforcement: insert 3 entries with 1 MiB cap → only last survives */ + point_checkpoint_cache c = {.interval = 4096, .max_bytes = 1048576}; /* 1 MiB */ + ds4_session_swa_shard s1 = {.ptr = malloc(524288), .len = 524288, .cap = 524288}; /* 512K */ + ds4_session_swa_shard s2 = {.ptr = malloc(524288), .len = 524288, .cap = 524288}; + ds4_session_swa_shard s3 = {.ptr = malloc(524288), .len = 524288, .cap = 524288}; + memset(s1.ptr, 1, s1.cap); + memset(s2.ptr, 2, s2.cap); + memset(s3.ptr, 3, s3.cap); + point_checkpoint_entry e1 = {.point = 4096, .swa_shard = s1}; + point_checkpoint_entry e2 = {.point = 8192, .swa_shard = s2}; + point_checkpoint_entry e3 = {.point = 12288, .swa_shard = s3}; + TEST_ASSERT(point_checkpoint_insert(&c, &e1)); + TEST_ASSERT(c.count == 1); + TEST_ASSERT(point_checkpoint_insert(&c, &e2)); + /* 512K+512K=1MiB, fits budget */ + TEST_ASSERT(c.count == 2); + TEST_ASSERT(point_checkpoint_insert(&c, &e3)); + /* Adding 3rd 512K exceeds 1MiB → evicts e1 (oldest) */ + TEST_ASSERT(c.count == 2); + TEST_ASSERT(c.entries[0].point == 8192); + TEST_ASSERT(c.entries[1].point == 12288); + point_checkpoint_cache_free(&c); +} + +static void test_point_checkpoint_semantic_invalidate_preserves_buffers(void) { + point_checkpoint_cache c = {.interval = 4096, .max_bytes = 0}; + ds4_session_swa_shard s1 = {.ptr = malloc(524288), .len = 524288, .cap = 524288}; + ds4_session_swa_shard s2 = {.ptr = malloc(524288), .len = 524288, .cap = 524288}; + ds4_session_swa_shard s3 = {.ptr = malloc(524288), .len = 524288, .cap = 524288}; + memset(s1.ptr, 1, s1.cap); + memset(s2.ptr, 2, s2.cap); + memset(s3.ptr, 3, s3.cap); + point_checkpoint_entry e1 = {.point = 4096, .valid = true, .swa_shard = s1}; + point_checkpoint_entry e2 = {.point = 8192, .valid = true, .swa_shard = s2}; + point_checkpoint_entry e3 = {.point = 12288, .valid = true, .swa_shard = s3}; + TEST_ASSERT(point_checkpoint_insert(&c, &e1)); + TEST_ASSERT(point_checkpoint_insert(&c, &e2)); + TEST_ASSERT(point_checkpoint_insert(&c, &e3)); + uint8_t *p2 = c.entries[1].swa_shard.ptr; + uint8_t *p3 = c.entries[2].swa_shard.ptr; + uint64_t total = c.total_bytes; + + point_checkpoint_invalidate_after(&c, 4096); + TEST_ASSERT(c.count == 3); + TEST_ASSERT(c.total_bytes == total); + TEST_ASSERT(c.entries[0].valid); + TEST_ASSERT(!c.entries[1].valid); + TEST_ASSERT(!c.entries[2].valid); + TEST_ASSERT(c.entries[1].swa_shard.ptr == p2); + TEST_ASSERT(c.entries[2].swa_shard.ptr == p3); + TEST_ASSERT(c.entries[1].swa_shard.cap == 524288); + TEST_ASSERT(c.entries[2].swa_shard.cap == 524288); + TEST_ASSERT(c.entries[1].swa_shard.len == 0); + TEST_ASSERT(c.entries[2].tokens.len == 0); + TEST_ASSERT(c.entries[1].token_prefix_hash[0] == '\0'); + TEST_ASSERT(c.entries[2].verify_hash[0] == '\0'); + point_checkpoint_cache_free(&c); +} + +static void test_point_checkpoint_cli_parsing(void) { + char *argv[] = { + "ds4-server", + "--kv-point-checkpoint-space-mb", "8192", + }; + server_config cfg = parse_options((int)(sizeof(argv) / sizeof(argv[0])), argv); + TEST_ASSERT(cfg.point_checkpoint_space_mb == 8192); + TEST_ASSERT(cfg.kv_disk_dir == NULL); +} + +static void test_point_checkpoint_compile_time_geometry(void) { + TEST_ASSERT(POINT_CHECKPOINT_INTERVAL_TOKENS == 0 || + POINT_CHECKPOINT_INTERVAL_TOKENS >= POINT_CHECKPOINT_MIN_INTERVAL_TOKENS); + TEST_ASSERT(POINT_CHECKPOINT_INTERVAL_TOKENS == 0 || + POINT_CHECKPOINT_INTERVAL_TOKENS % POINT_CHECKPOINT_ALIGNMENT_TOKENS == 0); +} + +static void test_point_checkpoint_free_empty(void) { + point_checkpoint_cache c = {0}; + point_checkpoint_cache_free(&c); + TEST_ASSERT(c.count == 0); + TEST_ASSERT(c.entries == NULL); +} + +static void test_point_checkpoint_sha1_token_prefix(void) { + /* Verify SHA1 of known token IDs produces deterministic output */ + ds4_tokens tokens = {0}; + ds4_tokens_push(&tokens, 42); + ds4_tokens_push(&tokens, 100); + ds4_tokens_push(&tokens, 2048); + char hash1[41] = {0}, hash2[41] = {0}; + sha1_token_prefix_hex(&tokens, 3, hash1); + sha1_token_prefix_hex(&tokens, 3, hash2); + TEST_ASSERT(strncmp(hash1, hash2, 40) == 0); + /* Different prefix length = different hash */ + char hash_partial[41] = {0}; + sha1_token_prefix_hex(&tokens, 2, hash_partial); + TEST_ASSERT(strncmp(hash1, hash_partial, 40) != 0); + ds4_tokens_free(&tokens); +} + static void ds4_server_unit_tests_run(void) { test_request_defaults_use_min_p_filtering(); test_reasoning_effort_mapping(); @@ -15644,6 +16881,26 @@ static void ds4_server_unit_tests_run(void) { test_kv_cache_eviction_score_decays_stale_hits(); test_kv_cache_eviction_decayed_hits_tie_break_by_age(); test_kv_cache_eviction_keeps_aligned_continued_frontiers(); + test_prefix_lookback_ring_keeps_window_points(); + test_prefix_lookback_reset_metadata_preserves_buffers(); + test_prefix_lookback_pointwise_exact_match_only(); + test_prefix_lookback_disabled_by_default(); + test_prefix_lookback_accepts_small_prompt_tail(); + test_prefix_lookback_ignores_generated_tail_when_prompt_tail_matches(); + test_prefix_lookback_accepts_min_rewind(); + test_prefix_lookback_accepts_unaligned_point_in_window(); + test_prefix_lookback_rejects_outside_window(); + test_prefix_lookback_rejects_full_prefix(); + test_prefix_lookback_options_do_not_enable_disk_cache(); + test_prefix_lookback_rejects_below_min_rewind(); + test_point_checkpoint_disabled_by_default(); + test_point_checkpoint_rejects_without_entries(); + test_point_checkpoint_eviction(); + test_point_checkpoint_semantic_invalidate_preserves_buffers(); + test_point_checkpoint_cli_parsing(); + test_point_checkpoint_compile_time_geometry(); + test_point_checkpoint_free_empty(); + test_point_checkpoint_sha1_token_prefix(); } #ifndef DS4_SERVER_TEST_NO_MAIN From fcc2ff526ea325778576ccaaa3462f382b46e115 Mon Sep 17 00:00:00 2001 From: nullgate Date: Sat, 30 May 2026 11:41:52 +0800 Subject: [PATCH 3/3] ds4c: add DS4CACHE.md documentation --- DS4CACHE.md | 159 ++++++++++++++++++++++++++++++++++++++ ds4c-point-checkpoint.png | Bin 0 -> 147325 bytes ds4c-tail-cache.png | Bin 0 -> 152758 bytes 3 files changed, 159 insertions(+) create mode 100644 DS4CACHE.md create mode 100644 ds4c-point-checkpoint.png create mode 100644 ds4c-tail-cache.png diff --git a/DS4CACHE.md b/DS4CACHE.md new file mode 100644 index 000000000..6f6aab329 --- /dev/null +++ b/DS4CACHE.md @@ -0,0 +1,159 @@ +# DS4C In-Memory Cache + +In-memory point checkpoints and live tail-cache for single-session DS4C. + +> **Design target**: Designed for machines with **256 GB or more** of unified/system +> memory. The default checkpoint budget alone is 8192 MiB; enabling tail-cache +> adds further per-request memory via the rolling swa_shard ring. On smaller +> machines evaluate memory pressure before enabling. + +## Overview + +Two complementary caches, both 128-token-aligned and correctness-proven: + +| Cache | Purpose | Interval | Storage | +|-------|---------|----------|---------| +| **Point checkpoint** | Coarse persistent cache | 4096 tokens | Fixed-size array, sorted by position | +| **Tail cache** | Dense near-frontier cache | 128 tokens | 18-slot rolling ring | + +Neither changes the model's raw-SWA window or attention geometry. Both use +exact token-prefix matching (SHA1 hash), not rendered-text SHA1. + +![Point checkpoint](ds4c-point-checkpoint.png) + +![Tail cache](ds4c-tail-cache.png) + +## Point checkpoint + +### Design + +- Captured at `POINT_CHECKPOINT_INTERVAL_TOKENS` boundaries (default 4096) +- Token-prefix exact match (SHA1 of token IDs) +- Sorted array, insert by position, evict oldest when over budget +- Memory budget: `--kv-point-checkpoint-space-mb` (default 8192 MiB) + +### Budget and eviction + +Budget must support at least **10 checkpoints** to be useful. A budget too small +for this many entries defeats the purpose — the cache would evict entries faster +than they accumulate meaningful reuse. + +Per-checkpoint size depends on model geometry and context depth: +``` +swa_shard bytes ≈ N_LAYER × min(point, N_SWA) × N_HEAD_DIM × 4 + + token IDs + logits + frontier counters +``` + +Typical sizes for common configurations: + +| Context | N_SWA | Approx per entry | 10-entry minimum | +|---------|-------|------------------|------------------| +| 32K | 4096 | ~500–650 MiB | ~5–6.5 GiB | +| 128K | 4096 | ~500–650 MiB | ~5–6.5 GiB | + +The swa_shard saves only raw sliding-window attention rows (not compressed KV), +so it caps at `N_SWA` regardless of context depth. The default 8192 MiB budget +covers ~12–16 entries for typical models. + +Eviction is **FIFO by position** (oldest first). Entries are sorted by ascending +token position; when budget is exceeded during insert, `entries[0]` (lowest +position = oldest) is evicted. Buffers are freed on eviction, not preserved. +No LRU scoring — position ordering is sufficient for monotonic checkpoint +progression. + +### Lifecycle + +``` +request → tokenize → scan checkpoints → SHA1 match? + hit → load swa_shard(K) + → invalidate entries > K (metadata clear, preserve buffers) + → rebuild verify hash from live session + → build effective prompt then warm prefill + miss → fall through to tail cache / cold prefill + +prefill done → position % 4096 == 0 → capture swa_shard → insert sorted +``` + +### Compile-time geometry + +`POINT_CHECKPOINT_INTERVAL_TOKENS`: +- `0` = disabled (also disables tail cache) +- `>= 2048` and `% 128 == 0` = valid + +Startup validation refuses incompatible combinations (e.g. tail cache enabled +with point checkpoints disabled). + +## Tail cache + +### Design + +- 18-slot rolling ring, 128-token spacing +- Covers `[latest_point - lookback_tokens, latest_point]` +- `tail_rows = lookback_tokens + 2 × min_rewind_tokens` +- Pointwise hit only: exact token-prefix match at a stored point with non-empty suffix +- No arbitrary rewind, no range restore, no LCP match + +### Lifecycle + +``` +request → scan tail ring → pointwise exact match? + hit → load swa_shard(K) + → triple verify (count + token[i] vs stored + token[i] vs prompt) + → reset ALL tail metadata (keep buffers) + → build effective prompt then warm prefill + miss → fall through to point checkpoint + +decode progress → store 128-aligned frontiers (rolling window) + → trim points older than lookback window (metadata invalid only) + +X-C0NR-MOTIF: on → skip decode-time cache writes (control traffic) +``` + +### Ring dynamics + +- `next` slot overwrites oldest (round-robin) +- Window trim invalidates entries before `latest_point - lookback_tokens` +- Full reset after any hit (single-track constraint) + +## Runtime metadata + +### `GET /__ds4/runtime` + +Returns JSON with server identity, model name, context size, and log file paths +for downstream observability: + +```json +{"ok":true, "server":"ds4-server", "model":"deepseek-v4-flash", + "ctx":32768, + "logs":{"stdout":"/path/to/server.log", "stderr":"/path/to/server.err"}} +``` + +### RSS reporting + +Uses `task_vm_info_data_t.phys_footprint` (macOS Activity Monitor equivalent), +which includes Metal GPU buffer allocations unlike `resident_size`. + +## CLI flags + +| Flag | Default | Meaning | +|------|---------|---------| +| `--kv-point-checkpoint-space-mb N` | 8192 | Point checkpoint memory budget; 0=unlimited | +| `--kv-prefix-lookback-tokens N` | 0 | Enable tail cache over last N tokens | +| `--kv-prefix-lookback-min-rewind-tokens N` | 128 | Minimum rewind distance for tail hit | +| `--kv-cache-verbose` | off | Log active checkpoint metadata after events | + +## Invariants + +- 128-aligned positions only +- Token-prefix exact match (not text SHA1) +- `swa_shard` restore copies raw SWA + frontier counters, no tensor repair +- Semantic invalidation clears metadata, preserves buffers +- Buffer lifetime separate from semantic validity +- Motif decode updates skipped via `X-C0NR-MOTIF: on` + +## Tested + +- Apple Silicon M3 Ultra, 512 GB unified memory +- Metal backend only (CPU backend untested) +- `ds4_server_unit_tests_run()` passes all checkpoint/tail-cache tests +- `make ds4-server ds4_test && ds4_test` passes diff --git a/ds4c-point-checkpoint.png b/ds4c-point-checkpoint.png new file mode 100644 index 0000000000000000000000000000000000000000..b823e94240d3219a3191fc4f67d5c3d9476bee63 GIT binary patch literal 147325 zcmeFZ^oN=i2fNH<8g#83m$-7TF%^X$QM zzSniV?)$p`f@jVTXO6yRK700Fd#&}3b-uon6-R&c{1Flo68c*S5qTt}`xHn>_jn$l zfIpdfcPAM93q?;#Tm_{Y}7f5eKUMspJZOu4)$iN}ceU+!A8og}~d?>`Q z6t^4H-Tj}Z9T|@mpJb^kHJLfSbI2Jbc|Bq^AWtloFZP69+2>yP=gxXKJYZG1liiMa zwjW9!CZ1&953lcsYnvYK3#{o!KY{3r{O3hMsG7+4@yow2ej&wgI9UI@!YwjAZl(9D491mp=JD(Oi9-TweBDvtNXS#4!=4kJEpNjDS{Rk^}mJ&QY|mK`p6P3 zsk?CdJ;F;<>)}+)QJt9Hzx~P-b8z;Z_B|%-WxH?zi-~HCl62dl*j(*$PK;35)le$3 zun9kV<1<&N6UKE#>Y$*Z$yh0x)s7#GSPJn4%QZhh#PP>2>glVUZ>uD6<4Po-qnixm zF*==KtcFsO$&LHjw-lhO_O+wotxs2=GAkDw?nvBjV?Qy7&*d8XrE?Bk55dIoIKFy8 z-3KJ?QgM6{Uku1I20B;K=Sn@NjGl9P#;d4Tw03uQPnZ5(HsS5EDajU5%7r{I@nWaz z1?SN<50_b-DX>@~uiU+jR|c(fl{0XO>yBPJ6Cq+fe62%a!f?uj-EPH>h7_+KJlFB* zQ|w;ix69!ZFlr75iXpYz-E!CpMBd z*4Eb-THF*T)#9@=Y&qUG9sYMwXmU#JOX}lFUNhxE!rt4|bgWM`rjnL>QXx}BJTPLJ z<#2+>;3TJCP_1&-*iF3O@e3Tz(F&8-o?Q(+=~cbnzMGzrfzRpY6Btf*_m!VywCPL{ zIbkE(_wVkc9^Elq;I|=uhw-d}ZI4s$_LRlcr9ji}giK1kt4pq!Ww%O>$O4&YX=Np+ zGk-Yr&v}K7ED@T)&FmaEo<|JpO7~EuKHei72QKHI*^>)RHwOD-I(r=@15pgyhCAG3 zdLJ6K_U_~LB^xe(&K;keOyIkX)=oCqB3gtu@p#Yq$7kc?4BDB6wqHyhZMkzg0Y#iu-h0A98WBJtZB-?Poq#By>_* zZtk_*l{=U7kjKKVO8gz_Y$&0T}EH;c$);bozaY+y4H(2dA?jDQQ}~n-nG3vlwdwAPItN84O+3e=&8n?=d1q5Au8m{Kxa9?IE6OCH2B>$EhfKrkSJ zzvfAAGS!bKk31WMREquMwXq?P{$*Ngg$5(7yn0pN_Zd(uVq)}H78VTG4d*tOrw@0g zYlMxPtdh8~+P;MA=e*BnO1`SKUG993?qZTDiGa_`1sWirlX@j=U7QL9a11l92oC< z`t+%b{kQ~`oNMCm-#xe-Le#SNSiF82DPlM><3!SkNBmc)4ejX5D_r|-e=jC ztBhB=BEJt02Rk)jHT&g-_a~p#&<|MY>FKKV1_X>6RT&cDzaA6te-jP}dzY;(ytuS< zXZ?36+8y&zR*&&_Vj)BwC&YZFllAvO9Dn|N50_c3BRXH@t+X_SE=)b4Vfv|W%d4=R znN$5;ZS@LM%vTL=j-AO<_lpNJT{kk#a#u~q8rjUpJfXk2P!y`HEN2tWF|es*S+*fB zZ5|8^44lHZ`WDE=rS*}6@p=4N^r_#~lrcA4x<4&3B8F*OeH}3A9Uix-sva*@P;uJ2 z{7UMJ`jnX1lI2jJ{rSdt4SjfcxO6=K9p>V}pS$zW7GG~;7f*1aWhVRbmzTT?yK}yd zbDnb4O+`oqt4~XuZJK9W!V|H=ZYsTQH?O8guh!zG<_42Vn;ZJ2G_s_uj1^>)pt0%+ z`mL)gl}ao1FdZ&$duXX@sjYKKc{!W&;~-X--$)&y1ovN+XUWjKA54tSze}^a(2@ny z;4aza%2O`9`)Y>Q5oG_s<2mc^Z5sdd^%{%#uC;ex~5-e2dWZ)h03I<7Akc5kQXrNvxJ*tg&Bye9XN&konf z$;f``ts2iYA`|gBC1nORwTx9gwN$VA1%)QAuWJzWX{GQNNqd?{nCgTQaULD*M&@en z>{wwMxROjvP1#aYb%5Rj@k&v{Eqw!`txSK)NIOq0kxW#emv}8r%`8Ak3Pu@5W!#ta z(_-oqvb*=%D(nGb-%xz-(3=OHzBguhK3r^l-uRBx*~6or$7zfE;$#;(G7{Y#?J08+ zgv;m?AU?ouz0m-7{n{Rchx~$_eJP9S0uE{J>iSBjbnVFx{nmm!(FC8{>8LOpdFi>k z@E+&mw{K6b$Llab5ZdhV7jnDrKTq$+OFh=HXqY<3Bc5D}$QAY26Y|E>5f5>-!q{La0*nZ`T>- zD~dxAcAuo9;oXNv&zSUfXu>G+iIvNPGFMq+jdRNjWkQKSYZu>~5ztF4nnIQ>o66}4 z!Nu(x$oO=6>aw(<=F{A)pQRDIU`3vExW+uct#w{%w0FeN0y1Td)ArojQQ?gjGPsF9 zT&2t8GbJP9;yOQG-+Va9hOk@=g`FNns-2!I|C;KdSJ3x9JL4CO<3Tnyrk=&;WoSQ* zc_|ct3Hfjlnp{6RmAX4xNOk##(rl!l<$}#P)7{e@zGFPJ%4jiD|H&HHt34;YwJVWp zS06@o``Zq37}8%5c&y^g3L3(Qm%Oaute6K@wjc zE!5~uVT(OSPyC(d=Kjr-V4X2 z-)XJV3H%)G%qJU;%^^WS`qQUxhw~It?;r=*?9I=C>@Nm_5u{jYg2-e6LTOM|L}rJY zDI4~O{>UcA_f^Ufrj{8#tZ@Me)x};sJiBeUDjSP{pzC;(D~{Xrk?X;7n%WQ*$Pc)v zsHlS11{gMQ+vkwJb9}BUAMmG~J!`f$CDarYZNnz3+R405%@Y&x1Nt3U;CylwvI*Fn z?$+3?blXf*g%B<*ypJ;7?R!B%5%uNE14P>aYSiNTdR%U4VPT=Ijg4;KR+w4^@5fy( zi=R1XrKP258gT8c$zwFJ3@meVbFz$d8jVrvna%PF*rx##3Z|W%eqViP=wV9$;)N8kGU*jl?uMhC3`w1RY~B6ZEScwQ*4KE7If~Kk zQZWO$`lwH_u}vpxi9uU}8Et+R82!^~CSt0}dg!MsTH~qR>p-Q~UBP1Hpb!l<7+Wi& z7Np5%2EOVbw&8R7)9q7?H&`iS9*D;*R)>-NP_;Y;{5o)Mh?G7 zdfno4KS$%HC5!LxWnR@iVVZjQ@L?OYeZj83{8tL4sUxcZ7EY8=?66jySC=C7*lfdP z{P`#al5DDAYuO6@+11z#$TtH8rr6z4`JJFwp;gK=h_SPrIYEXZW4_M{#zfkcO>Jp= zYn|zyJgco;@KE(rbo8@qxzx8+$X2pbNfwj!eyPsa5?AMrcRFL4Ay=r6`-YQ@*c*Kt zgcD{=+5T8uu-iE~-I+fTYR3r=4u){~hZ(_^7u%(x=wt01-M}V1Xu#4ck?cX4~$ z59B)=xN#H5hs0|8T+SGWcp)nQk+f>+{WOrU&Ssr-n*db6x|riMB;Wn0g#9b(ix}DblVz)Q^Uv}MIiC)oQWQ&MJQ7b z{jB|g0UD)vNUvm7q`BSeGO>_Y=?gR*npZ2`jaf#I?>|~boj(sD%*CY`>UNxOPQ{^> zA6E>%XEIx0>VLmWMdz4}L#(<9*{W zCNPyt4di)@p}Z}qKxJlcShn#)egUZ;wag8h^r|ID_t9`)UQGb3`NnS=LYHxSX*-vU zPJEWjnF?jIHXPr=ET~mty_GvC?d|L+$_KljVc8yjLU|y{YRlJR;m$WdOJ9S$ zQ>4}OE?s0Fhu)2dc&Oj&FvVEhh~3N1d2-~AxmuGKvZoH@8vA4O{Aq3RW83A{C{U6H6RcFCH%D)lasnYPRD66w&B+F&ax#p#oy^qhwyhB< z3lL?ma3#qcqdc~Cwu1#KGiuDw&o{@FVprR((20i<8J>O_P(RLl$L%R z39avHPHWw#Rp?84-%CbIOFP1piv-F(snn~+dSLc%0Z#+8-L%Vw`e zv2N(@bgd&=XLVZJ&! zwTQU*())UL!qMVPtC>mK)#YnXJ(8iU;B56{b#|-SU(@gZcDirf{C~vX285FxtbmY< zjAlhC1~eRRFPtpjN=VE%5U}N{Ww^yy>-Xj$7d12pG&V*fReSQSe!6mUax%pwXJc#3 zHlCa@P4#=Td`Nd-bkE&uvTui2=v(ot*8qejODbto$jx2?W-Q+3V3<}imdS7j-)LoP zs~1M7BIDiYEW0yD{kNxK7-XD^c=PG*+1XsMGXa23et|gD&M7`g=om)(>3-lV^gv-l zswN@n2(?T+ou8rgVArRsbH0A{({HZm;wO(S*_VB6DuoJl8TFqQJpigmUjV2V&%a`s zH&!4Ojc5MS?1&psMxW~P3;F)j<3w}$W9X0Xy-(t?j{&#a#dy+Th+BtIwUeH4^7r@m z3bXN?$$-rmY8)R|rIJaJT%uwgD!zFE0C>WORfTNXrLj!DXgZY)mEFeApFiJyxjh4S zaXt^mDZX+Yv#NF2Zb{~ImbYl~ID3RZ;ir38D41u=fE3Hx-Mp%C<6ux2OP!r=@90>Z z%g2O?qb2h7VLKj6(lp&1*gtnKEUB#gWx_6>9)+ir*C;aasIk|>xy)+9 zOF}Fo9FI;p?e&!#yY*}oF`t*->?QN~#Raos(Uw&H=r#`_QEyZi_DlT7^+NWzp#NH~ z5~u_JHNI+>?r~=4ER;d+AI_|!?H`6O)BflgK6{Q3ERn;ot&_#$a9i&j?oJFatjA@S zg{GGM;b9-7w5)7#MMeD(I_sG=6|aI?Kngnk8I4LboK87VAodUFV7-_|;cUjTKB16> zp5jI$(1m{1s`=vUi;Of=3nyb>2;LU5dh1w_E*kU_6w*K(+Fx5d_Fsd8DfT*FBTDGb zv4)yjCXaKbRP3+z3M4*fi=|aqBJJuAW!Up9PjtdzIXDsGW`n;YArajePZP+Lj9vx= z(MLdbt@+9sPOUAg{m`hqWu{UXX37|I%gV~Yuic`50={`+aWTSj%^jCm;F8Pxrlx)i%h^$~f9{DDewj|ijcNYBVN*men#gIr(A+qeqh9d{$#HYI zCBubw)Vt}^XyFcL$ic~ho=o$jA#zAo6I>A7K~QgLL8G$pzkp;*Ls%umYk4hMNWRHS zYknsKUo7-_qSX#SP~T&{F_9)KEQM){%L+7~y~1nidkkSo04&Kssj$1AzWzjsEq1CG zD?O|f1@n3HI7`6Al#*`cc1lR?{QQFr*T4K8W%D@0&E|?M19@tk{S3wIr+?Uz zBe|Wymy@fqk>>x406-uNG6e;(^IGH2X#scB{xV$ps7V{-JLs|>maT)s;*wi z%ReRN`zd8#fO5Q<*vPEdNeqElhZ6JkMboQ*ef3BGgVSG1fv*r!Vz6`jC4OQsNe;K1%MUr z=*edA5^!TPos_=3z({|SNjE;uk9RYBAW~CXYq$J6wb#QN1rUz|@Z&o;`!rqPD*-Cz z1=k4T(&kf9aXb^92M-R9+1sM zoksflk&FF+6~Yg3W;5tIvWb{HcG!(*hbye$nNF^SIaxj-BjASyE#c_3x zX>JP%0v~@~CT=x58+6`$!uArg|O=ipcDGOLdM&<=C;{+PK*%tYg3$ZETHge<}_W zI)lgdAJulv(q~{4=Q@_aOh_V%4d)uKf=Sp?c#og6I!%jM&D6GoteOh|TA_NCF?>fL zzWbXpbh^N7AkWgDUYc=3z*{vmG}PmGWkx9q?nO1YsmDNDQ@xxeniv|K!k>Ken4m9c z#5@=O>>f~#eiynkJ8hq@q-rb{ehm&xw@`yjR+$HZoDT73MXlD5xCGP`fT=$`>ncq{ zH|BNaBqSby()9m8`Vwoh#I_C&%Nb!p?Le?PSf&+BzEbnAfrg|?fL8GB+qb>v>k67$ zS{u{3twL+g-#zO%gNZnB-QD>TxXcrFR2Ak@#0(55#){{37k|($cSQym$s`)MTy4O# z-0ba&1CsUs#+Vdb5tm|fBwu)En#m=a2`0s?g#29?%5<+lt!M9pFad`h{*?3957R?j z{Kx({&<-ec=)Xu^JwwBGz`NrE?joB0Vi3@!0Qe7Vt;FDmhykJif$NQ!tJ-v5{?2gc z0*qg*vgIVQGn!UVEW=XwNPcy7_57yBz>%S~wRm$vg@~x=ogeNg7owt~r7m5p>XlaF z;beXUtS&DCFd%8N4gLTt0s7gr6asQVLBZC?xeb_@OT)QC>?XtPGwDAl8`i?ebQkL#fPaX9fJBYgG0YlmAkey0 zzQ1%ms44eommDor3u$QZOwf1QUW5)B(wmIdQ(|CX+$&J;gSf*N)w%-!6R1{W#&IV< zc4=qFzpjo@3YXcS&-l;=w%LL9EdO_!XPpBS)nvGYv|Ta^QReN}V8)=90&FC6;eNE< zkts!bbg=t2lxSm)=3NIA75=MTCd3KXvkuAGx$1GTP(zKBwd~Gui9N&LzH8$aIZXO+ z0y(Wqf7W3B_rhsZmxs!l*@*ejVstEmg8<>}2dIv$brH7>d4xoZz&wA3i)3EI(=V^a z1Uuy7q$Nyfro6}BTwk7Xd!9cw>{gNK+ zQcYw>A})@qsfku%59NH$d0KV$T14dDi1}!yVpoL4bV=y^y!}SX+N}N^A0JuyEKSkb z#Ou)9*3Fe36$F7_+?dp#uXR-dTM+@hy$rDhTS5ThMlGs;?24p%d0hAw>FCHi#IQ%@ zsT~WxvoqI_E9P|#p1b>n1KZKo0Au^bw}fpzr-Rj!@Qub;Am@ZfMSTtn;|jPDeASo4 z!+0(rw;gZS>K~>zsDalWlB^Sued2P*9r8bkJPSiOIahQ#)%%{5V z9~a(ho_0+=1OYOfuR=ZJDis4L)Xp^I^%?8mY;(h_AL<2caY7Os-dy<;a0!PG-$zYd znm#*R?n#V2Sn0`h5z_~086;0Y_I;_U8bj{4mWCB-IP=Ny@$lSn7HUPL>98>9Se1OB zu^3g8;LAPk+1X5)DkkGqqP4!{Y-xg2)WA@{xO8M&+?P$^PFU4{5#f!S!sD29_x^$X z{vu^JxT(#XthLuit4s|%UEMs(`-z-}{GfkNw>`uK)HmXFAnj(BO6po1%o{$M>sf_t z3ix<#yJZ@Xo>?5V`*M0VgKlu@2LI^&Svj7!uLpO1e{+zSkdRQBK_?gx8~$rGO)ugZ z3NebicD8jBCqfH2%<2s$b-us4L#J}W@oXX@b;#+e13eIzHX`@&M();T58feUE6}4j zR^#U?&{Ts7`FLS^%U8W;DMDszlc%Tm>Kp1m9@XIosXmhHe+mkOgkx%QGBIk4 zjE+N3IC+3+w6l6~v9^GDeo1mtlFNeM0c|BE6;;HyZ_TI>uQqySuKpu7)8yo21xB$q z9b>y2@h8(Wsa%YhY|z_ZO%}5iPa|PeiJco1#0I1X{mai?2))PWKH87<1GnO3rsA%$ z!FC6LtuD{TUY}f*LKRiJw_JB(l>^2M;7%p5BYy7eEt<{cWeGRd?r$j`X9x26${`Lq zk@PCEM&9RGKqE6SlP;-;^OrwHL9TP!HTvCr-Q1)V44{JH)j9f+rza993_9Ltv@>@@ zz8K5^VxCr^h>W>GG35RYf4|Z{yhrK;TEyrLj+?xDsGgCln^6(=Mr>+-hReR5#cbIv z{#yy8Bye(t{HCPVwfC~|QjcVNva)NCB_$;W zP(tm1Wds$LqmWmo7<+e+at}ppS5|#)86dFyIC5Ds0JF# z{dEp?E`2z8B*w(YS5Q#!C8!}Xb7^N=GGRjY$LQ!NH#hf7;}a+lZJObPoJQj-9Q25M zLTX*#HUAo!M*YWw*RQD`KH}~2L&Jld^P4)l$iO21bS7x~|Ez5_5;Y16k2y`rrsltV zjt~)cXRo%#&#;#|-W#<1kl79o*GRQY&@V`&3uu7$`AWP*}*O6fEsk7!=f_ zuR+ZC_k3?y-CqxOcLz=vxmM$nr2Jjui0qF-^-54cD<41Sj{=C-p|0Mj{g-tkB`N7A zIl*LMKtjmqBwuR7N)j#9!S*F2P>+OjG(0wS4Dfu)urDCj?;nzg(4IjS$ds81CE`Ej zg1{2GmfvDa7k5cg&;F#inX!c>?v@&Qr?j`Xvj9@Z$G2ZVN#9u1<&>i%IJr4zUQ+rndaik#NHCeY?s=p?e zyOVf5dlProQt+6KNYLYRTwI(YJcLl_D;ge?5qHOx6+kDSzbaHaZM(&UdE!)A&FIa4 z=eqsM%Rieq7l2(_n65cgBe4g>mwfUPhxr)Ghee!F5_E(9l(|#0mR~p*3R8bYnwZut zt;#!%*B%&^JQl8nbIlCI&fY46;u|6f?_}^A0wK%oo2Dy>+2?njgb3`H+ ze~f@iE-?oS-fXk&#rD+YhIiLzGq@c84C~E*JVHAN(eJvarh@!`}w)yO5os3$G;06uJ(E92J@dypY8r81@WR6xD5o#`ON2zNZceYUsw(0 zb@qv#K9#hUV?Nov;t=&^`Uvrw?yDOzE&+>vwYr9~gPVj_i?`BN+6rVeV}63Lw+F7! zV3N0m>KrCRwa-+FG&5!D>TX^DE!PiFxL)J6UF=N+v^yK3yV}>c0_~Iv8txz0PkXfMUsKihbfcR!12uamUivpW}`HXawp zAtID`lFe+{2Fa)YUOdl$7PVY*x5L_|IEU>44iI*sm{Xkbl`@{@Pcs{O_OE*}&n)_= zF$GS3S>wLXmSvPp=7lX%_P97t4&z*e5%F~QrFyLfG2?xUiaKiE2iAfQt>XLFH(805 zhHKOOd0sagQe6=#&P}^Q5BTad5wu2OA)~<6#hzpj=RFdh(|1DU5kcWg(2x(4eAaiq z(W@|BAG$#Rknc(O_{`J_`?e$P`Ea69c}F`(F&^wS1~I=bFqgUOwFiEJ>14ruSVGnEw)5=DVCIvdYiw#Ce4!7l zO8Fx{M0+ZM1VTBaKeu_XLVpVX)4I?qj?cf`giwMSi{WcPj70)O_4?LWh;RS~o9Th# zEdIH5d2TT-!*VpPrOEFc+Fj{HS#Wwt3bSqj8J|8~)|+zyWfw*F_k7yr$rJ=Q03K@T zY{xGu&)F_f?~e|fVj9%huOXIMYCY#A7DgbK?1oOjXGMm%iYG}m2!nuf;Z(UhJVhEd zRkD!5ZNJKpk3729_p{Eg8c=i{p@|ZJ>ieB;sIl62G3`K109yi}?`$`b93VCcN2~rM z9&@wN=w6^F0y^X+N1YqKt*vc=YE1$VkT!-(k)>i8z2^z)_?)iW{LvE!FQG|=Q(p7u z$D8#BcJ?ohYrcks86QMd0nZiM3p^1)Uhx z=0F4CW}`+wsBJ?t|74aHpxV^f*U6X48&+D+__XZJn}x5vw+m1K#lGJW^=Z<{?k@r7DOqRk^Vivo{z*+F!&QJ%C zLcm7Di?GpT3`mURMR!F~W3~r9%TTYV%MVg1dNglg^AeO4-LajSOE?S*2^>Wr5TF)U zR$(Napdpk1V8>x+Fr>3nB7xJixBg7$U7EZSVkz07#1hidKMXgW0M;?)wm$wdLh5XV zS1%d63M8{Tzl%JLM~f~()2tt70T#TT?eE->Si>CS;&=liECh5D0@kOv^Md(6{UjD&19%^{pr$$XCA&GCf#Qk$BYn=TU; zIjpbY=#@9se#}CtiDs3a7Z~pvHF-ci9ZE{XAg+5-V#L@QfNnV4`N3kYG!k&qx-aqN zgP%bla!^^ViPA%A|HmX>qN9~+Q^S_w6+jMQ!GCFgHk8BDBNSTVo z+OVH6C=~5u6DG0b@#Ij1W-t+#6FW9_u)A&(z&$`w|IpeYv+-|Y(8a2dcP(`fS5dvMFnfk%w_K8z?G2f?V%ZokU1HF>L`N`^AhQb!&Wec7 zbq|l{B19d1Xz<hc!wr4S;!%TTn4@4`_lMAG0!=)CGAsoJR9dW zhKyA!Jt&)QY6$^iN#L-21Bw`e5C;nyOs+cFo@BjhfCHQ%a%d!T2Ke~Ot37hmlPe>) z20-1-F{y)KINF^czDb!G>b*L<R1dquYoK_dZ2XWXw^{x#!IcFgZ{Wn6F zx56CRStYJ=cU~MoK%wo^Pe3a)JUw&SPu>4Zpzh*&d(tbVTV081*4RY@LD1mzOcqg| z>Rk`x9_1qevJ!{pTk0MIdzl7&#_cY07@(nl0do|9WKn z?(TPuj8YDI5+Lo$y#FR?y*139qceBp37TM#D6*>s&PG(Or2CgH^mhe8SKrdI7I!>A z4fq*sT{2fn$FD+N;oQK16;4_Z`uG%U4Ph0AB|1Sa2%TAcYbM zB*fuXAr`(%FtcE4&mX0p(<^vGJ==DJqR!gVw#@p<@5fb! zZ6@qbvF!;jEIb5n4Je(59eO~l2XNRY!5$}e zj%tCD?Q13Du3xRKKm;XaKVk)kB&{P*+ax(rX2{Bq_c3uw=zja<8Jh+B>SB`Jvx>+_ z{e)r}>)9P=U;qOSkiq2CfQw~}ifN9&}2FTAYiai~6Pv~?!YF@PG zsq^vi9jx`ko5!x!G{GeTfn_oM6XEn>bL(~KOBRwdFffR*BE)$3uzhw`5Oy_Iqy zm^Mx*j51IqXN@Q*;4KRf?M{!!<{&P~K8x&@LHhYWcy z;^||FZwUCK_V!-JcwIQ=(bJ2hID227qcv?!zFpgCpwax1Q?sO6|CCY+%j2Y1c&0Kr zp}`$q4k*D&tJ!8Qv?e{!sV~D4$9~@IEs!Is!kF8|;Y{twXPpL-!UPT%@700;!L{6> zY?-+LKR^2;lNTVb<~CL;=0;FZQL%o%@s7LN5bwP{A{V?ezy+CZ@8qC+`1oq~3Nwz~ zmVe6YG@QBV{5;KmPRPpb&`AjN1VG#56!lF8R?X%nl~nOQ&?yTyUHgtV>aQVR{240_ zYSERjUomoPJab|J*N$raG#p1qDNoU8f6*|W1PUvBK`oaeY2O68b&zc`O~&od4xWJ; z__4~_bf^-PJ}4@i@%+}7ftkxuPHI>I*mmn1L9fftrc*lJ#1ue(fAp-|*rmt-UL=yd zKg(X<(6ByRjt7jbwA#)m7B8P^yO6e867Uc>Bx%-c*)VHTNI`FfdWlsv#n(??SU281 z@+gFeV-Op3aiK{_NW28z{-FKCP>5=U2MaT>jjYg(unNASQMkSj6cB(@mP><;%@dJ9 z$DuhrqcjZ-C0_Hz6aum*kdRCM?*_27w0@rBZBxLE+5v8XN;ct53co85aNgz>TMkxZ zfh-??vh(=On>S!(y1&|J5zKmMsA;kG=Q=;$n^{kju}XB%v-JY69)X}9JGe6>yzXVe ztLV)wEh)gm33{ae)yFn`cCstf4BA=w?J_N(AUST18UfjKYpQBa@#A!rwGhJcDTYpH zaCY{|`?53)bm{98OD${4=Z-s_qn1KHXo|A3oeC3x9Z0%#d$z_Dn6Cg&3baR?c1+~nh>BADar{G5h&>u_wYy0v~`c-_NS|DeL=H_=%gb% zLZn4I`d9nb5b6>H6ywAjU!Sj>k6wT z@n5bKvwsmJEC81F&OfFRVeKr^LfbA3OaBjFSQFMtPi#hz4)t?(GsyuxN?Sno7HU-C|8ANSPA&h(^7cFoSl(Xe zRoNl~M&(I~8ISkYOpq}xB+wVv3 zZM^IE5DnA#tgJoj>dqbWhYwT}S5p-fG9?XX6IjDn=#>%HaU_u3xSe-A0ySC`reeau zOiGgAGm(mfcXF33+b!bBaU3t8Zhd7-^Si(Ih=_A3iJ~nv8_7wvLXcShkVCo^|H| zh9I=&aIGtriy0iHdyecnAhi(Oov|!&HYn|y^)6q5ztiZ?IPf2VoPz~{AWY=IxLodW zO--8N3aY79l~K0$^FRtpO4~ofrjjv79%Nc!!f)R2IG(eMKEmth$#>{LHSpD_vRVLM zm^!cX@W5yEKgKa``egn)ZLAU_s2_HICb4};OyU*dvm?r5|A(7W$}P*~3YZ2#%Zl@_r5gP2Y}I<>mQ$tyv#%9BLtsT3gC3``x z+`K&Um74bh-D4=g-~{*hlzwJ(#XURXgnSLy^Otk~l>J8~kbicP?;2`=<9( z+!&{vm#<6}#`k8PPdfk61CuKo&(Aw_&BiQ&O}&P?GH=heytK3fw2e0#T;F0CwLi>G zPfXa&0-d>qqslz+m%iE5AoeqYu7v2GT+L%jFw2LivSpvzi@(*+g=~&-AC27sgLvd% zj!92X4>5OET3S)jUij`qeSOcnfvQI&?G=N?bJM8)%aRFHVv5te`Iq+Ej^%h`@It9<>|~AAUx$i|4+E!BWby_XQnKq?a)^ z8TsVo#7*`O_Q_HVy2V^&{Ok?EE5E>K7_qoWFAX3$MRmMeCWfd9c87@ceUJ)z)0S}zmtG`w;yHXJi(Z% zvRsW#b^gZZYz6#L!eD-m7SX$8eC^bK0>OjkMpB>J-w1*rr3TP4Lk3l-yYXGi^uXVR zYk;r$f;3j_ceu$cWWU#}4aU_<%ALRKzUJE6+U_OZuF++Go*FN^D3)=Dp1$xW2bXZf zr_P*2O-xKE@E%Qv@5*zzYkY_nQjGruigILSf-RUbr<~7Qs-Xcjd(mf z_W-tRS^2V`c(;?1hZ1^LbF00%*e@Z1O8wOw!fo!SXe=b+0HKpb-+R& z!+ai?)0tR*lG<`RTQ{g5+4P+crctr72C1^y_b91Z`uh-7BE--!g$6;0SffTmu)T5r z@ABPO2dm7wI}%}9A(O|n+Y0_lQcaYCOnuX~w|g(b5QvyEjwl4wPiI=w$xz{#_a2S% zuW8$q2lVvxlNZM?I63_p3CI4KNc{3e^mazM4E9OL%Wy2z^5^Ce-K=4EJaC1rEJh?c zCD)aLIX50Gm*M|B!T88q4o`P$^19#sj1W4{o$6!B^+Na>$@jChKaw6wv-uYSO*oWhAE`jTpT ziMt9CDoliD>(3sjmg4)i=z`pJ`!c#62j_PJn$oT^%@`}j6t;gyS2S< z5ToR-1)(H@oxsLuGE&55*xdw{fSWDbN`-UCAliH&3dSD(-CBuC1;o~pB>tAdd!X9* z<+saa=>X+Sk@0SwGQ_OEcdq$64Vu8iN z!UAUQZucp|@`w&+%|NqH5U^N(z?%}^~CUEQTxrGM1Xe+J>h z#mii;p3A24zV2^C?uz7Us#)S!A|fWnANm^guNPord?d9M71QQ)7x_QWVnj^QhX+)` z$7U|~H<@@F{)CC!f>B6UI@hzPOm!Hq2c*O&k;^*npIGd~&PH5A{;2Y7xw8Gb5zt#k z0Edg$V5tiAm;IyxFmq+&n9V-)l4fKAle z600x={CfvGv2SC`pbKuUYzHQ|fupLquaD&8GkTSUH8>rh;B|rP`|^0K1qT{TD762{ z5($ip8EurUU|L{4=I_|U$~ZmjZyM~i-JU#lfF}wADGUYO%NM}f0N%#eLn<_iZN6Xv zkCJv{p`%13jFJO3Vhw*}TI z@n_V$^YTn5E;Lc-22J+feSw#=t1ykT{hO^BXH}fB=g|FK`5$OLALT{D)5&y08e;MJ z9&v8X#OX1YLces7)O}@)!Pgglug}gBW1_e9{#BHoIM$tKv}jwiLeeMxze@`iFI-7d zjGg=9?Y-E1$2Jq=c>=up$~?OU4H+~leTo~^6ZB(1zs2S_d4wmFcSjJV5}{wWkZt#W(T*FNR_K;-O7m<~I*WKR;daofq!Ja6UXsCjtQ4h1+kqK*4g45#1&8PyDEJ%DdcQ_M1)%#zQo zwuf64*>|+JukkGjF%%Y@eJ{j>dYygE`La22($(4df^@+)X4|YHA+gHJkau*tUS>`7 zcD)bYJ4n2ie?Tgd0wC*nr73YVo%{RZ_iQjH;9!=Nq#J7`XFa}I&sgv{Jnnu2tKhT2 zjERZqjT4O4Yd@N(;Crc12T07Ti{nhgp4FOAYyyI>xoQt_8B{;($J>p^*v*%}RfuDC zS$#Msvg5DKVYAn!XMX_ z-XVw4D(S+TrYk3G0r!*U=H`z;4lXg2TID0vs4(kl{&cl}a?;124r}4Av zA+F8J!Lwh*I)*y$UeGHSka3=1Aw_0O8&3Z05}B)mO_XP=Raqh9F=;MOPYeNjVu|^h zlN)@eeVfmDeI%b*Du#hdkjZ}}Uxn4{modOKrmG>rUzUrd@VLEqC{!-ryns=(38Wi0wXEaO$7J>o(?&jc*eDWk zvd!&&LNrr*wxn3eujAc7rO>o!WCXM@<8u~v_TJ&O(d{WB0k`0k>zO<2lkKq?;$gOM z?FE(O6i!Q4N-6b$N*O{Ve+*(U@xcL0VW0xAXG^K@b)#qoe-a(E>Tz4bRikRM3*9hI@lUy#%wYHR!aXC(i9wv*+rUq$<^mD`B_NkSG36=^)0Nv6t5>%nw+RcA6D z;zmCpZJUylo4Nzu*4M}q@$^PFG5xmgghrJx#AhO|WLukYb!{!H>w&R!$|ZrV?SAj6 z2NiG;`Z#S*%GWy3B3;&=4raJlNnZr$VD=w*9%eD-jF|o5GI`AJ4M~&CT)Zfp!WVEe zNDBo^$3+ql&_dGG>M@_hd2}D7oAvee66ak(WX>BYfXxzXm~KvCBN3XL%hZL3V@YO45OP_| zZ#E>vpD=DNw-sr{L!57_s?O^FCIix0E4zRnAd6Y}1^C&W>OO(|-27Y~q*3YVb#sMD z)DzWn#Pmw4=cxy$?OnR)z`7a+tB7Q4E-RysqueB3*CYk%utVr>6N|<86He>1qTkT8 zjL1VB#~X%0yMIdRfdXj`^>Bd>|=pu#d9_`HhzA(mFivZtCOj>2uEr2CuACx zqNLSqojF0xny0-w-dbJ@OWj>CjVhY=zwUBzsUY2jZ&A|GNh-t*jSa1J4Xp)1e_GFl zg8A@q!k=vqWMq%J<3%Gykx)O$+f6(76wYW_gW`Rcfxl<%Qp*xF%p7w*OsCd&(%?Sq^oBjpn9GmX^6G_#{`StbA z4DnJIH@Bxhow>xs#LiOSQz40_6JH!N8LMURBWZCdbz`f zT{lmio`uC5AS~i@mk41~d58gGXJdFG;Q9(RO_6Q`2)bx^y%`!@-VBUVx*y&H!_;be zHvG@Eq$8b5%AblqE&khW?H%tX1rL+MK%&uiYQ{S~bIg#AX9Wz(U`0Me!2P`GcfIww zE7srASD%by+D%bWDGXxC#ol7-X9}49@(;le^Ar8*u^ky6{#sEHr?fO|@8pE;9qECL z9he;Lg)x?tyhNSXc3{txihh&!?%TILd<6w;nNN&7Jn_I50t6LpsmkEs$I8sfn9bk9 zpavIA(9fTtp92CEih#yhz@RfZZGG^cHF*AbK?_1+2|gEECS-%^iGmItX-KbJ`f~Hd z^$9Fc)ZTQsfKo=?^j zuP*;TzTP_?%lC~RMnxe~NwPkXy*F8f>`i2gkeR(#AG-}CxC*MHpieO=dip2vBd?_<4>J7zpbFE?I@j9CgJD`hF)k=j&9LXc z580Bwe29dY?}AU)%H~d2{kyupE@AILGgNu9u&^L- zLWV)p(r~&D%&Z{%r#>@B;9;G+<)87S(Ll1x?Ro2v^cqa81KJwKc=zdIrOgIwux=A3 zyg(HaUK#q&yh-2WUt^FO+5ewWw1y$3>eF>a8bxl~6P2IFB?e>Kcs*A0`;&`5ODG39 z(u<>Is_1e@Z5qexLy0C`{Up-+{`>2Q%U@R#-)leP;~6fuBZs8xMt+wkzp>S`#=hQ2 zoERu3lC63KN5z5dM#EYhCl@@$tmWS!YAhM?c!2g(p*+aPqO;uey3{Hgv&@z@TyaFVn`TvpP5PHP=3*+G4cEQp7^~GK=d%!r) z`~6oiky%*!N`j@TB*^JG%}G(Wq;1O zT<1r;A%(|(9v5$n6Gf;sz2)O6A^HnCAF_m8KC>>0F=cyyW)%G{5?5vU)>32E&o7#? zalMTuy1K>^nR(Ua7VB(Lj0r=gJ*{F3J8d&+QWTd{?J(3<C(w_p8HT6Zk!t0>?#n0sh`>yxeH&c$BZDAcR zSM3j0=*3u=VJx~juf@i&YLuMw17T6=C8foifTW72%-pziX>sw^JsQM=E}m+K0G%n% z0h;yo^_38%iit}&HUAD0fl9e|X+vM@3j+gDgoIL6_=Bj*B^P?W!XWzkSo2Hs6tX}n zpQS6Lq>|-_-TSL~wG@Ky3RZD|jNrH&qP$E=8Lw~+J2>EC=}W(VNJDr!w`r0f3u`)F zbv1o$)xt8zLnR{ng_>&ZASP+iqO<+=@fuwH*xNss>DIEcsK={a?}%nvsfkhko$4s+ zzHo8X^9VS18GC11Zk*WYFyeK`qy7xHv}~%8!j}lA`|vj9;gM5QF_C2_fhN_kod7kWgxN)SNE=8s!vTt~F_pUmZo z?D*8mw(EX&N{#hSh{I>v*ypYJKG?}}i^&S7n$b#BU_s0_;LMZ|$o*ZsZiFCCM>w2t zy|o3hr|nH-+c>sVyBUhbr4Dt{33AvJ!IF5~w~K>zcG!+?o&;OXX%-W$B;ew^1(?MR zhQ!AUi!^WBOVHd!=RbB~Xl`y+lljlIA=da$-!E7TxVN5;saVw6m9Jk5`|KX2JTuCY z*fT#3gtvF8-2e3c%SkSK&+R)Se@;d6v~NB=-FGIh+$HwNv}dQMyz_UJC2cZgV%Rjt zK!l#PB&c($7Q7-(CnQ?rcVNnB@-yKH{lTKir%B`FoT@}~X!PcvCcn52XY!J?7X`YA zGXO)9Hc#`WNUp+5kWv7MW}^SzSZMZ8{9&VHSn#c$Zv!2cbPG~Z$X9;!_72!R`tx3n z>MomE|2jW2WpV( z7o`?h?J#XFTQ^Wq--DK%cmnfTJ?ScXFmOx6|Ij~luyizVM7&=+s-z!F6i>s+kbpey}8^;TL=rX+1rx2Z-=_;1>%&Cjd3YhsL# zrk(Di?QcA!A&sAI@|)4>^^_ovD4=@zAteOoF*=c%=v}pBDM@m2Zg2ROH7m_KvpCM= z%zW9dQCp+lY$6H@iqSx-%l$QYAt&{2nCOkeo#AQ$4@`JII!JPb(@Lh(Jijqok|05> zMRgb5OqAv;?CHI=iSBfah0lvqZ9Yl<%>&i->W*~N1CpRWlHB8`Tc-?SfEyh_@T~fTBQ}JIJUA+Sx&Nu}6*`Zl?GOQqWNjP@J;Hm}d zvccP;Mt*<&Wv?t=*Q4U^$2Ag;MB9F1PLaaj{gI}Lo2qvTv}e_3MLqY`x2X0WstCQ) zZac_VXpN|iCSgi|d~YU)gG@~PGiq~O8VP2F+1BA z@;PU$z5XlOb{ESU+!4i){9~Xl)wslES0#g5wZs&6e`B(z!1dR%E#wYfVfu2;#PMY$ zIKSY|?b{H##TD-f-5RJ(Mh~5v+!$p=T@Sw|R-Pex9AmS`(Y5M<{L{5^a&7B&m~BQ95-dA0KAMb9aKj z3NTC@v6BV!-fN|N@uNLz(&{!Y%*e>_n#9Po`!$Lr>?L|@`=9xA|I<$sX>|Dw?)lHO z(5>CZX&f!scO+g;8#Sd|d3tqiLS`&5VQGF6O_R@Y`vVmrk29J`V4T;7tQ#Fr?7rH7 z_AicTG$Dh7q7kFQdF9@oemr`WwuUKTSc~-hsmKOv@&ZzQ-h1TW*wFUPrwtYN>;kA~ zGA+oqP@V19^y}iUA;k+gCyMJ)LPR%sW;g^V1ap-=xVeO2yZ3jHZ%x!8R&5snM}Jo) z0g<}xEBHQ@Vnl2ySk|m2M|816Z)EmmesQ~OGCe6(J)>nOkBCt;?E9j{`ptg1`{>P} z;RBvby>8jOs^&9MHMIwbcj{oQnRVN7eUJS>rZwVLa}c3y$9sDGKU3Fx)l&22 z4(LL0G2fnj{!y!`@gze2a_rjm>er(uu7EwBd8q!GhI(OCS`&4MbcuxW*8G)m9E2F% zjaAE~c=#~zHhC_3)kd^zOE9EwMiFaXueklLHeUeAXvxTQ@>@bQ8uQOA6*N|B)_BeM zEajO)vZ<+|deurN`VX?VtqCh@-Q6W#L?q|9s|21|g>!U`!i=MTFaFRU&8<(7IFSg> ze+fCATW)KoaybKF&>!tD_Jp;_-el;RkP+IpQRL&_smJ;@zb|YZHy+bMM!vSa|(1P zaA$JAKZ#FT4gX4W;|a+0;e;rG`D9fcwt7vveE+?lxs!5W9N>J)*Y{r_BsC-8^R$+C7^RG^=_{$>0Vd@{ zn{l}&gV|Y!rf=S0KiR2%4N|Agr2;d+ zmXy%WEuUeEpQl|Jn3u-@xJ8}QyufNnLYl8H z3KK)%WJ+9!$LrAq_xsg+8m(BfEAKIXjAuoUF>8Yq4{2m$J`dCr_~`0pIOTIi;1L^F zxTAJgLti_KVyV;3Wh4Hv$inn06GzY{FjQ1{6mRu;EtOwFHPIf{p4U~MSL(qh`^S%n z2#Ju&NnA+?)Z=)2WVgsXUyX zUw>aw!QFDs+r6XO4@>;A@hgr)g%geoH&+ig37?Z!K(2INOKAV)28xS`>9yCA47EQB?cFj6`5(%b zc7DDV4gD+x%{6>U#{@7+kJ7E_$Z zA+pk5wv^-0mY2qjse_Oin~i~lfXO$r%UwA?zdR4q_lun4&V)=p&QIpI_Niow)_&J` zVv?}&_PB1hMjD0daAel*41QVxqa+kl5Jvw6=aR^icf&pfkly&!c!{R7tIKFI zix2KmKT((HtyH7v>OV<&6Cd9QnM*Y*69i8Z!Y!YwNz%TYO zy7R&AOd>cFJEM6$;f}&0!dr*oJ|{^BCKBbpBfB z3?$+Mofhly_Q;DDFMgD(>Zz5z2>@56HskpNhqJuK2uWpKGd<}zyK9W!=j_}jl<~Tg z>iTnNG7K_C1Gfg{Xd)md>0_n+h7nJ@dX{nmDk2kyo=$j7{_okXk1$akQV$Ofzv_)) zos0@-OU;fBn0(Qyc|7#Ilz`3nNd)?H3x>7MZ}~$7>y@_Av9Y?ZOdChLOt_ur>DYOV zf6pyH1Kl-frs@-rdvhK47tmpn!Qt6B)m38^@C`X0SbT9v2G=7&!uVR&62EbJS3Hn#Rn4I@|H*uRk>7HBJc6Zull z#Iq!TJ%{s)L03C_InTElH; z&dyFTU*{*D?$wn_v)Y!{*5Ia{F>b~E*K;!+A)iJa_OUycPSAIV2E0~TGonBATIJd+ zDyj<|0fnJ@eE1;#cCW&9n}fleVR1=ctCp6JFX8JCrf>=Jh-#YD{QRV>)4>3B1Zj|@ zq~tj5H$x{%eJxe+`}q3%HfDXf)ASLy!+zpqmS%ByYN#Pgy@bJ#A*rr?6xL;ZTC0vv zvi4`VlAw?vGY4}aGlF}!3R zp@ZJ)#hFxMGBO$VNyz?0tf5d8V!gaSnWddi97ZXvbNW7Db+`h9RgtwhfJnOG{Vq6r zUTy|s$8fzQ#HCe6urzX*kJiijVCk9YHEd1^8TB7s@z5BX(64kGZtsedci}aDSDO0Q z5R_;o0&UHih?t9yA?K@#DGJ_nO=94V=i}w&`>a-N9QldlNlc+Wa3JwRRdKsQd3;d8T5TkzzEMn*PgbWK{G*Ij|_ z2K7jPKqF;HCwS%LVDKk=vzV%Hg7Mgr=bHHjIj61N|BI$sRL|2H5aJ)+Mt%SOeFIhR z6U_lgG&Yb*LV4ogaCOq`SMvsCkYaW?J-s?xrXV>ZB$QHXpPgfno*pi!!XG1rMpvF^ zJM`CRszWBV!x0oeTwg>7+m2%a*71B-5&(2O5`a~@)W6(p_*Ym>ZSA@4CNq$s>VRyx{*VT%0g6aXP zr`Ccs&CJwPPl?>Ve=R;O{KKe7a8JoUe*8E(CMHFWs+j26UF4>&kA_F)#N!;kkPB%Xl<^NBPSZc#OJcC^AG zaBk)0=IVT>+?fZPWIV+@VYD-$*-ppe-&}w)rXh~Y(F*rcAV%wefw>~!f765mcv&RU zb^lZ~jRT9|!28>z*x-TM+1zL-0BYTw0dSvg9<<$|IjeSZl`*?q7vE2p9@l%m*Mt6< zf9hYVcU}G;V&VuyI1KEg-*V0P7?SD$dhj2=vdH_NANiI|q+>)K9A+kAlx%?RywCrd z>!FI^eE}<8dV1hg)iVu5W+cJX~KvxPe=9B z(tP4;j5+_W#o=r+_{Wo&?9TArqmmV=IIaL?X*FgrPXs-MFxZ2roIo?l8K%kQYY}yo zdSlF6?XaaqntT5H%!TFX4iaQVN$pAu zj1*a8^SkjQh1=8j9MP}HQ{9a}TD$9mO+5b>G$(_ds$`j8U+0QuG+g`;>6eq89?&Hr z2|p7lSn<(3ahMe~H8n$^WZRs5orSXrfPIR=)hi1g9J9w|AC-U0X3p@{q=}J2pN$b;agUpu^acI;uU!T zw%(sV+b?_S_>^+B*cC|t#danN@U$?~(bHR-<_sk#&KH?ctG8E1Qmz_D8>my(%77yT zi6Oq)10W(8VX<~R&OEC`t2b_7_1=AyGxR0Th*7oh5#ke+q=Ctx^yZc(#nBp@8kW1w z6#_jekSSq1bB{JE@24pzC+EUedPnTLS8Lx&*v+s4v5>}tY8e0Hp}obJfCwkN@!sHc z??L2s^SQC{9q%=cHb0h3>a$CyHdFZ~H)E*c(BFG_u1*gMj6Df~P62ji*dcibqLirR z9-1qU(J3Um1{b>|B)8p=Eb$$;YC+m>#m?<*np^BxY zZChzRV9u8*FCRU6^tzO<{M>`5Z2kA@w8o+yo!I*m8udK7rKP1EqT#3!3fiG1gE2B zq&xoxJ*WsT@FhCxd(;EFUGhzxe<-^Xzc+Px7mzhi&n-8F|4{^mm#lGUwL|oSvxP*F zwV$vh36CiV$~hp%vuCx(Q19i-r!xitMQdZgwaRWy{*pZ@uQ@aWGi#O^#DS~=8R#|tNVQ7WhR?OWya)aqL}+JW&? zf0C}DdGP(t&JLYxuGtsW>X+;!H;;Tvat1>~Lf#g9V4gHTy(dH_1R7r37!`>`fFwgI zx_(W)Yy_v6Y*Oz5K0$%qwi@a#zVOYU2aC%~ki!ybt3C*@P;v2#pfhAD^umD&6^%|= zGg_5yM0io3Y==zcc_}VWsE;TY>!5aYbX06K`JQ8K?3I&EC6kCheqAS{q1Ar3<~VJ+ zN$JYc5>D9tuypqhY&9$H6PA>RDfi>E@D1st&6TMN z1EfWsuaLHNx@Aju-ldT%!Y-rzSo+25`;bonWo|dgwNAnt?0B{25&f9d!dl1Dw)Ey*rdu$V3T+9Y_ zm-RoXlU^DaG{aeOpUHxXRUk>kyVkvyj4Tz3$#0v~sD1#Yk(HHowKK8f!=2ixCDj<9 z>MjDNVE{%S+a@=-yQmelTG;fr3@hgU^^NmixRh?3-yPQS%E~f|6x1=t#JtItqf|>* zp?_c~AJ0JaZT4~Vr#Zi`=d#Qava;CNvO!UI6kbd3Ed5|E6_ zO*V5TfhaH>Y9j^KcquCRp^1szP{fA3_!D^f<>jT~9^Zg42@6VL0c47z89-F0s zO82+TyGz4wJw~jv6q@4p)k}Xb^=BesE=~q98pxo1@8}N$=7(*-Xv)fwNaYpZ3awlA zK_UW)c@)<0ejncPwK6r_*evFLYH_2V~=ne;dBF0QN; z!IT5X_oEp~-rD00eaPb~oi9pFy@F)FF)?7eGEt3z?v3Ih&=X%*U;i%q`MLYhS5HsA zz(6dG8W-}Oita={pX%y_jQck>-8$}F>kbdY`}bUPaJ;ZFGa<&OV_=X$on4g!kIm6M zmMM0qWrt=NDN^{N{Dd5{=>cY1;~LxCm6Ng<7#Lj(!^5Inj~~Bs+))Kqr3jkifvG#h z0)sArL9*Zb`dAbzt6c~8b><_eDZShN4JxrC9z|6snCBH7A0Dq?3BJw~CocE1Ka_tg z|EP|Jg@sl)oRLDtg5wk>sBaH^WH{neq@LeqBJ+ro=hSu>uLtLV9ys^ME1hL&xBa3v zc9vLI1)wAu`)a|<(+ALSAtL?r{~CQSdlXra5h)a5VC9TG(x@}$(@Jm^|x@BgB68U)5`;($Y6-@nqKA ztFOrV;>qW#JwMu67f+?=DxhBz8{6aWOyWc%ATWV44z=WhZ?L~c~ACdCD z8z4~D)7`3aoh=Um|4HnOXwb~!tk`P93-H@1)E8bw`gKxi2{0v**G*7-C3K`4AG*Or z-c;vunx#Vbey3(@+?#5T4Ye68yAT`K|JjmyVAGiiKnMi1(BVw?jO!2$myf0|N1Ji* zi&{gu_zaa+6;}h=O~d-1H%zr^WBT3WnQ;2u4MsO36Fo2h^k;+B}#VhIa57KPtPoH zU9r<8ZbbS~ss09Hw|Y>1w_J&8BBX3MhP!MGaf9dKq)ZTPgJlJt=zfQR9=Lyeh z&SL*$NXIvKQnUWq*-L}?$2%0yO_PmG$JtW*vWYLM74Ngzvp?nM%jV}*qq}M~#dSf@ zThae26B}Ea&62`3;ugroRaET9YuA1KS}fqfK-P-_!O|vvAt51Y=B-I+9#CLS)spw? zEo{s%aB!@0Z+}*-9K@hM*qPL8r%k%l<G8Pt;Zu}WlRgaqO;4ZrVc$JKw@azT< zayB)j-aht3DIxmng7_195kc%0mz11|!<}Su-*Z{!%qIX^YMT>p`s7UEd-AIWLU!CxmpbU@v6?HNNt zt*}vLU##wr_g?AsFpVo+@iJ~E`i%u?pE%#Z8#{5@#Q+qlsyDKQZ3YR4o@Z$i~ zQz%mIIuDxsa-%;+>$5dQ;|i1MqRx9Pd|@#$Dky>vr!z`l6Z@;xRh}TUx_x_sy8Yt9 zWRPe<(1G!Q3dAF1`u93gv;pGlYzKC6ou7(j**||{>^LwTmE=|j)+>4h&FdqA2M|4h_pixoj>SpmvRHn9uQC_ zcJ{f0n3xo?Et`JCf~ZUJO0;rQiK3beZJ2&)n14} z5(Kp7on8JoWhv1BTepaVgK+7Zk&%)A1HM2W`}LYqDQuEv$lQJe)y>zxfAQef__m{x z@x^iOtYy@epxouK9b-;hT3Wwv7EuU3=R6Tb4SB|hR$92WGbLS!1V_l&mnTOAiFwE% zuJhx!oD=q9SIG|(i2ZAA-vNv0=;lgTVr2I!e$fZVTSCC8sZD?Ikxl=BbS!6^ofMxd zA2<}-mB^7^sx-X#Gl2fn*fuZ7tn4J29Kr;h@ho8w9))l$i*5Z+7ZS--ih!^7Uk#_C zFh11aNrUD5CwSh3$d#)lLX^CkL6F7tF8E|oZOwHP}lgL#yzqa{+R+wC`lLqqFZ<@E}Ri#z+~ zCyN+qRa_JDdBMbhT4Brm^=g-{<3j2PiF@=~_0`V3`DQYgTJ$50<16*+f4UE5ev*Ko zzuzGWO*dOL)Wbg>c`?rz)8jABitrrS?AlOgX#0D2+=Bp9d|9{ zV8+^f3Fb1Z?*n4?9|QeOpr%(!zkmsd>Jee0vNiP`TeZxI2$=k(z*pn0d6a`>C{@+* zUo#Hn9~x3j4=@)|0;~@fv_C6lq3rG1sg6S5heRXW&2eydhTPgumcze{WZZgl?;j&czM51QO>f=pACewEAN<2vpU>JTWSVSc(^qK z+V{iYZP;qbnVC`4EdoibEG$5Phw83%7M5lx4kjSv%Fu#Nn3iis_7)5wuLXlH!)(A< zX=W$AA8}_Tnyl65-2FUc>Lq4PbG{v3-d7B_ps z3ro_?#s&fW<6XIO1p*1$ov{tziU)-+0^Pi#AJ4IZd$5qmQ2BdQ{Nr7oxelKGTJ1@~ z1^>XBo`V}n%mzDR%I?+g0gg9y6tN%|8R(jr2#JWG0^_>wR@x2l{KtXOAIYG4mA7`q za-sXzqs&MB&}Ic<0ReB{BKK$X%t}~5^~S^;RG{35-sL92I`>LE;{yZh!L`Sfm3G&r z`wN63*T_Tz$f1rASVcc&W_ENMtMhp%rK3FX4 zxq!nL-Id5Hj;ze}9OsxS5{InCVtHS{f=2N@!XnC2cqZ*Ev!L`>A-Qk0mfjLP@%ixK z2Fzyak@LVdoyb{gnyt9>MXUg6Orex}Pu5rVdr=kT@&0;C>##2vv^BBkxa`IQt;G(~ zS|B5vn>)$IyV;<~Vgl0**y-rD-15^MEQwrChD&&YW%-F^JW+R}`SmEmC}giBD=y^0 z4EX^hdAS-La&ppvqgFNfcue$|=jfuf&V+M51q5wUJ!KaN7hJYxZ^Uu9i^kazL819f z>QqDd&XE2xr|CO|EMX}50Q>R8c~}29Fu}pu8JP(vQGhyDcp&@vVt*wb*y9=cIUL}u z$yUji_;8yXF$=NmIaj`}`49<Ft%wYK*+SMY5XCmMKzu0eIK*5rSv-~_3m@(63Qm=rwcZryOeG7K(?EE z|3E((Jw5&8X%I0_HwdFOn4Caqb<^Q2`cD}Fr}gUajXjbBW<_<+qg_iInx4e!r^O~? zBCOru(?3}H@iLH@TMDx1k)ULN4v58CZO^7iu=MK>3XqCTd*chc%}tMAq5gwv_;~GW9hc>HEzOPm&WleV-)2k!Nee$}-njza8PX@IiPP^;c$=ueJSdLvGLp4ZO zj`nB#V)~Icw|3Ix!{&J%ZZ$v+j5S}T^aIZJede@u>Y`I@%*!MEE-u2Cah-k%oH?$j zJ5zuRpq^OID8jZEJB5#eA_KlHpOK+JM-nui$ZdU35xB6P=VU|S|K>{#XG3AGi_ax!;hu<+S7@4}n$#dAb!LdmK1brCVK&j#xI z>zZu#lV_GkvVb+ghxnp=kye@ntY8L>@)ya|s^-8JrI`F~J|ke|a3#Nk?nQYtumcuy zzShq36Vj(FTL~T_tXMk+3Gk2_YU=Gp_JEl0?b}Yf=?VRYA3j9ikGs2Ae(48rh(o0D zT~B!i_Wb_Gbx7vFG7?F16Ot~R50^;@j(s5@RpdI$4@FmC-7hY_Ix|tZu)nuws-S!a z=(qI033U&0EVP`T%hSZETs?8FaTh2BrW_$eu7W*d?B~w}u}M(Lgg~~5)^jSq6RT~u z+T5QO{+}j)q%CrG)vO)SRxDY*D{`k_95{O`Cp&mEd-vCM6|0(xj3YNbnlv^ za7EBY8J+`E#cdoMann^YiO6CUot}w*?AFJne|@vPj)nD*pFi<7xdc)VUTOtYpP8F8 zs5algsBCWVDR`kCb@lgRfu3WxJ0EX+p?(4q!Xl2Kt@Fp{V;QRf#T*9irXLSIH#a|D z^-#+-_;vKg(z@%&!S-c5pEDL56-(v~f(N7^yO+QPxq}mstM|DZ&s+v28fQ)@z8pdAJ<+ZyukY zb4iL;!C}$D_UZfvv;#oZ*)EH_QA?aRr*x;GoQ>(fPi9IDI zL#l-~j)~hn2PYU1m+edywUkO^34m#vJ@{-7+-(Sf_fxelcitz4UTV;pE&vq2j_#Hf zG44b}P)kWbKmdHkU|jOR^#Wdj7Y+$xsWG)WIL0O4o&=dKTnIv$>-JV*w~>YB#Md?LW{0h|Xfi04{c0d35!LG%q-Rq7`oCaj*2ONl%fL`m+y0Vw2QM7M7 zG}pZrCk)l)BW16|Y3)oWC4SVLhEuNycB$=t*2;YV9IDO#KQ4lHHkmBwfiO{=2z1-J zFO4Mi^Nnq`mZH-q-Je_7XND()8Q??&Oy+g%F`Fal>FL>>e2oy0Ny^Z0v|lAk7};yE zgGa{B@Lz)>(2aMm%JMXaw|?yxyVTxMB3re+)_ za{k@QaZypWGVVNfSJ6Z%S67L)s)POt1HrRc7V!joPAHE0-*g3BV}D3>{A$+00imi* zh#T#A^-=*K?9yz^7dV#yjCu0`r%q=hGoTnqOvSm$)%iaV_?Z0tA7V;g==inJRBA0@69gP0Ns1e5%LKsP)M?d)PD{q;$vxB3XTRyA zwD%=+A4}~kq*Q!XT5@^pq?@;K??e<()KI?9%&JD9ZqrA7V@YxGsrCpRDJdxnYwKqa znQXCy2*nL7tfsE6XWP;Cc7RyrQ$q1@hJ*@A8KAe6{bwcWopYb!b z#4TkBZz5YbA|%L9Pmirn7A;XR@jV1nbVeJEz<9YM`$iUwdvYqK>$Q7s08RQ>`yd|t zN%EKhEQFJ9hnDM|+$XN5)}8xso&bY|Oi(u;m6=K`0P0&V+|i|7W1p00z!1OsPP>8Q z-&}xesLaLZa(nBeIgV(r%(<(w9bUeC`Bn%YE&J@$t(uQ#A5y0&=mlOwH)$DWqt!=9 zb{oT8TTLBCqrAsFjaG4#`33wBc5udO#zcH%h!#gvY0=(c{iro`?;5VI+%-5)JjHy# z;X7(;!fHRL0nw~i&Rri1yERWLY-cD8d*ZuQ+`;Qaqh!%j8m#|c$4Xw4n1fbw&hs3D zyr$N37FN~{d*<5+ht``njL`KiB|`TRuRymu*uNYcgXel1H8a_C=K_JXTxhSzl2On< z`+7KURCiUE6n7SPnx3#2W*I3PsI9N6t41m-8%G*&ckunN!q(t=s!!wFY3=47Oo@XV zkG6a2!t3HPRkLBOy>Z;^a&YRPIn<&+<<)6#SJ@<1zT5LKli7TCBz}B}hdr)~PK_z) zd-APIZk^eX%nS}vtCrPOmhoWn?)j>uHkLPW{u-uuR@?unIcB@$9H(!;qR?M=Gh;s<{$_>*?Ii)!MZW#%Oy zy&g_`7$HbgVAMcC^Smwo?NF);wunD5@{l#RzS@Q;AITn3=1n*H{)RxuGO@HhSg*hb+^vdl9u}DO>JXSvO0dPbONJq0Ib} zxvXNXylZm+aZB<`&(CUP&TmOGEtlCp+jlt6+4uBxhOp9ajJ!6Pom*gy3Vt*C^+T=l zdBohpZ*bxSO`f(6|IsTt>0B34Q=8XvJ6tud-P}%gz+;f=`nG#u+Z%K>60^R)$fJa; zjcl=JfR@X3>+Ty&68*KyuHE|xdJV)JZb7Fj{?OZulSR(!;{{Iqi1yCa1ZBrg?M402EOqHobL4i)MGdmnoZQ(6m8I zS0rbDT8&|72<^tRbt-Bm{Z1G6b!*iPYBg0tS==|cex-`g>`RVeX>vK9+)r|62^jM6 z|6bSIHX1_r?wy1c^EwKUM-B#(+An^u;iEg=H5|2FelLroZPIeVM_sW|{7PMT{bQ8< z%TL`2m4^F%A3mh`YU5zO|KiR&a^I9G?tE-(5IQ3B_w2ts8U7K? z4O63kII!E6ch%>ltR+2c+r25xWdEv-y?v%qj6$R~P}&Xg8t#pR4HaK1)WHZ#7eC2Q{-o4582G504Yrw;4h3v>%WBDJ}-*FKQ=!Jdp} znh+R0?{0nL3{YB!CKqT&SPtH4X&o+n$E*-+&n0TB*J1iSKW{hbu59HFDdOSzwI}|u zw#)Lh@``_l>i7?vkb>~KM1jX`LLR4siC_6InCr3LBbdr6D|v#!1=5+t8cwBJZ}n?d zmSSdOqh~oH$I*H-&V_j&<0IN#O33tsS$LRcb3M3%actkZmXe8TQ=~y(KG%R9O2{MU zhI`3Gk-6Mfxz3tSkbMI`&i{BTRCVIcIJwDhA2*YYhoFhDK6*Br7f!7bvWH$+65XD8QMxqZ_%WXBIKnKH+9rDeS8-ofCx+x*3-h$*fMHsYwQv5%i0#)iL>&*JCTfh0WL z<-Ids%gWFS&pOw`+g_2HZfLd7_O6d|POB8(&%fyw79M^#L&_Ba(v^X6^TNTHXiPy9CMndR(yC;%#Fx z86c?TeXzRH15}=-f+s@Pw{A`^Toc&tI(cJZ(aGhz=+t^rD%@EFr1d%Wl_D&J{L-%4aaNY9I%E0>0f_q$C+M`U1&F@d+;}fpa;rsSRACCw@ z3XK;LCK-5Tt#I348XDS*#{6U5W|z=zJ6vPWa}6E$_i9X$S2()kZ|?OWu3q_GaJ=1; zBSmU;*#OhQ;rP}1Qgld2-5=-&tXy^fa7%y9%k{Kp)$UbV=Jugz*ycWMGpp#=RGblZJ45T)w-Zu_MeMJ1Z*!F2cJI!7&u@zu|c{BF`JGuiC$I5^$? zY8PJ#$rg3pL}SB+MtqqvUV2RTAz`hK-rbFG!zu^K(Lp~g)0&+71I9wPUDsM-0Aoz}6?-Th+}W}#iYbNwq8 zOPFI|$}a91;|q=s{?6H-F*T*?ft-(7|2oGV&siyf&oxw4k&@-rEEg{?$yt5T1vA<> zkFhZs>An=qDuNc$Z=suvhNW-Ra{Y#9od@*l{TQIMZkZ(ZX^vY7dxP;j6 z!zit$C9DTitqn~&ohP&+PVcFGXfOB(XDt!LP2-Bt!z%T>BVVyV!SP1Lw)T1p=~;q6%d)l``AO?bQ2s&->#{Emqk2XQW|0dH%ic^za-dbs((jxsa+B=I}IV!IPYWqS_IUyJUUFW8z#5ZaftyoUD;s(!~ zV#y^B^ri&I$N4ttUIe=Y?%lsBV$u>`sly>8VRajCX68dsAab&>4in!ouWXaV^MPB7 z%(f+2(ig;WKs{we1f*iKZ>jFdz0*Y|hqMRslVSPpL~dyfQ%sf6P^K8-fOpU8)BV!Y zGp1F)2A8DrTC97!T&Gb*Pa>@W1XiaiZ9?pXv&7gU8`}K_&^wkcnv;8r;rNK>1kcd{heYv%n;tX z!dGKyfP)cNXas^-ZePqriY<}&S}u{$BUwZ{)8XOQAkK*E6=LyQ`E*!f${m=A_ff8W zA$sWVT}3VJEDP-JhVTLjVrU-u*u`63%%$-9+w$@kygy&6 zKf*|TDtXzE^brq&x(z-VzR&yfhsYxg&)!IX8^r(MdUV0-cKIPMx*E@Wu|!?A2W>wv zfqxFJiolDpKXH-r2hq|1R>t6$$_QRFxC#*jXR{3HnVHtqQ>5$HU@Wt0BI@*)T~|U@ z5tM8dl6W(^aFBva3|l;-x&nyU`Zah?MPl#kpTw7f5PHGWXHU(*fQoH948MC_ zOb+|^e`ZQhO^qfBdUL@Hg_r_cGrmC=j1#VqFBfl(VOhW&-G%sP1+r&u2?qn1K2bX#c8wl7g7KB_Lq}_VQI-+ z?tJe;NZVlfLsI@nO6?!=bD+w~u8~k%k)fvU{e82`rNDqNV0jMA*3A*)w$h7-j(c28 z)Wwfrz!eWY>z;_bZ~Nal#!63n1fa&N628m%itPcj5%&LEIP9qyC{U4lP!g48NJBaC z14^U&N&wwoNJwFc9TL#;LA?|vAn93qm8S|Yci{9I74--%t!3rQ+pQT(x_2~ zT#R#;9C3z)N-mI*y{L3@jMSrzJgpD>L4TKS_F0{v7MtnlZ8(`|$?vui&^*s?YZr(- zvH#wT`X-5Vbo$A~+aV!Dq>UYp+ag>72!nCCvcyA&KpYah9No0*zvm;9Za;lEe8MBy z_nJwr!0I_|=EaEioZjNgY)N9+cF@kBn15zD(hA z-sPS>M{M{x=p2IKadBZqdabg7}v8^PC}+WK-{U zkgJQ!@dH92%Ifl8Ljn~`9`~n_5K_(=Z8{HV`S^QHad`ByUHK#If=j9UkgqKdJ!L`r z+{Xlt%KY?^kgZ`cY4L~5)FEkJ!r()zaN&NN)+pT9-;bd1W2eXUn4P7KmZo4~kxI+V zWZlT=K>|XGMxC#9I&8XcHjq3#tNBnpad;|SxGK12R#!jz<cA;%+(Ucu zp8E*>4e!aI&5!PQXffsTNGC(yx+^eTR0wG13YdEVD&i2}KI^R2*7gsgT(TkseFBLm z9b5PiV1oX|UrUM_pfsnivAM1nnZWa=h$oIS8d}G0)btEfjC8aVews!bomNH~1%k8b zQXS>Ty~PCZ0S>uqhK4Fo5(F687v&nplxp&=Yv}jB7d?4sYPLIsk64uupAToKjHFg^ zA0w{M)*p(&)CBnW7>KqvkOP=Q9KVet{lf8lLO;E?8=HkK0rqvUL-X+Sd#C8rD=R@@ z4Rtf*aq(y;)GfaA^D~LmovH4K5{9gUs5^|-+|=8MuE%0hV*l`SMBbTdIdDE!W}u`% z(b3ZrIy;H+ZWq*=05e0eaVV+2rY2G~`eM>T%P#a|+=<`4nWP_GY<&|Up)H!%hHXmkM0&lsUT&D~qnpure1WiA_wa_wI z3)c6?DaG>Z{QS>088q(4nLKV5kYH$Tv7X-%2RhTXiq`Ah&qOTFG#(ig#h_e6$5G0@ z`}Cnc75?3Kz(HIxbHTpNYX|$qQ7Wd(pj%YLV!o3aP7As&sz>$;3ZW&0cfXdDG<4Am zc>5hpYZu=aS)1E`LatdO^F z<*4Z3)(>|?xgXqX?j?i3ko5y3nEtD%Xm{@46|}HeIxfW2yig{HQ+<~C&K=jc(gcGA z$4P4%{y{C>-B>*+*XX;bgv~{roF4qan<)zJfzO8B_{SU)5uj|rQa@*;Zt{ZFbWmn{n+=r$Ay zR4A{$Mx&hfUj6K3FpwG{5nEyxF9O|a8bRfKbv%6xQk^AV$pF!i??XK#o^`L+9JYe} z0>6DvxpI8tSE;umWuW3WQ|`w$>rX)qnTR?+0_iPq-ypWzIEf3JYWZ4JL`GH47Ll!- z>f-&8iz^$+u`HB<(u!;K*75$TZqK@AT1JK(-9N#Fb2M@_y85SD7iLR^4`NX;S5J7t zweOt)1$46XaW}9a?T7s0k@>Q*IK_02@!+lX0-4dz;%oHkWi2{PFL(xpC}A(zofdi0 z#|>KU?NCD}S!%^nUU)cVnvJSy3GZ1AZ27s(6wlSk$~eAC`_SlMk0f_y;{mfLbH)QD znw|)8Y}G_e0*(PkoNCRg%9+L?8p4p1J`Ri(C&%^zvvIrGmhR9Inf%>5$8S9t(855C zM>)}uBaYkdk^c|+xZ%oU5>rf68kH=O05w}`c^0wrU>yW&A>`Znn#HmHKYYCfR91Vp zH4dVnfFL5B3WAc-4Pt-@h=@pcOLv2SbcskwsdRTYNOz}ncXxd2@tpVG`;Ghk|BP|Q zIPZIu=h=Jz_F8kzHP@Q1G$Kk$bh2r00>`YO(Ea>xeaQa}amg=qw6(V{xC)?x zOol>!D2O`vrwna<)WxU-Y<{z!Sr~4OpZYTvvYXf*!CYWHr}(VI2wHZ2v&auqWm5#h zGCs(KhVjpX59|8PKlMYBB)$RM9=0>}1L^&rh>O-f4*dl`Eyhp>&*Kzrd)u#1-P8XaUf2? z=k<~5u=whW?{y8LGiz!CW9BdN#U#Zv&P$~~e`69YNr}s|i8<@iZlknn*9~VryHU{k z!hdK3rf_eedelJ~DcBCJx4F}r>{Vdv58nv{#Jbu-+FOs1GKasrR%5o^ri9NQ*U! z@T$)Hb3C`X+Gad_|8HsiWl-8Xmt9?i!*T%lpTNje=FCkj3uGx5eeYB%ep{F-gv2Iv z^6g-aOZQ}Aop}ko(52qJdxuc9z@kT;KGD!y*h1!Nd#V|)2UlTp{LWEvC$>=s8bX8^ z?|K^7ttZ*o-tNyO8l2#~Wb#pdFVe!?I?1tn5|f;T_ze7pBG2ywY4=P-#H%RbA3_L$ zT!Vd_9c||zhj}_*Kn0sw3%7qc@Fyk-?{V^Q$E5|fCz8>g@z%l~J?BrMae zvk>Iu4EGHcOt$wQD%2nKGT*8O+rz7i`0e?5ZIPM_EXimA;VS~Pe7){!r6Akow}hsF zPSNS$yA2Lk;TM-^NC_grIzuV(3fX5LySS{jdi~)qQWm7WD%lhORoSa-i-mbzo@~D$ z-^Byr=b*tO2Tj|2t(!-g11*G3tF_5ckd!|;-LSPgC=xDnkZPC91kWX}4^k7Q1*e0W z^QE?vi&eJGx;#f#IdKe^3vw_)6SuZhqg0pl+7gPLzP@)9Baug;t>5a@GQ!y`S6{#c zJ0Z&|S^97);x08KDwPyf6t6&1kAzUFej(y+_;XsEhJ2<7{AOPXP-)kPn}SFTrv^=k zFW)kPoI!b?%@ori@aJ>XJcrJBcGFSf(AMiuxAe|fY$t84wkE?StKxNcn8laJF2vfG z_-t020-_31r4x7&l-2VTCN8peAmWq8L%~xegvB(N`cW!%EU&HJQkM!q;k}hB!4l=O z#&u?eTr(V{63=V7=KZ?iIr3sVvyB#EYadL)=F*Xwt3XY0ttx({F|NwdV7xkXVIr%E z6Z(tr<*MRV8eqC36$ClilQR0tSZ(2tEgN(n%lU_x1`#%;hM4N|ZOzRA5JeMrRSM5o zsv!V2N`p1Zhu8JeEzrJ3xstFu(|{sxH+X8fr;LQT>J)X8oE-RLdwDl^PrHSKpX|oH zenKv1VL5`)bzzD0@SpzTh}scFzE3_ARUp{|7-eqRe)Y6j1(r9ryIgsY{fth74XsEA zYl96n@{~193a`N~a(mlsDK;;GaS3dY`1>nz7WU{rWNU83XXuaQ3L+sRH=33^akE>Y zp<$8ESJ*UL&KgUbvHaFiaw1qJ=pPxJJ935$GO*&hxj<~^Cf39A)s$d*{ z7%uIbeC-v}@X=5bPLtozzT>sNR2m!mbFoNt1O#)b!{x4Se^+FYyv6RC<*R2x?NugW^t2^y=GJAWMcwmT@jR9X z>!SsrbzJzko)WieveFb2eN<=*3-8DNqXn1}jN3X=F3v=l67O~EN<&O#jMs0k*mABN zVM)jrk}-RNhE3K6L#7xuSNL8s6tfS<9c``}j?}toO5YPX2pv^^A8H|cO#ap#^4{Jc zK|FNPuAlN>vAPKZF!_73EYu8uMw!T4UM4)hxX5S3kYuxl4_6rXZjZ-K@RVS?8g z%>mBkfte~5aZQ25eW02xHo5(fb(gflW+T};gO=f_TsAvqg05NiBqu7%p(xjmPphJ$ zVrs~d*OBv@sA#j%k^MoK+y2_P_hRSw-Bo%Nd+>c5DKro-UIUWd%*?E%u^*#09He}Q z8Qp0rCCJQ``{{lm7IIL`EQJkwuvoG2cvt?^mHNq+_=!W8kr$Rdij-70Lp(MHpTzt3g$pBNV8p~b3Cm0r zsz7?O)*r2g&rG>`PP96Z-S}H96j}ez>8&Afzb-#mGngp7uhaIeslVR?n?@qhXq5H% z)<7okR50B-8jsl2YEbZ3K!QL{} z%4MW`7@1dw970$7WLaayDdNF#qv&115Ey@hjGfzIf8=&|N>b8J)3ip(;JsComoHzk zIsJa+h1EWRdvLLXJ5uE+6`skn&}9g{gO$B=|A9=IVAGn@80c3i{^S4B;{2EQ&wE40 zH$6Z9d%%Frt;36fLMqO$q=W$B9KV3x_6my5Y{4&XJ znvFPN@)jq#`*=Qi4h&u#4jsa+*ErQVqrr?sxzftFFX=gw{=p0J!}ZbjAhN5TT;WAk ze^8Gu?lD()u=25{DD$*FZqAx$9VxSy0t-{Q?0vDwUi)>=hp#8#f>4AMq$b8moslTre;RgV#?d{Z~nyStO z)m+&Km~);z)tyVuZSXG8?tE;kstvXLFnJZsbP??>b!iNDkwImEh_)7Lh%(-`V|?8I zWU5=IsY3zk^XtLa1Us%~MDdvwKP4nkfo0(0=%f@P+*M+n^%pzS3VvrthK~T-=Iay` zrq!`r-cj*ReibQP3v};)TBZbXDLY`k1xIoRtF6~CdACEac+FPI6tRe7Tho=YK*`Dz zec`c6`8S;*jRIZCS7Ks6CD%TLpUr>!uQS87l_nP2M2e2lK6nfR+M1WxLadM&pXv&) z{PqofpZWHFbGJ~}maem>9Wie4W3UBl|w}t>7>Zl8fp&hG{TS^W+~_q1=UL z=zwC{8zVWNVkat}yykJOZ406h=va!ENK$Q}v0Cr@16{IL78a~pQ})47rpygPY@E1w5$?*<0!#(j|`qBWiw8T9a5M@B1hEgD(Ba~ZydzrGcG^`$eq z{dv*80Pn$oe=T*)a@QAxubs;`@1>5=G_dwejT`IWsr`iLu9Lwc}EqE?G0Ai6g z-oZmIA5})~;Rio3iPeSo|2(@NQyM?Ht?HwWgvi zq@S-WM5&6F03`9`7x;*=h4#_-KOe#$%cQVfUYG};tNPfk&NkXDx*QN8*pTN-P;yx| z^8&)!**2SWu;hk?%>m9!DnS(32;{sxk%ZRV&_J|z_)3BX7nfF2x1lM}Xfo1SYB(si zJkMI`5%cY3DZo+S23WQd31SA#$&#tP;W6t<_8&qy19rYdYX>W1?8d$K{%cylZZ4p~%nM6A*^CdmGY_!+PS0ej92VpG zgf0ue@LGSANf0SI+uO~oZEEt0>ps*O+7FJ}JE5%QDLY(k0sz=Za=6q2J>=tUB8pG0dj7tV#3k{0adLJJB_*?oG6?#KUj|!|n^R4&1#=jSh=4v>HGo75cymVO3QrJP$lZsEA!eE}8 z-rj~qb=A&jOiWA);qPm9cg4XD&bMb{+#K{s77JJ5U1ujJvs+uulT~N=6MFEl!HnWv z${WV^Jp9h+1#XuFuiK1j1WfDC0Y9Q)otJRU%1Bw4+#4%4!D!TG#UXcbZT<--=B>Z|qB1v(C8`t4K?>M3aV!48 z%S^JR>=&ZV({ppq4Wrh*y)4IPXBtnmFSuSqqrCN-b@a-}2)C27zdC5XcosJ{V&{$p z1xItrZ1~|5+lQs4rNOlh4nu+Rl~qp4BbD;^L0STSuTi~wen`u}+$F8Mc*H|jm!lY= zziHsBH=@p!Be}}#of-_JFr$_YH2hm z7+&)l#xsHOogE6Nmc(G1DVu7L(uf2RH|)&Klw6E9_x_@&Ny*KjxJ|sokMbl3C-IW<4>if-0fv8EtWC-_I}gTUq?4_@ogegQ}x^Piq`VC z*zBvQM1vKptIh8Ffpa&ksGL_rb%0y_Fn1ZwI{`;QTOEmrzz5YXP;!`))1FgST= zgAdFC>+{v{75M(LwJju&7us7)L#+83uOs{dZV* zfo!%r|JW;-ur*0Mf+3#I`4p3ClC+V;!`pnJ4X=GCH@6|c@yHppX9WQT;O>IB=G+-m z^X0cA#yT*7z7VQ#HMc(MQ(@QF+~DTy$PMh?8x;rbXrALIt7A!QAhyFKxuhXrdSO1_ zA`PG8TU8~1fFG@`z7PYhMg55tisQ#KHO(<{WVcxxgC2oivP5jqsL>+03rocBhy~5n zux$!3sa8S~Vu1R%uAyNrS-dKm!`Qv1227HL+zRxleEj{j=2KZJ1@&)sb#>WZv68<- zRFBRu%LL>o5cLR#3w~Nu?2oV1!hPoLy@N?-Cd&4Pg3Q$d9UL(Oi8=Lq_cbFyf*}M{7M?ZE5U*7Bk>jP`y(W0`OfFE{cLJk1l>{xbc+|R+RI7La z^s{V@Z<*4=qC@(fyrnd?noTl+xw(2H&b{Wo#`l@;!#>r1<#C<9|29`08J{V#yKgF7 zy3kGx%nQW_>0~3>cTm7rIP&U3S+^tRrQ5TY+mEIj&M929cYfXARvjK3ZElV>UFy_W zq>Z25T#+n8mtCGn(<)xemZPJ-9{-?`A<$saWpCkj1Q^Eh@Z@c$oEZHn4*XPm$LT_R z8zPc?srsd)&|Yck+dTBfYuDtf*9oAJi})!+_%Xi1|KAKkxMe|2%=3()4TFJ1o~>%G zI5_p~WzW6q?F{F~VeeA(kTGxW`jHS4;eOLwpc1;EjyIU9?M0B{~|s%cLrljmnRblT3cI@fE?@vf(eK*iw2fpGQKxZ z(&v*}T3hS%{l4{$Q3>@Eoh%&`e_c(1R~*T(s~j&YPG1b77W`}2!f~=>G)U3wySs-i z7#=?Kq;OGw8n5TrUnH(qedZ#lYdIuvX>x$|H8gbP!blB^od0(iz1;Fp6|FaxCyQN+ z*~h^&Dd1fS*jW(U0Xs%)4f+ZnULBpPAAf$ynnlBJ=R?!^KksEv3aMR=ZW?O z$ua)ijoGfx%D{YJ%K5BFXR8TZRdCH|V(?rUblQ`xfdl?FR%CcBDmJc@sFmGx=-wx+ zjd2|K17YnE=7I>V?y1n%yL0*M9c7aUN~^xC9|-D>ndfKv{pEwVx142RE}rLZas0+O zXC7cIQr=weaK`UST{(&;e7HiSrYC|lbnYpR0$~d-Top$R9gsiqr3x2%+%8^-#1#Fj zdgMbirnNPIy)RwXa}enFzJWmiBC#8P^Yk_jRT@~@bRW8SdHUn`&-!vgGpR$DO{H7_ z++7I}00FeLeQB16i2o9X2V3H&0)KpcmaO?QJ!Y7Y{M;nKajm-%?sO&FC!%xtO1T$*&{(~>0zZ0YzP>oJ)54C`D$QV9v#g!`j z0lrR|^7fL#7JK1F1yrso`QLy?gTkgGRG{1v;vJ{a$hWn4Eg1XQtGFe z`g^GoG;y1Qp;_a_y@3DQ1rTrv-oiwc3QpMOf~cPNP6*U=M-8{73(fz;U%wGiKU|Yq zlrUilwu|qQp0&WzmSRg#`o7Qj5C%Y6gPqvao&rD`Na};Uy+yN|ZLF=6B%=DtswW}M zgQYL*!6{;pv?8}nY7cK7Pk93RrT?h4Z6#ESU(S0$pqDS)MuV0y)P{rzq&IGFX_qf* zOKDj=IJgk;Cg=?*x7nAiMQ6#R*LVm(0c<4b2K&;q(3)JIguou8zWkS#2mphqg+-Tj z(?4Wgd-{I?oak}#8uJ7%9zm2(-rjs$0c6HR!$U(YY*lC1dddfJC1Unrfkhrnv+i{Z zRivs^&=?M9r@+0>RM;bsjApOaxQ{knaMk&{x7Q6&!A@7{k(s&qPnW9l{k385AhIzf zbbiTbPTgal5Mb>Jw3>yKp@pg|8ErQ6>|V~r6bX!hp@J_LyzKR8b5otHOr7%&tVKO>qX<3j!P8jt=RED!FAg3;rN&PNt1}x!KTx^s>q2CF zJoDwHi$XZYRM&BtJ?bZ*qyWb>H;1O|t{Qp}3Tjf*gx>lDXm@6DvB@itWVBL;zOGJ~ ze>9;Y$z%Jw(A6*NHChwi@aSj~HRlr^7HJ%#(ZV>WOzz+ii4B`bAsB-2weOq;5@4bW z`vEi?+rkDi703V@0qt-TUULp35DDqxksw0a69#PR#E3R(lSFrI#yx zNoKaTdRv<{QS9c|mb%q`Ozoj;A28Q#{&CFz!^O*s3gwMatp9CP6qG zrxk~>29x<5;1Q6ZFYVg??qiEG`Btp}n2M?3&!S+}sP8 zMnL>nh(c2We5;5!7k2ccWlf|!_}bD)}5>z zUn`C!fqC)HL(8$9qp2gOm`c#qTb>`|yhgpD#P>S8>SRd&O)Rf-gC*4Sl`M9IdR;LO zAzg4RbU~e{Y*TVxZ+~0z{H&C}kYCq^8$L zZ^EV+LY|M9IoQMqE(?xsTveP7)Ps=6Fi}wmm{opRt#m9@zj+e`gQy4|47hbzo2|K8 z81+;aXL+tw28e)PGR;`F>@Fs7bTm1m;SAlFhE|Ky{?5G)-GU_fkyYPtAbTU=UHPfu zaf-xlFcH~ZbG(~eK!yDJ+sz*?7v-4btT8=38{yZq^_OjEq@qM%hiCq}z-XZX?$G%O z!RF>k+J~(41v~h^U%h&z4#|z(aOk&%)7sEmEHd=Ds1!#Xk_yKXCfHN`b$K~bxypOu z<9IU1n>TM@nC+|OQWp@p)ePd@6fbvn%&BRp-||z!J7}S^kUnTMneX}Q<%Ox8AR}WS zFank{^*2E8f1*8f#qG#BTdlovU=`0G`7={vqGD_BfXi}cm+qS$>mMnoUoDtsGj$G& z{sQKP7ofyy4S~gw7_P9E*LeKqP0YICn(I)de}c`db8~Z&a9);stLS0(cXN*ZtqFlD zF`$cT{V$La8LIm15>2tt$OBl%y_)!TXze_Dn|hP{hEwEKLokDCArf%HfDE|O-=}pH zRK+K2%<0+@9Htnby>VhUxTdP=nL72P;CKl>=08l@q4s|>XFHNEm!XBQb_7~L5;;&!NZp`HD^%UcC|Yxs z7gK$4ifg|3IVm+3#<0)kgtYe-8Ly*;|Jbs0P6aOC)pY7v6l>DT)$G$rQWk~+jeeQ# zCm-i;;xj2qI63jdrUGQx`(h~%G9kIIIX#79T3)xw0-!6gaQVNs`yzraJA>(71*Wpx)Rfo0yc;3%>wCjX@C#m~n!=y9h+RQ5OrOAF>oZ;M{=M<4^cz z+k1OD0PjyU4^M7gjC0&n05qO&*4s_WZ}q6)2`q9z^6!ufr2X0@n-dka=xa>VPL~s*D{Sb(u|U zjUwCN%5E^?oO;rI0E9*`F0ItAYfhCr@aE7~XxnmS&|6!)4O_dTJpK6}t!_yjtVX$J zE61;V=#Ci2w1>hU1=S-2nD77OyK%^OI3Y&pcyuk^xRZLd;yF)%JuS6*?3S<7o@=zi zJQQRz1p@mo%<)x4TJvo{Q{BX5&^U2{K%OaI=2zsJ{Y#^v<3bAMnjaf<`=ckRKwuYv8Q#kLi+)w8Av!`VebL7uyZvR=xjclB!3*Fd%DQFZMx{vE*eVn z-n8V21cCSQvlVc`f&4)-s4xQ z(MuwWov{tj_ByfKeg7tgyY*{Q&BEzYSpS|1AJ;E{T-lD+6>lCGss)PQK z!7SR*`Q>oMRQF!4g^lHch2{eYb!8v(wIwGfRY?V%e(yR1$qwxlTs%C=Qys@$h&`DkgayVbVR}+YrLB=hzJ8xqk zRNo;W@CLB}Qb@=WxBc$Dy1FvM^Frfs8-&6GBA{lJ!Aaw~Qm`Xm_tBGbtDOhB1w;e{ za{qNfic6rm_81s=FBo+o)D;(4%6vp|w0Y)q(K*4;X|q`bq~1*bl{41F)snqD9^LXw zD11TLKNR#eq1^f-(1|0v&ahI!%*IByZD0iu52B>nCyJjxb?N-hSvNHmd^8zfJ6Zs< zj*To91B9v+?AL*HE4Nt*0OksyZL24SG%1e-Y&#cGYleM=kv+CRh{bGu7052U3=BTf)_qk}Cj+R5_V0&r$Y77&dwrK!I3AeDW#4MGTG1Ycx_iBbrg=W{=e8SK|#T&GjAs4 zC-F%&j0yTXU*G2_M5N26%j@n7jwbL;IbWeLDi*ien8N(~qN`8@qMPyKEe=2W@slfW z3WZ92;p{!xw0BW@jzW?RO`Y3J>r&%~vB&y-*DEX0rE4@oNn94kBzOd-8kUvk6-Z-A z|BloBGl4OV;9JZNjjnHfr53~dj}{;}{!4}-bl-?}79SxrbZeYskq0Y!iHX`a_L4xZ zZm`UyDpUx{rVnZ^=W;>hM?zFu2$>I{O5j!TL3645J30Z;pM!=b2)hD`H+b`0E<`9T z#q>a814<)RRhNaURMi5ei#XSiy(Koi8z7!U=(eDv->_UVH8VJjs=(THxqCHQv6uU( z{Q!G> z2z@>JU6fBsB_?wXKa%vP@-R?Ouo^-Vn%}F2zD~M%GbSLK%QWpzH~ayu%}USZi6S(S zv*732^MMx4mZQ62r8sz={Th1P8a;jJX9uh-dfidMu+`^2H}ySwxh$rB3LUKv(t>SG zdD(qKy}~l|h7*#pU5c(Uf z^w2e8d%yMh`q)W=W_ROC|D>=*9~J4ym1Wrp)*;#F-=gL)2z`g?9M21FCvUlL;Wkq0 zllVTDiDEqLt*J&eJ*hd>bw*60b^l{W+dI2^sz|l1xT1NB1%rNP;!BB{uB(f0qklI| zc&T7C^IG4;MsO9LO;q|5Gf>1!06e?l3O6)146MW-8V_MB! ze+W4&u4}UrIeBA>s;ZK!R@%9Ni%NrSiI`*(D&J z`&QlkpJtYZXh@NKruXrg(A|Mbx`smYfO;Rv3HA8do$EKd=vDIF_Q&r+Lpru|tjqRfJG>xu z=W0GhL5hiuxkH>!@F3(S{N~8QtNajCeu0S@=@UkQhyU@O!ukUs3mtk{LoV3|NWe(c&F) zsm6j`l76^m$hBi*=&-58C!q4@qwm(66Jq9nCMICQY18k4O7BW-T6bLCSQ|R*w3TCS zypW7mtZ!^2>g~PiQg_^wbZz|F=sy!d8PN_){DQ65YTi$185sp+$mMA4D!Jtr7-BKU zyAkr#V_%#e)E%2^X=rPIUh0mQv&*tW-s)Ru|9DVvd>POgJ$?-d+K7XbIoWnKA6b*r zS)jFo-`(8Um{y;czNW~{+tAWNcxAhA7xgw#_KMZFudk>}?JhHu`zdc9pILBc8X0K} zC7Nuy{+<8*?M~fmNcVvCUEY8qUD!1wK}^N;N4(Z+u=P@y_2EN2IK&H^3gM7-Va>Bo z<3n5bJN}Jd+OJg5CtGsokugzG+oVbvb0R{YgM{hb==?{7R2??h@_sW)6j zn{Ch2-;=%~>#_QuQMXW#8i(_2e`y#S%Pzt|A>TxmBlhFRX@1=?^LYr24wh$%L}V1}fMO zkY$voD+N!sbagdNMKFEj4Wny?6-GU?I$-gD1uwd=f5c;5;hHwm#SRtd;U3Eom)M>E zVo6O05=Lw7Xgr-IV-;2dQRw&NBJ*0U{`yZu2)H5k;N5s?2$j0NzRwK|p<4LvKEA$< z^)H2cV8hlFB(VPe1}|m|?9n^dk<~KCkudyewn+pt+gRkB3eiE-@=DU#t5H0>4xIV~ zCsh|F*9LQ#jf^t$R_CO^rxUU6@j9cb*O6YgM|HIz_1#-df!HtPM-*=Q8e zq=)(U88!~S7Ya)Yiga)&2d3$frCA6Z&ERq^Svd|?RiSS7}~nJnqvdD z-&ET-!=Tbrd02+q;-H>aWUuR-k~-ueNQE3bL43bCVSR^s<=GZt@LjYtGXxc zqFVgpl=DG)XMRCJp4H4*q@W>|vSM-ej@^wLH{kKZfY>1@b~Str-=*E-GI=4arbf}# z_2$bfYFR&XU;z<<-&V_{eqsU>n?mr}+ECVj!v~ts`*d`~_V)I0xakY9)s>a`XSb$A zwPa*U%Zr&p67mf>db``~Mq&4>XNo!rA>p^ORj+cC zlW;M-o0*kG8TNXoYruA=?$-_AOkbcFqr`B#T%T0EXfsx$3)4LDljSzwwUt+tR|i+E zNLKs1g+)bSP11)(fE0*{qUWaF)Xz`!2)ooueHM$0<@21xeB*HrbQh|A}UHS$_j$ZnynC@HNJR$8qkKQ+T0z$v<&rayVR9 z)x=aR`sj-QjAubA+%B`!4By#d6Jh@}pFSnhqpHJsvAf?D#_uoM+#@Abe1B9@{EmDw zxcRgwUVUI>XL%s0Ld5d#jJAV9%zd#JVKjd+fq0ZAH4=CT{CMtts6UvlQ-rsIdHePt zlgPDC{|zA)@Q2nnHhNNQnF|evizR~Evhn0_FWxWcXc5CxPzt#IK3KtiePfUWf=tfQ z)5ys0np2zcZ4B0~VerMVs1iiXEUaFnydgtILUxnMb#7)lJ_~;KwDvkF_c6W5N$?FM zcry`@%JOeh!>-l)WLl=h7}|OVZeT)lz;iH-tE@VmiDsPom8Ike z+h0i%M1np^(0FWpnQ3Wnr)NQRr&OO`&U*!d==>yMc<7&}Zn`R0IY_Q>{MdfW2t$>m zyiSQoA%-|oFQ*@mL*2LVMc+VU{a9?I(&hH$@dfv( zJ$BD4a+d~gjRRW4>CH{AOF>U@Ye|WKJk6842r66NMc-N7pHwLBh zIG)E(R<(87zEel~z@T;w$tSSNAMoo;y_%l7fdTS=<1O(H-Abz!^j`_4n!`a9u!htN zW)~U&EI{G#ItS0(+`K-DZE5?`bt+^3_yeTP>vN+8_bLy%tbATP2wV_Gl(_Fzt$uVq2E$$tohy$W0ICqXtr9F zdjaUtO2teY3iHaEb}11AQTiL@e90F@U*#D@5<~*INqpF|_0&vDiw(Rfs?X3Lx3+$N zgNF1(d-*2R9iLlTNPso1tLRTjcWU}Qa@}~Wly6{(@kKdG;L?PkB zu{i59URYdwpufX9Q9&SgJ8Cd9Gm`<4WxsuUFPZX;S&aJbOy{T8C!7WWSI$+)3Q%;u1}N+d-yva<-xPtG(rTlR z2zH;#IApa{IhyN_CrcJBCI$_B({?J+!3BV+ah%GM!!P*Hg=zkKVa=;jg3pzm&c#c@ zA|kwVswdq)e}3^_iC(Q-#afm|)y4+vgX=EQI~j#9nb^c14YhU$jwmBqcMg)RAu&26 z?Hue|0pvguzSHx=4IgSg6BBYIO5Rf%!7ELH>%wo#j4BGDHC@}&a|Z+8J zzo)(O^|)`oZid1+CB5x9Wa2h^iYd z`2?9-J$ICn%2e6&ZR2i>lYI$m6YmRc)irLLjqsJ$wk6+y5)FZM`~>c2_-7az2JBFH zPC8d<7>{3TO2%*L==fcjw)LnA^_^rn8=* z9t-oo7x$gIt-BqcJ@z_IRm}Rj5rfLHU~>0&l!)*wHL(tOmgmR)HrJg?U#&O;7`|P2 z+idn2$IkKKIi%bV&gYL2p%aEbF^>je~ICCM6%qj_CWn0 zE~MKXrA8B%UrkM$^20ZY!{ntXG^B`5PEI0grcu~G4&0;VsW^OTfk=pS4PF{g|#kX>Viut^L_7*uvO%GiqVopT8TNuo6`D|!67 zA&3P_M%OeIQ&fA##i@GcAwB(nVUDkgY=6>U|4-O6RMj*)@L4bI@kss-2D|>qoqpXe zFJI#Jq>Sf_LgJ0LF@cqnil>y;pJ^!Iweq11PM+YHaJNq_h0P~6`=oyyS`8gIT8 zoV$>58(@F)K$NA1y8hcamcNsZ>~3t-zNxRt1zy+AK5V~#Gwh5Du_c(2+Dd4#BhK?= zPj~J}#0HwVR5>`*_xCE#e|9U@J| z&BOakCM5{U3y_w+gj^rac-uWRlHH3T_{Tt8{^OCzwWpypi+&I8BjDHjG{Rf=m<&xu`;sQyfBkd&#lwITXSNy&nSo}UWwFcu)e-)wxw6A)MABytmNoA(*E)!84xJj?K$4+nwsuYLGiVn zscZV9`DWN9!E&yCP?JR%w3{A3$-LCQ4T7JZsb&&L0XY8;rX@8F<<;wEnZbz7Kj;x* z;3#+;xGnk&rX={Suj%Rr;*dBJsF_Rzz+w~)h(}1DO5}t_*llZ9a@m%*r5xRmar1T) z>g#`0M3aCekw2}}*ER-&SZ)pea7H!XDX9xLHUO8ht-u0K-S^O=wtv@B!Zy?P9ooWm% zDlOoMN}IG|d7RPFp1XKOSI{;|IAJI%o*x7tO8Ql<%O>&n*!pYBPpR+Tm-{Z0U`{UR z^m&hf3F*`9zxX7BQ%VRFtLMOBbF7Flb3%Tj7lGaT333T?IpoWO8KQwrUtU|@DYqraR>o?st!wCQ zcC4k33jE99BpNWhx;uyhpD5Bq1Jgfgz1%nd4YA!sVADc>fP~JRVTaP!h zq_?MRY(IP+TYb-9pyf_~N|gt;M|eFPOm+j!AkYK6qP|N_BgnL~{&~mr7x0;WIR^)q zox-vq57cL`Gsqt!U(%kTJ078G1zbG>6qX)feY#Hsg>>cagIB9US6Rf-oGwY`8PW0# zb-6f~xp~Gx7eZT28`08{+$+ZNqaz=AInoz2w1;geYW^tG&asa}KFZ5t-|O zBw&!#IDK86Ks0l64&nwNf*S9$z?;%rW{3@x(1(gh9aB?pkibL79>H=TZ6EL8f`=Ls z_+mnyq_ezen{v$dU$3>n*xc6iFCSVm%D5CKYNka9>%+*zGGUoGZVrpcPM|tV$XqAKfvCN zWm-E~ck9gN(uY~_j8G88d4|o*EXtij8gj;)OPlMoL1bQ*8AIEyYY2A}vH zN#E2sGm}x`64R;A5;Xl*ba=ZYf|w2t4kOzOx=5a$dCWt`pMVrOzD?m(SM33Bj5h$O zZKz=%P?@TCP29jMPDx4ehuKvidVth3pF_dHx5049Wfv?&w3IipuNe zj8x`Ts6jxmDFUDo657Z8C--C#0rC!@cznk7-dv3a;&v1ym&q!WUTK_T_0iRjSC<1c z?v&G8?F8n>>Nn>tkT1|~ivV8!c+gEFn*(1bhHnqvfJ?lwvD++WJ``iN>&iL0sJMvg zMD_;axxf1Onsvyf5)9@3`N)}`UOOdOK^({^b1>}xu6vbV&2Ij$j@ zB05MpGlSx^GfEc_dyLP|SNU_rO4T=Joiyfrxm@&)XSfCuoc#q|tLV@}TaBWs*%UoKu{>696@6kf@T!01{TP>0 zbz}Ylg)jp?KtfEQ*qTC~qxB~GmL#o6s!K|C9X3kPGV|it?sUHICbyDE8cphh3rN(dVsg=_grpDXst91+KqeKsoK+ znvl{B4-wSJov9O!a?H|XXq7E5N9X3|zKuDTu%2?8uHtsx#GH(-xY?PR$q^gW^n1#` zF)g&&jD8jMJ7>|enoE@F-fF4{i(%MJfEmGb=_&N)(n~KbO@C>U+_?(vM^sT@vJ4d> zCZ~r1JCW}FHD0hTnOV@&vVG`g3~Lx$?yEVbI3aK63YYrQ+Q)w}!O8%7FfQ))QtOo2 z#uZb;??RSShXYY>F5c%#N}~N~A>V=FG@HpOxOp~5onMgOGZVtb(ocI8#2~RXHQi&_ic^qF}p0n|rt?p2(z{9l7uk8!mcPa^%y3TKHxp_dK_DPmW zAGFA~G`m>E15*a#TfyY@_4$u^tvCI+%B{TJe*R4EcigCYCDpvJy;r(DOq57X+c1{Q z!)v>CEBKJ?XI6tk*54O3tj?WUS|9=r0Y$NsXGbRHK8Pw{SE{Ex!w^Kj?#9V756GG# zuRpRj-H;HDw%PptChd)VgUpG>f3yI0LRd2dT{B}-a+IM94Ml+@WA=7GiVXR{&Dnsr zYFI>9gvR8B>hs@&HRfx&_pA=~d#bhcDtnXA7`}53S~>jv8rJxT{+S!%UEn^X?}`@) z)cwG@O*D@&%xS_P@vg}6jw^P`o4DG847r|kNhM5@8Einsk}0x!3k!=6X2+&VPmgqd zPnO;Ac>yG!FofhnFN>5jPX zsl>UIV*A8m4qts5YCg|?7`VMmLI@Y2#9m^H;Fy=!R#5oQyy(OLsoEwRhQYU=2nebTTpKn6J=y%y!q2i;fw4kM?*egg`EkxAu|GgE zwr*1jV%eHZy_i2Rd}X(f1hG?pVGJwVWK(~%5ASc|f#xp-QdN&=qCMhxNCZ15&`qZN zp4BIKe_5Q@=S>=uy#DD*O5r~EI?1yeqtZrv&|h10TeRU1NJ?ISbg&qIZER!tW~JTE zwJ}~^SWV#WQGfxvr4)W-K6R7uI@{UtDYL}Qvo)a-+$4wgwfe^~LPnMGU&egcg=Q9B zFY5FDdD$KV2E>8)YKDnUl8{uxP)^P7Q^EG69`TkvUffo~hW{aQFKh*kj5gR~u|gET z#!=6jbdXK>2i7&5?YxqdL`4F#Bc9`D+urgDE>(yKx#z5=Yub!mH< zSbzaaBZx{PD4j}!bc29`bSd4SZbCW)q`OPHK}A|pIwd5fyZ?C??(dxaf9L$yzpfp+ z)*DaGGc)%+Gptw16A0ujSNw0!)Qm`vym&EiYji?YGUGL2MpnU zPBv;Dnt-O2sU~em#Wb#B&IH`(6N%up^jS`+7W0$YOlK>C73tS=P62;!ka0 zUWv;+Za*f#dje<;M|t^G?{DC*(oY+?ii*q3#0V5Q`(EHOW)UGd1M4k-c>-=VlC{ze zm#`>BV3bv&&aIsmNoH?s{w|=Xdp6a|T?9UZ*nz$iZWX|Fo4L zG0*NsX`!WCdKr7fN42lR2^UMQp7>dRf#4>WeL_LaWnY=b#xJiaQdsz0$K(u+Q6y6z zoYgB_bhzMdZL|&a`~LmuOWm6{&lNm;7#I}f^ZPsPOI@AYoHXJFM1dEsc7J?Md;NW! zSsb<#H~%dDEWf4{sjrVj$M^c1=l9Nc^z=c|IjX0v-@$xK_*nJyM7&^wco7iu^a?f3 zl#?OLxDRk6K_v5I?SgxTBe66g34HXzurUq}o}u_8{czsiZYVxBd0U}(zi@pP^*;2h zR^C|-jzQEVY{Bc|-#UUsI;7Pq>i783&n~)r@@#hgAd$N!(O%nnINk!EJ{h}DZ_#PI z5JF!gANjiK#A{PTrYc;)4%8XkGrat&%O~aexLCc{)7CG_Nbcd>NP5|>+bBGn+Bi& zd=9;lw&MzrGj79eZ{arbqjEIHAW*l0zAx}2(u{<(fOc+p1JV*Uq$TOMZ+hQugz-$v zpIS@crYL(EiEhYI9WqXrv;vi7l*!09aTlwobzz?%A1@eJXb3FjH^}ft#Ibd|*O;QI z8J#sd?tB7CZ#`3uZzza%QVo$W{oVSLR^*9%hu3HD`ME$m2K~T2WY`m25ZE{AbQs*@ ztJTD!2Z9hjGK`M=x5;H6(@w{;2q=(UaN}h~L?rUdYxFOI6pG(B$f0eA!=8VS18yzr zSr~_JT;1+zVx@oj(tPrz0Qog!mQL^TiWl28vmj5phTCv*y%ysXOmkYk*OmsZ_uoJM zJ*ZmO(1Yr-9q{tc5d0Y(UH!DAOw9D0+%GorZhS-<$uL z2T#y+fS?hr@$K)4z(dbDurdH1kw53fO##z!GScIOr(qJ@97N1v<>^pu1x)1uC}NuOQf>g+*2m>>cA$eo$m=;y8$S0V@MNOo!fb zH$6SY42(_R=qmQQqHu6<_~^qDVJE{)u)haO?fA&YYi6#dlZUN;FhTlDPVH@W0nj}C zv2>%dg7PVI_QCR!K0YAKm)UF58TY1m!iZR%yPuuS;K7}Qa>0OqwH`K9!XZpSvrq5paHBw@Xq|2E@n3p-hJC^f`zVI0Ubr zy?N(kt6ia!xX&jbA34Cz_NAla!Z~yNFrym^h)Iil&B+GC)U=*DRSxC6xSJH-X2AtSGaNNv~t6J z^lIxu#0USSmrMe}!V}ZJB3zy|9#g5Jl$4YmmZ}0hVhPFT#9LB66`7stV_5gNh~mL$@`~?D+*o&7JfZ=rh^F zhd2Chkc_u2s+HOBvKpzkhFKbnM2nT<*E$;c~GqRAQl{%0}}FA)~v; zm7Y_l&$j*9k4#7p-4O1@;Xa+MEicJ&_z}sop>hL`yX3x14_OazW>el;995^+S zxEuOin}CfG55|$sSvUyL`y%9v?~JEm`0z8TV&lEjR83NhMoUj%(!J)o%V>1JM|fA{ zm4HRgvM!yfDtYznEANwNG-}`6ivmTSw=eW>PAa~v6lus}zx+Z66x$D;hS4|uBtNbm zLH(<%{vA#gpn_4!*rs6qEfhr&S0TADHZkA##mJ9qZBIY4m}bpcdKzZK#=H=9fR*!C zY{LMrOP?i&{I$oZ(!TpA4Fv^PhHjOO@zje{$>&MOZ2d+0U=e#7R`r?;zHnWZCgOCw z+8)dM18&25qc@0_<}&Qa5Z%Rc|LtaC!CBc^RFNV_mhlh(dDp=A7qLh$^jK2M)Bio5 z`N+lR5=@^pRP}S>G1}7#INIHpjT8{STr0dc2_75UtE8!OmT5STufn;9mT%37%)QBW zYYRiQtk^AEeNi5 z(5I(pYu$=%vmsW82YbW?1>~#odS6P+m&s8^gsjR#j~aF#>a5>urRLI!tT8<4kf@{h z?XFMXeXe{Pt#)f0F&vX!1VF=abMq#|LHFttl|A$8iFI@@-LXZ#FwePGh|6hDKD)R< z>f>K##g1yxbBbOWJLs41W|~2Yasj7kXyl7l1LUR^0Oe$LKHn=C5W zI7;}u)-i@BkB0Bj^Bg=UQ_Ow_R6y#f!Fo(G2OF{@4O*gTHA466~!gQ}49 z0?g9{134OfqXm7A5GL?|0#$Bux>c>Qsp*UU@oNN{n{HD>?B(Z$$86v(N1;jFXR7W0tQW_gtVl?bI`j%v28F0kGHjm3S3l~rkuP2RF5gOQ5324rO7VZ->| z<^@`n^3%($5$Y*58EX~LFyJnFZ4p;I4_JOc#BQH89904!A_g`I^(gHsq-M_w{V+9CC4T@g?X zK+xIl^gDp_dA@MIBR-s)HS!OZu`ufMe}ctIzJ7h5zpvmcI=A!oHUinzOGW+lGeEku ztcd1^rq1fw$DaXQ3XF;I(-D97b86~B&9x(hmJwbFc`Xo+;}tx%v+?`bA9kwK64UT@ zfm@|awDCAOrU&Ptg$0+mc#kE4yq9OgpY2Np`b5$TAdf*t;|NK9lM{?c2Zgd>WreCp zx4@=)G4a=`aGEFhYKXqFYMPxzef)^0UAJ~ue{A#yDlYl%mv633 zV%lzQ(RB!IdCxx>U=0k^XCPrh-Co(@#4L4i2Y=cNW(MXNzYD3^xBAh#|BGJpH`jP? zV@ZL$I%A*n;6_0LvLf_d`1S7J{|f|-2nCYXb#V2+(UEB%T02;qH6UE=hFI&LRVoFm zOFk+WKC+!Mld`)Elx4Ao!_Qwduj1nR3i%R@TPov$y#r_W2Oc>>fCwK)L?_NYO2c~` zV9|7<0U}PBK=-C|?BA?raRz}9Pjxi<2N=2rM4H)w0?sE-wzPk`9Pi^q8g=|pGfeKAVH-Sl>97C9vq?0cM98?Y zPJ4`sE(h0~Ih{{K%(h3Qu(0KP_oS>KKJ&XUzUu`VCpT<1L};S`*}Z-1xE+_iOjaM zjsK5b#~5CuT$ zgSyS;;)Q=vg>!P;QX?+EbtNr6Jgav$77VG`&+zIt|QdioR!IA;^< z488nU&nCAN3;PpXbaHaa8vAq&eC!ZEY&^UXGEvU4I6pT>PDXa>?d{K*nwtIn%Gx~* zvGBz;fd7$rkLC6l3@4{Urd1jT7dx*8B|!xk|Nn>(rDQ+UYkP6jt8cu=~o~s zudE!YBSaV1BOXJu8{paSjvgu@V_aoSso@mQ*7L+Ud+PMxDhuM-k}0}$0ncC9|M~-} zR|yjj0ZBc3{wZHBkH#l`!*{?6SlJzv0=GFkK-X$7)POXJL@2PhY+?c)(~%N=UuXwY ziS~?A>PVjUL7vgJ#?Hnz5IaboIFG*b9v_F~ux~;nF8|(V$0PgV&^)r7m%kmBYU`*V zUuR)u;>&oH*in(onq{K)xxf2#cz8HasG^xn=rqc&z^IOYGZTi&svHpM=zC8h!#bh@ zfag#KH6Lz=?H522RWN*~A@y%+qrk4+0M{v3k#|SiJ@y|X!)slhxq=%0`rm0GwqI>k z2Q40%7^ZKOfrmvvaOAIo0`0QI!w6?YetVTsG|K>IMt)sOy z1`U*)}oMBZgiOR^;0k{u_Ti|p+t1IRlp#nn3Bnk*lulEL$tfx zVEuxkPtu_1)w3}MC;k?lS7<5OgLjSQkEwDAZL`SVIZIM-V!-`E+#{ZzhUb-xPs}Ss zX-rUs6aN;Xk&RZdNu;iIfg$lndyDJj`j=YgJ1z6f1fMX&?(J<4PgwehmXwAl_#%n* zCmPpf6mUyxl{C#BKY5biUO*kLq=3*|fw*D2w=qZaUg_HZ=xjTNW)&IKoGkJ-7s;>v zZCag|0w;rS`HdTApaMI}H9np!hF84nm5`g)i~{N8wW{l&9inx!<}dgFG<9UFm8`z# zkS$#9KljejV;qj-yE$f{hMmVE@B(I5o_UWU?7`D0b93_tgDyl6GVcR~eSz&5r%$u* z>JY|ON~>m~5-GzKk_ivkH&lbbE5Pr~Iy^nf^X})5v0J3s2g-RkC23XvD`*W9_4zmZ z`fI?H&wBi&1=$$_{wK!m6oOEO#>7n=97NrNqUCSkLgd`+F_i1+mp;79_niCR zwDFj0|AhgBa{W&fVFvJC!7@hTx=0>kK_J4)*1QKO%HGAMi%6iB4*@$8cu~#oeg~oi zP*<%*}!O1f|cI77fky;1L93*@*fB=Z<3Y>L#YqIaI_|x_TA~cH4O$e3j_>CDsya!=iLU<1~^R zpXL5I>aKu$Dnkz@_$>fz{Y8_)5cdCKHsA{+ED{nDx~HYRj6{p&Sv0Wt5Km&GpyL>k z(^zc8*5`=_9ZsX}ojd;=v?r8ne}6@Pl^!Ymfz^4CYb&c;Pg;5xkx(n3Z$hYAJp^@i z9L4Gt6;gb}dr&4I`G?6f@$p|wo}d2+rt$?kZ{5Sx+P0t2dSD_|CYS)^4!nFlHzy@l zGY~DwlhPavD6xHf0Q(!HqQ1@XN+tjg1%-kr8VE@c35?92p&`tDWYr+nvt1*#tYKJZ zWo`aMzflA9n-CK(L9GyN{>`x4|6}HYGf;*b64spMte9R|!}kolbI_5iN$Nw&dK1Q? zA2=GYr$J=pnI49D=>azoiPjT*oNqBB>18xMJq;PjJ(82_cr_zWp=4vZ&!8YS?|-wI z!y40t{Y|}USj|i?BiUr-3sqwNozkp(LTOgo@hP_(^Yl{Wz;d$Rrv6c!?;OKzg9YK3 zvx7wi6VAZVE{bK4(pgesQDh2#x;jv|B2K-ZEji3OwxL8MpODcC+(@K@ks{yf@J>81 z*T=4V&f|k-CZKUlXw>KE1^n=jYg>;Hh<|h8nuw&Ny8!uPtqE=5644wz#XG(SVFc;= zi3qvagaB_=3D2ytNG1ijU+S<;0<{@l==S2F5Ek220(;bui+vd$78V^fGgii)0nl!SN|tZ4 zvkNlbShrOEIM}YlqG7PLh3gN2pe~u#HJNLN@;$m>q$k6eM#UZRJ~{CPFT4YZK9B#O zwTjcZ&Q341wS5&xUA%yq3alP7U{Y7|I*@E^(!`uo2|SNk2tj7%7MHQT-uqR*Z?93t zetZ=QcF;>oN!}vFYhtn}Hlq^3F)7W(pm0dU zZAby+2gH;IT$s~F3o`#Jg%G4Re?yOU&vJ$%uL64SJKwk@Rn%!oa5C5};Fy$eM-Y9y zV;RIz)mu#W+}Q999Oq9X_pl%p9R%Q#K;WrI)w|1C#;VW9+P_@5IGSk5+u&tuZ-4v2 z^V9a5t8WG62tk^8wD&oC-IMs<31O2(gGjW&|3nr={#T9&M|)Q{zQ+VeGsyCN&U&fe zy;alc41_8b8qB=E=3EOTm&`3Tpky1&`-NmUEB)F}&yY|+=HT{9z#kth|A*Kxy0mIv zPs8TpYE^8DhZZ~jm(zN!VK4uafjSZKPi@4dCc}2`5k7-PC8WFtE(mo9Io%>VFbL!q zc3}umu5aEv4mbKopwhVbFO`Ul*Obv=8P2-8y5!XJ_oAYSUubE`-izUASNivMwkcB+ zM$UiQjBM@b?fepn8zm%}JDSIjan*+P{Bm^--=82U89H!V1-kdhKMtC;s(t%%(c*W< zDIhd_**MPs<9$7z2s-I1;`OxG0o?=n1M*2waz`+cKOgi@85lrHs*ftWyfRVeOKyhl6ju65EhfVch>%5<#y z9f({A%N`Rcb^DtO5M^GIq9hLF+O4Qv2ye9Ydyy({=Xz2Clld%X{Ws#ar5 z?rV=82of}-lbinCYN+^e^GLhCwl(q2>H89(U6G@H0;?Hskr%7PbVPC3VOfI+@oJ%| zz?$y~Wn_?}jr2Sn-MUpE67lu&9UcZO50C)3z80jVa=zuc(MV=O)T@PF z6Gyy4oJCISFSo~Du$gZtm)Y?;ADlh)CK!4MnV^rofg@l0p(K@@YA(HNE96&_ zUMGfk9ys^z#_-xKan<`o$0@rX9RD7%lUMjPQNKF#fGXJa24wO!1PKeAR6D=aRp2GLR9CbZq}ReTJ~fu*mRp92x87 zb^|$_tJ30Rhx|omW6R;@_bDj!=knWo3T$|H_Y`}BwMqIwaq3A?#{eqnOLk`sreBX- zoZB0EdISqJA`>B>h}zQj=rJGk*ZlSCrq^7e^S78pAls(w`gAL>#*(VZ&X^ylBhe|4 zza}_(q_rmHa{l?U!%;Im-?jO<)cW~-3Bt{z3h(^krO8P;1_p-geS4>vhO@}1;Fw_v zVW3{ke2;#pmiSdjBxrAQF)`wl)n;AT_1@u76;31sj1?}|ph<7~=Rl`t77moOPB45jG7x*#pEb1D4kJ)m_93;PlE=!x?x zN=wIqmnj*NCPE_R~>)Yvqy$i&P*KbWZ zCM2{O?ukF#IGiT!u2NHiI(FGA6_Vb!THCF-ID@0B4^4xM4?c-54wZyZDC90dJYq9A zCuLhBn3C_1 zQogM}j*t;?o$!5fo$@gUhE4wAvqT{)cxtY8gWrs*$h7WE&WM1IbbU*m9{hFju6#UQC!kGt;}_(;=TM0f?W zRD&mNA(NfCjg1n-P#F)ETVl1nZp9|yNOA#JbjtF2!TB=WAofE)bG5`T@$U+sA5|JR z&@1H_`&sBU%2X8lk#L629G*ftSV!naA^o<0Xh?78_tH|#;$o4~(J}s8I|!h^@8IB2 z_bsYrE0iob6}LkQMSN$T(qpCUE1JnbOPm{b;klRDlM!2dtY0y*v+U?t`Os;5 zhOWhhl(*z5d#h%^dSKG0z&np#cdgs^trbHy#`G`oXMX+u9kpN^$zl?kYo@~vY=UAt z2R)uXH9_Hq#(@F$AKSYs@3MyX9BQJO*EX|hAs-NX48I2OF4HaNx@=z3A`SmM;*ZP> zBx9g9TlNYv<)K;Wh_AIb91b=&FIV|%@^xKA6HwNDf zI3N5qF+rd4#BD7o3F`Ju7f!8h<)lFoo9R+1)Ai{squvi;6Cqvs!zxCO`(L6tn%i@|bgMbkAQyYN<8D5ro8z{Qdj4B{SJ$tA*Ys>zFXj@N~$RKn=n#rJ7A01m3{tU=-3}hQ?hH)?7Bsxjv=I z7<(aw%)NA-mi_e)Ivt-+nOj-)RI<*r7#7V#xr>OJpNm9&l~$RdFa`pC`%^4trZw9` zDv7GhM)P^X$03WPHrrtIMu*6yN@c#_za)zEvsCF7vJ@?UcRW@&G-`sZPHk<;xYw$m zEG;bsC8^}Lb<`d^${Y1M-*q`QB-o$2VQ>94iOY9kVj^LMAuZds93`d%iC>6&BqlUqf34YwJ{VfHXqlRvj9xrA#~#b;=7!lf)1ow6r1EerN-zkKa)B?f=N1K*XX||lBMt|j z9&V{kv-%yULl%;Vqb`~O)Aof*_QO$&J>p+Fzq2&TgEb+3#><5sda$!a3n>?t5g~ zGtV5sa)?Vje4M$c!+mb^%Y+-XLV2OPJGZ4r*SNLGvl3MqJ<0ji)O!TP=b%HM)&F{O z{Xu^;J%x9o+T|t!<_tn82*9}9y31iX`-$h^r+Q){PDJq{=X}}4_B1ePOSo^kO^tXw zxehn;DcZVIpoWv{eTfr+KupQR)I3Y+rnS(!xVEuUc}Ir=8M3&YpZGzjE4SeARAOit zjInti3DMd`>obc&4U~^S;w$WLnfUslWg4Xx4qOV^uu_?Hn(>IwAortiPMHpzcjYRF zJXOeE@V*89Hm%aK+?x1S-h+>G`<@D!%sTUy#2l8Te3K+>ucSf1mJp(+>(#BqfV0vG zkgZeId(19Zx?WPOJYFUDP;GU!L{nt+eUzJBPML4j%3|GMv5BzzGSAMd_vhWPcHvTpWfBREh6{HKZf0i68Cmri(p&+6`KJcQyYf`%SDSOP$f!dfxRY$ylDmknw8~ zj24Qa7E__(LGa#tyu1n$N1acg_-9W--SS}XvLb91d;5d45|Kwd(HYk>a@MhQc%=>$*QSn9>I{AXR)S-zuVmM(ZxXRKEV&X(4Jsov< z(|;*|Wo_sYqdcOdc%xOXm4_&F$Y4TVIA1)Tr<^v6vbj8D#ZEEN4@86SNy$vsKL(9Z zcKljqPqLbnO17d3ZRnMfiE1dcsESV#A6;QB9%Oy6QBb|R#ksq$)MCDLKt#wg|H7$! z9U6W5bBZ+wksSoBvOs8`u5fTCou%DJ5W z;<+51`c@ghdknD8W2*M4AakxpW#A%s^!(>lMC;{dpMD+wH08=rwqoY_D+CE3%?_`U6 zN(2N4%cZcdJ7k50rD{0O34-P=5H$7kIfRO1>);hw^SP3LRRU#b4pQ(3C3Pl#-B=T6 z5DNllVs?9&OT4D@;5|}OGpjkGto?cBuE0COxHvc;Ut|S1J25X5u>;;H-$x&0;ZAhlIZ8>IXR|cm7xL4lORP*_RCa@GJ=u-<0WRde+rIUFCU*S!u8So#mTw3 zbfNyF0eW$1|X_?1+c0RVuo~ z-bsDtu=P76GBPsak%95haTBBe0{lxuzmz~>FqP(EiO8n{+ZUlaNfbTlH*Ul6d}*mm z{mh<6np`Rt0gtgK7Z+Fla7~<%!pHSrNJS9)qui z)){I<%2jB^yTWK{O@O1sC6{pvpS;QSqPlU1u z*^u~W0rFXA3U8aLw1tmpJ8aM80`p?_=NEpYfl^#Y`YDXu+}sbHlZ0X7}niH-b~InEsh(4=629tDTt( zU5?+-ZZpiP;!Zo3;Un71PJHJ)(Xgm?tmBi1nobhDha27|`)}T1Ag7Q-ILC-}<}paV zf$9p!U9sw!?~9h4>?NlLguEIdRhP}xaQBSU>ltRXi zE~m4G|45OMKgiiM&FurkvZWARc3J5(i5**Prc>ISKjLuO^P$)9DN#Qx-O9A`@>I?~ zuH>1SK3b+%EHYFmdNIk091GRTd9**cpnzp}c%uk68^=>@KdfL-XJV_*Jknbt+%q0% z*lqrBOOQJ@>57tOo3lv@i&KpXoc>)$P7YJ!d3#EE>!$qF z+z&Ac3587p=H;D!WC&b2y=f>;y;I24;LkBN-8(F)vUyqgQF^d9L>%|bp9#_7rA|Fle?nCoR%F9%Pt=mdjegW7xMi4u)ug1ldRrd z3%?`mH@|uOJ-ElPbvygZ?)bz+7BCcOHDiLpo}Izi2&<^5xF>0^0W;2FxAp;X1jr_f z4b(#!@L+Fm@0;|ta+*0;`ji%`+aCEt_G5QU(q!;RfR5Y@S%Q>qT$e8~jRvt%u2|w1 zIOGT>Pi5BR7&|AY(Lky=&J7Dme_lpH#nPTJtOij;D0{R*tpJ%y@?CXXz^;Ehg^6NNAlD~?*N zIE#Xctuzs8rkE%d>fFz5U@_=Y275ov$>X`5(wZC`hM;*ED`Y7@HW{+1TwMR&7Vss0 z@Ao?Hd{>cP=#WK=LbW5iTkf+QFnW{}j#UksGTX1BkkK2Ur($;Z-aRk`NSi(s#2HyF;FYz8#WFXxaOjp4Gf2c{ z{GzGuNEPR8S$|!!AS4^KwKR~dOQ(uE5QU!dw-1w3D1I%j-9oudH;1%DJhX^F4)dQm z+)IrgZ+Z)YhASf`<^^GEzh-A`h3i{$Ax-mL3W_wv?8uU?h*n)#5rQGqxT6I}*Ke3r zs|>cbW`8d00_GRwgzZU_;cj8|n^6F(KA|l}p)6lVp~kuDidp=T1Lz$+V-1Z4)io_9 z)i75h&o`TK_pFxbC7fTUh;ecf5@VF~mzowOv_*AKN=ZE8xP+|GiVJQOufleYA~*L| z_surHZiKHjj{mxgIx-(WU~jeCyo-s)^$f}~Gjd=Zx&P6JLAaHQ7cO@Tnwl=D=Ka=A zPEExp#wcA#PDz<9km8lSJ4S8Tn^4sG8W|9jodDUz;k!h{#JF24iLgDBdjE1Uuq67K zqg$j}>17rIcs>m%E7`s~ zvimN_3W+4n&wkO^6B1uUZVAA~3Hq#_BJ=#lCh-Gh&0O_l242nP#i7r15OJ~5FS-RCf>sBktn_(z>3w7XkHL+%fhxuzzW;2d*^ zi|;(pNm)6_r762;Z$|StK~IM=s~oIBGZua4j@8GzWY&7w80m1_M^O2f%%M7<;Sia! zL_|?XTWqnxa*k%knw~|m??$d@J^}G^%yYf`<|cae zCIjpIuG6xD8 z2HEA?^Y?F+FbOrF6}33!iDVX3fH0PyUl4`3Va6AkZ)bzCIp;ybp$epv}#7(EFSV53P%mO z6dMc6FFz^ekFDjZ)$(N)g_4dcobMKw^h@?RG0XV!z~_qEl`b#z?!1P+nX(sFI{Hs2 zzQFhZbob!Cm(awMZ*lPdv=D_7JlP!Z{r`RGZPFt)2Qjs36%$Ly{sA8^I=HJ5JM(3A zpuQ!t3IF~I14CFiS%nrPypZspK|*&4qQU|wz(@2h7=5ucmyF11J|3voE*eA|it~Se z%OMujMVo&9{>c+;{|rj0iioOg*-3X?-^L*$_39ID&~QE`@=U(RY_JRDIu>FH$mOL zHD_QTCdo)Mq7_)DC1WU--_=E%uPhs)D=G(nadgaV?is0_O+(*3yooG;TVV`!1~Z|) z;nl37K}{5yJ=9}{%-&qL(3jL*D=|L9N8hZl5}4@_{&Y<3E(nIQkX3mDy|4sqv<%^6 z1fhen`>9!w^Yorv%JSmx-}32RE}a2=tYW5J;t$XIn&%UZs5IO`D!hlcQ;O+TZufE zM}8}lo)ZH@G)S+^%iPkOiS1-9)?G#(`>yI;;=zHDXpkedMFk7`k-O+sE1x~>6qE#Y zc<`do%hYuOabB!7W&5ON>|ivuj{KOVL|=}>iT0t}y!YnL{c&Gv_Mi+;UA#0SiBMEX zxSVDn{OMqsgMTOElA#}#AI!N5l%V~P8ykE2^pae9SF*1k+Ejgj2aN#)K)ZPwFL7HR+<>rDetx)~!T=-L=`vR{&L_|=pLy+n55Q)i=b=6aA>x{A6(k7&{Y4gly zeEcww7Ck@?Apd=*F^z1^8#ze}qI<&Y`^>gGl;CA2*C~*Gj-5<%k2zDWzmA zDpTk&plvVXAa}c-D=QjhNJKE9&V?jGz&mibHt&H1mpcy3n+?tu?FG4bSX6w;6PTu!p2)dkYk&d&C; zfsEjIWahZO^cV#7{BU*{^{!%Pmp@NO@{TR{#%!?ptDmuVk@i#0*@_Uo!hT{2~=rJNg#^{>S*P4LcdQ9%M9X9q5Y8^|W z+wVBGd*qHg$o8yjmG&lU^nCr$9w|xzI8(WQ`X5L4%~n5t)yF3 zi;6fL*`ba+GW-{X0Ihlj$6aRi!Ly>%^OO(L(mP+f62S;197p?h9!kOKHq$6O4sOz-}P;+yuBPw*dTx!8ED>Jh~I~S)6FkGED1J|R)gTTpc z*fm9EZ#uEQOEMF#cb}SxDMOm+W^ezwP5`o^{ohZkphcJT6A*QGKlT{*bl$<}p-g+< zDPwN6yQb6XU{Rf;DMj6}3XUjyhfYo}KR+4BajILjWhN*js8eQUXqYiw#jcr`msb+V zc3eg=7lNM)sZ)6rpeE58cN@5#Y3@xwi+@R*m3KKI!^O%jgf8=r2R7cHF}XnGgN2G) z`PNW34=dg9TsI?!SiFUeO<#!kEeg?_-gQ48xs)-7Q4sSwKLN9K7MzrLALo~pXyW{i z2(9W*jyl&TpK)QxtjV@2DVkFA%>vsZLqk&@$Jc^scdCkQQOB2>gq{kXwC zc!Ghg^n6m6fO+r5P>37oH3T>uPrgOCST{WmRV2#o!P%WgBeMREPH8NWWoKe z-&_F79hekyfo(=bs<v(W?s9GuKnT+i>>hRVku>N|wbYd4EuXOm@#%25@D0rA|x2_AXmK_T? zHJ}T%dpfiFrYV`3d$vZvu8Z5*u`MetowCJJiQdjGi(oOK1;|q&Q&j;B?6XT(;LflzWVa_QX9d9mOCXDYf zs_y#SK~_B0`xI zLt#I>oH>Tpj_pVn>1|VWSY$=IiyU+sk9hkmAoZYC$~rh3BTRntR5=)Yc`Inx|LM(> zz0IPkM!iYaF+;xNs|e7#Z(lWCvndohKruJ&LDKylpFuQ;fY~^0i}-*4Dw^h& z7CDBRjf4o6s@?C>7#I$|R~$rw3LUmJh}q5MW9bf+0lb+1Q4t1EXtq(`_4P;AG8V61 zm1de&p%1EIcF=GxwSr3uSYbg)V8_yc;0X+rvDY3|D|Q0J3&G5bpFpOE`$NTmF=X0X zxe#+&SAKSz+9KwhT3X71l0f~{3tjANLx+clndwmN@e;OX^3q7TVQszHOQ!H{-lSM^ z#q6e4q9a-gGw$Umd9ZQSIWTCr9E;9xV0W^PIU@iY=Ij{5khUo|Hg64eP}1zIzMX?o zcb8Nc?7????Sy93)bm-@s@p}7ZvU>R)%@AU{{-`5s~JT6Kzk`r!&IQr#dQGfXwccu z+dCM%0a{vZQ~-2r>3v&?&rsXu8FGdr48I;?GumH?Z)fK`tBNpk7Z0Ov=_|=6B0esc z?H(H9Y|#EHGSE;C zE_m^XM2E|m_qb}~_eg3Dhs|O^}+sNPY0GdxWNKt~rkXoLSK@_i>QIL7i0+~m8*_o?GV3{lvLP%^Aw$K zMQ;+m$8d&HUWaPnmyXTLtd|Cp=b0B8`*Pi@cg&N~sAs!oiL}iLh??%BcaBc=zz=bk zkBq1XJzD6&M|{5-&+0U*_WsiU9V|7)kqbB}0&BXNF@%C^hFQN`;E;b$XaD8`8vI1i zfQ_`kT^^4E0!FQmM>}^^!By1!CI0!X9M=Dr-$?$yx_zi#nIcjUb?NJeh@cOfwF4*| z2Tqs46im(R-mJc{W~Ui)tvqGRot0~#0z*XXgW3Y(;}0L9z;;?e`EoT!_$3ZFA;7oS zlcjP;a~-0m=2ylOGt?_WE1`zVA<^38RFhnWTuHnn5oZ$cKu3F(VfMsCL_YayvqXZ% zfvb=)bw?CD>ayJf1=LE#SpX4-&4owXcvn@}81Cl#Z!X(;`}n;b`t*9lP%xT3y&*ON z^eCjwHrHa1)x^%mM)}~AjNg7KkP;rh+fy;6Q7^ZwZfWFgs60N>-Q}UDv19kB{G?2a z99av;;i({mMy>IwMjS0{Kxr|Kg}rS;b0;~ny*o=|ebUAqMdkbI9FRR%$o5 zeTcEKJdg{%8RXTj=uP|pKgT~)ny?@-s``XJw;K3Kx~MxD=$0AwS+?fVvuJ^WzmZ z*lz(}XdY@nOp0T~cpar66^P;jjr|hx#Dot)K?xO0JiIT#gCLX{?sA=#_(TyK7Qm-*HpdC^2;oqjlhf8miNK; zmmAf}(fy}1hQ55(1&)v9?8*y-Ld5ViJOz=+0BS-)w^?9+8T~F@4KmeOWHs5NDX-B{ zW8M|M%+0!Lr(R(#5oGxX4+V~o{zTHPZqPp^oSicORxf%!PF}QpHA|z4AIdoSJzIyG zN^ZXPBEtS8Kc;3<4VMPL5>iumU2fD-TuzklLR%`@jA8V)j^FotP4=X^anSTUKXiZa2;2^Y%wuGkHR(!7_lr+XE!t~3`!ei zXF#enFifZcwsiL=$_5zq(iLM0(RtqIpMY~V7rr_P1G~ECypBCTT;u_V5@1_6pn$zQ zkBummJpg^&tXYpCIM0G8Peu?bm#<7aKTr`1sG<4y;E0Hf@Jod+*Qa-FVf7GdzI?<|BV@@8s8DVf>x{dTY1wQ zN^+PYTU86Jqi-@qj+VE)>=X{$e~zDhx(?-d$C)hVZ-qI@6? z{&s{AfbdUVRQ?mNv>>jLSm=e7UxW`jW+x-#-s^Q6YR&3rIWx!p$D|Au#(M2XtWrh+ zk=@-m?Ck8*3uq4=-zp#2j?Z)GO+gaLnCGh`i-pjyuO4YFPyxC6vBnA(>^ z8p&R{2L~Al_*Kl5E$BU6yogIJFAZ>bF?lwc#)LqEQC~pY0pvAtWkmrvmzgZa2SUJh zgENCltA_ww)ig{@VrJhRTC9EG6x~|f=awT=NtJXxILxFf6}Q2hB~1XNR)6Oc+1koV zM}B+g3|lY4d)w*TNUq2gkbT&Sx`K?U+%j%?Sa%=cK2jNQDOpTl+~ z0M2*mUoBz56pO<}oDJ*81p(jb)g+A~Nx?N*??X$UKl|75PPsJ7D6F9W4hkj z1_ZX^SOyKBuvkspfdQR^g<8O3=H^^RNYoL0Z_(5=rzGTY(0^33y#Ax+R!!SJ^YciP z*{01{z4U6P2lxdX4-NH!B2nfS@*|Jkqypx+qvuyH^M1kAHgB$Dzvj|~)drGI0Qaa^ zSR{kiDnkc!S{4YVrk_3aq27~k?qfvS?m7Y9*f-a|XBx8u$!q@G>YcS*nMpq%6;SJ; z7F-5=Lkg+2IN0c z!O%abpzG5~s5vgJM}BAX=j;OnsM9S_aoWS`h$=JFU-|il9qB{xJ)X$LVw;-`l=;lx z7j~9wDwKON6c9$DKFH!dt-5^2Tpj1$tpXj=8LApE@6&Gx_mrzQ9K>)SJ&D8nc}Xg zUz8E6T3o3agae2zEKdFDOsFPLoCw`Fg2H$RS){C7x0>k(z`nKa{#{TVU8hJ@2e?0( z7cXY0l}P4j|FSfe9J=Iyss1bq?xf4?iI`ahf8`Vq$J{QDb_3G9*;AgoUKP5lGE~Xo zw3c-J`gQpl8R;cXv<~b=46XmmXf(k$A@MjBTzbQSt6=RI?#{#-e)%d$trVYM*}SX2 z>%~yWp_LpJ9lhL0#D4KIVGi$+XYZ`c9g{KWDCI%RufZ~-u#CQ}JDN2FdlM}omo&?` zT4v~a0eXGMk1_woFIpkl5YsMnQ&CGRfy7}W@L5CiTz^zC?iK+SK2b(Hk0xT8Pdgm^ z8@>kU%X$&I-GkMe7$D;4W5q(&i_k7w*NHEnUcGE}Vnx*rR9v2EGOmu-yC>PyS8%}s zDj{3VcDyJnFVC=EL=6lLjRn3o^QhD61hN8hyvN1yv2#oxgiimHW`^HJR`N%zm;W&O z_|bM$lwIGx1S$977D4i{cC>o?*C)s56!W#U>*Cy}@qCUnXm z>tR?B@vMDzTW7S_-n!z3MVP*ihQ9*t0+ZCvLN8r@uFKx?yKUm+Pb~1G!yN&*u#J~a zjq-%_8s^e7RopF+vEMwB&ZpAKmxAVv}&~raB z?yk)*n2e=B?kl~;hJa|D>uc1R_Zy^S;kvmh!F7dPXMVRULs>FX{o#r`N}@ zXD?9-Fy}dZ4Eo$ssCj&c*<|#|c29O{ zR~x;Mu)sz0qh~%?#5?LpAH-Kz4Leh^%Qt6fZYe4K?Slos^eg{Nd}%c)si=%IHOCpz zye56Aq*eD}>db$&Wcqld5)thfojzwXxrbS&?h~>r6!dIl7^gcaT(!i(mDK>*QlGhf zQck%7e2sklHsX<7*X9C;#dH$=Hvu4n8v%0R>!1fPkg6>{GGUL>}BpLv2rH3Gd6 zwe*0K)4?t@Gj6AU{SSWhGlw5^Z?`zdbEGkM&?qF|O?YzL)eo7qe3e{Og{1W*MIlMOZlxVw{g`YrzS>hmk) z1&!zzYuW*$412`mxFH`UBP|xi#13G8^%JR|4-bA?rCg@83 z6J~VtbR^*)B4_REmJ?tGcGW*SkAA~{1uM#%VMnlgcBq^DU)1Q^y znRn8*>qv{wUcZq;$+H!u#UQXSv8xaIOiSBK+48Kl^;{E6F7$O1cBvbx%3-9IT^?bCmkTKLmRB_t%GSkdMb(9NE1-fNu@yCe*j~R`Ps*8z<1*L|CQ7f#4cxOg}>r2~`D^B3y*n@@nWN{Ab zS=Z}|_ZzF8;vY^PDH{H$P6Qy$_XHuc!9?^E5lI%KbsNH>MGuL!jWyZS9Bv%EZuws{ z@((x&UP&RS6%cWhY7Pn|cun?YzNp)$sW-GC2$MR}tDna{u3Ago@3mEr=7hzHl)G*C z(o{=K7+^g>gSQ{Sx!jYjM`|_SrLM-}k}5G~+OhP1sC(-eqTzNso#NW0@|lx%VjhP=Nhok7=F^o*Iqx(L#(E5iN;HF!UrqnC|B&?LV6}jN z;CgM4sljkYc7Wqns+G}R`83YZsFS3AJ>vEavEhU$oZ6J#J;SLB?Z~ zS5#DQU|dDKvUW51n8$lSZ6NRZ&=WjU&B?~Zi;5H_$|`niabMsrQYr<>mIKGv`f8}A zophtW98|d;dcrh`_%!LjIqCqVfTul_#ZUl?db{)K?9=rSP5`J}02*O9%#l00U4j;X zFGf37#Y_PlXGqwTulv@)@;e2JeyWuKR$&YrTff-ii}(buy}&rQxw@MYXE`+JtWOUG z68GZKy^U9RVR>RP30<O}A~9_Ww$s_(w#fGRVfyL9Yk&gg_Ln z8xfuWPT#FoWm8jPP6(JGEwRlcjAF=*xF~TQHrWvBdp7WdS09v$pS+aN$;9`&tt%Dj z2NgrkQw9bWe)r7(KNiG}hRpq!VpztmJ^x29l9Xz65k12g?~wZ|6?dN>Psifiyu3PG z%%}c1Ne?R!fQH#7DuMl`QfgRz0HdyjUts_s+ESGZu8KoA?ZVfyJVwtE<@7lsbm?(G zq)83rY2=dSCB;cwW>hWa6#ZVxC2uz*K4aM1oY#j6{L6zX=nW(rb?NX=;#;-xK51>N zZdIT>hv3W)k#lz>v=I)Zo_#DP)*98S0ol|%V-%#JIB!@4K?dO_?63$GwX$Ak{ z2yH?T=ChXuCA|c8J^*CT&(M=lNcsDs;LbF-%A8u0Omy`0k9^`vIqn1Te>Z@O*DCz< zgN3H7b|Y>78?qeotS`nQZKdL+Bio=N1z>o_N?s%{G+DAQ^6?A5)$Wh-`yw}>`q;y3 z0-B??NMZ;9F9y*^%4A}c=Ag|fiGcW(Dr?C9Rq|79Z(`(%mvnl#nQN4M9jo_k>bg*x zAr{LPK+gS2@5%IS$ODL8q%V%*THw=LS(WvNJSI}L0<7KoEX8+F6dz}(MD={9%><~8 zb+tsn>(OE6NW>TqDk0|J>dY@o=zJojh!#72n&P|JM7_bY-V+YFGj`bq9jXwm)zvW| z&4ycBk8&K+l=HtYeU@Vj_4WUo)nSqdcf1BIV58KWCc}@Vq@-ra*{;@{ZjlO#5%-Np z0KXom$P<@7cg?n^#6vgGzn93G)_8Nru#K4p>tr6}{2~yQcRyljY4uC&fOwPK*2eGY zofJib;i4BG&7limt z=k4^wfLjpQqiPIEkXNHpkD3B6LFcT5h>`QkyXlh zB@4=QS?cA~oJPHOAdr=i`PhmkDex zhirh7nmuXixBIU=pYmV5bAFT&3S3#1b5<#+bk_TeImZ39(1w|^XAu6L-_noPgOVsN zQ0+}yPCz6J_8xMK2?-6)w(~yU>@ti2sB1km-qoCjd{;yIWx8-@=jirR+fNUQK)HF` zWM}cJMc`F)A`LqeQlWjya=v%@5U~%Cg?t680ZDcZOzNYl5u;61zF{t$?L?%cvD}lz z+L&Qb4nhi|#`%FgV;$}7z|InPU6O1d2kBFQKg(BY);H7QpxfbwfW3c#^<2^!@>1`* zmonI|j&9Gh0x^||E*W@+x`2H9HbR5+?@A@91|J$*$m?}nQ8?`M>zzHu5_*M z`$O}AjsE~>e^%YYElr9XHF$J{F0^k8-HMAHKDI!M*^6N-CUJ#S)h5fLf68tY#wc4m zJKaJjW#usFHX^#{yX;Xz^N~<)2(<3`)Lzw?^qH+1lnc9;?4BU!y?2pbFwL6T#PDC0 zxueayx=(Ew`3p-U#zC4)AG7_t+GcxOt}cDAWv``25qP&rj`solVJ6q(GfD@cKThlyWwymcRmiaN_@R~LEox* zdvA0q>srPK-(^Q3N(X`Fd^DyYbu+)YO=!n-XmeuPZ=uN9*&#KOA?@@*v%Snt!c_+9 zYKif-XwZ{9+!J}8l#;UCDZ(LSWg?CElB|sE_iiqE!ZtZ;S20Fn$K^ou?y|Zn_D@qPEcqI+0I_#H0;K^%Ejfmv~=Qn(U!eu zPj`}>@8{2AzsJT*EiI3xnmjh&n2+4r>25Mtb)$AZXz%wstN4+cy1E{Wk*kLX4I`ub zLz5C`cXtBk<7dkH`bb&Q449O1!T{9bNx|>fklMjZDxh~2%B)4(-TWjTB2r;Ib^PwA z;)V5h;rycu3)Mvmm(Nj9+_$$E=!k3ioj*mdZW4(xfUQEs@fr_^nu<8|PeCCmOu*I+ zOy|>Y_m1KLQ;DmmXS1nXLUc6E9%g-_4_kC+eReoYzhl;utyDml5^SGxiM;~T{N!IO zfXfWK&gksyn}LBo%;ubXcsPYgaq*En)g^naHYJ#l(1_RCF4#Tzaj$SJ1_zn&Bt$O3pN8ybf?9ePjjOIp)Ds@LGm{U+ZN? zt(bIo`$ccfMJIHLtCBYN`;W&%`RfI}{rswe*>w{YTF?PQ)v~g(FvQ=WQTpg2JN54y zB_)=UxmTvHv$G>B1We7z6H6@{r|WlXlO5#cFVjm$e79Oq^kY%m5BPz1_Uze*e3NHj z5l5*y{|Xbby~Lec59D;bNMl|aE9B2k5_$ngBBh#Iq*BCou-bOhlivIr`tn7&A3%ou zG=XE);8V9wV*VVnNiSc4?a07J3ZR>SkK1{{`!FjM$B!RhEKJkzoH8;pI;H%js7)7I zvR536v$Hw(_dN&%q#Os7Uc7jk7NO=jbxO&e@v)AmXpKEF&FIc9x5@C2sJ2t#-?E6Q z4{lmdJ(R)xmlA_|^NYNg+h;#kAt6ig&t9B@p_xB)z81FVaj0v2E5%$wI4Hd5pMAY_ zo}s(WgkbTNR}Ty3<{OMYx|F<=Zs#He7pTji>ZsnwTSWv7p={_L$~W73D& zF37oo{Q(?OAj8v`fn}zrqg(gHFrHy!YiCePeV?y|Gdg0d(eGnEUn1}l<_Z9~jEa-s zD*-MpqR+)k#0s~<;*bV8rDU(;9etIW*6y;zK&rMI%-am3EWU~*t3%|3Frv(y9}+N;}tIMoA!h7oMmWM9$Ynb z&sdm%PNgy1gXoi8YqpZ~WTOM! zz(OxH>@@~$vxOfnT;0lBzQTLKv4Mn9KK1uEN(Y;CS>nm&P-#U)#drOv*T1X8t?YM5 zu@06(0FD40^ljVr2cDFIzodm1SeA54pW1}3t~>@pzVL;?+VhotJ9S)Ak^3|)j^CrT zY_uKsPgw)7O?Ngcn8UE`Bc&i_rEf|N?`u#{?MT$<6@IHhiv>Uxu=42ffN^XL5e!`V ze8OsBxUy59-Ncsg_I{#nUoKi#NU=Bos2fdZ+O=iXWaFCEHyTz~8UqKy#wVf4@Q9b= z2O7}|o7ov`>-Vm`FAf%0h*?zC7()I1tC6RGlpQI%+GMb9x^RP$-J($Z`Aics7mYzOXvyU-jee9%Npkua-g{9m?e!3^lc&fYyj~K^am)z6d-uNN0%o16@i*Ng{l1K& zP}7Px!M^L;aWbu-g_a@_-|P5a&Qd-Uo0c!ILhCEG1u0;h_#J;Afz=cxmwY)+3wYP? zK)@>RP9#QT)VO{;Fi6O_o_Pv-)?Qm$YS+X^PW1KUo3}lVWaV#>3lWL-e&_s2mF0GG z*hepEl^wzpzc*2Y-T?tpV$+wQGhVY`f3_?6!-rSbI5|C_>^w3%E8#KQrQi0wj~R{6 z_3G59SHg`q>+|J{f_7Ui<}8QOHO8)AE-Cqpz#H1a#;>!odUG1~v;m(Ba zYqK4tWn+Fst|t}1AaYrs##uoIowXQS?+a03mb`3iY^S=cHW#V3=2uy^Cd!0>%;nS_ zjMc(Y>eEk9er+vPQ&Uz^v9aAa-C=8J$S87DSknO8)q_f(D>RvI{U(T)ZP3LrG>h<_ z3_I$cH0=4IIsNr2UcnKoUxgwRu#TN$U9?jdOssadPTrKasBT}0EM)GGx&Hu!6M ze^5!d52P??Ar=GG+E7sb1ZCn^`OPgYp9JkTRtB9S>a0=uyst-yscF1cmO}{PfQyHo z`K|43vjs(&2xH9JV)gIpNBW)9LOYvt1g{$~}n%8i_yoO~S;PBWfWH3yHkcuobD3o=nH z{yir7+t?{83IVr#a~=G1BWP*N+3>vAqtrkIdNiVeyq&!r!~>WtFu!lG(>VK$zYJ5( zx+n9m^WaE&uJzR!Ma^&hlsq=)05uiDaq>3B>Pphb++1P}jnOr9PatQqg6X&zi3!si zcQ~aG$0x4KS9pHN9o#PnPPwwt{dBEsJ5zhdZhUFJaYlYxTT-(3Q8VyZwqyaq^@`|JsW`FW^7@>-?;kP z+t^sTW0mU_YG|RuJg=9o5?Z1~fY*lvJI>R=PLQVT8V@bVelSFx-IZgJ6_1paugJ^G zS5<|zbYsElC#aQDqUXbDWS6*!Lix!k7!MuGzpC{91c6 z%$U|rm(IS4LR}xQ1h1^Ow|Bg^#ykCXoMdUqgnAX zv5%k(%_#t2ceu>F*N<%N9xif-}qB{!du&u8oI&c`wemYVwnhMh9u zPSY#CCR{3vM=u(0G(~YGqs8zp`y~<8(h2hUh5b6KvE0}6Al>u1*d_u{qbO6g>bh!z zsh{cTQ5j031lc(6ONMWT6h`e%lcJ?q-W&g3cj8lnIr1qXuvjlZYdN3Q{_fG{h`ozy zsDgQv)7KUu?0XhrRQac5`P-%y1OO^!Rl)$`@ukvGuHojZjya$?@(m8IyEsOvwajml zu@%m3JGJoe$dRqFxiMc|Oz6;a7pt{t;pEFsm<4O7;pufIXp{)&X08giq$n-T3fMb1 zkgytXoa83L!*0>IiEIu9YEcQ=2~;Is^bX@YFFrl#ffu(KFZJN}gxo>^m#F85<%MRn zjm_iRkw!z02dmAqj5|VlF5miYzdiS`&#&`R$2xX+Bra+LEnMrQW*1J{5x;_%IB)^; zRU=Wnbqz2XkJEq=`UJSgEiK$NhK61Bdz%W+kJf!vv)v0o2PAaF*VWcW$uIC(8=p4M zJ9p8;Ft*+=?MeCIQ{0x033>|t$&rMo$y^&}&tBPC2t1U#fJ$Srva%{#-?%Wc6UPX< zm;hAl!G=A`H|vJe0p1+{^A~~oIg=vSHoYqFT5VeIK;Uh=nqqyM%p;7))W`aAso|_} zx;cGOadFUQ{UPu;K6`oT_OHDV*xWq=zq@MWlzEvs1agfI5UySF81d8 zCPr;6wrdv^S_CIHHK9#(3=JFlyOKY<^0t5z++?-bIn%*m;Aeg}<2ION5+O~FLTl_> z_$KY`J|C(c%=T=;0rc;2WphOjF_A$SG)ug%5x7@c;t&L$(RC@Ccf_jpt_cb3+XhaB zymc*uCI5ti{|f(>R(JM@h#w?Da0X(h-^ zbbl{C2zznc8MZF7VzxGFSn#Ee&gF!ZPoMbbdQx0cB%?iB-WjzE%4N3yh&s#+eNwKaFY_4EgzQbrE2xArxm% z^kqdvZldGmDTI@3dvwO)njkdvijNnKSTN7f8o1mXCg`r)MF!84FjBq(PiGA$JlS_o ztTtevq(!_VPBKW)kPq;2FTvx%uZ5taF*x&R0g(U;V7Ao7TCY;hcOFff%{EP(z6*|+ z^cTA;Z@1GLwK1O3iL-LPst!A=jU8hIoXs(H9iKfswCaB6;vshgoW~bOn;$dVk+yaE zQY-Aa>$|&4KNKso`Wj}vlALiK44;N_a(^r@Zdq?@7XRJ)lhEV)FHbIy(yya2IAx5 zE>KdwD=ro+DG|z@PrX7;E~=?X4U9>wDpXWX{x{_W@Wmt~s1Kr3$XFD|Vu6GaOo_O( zH2u{w;Q@9Ub3-a(>yy^fEK-pI5)c$+Was}(HcL_DB-piG)oSRL4&pUD3l@*rM;Cuz z=~*W!jPIjZHzNJs^t(CRQj(H%e0(3lju6iTagTGwTmJ@q-A=>SpbmPk-;?serTcuM z&d1hQySUO&YEN~=BnnEB^PQdVzpJU8%MAQ71$mw-Oq@u zW1rM8KYq0T_w|{6&dWstE+aq3mQzq=gQkBraa$Z0HQfhycgFBTg{#n}-2n_UVJfF` z%u_r(&NPK`7cSVs4ULXo0_|p5)(fe`R*(xc9oXpZ?%u+n9Ah<97o;Qj9&WEpWC{kd zmR6@$yn)Regsl&wW)Z1a*QJL{4||O{7Z;ax3dyz!Z58nsOGU=Ok48r3!{w^Dr`K~quqIRS0J~0)E-C&BQZB4l^@8%p#7H%7lfZ(hXlq+e z{c)3-fppQYP48t>644cYvgS;d$8i~$AzPtX-r~&HltSxdOHa`Flb#28f$FbZ+2gxt(X3hHY=OZ zJ{vJhSWRw31O)@`Uc5*Ye#BrNW(I*1{pV1*KI&7`D<4`%O+^d+Zrso#vVXWnS|doG0b2DRETXTV@;` zL+iM2N?1CNbSX{j4vwN`^q@^O{ zlG~Ej_pbpktk%T5UV<>eiw~8Jn4IWU4zGz8 zGc|}w)3fcKQyu0^7?l|{CYPlH^JQ-LB+V_M;~NSPDVi%1$KdkM)}D3 z=;hR>zJ!4+qbsq`%|(4K+!7S@a27_#N){f^&dkAGFzybg9<}xte}B$O5n(sqOaiKs zQok6(o<<6BiS)ym4WD3d@dmDizXK_80tWIyebgx;Ba+qLj_1!6Gu}+dw71JN!S6>w z62-B1{Y=V$Wm)s^@LyB+0rDyE#u?VHM@DOEe1l&5XD1KSv$J;$ddGa|gT(}?M*W^| zng6`QcicNnD*j|66y85Q)v_l(y~7D!4Dt@tbaXDzOJL^oNeW~tgZK}qUHz^?g5a~C zDWzNzn`YzKgO602HQkbvo-}k-sV1dmV7f3=t+QeWAu9>;3Lg|L9Z1<`&!64T3LN4u zWrLZTOjULpn<_4xX)h*(NDQvV%`)8=WQY#kamMV<3^|=Z+5dD_+eEX&1;4E9GhE&L zhxCREQvUh!FO3)RsHtV_vy28js|*#kX3D;isGL4j@`xIACTYPXk7MHEmSzGxj&K;?O(`h(=Ue#& zaDDz<%lu}8;)B}Wu^+1Wegv#-@W0hnJ&`8#f;8cuc209x<8qnj8Om`FPy*R{Hk&OH zfn=NIwiRnvuTsrLF-;xaXeo1b6ye%D{|RX0|GOtIJU%LZ{(POcWxm-LGR%>Uvz|W` zbAk?5MkB2tvq$S0!{wBow{LZrnTd5^##}&}{gaeXuy}u3j6xsl=TcYnz z!7`%6#xXbk9pY=aETv0(im2M5kZjGN*@<1-NkTZKsJ~h)kQplMdnKt3!&J8Z-F<$D zy?Jn|8uoyr^QX};quGy!9gM$A|C@*f&c=q)TuurSj~CmiP)_IWJdGn02~a*%=LdPM^>^x=mZ7)Jh% z5?SJZu6cmFMrOFnkjVeV z1FU6$!7yiISo#{qUi3!1Cl!swnBp-)@}?Qzniqw$P8?_Tq_9z=&!0aJ;{Seds@z3J zuvVob=RUn7Z@O24Y)$?$kN6`-#*Mx7(DF*>Ch}B2euotjxY^;6T9eYZ=RHNPd~3lL4S!|bhm6Vi1xC|d2B`0S}`SFT3Qv3E&2VtT4 zAim<_V;zxWYEC)KHRkXwQpmekYU;)|c@ETVYlU$(ks9Jy+kWfWiYk3`IE2{cyXBw1 z(8fwb4x3t(#xsaPV`hETt1#bcf$WzPiXMxF`1Ll4$2=;RzGfA-SEx7NKNNYBfqRd| zBuHG_Z+7YKz8Rs1(otP~eFZp==#XsN-NdOTinLBKaVeeAB2u9J5Al3~_gwKwbJCUl zCdJk`2T=imT+;zG;t8CR0kqTok8fbH46Z{~-Q@2Ql-BW3pcHYGD=L_e(Q$ zrxar1Vl=f3wHBY#^>eGumvuM4lQ$md_-@I6B|HqaAMPNa6;-^(KrQ1I6CZEBGk&sp zkF?f~w)GDI5>}Eg&lL?Kvn!xd6>~ja-Oxn0fM{Q;ufKP6WcstNe^O`a zoICvWussd8OmO27Tb3`}k}-ubImy4v9~?{yVf@Ect~ zO*MP_ggu_9f0bo05W%&;udbzKxM*|Wv%OD*!$9Ue-F4cfYR{Bivl05DBE#0Wp~Hhc zJb3g&sf-V+ARpG#cf)aS;_7k7{qu%~hHusurB~&R-HkZo4t5VS&fR!YI*+R9{(1&j ze><$z&+X$kAzoAd_;~5|O2@+dP$ogzY!~TzEswGaV+eo1!KJrxm)^#03loi==Cqkh zy&j9jJ5N%>UNr>RP1!%@Fcf-@EI%zuJGWU*!(jdcm6|_3&Q(asXD0_-By|k>MpM&T zq-_X>ob4tvr@xnwO{8y)*ZJLAo>^2+Ed(3LC+0(IKpZtSUF}9nC=c2BU%o9xQJOJ9 zaCJ+NCB5KHNO;dhy|-L~oG=4o=y5I!Nq@puo(k-L@7 ziBFR+GX^qGLNNc&C3kR_jL6JCyvLmqZPy~iVLV(9N6=#=-LpD<(Jwc#EWm^69|Mku z8wI?99HXkHrtn)sc0v4ZwakzlIZ4LlR=Y%V#r*`g^_2sEZ4y_Bo%9s>V9r4u21Hky z`ud0q&bzXl^2zBAdyYvTNDu_%kD>HxzW>Dn;09Za6*-W^SaS`h0y&JvrB&1fxmQ$O z-3zNA_Yt(!ehE+YpuP%6M-Z38W$5B;-q?BN~4#ii~b3F8gW}}e1p2OGCe!9vL~%1KiZE0YU=9HO87Wz=@8!2c(21y ztI-cwHVKU9SuyGV^7YJIEfk`a^H=`5g4JJde?- z*^9C2U7|WCReT9%S#8X0 z@%8bkKI z?O`&86f?~Ol!nC%LEJx}X#45S+Gx3yN)W$^5D<3a{d<8Dp9I^PIX|#z{%&#+Iz1nU zbNT8p_qRststI9s3GkrN6e$mC)$B9e++P;GgcPN}etq4rl|Qkqx32i{EO~Y8qd-Xq z=(lz5V`*W0(*6BePmR}?FBY2LTY{OLaqHod39{@iX%VwjJ&Bc&%k+qZ+_7E5Fn2K& z=;%W4-`lpu;^S@X=XtS|?u0=73h$i28>ZwQ`^QgOufBH{%~*VYt^h2e|QZDN@^l2CVy6GeZnjrv<#ow3-rR~@l?=k)bwpx8LNGQk)(m!?`Q0i{40*^XDF!np#)Z#L97 zBLsJ+@`>?#(@ifDsHr^w_KMZ;>;$8W;Lfw(1{?>`)&cqziP*4Ju9}o(qqzOX=yn+(Z{aW z{euCoyIcOtDMwnR$Pyu;4ddjz3yB=^+QOljMEU4VJdr~^5d}~wn@0m786eQLnYJg+x^r?^o3qh zG#Mxo+7W_6lIHU7SPlaVDu53$cNS6bED?Bni*DOAeS-P`(&q|gqI@f6hL#*&57_aL zY<#(mLAMpQ;PF{6*2dJy26I`mLB}i8v&HY~8XE7yix1a1VU2SRz+N&%xP#=2wvM)@ zv2lr$T(0o|8DxnZdkcwyTL~#F@X>x|RuaaK%Umr)+wOwY^IXpl)oO1VjiR5^%*|oE z4I31Zkgv*E=RK%Xfn-AATM&&xYST~{+{I$*@svxM9-Eik_#| zei0TA4g$!7Grd_g?%)L4g57=0H9ny&X*HLLsj2(Wn0R7-=N!;!#+y%hejyRM1O+4@ z6dE$cV!Qu)0Zk}Y48w974mzmeHc}iY;JGp2oV#3YV`Is{vgY}|%s`mq*5&fEN30gB zT7;=a04#8Y59s{~ExA=tFls;+dH4Bqo~~p&_We53+_jnCzs(w0kzx^=;>tXM->S&+ z3W|vtyDdFfTJy!-y|TXEEhuOeiixay>}FNBfh#~E%G9K$y4oeZvNU5U`>1jeNdpw9 zqC%{V!6NyLtpmB|qMiVu7nWsMKGmrE&_NPI%n=u@So z5RVz{7d6LikF$hX$D?FxJc~;0wR5_>C+c5lagd2WDlFN4{Br!Ms?(U{7m+dMTw~(w zz^O)>YuDa^OxSIQUrbO~pXsN&U1NBd-@0O8z}+^D=_;hPfp`Z1M%Csm(q+RX>Wu6r zH8AF*G$NUHn}iTEgNG_E_Bh7TK^VF#msgU0WoS15;%^M>FTi}Be)}aZC3W4Vk!Edf z;1e%P%gf&%h;2rz13$a*$YXFBntiXZ-VYeOs|*aT^uGkp z{s*|83z;t9sH%Sb`uTEM39m7NlfuM=MMPL&BbE5w0V?cN12v6cpWfm*$UP|U)2ae9=WrakU>de|25MDR}8P-YA0?5mkn@lThZi~9R zXP?~!Cji_9kkp3`?J_`6;XUQ<##b4f30;>zsgdS-&4|C)jTNv&Vch@K= zns)xp@W*ESNiO;j<2LOp9%wZyN8xia0K^{doXyWBY^VIM0BG zyM8-oY5n2+?jlCX^V6%o`mC8us8-&-pXAf@58lmq@y4I%=L0T@WAbR&!3$6pI{Z1B z6E}|?KSR&V?15P{)Qfvr-S7_*tot9wsB!2F-GM{?_#oAQTt-R79g!$|eR-$isC8%0 zM1z9c4gc+M9$O#4sfGN(0*U>^?V3yV9-8A}fx2uai}U=8X`*Q*4@7Im-!%P?PRP-# zfMYGcTghv`b%I@|q>;Tvi0}?*JhAIGeUl5_0Dm>al|^zC+9dIS`Ro4~)I=Kc-$6~p z2DjvYC|BPX+*wkOzttGd9SNcWMlV3Yy4n5W^|k_IJ7idxn2Mf^;r9RMAZKLgWYoFc zyk)PKR;}sFy2Z5k(n~MH<@uNCE?&I&BGZaO&~7st@B#vRoxWFuE{H&!=L0&~|J?(@ zC%OIl#I?u!SdPHI{UMwP-%2#`WD z0FQIgxx5VU3g9$3zFD79o3;gsVEE+sWHo?czEs;SodZ9*`ubi3(YNc2j0B8~$;tzW z*^IDryqDSoN?cI%m!7&c#A`N9Tp!5dG+-D>hCSj-FL@-&Fz}8+_lEXZ+_{fu&KxT1 zsrl6U^$cV%(!q4uZ)_9qnyFL4A$K&&q0q{vC!rEJ@=weUo_xz1?Q9DWBRs%lHvPW^ z+4%HW=$QW->}W1B_K~`7kzuDs&!Qj)7P}kmEXr!#%!GGncTXSn?IQ6l<*JU3=sRP$ z1kK->yb8F{B5Y|a@G?o}E*1yzqvdp3LLv-9ujAtvl^W@%_E@0XLQApxp$xui_1PpR z!DTud*CUr?^LuLQ5g7Q6pBk0#0WgF&QdaJqmzUQHP?edYKm|^yjh!GM;3lF4@l<_2 z^ns5McPKJcNgMB$TK;>5Y=iCkCnUmX;kV`LS8vXqb|1DMuo#4+6y+rR@}^jhiBsu} zvIkig{%2QLzz^U;Ly03uh9KrngzXyvEh%eIMj+(U`0R*JXJJ*aV=_dW!8RIXyx|ANOjdD6NQ4Y;cY z1=b5ApcNF?1NiU{pF~Hdrb5TE0jYu*TR7c1ey&cjygq=iGg}P5e_5OMzd=IGMI8?E zPM3(0NI>jcUw?mw)%s2Nj;rHay66NDXT*$S`u~T+^}nFX@uJ&m$=!!5Dl5bH_jWGx znfyf?{L%pBu95raS_=LCtdp6#k_gtq0zK?M@|0$AC+ML1ewcuO zpr|P6C!CGo5yDosZOEpiT>PPy8#2K-h_Kr|ap8$P#vzEqS zA@61ts_*w}!W6Lnoc{yPI|rbzFe~aNCSGZ2(h>a5DE*HyF|>G~3vfz6L`Ua3YzPQ@ zE}k2a&WC{0ze{uF14?Q z>?Zna+$I{9Ha6<58vFanoUp$hUOZU8I3&!22jjPPW*elNDDEEQJD%f~x5R0x$O77` zn%~pY&*Rt+?5!Vc1ekPJ4SjtuO0vN%IPGz28J`y+NcR5E$BzQ}tv{byK?Iik_cMs# zP$9wna&*qUcYA0v_X^=qhQEG??s;hQ=t0>xtdV8{b|-J5;E&@)D7^ce))w+~NZ$jr zGg=QSC@PX6KX?g$ce@&lyRld~5=l_gwf{LLtz*&u6aHE`->itu2_FSEG++bJj?KFY zSocixHX}zZ$Y5Y+om`>a-xC9rKvP4p4WB(d@fQ~b4qj&bAeZee6(&&ULO_hJdyYVq zmrcil`Lr*ju_)t}Ia5%Uf$Qi&&W$qLn{4_9jz%01TW->--Gw5o*?RrM{@hZkyxi4; zlm8Gh7JfIO%7f$-Mk_^wSXZ?pY&UE>@&O9I{KQL0pf{1ge5wgNfhLPv;10aVoN7-r z=iXl(bcaQAd(kyMgDB}$j}Vmfkc0WZ1A&)}`d;%?<3q+}1fW zc`hzTp$|)UU_(07!+fHi$jWh3Fk0knOC}neGDrnoRpZ@f78DE*&YWyblC*=|SW{JC z-0OvY&W`QDk`@pNd@m|o(H31}7FJWy3|$iN5p%@Ffo|YV|AWC*R*OCUKLzq9?v(C3 zzbMt9DYn}jN0(yb0KyF3J{<@T+UB$z1`3Kr7JnX#))!$17#+=T)c;s~bz*NYKT1L3H)SS3PO&R;Q` z!QS5G&_hoS(T<-8Z!wEz43gK=h7LDrfcY9jyg@-_m0aZeV zkH2p**H72-#VW@NatRY-oKzRU6hS-T((39&e|F43^XPwaQjB^y^qxclN;|_;>qN2L z`jJ#rDg^*|;h?^}W!K;}ROmEum}M`2)tBCnuea>rqRplLPF30r=s zMONzcMq0o|AG;JsZc@SEpChvT2whgj1-}l?><{JY zQQ-B({U*ATo2v5o=#Qd))D5v=o9ox^{5i$1txW$^9)N$`=Vvbq=}JaINbbwU)zIM6 zS28BsajGnI!hhNOlPIFocc@UPstkW`W-y-y+U%dzv+hucpH|H03N&zH`KLPzW4 zG*IVF&&Z&@K53t0DB?*X0!)X!h1OIMqc>Wm0{&_Hm6LPvknqDSC*sSi1N*38{5PAV zz#V$rHo=aYjLWEOi@t`{vcK_)u!*V`_)q7owiLKN8EFjUP<(M%I|)5?!uw0bGnbb` z1^+XEw({dyq>sdYyQ@bz|AMs3DWYjqnu({wp(`f|wEEZP7{#G$3O|U?I8MJA@U&b# z@5dqS2wp*OZIj_yg2hL)RM9^$q~A4_YV*gN1aVD}&dP znoa3EH#az4MH3i4r~O0VR=B2_s336fzpts=9997-y`-+9Rm%f7rJrCwOmz%Na?glR zs&fA0wfxdkL!#oThhqMz_bhhmw<8&Ec{<*3kiI9>-F01MzwY(*6aX4V~Jw z&2(xR3va%7r}x`^8@V*sV&_TUCgi*1hD?I6h#;2Z{*vH7!{-UsZaj(f?-2b7ioMxt# z^_><8YHZlTq9px%B%@92~r zCCGnP%)jVB&KO8thb<_By@OqaxT>CnR<+iVE~BHP%{!LKFN$6=_zx!iR;=?~C+EuG zv|tC=i>+fMH)c~{ct!w3QC?5ys_FF?X?r{B9K5j#0_OCXJbR6rIycvP)7n1Am_Syi zITqMUTowV-^RLc9s8E>UfphBZqC(g`%avys#=gC9Bu5&e3taw8}dJc8HQHkJ|Q6z zkg9__Ztd&@2|aQwZE-5Jr6k~&jx@%80Ob)j%kD!)3$K_R54;~7(xf_~{A>01qvp#? z2^E!I!Y{`6YN}PfdrCV9DQAa)7w-erfZC^o=0G}Kva`}bO(nf}%iJLn6diu5FFt;= zMtTQxoFA3_2f;bs!8`!fps?6jqGHT()2-GtfE_Wc><fYCMnol;bDqadC zKVx3m_Yk3hwDt1RQk2<51&Zueb!G9cknm8Biwb|~q^quK3{Xy6TQVKY&o*vFUW1r^ z8|Cwm7K)s^Rf#-2P^j`bfpOaLK4U2SvbL6$!=&%mUx3JwR^&bCK0w<>bd6`tA%fvI z4nlxu1pEcVSP5o>k?Y6a*XE%&34d}-+i{4yPWKp~YW8`W4Dg$}YrUqO$*5MqbA3T7 zAuq>ju58VSzF8-)I!tjG@D(_VFL4gBdlFG!zMSStQ))t&Qby^o2CU5pljsry;=+gR z>U=HQh+wD+_$x_Rcb<|B_VoT!!$f@gm?H#){8gT(L;v`+ku1hW?_CXe}Es` zvHO=rX)62H7r4XtY{RZMDYj>#?u3QQ9l@m}yx+?r*MDfJtyM=aqI(PN=uax7$;2iR zXB+gCM@taF!325RqI?<&Tn$;XLJq1%rn6P1GBQ4ia|&JnSe8wO+IS7FHtvnXMtRFr zsMr2pbG>-QAKByBomNaD< z)^zg?WMs1Whx;>#pE`T;54|w?h_^A`9p7_9)KbGjLh)D3Ut2s2Tr4&U!!b;STnCn@ zJHAkVw}##T-)?<*IYQdf&yOPt#4C`EA zHPAte<$ZP$6-iY2)I8gUVdFHMG(qDS2X8$cgkcO!aHtdCv6=W(-&7}Wq+G;jG5_PT zDKpWf3rvKB(snhK55LF7iNw;;)z=Gr_bV3fFEP%nZ>aAq?$IW*TGz9+wd>=jM&9ue zvZa(Y-P{S*+g3KS?WU|Or~MMn_jtOAvi%-^YQs8Uv|29*G;J-z%F$QXRv60+4Cz5#2K3|DsEI#lX%*9qUiezT@*=Ht<@+J$ z_ZA&$Xun)9uVNZxTJ*+Y>yBLbn!zoeR+9J3frTpSX^-Sr=ldOw<{V`5s#2b+Z!~@m z4hmS*6laeAt_a6jhkbz(t)p*6ZgJBqnUpU3@X=d!O`G<}ihM6W>hfXQ#2OX<`}e)# z&B^2p#qAf@;W2N8z0ivIQRmr1CEqMmPZ3?FOeBvVZgdxYU4G=qvDwMe;csxv&tS6E z4%X3IkuR`X$bO=G9Aj5j%p@@lsBtjIXr8>P?9bAz>B*wAp=rVjrl#MD$B?(zi-FgO z^1gZNRwp6KA>~?SS^yyn**lNZd1mSMd%IaW>k@XN$osa6Av#ht*&FVhE6dArSp35a z6h|dLNBjDUc#_613~({>Gj?WN|ok4CT zQqmlj%w}C<(4yTYxO|h@7<*K#J1@%+C4RU3TL03j*9MMgGwM8|@gxG8)Z$$_naKV` z-q5eT4fOzHuyMdJ+NoQ{J8065O3?BEXMHhA1cDT! zh$p3z?rur2Ip|&5(_Odf?qu-I)|@anlW*`~A-XJD#H%Bzi)tpK5DlvIfiv%p6YKB4 zckzi~)uPt}iiHr?J<6sKUKNx*Cj1y7#Vz;h_N#_HQ;!XMxK$MulX8b06=+gPV?Td> zJ!CnB%F>#;wO+h?3Uq&0OD1zh=I5EDS)~2_1N!-KB7`Dwro|`m@ve%qg-V*4T4q~+ zVOPvuq<2_fSKM0~Qd|c*5FhB^iH3|4h?})<%;nRy%q`@q_N-t0^~mQKAz4DgG|yi8 zq9|-=IsNmBSd+p1o;@Y-<)k95sMezjoxVn|_-N@T}kSr620WQ@~c3TUz@6OsXHou~%{+ zl4q?aUUc!O(ynyutgmcr$VUnl8|0oL6-d~aJ45c|3xrQ^cJ6{`k$LvO-tI0iyIXa2 zcGdzhvPuDMwAgTAOEzfSXgpzC08wP7BTHmHnmIw=1gzmqcC}eSs6)OXVEN{a8v<$BEf%WlDJqJJ^60ITiTe6(uC4*J6O)tr zn~Q=Wwx~5>(^zD;MlFwUoyIFW%D!0eb7gIlyQlowWYtyNA=B!KhL? zj+<)h=pYYUC1&a@?$E6V0;nDj3K|m=lcorE>HK_KAR_Mw%U_+ColRE2Ep!SMq1kE(V`v#=;U_xha&V^X+#f!umD!b=UgbJhu@@&28PiXy$GrpI|dw|4W>J$M% zm)iuoOQ^X>bK9=K^!KG=%sY$H-N%!yShIRyp7mIzv)wgl?A#O5g>2^mRA z4}d{+et-A_@=dc}z~UjZ0mJ^RA>bs)Pa3u2Mn{@E!Y4yIWx%R)zq1&0tvkJGNDT&Z znqH*Y{j{+e749t7r8;wkZ*cf2d>=dxYQ!bT8v&7w&P?6S4o`kwUH~R}##2~>pygb5 z%Kzc+t-q>l-|bP)jWSZ(hs2)xDK zzIV?QzT_LbNlawzQBf*}YZvOvzCYb+Wks7#UVz{=`!i0cR!Xd$H-Lyqt=O=;;>oUf zf8C%$Q%j3z(F6;sc7YS;f)wOK`QpXkBWd2e27xbTt-TLijQdFKiCglsv-|lrJ!P(; zYo@7NRSQ7!$R~>BvU;E3wi?a3o2Py0N1?$diiL%>->nG?(|XQI!N$gSBbGxLNG1an z+ia#I`4jfT3GgSVoCM&|>SqJ`He=@O>})al^vT>>*RUQ_;*`G3&zLXzBd&R`ZXQl% zOjI8(myK@@_NDCO*m-I!Ni0!|UV7}?-zD(KyP?6M;z#VEAe6ElzDwu!HUvceQ%Hu- zGd(*I+AJ(A_-q$K$lrzXmo=BKCfs}ML|ZmZYyMYST+hv)f6%pa{qhc~6xCf`?3bOeXU+AAyMslOUT_{>DT#6#b^C+{^A9 z6Iq~=1+#gv&}RSm?=UDbY2I^XHe0lF-$gp&bK6zC!0y27Io;_vZ66sCzO}s#q%PNZ z+Ykk-$$a=o5>eO>C&QC={b@lX^ZHF~P`{zX;m2SNkJXsvyWM0osg2m7;OyZesK>vbc?$2|H zct%w}Vl_(9)jwHbC;JFF;h;rI4st(NW}68_ zrV~{WWGf-UBqJX@dEbGdU!AR__;|rmBzHmil#AwwG%md;KDY7r0U(QgPBLdz~59~PlU?!pmUj3RJ0Qp z=)Bf7var6Mn~|uRTfG^b&tbdNvE!O`{NIXzLlQ}*BlfOpMmG4=wi-|SaHRk%D*B|&-sU*Zn86kE??mpbe} z(^3}_>+gN~v1jIX{ILd``I#g%kSi&U0U4nI?+)cwNDSj;7JO?gmK8c~7RQI< z>5@CUyYjlaOJm!utv3Y)1&5sp&+V2p6N|e}Tez2!i;93EMZDyOa)|UwM;YnjCwX~2 zSy+f0_Y=>rbnu7TE+3Xej`J?%#CG|(Y0GU4KR6mXBcr7;i>FVY+6N{wI*0OJ%*#WX zSOdKrv!6$6V0GrvTq(V^x0QQ-60`uihwq_&=&riYHNhYM1$K6R{xGuqToEV* z5oDmkU3+liImq~QMmi6RfWTI6V|_h^({A~PTABZ)yluj}r#lJnw%*3T!u?5_+-*jT zie!?QP)6{R4g&QF3mcn~X|7cjxw*cMa>Y&QBNG)98_UT^@K6H#O;{3h`2;jzn1V_} zpq6@o6dwvryUb?tE-x=fJsqwWyaHXZ!dZ@+2}Uf3(Hd+H{y>UhaqZ@Yl8TCjMbdV$ zJ1QqY10tT76j%jj&F;lLCV`LOo_)Nbg{q-=&RXZ%J3CS5j!KcP z89m_{8B2JEJf;7ma{9UT-zujZ4sPy05x~Ld_p_&aGx^BDVk*CNkpV=lISZUo=gZ9V zx2_fxY@vMlQU!5wHm8c5N)t~`mx@lkP`)E4q7t58=TMU1vSWQ69X(6?k_M{SWK@Je zRYPZI0)usWI01M(*#{x(kJ2TgGa;o*#&RC#F7bxd*Q4dBTqN+Gn+L?S{K|3d=@={( z$Kg5trMF}!3D|y#=>q!6#wp2TV!RZH!oBg1f9OP?$G42K4^_JSr&Mcf4)6svk*}H9 zC)14!YK3P!pTB$=WEx-j{OO;yTF0ru{v~Z0ewm7x>z`IZXtsAXqN9iN5L%VBc*m)c z;3U#jbHsgT@~rG^x$$yKr6^0Di@m=Vtub^TM-_B7RDg52*JmR(!GJJWIcTu=yUFjO~ozevXcIe>C)HKuQ_RPPj<965=Cr*IxW&b)LzdoXcPUi}#R0qvAw17~nTe)*)^ z#AF{G9y|&(d``+2S6;0SSb6;yQc)oQ;jI#L(nFxy!E&UQX^EQo#h*#*^=|O4qB1FX z{ra`()L6im?a`K;y~c9wwS($Sc?m!Ee_^y<5o>R#Cv5Zz5>tO{y{j!U&jKWBov394 zo>ibbisOyevtFDO*PWkWXgW6P|7(@7gu>qNIe^eES-Wr#Prr9IgIKY<&)ik`C;4Kv zRbBt76(Z@qfOn315R|B>y5)Pw9N?D~Z^EM@RsuW`-{Vq7V_Z5cOefOgYe|zrav+@e zVovs1Aue)rgf%ld3UKxR1qbP_z*F-4NNc>!zkI%K`HED_2 z603X7jz9$L44xfCWLlgC9{jazpMLlXg~ffJs4iO@i0Dw%(n_z3!j##pJIBI(tiP#J z(W?4_Wh}NtozJaU$s~(PY<)}sHf=-{(1U|JIPulW~WxD=*)!p zT0F=I{_(Q1+O-w#^yCBU2jGw=VL^}nzG z&tvKTucHL78=;BX-|-H+Li>!lGYWUXfJnO1y(2PjiMa=od#UqoBRRd_HzS$ z!-SGc@U7h2ADN=0r@u^PfO;1=^@>w&yLn>b;yqL?$Jz8us7rPVPdnQ8_qdWm786yd zawK%HP+s|btFcNxkmVngSF=Ah zCu3`+<8@~{W`aUZ%XQJkLzTA5Q1jQ8>S2&LiR7u3k94Zq4sut0UOd-(g@m2=G0A$f z%#f}o>~^&W3-xdej7WHTig~#94Ny((J8P6953@5x*h;wLHl$l3PB#@;@XrH4nH#d0 zypj4FrwWgw3xdk(YVlBC-`gP6EY0DNeoUSPNOMyYIc(sZaGauXwkiq@bujHu^>Nv1 z@HQ*1J=>wFIzLeFdAE4kWxY%58IqEshb#*Xm78!GN2=8v;aQv@m64;h^01Ylw_Pzu z5fGT?iEe6Z9!E-Cj^?s9JC?MXC-m;ST_{(&lMZdGkvz|Hzv0WhkNt9CLsgPywY%Nb zMiC2cgHb2}==!FQDA=BisI7B2)ui0yAkNv>CqVg~$R`S^I63uu9v8<^zF+-^4Wcyj z>%YI0Ok|LU)+sdAo5Vxm)-8*{eD~*q!YxCSK2BTHudd(toLy6+p;^7JASIRG>`#=z zHszMnt>V5*!v2o`;>uH(na?z9oQ;TklVc$WB5Y!$T)QOgSl z^SLWzfqLQ>*nW(~MUarvKCYOw(^JZTdD(s^lOGE*J*(>Ci;v6ZL^+G@ua^b}Mme6B z?|sesUN?Gcr;&>%DzDb*J3CdFZO@X&90pwny=h1A4xpyu&?2-Pt&x@O(%WA}X!iv_ z{b)B`|9-5nGdI^|iJpcA>UchybN=kmFnMO1L0tEfQGCgo?Jt~5@8$y7GK~s46y(&h z6Ft-l5ECA;)HF2vqeh8qjhIthIcq=MPw&yXUtG8NvsJvIeZ-GE00Iz@KE&?byF4E? zc-`^O`A$axU_A0VuXN&_p+F1E@yn5uKg@Af2%mIb;;98%#_e0ThM~c--|ZTZQggk$ zI3L^NOH_4!4Nl5n#<)gg)t4+7Z}Fcczx{W~n;c%+z6UhsF)?;J990gqk>p?x3k8zd zudh0xsaro@YI>eKx$kX12Zm2(AW=?lPC;Edfn|jjC>8ed9R9JFGV?fU*cs^Nb30ND zO>H6ed;_5O>R73t%i(HTc)0uXE?}S*Sg3mrtO7EeZX!RJE=j<%{Y$=TEuRaHYabqO zMHPk2LOr35p`rcMIT~teX6JTE7wgg8+c&ogm>jlxpB^7Mjf`SHAf^Mrpy4BWyFTkm ze)VNO{LNZNL7kGJVft8^N#6PCAq^9aI5aaO<5smvuzhT$!5e$USSk>E67jv;t*z~J zZ_LapZU_JP_ynHZ^vUf@TC%l{JFsr1XHhZTxClxYz!_yuPrtU_Tv)y48T+XvD36i0KPL)wLpF9?D;?F*M~fi8yj?CZFcRI zs5050U0<|iYQEM;I@GWyAxktYz5VS=%9oTfemL}fRs_->4P63$#32YzCPln}6Z5Vm zDD8ux46i$yr8z!1qNJgz?!F)=CpR5W4*)fey_M%AAYCfVY<8frzdkAe4?sv_qBe3# zhPQlP^|SZqETbOc_RjWxqr^OptYAV0T@?!|S571R%ajvFRIyOu^mibb>+36~sH8Mp zXKV=1AqtkedhKe7$9a$a!9<;&cMMyQoWp^vrh_VpBrcy6)b_v%$rnZ;BRPj$I?s8CRy6yl=l6_72nixG(h1vNF? zrRJl4p{et=RPaQ(tSm&?H{Kng;W_^frwbJk85Oxf;=@N=ph}_)aY?P#MG&cREgv^k z-Rj&A5I%V3srj_0#uz}ET|NP19SKU^n%d5(O>*0+^P$ScpPHphMW-O7=G0EILbJ&=X!;jJ>1=4|gpd*Fnq8vCz#kQXLTiA?|YGpm(QBNq2&iHPuU?IQzCB-9o3ub2@2Gktj z!@OuNmBr;?Jt@Jnf-b`*ecQI}-v{>X%UJ5}4UU&+Xmn2H=?iWsy%A zdH_*TSFiyY=i_Nv0XJRbL~QP-Pe);5%5V_|2boJP#urn~-m=C*ZIWDH&;R-JXI7{D zlYi5%*Ex(U(PC2hu>WOcjL$HkZb@j4pPyQ}*bhh4aibaApy(Hpa>gRT2`+9SwR)&G z`NRJIL(i}-azvdH6w@cTIk#BQU=F-@oYyhb2SRDM3xL}2UX_vg=_h1pqZBOIejSEu%YM)?FSt(~o% z&1jsqSt#kdWA% z@$LTZQNer!j(s=0<=_C;Nv9^ES{nXBdPvQ9#Rx@434#|7L1DNug*7 z!)QqgD6_JPY81$aC?KO`C7*qxrl!_s9-?I@A|#x*PR`xi3LV)@ON%Nm=jN#e(-5kj zDL-*5ZSCWuqjr!BWEQ@|A zg(X}gqvy`9r|sk8>ckrxJKH-7BJaMt)wsjhmekSlkP`t(7Y0{SVblGngrTfFawED! zLo=`4_ckiu9m9Xw{Y7$co3l%P@Cz3+Dk!QZK}`-PF&y0pGA|eJU+rw~N5Hn4t5-kF zBiCrON%*e+bG?0}C$aw_4!C*!y$Os^gkTT{C*H%H1xqJ91Nl!lH%sICsUGP_~r27sLyJhy1UtPQ#HAuyH+}-tZH~0TwY!fb9~w{G9q2q6_cgPE#wyATDt>6OF zG2WuyaOH}xUqB=r)z!0Wa1Ch@h8{NdCf~SD-g@TK<=fa>D>5Mr_cxSb&hzu<)riQ* ztdd*>h^yVP3Y8%R00wF%fB=uue^W1g9&(>@weBFKViQ4OqtEsbTA0| z5_owD{n9PWtjLscuH>L@?U1*elwDX_q@-sP7W^z&`Z**hsNm|gYgoAVGqreJC||;P zy?=lE=FRZ1M?rJ5`Y@#gN~yw|Us)}*k@#3RI5ddw{Kv<~)U7?rT3QJXgq)e+e>=wY z!rkrs@#Dw2_0z$Z7gq0nT)p~H`t<5kX4*6PzqhVl5T?A@nW&pzY{yI^KdKtt-rcRB zWhsSB86r+dxP9lQf{e`ffeZpl(58!<1wXb#fR07^;@NARBrrF>x5z{jiwhG!)N36` zB~&y_0@1?vXqe`{1{xZyF84{`u`U6^wk*PNAU_j z7ru^uorazAD3u{>G#8RM7WO<18=JInkfGVgu;hscGO9?$bbfh0H8@!2^A|x%?q_lj zWV^5)V0A4iX#GTG9(etDno=mHiYFXyJ^zC-h)}6HL;$!{Ax(0mKmhyf?M?ISg@Wco zE}9q25)DrqY-|^pj(eRd*|})AUr5a8=-8KyD2!0Dv4LP+ARKlIXG~a%{nVzSs!0}E z8{ZTDkdVI8>jwG?wm`KSpL^U}|DT_&;D@Gc$HvBPzV(#>AxElzqqp6B@2jCfLV6N` z*RLOsJX4A~L}q;bdJ`Iuj<+v=bFsdC6etyV8v|2W#mOli2|amxTbrzq;THgdO6>;< zPHehbprS%?gYz8 zcy%@!c4mpBnM?Q2)4?;O5YbJ7oKUD8>Jd75uR!!WF?+8>!NAC%UAK^uom~YqXq6Qd z!eQQrh5zscI=a@_73NgnOAv9`s0cF#E^p0{0)QUgB$wh<&tLl0EDL*k+t(uGd;Ro% zSK+41>3b-;;`HKTz9fN1a5G%u!Xb_WR)6Dl#u z(VUWS{e^`^C@Wvh=*$3WFcfj^1| z&G18MX3|{b(2d|QK^?Gno+UOOl{**?I-`V<4R2*YI%%xbA_rSpJ8yZh4@}rf9TmQ} z*+M7+|26PWA}8`Rk%DCaqaWkT_vdQ+Gp>xWT`2zN>l{`w;~}AKTJ?@Ff=A|oFt0?D zY&Ob?GMg({Gk{{k#Ju^>Dc1d8DFB}HQ@?o8TURS8CMhas({G6vAas0+PWhBqYkT{a zZ;)SDwYPVz-c@#CZ1I4i;$nz=>4R{j(tMQSk^#@2#nL3%6O>wv$THB*Iu(ZB{o7Uf zH=+;h_xES4S~80y>4a3B);S;Cx~}nwnuc0Y;adSzJgTOq>qO`Q;nf-5Zfg|CS8@oWh$Kg!{wcK_LUjzGK|lf2yK4Lvg|H_^rq74#qgXU1 zsy>iAz?K}n)Drp(wepCZoY-1Dtc785VZaT24U-T0a8>hAwT`S#2qWV?D(4HzwB*#Q|7TP$?3+mns8ot4NqVd5b zJ)^rs)_KoTV#c|!>2%0pDseGhus?t~MNRfXL$7%Pt^>f+pDF5f3ym-99$OqEagbw` znm`x<2x%xu0NsAQH$=GbN?b^r`S3*vGtBzrMO_cujdSJf%;SJctOzrng_Q+^&94FX zP@r_1^T8!CR2+eX^MLnT%9JO#uM^$+kp)kW%iL7Q{K7(B-(0@(8Y>dsmK3qGj3w=wqiQZR;!B-JG=7w*B-#oTawSkmP%z|(9xSO?!4Y5bS2`}$G2-ne1y zd9&H-WKK}CKca8ax>p2Pb(AJOQs)O9E@|r%ko?%}Mc0#oD@4Q0JUF=xL=bRs9jmhU zW3`yf{qVsJhKre?b|JPttZ8YvaS-U(_xDnW($l(&)t=s!Y3ZI=C%XQ_2NK)fPh071 zX~Y$L7Ka)bC6zi@PGyg1tEPwOJ4eXcP#O{0c+y-*EVAXomX{$CMsCu zmpR5!(6f+>7Fyr3nI*ukwzYMP$|x@flEzYCEk-Jgyruarykdk~RwKtZ=KEAM>`-&3 zykq@R%WAVPvk%pP%}Zy4=Z$G{UbR``zD5D}FVppq7|e5`Vvbpg9huQGQ-Hst&T7?9 zPr#b_;|KpOTJ@YwulJ?{`2t~=m$j&2(iH;(L*updyD<9^uM`eyH(e;un6}dZzjOke zf&-$5LzQN1#1fuB(8j?aE3TiWBQpC5pET3rh5WsHFlb7F;W^LA z?>U$CK5qz!F0Y2c&vfV`CT%|{CLfvOVc2E2>*Ytx|B&vqg7*m?LF+i5%5!3g#1WfH z%>L2)5}1O*@sA!=5zH?j2TgvC}K&toeK&q|M?&ZAw2(%#LOB;rAw#Ju4ziJl6(%eWKUho|AaMfPC`B9hD?Z|{t=YgY%k(?6f=Aq${oIxq5w zANDw|M6J{jf8vb5`06n(!<7Bw=QLPEJ4jiJhr6=66+(LZ-fd33 z28fPNF)@Q|Inm)ffyoY2@;KWvzYxe}k&*-@2Yx*Y3M$_ZkX*}EeR_|HyO#>C82|b3 z@dJxPr^;PoW);4R3MuWp<2O?t`;{k}3?k?GxWDy%MS1yeqT!2pSO!LNpJxJHJDq@H zDizTaml2saCL?rpsdb`J;F|ZHfirYs*$yR(yMF`tc9<6{$EEs&yk018HrTc&be1V{v0fy zLNg$2W1r&?>2Jj31HDvM(~-KcW0NPbJKHkDKHlh0t8sGV6t|Zrw09%bApvH=ewDZZYl<+@OP3iz;Nfb1*WZu*m;Sgz)zZzP?ruBU zc)SQhY!`>^hd@bTeVcs(%u^JdrO14%s|auhz-kLL$IDrN$H67V=P>ne_Q%Uh85J%u z=&*7*oH*QH%_%^!kV;I4R>w%3a@7x0+Jhp@P>3yR_Cpl`Gqu*<`L=-){We`Jti{!| zs7RCUKc194Jm7t9r63~mLn%)Ktg|T+OFRsfBJ&YC$y(0GJo~Hic~TO7`SZ2r=c=ib54hpv+@HeS_|zWwNgvRZmS{K3#w$T z6L_*;y?&KEX9}pMFgCSqFSPAan$kFUSGZ7#TWT`(3TOa#4BG_bPwYG|&#t@;*`mImgw;HN# zYBTf)ErM#&PnB4KEk7h7r1(yr|y^MoY2jg9;`?2?CKKE z5Jw92uw3?sM#5pf4IB22kt5o1hxWy3s7)~EV;yQ`^Hh~p>?`?PoBh8CD5xo4wodkW z2|c&Jyt43n%Uj8q9S{P12DeX!lWgkS*4rmr@oc5@D=qfW%DM_yKY?<0nj1FUukjVo z$-BK4m#jOc$C=;FM-%BQEUY^3cC}~c(FCGN%cM1aKyD|guWum7(i~7BnGIIE#;Vy= zq02>)S;?Pgz--%g5O`$)1fD6t?ANUJ1d{Cq!=;Bka#9_&|0AYnE%NFAX2{C+Z@1{R z1R!L&9M%U>JYL5sCQVQ!?Y}rjFL7%Uqjfpz+iiEqu7nyH#*M))2OAl%J#?k&lSo3V1Y=bN4 z{fb&15k6P_v+Yhb>KdEoXn{69JjtE;)u%!2KmZjtflOmU(p3LbW#zDidEKQ zd1E#9)j(a+(c~}>$L2oDY!4zDz@SH@Hz)@UeOt>gKBp&GB|JP)-!z@C5XHCYvUgc; zYhuKg^mO43Ys>W}c9lE75g=1=MF6Z^1gTHYQ*eNUZ#P$>UTW(YO6<0GtLs}ae-Ph( z+{NY!x&6*r#f7qD)v<$O!eX0$$vHancKY~W%G8tdg+K(&+M#Enct<V>8$b4=F;n4D#>7W5buDVG#&3LAG?ME$Y`RH>V)fNt&OAoaA*d}z^PST`p%8B zOfSDHP<@_>!jR5ozbS2JZ>zrq@rMpJ61fUrr85DyQiywa$j#mJZi;is z-5YPC@;REz!D`C^k>||faC8Dswe42#1J3G79FrII^{)g(B_vXfFr|r4PQ(r>DP10W zGa3{(+CG}Bp*r|o)7#&lY(C2P>C26W*w}AWRPM7`X&DW*uM-AORJ+%ZG-wXWLV=ov5fDKYKy4^S_Y&#|OkQc;yLcbjpB zrFS(~eIcKisD{5`Amns@g6+p=#(S7>&hB)?-spYj?fm9PcF&dDL>hm{6T8rZ2tkP` ziICmy4o$~uI9*=%&omm*?rpYW=W!{mmX?&b_EUNF**aXu51 zB&THw_$VB>dtzUcYW4c3`aNO}DO1xj>w&IfdNVfjB&oa@O3Lu$Vk45QO7KQENbGsa zSz^{$?bv4bZu{+SS^O`AD5V`DhBY@xXr*6)fgxGSBDTQs$5rwVO4n&m4pzLYtI=P* zmsWXc%UEuuMQ>7AhyOal;>wjP?|bG?7BGI*`5VTK+X zos%{<&$V7(_NuJJ^YIb=2i+Tt@2DL%e*3yAv!SVtm%g5=|Kt}%H&7z#@VhiRi;8#B zm8{ZnsZ-M{Ab8MDK^y#0lw6rdM6cZpj=Cz}iOXnX za8?NUzGsG?C!A|wc1W8{RAG?{2cRSY?RMWSjqWblt;`1I_%Y2j2LR-#Ui3><;@h%d zLBhmtTw`A$DQvY_fJc_y!EU;DhV+GMRos-v8ahAKv0RO$TkO*B10*t<#g(olFtI*K zz*P$oxHRu0@8m2Qyt)K-sJ2VpElc&UG&JKXL2CJMV;eDEw*_d;@Kka3BiZ9mQ9k1Rs9m zJ$^V@w=f@#sPwoXW3eb|VYO6Aq>i*_cbH{HjvIIuC}in&CRh-JgoHe0J;0i)Nw;16 z;~dB3z#ksd?jvuc%57y>chVKl8@)k1N=3+7W+lF_7O=(p?vq2FI(7xUa{k2h`mtXe z$ExH&^C)rOmm3jye9kw5k7<7-WOaB%)+@>~%! zRZ;D&GVn_#`Bv{3V1L&vTQRSBrP%2A;RvhS=B2pNA#wO{FQrLe-OYw4FvEDVg-1qC zVY4_WYmOX~tNRcrc5Em>;QId9EtmkAlLy$?-JyqAK3AAoSSlSi>wZ01nVC5d zv{`%}8yHxofKV^DO3BI+?TR6(6#|jizLAl}kwaO!kNU5wXf;Yw>nnM2$uRnniLvFk z|0Ke`<-wsLlflgQsdIs$+prYfg22VtxwP#%%|ELz3V`S-G6KA zW*{LC#r7Rq<8|+sdvP|)YewFKbxzwKTBOe~22(0-v|*k`kar_XPdIS#@r!gC)o$Fy zZ`Uu#dV_HD0gppcp*!gOQc{7I6Wl6g=GPMvCU)W)$Et3KW7GedmoGghOb#z(1wSHli!&9U>6(~rq}ROa9Nr4XL~ycIkI)ea9lGmSa@x4THt)~;={yv zdGLLbpqv~Ud()+Z57naUZF^Y+I!28H=LK4p>EXjttAt{W}2fi0WoOTtdS zeoVRY`7KH`rkSys4xd=_319!1>gDBCZ}jeBT@;3eg=Tu%{mD0Pp4m`RQua3VML@Us z)@~sz2UG=GO-Tg>Q8}$aV9ckgS}EX%(Vv%Ti1_oSQT#M?oW%|%j+xe zwtsTKVD^EJT$XI3*s9y@FeGBOIYOL}_Xm!EfWXP#>Uopr;ngX&w4tFi4`unT)AK{> z4Hg&;ym6OX&xuuk-r2>Azu?Q1SZA45!xwAIJ>T0KO!s);7_eg8cLtD_>u>TO>T;+AS^eS;_a(#N3&ijFpd61bHtcuNriSTv{k(E69o= zlGmf^d;F4;9yEHNH?)O4|GmFN@%rP{cdPSs&in_Y+jF8XAo|Gs1T{?SrA2$S(!xvA zq~NRM(h?Fcb{FaO#}o=S)8$+sg3mQe>&}0jSzcMe=AFh#R*H8a~EaBswQDOn_Ai}1Wr6&S6FlUc^!v55{3(O8xS`S1%3(%}J z<+v{Ujd%(J`pD3Cdp&}xsvJ=aJJ(`ju6uWzn3~FDNFiU3WXdGf%-8Ud^AVwrm5r@O z?@gcnX(Z~pyqzN6_){ZPY}jQoo^C;>7gAr~7m{=Z4-fCGKpHa}K~G4I?KgTbLM$OE z;meZ<47n>^%bQoPu7F9IL|5l;geQqK>CcrRt0x8>3+EHtwa?rh-GtZUuteNu^dBq4jUW@HUZ%@{WcNf=^iAYNutrTJX`sEfcR?PPZ{1gYXM($6! zUPhKsBDi6(+U>4`m4)(sza}u_2;DlM9m>@a%U%CwM-@gKD4$i4cE=L*J#s%_3K*)XI!~6D-LW zY1O3k6_~9i$zIwIyERLE^Ucn-DO|F(G4}Q?Vx$?d_@{_3HY!ieTj}#{cFuW{(bVKz z|CEnBbI*JDMOA%`b7hYJ3+*!Ox)$D=Jj9TAEPzj~PPc%Ia`5Hm!P!@+fXs(HI#yIm0`C zPq-ypljX6VmXp6)e-UcB>m6*22OVBaRPJys{;JI(@I;OY#Fi1&sno^UnwXgtx{f#i z0xM8?JAzVP%6r1~z^2y-K{ll&YfrPG;oK(w`(k<7xY)KuNhwdu&rsFkh1uZGp(c*0 zL#A>Ek|l^_-$ro~e|@MriQ()Wa&z3PYY40lNhb#IAt z$JG|>=B0$<`ktqaP)W(8UAt2vQy z|ID`_Ame!E_YrQL`FP0}7J@RFwqGB7g@%4F*?x8BVp~#YIK4(}nP2nOKe^g9>UE>G zIGZ?b9Fq97y?rcmcGfJt8`_Zl`7g^3J z+1<&Jtq!5>CK?yl&&f>bN+61@a9W@i8Zw=kUTvuNsJ$YiBuCxvVQ+1(+jDV^y~5?O z>*YTl+@L1jGu`UD2D5^q@EAz=;oxFl%p#FNiD;jJNK zX7;z9dtPWVr#3h^`0jA|{YdJz(<$LRbS}9Xg^#@?W6NjfY=a-m-p*4SV|3`ubmMWj z9eOMuP2nmTj!$s^zR1ujONHGGVUAJ(`IDFT3D)pCqj?@_PKcp_tr&yZ0k>2lhd5*s z)Snydyn#~E`SifzJtwGA^cE}g8FqhbZt2)ZOD{e2dBg28@131Z4ZM1}qD8@1RalPsHS<*F zo}rR76gM_rK* zj}gGP5(cdPgv;@8#F{Z$-^} z)0!hfCu^_m^psLqPHp2 zpX|nfTnCLO?B-v$<{+c%LRQ&Z?~512SeohW`@Hq_<`+x?U$7PQi+Uj-EBoFvUpoYM z6M7Fk<{x}jRaLnfrC&g60|K}8*)LI{Kz#ALG&DCbiTU$lSo-?==2jOlm@WU@_wu}~ z6-HLw^$BzntF$qoO3VE6S#W=ypih?cNE^Wm;yi(T<;b`EmzO%GYM%`{l#{cv8k%;E zcERT$xDy?dC^9t5B6e6#k8fE4bmTcJtKP!rKKn&}hqAc-kv4P$@0OQe8>`^TXGlB) zkA~|QQQtE&>-Te_zWTXpeh;LkZVw;M^{T5QhQ8}11B2nk2SLb;4sc~;;+kIXYJvj#(8yln!xDr01kfNYC!2>2J8l+W035h#P-3e!rR(Y3q3am+u z2l7b+VoE7ZWb3#t%%BvnA4w*=6IxhU00OU^G?Db@Pcg2!Nx%8zUF0$JP$K8s%*Mtm zDjmM-b++&eB0a5dJ3nPXc$=S|BqFEi$WgXdC>Z)0kP|h#{8m~>h{FBG9rC9$w8HKV z5#Kbf^4(kNNnBd5WU^abJ)R&S|7?Yhf?;$+BV*K3nLo*&2yCbg;3TE_`U&8C{J=Kwt)2P$bRQ zbDp*78=CqC9TG#0b@SdmaGgsnI04tP zs7%y#2P=y=LO0wFE5i+Y*3LR-~7Q)5Do82VghqV|J6BD{x zg685QVZiB_3BeIRj<_RtB-4KyCEB$GRYzgOW&J8RACE7II zCSNDJ-N*hRSNZNJ`Ul)}1#e#D>{9L-_TJ`r*wo41v?%|RF)V7Ce2r05y@1|0Tt?nT zMYTR!2;wX(ojLA_A&jqO2~ewDJ6yS77Fx^h-5WQ)r=-vTL!f2k@IeI48k1A6mxlWe zwUW%>YP8kEhc=o6gM;BUfdK)6fJ?NtQo>~==bPZ+$yCZ)HR{m7OIP=uyT2*LN|+r#mYIYFI>U<-(4Ls1Bv+F zi;(HUemp?uj-)Lmu0z*ThtA2)&IoQwPq+eJMHi_#NhVO6urV?&oa_^XPAzq5f6Y(0 z!ilwSJeqyi$Hxcl4@gs+#f~Ykz7$dyj>;M^1eEyJ-MeY#92Ud5svz)sV!XE8|8qF7 z+-hnuG))_JK5HXFK7IOQacq6mDod@@-_o8zsK^S4|<}%ikQpK1u>B-*Zd< z5E4kyNiK@E4Y*WWqb225L4b)}oY;~UXtzX^usc6@x$w~5L$9! z<2-~X|NEWjZ@6I~248;#p`#OWt|0vayVzijwNpaUb|2xq>ky((=iefo@csNEv7gOq za%(w+q|y5>IV?3kL<>k;i~EYb5fps%VEZvsF?C{^o)nZ>w{G4f10WFqPW0*7G;!_R z#4tVK6HHtb0?gsE&R*?!>nYz=1S^=<_!IE?gphto$#{;m#)j-)bBqzqI21XkJl+5ai1QwWWh1Y1IKKZXL=QxruT2 z=M*2>b0cMlY=K5>E4Ryu2*-+Hq|qFZDDqqx=i~q>2`KSS#5thGd&_;X0R$s`LwOjW zo86d{@~FEz5N^l}i}P*y441w%+vmy2DTO5^4aKqO@JxUD^y$e%pPQH%i}2fBvE{mL zp#~B$%rmj;yEE5ZeFA(8mwTr?eM?xIW_seQZ((>++jq4m<0HpQg~)?ut-XU1rdI=E zxwrOHk^@;;UgXS8HepSOVUfE_#q;z$xJ`(BqV0+KGu1INkBu%?uLvYvvrVw&MSkt9~FL zaE)+%d>)_As?TP1Brm{Xmx6!Nb^i*MfkATszS8=BRKA9vTt3T-ha_Ida)&`{LGvjrvHbow*bn5+xCYsQ3R1L0VM^Ilr9zN z?gr@+knT`QT0la&5h-bDrMtV4?tJL@7VkOt+(u-IfUU*XrU5r_~l0Mvj&rx~)8 zYRBE1g(^Y5zIP#_=c<>7K{|4NaZBab_gNla`#iPOf`XRZv3oVtaCubP+BY?g-G?9=^+NlOK9MjUgQ{;?87_Ud)b%;3 zwB7QC1X(;f4>avq`1p+hkvV}G+FH=7VD|4u>k8AntdbHfqerIa?@&*pqv>4D^10#` zXrghAM!*NPF8yz0;t~_1juTSxT&>~|Kp1YU@}87zDqph;5W8MeU|OBDE8ayt4n{^N z35P8YQ?`uFji~Lsp!ttJ01Q7%N|Nn2)p(r#_JpOih=_~p9sitxFYD`bbzBDrc3{dW z2-qE_-(R~7HLGyZh+YC1#u!bPPv0HSYZH!qwEfQ5_*KF5#m|x-ZT%S?`<d$SNkg-;Iu0rQ<=H;Y)mgVlqIp06A0nWodg}R$UxOA$2w%qtC#?4cG>MoUn)j_l2*e|_1WCdr%GGbaJ(Cbz=HI2h= zLuT&QrCu$={&&DjJb!x#o$M{{OxML(B=U}xx-f`|iP;)k_SE08=^GqOSMJ$*Szan2 zFMkVIrzi&XPRk4Az7i+#viI$^yLqM-AySmLAaCs*7%(_1>k4PIfV4H}F)PeZ&VtSI ziL=!vQf{n_tQcSvd zBpn@?qbFr+TQXLm_ng=H&;Su@cRe4@a*OWr;>bPhpvrbmqt?b@dpeky+kwgOpmlqz z?YrkIE5M0T#c(3Rans()Dl0E{tw)E?*le|Bnb&a*ncmYxDpp~xCtxdiFGliNZo({R3KXizTQFl%l) zPZ1C!;!d|#*H-t|hDOlGUE>pPfbr2#} z$RYH-*WLl=gRu%DQskqpWX<)c@Y?&9SgXV9>|9O^!A_6wQ2s$z#_# zQ|hsLE+_vxqlx&ub!GQrMETZe(-;0`X8VP0i8zW2{?Q(LsR2WVWYu}0$J{^FtT|yRLVX`723{Rj%X3Geiw#fz3T9kaZ23zD!_$akaIotos4SI1#&3kX=sYv zNDVr1Q*sd>)bFC24(khzqhX}HjPvs|?^Mh0du&eie7&z%tCC0>3?p#|YTb}S9&<`e z-3{&?&Q|Cr6Me)(ah)`}>j1A!#y@9y6k%TWFE>uTNKy*WXB zIpiDT$5(cp`q+`O~;9d_IoW0>vk!bph>rG&dd1l+H~iy2@v1ii%+ zwDfoyktMNwq(hF+WQ_{M!p6~|&QfkDyILHZWm9bp`3to&!=+r#^rfBtNB(am5}6Z} z>^E2V-!Y<-^3f_RB`3d|taR4ZET*qW<}&9@;Jsac zj=>eHm&Su%um6R3;Tq~rF+Nrf6tKvoLemMxTrLnA% zKFO0tw=F5fXX;*$Yfp?1uP;(uhnY6fU;FMS`$pceF_I9{+M3{7=mz6cx4f)|fS{zZn6!B>BmFJ+5s%R}k z{NoL$m33hmk?(_cNdm%FTcfqTyPz!twCf3G2JZNgQHIu(GmvHe0%u3q(Qx$3KOJ%C>KO6PhLL}(C5KGBhp8??(OZV zsE;IDOmWHG(cVjA{Kg+i!(Ra_v3EeFASag!19cQ~lvtJBlhHSuhIR)^0mOaYCVxUB z$QgkSSIZZeX%5+3q2u{5r65 z>f%H0KRY?IY%*2G3p3Av2B~&?I6Icc4gvRPS^jI7&)o~$gh?drV2(1LCn&d=EY2xR zhf7kFdq@D@O_!{C7*0fE6it5(yg4J*fEMDIJeSqaLwp!9u6(CFn?`_jbl`EKHK ziL3KNdYE1Y_YlU#o>dElxkURBF6%$=eR{MLUbwrb1I(XN(akIT2 z6#?6iEO<>b%pa7!AA>wwvA3U=r}3BFx>93H-L>2WK5ZhOi;%Fe5#(XoE2Hr|PJ3_V zj1Bh|vH|T0`Z9}TzcmSCtAlM24z?Sgfe#iAA-VN$)yrdIb91spz6=QhNw`@l&2@Bi z!jIgPlyHgIE$%*f_Uv<-aHzQ457!sdl$2JxlLQ-TV=4Lhmx{}m1Ur0=F;u~X$&iIz zAlFh*QO>O`d@<7YYCi=weJ9z|?}k`FK(1P)ryjMG&BnqvOG>uaub)!XxCpCPMLCtB z6HO+G&I^fYx)5L8t)srIa4%xE$@+RdqePIR9YJk9$^Bni0H|Ph$JQH!^%i0<>R8+l zcF5Mx(h{*=rQJo0)|xRCFEK1_)tmv^d~Q{PG*po(cD2A`kNjj8)a;45_*LCVr@Vc1V z1;xJb1 zpd;GR@fVA3+EY!y@zy46{;+!qk)|FwnXSPmAr&|5U!9f}#w^ybi0WO1< zCp3n6NIYH)ZM}nnBxPk~GjzO8&$m6?2>9K}o-5M}L$8(MI>#s4AZ0{P)`C7szTSC7s2AOHQMFP zN}VC|zjgZ` z9gF9yLMGO{H*Z{nW-)dX^Z@2>U7kB}mO;7aYW9Drr#|#yf?|qNasDZH@JGP-YimO( z?uw$Lv->mc$zT32K=n8`Gm{E*aMYZf1aL7B*3_lk3|OFyVnKWa`Uh^r<1^&m93zME zlCp-0vnRk7aM+!qLOE@FN`bB;rS{U2-bu4C_2JTzA&>jH_sYu3O+>kQAJ0rphlwrS zXAryK{c1+`(jUkqt=UIKrM>ltfZ${Rp8~2BQL&)t^L$_fCvLC01~fM}r)P=cu|V@g zzlBmi7v;y?T(jGxo@F6y&XtuXArpo3Jv@uYXOpYC%e%zP`j0^4LPbS&_m)?v5GJ&w zx#V+*1%o++cqoUEo-oq}fJF=d3l8UnM?H!B!jg)?%myz5OD%LD?n2P|HeR}(EaSc6 zlSB;0F}Tbr>PB)ju_g>9zbg(9diG}&le1W7MjU@twkpVu(F-|`;nrhjU1Qfa zT#zN+A~h9LWlW$oFSNLJ#FBvZ%EZoYxIm-+2jzobN3%~sviA;PARcFgQLCprT`adi zfBBQCv{daqsE|<% z6$Ho+NjoCv_ipJ4Khzsdp7Gpx!xMUO3!g=Y*2_28a5+l*?1o#KFWQOOh<0^|i{O~` zqPW`Qf6-x2WL)7&qe*DN68*US0PbYKJY`aiO-=uv&C;LMpno{tk%iRn2|zfIhVT3v zCAL0n16f5RWmGIV|G)H7koX&& zDu<)wE6=BJGebXJPd#D3oBZgI9K&M&0U- zL+e)`PCu6~#D=HpP77-79rN_{_Wo`s+g9LDs=A!Lbfa`(|K*{5Ey&2h?J`!;9>+Q{ z;>ucyW{T%~1Xc}spEAGztSxo=1GLp9cr@N->L*k4)O>q!x^g+Cto0GOdC@RWE zIrFcrD*a7RX8t!PMo3t<#VdhW8gq*Pm&@}zz`r%Wmfj{tJjWc1y>DR_XAZp0+}ABv4K*t`yD#_?!2;;?pND$^t!I zU8jRqbQ_!EHwXsf?Eodvm|yI*_0V%2w-#n!tYc6(}E(b&WI)-3MF=m4HbqoPEbEB|H0df*M<{S~-pK z$4u<7&xp8k(IEMmPd%!2wyU8S+$>pAjf0Ib(-(f>J7vbx3#7+k-87t>KA?tMgt%WZ z9?NF&DvCpV?T`HHjnUH3XszXB}eDPDa8@*#q7~8jmM?H4#<6?&EJj=BHy3v{rsGQ2*|0^I78bCfCB3x9WI4M?W=2M#b64d}v;t0=5EAV;;JmJX z2W>q3a~XCJpF=&G>c45dSE-1ZV9yVaZ@J~QjRrlHDxD7h!q$S=3)@H3@hr-8s1s!8 zZv+Le>Fpb1Pm`}1b#?Uzct%;S%h2R#33RdW=nb{fx7ymFF#BfruOI~wDiV9K?WE*F z*LLOT?gZ%8W&jjDJn-f%FO@=TyA*5b{|DmhR#%Hc-yIS}!a@T0)OcB2f($?P{||8n z@;6`R;=y>;r$Y+rq^cHv%-sTQNSot6k1jaiO3|&Jj=s} z4a02ItZy+><0n3nIO#DP_>46YFH9D2`>?`@Os3P&rwU9o&Xfl@fy;kMABiZ0T$R@1 zt}D?mfs%Hz@~CNK`+n-60tt`nTVy;35RXMr2VHJdz&5UMMF=JGlkzpx>bn_GQkLaw ziz?W@Y!JeUXE>I3PY1d@S7P250itd$hszpi$o(N)Po5m{Jy)_!795~@hW+Q*9^^&0 zZ{HcnGh5a$Pe|al2I+TWQ_bA~k89utu8qNuv%QR$leK~L^dTpQE|+BC6As%}XIs4V zTD8sB@Q~B#V~qr2nUi#+se;dig-kjrf3&AWE;;W#o%mlr5KWJuUi>`0?(3jj+a~87zN&(^we5jG#2BPySOkkdcF|OrL=KZu;DZXZMKu ziYh5|*x5uS=v@TRi zonJsG1ijveUL$@${Z5qTY`52%TV?h9KRdRMu~1*j%JNC3n3$P_q5V(*jve5x>X@`O zpbZ0mL&qBHIt&}unVwXI$a!&d(Za+`+@OILYVMTWTyIbaWXD%bRXONEQ5i(QThz-q z`D1BmMS=O1kkDPQm6lmf(1qna`PWWc@a)lQvokl(yE*dAl)imCxUt;Q>0nlSYpS9t za2W%h6VxmIx$z&&_O&sH5jO)(waZP9dO{M+ZMup1UqOa!Y&`K03R2iQ&>AXNjjK*X z=Qn3|Zb8dee?9zV){C4DQ`tP)>8eZp#!=Bhv(w#pBKF*#A)A)IA2N=1r{~v}n`MT@ z!?jzESUA3^sr7gTmU`wsBfn%N5?GVi^4{;-_L#r#2qj&NhcbV()&xyJI4C1q6Zz}( z6}n8>djilUwx@EkpnQ88M_dI<()hWu)NILgePI%#VAW>SVV2R$eO-RThNfK=583?1 zi&$2ZR!HLuE#t11dz$mOM}M($Bmab2A(N^Zb!{e^2CEs{tR^Y4-T5>PNWe26r5EM|+=kcz z0RaGh|6d}q4vixJw`4%mc6#sXfmh<$hxb~}NGI(uSJl5t7`>V*xMgDb2>@EJp_qar z#B6vV;*Y9apk=i9gZ2GX(Ty;XMtDh1mqSZfJ>&j#47albA!+GoxRb?bepoFXSY^K< z=6_I}DV1(6G^j471Xy|W++z5ng0CHMe+jUK~B4h0cWu}VmT3he^PbC^= zekMLHu9V~3+l%c{P4%gj3L!%9s%gURaKv;C4P%WA2Bk&C+VfxLWkzXwf*$M^u+#vx z>*(pdh-BFl@Zhhbj`^mTBJqt`Fr1Ty#viN~Ka^N|3~W(RP@3WL`gj?-=Qaw`l53UT zz5CAB3*~gU!8w$(+?}Bqb9rY|^R&OGMPh>V=A{=h zRGy&Ur&6q*Ymk?#YYBxDEUl(S7)->f+c9kJ?dvO>=1b{y_pnFt{oE}WjWq}Mrx>N| zH#N><>y`FvV*g9*^f;(WSQ5Eiz~lu zlWP*Rt)i~SX7^kbzPg=5&fi_?rr6m*M-Smx*TO!pX_qFob!J9_U+@gmq&%i5!>racYXh+ z)-P@>5>MycsY6MgC{nbS!|VVYK|xBLbEBXh5ozHdd>n%zo{2js!oup}KmP7|h_*=G zS+3En(#3GzCZz}E%QB5BuTR{804k4w8VIJi(;c@-2DKuGeG zCVL@`;@`zR5|W3-#2+s|^a_`=yFE#DUreDLS2`Fy<(dV6tfp0X2JSyP;JJbKZXL7n z7yyAVlKo{Vk!No&BXl~Eh4yDPURa`{qF-OA`vPd+m+HjQoxuAot2`vI80){0C?Lgf zLXtSzfFYq&l!{|B`2>13$euGq=bK-ZQGW@{Az~mSuh=;v0FkfohY$ClU9IkNNZv08 zyIaYnn$Hi=Bz^%KU^m?}@^2LBmGS>Tks>Fh+blP-oUy6I2dKuJ!72B5zUEqHQQtrg zx<9JrOTJLIsxqkb9uo7lkF!2UdL}Ov0TEIBP*6)NgoO7Dmv+DB(=$q+EQ z*w{L&8%4np5QVQVfxjp6FFT^TitDp~FJob1ia{Lsu3SJ5bj))TD|hGch;R`x35vBQ zd6?21770DcNt5!$r&k!qINhtty}K@Ng@kayy-Mbh@?VGwU>;Z`B!8fsG9LVS<9U>k@@HO~!^h?m zoIj1W`P#qIG}J$i)Emju^r@)$HmFu^F(V`|9}&xHPBHQyOIsLNs?wCTUEN3vEjDRk zfslXmvs*%5AgH3kAs*$9x(u?eh3T3z%xj<}n9`iIz7?*TK>aUtYoqo0C-1%-?0gVd zs$pvD?e#S5ik;nbLprlJ=d@y;SRWW_BJd=hDBs&jVSp5zoQLNVxp3&BD)F9CQ>D_B zHk&>Xc-RsY$mVG&O#dB3R`V&y#OPM)Ls?Eg1$i;-KbXb%qUb-?qXH{EH?88X$RCo0B=SytJJy^huQ^iFt(X{SY(=w z&`(y_L<2J4*I#yrDs$*($SXyFMmq)6FM3M5wm|p5af&%8}VySafu&hgLV(rzqwXZ9kN)^?jcc0 z#mdp0+;OMl!`B-e9LiSB;u~gNmy=a4NN+k_g$?i`oM}&B<{ZWTK6da*E8gegA{hml zH%d~tSn@VMl*%c%_U?SV5qcl(;S=5$#02oBYrRZU`1!_WGWx=LIPG`>B7`3%tB*Ze zkG1<*lpTC}c2o@SzFn-nx`RB}`ybuGk!1f_j|FRKxW_x%e}CB@J{X7AUJC08xw_i( z)wV|>`uh5slda2IW+JFB!+*|RtD8YY0Tl_jm<@pHxK`^Q9&RG-aDMpGpCO)BP#~Js=r(c7z9)$LLkFLBN~pz?r1~*kGG0}MhpYU$G460ot=DC`qRJMU);SL z$!WERU58HeXPTEAJaCX#d40U)-cV0g^~+C%&JgZPh(PXhTR5RTks0Df%D$JE$ikt- z%cHwk=Wd7CUox~^TM0%h%Yx6Z{8Q4?C4$xLe&(wp-y)CDCF-eTg;Y)j?h#mR zI*l(AY4Wq{82_z?%OT(&7#JX6cgF-WS6Ev5D5vwJVzTN2-SV&Y@&w;;XkoReW5We^ z`8~(;XCpK9?M*f!j#%iPsMqG_SCUW*P#PFax*VivoSg4BXmZ$udwXx}w$oPZQ?i+w zK4)DLd}@48#oNam39R zI>`L^j@mqdvrWZW@f?4>tZ-P~n~tPaW}xAe*nU1;_!A4NB@t6oLK|HA4CttlI(puH_~rSw8ZOEy)sL4w0az->VW z16kf^Y4J_C6e)@W>MA26^X^YQC8+#a4E89trZ1vtDC5r{x`}MXq=!_%FZ@Hx(2KT1Ea}s13j{TZff6PE$u%zpLzEqM)4v) zhoUEjGtTX-2D~V5MFaN+z~#3B#WGcvAN#K|6SEanyjnxpeTjC)_hY z!_o!>RMhO+U|ub;-rp?%Dy?(ir*ir0w3{v3Rkn$vF~-?ut0pF6ocJH-^r~g#@?*A- zz0NNG8rWV6)#>O}_YR+k%{MVGAdJbmHN_9z{chiRgo*u||1`RHI8Ve_XdmEXROK6~uvEAHiOOCHQy#r-FdmtD`oqKqXouCk(N`OwBj zDuL;a-BPD&G0{&9)Gy&7>K{Bjl9gp?`gG!t)|gi-n$Fy$T5+r|kJhc# z%8k|X8~^S{VR^UXy6qdzq0wkgwLcW3pt$q;k$2J9>4;El`FpRt1Qyyz6n=i~!>#H2 z*iwa;TN4G}_PZR;Yjts~tacApri1&ELgb>g3tb6#U5+T9e5V2{rw9e+FkF^kbuL`q zn98BnYnGZF&YRd6tMMu|Q(}HM`v~{y7z;WC;S-9DV%Ofdb?cVho4u3};&H70(g&m= zj|CMPIqQcDGL)0te^t7q<>g5Z{V4M`R|(9^LsL~{aEPv;o{*KJL$CYJ*Wr1?O|{sb zSlfeD{z4;|aEO2-nN%{iw6U`j8_cn|omU^xeM6FgTz-6Rv@LEPw==`U#`I^RvEbm= z^D&UHuHX{ZgROv;8+#7t!{#Z1d0R;9vD<~PzkrufuFd&QO!8W30MGK`yn4#M@8O1e z%3cE>3H&XYvnkg!niJwJ^p#}%t%hdwG86ihirOl!o zc2)>6B@2r@o#d1A<$U3p#;LAFpFxB7`fuNCL|)~_KT)8H6ceC z-lr!#UO71rew?RPnL#IU47UsBXnM`&-@lQRm7~cD>iG2;x6uhYLCR}oWz{@bvVup< z&aNz#a2!p;!7{8z{o0e5%8L{#<4+lQ{1k_qX$ng@o(&4G+^F zR-3DpJ1?2lF6MB;VSKnzkO_#cK^XlW1n7&@o4f5kUQv}Y(Iyed@c-Q!fFo9u$uQZu<&qN zdv1AV{yrB-gm>)=qHB&1AM-Ry^S@X;TCC%-37!I@*iKuPUIi#&{=EL^%IZROcxVr0 zA@jn;T<5uUrE|$yR~!@M8a~<{C->#$<W{=W2v0~(gF}5o}#VeQE@I<-?4Fz=}B}$ zmU$NW(rofe8hRG_~BfAXOXpcia5Pg{5VgnsHI6Ya__KHK|vIZq@O{ z5qjC?wE0@_aZk|+{-j$a6`6FfL9P4ktcwmQsz9w_=>>OdgqX?jucz>7zK1{qhJ?kO z;h)<{pg%H}xk}(d-54Qqsj8RlQ7)Kyhp1#c+~D^Nj>Ku0CVg8q{9e;g|K!avud0s_QPwb}Z6_%CJGNXuUYu9zgS>CIkZw`rT zZ4{Mf4wqPf{`;mzR<86wA2&x!W1Ku7C>1>(@SU`gUlm zf0`xZ2oSp>gsi5&gBT2%4b~3i=3V+599<5auVEy$()WL)`5CSQbk3!Uz>!4?1Su}t zwEzuz2Ai`Ed2Oc&OHQlTrN~{4z{<~RE_l@b|=u@<~ zCy`=dZ42-r7A`M@*BLXjvf$HUWGiHDt;0O#$bh_ESl=0AWMQ zs#a>!)2|&B78Rvr>cI*YJ9&959$udB@>%wr1#jp05l=?GXJiBycs#n8ChGqBZKl6; zx$4(17oJkStdNk0P}IyG@6InQ2QI#z))&hNmsBs?-%3t_)7O`3qUU~MPFYG=@~$gs z&f9j&Q|_CzNWqQPMHD1wuuo*xmF>5+>I9uQ-abPo$rKQ=ydG|iutVJx_$VfrlsLuV zbV`>}Ln>KEpY59FY{$gP^rvAeQjOK?xhtQ~n?JGq4I&Z}cax1~j*iVH9tu4qe&gkA z7lY_Rmq=n=&USaI)=(W+(5Rt}41jmV;8d_#3MBBzKrzdP>cl3J;XY8JA&=>66uOGo5q+eF#v3DNe?YI0`JlGn-@>F`EKD)Bf z{n5+sJK~*u4s1V`{f_$EIv->n1;@Ume)=@5JAtdnxDOMe&;8YLA82=3?A9U$8p$8i zk8)%id^xz_{Y2&2u8rP6Vvv@uZx~KVN%;fMH(Kf<9mWhYfLxUm;p|;jv+;#*n}jbv zAZd5TWLnI}mU>uk%m|E*kM~w8ivKvdYYj5rprD}k!ONoI=&&%=twU-`N*2S7+xC|= zffgxGMKa{dEGD`^A06m6Q+sCr5T@AON;Zq`{^fGIvwX^kpwesNblhRAvfrNjeaZXM zr2pQt$4~h!T<2CgZy}@a9_3GIgj6Pz=y0Cpa7rYwrAds4i;U2_A`s=bk&*i{?Q$^n zFleCzCBx9oo4W{f+Wpo}XEY+4cQY1bWb}_7Yg|wYKT{~X+&fE_czpzsC`hlDPexCbVY6*vGYN1DnPrpxA)1ZAszpvB|*nk`Dc<8O(f&KTqcss zQV!b%d`ZHgmd?%~lZfW*^?~8xrJ6Y(amoZf7Z_kvuzS|ubo=gcU!kTM5AS4KdpEuO zRDB!`XgxunJYe*D7P36af6~0`?Slk>lPGj~fJW4v3FWUYs=s|BSnf_xre1(ZlI-3! zHg@0h_}CGFJ?$rz$mIjYzB97pGmZY=eSIH4e-^QOlP{f=xQ3yUC6&K+T}!f`1qe9K}%^ozY#U~GF4{QTxcGVp(hO!j}E`9}M+iRf@^X5!!`j`oi+!(CC?&?RPqN5Y9wM1O-}D>gekqch0w~d8n?t zBp%*6SRe6AX%Hfd6dU`gL!Q8GM`tzvg*v)`k&TVseofO^$oJF=s#nO01fzm~7CL=Z zkP;Vfsjp8Jfw3{d+?M>?XHTm+#~o0f{yisn_?Y8W+^{(<_v1NAW+pcJy{a%BrX-gm zd8?9gm&4`6wY~%Qh87_zzDp$=Tl8%e&+R0n$`uX(MiR;p1JI$=Csg~xhiP16}yas-fK(P$n zs~L~TZ1@6gPTCFNoY#Mr)$1Fin+aEDh!7D$`Se8LCd7WY#qn8AK_<8%&am?ecBKo< z$pDcYKJGsHpLS@bdThOa~23ARGK-DmR98WMb z$gw^HMPa>e_`Xd}Wf8eix zpt|wPf#D;#Cgv48@krqmKz0}&Zk`)XU9{He(|x6PNoJJ4Q#bLlnfMrKy>j1EhuAyz?z|QkkS!V-`lk|@-{oa+OHb5KCa)?KEai92546A%q#3gDGlJZxxbL8cbYYJVvDT^|ID z8kN?;2M4H~ohT#N(jpRn4-={!E30aD_HcM-BJ8GuDw;0NvQ^Y@r-Q~S_3+}#x899O zKM4LOuS9ik<%?+7jRzUgBKS%@~RI1*#n|qziQ&m2?@85TN`zM8c{o09G zXOH19L4l%~fv1+b24xfZiwFfgu=Ce$1S4ZFgWW|_50x|}4Gm1mc3tXL{|xb&x6)77 z)HJ}$iKPk*hLo`Zv@qt?H9)Uj(|j(- zpC*?L-M?Omi${DU4O-Z#Ymv!TFg7&~5Bny{%FrXXjyp{UCxn0G${#2=O_y5ru{oZ9 z;T2j~SC=k9mbGrD^lLfIqoXkggN;m=!$f^5LO7=18<3*6dzDJpn*$C-V z{GozbrUQ*4&0E@V-XlixS& z`e42LyRkEXlK(=&ag-~FRHESA^iZPg{giKl*8^g1znxuS(jOgTmrQg_n5 z-$BoPZ7iZ}_uk%KaSZ>G`s|9+6CRy6VgGKyui*wLQJ=|sAhw1ghRlZhDkc4_kCJwr zA!$e!o_P&Qz`bQ(#G2iPcX>ow zI#a&Ewy2x(u$JBZ{hwH$M-^Rc^E%!g&eRFCS3rNbu+EUhtE|mqS%Z1&)^Pr@4_sby zFMiQm)Uw{2DDi>E>jKI2K?d4M9waNa$i!EB-P`2-QefmBq8LeAVodtUlGU=(&py*G zYwOq9P~&h0A&e4sW&GulZTG-3%I)k3(~TwehJbHfc=7s6>^%*uD!E6uQy$mGb0y;D zP4uO!cJ!mWzoLy~KFhJ>a6Z7_+Onu-cYK5(e7V$_tvC2xHsQH)J|K#w_M6jQkhhTw zKg<$16Lzozv-rJySwBcc-hr=G(4Oaoq>0^C<$F$um#q>1&~Q{iq=AWvTG4)1T;Qp?fW9`iG4!dA8) z766vGe{aXb(4~E#7KC{2nq~34E{BjbzXrFFljY76xIDfcj49B)c!AGv5mcE^E*w&1 zyo(uiRfg^VR!(<@$5KN+tLt}nJ}qeo{@ve}9m+dLGgYb;x&%;nE-WoEf9O5yOhnuP zr3+2dR*N3wN;|>>TkJupJTHN zrl4KJ1V9Fc%#fL(@}XxdK+6|wUteEGCnvtrrMcpTXuSwPtD%f9(P8 zC|rdV%Uxw7BSb$Q!yBh{McPQX(9nF|NF~?tb8!jsPeeq>w|2HSPj%gSw&4XA-Fs5H zISiL|HsFDp>gylRm}&{0rk7OujLfvjQ;(LIU`;tA<`eD)({jffVUk}1s+YH}D`8l0 z=!zVipHHv(rZQVwK3l_EBKoz? zVY9iZsbY{#p~M5pH}v>3a1eJ7wmX_We-4`AtV9FW@TTSKy&~uVszxg?G(|7dj5N`bJl2nP)jE+fmJ+L3&9QZ z!fdw&F)S?^pfjED*K1TBk6vp5!Xn&3%K0kdKhBzijdAHTI!SY)2C9^$kpKt!m{!aU z8QvS+Cp2a6O_=znp~tGd_345vm|$4FrJ1O%E+%A923+OQS=4hn>u}ROL#QEt{`}e1P`7bnA_BZaJ20C$ zI@=t*O`qAegTqwukrr}aAA9x^kq98$s)rptk%WPfia533SmNf$`TjP9r2)!P-_sKf z<3W^7HR^LZa$*^3PSFj!w(C;Ua>Su9X_O>~-0@0AU*WddNM73Oh@}$Kk;0+|ny`P$ zgRc=`{!9d`s|I|R|EWm1*Ombne>pWVF@c4LXQWnUAza@3NUg+JXvV=s4gVy^8{ z7>I+e=^E!Es{zAzv}cD`4ZY~T-`8oc7l$UqZ+l>VBqJ^D77`E-(8Mfyb<*whK*3{- zZu5Fgf?StE#;3KkG-|CgBsQI&X=hWgQzNG#n=Rh2kNZ6^;B{P8sE}u>4j3$>?y-z7 z`kAMAG`*glUfT4D#-jlF8X@zqD0hg4bIG`$$MyC;ddd2nO;-}2u4hw)^DU#5b`KDQ zY$-M(q3sW|6m;9mp4@xGIi^%fO}}OTEmT@kvSE5Uzx5>>QJkYKnMb)6a`F|HP8L-v&=*P|&n1@wuri3tX&M<_J2 zKuFisy6x;{E9s7fYq|WpZVr&>xzh`-{^Z%dK_h{-G#d6r0#RAD#|d11{XZmK$jHd7 ztgRIaCXRbOFE5VGI+UQ)TOT%0hAsfm5BBRgJB~j%^5X!k`>@iB@$m7p$L3>2f;J(f z{B1QZ_v86JK7usr$2x5u8qO*yl023?VxIb}mTnn7k~}~C^%or&=&@u-0`Y1k+Gh8} z+hrGSU_JHH_v0vdd%?a-@)kLw!9epJ!_i|+iD=AK(t8C$tid- z`Oyn`D3n1f=-qbh1uDr)&#pMOFY%7ir-!zI60$C zT1LXx>>V5gvK5$JN0I5&I6|RkTj7U48i2L$>>bb*z85Xv9XkXD3WSH*Nmc)@dKVXE zGcR4H4-;T$6NIY0qmaDw+H>XRP$DlMAHlFasE5Mi;#!8yC&tR$kbwff{jAiI78CCk zH2>ptTw#P>Y^kcnRL7^M?{sv!0pf1z=~1rHkyIU*3F8pk<5{-1dvT)XSFh<;pjmaP zFc!zIcW;MbLP!W*vliPwtPq2(OtC{z>Ug_VpE*+^p&JMu1_Te3782jM5`bz;I;nh< z@(vWFi&}@N)rs#dt*ud@XRyw>caPSZ)15iRh56;4&!H{WM_a^EbSF^ueeHj6{|%Eq zGbhwT0umc}Mzw4@?Wnqzk#4_#cYK~V_=@G-57;R5xNL%1b*p0zPeAeayr%d0n}2}2 z_UzbDenLV*4GxD)iI$_4X*9@^pl1Cnmhl%XQ*;^!X{UDJ3ZCBN{sQ1GtS@X-3UU_U z$1S0GO5^fC=64SvHy%t+bYavqm-60!w)_kAmo0$m0pa!t5ARymD4!{{JkU1}1?9h1 zhW>vPwcFDd|0!zahUq=>4_8-=;f21mp$HpjRN8*q_K5Kl%aD`iW&^$s{-cl^^Id9c zVetJtkTIQ6prH4JYx={k?(Hn;BoMgOm*U2;n>7PHfI~p68pWnS5faYRQz2e8e1mYX zpapo^L|PYeuF6jC9DduwK~dKWFYQ3?-8?yGGjGWCW zsC!Dqb_gRxuu+?s7AXxzH9rrlCHTqRIqSXTKmQ#rKzO^dS2D1 zHa)1ow<A+7>e=q*ebRLw7@qF(ho(_TH>(U=f09uW zZ4;$a-6JozoLcfi=TEVpI*lZjtN84lejS)ZQPJ-I&dFfHF$_{SU7GLYsRt9_+|w zX3q&(P4e^getXtlm#fJiFNS&|hao0CKq>GCh8fbVY++(>ML+%~A>?-$x@8(wiq=CU zESk7HnW4Fk1U)-AfLy;##b@bK-a8t{&sv^HR$5w@DLj%;&L_HUvSv} zMK}1+MUT;IC6p9It@y^KbCe7EUcB_)oo_ymeu`56ys5J@9wR9zO(?-ZrOF-+kgnG$ z3JUfr^=8eZt)IO|pTBhcuz&1)Ac?8{TQW1CSvI^yk4~EN^|N5u@QrQrbXp~k^jKJ$ zUD=4y3;LrYorjE{EmZvIN5=w)o5X>i(tq2q=SjLSDd9_6C$9)Um?!EVP#F{*jSPgF zbPWmg{oTk@S5Z@$U0x218V*!Ps!gwq6r+@tjfOf9m;@ZvtAdgugJ4zKNK68PjOoTj z!Lqy(4)95U4y3W6L6cZqP0jh+u<`Re2t3M83h8J#!Shbtn*F7T2?@bz#mLB4V*>Bq zAt4d5n=kFJYGYc>NqiIH#>K|oxlq>DHPrdz(!fV+qdv`6QBmQ_w<|9cMCj$fI)gHD zv|hC6?Pp0Q9V;BT)D^?%P6t?##OeG0ue+~si?ZFi2lZ6}C8bNH6ciLxy1S7SNkKq5 zMp_s_K#&rVE|Kn#ln@6bg^@-nY3UjmMdG(d&w0P&?>p~5@LiYJg^xJ#+|M0*ueJ8t zoDc!azHoqMx)$){AhqjfeDB8Nv&u(sK2XLH>JUV#1uBt!Zg6Mxy*tbh0 z&3lrCz@KkW*^ZL&XDtF= z1E*d02kS+mx+p*XxF_bl%P5hq-B;)=&8|)pUKT~>sd-sCDAMe|F!n$9*ir(hxxg`D zBmAC>ynKJ5j=`6TbIMM_>JSIy;8A)vi2KHYO0NQ$V{+e2fKqqjRkOHQ){^YH& z9xZDbMjp&r?euh%Waw4;lqeaNC^5|4bUc*0$dYkqclikK!9b?qOj~$5BIm{E_NOT6 zqteSO>aFUjYLo?i@`a5>#`mRMR%$|UDNA!uV`NUwDF91R&{z5RPwX|@-C-q)wK+n~3b``+7Z*x(gz)95E4Fv16cF%Vif5E3NNGP23idV1AT!=udsvtRGA zY;Kd}YZ##lI7CImOK)=3y6y0urN8xBr(g&?ob}x9NU_E5ebC!)@MZ?iKk}&34^Rkpl>>h~ac1z=Xcu<1xwkqS4q%$S z!A*`!pVHD|4}+xgX18k1(IVKEJd;wJRj&!=0cH|@Ju1MUv$L~TCg@s|*QrZQJC14) zSC28KpllKC!Rj?}&zsT;V)JGm^yP}B)M44?hpw`RG094qT_i&81vWOk)q3Z!YSsF^ z)bPPNeoM=QWoOHEP)2M($uRU)a4{XGa&bYFxox$A-lRB1`0M=iM-n1m8PH$bQmY?Y ztw(Oy+|JWZ7V~+wI$8}AL~h;piL;Ay(Ml<&%%d$L&`{;X+6z0aVH9F!Jp3#&sU6(ymp`|4v9 zZW@+j0Ial=CEI8BiP`*bK;dw7Zq^kh_7ES{9_s%<%Lrc6_0xh_-tLe zX*+~Rm?Kbf=f^2Hjh~h@9>xN!X2s4z!X)x>mr*$MrTswZg@~Rt9EX!4 zJjOeM_g1#mQareOm!9tCm1N$vxkW{fk+)V6BHW7yc!0djgwpm8lz;_$FS5y7c8TW4 zloPuu1Bt}4?p0^!?P>JRJO~?sjeb+f-yUU*!wtRe`oXX{vEF@iCs4>@iHryRIv8nl8LUy0XKY;f=Iikw*rt zTSr%4%RiV}K!jR`Z*G))NM~vDsMh1R?D>&;aEhci+X9ivOKVVl)Qw_pE$$4&IftZewo8@ge6e6H2B0v-eE93DK8KI$?cC0LI;Ly^;A3wjmOMazdU^& z|1u!l^@IFtqLR4p-q?|H3%+WH@z)LqK@W*nb*7S#CC7g8uO4c9dneB@-Fm^c{m#6r z_3XpdiGp%z@_=D~IJes(nNAW?$dW|MWx)W>#-&k1Rw|R^mSSxD*zq(3?m!(SEYecu zFMt9X76Z=Qd(4w)0G;$38Gyu(gIQ z4Kk}vx;mBO!u;Ui_KO4^&GHeZc6KTUd+WJrw&VF038UK+U%}u}pugNz_-$a&r`NK4 zdyS*?T3Y=sn7fNgwpt*s_^@k>gAA&sfM*Bx{{#0EjW0jTZ020Jjl*!8Sx9)phuEUg z)Vut(*3t6Hv5@PBR##JlcCpxL^1fx}ant*Dnp1BB^z<}#5^LUimd*fs98mPzB6@(9 z-q!ieqWz{?%H4Px`pxw+3WYOlz$f;zR1hKUM+qpVz-5Vsx71N^si4Sr#nkbX#G^+j zErO2!B-OVbMDv2Wh+9Uc4-hxHA>>n4qAn=^Y zO{3p@Zz}g_0~3sC104kuyw?91v;Dl4qaNicZ{dqPMz=XwnN1w~7T<@(LChg5wRQDH z9EZhv<2Zw`+ZkcdFf#EiRx(rm5GczFhq(VQ0Rf@@H|r9_hi~G>g-y`CHvStz?F#A( zNbw$ddHFa==10M?@e_LNw{%uR>b&cuT%lSoBP&bx(Y`2HR1S(mbFTMoIZjs#@DF}& zf*1$nS|Fj7fF4_EUurnn=ESP1ZlNo=ynd7TsdOR5U=t-N**o}DQ>(wUx|*wez976i zUBOomT43%PG1Af$yJALi8KYwahPiMIbY7Z zckhlVE3obk+3%q1MC+zj=kO&aC&oX&MNos%Ylr^mwYP%R8O%;vep_p6{upvtb1i53 zfg^SWjU3FN7Y`y=O!&f5@Anj2q+tJHQEK1e`WZ6Gjn` zAM=}=(LfU-fHi;v>#J4fZ#;0|E;#z$VCbXQdy8_o#KKd()8%k_A~K3O0v z?WT4M=;{oMB;s%4&e2%a3vxKAMm^pR-OYRL8<8P39;ve1jZHkLKKNI?VK8gm=lc!2M7~jwfMs??-6yo2RUf1~kVG}mSva&K?8=qFD@j4J- zw}W9bL@rR8pAs1Adj;WLQBmPh4Lb&tNSIQV6a+Y7A61}(w{rL!kAlJ;>x$M& zUgF@%39oCv?}7(rS0AzBAEmQ2DHEy=KE%C&+R?9v2ijn%7g1a58MU~HmgbHoBXcGb zFRR-%kk`@*-3w3RwcfjuSY_8dg^b)-#ZEfSPO`MmZFLf>dnkUXu#vkzV9}HM4(I=c z_uxy-g)ZHF$s}?)d8IRFf+N*EiqX@su%}EN+aTB@Me_IoAC`^Y3))OmZTnPuZ4+d| zG7Ax_G^KJldT;8|$dA1Z^R-zo!H zc!SPyrm3AA&Ai~SFw^(`KLQ-jw2h+ELekK$&42_ zZ|vm9A8y3J?Q!t%l$1A97+<5ewcS5>w6VL@GFI=D5HhbycOkmNdid@4fcuf3xC=*1 zqaxCMI(^ha{P1n{_E8=ER(Vv0)clil0rp=|iImErh3JuLclYV(_1>fLRCHn6KM4wA zXfpmun2?%C#a;h-Ynw;_F@FZJaL}}Lv!D#&WQH1`eYif(%*VIgNxYubuhEX+a`V>1 zu>w+An$Bw<6|0UY)!cNceDNhuoEUEE?q-B_Zg!SN(&Hpxgbg(U#fA~HD~r*r>|@aQ zF<32Kw5-rf$LlYtGH!Xf(iLRr_iz219v+_J?xJww{9Og{tg!bE6JQgD?|hH*^AG2^ z1%LD{CCZD6>gDSKd=t`Lz(-rUx+tz*Eiyw#r=+NA4_JUt!hqK6uKrXY56m3LQGFY+AalTCXI#~n2Ott+i)8TbhYI1^-^R61aP$9*HmNr83$!hAO)Z| zVK!MB$_st^RDLlKNOfa;kSjuK4S%SupqfyDY8%~EVKe=?)v=b}`qsnaE(u{ki$G*` zvAYX)LI8UFH*CNjs!75hm^+<BW1mh5EHW4b|GjXF2` z!lH?uUO6}bh04p{2!OQ#0O}W^MwXw1hwg@hoP@@;#Kh@&f?senFghp$b8Ju1%4p@2 z#wS4<8I~zPY?B7pc|Xk(=WZJ6Nxjf4PHxf{u<#-(s;494si5b+NuQ>cvzuEsG(iX3 z-`5pVDuldRfBd2h^Uc@hk6!@ijHf>Hy z1AhCj8-6|&tDi!E><+oSC6yKOtiGw!;vFc}QLnJ_uZ~(G7X3AhLE%NOSK_oaLUxfm zRa#k#NE|8d@9)2f*&rowglGP&rp{f^eM*Fy$B>mvn8KZeXKBDuK|&*ZVdBJw{rO*z z72Ks`!psqqS$|OF_r1SJ``(aHQN_kEzSy9O>d0J~s7-+h^?FEnXL0CF$%v7z$CL}g zMZkOS#6nN_|)XxcmRH3ueOLv`JP;c-e$Pp^^FQp!R(Di9wu^hsZ-X=F5Z?$&sFWk6$N zzSOwCpZwgG%Qg<~SU@LF?-tR(Jb?B~-{@(e0Sbus2ujl7`)+NyL@8$B!3INmr-9vd z`DPPJQ^kV9_-qKlri`&b+XteB;5r07ln9E5HssD5opt2liMl}@Q2pGHn?pz_u|SUp z0Y)0&CUL#G^!)kUllYQ@09cS_f+OpsZEOhp>P21>%33^Stq%hK z#p}-%U_hIPCYXMmD~hB_FB84eazhtt89bwsdWSpE=(hLo@f{r<>l^Z?zJ5Lbg4BN_ zNJ&v~s&kMFLN{Q`lP<;l7!eklnxPIxN|5eGsKqc&(<}aarQBmz%6)j_bQ*$9XTv&|5L*}ozCAjZ1O@~jVr*P=1A}QA96U=w5#33w zMH*nHV4(>ljq^;atAm_8f@g|}jxJH4w&v^NYG_avdrE9x?dd0lb$k zwR4EAaSxXm&VLzH9t&%fgsr|Tgn+xJ$HT*8dV0kl)F1KFS5L>V3JZsVnwH#~D;9wF zwTT94&`DFp>TKlCZ=WYv4E1YyRW9vQ5Q0m>V0r%fBXTN1MQNq`ftmU1TF)6ekZ#?+ zG>e;a)6>sFqbZ0Z)J8s!W@Ho@eV!sj(dU3`F!V`V8>{VxgejzfQCi7`5E=<-SGqTK zk5lN8s2duIUZY}3FuDA@cJg1J!z0nC*^x3@9bD`ABpwFVXPF%~S(wfDtgN19JYk85 zh`?>+SxPaT#CoL0!hr0KH6oJWW}Fs!7~xKysIW_eIO`OLmEpLkv+H)thrzR=J_qo> zFZum@rsF;fr3_o9+E~hHpkn8@<(Bcx*w~od;c~ zUp$XjkV1))lT#=t)~ZWNia|S?krCYwJw1{sk1F1{pVKOt)cE6}mAncId-!5)oaMrW z)SA(11%(=UGnD8#LP0$8;{;SxRCf#vKrRC8KN}U*JZv4o_p>ytK{E(7TCCSEM}Y)W zvtLuOE=|cy^B7?uIUWUtmfcFenYry#7}YAB)zY#`X?eqH$FqOT_hA{Bv{)^0DN$l& zyBzXz7InnV!4Vaedh#(Sj)5xFE-RD*ljzby&F_<(u{zfvcw5#cqy%-2tcwdTc0C9D zwWT@_er9H#J1o|oKMu*DnT7q6n3$V7h4#5-_Te!xs`pTa>Lo7>&THTLeLE0&5XK0eXZ#thsx1lie1n39t2!G)jSowRj( zcD+mBV8z165)B|e?1KO)p6BBW#b9p0AVhT##!*12XvQ<0d#`)@zMSN;wJpSb8H*?B z>G#;GWjtd3Sd{f}79wiXl7TP3h>ea`L@TiHT@A0mX!G{f4<+GC%3sME`~oR1g%e!a4^359yWNg^i-t5nC#Hefj6kL6;Z zmag$UCP7Wk>m+E}GqYKvqY~6~1 zd`KtKwR!ViVldi${e6V;eHK>H(Mi&fanyd+pPik59-X4d^5#N;Sk z;rZO0;%!b!s9ntLGlWpvCGc2+c904?*S-9?mMTiQ=chg^_rg}^h()Y1WpnP`LL)BW` zgNsXfdw0hLVUDEwWV`Y=?MwG(MQ{1+>%(w=8tj#x zY{CPhwTEC9F^sHGd=^nf45jZ&lQ(ZxenOg2Q2O}zcw8yVE6Dgca9Ry&+f%jg&I%@| zJj?%jn@%MG&$8 z5q&0?T81n`HHd&*0vQ4gBeWB-ck~5+{7~9iR|+JrojzI}7j|d{%dg(stWjsM?}`fB zlvwIclP+jw5~LEP^^=)i-}&pk=aGmB+LlpVYR1`cNd#?zsPEBN_92LC7=AlZ{nBxH z*WMhXsT}TkWP)&PxNCcJFLy$I)xKm%KKy!qrLMQ_&4ohyBagp?_PaZxNm=pn@bDhT z$Gt0opLlrtB$DK~pTT6me?jwq?lQh8e}YN$1nwp`7#s>4uM&GUyd1(^D$1(K6ib=< F|33*Dy-@%F literal 0 HcmV?d00001 diff --git a/ds4c-tail-cache.png b/ds4c-tail-cache.png new file mode 100644 index 0000000000000000000000000000000000000000..c36162650bacc5cc43cc677b11c73956e8dab60b GIT binary patch literal 152758 zcmeFZb;6=XFa5QJO^1j!Q>8NAc(Su+U! zLN-^DmxbKJ{^YimBtsz7kf*Xznx5}>etGC>ol>D32t04Zkdl@BjEbd<+YpRE@HGyB z07qGg>+84oOUz0t!`v!glYAK7(&-clJtr3;&d+a@3=iBHZcFzG2sk)KuElLU@4h}2 z6-{_Odg%{cH{=n|b`dw>t9@*MO#A1Rzr~=b;|l-xA7x~^fq1yEmwKEjoTBWX7hf>a z<3I1=PN5R!{(VoA?*G5=pVK4#d;%^qGIC>g(31Q2@86Gwk+l-5s@NwdC-EslB0u!i zKp1FgHKeLdN~m|v*hCwtq8f?DlFqK`^Xb$Xrm7tg(OFmoh3X~CKUdk9+UIX5$jVMV zQDGfQV-iLL^PZ||-mUar@QQ`DXFoqX9xId2@d25E$Xi}}R3jrXx&8vQp}|4v*RQ#= zCH$hV)sqGWN2Sr%JvdDVoZcGnYP*Wk=9e*A!WOd-K2%8P;&#%p(f5uOye3-iTWo&y z5s;FSM#n$Vl4brXbMZ^$;`lt-^Kgfxx%oVBJ&*J->?>|30JRN?%6vgCyA@q_U$3csCt{s^u#a&^1_GFvCDmq?P_Jlw5MuKEYpJa2> z^Nbbw>EYqP(5Qwhc|LRAqj4D-9-i4*{-C_Py!;h4zUUagATg28xfbcKh*!vRHv|i* z!6Y1<9Y%zQGoJ0=kYI}Q2c=?C^)t{;eG$pkERU3>y>Su4pQ$qLJ}yy(K%VsVjnAxL zZ)u8HTD_p=V?ctKT3N)zXEk@#TRfU9FDY2G)J*-z&2xBL#xYT2Mu+In8xj|es_~MN zzuF|GahB-9a}@p#0Ux)NSv**&K17+ZXV*Z$>Bfl@{L<3$9HoQd&%9C#o{fzSW?@S8 z)FA@2!^c-}ukKwC8eS~~N>X>W$V3zvT|YA%Z%;#A=pZ|%-80_{9;3l=dPy+!2!G9V zRYz%YypH6_b)1eXIc@$BIL>7p3=AaK?su_|5(*|t%gK;2NwEA75Wpgp;p$~%2s-cR zz~*%Nv-`ne4kS4|4xb`sL3$@MM6x*5+=qB!f=>D8#62?oC?rryszisiLW)OOC_pqe1YvSod(uX(v zRYq~Gq7RD4-Vck+X;x5m+#{PuA%3?WQFp}$_rrUQ%cY^`;Rx+j-PZ0I9fkWYku|)W zyv3`;V&}{2f|V&;-&uSLUCANK1FN5!cyPp!PbHfN4eU}h@?Be7qqXTW7xgDcDAkP4 zMT)_txc$)Gud#YUC5Wg>DNlEH$s;FELtDm4m|OV9oKmcJfx=*-sa%8+`I!|0AuVKX zZjSi=&eC=N2N{aHV}H-}IX*=c^Tt`_w#|4a;@8ZEio+(q+dhk)K9$uu9eTW_{!=ns zGBOnKX;#A>Pezg-5s0TT_jgS^D2^L(y3W~-j+d6zG-H)~x>`uz(H&n&Ht|u*4&$7% zeA44Vq-|zqCTX~5Txg7)&(7>e+y@*c%))qDlA4x?`k!qp6FX)oMSUYLE<#`L+L@XL z&M-Z2^4Qm2@>*Eay-If}pN@>i&~e3}%}29=U~ z?~;>4)EC4fqni^{UwoBYui7JC-3_U!2|zEOpEqPR{)kW6cD=NsDlX^giO7iZjICBT z9$Y&XOqgdB!A{KS^f*38kO|6&kH+PA2jBR4KNb!l!u&QoC-L1ogSE@FM=w-9)i=mX z`-;-zMRjxI;A$bGt7$OJR2fRo#}FNm2vCBRi;kBmtOKt_q64@$cn_Uczah!>=e-^n z7zos5ebN(N%qQ+~zW3^b2^1$@;WQX0_Cf^N(Vs}uAM<*>23UUgz!5oM1!1QzD~wvi}CH-w;E4%9CC_x-FA%vuYNVN zQEiV`M{wO1l!B!VXUO4@8xQ_smF?*Ddb%#WIF34XjYh0;!;P9&!#Xn>OH$Lg`#t&l zn_bR%pOfIQqSX8q9HzGL;^K{^38E5J@-U^A`0?*6-fxCjb>1RC#wSWIJ?7fNF~59V zWm#JOhI}h}4G)Qpi#xb{6J|3rN&v|%Ee&$Md&tb!o?JjD9eggMqJl|6LL&DW5F+;S;r6$$){Ez62WjV^kqW@J)hWGljZGM+yBzpv1Lh`~ z8Y#V-=GP50p2?}*-{(BkV~}`AODm@ye?N?y+EdSxKA!iSXafzT%OmZSdW6D{YZ@uh zu83OJr>?H!r7>hxCT$oQvBToeFEJ^($^EV|C3STL?d>ZLmr@2(DTfCJK1}X<2M6qr z60vGNe{NDB6@nagR$o`g>Xuz2B2a6)ibhXQZ@zpTR8#jVSj1y*d8*vv zzDh$+Wo1|U<(-}~&@;BmYM8_O_O+F4Ja*hwK~bAvfH zmhjw@3Ha1eo4 z3#`ufEgn4wf{e)fap(O$E4MV@tXgiMRv6Zk?(O|L*qE?r^-hfq$5eqp_z*{ zZJB_DNsBv$%bGuO!(JOF2nUwd*5-|HSK>nsM#Hx9{IqNuZuLg2)A}eu-&m z+Es^2TWNZR@@iVvRu1Sv+2Yxv{)HQl3wsgaje7g~q#2W?l$0KV`lhLg79wf+Tg>-( z*CTPzGSwfWfg2f<91LzNR)Q{yyp+RnzNvtIzRK4ucC%ox(#Ed1@; z_lbNto>+1&a%5!Ww>%!=cn^~g4$OGLK9z3sK22Hkjf&iY2k8jUxUau!eqQ5lG={lc z8D-#2Gd~s;7ikww1gA@%>qs^qLO`}qO#3aeBy;LeKP8`V2le*P5&?eu`B0C!x}K_E zK3uPRofPQtFvvwQXp=t7i9Ek+c*qFx6}DrCeHd6>)B~!B#YB^(9|5^H>Jzwh{ifSv zKRI0oOlRljOlJ?&QL%(VCnq(3uSLV6+u$J6k(Y6Yf81iC3=W#hFnLGatBfyhh+0;* zwzf4k^TdaTzO9*x{MK~>XFI>J$NUkNw&n=o?)+g3HNsi}0wPhnUOjvqX-0QjgnXQp z?ffi!gf!OTj>-D?><|`+p5|K-K@fiXnJ z#q0QkG%4wPaZ&AL@3od&v2TItqmhjbdEMh4;hlwgOp7Nz2#~9@O-wrjl=mV5aC7=| zg8s|&qgl5IV&07i5M^a$P9Z1TrmB~EE9kCB4DQ3MRdgT9zRw8Ax?30LTO{JW!xMb4 za^w5E1KRF@uI=AOzPY)1)IX6U>K`~cIm5}x8OXX1-77~5FiI>gwoY=eqOh~FV!Agr zHl}QL-3#47Ng5a$3eL`^dUz(fP2vtYF-w$xX!&Semg)pR26UO9KYWd9EvX*`_e`-WlqLLM?1+55A zN=mx%W1zlAp|!JP2@MMyMjs!|5*ccEmzkOGU_f;F2Cldm6Am)S#Po$Qmta>}Pa96Z z=Hc4ZxLu-RQDl@?@D#K%Y2U)qGSr~ql?-#Lw5lq$QM2nC$L${lKBX%}n$s5#7tj+u zhRM0+(c65^gR94gC#y|5=3PGEIXJLcf~OTmW)kxAyOr*6oE*T9BfV{5FO84KVr3n% zV^vjDWF{v!Funf#^?;NgA0+8voeJsn(JVy=cuPk|6d#`!^M;o;HuzU9<wvJZGA)Vu$HRJAnw@1}TdRkdb(8se6c$k}CqnaCF!&FMfD5&0?Y@pwqT|Hv)KLt>cpUZr6qq$|Sd_W+l&uLKT= z66qXw3<0ulBk_kP>uB1I4+-E)lzSqcm(YocA&ic)Ip55h$;s2v<|~4Vxv+O*vpe5Ni3iboa(x;j&h7Ci)E{Vl53iH~Bc~^>4w33rd!N zMX$FR8H4xi^t7~7g;x|tk+!uU{(57Qp@As2KU0B_XkzFGQs~agIDkwt*mfXJpBt7<(0+k?nho;B98?OXov+9;v3U5P*w87#t|6d#%YObQ}ATyVgTi1NI=8V?&}rENyRgJCH| zs(BO_7am;$1GAaYoWq_us)^h@q!Cv8#ktQ8d0c6J_4x7$x8Z%-?!>&k=u|4#HS;U! z(`*kP&*P>jOwG5Eh41X_&_c&XNBiQ)1P)I&KQ)k=FsH&`gseP^^~;>#W1<_kSFhNE z30eDA`nmYt6cn%1(UxIO_U7B)9g8!yWf=qnhc^quFXU8gJVr}OPuH=Zc|sjB)JJ%|9kD$E!)c}q-5jQ`CK|u3fP~gHy?{F-!$D-L;l8$Ga&UMm zZ@XouP^3|3w;l~5qU^nYHbJ%wZIWbpwz$89AE;DL*j)llIu4y&wxgMXl9@$y^p4NB ze#qQyk7fyX&wXZ!rx4Qo5T)-n2x^##OEg9Q)X<`swUy)_QZ*lID<_(wA{T-a_XF`t z1Hl4sZEWQFUAyyTmV5*|tDv-0&-Oc&k&#hjV;vmC(u$z10KA@?AL?Zv?(Qn>rRkBO zsg{X!cXvCVRlCgAd9fTF9icf44-bbVR7-gKc$)5FL#62P%(m(hxU6>s>H8!&j<5~1 zc0svwRHRat925j+TtcsTEgGGf5cz?Bk**N{F(i@a`nq%Z?ap+f@ljn>SwHb9;y#QD zyPR>5i@3MW1_(X{Th`nh@8+hjySESyL>(^w8^OY&qNUUAI`b#PLu$+s0$$|Yy&l!<^COD zeHncSDv9=$z7Hq6yLvHyb%ymQZlW- zud$Cw!~CwXO%E1>K*E!T`Xki5Jk~BOE>2^4;WjESt7&kEYe-vGCy>Qt_gY*=rstyv zeLn4HhhL#sfQkY8T=H&ZQ|G>2ZTW7d>K82f?fj^x04I#o@_?GxZY?x6c0~F*OCkWb zU-f-&oLxYHk%$f?u;m?Dg#(4t?+q?bOfmrIb-KS4VP1Kiu{n!Bl9vxf+>gl2)X%WM zqSU-wGljcbsX2-H0)hNTg!H>w(6`~{O)ZV*&$-Mei5r`n7t;}ZoJ{Xuxo&=Y5EAYQHu_TU;PZ{u zC8qo4fP1)1K9|s}EVe7p_L#w-=ZC{xrWaSSQef`G`r6%Zg=1r5(fC9`JP56?*UIZx z9p-kgXt<#`DkFU;nYShhs(VOaW24}Fqw~YGv^exO6BGR)L&MR`x8S6FHUs&I+JyBM z?Wf01#aX|$5^bttt^MUpq}LH5h*J_((8$?Y!7$5G#rjRd$g-iq=Ou@WT{8ARn@I|u z#0Q>#NSgiZ#)F54=e+!ziI|L}K#S$YWjbI+!KiTD*BP}d4TC~MWnpPEZCb@?ee{>K zMTd7P2B0V!1*?LT>E(VRn>vJm8UMCJvBtM@}x7B*oKj+F`IM-{ATUS@s&|>e^=1YPNP#{Qd zZvw`;yUF2$AgbA-UuyDX#*36nr2AoMpr4D&)3H@zfovZ;Pc4#0Mjj9$Q?s>xF}@N$ zJ|ckrrsd-!=W~42#a()3rAm^}tNB(v1`C!RFr=Yq56LKeQ*c~S z6CyhS06x$g&sTH{^8N07I9I>@mgk(O(QQA>>zIg|hv%W)Or?B+u^*>R4H3Ixqo#Fs za2EOcSCc?cjIr0^676bKOt?3e8Z~r4|IywYUH3cis zGaquPVPaxlTp%yrT*d%kqo$)HukS6aU-!6`J_Qs3fC9eo|0)c*{Oa9qbSpM8LfU0F zs|E>_%#E3y)g7>0ZSm2|=7LV=1|d-6pmKT`<1DW{#33Y%&&U}qeN&riCJva~FQ5Q} zo2$1&x3I97otw>-iEvNdg1;CTnkm=&0 z8BUaJ(Hhh2pt`DRAUKQCtc1f2j&rR@AdkXE<~nUSl0_8y*}({BQ39)rrlb4QeW!Uq z4QqLf^-GIXcl(z=(Xy4is?A;+u|zFAnU8rP=*){~5^zZJ*rkfjLtAyT! zdYQ7x7@W<|X(W~oW8^4V_)709Q2f@Z5e6if>4zh9s?Ew%6=UNmQWPnCk+-R_mGZ2u8VKq9k9)+q>$*(`7Ftf3Y{`BHm&%!8{ zN+y5*Arx!n*WE2OKH9{De|rvcA|e_LR+?jPDy$pXBp|q-ClL zTy)N*kE@{v5A}sa3Y;xsH2U#2&=f^K8@G8gyt4cGIqt@Aa%yte4U-7*Yr02etLvsC zP!BqXXG=H%2Xr)Mq<*$D8(mSss{B?|WkP)`)}rGscw2{^hJynel3QGi^g~UP2ITOwc>w*<^Y7u1z~3n;uV2)B`UFdks955m9@pnRQOPCX z;lh`UdvIQFa29GXnVV;uo_g5*?k6T8S%M{5wDDjgUU`gj>HUSa#cdws)9so5J+W&= z3cGF}I0nk=tJ7_~1_DFEyw;hT!m8BzQV0@6y$WZh+F08)R+x_K&MNN_f+aT-HNp`@ zw3R9>LjBx{)l)*h&OIo`4rPOEvieLJ&|F`tzUYyH2siulXKGUpfLe16jyhZO1X|N? z9qAYt2(aSWYW#j$gN%q)s~fw@qMfI-{!Gi*m)ZQE$2&^17`-r0YRQf3^z`)L^G*My z+35V`#nU6Yvwexki3Pg6^75F%LV6n;8*27FtGwG=-+sbtV(2^eOq3AprGX@iw-^4@ zmfR%lCO73HwTdF2Ro+d5z4NWtSX>(%;HO3`cJFp}?B9#~>rQZOVK_4-v=0|*Kmrw5 zyR+WS;9TD@fqhX~Y7=@BkbCX@MF;ggHzw7ytoV}?3;>6F4=tvSp$aNvutNre8%#de zTl?^OZ`A1`Eav2M7H1v%4}Ts$6g=){f&_-hJOmsH;R#TNnsiF{B3Bi70dbiHPX*2tHc24B6pw+M9;$q|%>uG%2 z7}F=PtQ8KjR?6f%_QX55hqZhCm;hmhWM@k*AbnhHiJ$6%LWz9Ncl(d5lvbe+Q4vw^ ztf-zOoQAZ?@YvYef*O^)3+0^Py4|viJrl$^YQ9rGfN*gHy)-f`G5}ZUY2Oph$nc6q zVPYmx0nh@^mC#2k=W^rhT zElB!eA|hmfoG}HIWB_(^8DI*`ejKH~JsdpIH*j5DTU(AP8s>EFzL2hl!@*To-w9S? z&f|CQVyoWTf!EW+ivp5r638e{&My(z*eW&7IVxkU^^Cuww{VIa*9%rt3_u|`dB{7o|p>u6_ZJMo#+n0 zNBMfwU>_RHeGX1JB-PkmU)HaE^(mDAWZzE#Sv|#H4OW%f@p*lJ+qmwG!-;sB@u{vJ9`gP1yGtwE2@8~zy4O7(U}D}1?^?u?h+st>j^!CiFWoFI$?!T1$wxo| zE7iH3f+*JyG>8YjC@GPV3Sn8`apNgOjCZ&nJ$Ml1d9X-Bi1;<6y68sDdNGv*jG40t1i$5Hx+jXx9j9Vj9 z9f{Dw-U3k;H}_3u#ypBtw3I5eOWalVB}t7-&PW4f)DOrqZBJ^eYp(E#@= zW4({Q@Fc92)w~9D8?XVG<@ny<-rcOw^WWFC5AXwImDBL5TV%iPO~C$-PwO~nVVqoC zL1AG+!mc(6^>#BW;LXT*|4{H_0T8NeCI{+fFPl9)WNxp*o$Ti{+lx02a0_q&xZ-)C z+`ps8bFiNA2_`oc-kZEy!%R{L1@tahgAPuIE&LCqrAuILxIl$A_t{M<@Lmux;s$N( z4uK|l5KuS&Ny^fx{Q&~lxU;o|ywX{JY>>zhxk?+p;foHk~9-rh}UHUc5x z%~(2&Vu}1>zBAWGbok)G>X7J&9X^cn=?X!iWnn=Fc(N00<0JsNMpd&S72IHuk2YU_ zXnr08ND%4wcZ10#Zx8P1K`q)d^QfZ+JlaEH*DYj&>zkq!UOqnO(|vS?_)R|h$7yUP z4~WwFH`ad;{eu^F27;8$40{0Ea}NOl-JimX0}~cb+iCaD3cG3?Ww6q)|<52-s-|^ZgGQ{(27ommmnc#sEXW!*z=j<$M z4u{@j32dOj#UAHCAc7uu@Xzk=qZU z#a@78koHgS1KRiDme%XkgsgY(VqpKca8^!DP)XIv%JFi3_Fgm$0F1PIe;})%>euMr z)q~R{`1*wSP4aVFdh97SK&?W3uPO9f>LT>$cnn*-Ny5X!6;xEdM56uJKaq2m7nq0jn}lsiGy!^z;tZ$;Xa~-n9htk zjDP#q-B8}qFaQ08DFE4*M)TV_DtNp6)gppt@n9oWlg6T9sVA(GrPD{JWC@sL0;zV;ogH#kgFC)A$>r_DxKXkf&bLo``v`B%O4&aQ ztg9uvXsy36elKw+7(zAUm~!twJnb-B?}NQJ-xLE=>Lxd#T%!T-`hpF8m&ZhQ^be;n zRdd8;(qDy(9ByBouGV4O8Yq9u0QYn9 zb3ZB99zEiKNhK@)7g*lxh&uyF4$Lf`IJ$mlZ!bMWQbPlemzNiZ=p2uWOZB&jf4c?H zpfXvMXFT2g zPG-<>Lx1n5txb5-*A@X6629#0n$oI3UB(Lh6M4pTX7-k$9i#8VgMy^;b~#M?WDE>i z#&h`4(Opmx;YGcU@O#3sq|({56tj937O+4<2RkyXwzk%HzC<;rYp}G`x8tjXLttek zCTxc%6pwX+J-W0wjtJ5}V8H_cmV?{}IJ*7B5)=~FzVO{&!0cIhOWZ23Km{U7gxcfY z#5}s1*HgBv`WGaSMKf34ot>j}HW()eYzx+Y!U%bJGtM`?Pv=|x<@^Oaj?;3`v(^jb z6TngXc!RZY_wEX;p zK-e(u374kES-j@khWsWybt?=O?HKw0zo zb9cH)rKG(*IpDK!>rA=CGq}*by}cP!Olbcz;c#*8JTumDf%o#|OND38x`M-E%*U3T zAY;LtQuAI?kqN3WvEABVxTJesQMRy5_kR`voQ}{KB|8{1g$1Zg8j#f>idpL&Lt7h< zlLuir@gKCMZ{^o-RXy)qNciSZzyLS?-$d6Dj4yszsfR${_4Yntt4Gx;9=mY>^{Zq< zm66l&ngm2~f9t7cT1+}S5Xa0b5+sB@+&E6^t+vO2+aM-~|1Q#~<-B{S_<{1*ikh_u zx7pU0GI{c*_jV&TjypeEsIqU7yGJT;&vt)B)o)Mt^wx33s*KbE!^sWl>zY}4cN8E? zSDVQkE=_LY#C(BO=~dz3-3xgntd;K;J2_BreVt5d6Nb{h{Agl$;*%h&n$QkoJqnPm z2S!F@7k@uJ^2-#kLq6{NeDp*fRy8&?kpPB-wiAjCHe66f7#}j`VYfiJcCI?za{%Kd zL0OL~-iY1rFM>tZQoJ!GWel|u9yyLS>B0WNoT zTTWK<=Z7e{A94X788o>6hwW(E$-1uw0x$8ws{r42OBx`&MgAcXwPE7h*PemwrOu&St?Qr=mDwOxKBJR zI~x-Iq*%~rjo171rr}Z!zzLZ9Kqi^-Vt2M0D3}^sqDToyfq+rW1)PU&yM1YE!OC#@ zVU68#DBC*$^BrPGo2l;+fF47Auz=0SSI=Dy+w`2g++Xs;q%M31r6HYy_vbYpP`F<4 zgrKIT4BrL7xBv)jU>ol2FCHcyv3%pT#tP0v`Q#WkAp3!?FaKe23}qxIu-jgHE11s~+iRMFAy5dI}!Jm#B8&_Hnm2|Ok9 zmu7jfE*+;e^zlW%HVh$k|9-hD9&W4s?`(;k>mCRqz_1gd$sF>@C5AR(E6o)Ha(PuC zorklugggHIdq{FJ9XKFEVjZ%yQULYBf@S+f4r6<8_Ylk5)0X{fvx^;7l3a33dSC3Mfswx^EE%0-AsSLy=yF$`uU` z56b}2vh`(P5l`5h;}Qp_)d&jC_9pG{_t9h@C!l9N;->0-)@GeMk`+3qT(iP~6@?g#dfd za6m58wlEA?LpJ7{3Vd4tyaGjJ5|P$FMedrbfR)&f+$qJCG3fjbtj+#rQnx4=Pe1}& z8+-SBkLm*dGDBx=R7Hw5N%!u~psOmIF5D;2W8e7Tlq3Z3GaXapvPhfT+d3CaVFF?6 zWWvJ2HqdsXqP3aH$rOnqbpimAO&uL|mfaB$Ld=0L30CKilYRi#9W6f`2pDNFMfn-6 z`1EO5hy}Vm^fL)87PAssfGEB3t?7AFj4CayRv&!IR_KuH%M&1p1Fr?));C=>s}^4P zOOKvccP{9_yZVL*Zxuu~*mM6TQgKYV7A7VpoU5ufxoXk1vU(gB^%TJsVAe^$t*P&Q zb5!jzfgL7IeTXUhJRBS#GanPN541S8Z*F;UUf{%&3x!ARqX2iz($SZWvJ(_{+AU*Bd5a&^Kk$zN0tW_sIC*%ICH$mhHHm5-;Fcmf7*YIQ zLt}A`<#vB58gNHj?052@*q<1cMM-JC;~sLpFVXqw#Tbj2>Qf4enCA;%97R@-FN8F; zy<$|YZbp=nQ%)2Yl1^Z7>i$z0DzOBv5+O$-ho5?ORrV?{Lj70_-QoqwkeHN|`Kv`0 z@W+7XA6!n3+#-iLdt&2A7pKY#(I^UHjYu0Dpm2al^H)~ zgeCbid98}WY6mVKUJYGjq^|*PYL((?1O`PAKwc{?Q{^=_W{JKzN3N%=3BProet-r_ zY-oIaqgVvWc;bnP1mKtaSGhk1hK=U3j%0TB{!&Za-MQ@85D0}L?p+M2I52-T|7|2k z#~qgU{YzhUQmegh7oU$)8VW3&7uJL|8G8aGBDM;nbG*FpXQn>2hIW(t@^3%9h!3E0 znA5I$ilHST=iXJx4k|1C)04yN&6SP$Qo0IeM#wj3cP_IKD#h+fU(dLd|_`aBqh%jmNJq-NJ?7T7_U7E=R;z0N$)Fr zUs4wz|HTXJj0_Aubds+@(9zjGsFVyZ9{N1wAan&9EnB*qEPe{cOj-s~ts!ym#YL3=-aP*XVxuBLE z+-hm~3keCqe5)TmT*KrA*S)QHU}^<*6Gt8N-+gAFA~C%DoRWfHVR*`R<&72iq9f?S zd{f60knxgt-f6&M281mmR>Kn^@l0dy6|R37Xwi<>I6BK5wTb5ZH@`uN#rm*+{PtTV!SEEje^BH3%0UguW>iK?}y1x zU>^ux<>ePV4iliD*xlXTaz$qT_32Rpt{Vru(Jvn+VYDgE|0=%zXTw&Vv-Os)Zz2>#P*8s`` zFn|#xsb*aj{O@`Y!y4&-latww_1*UO!mmy-muBmjgxz=4HVlWF;|bcH0qu_hXn(0o zldTMy^{!6_IIa&iTai|cUwr)R{e7ag>P7Aw(3lZQK9ADEh-I^M6Au~yNETWxSd$dW zT<0P8&bn7$%prkF@A#eemx5sBFR&SY#on&*ncxLruO!sFo#5o zdldxo7oDrw`2LlItJOSyIQzH5_#c=GzJIol0_4LU`FOLQD=HjdKOZqf!Xyzz1yy`M zpnG8EnxkzU&KZCQ{~(FRvxXbP`Cs#<4%>lr@(FpWjtLsoso*Nu%z>PnoAbitGV3|S zYR%1KTYGa`leG46hv&>U?fI5XS=rPs_!P|{oNDz8_e-LS>t(OT(?tr3{BNPgO|k2$ zIp%%yVTzwl5L1tFJkt7{lX#lMFkHW0kFRmn3kTl zaGKxaOWZE0@?C~ARVEQhNw~0l>e%o{h$etp8IWwA&Xm>d&FIKfr)Hk3!0BgfYi0@r zJaa|jJC7H`RoD9PvmsGom6!WdV8nWhAo*)ZLO}sAsw%t`^Eo1>K{?BBkvGxh{jBLq z&WsWy3F)~y#U;AVSL~m9cyqny*aiRiUk0wIw{IUEas2Uc(RP?k{hweq!_d-~j;=s) z^@wUc0?a(f;imU@A;i04c+Jhtt3z6pNG@%EWa)BR)zJ^-RPw&-hzU{ z=AEY1AF-*6%wDVqMw}NcPL!C`kFEYYK)pEf{cucwTZ-0-_-#`T6$-;e@RL z14`_Id{aAU;auM%+A{W51Vv_fuwV<~cbu=rakks!DD0NZz=go^$fp zAp-m|%oqMgWS*ssODv;v)C(2*5g8pF=u*x<#VwAj?zXJTSoo%Hd#b1KC6DRc0EUF` zH6LyF-ed3t-M?Zm`p==P@_q%#s5cwWLBLlB{YJSShK6~0rBN*DqdM1y;6uAQc6z49 z)j%IhNRit^@{3jKVC=n+{|~tH;SI*!T{|quuORfLis)DYN5Ow~tx4d9p7s8pzSpv7MADo^kEC}%+_4peIk2JmRXwlYtK?5LgVX0(YZQ@2s64? zGs}6&iP}h8O;Bt;%MpxLTECYjOLspwBjecrpjftk5>?RXxyMS#dWm+0j65Zt^S=vq z{L4?t02QB{xbiw|L8t@7#(=%FriN3;rfLXK&8XN3fxy7`{yjP9i&D>9;o;$dgIrz7 zk=<*`FDzTWuv#u>klGmkf*BGX{~=8%GO{cw5$W+1n#cZ42o#G#R@(R=_hvrg zRURw~VYfe>O0Z6-`UKDj;yLRukKPhf!j+Kp=BP~JJ1VVK5l~{0F_ld%W)Ru*+d_b! zIxLM4eQfUW@6J~@F1Mt`0m4LS+S8!H1T78c9uFGu2{4W#JsvmLhCkB*w}Y-$b_;lv z*B?L8Bt_y=gl$yX*w{+x=yZx?xxsWI(EJthTPN!6)uBBvFQ1kxy+&fnZ_As;H8Nu2 zY57HYp1jgQt&>OvtG{A__76S1*}6NQ!eV-h<-$^%Z*^DGsr0KSzYi_!f7M|jBZt4` zbz?lijOLdF(gMxjKD!JcpWJ0h(9tflhkM5b8zf|_=~U~UYio!BMM{U=s1xijC;Msm z_7$jno427p;G`)3HrqW)9z0ktg*vUBCv!Sj#xE^cEN)C1PSk$L6piBEm zbPf4_wI3IHMaD@$Foc<`hD9e5@=!146ddZ7#QJE~h*tgWt^&5V)3q1^R~ z^=!f|r)sb^IN=D#x`&`?Gw`PW6*kp;%%cP&7?C_0jibA4U3P zWi|c(EEp=}&!n&CY#%(hfK2ndN5?;RXg)s*1vF$_c>s$r8m@X)4{VwvomRH2-b=WU z_B@FXdw!e-F02G@_lepVkW!4@-Lc+cMwF+OxhejnKJ=W1i}S0*Dt z>lKZF01;@G(tx$t35UV@detcifo^`bKZiDhl{Hbm-vaJx0Z!a_sokBCn)<6M&{~8$ zMe=8;TOU$>)9=hT!=0(TGv64f1(&YO`*=yyrY+8;#{6k;doyL=NEucJoq~b9Dqd;S{i6pwP+XKozR?MV&GFe%|rC|-dJ9E zNHlgk*aEtg`2znw-OcyAP0ekKHv|>CDqm0y6lxeYc|HTBf26J0pQdKF z-VCVf;#H~=h^*LTB0h5c>ZBn5Z|p2QOdq|C0x?pqA2bY3{b_@pf)kLr@B8t+p9=`- zb@o$FCY)2^4bH^_GfAtAg+bd5s7guytb_huSDOMk)&dIl7~IBWWlR3bV+IN%3Rk!7 zsNwZ7>PI356V6}^Y=6d3uM6Bsvki9WKyL|&SciZy*a99fJQLj3@J8v+X#a7grmZ5k zyS*MZ3z-N8)d~t|iIS7ouoZ3=-q_j;8YUW}eFxhNWk`Pq@mPcf{inb!YR^?4@%e%! zpg@>~-zaWO_aKmxW`c52?@u#i>fdMM2Ir{7e<2byXWl$|7UbUM9UWiD4YI6^&be{p z>m~C2U_4wcguf$>1aflMub+p^OmHiYRKh@mZ9ZM;`>MUR+|nZ06F!D*-^xGR_XDAj zKRq$_9yA2%lRPm#sXXDV`3Bs5WBM0DfXNLyXh8*mRaUe7?-pVhz4b!NOXo06afI0K zQs7g_7rD7_!>BRC=1$lOYeoH8VKyglbS{o39f<|)>EA=0)m_O`ODc`9fkkF<>&x-L z$iSbIsUHHnIw{(R{1!rU?NQJY@u<1+RMYjne!=sGz43{OuA<`r=0BqawKPoJW@wG= z$=;R7)3PHv@$;wwCx}^Jf6i(92N@XE5&L6Ybpl|K1feVc+c#s2{xzzJ*>A`_{jnjS zn=_woN;s?8J)$a}o&DxC;?M5=+XtIED)9px$E_gW5u8BFVNs-e?|pBYWf) zkQiva?f#q*%}CHu+|~9o35O~s5WBd0U_cjKDW<~4=6Zh63wqTO)9&`bO?Jw;K=dD8btmf{{8u8H_p-R{( zVUGE;DsN(<`~wsHTE;8o9bI=9%KO$-6urZ+OZ*X|WHl^Yn0bI)Z~{!v0#$c$larQm z{iS#}u~8q2{|0{Zs6&q07uSs7AR^zQV3xn(GH7@i;j%uO-emIRi7>z8LUe0uD|1Ez zztiqGN%-mZ%1s88fTBnf+(SX{?>#hLZdTV?94Bx(+K1s<+~xsS3?xy3eqeAgX+Irs zDHRnJ=KVmE2vTNbIcWp7u1MKsX=t)yktZ&hfjJ=n(J3jDL)nUzpppv8_PbiivC~P+ z)Hq?c0cqd3gT2}K16YyoFUHXPUKK69P?oI+#RBMXXP^hY+Uvzsd6fkS(8J^dKw58* z5wHAo>K&jD!cXIz_r{(>0{auF3WB0YrmLZ-F@4jVJPopA#(s&}*;o)k=Vg5GX%m$O z9=yEuov|68qT5z3E)FgH`(!n@|4t*fmlxj7uXZF*xS(Dv%7AW2$kBdqScE+F&Yr`~ z#R|4={gy#!L>S$b8NR=W`$Yiwq6^=zGxwc`I>;Xtf?4(Oo`w?Fp2xT0(M>AgSE}z; zpHUWRttu&1l2($+?fxLFRM-0S#4<@Ccpw{(d;j(}sackPNn?L~Woc>QS}4b5VSV1` z&GqQ|u@IGZwXu@D{iu4A-lug=k3Cje%K4R}RdnC`TgEEmw!YM1BESw>?PnW#dSR|E z++Jf)2*(nzwA0XtXYRKf^i00wL4EK*{fo<^3oL;ulhqs+q6b)LYX?aMwj}8SVQFcE zyCUvOTdU~wz5Vb92TL-e*|#x?A`L?4GbF*m!Gf+As7u(CoCj@P6(;8t=lfx=uRlvf zU{hIr&D=k#G+3~p=?%!D&y_}{=_Qjb)%@tO&fmQswshMiPfVgUQt!7nucujM7)AN3 z1%cE18QX_ZJ8PnF$Fo$TtS>5Kz!7{tiClAA|p$F5`39 zbcVg}mC)N7ZI!(XylfB~J3F|=4PBLb6&aZj;MoH{3?a`0PAsfZUdM?{0v7H3qM}qs zpFA_ONvBaiRdww11ziKZ((HHd-j!2sZ)^ZJ)ZsG4O#(1j6~-C7s4^C>7DltRHP4@` zDlb=h@&p0m zX}99#L%*B4wWP@`*Qw_6SnxgDhsumQ1f1<$l8A}j`kt2>mf}fubu}3qd|GQUjG4lp zUTYbt_orjl=3nhLc@Z?fa`L6hpFq1o|G)3Tk&feGe1XxVrYwkOxq@|@b2bD;6x#=ZF^r%a8s^s#0NqAP+nlas5pcXJt1696P+d$f=-}@B1XZeM+poo0 zb||XcgM{KpM|v39IN`K3I2NmaN~^Q~xm2{hJ<&!6^>0BF@sS6G+{@{@2XyjSFXrk< z>Rx`&6!#M&7QaCN93t__f@B(-QFmuhNU81wF&&*n8oN>K=g+=!kK=`_FgdxaG#Ag1 zF}IFayT>-60o45b{D6JuHkAwr#~``U*d6j=4fQm5X=yF0L1?6m3Z|f1+Eo*ATbsS0 z%n0a%*EO1|VHoJ>J>%o3baXNhN?BP`vsdw;DKRSQDKYUz`I|%#Y#vfj#8p;0l-A!@ zHTs`&w**`zsWOiB_D+gIxxsaaNJwTcUdR_I5*)J~)BXnY-D>rX9*zJUn@M^hp(r<& zy9lXEv{>TffD|SJ?O!xeM7f&Gm+qU=BVWrGg?{_FMbLrm@R7F(SrZIV4cM6a?TtG~ zce$+&uNLW^ibKtTAsEbfD%ngG4#A=1uO--lRKZh&Eh*pd=&1GeS{yK~uG}uk11oT; z2>sz3+o{rs3^{^lSr=Nr^8WYb8qBFX*Is1j(lQ5>m$-d>MIK_gYB}!0aqn3SM)b>5znEYtV#@m#<4R~J`?bVottNCeW6Hwy5~U{ACn!}*Jo z&$lE$GxAaIFnbQ>z&MGN-R*<9RS#7Mg}TRMY1G3fZxCTK;`wC{ifPfGw*PXxk)%?@ zRl`GYnZWxaZB@=bCWuF+BIMwjm4Dn<`mmPEexWhbHvZYkmWUb{@Jw#Fk^^g{gP@mT z6>J3SPydd9wv>tKrpBM3kAQ^>d=m{X-|Ea>OTJ(K-o^FRfI665&-fcge6WhfK_@4? z{FNpT6p4j>F|3Buo_i=P^OYHYN3wfYcH?~W;qNp=|Ct6^roRhAuHQc1M3z?^WX!HG^%=ZiXy|chvTD@XPhz-3B?*#U@GV*dk32s zwRR~kR^C=bvV`KO{(ZQV{D&QsYjdmU7{uJ*NuypaN|3gwFkA#tIL7%)pm_BwfX2eye(}13rF%^DKUNP%C zs=vG5_=&F}#yf$kuBuFgw(GVM*e%N}X0j2XSk&|v{17H=s@Errl&?@O%7wVWG`H1F zQ3QgyIQ%@@wCa;tZyTec!_-`Xlob?L?i@Bi3bCu1*A(wKuPIt>Fx#*0cjDW z;Yc@#bazR2cXxMv3!iao-20C2564h}!#Tgb_u6aCHRoLSOWoK)t@I>9Vt;t1gyHS% zl>@Pz`xx1ians669HdLz21L2~96&Fta{uSlO!rC@o z>w3W{CpF;Yox7Yqg{&l_VUOyWMNf~Rj|fB%fxpK*;Vw8Ak@L{eb*&9ul{Rc{D7SQm zDBKOMpRDyc5^@ub{H?QFDacMmbt73S-Kzzj0MEZ`;cGs#p6;v;O-Pk;OLvp#D(P4? zs)jw|jf|bzVboAMWqLd8j4$w}NO?u&)Xm`yNBz6l4qbL`m zC?Wzv`HwZ-GybRckHZF84SmHc#6&x22@ZDNTH73SpR=J3boc)w4xhAv>#bbvb>zGU z`CL;W4Zh?@y&HhldKTFdj+WV^IIJD&8@1(1N;3TrYrp>a!Q9KJ{?Lb^uM*(&eYN{~ zzIc6N@0oAx3NSG<_jGr^lIHhV%pUD+%BF!@8J4!95$;RPe#(&HU#pL>XXm~K1;Kf~ zUa5Z%*~95`^;G!5nq+a8vi4(KS>r?-%Gtj)HQTM`h!LpkB+0Uxc~XXd%e4*KLR-ojKVbml^~uh zmR`I<>+R_YzEktXzD*x)sPEAdsN@YswpVHdY-TER;vcXigJ+UblF}fY6GL%PIEBbF z9{DZ9%2@xWDU67|&>~0Ck4fiG8cRyCyHxtqW7~gR+03x;EWMYP?~?L4W^MkumvW<} zI1fK1G1Jc{okMnGJ$*$A#e20Ait98kTJpD-f3GPB@+n;`fn+>yk1w1cv1=Mk$J50d zgdAT=TpkmBUL>R?I5<-9bWW&2P{^F`NkDi{MWQVn)0=u<0BbE#OB(sl%;y;-0 zK>X*vd}Lw4sGy)Qt1v;hM;*5OXgM)65zd?cXUddzlx@66f&A~s#Ki73Tg777>*Fc|*L99D#}iXl=VAVo@HaWP9p ze{n*i^Cv9c+ev+uMW0s4@e&u?IohS%4lc+~x^&8Y8DdWD?R5PlVfGzb35o1Zr%&B3 z9DM&!q?8;z`sxvqUsjL(hWpvyB{U3Yh|wMj%#MgqoEbE_J1865Px9T~k4M;{B~rV* z)OP0~y^RXtJj>_bI&B$Tw1tw?Kh7QJ|8XPc^0h+8=RO6pP`k>6CMt_xfRFCfW-Q!x zsoBbUWk;(|+_E0bcKnUV71VI%)iJh~=6BQ$26HI0xek6Xyh`XFM??R(wTKIkBKSzi zAUv?m@`) z6{+@Pf~&~qP#pLFPNxB-cIe|g(ZAWthKR+ZI1xUwj7MBXQ3jayE8?s{ne%i=)S8N*$> zfVQ+vdPy!zo83yY_X%6hlKEQwb**`?Th6+@sxdp*{0PNkgj%+`dGhDKy!rh>`)XtSxi z<*Th}>;Q?cJzAmZl2>{<2g>33^%ZQd_wO5f%0cB5((IP#8O?=^J6VbQ-t)9@i}71h z(%a4}8^MYA3ha2h&!rX{_gr|UfIWJBK^KFS1_f!{t(|fQkDtmnRxyOW+I_#yDkO#J zW6naDblQ4;DK_KhJbA(sTgpsf$wr%0v!PBOA)v4vi#2_Q{4vM&z)Zb6sk$nEJJ%%Ox=g(>R$?61XQ!{DKKHQwbWGGNE@DE80Va5;_kKws!78!W* z#h&px19?kTdf26-vRe4+>{-}xS4;bJ`G7hO;m*&R4ZbXOfsb!H!wd4r?rZinu{36I zQ8Bu2$+>kT_V?ol=DuhQ0KGyCIF(^pbG;Z^bH7p5pKHLsmQuJpG!`%_j+b@5NHcKA zCvhd7$a%QG-2a&(2g7=!JCskn;#li36sQX#`0x;)c9m3_Dk?@g7oQqwX{%k9y&MwE z_6Z1le1170^>w`iK!{o~#M(=vNhOnwT&2pe?d|iW#WqlcYM*~;g_E1tzeex>CSGGE zT>Swy(W&s6JTW{;=ZlVe35jTNw~{%;#iELvrnV>y41(0l=*i!<{=I6F|6yc|gHysj zXzh}`K|m0?G&pfP>ZQ@0SLWSx5VX_`q8nvpXfIuPv((FDZji>dc6N5=yBvS3>No0+ zP`1O_M)%cfZw@(jp0ox%+O_Vi$)8v>la-|8!SN?I=PfNw&DQ0at>DPuo!&e?z8o{= zKI$Tw7a8wd$%>pUw1rbL^7_hUD}_2vG)tU|cSLn6D9KSB zl=-d69_AK=F0v0;rw2&I|FbNo(c|ffl`MRnnmoUAv^6Qf&wtB`rd%qWftNRIq_3$j z*#$??(aDmg2J_Q?!AoA!jgF01Zi}LbSNiW>pd4*!jm+LbQmM2IR_x<_M#UIkQ^vnJ zzUZNOOMj~FhlC*JliAWl*D+QzjStnP_SR<2zZ=n7-bu)tpq1g))SWP|45yHLoZ2ll zm#pej0s3?Gs+$P$sMj1MB$wP5TzQN= z4NY(Rx~yJ6(yys&TKlPX@+l={aA>H4hB^+;tYV=vW87ve!E{e#vU*3?(aRydW?V~g z8@1g9?$g8dnk)kZ_Ox3_DZVk!jG^89)j$P^(4SZ&v#qZBFc$mmEXr$hU7ZX)h8J zy)+aA_bCp`eSFyoPm{K;$;z`G^R3vWgZcT7r%o7;|Cu)UZoMRa_ksrnK4{V^|EpL3 z;82PsgH6Hy5pn3+!+~Sa|1c;DH;Yd!_m^_*;X4O!8RT>wF~BJ=-NWmy;@7*}>hl?| zSZPb^A$tH)_bl5Rtj6c=ITMaOMJ_^k&Q;&`^%h?#DG}u_ISZl`(>t>p(z2O8yg&*0 z+_WOFytXDi(h!O=b0nP1Oa6A}-}v|sIWNY=u2(2csxtL~7$KimXsEY62C;AT7P{B{ zWz<)?aunsZ#^juw-&5$6B;!AmA07t6z9;xJR($K&b>h#P+&$u%0fa9u%?wA2pEPAq zPog$jZ(lD`1e+B$+M;-(T&&}Lg89aoTTa{i%l=a7fM79=XOgwHz88&RML9DJtl&$+ zmtpjF$2!w#0MTT!Zh@MtLe>G`GV zo6XyKJLNyF4pH~x4cHParboj%=m4j4|?DWg*$d=P) zqc*W$hI@i5Pp6L)9RI*8Vs_ho!rswZF#ba~Y)E_KUz<|`V{jqCs7$?FiTZvqYQoc z_W|YU!3IBkb;7AEBslmr=#7<&F5iBXc?c;;)dkA;(9ni)4rU8$>zc$MO8Hzh8f#_O z-}(6**2nLvd}JLRk>O>Z(bKCPC~0XuzWzHMo$7$MxN2GAhvx)L_E<{{DnEr7Fl8MW zwjLNy{zjMRas_}=bL!G#f3Lk<_$dG4mif_g*C7el%1Ay}dV0F``gnlN8r%18-#%p7 zQi?~x#loB}--TQJ&V-x>^q({FtcSJad3jnWqG z`aYX8r(o@ymB_s=cQt#Aed>bEQqZEF#IYf%mY4T647lGqv+YfLk2aXA+L>XaY`zt} zcc)OSJg`60puRLewR>P-PVN&~=8##koQXWA-G--!2TnQ_=3YSZQ_+rgLiS^qfjuWX z{uAr*yMQ|{uW=B3TF9(UwHj-BnI?;i1f8J3xa0C}N6@cCGP#i2s60wLBxK9j-r=x2 zeCQT){39R#!ra^vc{=*ar8c2UZ;6^s;~Sf_UMEUTav)7*dBJs@0RrxuW=U!3kdW%D zrm82D27?LcNUTM&C&q*Gv-f55;0V>vHD6^LjluTsrfcLlYWH(mbKu6Y*34twjyU-&TWKjNg(|IQAgigVxeVHK{pQgW>I)~kB%$1@0>eIV)ALCGP`jP1?f4kDxCchz`Rkc?3iJm8$=pUIPIhtM z35#kRcf0mmWOtz?^1TKi++u13MLwUobH!FEHudt8~NirDo?)_~VYhp4! z$1m=$9f(*>b4CY?Tqt=H_pv{SiGhhy-PuVIWLEkHVV6G2V$r-jT4q{WV9A#Qt8j5v z!GvV7vr~%Qy*faWt~7vGEUvmT*6e{nGRkP*{R(8RAPS;2S9S%5fbCwPgSbl5zQIA{ zPbiqA8m6XAVI5$3>4hm0?!vFHPk@3+LT`zoQssO{q>Vab9_Oc3YM=vl_vg`rJ4#Uf0|}n?eSc%U z+0Wgsr#3`H$>GB{^$iRc98EPokS0sLS5djIq@?s#P;h>9(yj(8CdN=hU%w%}+RR-4 zir$sS^4rdwV1f)ahxIxweW9AGX2jW19RY6vnMEF>bH3pd9>*hTle3FshH=!g#xN3; zyel@;+_}+Dx(BiB7U$0?D0JC}vXZHD6QixD_q*LIOB@#-Z%mZUsw7fu1rgUnB7qk0 zgo^ROlezIs<0xf?MXJ=))Lh5&btjpA_BdXLn^3-nI_MUD#KFmbqm7*_?zvl4$?@SsIU^&7)pV`LxRplB z^ii5*edJuTTXXMk;T#SPUAbf8=PT@}>QSK)hMGA-d;rH*@sN2=8DB8U7 zTFHMvPcg&e{BR&v^;3)ybFtY4sS^t2xif$Rj^6GbQ+m_WNAD#>>enhKvy`g746GGb z$%q1UwRJSk_>xI?YliQ|i{}U^GQO~I3C>ec9K#}*76EHdfbEb}s%=Y$UD6HZv%4+sm*TwL-gq^u zrJW`-a=V3NL%xE?bbNb8{N3Fx%)QwQO*L??>dCZIheV{Qp9%+UyvSrNMdjdnD+2hj zI+Po3#--D?_*6d#Q7YS#kA{uAQ0FN^%yEh)Pk$j+>BvE24bC1e!Dl0*qtk0^LT}#O zY-)lhx%-2r(X<%C9nd`pcvf$zs2JXa|2`vgZD{QY{`phm<}I@aI5?S{f1FqMS8lG+ z7{&k?kFWUU-CgoYt+F!5x7>H->DDba5F+i7yz$+#=GDi>$dE{W)YIFW$jD9C(0?m& zbXj1!CWtFyRHe3i=fQ&+z<#gGs`fZgjf1m7K>-1?)(f{Q8=_<>A1Lu41!2E*%2?gY z3;j}!z=Q2*(9Rh%1&< zoj;)vg)-z2mAKQ*K!Joag2rLO)ZjX^!X3r-aac++4-fVuB$Lt)p_D&Xy|}$PLv+6!R|k} z0I{qgEiKQTolT(#4Am-L8;s`}9F%juY+Pns!C26YKM*AgWoJ%4Gn9kL!{N z-eIxngl=PT=Dn=kGz)+fRsYuI#SuJsLh9|j1^hujnvmdwcC zt{s+PISSs|2Sg`>ituIbslBF3CuKv9DCUo^Bo8 zn^-zRC@hZn2++8B3X5L|1SF+u<=W56?q)?9{yY%*kHyrgVJ!xn?N>X>G^ zN#p6kA=^-C56&ZSEb7i{;zWI?CC&zUkqf7^LF^xhau9b(CbLxXY=13BH1zMbrDc zJBQsZ?eTg9@n7yfQBrS2R>&%WIFemnErTn~(38dI2$hyeeE_-N@39 zs2QjbH!ob$7pIdr2Z{?~_-rE9@UJwQDm;^wayd;Vk4coGqU?i+lQ%!eK>rgJ9W7C+ z(YK_eznumD-k6*eknFyA^R*OWNxgq7)C|f1e-C~ZSr>4V0G-&<-`@{SLTwF=SD?^? zO{`LG8#`z+@lNW!2uA}Z^;jpIV`>s7QRwm@p#r-v^Tgcfv2a){bs{S!v{WW zL9wc`>+2a|_R8;9mX|BccTvHn@}& zr*AEVu1uDU;siPBj#2>O1$m;7%O?ba4?6b1HFyvIO@8_0-`>V95Lx2O0(`NyuC=-Y zCNj`wDfs)QcJThZlUQoIlYbYjau1;|H1B@^$XMwkyoAjU4K!FdIBigXL~`pmR&`Y? zlzauzeTDhOqw1+IL0ui;zKs8YZgobV5sFGk=+!k)efjbwgXTwOnY2g`j0uyB}$~MsiK=X(uzHV5veD(F8 zp6i)BKAF@QO|q~y9g2Vy3>)WSzfE0N5ZMpEGug;H#oBn{(@B2nx9_`HEv4ZL&54zz zB+C*?quPLfU|Z9Ca$u(H>BuI0Qpp3C&<%~webg^rx2?>t=)>sLYM{u;H>fw1_cUhCBdv}5zP-LEx0)?}QhHiwvWE<=QeHww zwzSF>pZxdt-!#Yn+~qU73YM&&dcsRDCwu7ErMq1%fVja?Ec`!l97^b9$&Os(PzbhI zKnq`_x!JLrD2NFzPMPln`GKw`MJB$_NAF6Yc^#tGU=t@Ku*!sjc+ot9rF@IB{oJ&(AI^SFEW?nfX&zXZh~{L3;n zB?^#3kbN8UX5k(@V%6CVUEy{<{#C*mc!Mk@?-B9=tuqsi+e1_`XNY*4nJNGroVY(7(dm9>GD`W%VhK%%!f>YU#vcPY$_?EfgdTvZ{T0?YfhC2z-K} ze^DRRX#$lBdmk!kz3$&OTq$A*0f;$MIVxh&wx;{bE47i#dhRh#($yyGcaAWh7gRsX z#{Y+xH?C16tT#`Zjnihc6Sk`Pm1}1t?i{5k1^Y1u*r#aLE}_ZhiAMAKouWtgW;>b5 z<(>or;Pc*Cg%%NrcsrLu2iVnJKEA7)%|dr~bc3&368--yXfgqSqiKFcs-PgF+2Bn! zXfYiFid6ZhNaPxCJ-Rv$9prMv|(J(m~?1)Yj^5aKiN`R4U9%P`mybrf#|19hw zsT`ltQc9fr28a!)Y(TQ&<#g}_m>BQ-7B$p6f{(oSYnPg2krq2*8a|iyrOBp}-a>Y; zIIbb(=HX0~q243$sQY8LKJHO{#n}On-_2icT^Mq?3SgxgdxL;&G#XKC79TF;c8W>- zhr#=Zxh}IhV^hCp!JuIN9u_9th3p25IJgjds0%Jn5B*fAyB&A|gpLoqX z#3aP}^LLk42wvE+SXbyxTUrWcN-e)S%e7*nKYRRJWYm?Cm+yleW?X{j; zkh6!S=G^e8h~%{5MS>pR%0x0tk7Tg*+Dz?kvbt1eAk7A+wV=FwxNIAK2o{+Tpva~w zSKeL$(H5KQ24GOwhDg2oDI1Leyq>Uq|5PF39JSJxY$QIp+$rJg(H!f|Q8W}3N-1el zY)i_o*T90|1m5@=#(6OxNxFQW7qAX`5@gF&^6*m6dl%LSIDg@1j~3|FjvF|08c;xV zxKq>85<%6sl-?w$tQ>8TSOG>mhYu;;uIPq_2?;{=mJU1GFPz`!UgF2vyF528C``W=XO>M%*8&lfXKVH6z)cI_~&~PXxIpgSLNkS$=Ciq}&usdI# z49ugN;S!GE&?XX#UcB%?g;ryimaeW>NQk!k2Ik)3Y`#POjl1{mEv9a8ot)(|Lmt|b zp7^MfWo>$CNutp3@Y$-F#hQ&xwqIV}14Ku3Hjxq7vU@qAqtrm^f>y2KpJ}AZX}8*v z-lqqK2|FrVVgOZKM^D+YCtlTEOK6KXKBU^3j22iup{6EcX6}1Dg-QO!@h@Uw*k7Te zJfO{Ng+@%AVMWu8h**9H_z{GPIKy%QT$&68rMa!O5VM=3Ns1x^+D1moNC}V0Gz@j) zGF9rEI;f!Suyl2a1I1s4tW{lQ7g8YcXmgT*)ydxe)_s!0*Kwzr9CH6B4E1e-t2p7m zP^&Z0Y0p^A8OGh-|C78Y5Vkd(46>y_jq{S=l0mbE<5r0v?3{B`X6W`QAx1zO`hvdx z3l5%*hx7ZZf&tO#MY4GX$p0`sR>AJZ@6V7$8_-r(euM-*cQuV7;oy9fpvEIVU<=*Q zYsdAS(nw0iEVYT?3|SM4wf-MfF5JuA@gyE7=nY`E5D}puEFH8tLBQxt04Pa% z-&WTAK0737Ia*%Ij}uc96BSJZG}y{2-wm-eKF3PW%PW6VNx=;flcF;2cmt9}_eX5b z3T5k$-tgD6+b^5D@6Gonw}JEEhw95dgxef1QGH2JQ`)HMH4qgIIxD1^nHhjccJRJQ zn*)z6AWj0~2Jkz5{QMGqlUabk=um`fEu0w_SGAhweVTCJXsm=8?DSi z?$#%Ac8-A-X?cq_zV~I29KTjRTbUB|##r}Eb)r0XG1Jn~={S4R%q?w44CSb2;A_eI zf8<*ZRMe+_*8KKt+^v{xkgNI}zq-@5|9ZZgK|>8VjhZGVKemXapYL`uLOtP}qpsOH zEAUo8fLUu^pEi2~t-?lFOR86-(M0#q?6G{QWlq=S-XR(LJF=iUobG#FE^+Ah_tBo8 z$XJ{ze|K~`T;*@>oPd?{2?$`(ZuY1CWegTLV7%(-dWo(RcXwy-Z<^b`EWT|rFgF~b zfAic-s-p+>(OAZ9y#$OS3NL$fc3uTX zd(JoO*zo~?P`}c&e(1r3f=4kNHlMHYr#^|ZZM47?$&kfs{3*kB0J7WA29sG-e&Mu<#v@Ef+~Q7I)K}}D-#)XMse4wX zbk3*S6;*529GLG~e{>R7?tF3&s8OYX55vOhPL-v=8TmR;9v>`|vtImiZw;Y%=-5WU zRi1GhWvaChtIyrTdwZAk@+QxNHx&kds~8rg(*fu2AtCR+25I*!wu86&O=r?Xhw=9Y-g#X)deSN^B39I+P1;{M1=HG#)7k z#5f_oxDCc)TJ2wJ0rximJO%bUbUA01=SA0wOl9&47T2DsV?B5v4mcgK2O1%twIYdh zNl4obBIBEd^xt}8von+s!FU+bdQAr?*CY?6l12t*nG(k#v_p)lRDGeH27N0q4F>yK zX17imE$xI-9OvjeR;kduDRpk1)p-cdeFGOa+TMkG+$j;z1-3SMK;Dd3ewzWQz2hiU z4n`rtketQ+6+T(SRnq)N!~V3u{{wXTPHBh~M9NcVG;BWZbfk5uXBEM1a1)0@oc!t2 zml7kDjqDeP0=R=y->Ibq9|5ZD=-B!Bt*h(hx!KB4>7q|u9R17;$6k{96mKY0K2*}F zz~`;s7<(-W_>|?sN7(J^e;GPy!5)dsg|W0Uep^{8XHVd0MnpvA+0IEAA8#thY*0&2 z6g@t(HCyt|b^`hnodwq>Bwu<%tjPBBv=!Qhy5i{JoN(|zkmMOn6y1Uue8T_FbmxFg@ZwHQe>jy0TGZqS+A zk$}EXb;r5u(b1+!`htGvw;Mc>XD8Uy(Gk7nMn=?f8SP#j@ZLJx+= zbaVmHY%V=RL(Q$Nc`Y1x*x17Q3Iso>577K#_@t7P=G$>@d8F>mA8z~ut~}4r?k%d&?$xRQ$A-RbT9h^qoz za^_neyC)O~qy=m1H04~)^a5$6*06wV64oNylj}B6Q?lHI){t!PZdZn}matApDveqg zsL-D|f3vz5e=SNl3ma5;$QHIVMnlWG;|P#Z_b*Kkt?=UfOy5}5ftzcm49^fB?A=8E z^!MMEmc|*dA|WA>-9?qa>7oSK+uWA^gsK`S;?XgmfyNAI5ip+%zdZp;Q#`Wm0CA}c z!vlDSK(qSyEB{uGub|br+cm)td|vqWYH(QtXkuqj`uRiWQVl$EyU+b3!oeVwS%L+$ z@g`S$1^q4Q)Q*o(UJHcD{wD)TCCKl4T%6jpiG2TpnEy3W`S((5cx14S!arPKA(r=t z`r*AW2Gy2{U*F`32mJg3eUn7aC|+i0OY9*J81!^ULca+ZgwNei(5f{0f}*YHlBBUb z-_+JIR6l5=D9d zyDjBoTy^lGk_&rZ6Tx=y%78IeO~!Tl=1fpP5biiL=N>1F3EHfle%cp}@X2I9SI z=%vyjHn%FG-k%DA^bP3Gvz}Hfqw!QE%4`~!>r_ce+_(Rs+hDxLF#dnQj}!$)XneSL zf75_jFO9&&QAtymXGF%45)sR{>|723=*M_Xaf!=`^K6Q3Pm zMWL#jAJv#Ff}siC*^wFi9`U=#p2==UAODRKZuVI zbDlUk28Nk|oI1g^K1DQ+Db^d)YEjS9k_o=?0TxzT##Lu5)-_WG{5V=TI&1-XDcI_c zysmmd+QMYGFI4)y<+B#GIO3k4#N8d!zq@o28@f2gqraj6Q0fM>>-B4QfvwP>Q190D z(LB%E3nvXtNzVslu3xq~*7jF>ecS!-!%Yl;hVFU`Iq`TkTDX!8lD(V0ItIyb$8t~; z^I^z)$d7JH9Ek&47{U>|vj!V1k3&SvTe!8)ODxb$q6c7bQ1<@%MEH6ZE%MRUYh6LX zV8)jwJ-+vF@8=cUC8>EdJ=>hChzwD9VMkQB+OJ*n4+93-ut%zpUZ`*~wVXsyC%pKn z1I8j06Zd!46|>5&*e_`UR)_c0rgDgROT63L+aDi+h%Cvt)Dke`w+Bir%`s<>0M(|k zxN2A%`uUm%#_Z)4=EX}U#+-RM{vVZm4feoTnT^PObeieq=~r`20W!Hkq|AY!E1PAp ze!=GKyxh}v3n^Kub(6=5klXrtdS$%nM9j%Z>K2mi)=1lz9mETVUVHKLOB66K=a2sY zRPb8(UP#{M2M`evE%5jEB5f!2{=gV1+8Tb}6*uu-Oe|S@$uvv3Iv9}J$J+n3R8)z9Nhe&Q z9$Xu0f&?oH430pU_y|c``w4F}TQsPtZvD*8Zv2ot^DJZNe^k_s+crG9dja6} z$b5b}#(3_MJGUOQM|k-!JtRC+Aqo;F@gIOwq#-cAt zFDA9GdZeN14b2n%g%#qwje{1jz>c6aw>-zF9Yr|Lc)eYjzA&o<5eK0PeiN_uPAQ@xr$w{U;SY^}Q z-7hULp5T=~5lT-#QCmxg*(=GyKh%?=XVHJ@>|u_V%+&YlOkoibHP!Nai)?&V+glWq z4a&~8S`@LjFQLBSvc)4Ya9&}*f(=ZA{>-I}(dIvYu&;gfolWr~KdJpMiiVaW?+q6< z$!m69L-}9Th&}(t`HB$e5_Ib36=6g8_@pbwG2!8bDOeXf$Di(r6vXkok+1E3cfd|h zA4nZGSX#tKb!DujvprrZc5r~MM(u_F03Y82bfm$-rSj|RTpD-9#aU#!4)*tDgAmTa z3{;T9k8|2J7iI7)&=CA~Svxv+T@U9*)z`t1h90y7P>rF3o-u@jJ)5przKK>y*Pr{p zND%2cm@bN5xc6m)_RgG%2zg==VD}0`(iXV*aDC75ONGymMkPMM7#?VpL>QF=O#(q9 z&?xf_-v@&6)V~z|cv~{|+8Gb0;nO+fFjp4Dp{Xk2i{a?NSf>vuqJ&7|mzR$aU9oZ+ zBxAN@wc{1SRb!jCr<#BUgajGh?c=GB?UXosbVl0BKWdQFfu08*naGxS*kx`E_kk$L zFy8#V;e(3oMh2KadLC^{LJRqZWlr>1)qxYpk<>Ca^`22u<^f7z;FbcXBuz~_3mElbJQ9Pz59%Y$Jan*q{TSdt?lbi&%Z0*5$}jfC zEsx(qa^OXsn#ix-RlCk*`Mqz+Y<7CSy&qNEB3rXDW(DUiMww@9(A>8AxnxD?@ z2Mia6yl{!ZzRz3U8zCSf>?=~8oJaksjEMcYcw3yF`}z!MxM{r$Gxa7;+lzV6esUd6@5O(r_Af&Mgt(}V&zZO6ysAEDL9@KD6ng&HIS zaEt=~c4TX+qMktN(omp?c3oZ-nM}5%pc^UtS~kiUm34~eBq5GX-}vZ`Oa!&H*1{+m zBMUP~1!yD`;lT|;c(zEa94Rq<=DThTzwAVFP0iZcTDDl5Dw_Za&|rrZ&b_=xrL6V#c~siImy zlFzshSsmde;j=AhIR5A$8CG}P=m+)Bt9~~rX#>N|JC4mY5jR+us?yX0sSE4W*P^`U`n_E~}iWU|s{F$L)tfnD}NuBQW zbB}ft<6)x2J8{>qej;K3Z|81yf5EzX{Vy@CDJSYl@zyiEvR6IjSp1q#PabYXF(&eT z+)u;YK65+V}gyP7+uxi#Vw`OoWjS|JUjd3x;x@wS;$n}_m-g%1S^)s<97S3l4x z$)d{27!*D?#Pb=>|M3><KkZ^xV zO{LWNGwzD6`5@Sh|Ax%l`5S=H`>pW}t~p~FVFj-P*qNrP%-i?<(xw zSEMOkY%Ew5J6{|=%Eh+QsAdrfeSBT9`-G&J@6M;c+0xrbn`5_GwRSIdIarmY5Ra;B z^z*qhS(LmP^!1_3y`SK4HP3T^Aa~}y;`ci`Tg+Oay;!yS6H4dQHl$7;)8(TrM5`A5 zkOw@^E3Rs}wY2AUt!(nRg0*oI9GLbbig!?$dggG_oB4NNQUWW zPaX>(yrzA>z6-XSJ(hINJXNfk(iVb=PYe<~Y=>dFb^@^l_F_^mOUueE7o^_A1@Sqq zM>wp6p}50)8&9Hy_jdHcV}>&b19R!Pr(QIc-K!g;!`|AS-5WzNI;i!Xgx+8~m9@!K zXka$c^<#iTHGgtGc49e`dVdvPSfRM6J(4AMzo5X_WOE`v#2}=(FJI&?b4pdqKxTUT z)iRHxcadhxC(>){-%nqxcDT(C zlORCw)Du$|W_H|1-O}V;oQZc)EM)pj8AsYE-4&p@*MzvcHG!Jg6Op=SrnB0>D2iZm z=REjK@Is#;Q(h38bdWHl^`q%t&&*8HQ_7wUF_fx^D{_;l0qv3A#{K1i@T_)Gs4v9@ z9XZpfT4~Q5A9$SEr2^LN@4RlHg|VKh7mmf$+h;KP_%<7xU54BNW!h`)@$qp7yUsOu zP#r2=30-_MyUA~fiHY+E445MAKPvD6$W6ek$t0V3vbX(>_pQ*zGakBt0h%Wz)+@O) zUajxt72vbI^l*1{uPt#3ZD>wqa<4_Vsz3(6P^r!s-uKY4I5AnHpb)daY&vYoJ(->u z0g&=U-7Tn*30_;V;Fty`uZuPM;@U5+P>zt{inYm^yqAzb`6)4Vb=pQJ+{0PTV`GVk!c~_q~rm`+2NxWFNE7nWGdq6vuDZwF0#ShoUiY0 z{3_0;WPVa_c!5dqGG+%S^~Q&CwSRy%G3#8%Ax_L!C$Tp8%XN-^_0FUMQkB6T)@MW6 zS??|R-V8Bst~mA1J{lqQRB_U!5QnYp%Vxjj3A=xwCbfNXlJ04*J^3?#6EN zJ{fx`_>u&09^5n-t75iUyThn6i)MUmK?gj7XB`?E7o)NjoNKYfh1Ve>(HnEOmeMa> zn(bSss?+Qee$BuY&yA`O_y^NfVrhSxY*{jCsul}Rc_u65X(bWf_nhqNli;cSvcu-3V7EH#PAz*&;Z*GQ z4`*kEy$dDVt#LsQc%!zCFlZtEG`*5r@m-4OhRmZgsPHn_oVNALb? zvNGai6!?g1eWlXP#7idQ1(7yuZta8NnVB@|v?|8Dy7NyknYB-4kX8q>Mb?T)-o0ao z;okSQD!9TM{qSCxzhXxs;VNiOwPay69R+Np!(@z<&-A|eoPmx4!dz=^_E@Lh@lPmK z2MFx^+ApY{!}(USeBW^I;VXf+_dbQ>gY9{WQuY-^hf-Aa;ZFMfS9PWAhnpil<>e?g zt9K%g!gHs^JbihIeSKI_y2oP4DzEG&-Hy=rsz%IQS|+FLG+z>(%(YW3R`NAhbWKcn zET>g2B8~pk#M!HYCaF}a+Bc5wFnTL(Y(!f)wnf%7`YYgGv^P6B{%G#XW^USt&wm9+xe?&{gC5fhlMfA)#|ZK#+xfOk`=ga$g{_KD4k!Jnr=Q- zt1xeNic%*jx7O?K4)%9kl)UNjh|zF8>81&Y4OJ_BL-IogP8se8c8aSA(++QqWEU7r zjGo(^?5fG+lGeZo8Fsr(Vp394a8QXla&nRf)GvB@`Bw3L1#)t_c6Iq271Zn5uN4*C zTMG3#s^u0I7Ub;5xknq!5_|@(*r?qVC+b(FGjmpRJP#i|YJ)-=4s{HtO%#XO#Q}l| zUU_|@90nw2jTO1f)CG{w^Lz8XfsnoE!p_$0_)}o!@?mIZdU`0ma_3_gpBD9hS0ptY z-@wc0srvhdj{04+5-tvo=<1@pJVv+Jh=_Nv5W}OoR}G%o+1U>4ld+w4N6+5}DA}~< zk`R-;7p?dd8%wg(se|y$hc@u-+x;)AZBLpx5uKg%b`@UAJSG=<6Kn@)WbF}GPB9Sc zWTynXISQ8OhH!1{jx^@XB(qL!3Hh>40^z>&ZT+YLfOKTFXAMvE_v7DY$X zNbv3uFo?y7Dr~8R(#Q{1( zJk*$4Hm5GQp7E(_sqti(IelEdTU@*$%aux(*>DMrnXWXtl*k-ay@o^wl8#@b@(edb$?_Hs_QKFsx!sGSjVmU{@iyb} zUxAJ4&Xz+a7ci@LrQy=yGj)}0cCVXe`noc1{ee-;#hhsTq1F1a#oiE1-kPp)C&-Y; ztQji4$H<7%!7n+})F7bOdH(v*(b8&XmL~@3pG9|XYO-^3?(BH8dCf+OQY?1F@{d@?eL1|_wy>^j zG>~!&m-=*ja9!RfDCpVBA04%5UY~GE|38OMS*j<`w_d`jhW^i9nG~s zW1qjBA5>yL!`&Q2+Q~Z3&X=QJ-IOnJKh>ys(%)$XH_p+NR$9%`ov$;dtUP*$ftarV zUt123#c-g|e#$f5+0!?aR@T?W>FA*$U#@8MYZ&|F;}agSzxz-)jP`wMAj#de2{cMd z%1Ku}dh@x;{l%E#oqbv%*nTIQ&@Kxe9v(J+^1yTzsAV}hIsT8X9$&B1aNe9h;zcm_ zGvWDBQ}4r#?VTOnrp#QNM~|8z;6}0=+=HacBR}6NZnUVdu(7q(r*x~bgRSlHvFX6- zV;i@7V2WHlx47tKmrU*1TlIB3?q(X?!Up46cPN9_mn>&b#xaY&{a)aXWV@o_y;$Zk zJPwO@T#(B8s!;d2vCXQTAX*+CWV?EaKTmm4Ux}LR>d?0C!fvv2nfVBvchBMvgd6%Q zawwaG?n}E#{KZ4ZBa&D1zZnRz4&}SoAMr*Um*jupdwE_|ubMfOCYH;4>+afM*v}~5 zV|nUUNUiU?&7&fzMV(Wx4Y~?l5aALs{X}^}=C+t)h~U+^iO&$Dx43?UM8Kta54Xa_ z{?O+EK|oWv;hyQn$RQ3q`o;merEl|2kpThd0Z|1S&1TB&B9{-nhz2s}WaEE3^u~Fr zw>P)7;Yf5@(w-QSZ*^RJ>eZq7@VfwCq)P3NZ;K8)=i*i6OSt9KT@P4dIqll=az!J1 z-_k1AWegal$utHDiYayf!yYk`uhv$m3d{GnO0f=ril-e+kHhF{+uE4b zP3*Stgkd?k5B9B+&dp|X63pE$v;F<=7nx0n)~C>AG40FGzt#&0cFi`wGxo(=6ufN@j>uM6-wZGRda zo%6|-1L7Shl_SE(qeFGzGNJf_I-4=^C671bJ2ZQ*s7E^8bUTiKH zl$1L?)E|5NoyLQL9Qy&)Keo2EUk=Dxgsi4!=X>-skRQg9e|ttu+@9Zu_t447$#95j z7?m3a)0q+S&g4!*aC)z+i%eE^M6tnX+ri>|Qzm0wB>7KO@wj|l?M&7G$KHDeMcFp% zq8JeYkt9k~5D>{h5J?7-5(OnE$w&stNeO}?ARsx62!cuy2}4G529eB=bIv&oryu>+ zx4yO4S!>tX=lnRkYERW$<;%=G^Mw2EzWVB`yU(H2V`2{1kCePA`HMKKnO_E`vnCX8 zj~=W4R4hdl;IWfy!Y`3`*6wLH^9h~XSR<~Ahp0(NyFtAFP~D zkpr7MIJl0r-~CwByVCxe&P%U(TG!chm*G5$Ud32oZ|aS5rnYZD!%9siBiycG&RIKSdw66(ycSA83GqI zLgo3Rn;5i}e(!eXbtat@aXj48rl|V`@%dcJsU3ByF|fv0?XP$BOf1eiQ@n%;P&{rE!(k?LZ%VzfwUw zvuMP(QRSkyO#O{%zPrvyS#y!EGl2LWoJnAHTZEreHMk?L)R=#{lD- zh6IF|knUJ(4l(a9F`-CimMw5(fu6BSt9ci`Ks#`Fsl5h=`sbzQ`+xrRztcUClia@* zo*#ITI22d;`J?m43EL!+$!i7mzT1m3fjvuXY7y{Q$w+(>VGRUy7Zw(eFU*8M0L;FF z>FZMz`0~mxodn3$Dr6_ntC077Tw_Ng@6`4Z0c(V>dL0&up9Ju;;u+sm680frnd-Ch zA-qRuO(QQME;?jsYv$*11?o&&cq#zf zF@7{=kB^Vf_$iB}hro3gYT3hmJfmAM`3P4d|=1~R1!k9Zx6@UU(vEmVBA&~+Pwz!e3ElXKR17< zPE#WP_9Qd)Cp$eo(Rm*PuM&TVG}fyxU|;OpXT`%?BjbF0k~8~lVNuaDU0EO1Wg{k1 zEhwf0zZVvkH99>>_~O+35=k+2?yW6revi7qXAZ7@5M~j5w`~9z-;Ar(7}ZD`cr8 zq@2*qq%0_KedJj25J>XbBR3%7vbAn|B|?|A4#7NT`L?zm4mso)f6O{LMD504q<1Ga zAI9dNyOt+)xs8LPheL+#ry);{{Q-YZ#=GmRtbv|HgvnM%SHa%H!~BIj%(vdTUh!kO zAv5EPlU47D8NSXcH-e2Jzf91po=@)$T`D^B-K+;3=ASQxiHnP$4@0a;KFwP}s41I% z+{*cKEJQTe$0r$F3@hfx97QDO0b&z7j+2rgbWkg~4r|d{@0aW)SW{$9+X|OBccXuf zz9yjNIjO11-p&RUQ<{$=I9d-whU`fNh2>{i9##am@}x-5U0OPiri zY__BXmy5lHEIa(>rY3!(8YLiF#wiqs2BxHmO-!s6R?5c~F(q-z%)#m<)Nq+z$gZlX z`m}T0RvS1o*HNOIRZkftiDWF+CYaBEjs(yxS-};YYhr-^`KT%~GO})#qRw`{YwrHi zjN{H+ZIsS*h#2;?-Zqte-|7aZU|Wz@xi^vr8NExOSzs{%y!HB!*V3J>uhSGi+r^G- zoG7lsa}-CGfLdSH66T9`8Z9i<#w|5)<}JP0=C7S;_~V~L^wz%KH? z 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 z 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