From 8a4559c46ca6a9b0e5b628a839ca0fe7d0cd54d6 Mon Sep 17 00:00:00 2001 From: tzhouam Date: Wed, 23 Sep 2026 16:54:01 +0800 Subject: [PATCH] Validate MiniCPM-o speech pipeline on native Windows GPU --- .../profile_minicpmo_text_speech.py | 43 +- .../results/e2e_expansion_20260923/README.md | 25 +- ...0_b4835d8d-f4f8-48b9-85d2-bb7ef06d9249.txt | 15 + .../minicpmo_windows/minicpmo_native_gpu.log | 261 ++++ .../minicpmo_native_gpu_timeout900.log | 267 ++++ .../minicpmo_windows_artifact_report.json | 17 + .../minicpmo_windows_gpu_profile20.json | 1205 +++++++++++++++++ .../minicpmo_windows_gpu_profile20.jsonl | 21 + .../minicpmo_windows_gpu_profile20.log | 359 +++++ ...0_b4835d8d-f4f8-48b9-85d2-bb7ef06d9249.wav | Bin 0 -> 249644 bytes .../evidence/summary/README.md | 6 +- docs/design/omni_edge_e2e_roadmap.md | 13 +- .../offline_inference/minicpmo/end2end.py | 4 +- 13 files changed, 2215 insertions(+), 21 deletions(-) create mode 100644 benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_windows/0_b4835d8d-f4f8-48b9-85d2-bb7ef06d9249.txt create mode 100644 benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_windows/minicpmo_native_gpu.log create mode 100644 benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_windows/minicpmo_native_gpu_timeout900.log create mode 100644 benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_windows/minicpmo_windows_artifact_report.json create mode 100644 benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_windows/minicpmo_windows_gpu_profile20.json create mode 100644 benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_windows/minicpmo_windows_gpu_profile20.jsonl create mode 100644 benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_windows/minicpmo_windows_gpu_profile20.log create mode 100644 benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_windows/output_0_b4835d8d-f4f8-48b9-85d2-bb7ef06d9249.wav diff --git a/benchmarks/edge_harness/profile_minicpmo_text_speech.py b/benchmarks/edge_harness/profile_minicpmo_text_speech.py index 3a2a54e35..18bed9ced 100644 --- a/benchmarks/edge_harness/profile_minicpmo_text_speech.py +++ b/benchmarks/edge_harness/profile_minicpmo_text_speech.py @@ -25,6 +25,7 @@ from vllm_omni.entrypoints.omni import Omni class MemorySampler: def __init__(self, interval_s: float = 0.5): self.interval_s = interval_s + self.scope = "wsl_guest" if "microsoft" in platform.release().lower() else "native_os" self.stop = threading.Event() self.samples: list[dict[str, int | float]] = [] self.thread = threading.Thread(target=self._run, name="memory-sampler", daemon=True) @@ -43,8 +44,8 @@ class MemorySampler: self.samples.append( { "monotonic_s": time.perf_counter(), - "wsl_used_bytes": memory.used, - "wsl_available_bytes": memory.available, + "system_used_bytes": memory.used, + "system_available_bytes": memory.available, "swap_used_bytes": swap.used, "process_tree_rss_sum_bytes": rss_sum, } @@ -101,6 +102,18 @@ def _run_request(omni: Omni, prompt: dict, memory_sampler: MemorySampler) -> dic if not text or not token_ids or not audio_samples or audio_rms == 0: raise RuntimeError("MiniCPM-o did not produce both nonempty text and nonzero audio") samples = [sample for sample in memory_sampler.samples if started <= sample["monotonic_s"] <= completed] + sampled_memory = { + "scope": memory_sampler.scope, + "n": len(samples), + "max_system_used_bytes": max((s["system_used_bytes"] for s in samples), default=None), + "min_system_available_bytes": min((s["system_available_bytes"] for s in samples), default=None), + "max_swap_used_bytes": max((s["swap_used_bytes"] for s in samples), default=None), + # Sum of RSS can double-count shared pages; it is not unique RAM. + "max_process_tree_rss_sum_bytes": max((s["process_tree_rss_sum_bytes"] for s in samples), default=None), + } + if memory_sampler.scope == "wsl_guest": + sampled_memory["max_wsl_used_bytes"] = sampled_memory["max_system_used_bytes"] + sampled_memory["min_wsl_available_bytes"] = sampled_memory["min_system_available_bytes"] return { "request_ids": sorted(request_ids), "wall_s": completed - started, @@ -111,14 +124,7 @@ def _run_request(omni: Omni, prompt: dict, memory_sampler: MemorySampler) -> dic "audio_samples": audio_samples, "audio_duration_s_at_24khz": audio_samples / 24000, "audio_rms_float": audio_rms, - "sampled_memory": { - "n": len(samples), - "max_wsl_used_bytes": max((s["wsl_used_bytes"] for s in samples), default=None), - "min_wsl_available_bytes": min((s["wsl_available_bytes"] for s in samples), default=None), - "max_swap_used_bytes": max((s["swap_used_bytes"] for s in samples), default=None), - # Sum of RSS can double-count shared pages; it is not unique RAM. - "max_process_tree_rss_sum_bytes": max((s["process_tree_rss_sum_bytes"] for s in samples), default=None), - }, + "sampled_memory": sampled_memory, } @@ -129,6 +135,8 @@ def main() -> None: parser.add_argument("--output", type=Path, required=True) parser.add_argument("--warmups", type=int, default=1) parser.add_argument("--repeats", type=int, default=20) + parser.add_argument("--init-timeout", type=int, default=600) + parser.add_argument("--stage-init-timeout", type=int, default=300) args = parser.parse_args() if args.warmups < 0 or args.repeats < 1: parser.error("warmups must be nonnegative and repeats must be positive") @@ -141,6 +149,8 @@ def main() -> None: model=str(args.model.resolve()), deploy_config=str(args.deploy_config.resolve()), trust_remote_code=True, + init_timeout=args.init_timeout, + stage_init_timeout=args.stage_init_timeout, ) startup_s = time.perf_counter() - started try: @@ -168,10 +178,21 @@ def main() -> None: "torch": torch.__version__, "vllm": vllm.__version__, "torch_cuda_available": torch.cuda.is_available(), + "memory_scope": sampler.scope, "environment": { name: os.environ.get(name) - for name in ("VLLM_TARGET_DEVICE", "VLLM_CPU_KVCACHE_SPACE", "OMP_NUM_THREADS", "CUDA_VISIBLE_DEVICES") + for name in ( + "VLLM_TARGET_DEVICE", + "VLLM_CPU_KVCACHE_SPACE", + "OMP_NUM_THREADS", + "MKL_NUM_THREADS", + "CUDA_VISIBLE_DEVICES", + "VLLM_USE_FLASHINFER_SAMPLER", + "VLLM_ENABLE_V1_MULTIPROCESSING", + ) }, + "init_timeout_s": args.init_timeout, + "stage_init_timeout_s": args.stage_init_timeout, "startup_s": startup_s, "warmups": args.warmups, "repeats": args.repeats, diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/README.md b/benchmarks/edge_harness/results/e2e_expansion_20260923/README.md index bb56c8594..72fc5379d 100644 --- a/benchmarks/edge_harness/results/e2e_expansion_20260923/README.md +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/README.md @@ -1,10 +1,11 @@ # 2026-09-23 WSL CPU and native Windows expansion -This extends the [60-cell device × model matrix](../e2e_profiling_20260922/evidence/summary/README.md) with previously unrun WSL CPU and native Windows paths. The September 22 timing tables remain historical. MiniCPM-o now has a separate 20-request serial text-to-speech timing run; each InternVLA timing remains one observation. None is a sustained or full-modality profile. The [checkpoint manifests](../e2e_recovery_20260923/README.md) pin the real weights. No model, precision or context was silently substituted. +This extends the [60-cell device × model matrix](../e2e_profiling_20260922/evidence/summary/README.md) with previously unrun WSL CPU and native Windows paths. The September 22 timing tables remain historical. MiniCPM-o now has separate 20-request serial text-to-speech timing runs on WSL CPU and native Windows GPU; each InternVLA timing remains one observation. None is a sustained or full-modality profile. The [checkpoint manifests](../e2e_recovery_20260923/README.md) pin the real weights. No model, precision or context was silently substituted. | Device / model | Verified depth | Observed output and time | Remaining gate | |---|---|---|---| | WSL CPU / MiniCPM-o 4.5, revision `503e754207c94da6bb26850b4469f367c9ea3582` | Scoped complete three-stage text-to-text+speech path (P for this input only) | Coherent text and a 5.2 s mono 24 kHz WAV. First request 27.09 s after 73.65 s startup; separate 1-warmup/20-measured serial run: startup 73.89 s, request wall p50 21.86 s/p95 22.97 s. | Speech intelligibility/alignment, image/audio/video inputs, concurrency, interruption, power and thermal behavior. | +| Native Windows RTX 5090 Laptop / MiniCPM-o 4.5, same revision | Scoped complete three-stage text-to-text+speech path (P for this input only) | Coherent text with the same 32 thinker token IDs as WSL CUDA, and a nonzero 5.2 s mono 24 kHz WAV. First engine startup 297.20 s and request 78.75 s, including first-use graph/JIT work; separate 1-warmup/20-measured serial run: startup 239.05 s, request wall p50 18.38 s/p95 18.73 s. | Speech intelligibility/alignment, image/audio/video inputs, concurrency, interruption, loading peak and sustained behavior. | | WSL CPU / InternVLA-A1-3B Place_Markpen, revision `0a557c6a503e6545b369bff2f34c76a410bbd190` | Strict real-weight load and full policy forward on **synthetic zero** observations/noise | Finite float32 actions `[1, 50, 32]`; CPU-only PyTorch startup 31.78 s and synchronized forward 3.25 s. Compared with a same-checkpoint CUDA run, relative L2 difference 1.3025% and cosine similarity 0.999917. | Real Place_Markpen observations and reference actions, task tolerance, units/timestamps, repeated latency, memory and deadlines. | | Native Windows CPU / InternVLA-A1-3B Place_Markpen, same revision | Strict real-weight load and full policy forward on **synthetic zero** observations/noise; policy and actions checked on CPU | Finite float32 actions `[1, 50, 32]`; placement-checked startup 61.66 s and forward 3.36 s. Relative L2 difference from WSL CPU 1.0824%; cosine 0.999942. | Real observations/reference actions and quality tolerance; repeated latency, memory, units/timestamps and deadlines. This is the direct policy CPU path, not native vLLM CPU attention. | | Native Windows RTX 5090 Laptop / InternVLA-A1-3B Place_Markpen, same revision | Strict real-weight load and full policy forward on **synthetic zero** observations/noise; policy and actions checked on CUDA | Finite float32 actions `[1, 50, 32]`; placement-checked startup 75.54 s and synchronized forward 1.12 s. Relative L2 difference from WSL CUDA 0.8315%; cosine 0.999966. | Real observations/reference actions and quality tolerance; repeated latency, memory, units/timestamps and deadlines. | @@ -13,6 +14,10 @@ Both runs used Ryzen AI 9 HX 370 on Ubuntu 26.04/WSL2 kernel `6.18.33.2-microsof The separate [20-request profile](evidence/minicpmo/minicpmo_cpu_profile_20.json) records every measured output and sampled memory; the [JSONL](evidence/minicpmo/minicpmo_cpu_profile_20.jsonl) survives interruption, and the [run log](evidence/minicpmo/minicpmo_cpu_profile_20.log) retains worker details. One warmup was excluded. All 20 measured requests returned the same thinker token sequence, nonzero 124,800-sample audio, and request wall times 20.95–23.33 s; nearest-rank p50/p95 were 21.86/22.97 s (real-time factor 4.20/4.42 for 5.2 s of audio). Sampled WSL available RAM reached a minimum of 3.80 GB and swap use a maximum of 5.75 GB; summed process-tree RSS reached 29.04 GB but double-counts shared pages. These are 0.5 s samples during requests, not load-peak or unique-resident-memory measurements. Audio and text were returned together at request completion, so the profile cannot establish playable-stream latency, and no concurrency or 30-minute thermal run was performed. +Native Windows MiniCPM-o used the same [constrained CUDA deployment config](../e2e_recovery_20260923/evidence/minicpmo/minicpmo_24gb_offline.yaml) as the WSL CUDA run: BF16, eager vLLM 0.29.0, 2,048-token thinker / 512-token talker limits, text input only, one request and 5 GiB thinker host offload. The local Windows 11 build 26200 host has 63.12 GiB visible RAM, an RTX 5090 Laptop GPU (driver 610.71), Python 3.12.10, PyTorch 2.13.0+cu130, Transformers 5.14.1, `stepaudio2-minicpmo` 0.1.1 and `pyarrow` 25.0.1. The checkpoint was read through a local WSL UNC path. The example's then-default 300 s overall startup timeout [expired](evidence/minicpmo_windows/minicpmo_native_gpu.log) after stage initialization had nearly completed; rerunning with `--init-timeout 900 --stage-init-timeout 600` [completed](evidence/minicpmo_windows/minicpmo_native_gpu_timeout900.log) in 297.20 s startup and one 78.75 s request. The example default has since been raised to 600 s, matching Omni's default. The text [and token IDs](evidence/minicpmo_windows/0_b4835d8d-f4f8-48b9-85d2-bb7ef06d9249.txt) exactly match the WSL CUDA result. The [WAV](evidence/minicpmo_windows/output_0_b4835d8d-f4f8-48b9-85d2-bb7ef06d9249.wav) has 124,800 mono PCM16 frames at 24 kHz; 124,560 samples are nonzero. The [artifact report](evidence/minicpmo_windows/minicpmo_windows_artifact_report.json) records its checksum and signal statistics. One first-use request is not a latency distribution or speech-quality assessment; the distinct Windows timing must not be transferred to WSL or CPU. + +The separate native Windows [20-request profile](evidence/minicpmo_windows/minicpmo_windows_gpu_profile20.json), [per-request JSONL](evidence/minicpmo_windows/minicpmo_windows_gpu_profile20.jsonl), and [raw log](evidence/minicpmo_windows/minicpmo_windows_gpu_profile20.log) used one warmup followed by 20 measured serial requests in one engine. All measured requests returned one consistent thinker token sequence and 124,800-sample audio with nonzero RMS. Nearest-rank request wall p50/p95 were 18.38/18.73 s (real-time factor 3.53/3.60 for 5.2 s of audio), with observed range 18.22–19.79 s. Engine startup was 239.05 s on this later, warm-filesystem run. During measured requests, 0.5 s samples found native host available RAM as low as 0.78 GB and pagefile use as high as 11.17 GB; summed process-tree RSS reached 21.08 GB but double-counts shared pages. These are host-wide samples, not model-only RAM or loading peak. Neither a playable-stream timing nor speech intelligibility, concurrency, interruption, power or a 30-minute thermal run was measured. + The CPU-only InternVLA run used the same BF16 policy checkpoint, synthetic six-camera history/state input and zero diffusion noise as the CUDA reference. The raw [CPU JSON](evidence/internvla/internvla_pure_cpu_synthetic.json), [CPU log](evidence/internvla/internvla_pure_cpu_synthetic.log), [CPU actions](evidence/internvla/internvla_pure_cpu_actions.npy), [CUDA JSON](evidence/internvla/internvla_cuda_synthetic_with_actions.json), [CUDA actions](evidence/internvla/internvla_cuda_actions.npy) and [numerical comparison](evidence/internvla/internvla_pure_cpu_cuda_parity.json) are retained. The CUDA reference used the WSL RTX 5090 Laptop and PyTorch 2.13.0+cu130; its one forward took 1.33 s. The action difference has maximum absolute error 0.00993 and mean absolute error 0.00117. No reference-task tolerance is available, so this comparison is evidence of numerical proximity, not an accuracy pass. The native Windows runs used Windows 11 build 26200, NVIDIA driver 610.71 for the GPU path, Python 3.12.10, PyTorch 2.13.0+cu130, vLLM 0.29.0, Transformers 5.14.1, and the current Omni source. The CPU run explicitly selected the CPU policy despite the CUDA-capable wheel. The placement-checked reruns assert that all policy parameters and the output action tensor remain on the requested device. Both loaded the same checkpoint from the local WSL filesystem through a UNC path; Windows CPU and GPU runs used the same synthetic input and zero diffusion noise as the WSL reference. The native [CPU JSON](evidence/internvla/internvla_windows_cpu_synthetic.json), [GPU JSON](evidence/internvla/internvla_windows_gpu_synthetic.json), [CPU log](evidence/internvla/internvla_windows_cpu_synthetic.log), [GPU log](evidence/internvla/internvla_windows_gpu_synthetic.log), [CPU actions](evidence/internvla/internvla_windows_cpu_actions.npy), [GPU actions](evidence/internvla/internvla_windows_gpu_actions.npy), [CPU/WSL comparison](evidence/internvla/internvla_windows_cpu_wsl_cpu_parity.json), and [GPU/WSL comparison](evidence/internvla/internvla_windows_gpu_wsl_cuda_parity.json) are retained. Native vLLM import initially failed on a Linux-specific CuMem allocator patch; the added Windows guard resolved the import. Native default GBK source decoding also required `PYTHONUTF8=1`. Both platform differences are setup requirements, not model-quality evidence. Power mode and thermal state were not captured. @@ -42,3 +47,21 @@ export CUDA_VISIBLE_DEVICES= VLLM_TARGET_DEVICE=cpu VLLM_CPU_KVCACHE_SPACE=1 VLL ``` For native Windows InternVLA, set `PYTHONUTF8=1`, put this checkout on `PYTHONPATH`, and run `benchmarks/edge_harness/probe_internvla_actions.py` with the same model/processor paths as above but Windows-accessible UNC paths; use `--device cpu` or `--device cuda` and separate output paths. + +The native Windows MiniCPM-o profile used this PowerShell command (run the example `end2end.py` instead for the single WAV-producing probe): + +```powershell +$root = '\\wsl.localhost\Ubuntu\home\zhout\project\edge_infer' +$env:PYTHONUTF8 = '1' +$env:PYTHONPATH = "$root\vllm-omni-edge" +$env:OMP_NUM_THREADS = '8' +$env:MKL_NUM_THREADS = '8' +$env:TOKENIZERS_PARALLELISM = 'false' +$env:VLLM_USE_FLASHINFER_SAMPLER = '0' +$env:VLLM_ENABLE_V1_MULTIPROCESSING = '0' +& 'C:\Users\zhout\w2\omni029venv\Scripts\python.exe' "$root\vllm-omni-edge\benchmarks\edge_harness\profile_minicpmo_text_speech.py" ` + --model "$root\models\MiniCPM-o-4_5" ` + --deploy-config "$root\vllm-omni-edge\benchmarks\edge_harness\results\e2e_recovery_20260923\evidence\minicpmo\minicpmo_24gb_offline.yaml" ` + --warmups 1 --repeats 20 --init-timeout 900 --stage-init-timeout 600 ` + --output 'C:\Users\zhout\w2\minicpmo_windows_gpu_profile20.json' +``` diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_windows/0_b4835d8d-f4f8-48b9-85d2-bb7ef06d9249.txt b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_windows/0_b4835d8d-f4f8-48b9-85d2-bb7ef06d9249.txt new file mode 100644 index 000000000..1e65f7dd2 --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_windows/0_b4835d8d-f4f8-48b9-85d2-bb7ef06d9249.txt @@ -0,0 +1,15 @@ +Prompt: +<|im_start|>system +You are MiniCPM-o, a helpful multimodal assistant that can understand images, audio and video, and respond in text and speech.<|im_end|> +<|im_start|>user +Say hello, then introduce vLLM-Omni in one sentence.<|im_end|> +<|im_start|>assistant + + + + +<|tts_bos|> +vllm_text_output: +Hello, I am vLLM-Omni, a large multimodal model capable of understanding and generating text, images, audio, and video. +vllm_token_ids: +[9707, 11, 358, 1079, 348, 4086, 44, 23620, 76, 7751, 11, 264, 3460, 79049, 57597, 1614, 12875, 315, 8660, 323, 23163, 1467, 11, 5335, 11, 7699, 11, 323, 2766, 13, 151704, 151645] diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_windows/minicpmo_native_gpu.log b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_windows/minicpmo_native_gpu.log new file mode 100644 index 000000000..23b8bb25e --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_windows/minicpmo_native_gpu.log @@ -0,0 +1,261 @@ +INFO 09-23 16:24:18 [patch.py:259] NVFP4 W4A4 weight_scale NaN-clamp: installed. +INFO 09-23 16:24:18 [patch.py:510] inductor factorable-divisibility patch: installed. +==================== + vllm version: 0.29.0 + ==================== +INFO 09-23 16:24:21 [omni_base.py:216] [Omni] Initializing with model \\wsl.localhost\Ubuntu\home\zhout\project\edge_infer\models\MiniCPM-o-4_5 +INFO 09-23 16:24:21 [async_omni_engine.py:172] [AsyncOmniEngine] Initializing with model \\wsl.localhost\Ubuntu\home\zhout\project\edge_infer\models\MiniCPM-o-4_5 +INFO 09-23 16:24:22 [async_omni_engine.py:290] [AsyncOmniEngine] Launching Orchestrator thread with 3 stages +INFO 09-23 16:24:22 [stage_init_utils.py:768] [stage_init] Set VLLM_WORKER_MULTIPROC_METHOD=spawn +INFO 09-23 16:24:23 [initialization.py:356] Loaded OmniTransferConfig with 1 connector configurations +WARNING 09-23 16:24:23 [utils.py:501] Dropping unknown OmniEngineArgs field 'inline_diffusion' (not declared on the dataclass) +WARNING 09-23 16:24:23 [utils.py:501] Dropping unknown OmniEngineArgs field 'shm_threshold_bytes' (not declared on the dataclass) +WARNING 09-23 16:24:23 [arg_utils.py:1801] The global random seed is set to 0. Since VLLM_ENABLE_V1_MULTIPROCESSING is set to False, this may affect the random state of the Python process that launched vLLM. +INFO 09-23 16:24:38 [model.py:684] Resolved architecture: MiniCPMO45OmniForConditionalGeneration +INFO 09-23 16:24:38 [model.py:2021] Using max model len 2048 +WARNING 09-23 16:24:38 [model.py:981] Model does not support mm_device_do_normalize, forcing mm_device_do_normalize = False. +INFO 09-23 16:24:39 [registry.py:141] All limits of multimodal modalities supported by the model are set to 0, running in text-only mode. +INFO 09-23 16:24:39 [model.py:887] Disabled mm_prefix attention mode because multimodal inputs are configuration-disabled. Attention backends without mm_prefix support may now be selected. +INFO 09-23 16:24:39 [scheduler.py:277] Chunked prefill is enabled with max_num_batched_tokens=2048. +WARNING 09-23 16:24:39 [vllm.py:1371] Enforce eager set, disabling torch.compile and CUDAGraphs. This is equivalent to setting -cc.mode=none -cc.cudagraph_mode=none +WARNING 09-23 16:24:39 [vllm.py:1406] Inductor compilation was disabled by user settings, optimizations settings that are only active during inductor compilation will be ignored. +INFO 09-23 16:24:39 [kernel.py:369] Final IR op priority after setting platform defaults: IrOpPriorityConfig(rms_norm=['vllm_c', 'native'], fused_add_rms_norm=['vllm_c', 'native']) +INFO 09-23 16:24:39 [vllm.py:1585] Cudagraph is disabled under eager mode +INFO 09-23 16:24:39 [compilation.py:329] Enabled custom fusions: norm_quant, act_quant +WARNING 09-23 16:24:39 [utils.py:501] Dropping unknown OmniEngineArgs field 'inline_diffusion' (not declared on the dataclass) +WARNING 09-23 16:24:39 [utils.py:501] Dropping unknown OmniEngineArgs field 'shm_threshold_bytes' (not declared on the dataclass) +WARNING 09-23 16:24:40 [arg_utils.py:1801] The global random seed is set to 0. Since VLLM_ENABLE_V1_MULTIPROCESSING is set to False, this may affect the random state of the Python process that launched vLLM. +INFO 09-23 16:24:40 [model.py:684] Resolved architecture: MiniCPMO45OmniForConditionalGeneration +INFO 09-23 16:24:40 [model.py:2021] Using max model len 512 +WARNING 09-23 16:24:40 [model.py:981] Model does not support mm_device_do_normalize, forcing mm_device_do_normalize = False. +INFO 09-23 16:24:40 [model.py:2021] Using max model len 512 +INFO 09-23 16:24:41 [scheduler.py:277] Chunked prefill is enabled with max_num_batched_tokens=512. +INFO 09-23 16:24:41 [kernel.py:369] Final IR op priority after setting platform defaults: IrOpPriorityConfig(rms_norm=['vllm_c', 'native'], fused_add_rms_norm=['vllm_c', 'native']) +WARNING 09-23 16:24:41 [utils.py:501] Dropping unknown OmniEngineArgs field 'inline_diffusion' (not declared on the dataclass) +WARNING 09-23 16:24:41 [utils.py:501] Dropping unknown OmniEngineArgs field 'shm_threshold_bytes' (not declared on the dataclass) +WARNING 09-23 16:24:41 [arg_utils.py:1801] The global random seed is set to 0. Since VLLM_ENABLE_V1_MULTIPROCESSING is set to False, this may affect the random state of the Python process that launched vLLM. +INFO 09-23 16:24:56 [model.py:684] Resolved architecture: MiniCPMO45Code2Wav +INFO 09-23 16:24:56 [model.py:2021] Using max model len 4096 +WARNING 09-23 16:24:56 [arg_utils.py:2780] This model does not officially support disabling chunked prefill. Disabling this manually may cause the engine to crash or produce incorrect outputs. +INFO 09-23 16:24:56 [kernel.py:369] Final IR op priority after setting platform defaults: IrOpPriorityConfig(rms_norm=['vllm_c', 'native'], fused_add_rms_norm=['vllm_c', 'native']) +INFO 09-23 16:24:56 [stage_runtime.py:853] [stage_init] Stage-0 set runtime devices: 0 +INFO 09-23 16:25:08 [patch.py:259] NVFP4 W4A4 weight_scale NaN-clamp: installed. +INFO 09-23 16:25:08 [patch.py:510] inductor factorable-divisibility patch: installed. +(StageEngineCoreProc_stage0_replica0 pid=8840) INFO 09-23 16:25:12 [core.py:123] Initializing a V1 LLM engine (v0.29.0) with config: model='\\\\wsl.localhost\\Ubuntu\\home\\zhout\\project\\edge_infer\\models\\MiniCPM-o-4_5', speculative_config=None, tokenizer='\\\\wsl.localhost\\Ubuntu\\home\\zhout\\project\\edge_infer\\models\\MiniCPM-o-4_5', skip_tokenizer_init=False, tokenizer_mode=auto, revision=None, tokenizer_revision=None, trust_remote_code=True, dtype=torch.bfloat16, max_seq_len=2048, download_dir=None, load_format=auto, tensor_parallel_size=1, pipeline_parallel_size=1, data_parallel_size=1, decode_context_parallel_size=1, dcp_comm_backend=ag_rs, disable_custom_all_reduce=False, quantization=None, quantization_config=None, enforce_eager=True, enable_return_routed_experts=False, kv_cache_dtype=auto, device_config=cuda, structured_outputs_config=StructuredOutputsConfig(backend='auto', disable_any_whitespace=False, disable_additional_properties=False, reasoning_parser='', reasoning_parser_plugin='', enable_in_reasoning=False), observability_config=ObservabilityConfig(show_hidden_metrics_for_version=None, otlp_traces_endpoint=None, collect_detailed_traces=None, per_request_spec_decode_metrics='none', kv_cache_metrics=False, kv_cache_metrics_sample=0.01, cudagraph_metrics=False, enable_layerwise_nvtx_tracing=False, enable_mfu_metrics=False, enable_mm_processor_stats=False, enable_logging_iteration_details=False, jit_monitor_mode='warn', jit_monitor_verbose=False), seed=0, served_model_name=\\wsl.localhost\Ubuntu\home\zhout\project\edge_infer\models\MiniCPM-o-4_5, enable_prefix_caching=False, enable_chunked_prefill=True, pooler_config=None, compilation_config={'mode': , 'debug_dump_path': None, 'cache_dir': '', 'compile_cache_save_format': 'binary', 'backend': 'inductor', 'custom_ops': ['all'], 'ir_enable_torch_wrap': False, 'splitting_ops': [], 'compile_mm_encoder': False, 'cudagraph_mm_encoder': False, 'encoder_cudagraph_token_budgets': [], 'encoder_cudagraph_max_vision_items_per_batch': 0, 'encoder_cudagraph_max_frames_per_batch': None, 'compile_sizes': [], 'compile_ranges_endpoints': [2048], 'inductor_compile_config': {'enable_auto_functionalized_v2': False, 'combo_kernels': True, 'benchmark_combo_kernel': True}, 'inductor_passes': {}, 'cudagraph_mode': , 'cudagraph_num_of_warmups': 0, 'cudagraph_capture_sizes': [], 'cudagraph_copy_inputs': False, 'cudagraph_specialize_lora': True, 'use_inductor_graph_partition': False, 'pass_config': {'fuse_norm_quant': True, 'fuse_act_quant': True, 'fuse_attn_quant': False, 'enable_sp': False, 'fuse_gemm_comms': False, 'fuse_allreduce_rms': False, 'enable_qk_norm_rope_fusion': False, 'fuse_rope_kvcache_cat_mla': False, 'fuse_act_padding': False, 'fuse_qk_norm_rope_kvcache': False}, 'max_cudagraph_capture_size': 0, 'dynamic_shapes_config': {'type': , 'evaluate_guards': False, 'assume_32_bit_indexing': False}, 'local_cache_dir': None, 'fast_moe_cold_start': False, 'static_all_moe_layers': []}, kernel_config=KernelConfig(ir_op_priority=IrOpPriorityConfig(rms_norm=['vllm_c', 'native'], fused_add_rms_norm=['vllm_c', 'native']), enable_flashinfer_autotune=True, enable_cutedsl_warmup=True, enable_jit_warmup=True, enable_bf16x3_router_gemm=False, moe_backend='auto', linear_backend='auto') +(StageEngineCoreProc_stage0_replica0 pid=8840) INFO 09-23 16:25:14 [registry.py:141] All limits of multimodal modalities supported by the model are set to 0, running in text-only mode. +(StageEngineCoreProc_stage0_replica0 pid=8840) INFO 09-23 16:25:14 [parallel_state.py:1775] world_size=1 rank=0 local_rank=0 distributed_init_method=file://C:\Users\zhout\AppData\Local\Temp/vllm_dist_2d36997f7ac0457d963dd5c17559f334 backend=nccl +(StageEngineCoreProc_stage0_replica0 pid=8840) WARNING 09-23 16:25:14 [parallel_state.py:1788] Distributed backend nccl is not available; falling back to gloo. +(StageEngineCoreProc_stage0_replica0 pid=8840) INFO 09-23 16:25:14 [parallel_state.py:2119] rank 0 in world size 1 is assigned as DP rank 0, PP rank 0, PCP rank 0, TP rank 0, EP rank N/A, EPLB rank N/A +(StageEngineCoreProc_stage0_replica0 pid=8840) WARNING 09-23 16:25:15 [gpu_ar_worker.py:120] OMNI GPUARWorker forces v1 model runner for omni hooks. +(StageEngineCoreProc_stage0_replica0 pid=8840) INFO 09-23 16:25:15 [topk_topp_sampler.py:46] FlashInfer top-p/top-k sampling disabled via VLLM_USE_FLASHINFER_SAMPLER=0. +(StageEngineCoreProc_stage0_replica0 pid=8840) INFO 09-23 16:25:15 [base.py:138] Offloader set to UVAOffloader +(StageEngineCoreProc_stage0_replica0 pid=8840) WARNING 09-23 16:25:15 [base.py:173] [LLM Worker 0] Sleep Mode DISABLED. +(StageEngineCoreProc_stage0_replica0 pid=8840) WARNING 09-23 16:25:15 [base.py:173] [LLM Worker 0] Sleep Mode DISABLED. +(StageEngineCoreProc_stage0_replica0 pid=8840) INFO 09-23 16:25:15 [gpu_model_runner.py:5379] Starting to load model \\wsl.localhost\Ubuntu\home\zhout\project\edge_infer\models\MiniCPM-o-4_5... +(StageEngineCoreProc_stage0_replica0 pid=8840) WARNING 09-23 16:25:15 [vllm.py:1371] Enforce eager set, disabling torch.compile and CUDAGraphs. This is equivalent to setting -cc.mode=none -cc.cudagraph_mode=none +(StageEngineCoreProc_stage0_replica0 pid=8840) WARNING 09-23 16:25:15 [vllm.py:1406] Inductor compilation was disabled by user settings, optimizations settings that are only active during inductor compilation will be ignored. +(StageEngineCoreProc_stage0_replica0 pid=8840) INFO 09-23 16:25:15 [kernel.py:369] Final IR op priority after setting platform defaults: IrOpPriorityConfig(rms_norm=['vllm_c', 'native'], fused_add_rms_norm=['vllm_c', 'native']) +(StageEngineCoreProc_stage0_replica0 pid=8840) INFO 09-23 16:25:15 [vllm.py:1585] Cudagraph is disabled under eager mode +(StageEngineCoreProc_stage0_replica0 pid=8840) INFO 09-23 16:25:15 [compilation.py:329] Enabled custom fusions: norm_quant, act_quant +(StageEngineCoreProc_stage0_replica0 pid=8840) INFO 09-23 16:25:15 [kernel.py:369] Final IR op priority after setting platform defaults: IrOpPriorityConfig(rms_norm=['vllm_c', 'native'], fused_add_rms_norm=['vllm_c', 'native']) +(StageEngineCoreProc_stage0_replica0 pid=8840) INFO 09-23 16:25:15 [kernel.py:369] Final IR op priority after setting platform defaults: IrOpPriorityConfig(rms_norm=['vllm_c', 'native'], fused_add_rms_norm=['vllm_c', 'native']) +(StageEngineCoreProc_stage0_replica0 pid=8840) INFO 09-23 16:25:15 [cuda.py:492] Using FLASH_ATTN attention backend out of potential backends: ['FLASH_ATTN', 'TRITON_ATTN', 'FLEX_ATTENTION']. +(StageEngineCoreProc_stage0_replica0 pid=8840) INFO 09-23 16:25:15 [flash_attn.py:897] Using FlashAttention version 2 +(StageEngineCoreProc_stage0_replica0 pid=8840) INFO 09-23 16:25:17 [uva.py:65] Total CPU offloaded parameters: 5.03 +(StageEngineCoreProc_stage0_replica0 pid=8840) INFO 09-23 16:25:17 [weight_utils.py:863] Filesystem type for checkpoints: unknown. Checkpoint size: 17.46 GiB. Available RAM: 21.93 GiB. +(StageEngineCoreProc_stage0_replica0 pid=8840) INFO 09-23 16:25:17 [weight_utils.py:886] Auto-prefetch is disabled because the filesystem (unknown) is not a recognized network FS (NFS/Lustre). If you want to force prefetching, start vLLM with --safetensors-load-strategy=prefetch. +(StageEngineCoreProc_stage0_replica0 pid=8840) +Loading safetensors checkpoint shards: 0% Completed | 0/4 [00:00, 'debug_dump_path': None, 'cache_dir': '', 'compile_cache_save_format': 'binary', 'backend': 'inductor', 'custom_ops': ['all'], 'ir_enable_torch_wrap': False, 'splitting_ops': [], 'compile_mm_encoder': False, 'cudagraph_mm_encoder': False, 'encoder_cudagraph_token_budgets': [], 'encoder_cudagraph_max_vision_items_per_batch': 0, 'encoder_cudagraph_max_frames_per_batch': None, 'compile_sizes': [], 'compile_ranges_endpoints': [512], 'inductor_compile_config': {'enable_auto_functionalized_v2': False, 'combo_kernels': True, 'benchmark_combo_kernel': True}, 'inductor_passes': {}, 'cudagraph_mode': , 'cudagraph_num_of_warmups': 0, 'cudagraph_capture_sizes': [], 'cudagraph_copy_inputs': False, 'cudagraph_specialize_lora': True, 'use_inductor_graph_partition': False, 'pass_config': {'fuse_norm_quant': True, 'fuse_act_quant': True, 'fuse_attn_quant': False, 'enable_sp': False, 'fuse_gemm_comms': False, 'fuse_allreduce_rms': False, 'enable_qk_norm_rope_fusion': False, 'fuse_rope_kvcache_cat_mla': False, 'fuse_act_padding': False, 'fuse_qk_norm_rope_kvcache': False}, 'max_cudagraph_capture_size': 0, 'dynamic_shapes_config': {'type': , 'evaluate_guards': False, 'assume_32_bit_indexing': False}, 'local_cache_dir': None, 'fast_moe_cold_start': False, 'static_all_moe_layers': []}, kernel_config=KernelConfig(ir_op_priority=IrOpPriorityConfig(rms_norm=['vllm_c', 'native'], fused_add_rms_norm=['vllm_c', 'native']), enable_flashinfer_autotune=True, enable_cutedsl_warmup=True, enable_jit_warmup=True, enable_bf16x3_router_gemm=False, moe_backend='auto', linear_backend='auto') +(StageEngineCoreProc_stage1_replica0 pid=57896) INFO 09-23 16:28:18 [parallel_state.py:1775] world_size=1 rank=0 local_rank=0 distributed_init_method=file://C:\Users\zhout\AppData\Local\Temp/vllm_dist_c46fc169d2b24ce5bf1909728c14d88d backend=nccl +(StageEngineCoreProc_stage1_replica0 pid=57896) WARNING 09-23 16:28:18 [parallel_state.py:1788] Distributed backend nccl is not available; falling back to gloo. +(StageEngineCoreProc_stage1_replica0 pid=57896) INFO 09-23 16:28:18 [parallel_state.py:2119] rank 0 in world size 1 is assigned as DP rank 0, PP rank 0, PCP rank 0, TP rank 0, EP rank N/A, EPLB rank N/A +(StageEngineCoreProc_stage1_replica0 pid=57896) WARNING 09-23 16:28:19 [gpu_ar_worker.py:120] OMNI GPUARWorker forces v1 model runner for omni hooks. +(StageEngineCoreProc_stage1_replica0 pid=57896) INFO 09-23 16:28:19 [topk_topp_sampler.py:46] FlashInfer top-p/top-k sampling disabled via VLLM_USE_FLASHINFER_SAMPLER=0. +(StageEngineCoreProc_stage1_replica0 pid=57896) [transformers] `MiniCPMOProcessor` defines `image_processor_class = 'AutoImageProcessor'`, which is deprecated. Register the correct mapping in `AutoImageProcessor` instead. +(StageEngineCoreProc_stage1_replica0 pid=57896) [transformers] Requested torchvision backend is not available. Falling back to pil backend. +(StageEngineCoreProc_stage1_replica0 pid=57896) [transformers] `MiniCPMOProcessor` defines `feature_extractor_class = 'WhisperFeatureExtractor'`, which is deprecated. Register the correct mapping in `AutoFeatureExtractor` instead. +(StageEngineCoreProc_stage1_replica0 pid=57896) [transformers] Image processor MiniCPMVImageProcessor: kwargs ['max_slice_nums'] were applied for backward compatibility. To avoid this warning, add them to valid_kwargs: create a custom TypedDict extending ImagesKwargs with these keys and set it as the `valid_kwargs` class attribute. +(StageEngineCoreProc_stage1_replica0 pid=57896) INFO 09-23 16:28:36 [factory.py:46] Created connector: SharedMemoryConnector +(StageEngineCoreProc_stage1_replica0 pid=57896) WARNING 09-23 16:28:36 [base.py:173] [LLM Worker 0] Sleep Mode DISABLED. +(StageEngineCoreProc_stage1_replica0 pid=57896) WARNING 09-23 16:28:36 [base.py:173] [LLM Worker 0] Sleep Mode DISABLED. +(StageEngineCoreProc_stage1_replica0 pid=57896) INFO 09-23 16:28:36 [gpu_model_runner.py:5379] Starting to load model \\wsl.localhost\Ubuntu\home\zhout\project\edge_infer\models\MiniCPM-o-4_5... +(StageEngineCoreProc_stage1_replica0 pid=57896) WARNING 09-23 16:28:36 [vllm.py:1371] Enforce eager set, disabling torch.compile and CUDAGraphs. This is equivalent to setting -cc.mode=none -cc.cudagraph_mode=none +(StageEngineCoreProc_stage1_replica0 pid=57896) WARNING 09-23 16:28:36 [vllm.py:1406] Inductor compilation was disabled by user settings, optimizations settings that are only active during inductor compilation will be ignored. +(StageEngineCoreProc_stage1_replica0 pid=57896) INFO 09-23 16:28:36 [kernel.py:369] Final IR op priority after setting platform defaults: IrOpPriorityConfig(rms_norm=['vllm_c', 'native'], fused_add_rms_norm=['vllm_c', 'native']) +(StageEngineCoreProc_stage1_replica0 pid=57896) INFO 09-23 16:28:36 [vllm.py:1585] Cudagraph is disabled under eager mode +(StageEngineCoreProc_stage1_replica0 pid=57896) INFO 09-23 16:28:36 [compilation.py:329] Enabled custom fusions: norm_quant, act_quant +(StageEngineCoreProc_stage1_replica0 pid=57896) INFO 09-23 16:28:36 [kernel.py:369] Final IR op priority after setting platform defaults: IrOpPriorityConfig(rms_norm=['vllm_c', 'native'], fused_add_rms_norm=['vllm_c', 'native']) +(StageEngineCoreProc_stage1_replica0 pid=57896) INFO 09-23 16:28:37 [cuda.py:492] Using FLASH_ATTN attention backend out of potential backends: ['FLASH_ATTN', 'TRITON_ATTN', 'FLEX_ATTENTION']. +(StageEngineCoreProc_stage1_replica0 pid=57896) INFO 09-23 16:28:37 [flash_attn.py:897] Using FlashAttention version 2 +(StageEngineCoreProc_stage1_replica0 pid=57896) INFO 09-23 16:28:37 [weight_utils.py:863] Filesystem type for checkpoints: unknown. Checkpoint size: 17.46 GiB. Available RAM: 15.41 GiB. +(StageEngineCoreProc_stage1_replica0 pid=57896) INFO 09-23 16:28:37 [weight_utils.py:893] Auto-prefetch is disabled because the filesystem (unknown) is not a recognized network FS (NFS/Lustre) and the checkpoint size (17.46 GiB) exceeds 90% of available RAM (15.41 GiB). +(StageEngineCoreProc_stage1_replica0 pid=57896) +Loading safetensors checkpoint shards: 0% Completed | 0/4 [00:00, 'debug_dump_path': None, 'cache_dir': '', 'compile_cache_save_format': 'binary', 'backend': 'inductor', 'custom_ops': ['all'], 'ir_enable_torch_wrap': False, 'splitting_ops': [], 'compile_mm_encoder': False, 'cudagraph_mm_encoder': False, 'encoder_cudagraph_token_budgets': [], 'encoder_cudagraph_max_vision_items_per_batch': 0, 'encoder_cudagraph_max_frames_per_batch': None, 'compile_sizes': [], 'compile_ranges_endpoints': [4096], 'inductor_compile_config': {'enable_auto_functionalized_v2': False, 'combo_kernels': True, 'benchmark_combo_kernel': True}, 'inductor_passes': {}, 'cudagraph_mode': , 'cudagraph_num_of_warmups': 0, 'cudagraph_capture_sizes': [], 'cudagraph_copy_inputs': False, 'cudagraph_specialize_lora': True, 'use_inductor_graph_partition': False, 'pass_config': {'fuse_norm_quant': True, 'fuse_act_quant': True, 'fuse_attn_quant': False, 'enable_sp': False, 'fuse_gemm_comms': False, 'fuse_allreduce_rms': False, 'enable_qk_norm_rope_fusion': False, 'fuse_rope_kvcache_cat_mla': False, 'fuse_act_padding': False, 'fuse_qk_norm_rope_kvcache': False}, 'max_cudagraph_capture_size': 0, 'dynamic_shapes_config': {'type': , 'evaluate_guards': False, 'assume_32_bit_indexing': False}, 'local_cache_dir': None, 'fast_moe_cold_start': False, 'static_all_moe_layers': []}, kernel_config=KernelConfig(ir_op_priority=IrOpPriorityConfig(rms_norm=['vllm_c', 'native'], fused_add_rms_norm=['vllm_c', 'native']), enable_flashinfer_autotune=True, enable_cutedsl_warmup=True, enable_jit_warmup=True, enable_bf16x3_router_gemm=False, moe_backend='auto', linear_backend='auto') +(StageEngineCoreProc_stage2_replica0 pid=6400) INFO 09-23 16:29:09 [parallel_state.py:1775] world_size=1 rank=0 local_rank=0 distributed_init_method=file://C:\Users\zhout\AppData\Local\Temp/vllm_dist_e5dbe2b9f92549ba9f9566b6a436c49d backend=nccl +(StageEngineCoreProc_stage2_replica0 pid=6400) WARNING 09-23 16:29:09 [parallel_state.py:1788] Distributed backend nccl is not available; falling back to gloo. +(StageEngineCoreProc_stage2_replica0 pid=6400) INFO 09-23 16:29:09 [parallel_state.py:2119] rank 0 in world size 1 is assigned as DP rank 0, PP rank 0, PCP rank 0, TP rank 0, EP rank N/A, EPLB rank N/A +(StageEngineCoreProc_stage2_replica0 pid=6400) WARNING 09-23 16:29:09 [gpu_generation_worker.py:103] OMNI GPUGenerationWorker forces v1 model runner for omni hooks. +(StageEngineCoreProc_stage2_replica0 pid=6400) INFO 09-23 16:29:09 [topk_topp_sampler.py:46] FlashInfer top-p/top-k sampling disabled via VLLM_USE_FLASHINFER_SAMPLER=0. +(StageEngineCoreProc_stage2_replica0 pid=6400) INFO 09-23 16:29:09 [factory.py:46] Created connector: SharedMemoryConnector +(StageEngineCoreProc_stage2_replica0 pid=6400) WARNING 09-23 16:29:09 [base.py:173] [LLM Worker 0] Sleep Mode DISABLED. +(StageEngineCoreProc_stage2_replica0 pid=6400) WARNING 09-23 16:29:09 [base.py:173] [LLM Worker 0] Sleep Mode DISABLED. +(StageEngineCoreProc_stage2_replica0 pid=6400) INFO 09-23 16:29:09 [gpu_model_runner.py:5379] Starting to load model \\wsl.localhost\Ubuntu\home\zhout\project\edge_infer\models\MiniCPM-o-4_5... +(StageEngineCoreProc_stage2_replica0 pid=6400) INFO 09-23 16:29:10 [weight_utils.py:863] Filesystem type for checkpoints: unknown. Checkpoint size: 17.46 GiB. Available RAM: 13.21 GiB. +(StageEngineCoreProc_stage2_replica0 pid=6400) INFO 09-23 16:29:10 [weight_utils.py:893] Auto-prefetch is disabled because the filesystem (unknown) is not a recognized network FS (NFS/Lustre) and the checkpoint size (17.46 GiB) exceeds 90% of available RAM (13.21 GiB). +(StageEngineCoreProc_stage2_replica0 pid=6400) +Loading safetensors checkpoint shards: 0% Completed | 0/4 [00:00 + main(args) + File "\\wsl.localhost\Ubuntu\home\zhout\project\edge_infer\vllm-omni-edge\examples\offline_inference\minicpmo\end2end.py", line 283, in main + omni = Omni(**omni_kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "\\wsl.localhost\Ubuntu\home\zhout\project\edge_infer\vllm-omni-edge\vllm_omni\entrypoints\omni_base.py", line 223, in __init__ + self.engine = AsyncOmniEngine( + ^^^^^^^^^^^^^^^^ + File "\\wsl.localhost\Ubuntu\home\zhout\project\edge_infer\vllm-omni-edge\vllm_omni\engine\async_omni_engine.py", line 305, in __init__ + self._wait_for_orchestrator_init(startup_future, startup_timeout) + File "\\wsl.localhost\Ubuntu\home\zhout\project\edge_infer\vllm-omni-edge\vllm_omni\engine\async_omni_engine.py", line 537, in _wait_for_orchestrator_init + raise TimeoutError(f"Orchestrator did not become ready within {startup_timeout}s") +TimeoutError: Orchestrator did not become ready within 300s diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_windows/minicpmo_native_gpu_timeout900.log b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_windows/minicpmo_native_gpu_timeout900.log new file mode 100644 index 000000000..8d46caefb --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_windows/minicpmo_native_gpu_timeout900.log @@ -0,0 +1,267 @@ +INFO 09-23 16:30:42 [patch.py:259] NVFP4 W4A4 weight_scale NaN-clamp: installed. +INFO 09-23 16:30:42 [patch.py:510] inductor factorable-divisibility patch: installed. +==================== + vllm version: 0.29.0 + ==================== +INFO 09-23 16:30:47 [omni_base.py:216] [Omni] Initializing with model \\wsl.localhost\Ubuntu\home\zhout\project\edge_infer\models\MiniCPM-o-4_5 +INFO 09-23 16:30:47 [async_omni_engine.py:172] [AsyncOmniEngine] Initializing with model \\wsl.localhost\Ubuntu\home\zhout\project\edge_infer\models\MiniCPM-o-4_5 +INFO 09-23 16:30:48 [async_omni_engine.py:290] [AsyncOmniEngine] Launching Orchestrator thread with 3 stages +INFO 09-23 16:30:48 [stage_init_utils.py:768] [stage_init] Set VLLM_WORKER_MULTIPROC_METHOD=spawn +INFO 09-23 16:30:48 [initialization.py:356] Loaded OmniTransferConfig with 1 connector configurations +WARNING 09-23 16:30:48 [utils.py:501] Dropping unknown OmniEngineArgs field 'inline_diffusion' (not declared on the dataclass) +WARNING 09-23 16:30:48 [utils.py:501] Dropping unknown OmniEngineArgs field 'shm_threshold_bytes' (not declared on the dataclass) +WARNING 09-23 16:30:48 [arg_utils.py:1801] The global random seed is set to 0. Since VLLM_ENABLE_V1_MULTIPROCESSING is set to False, this may affect the random state of the Python process that launched vLLM. +INFO 09-23 16:30:48 [model.py:684] Resolved architecture: MiniCPMO45OmniForConditionalGeneration +INFO 09-23 16:30:48 [model.py:2021] Using max model len 2048 +WARNING 09-23 16:30:48 [model.py:981] Model does not support mm_device_do_normalize, forcing mm_device_do_normalize = False. +INFO 09-23 16:30:51 [registry.py:141] All limits of multimodal modalities supported by the model are set to 0, running in text-only mode. +INFO 09-23 16:30:51 [model.py:887] Disabled mm_prefix attention mode because multimodal inputs are configuration-disabled. Attention backends without mm_prefix support may now be selected. +INFO 09-23 16:30:51 [scheduler.py:277] Chunked prefill is enabled with max_num_batched_tokens=2048. +WARNING 09-23 16:30:51 [vllm.py:1371] Enforce eager set, disabling torch.compile and CUDAGraphs. This is equivalent to setting -cc.mode=none -cc.cudagraph_mode=none +WARNING 09-23 16:30:51 [vllm.py:1406] Inductor compilation was disabled by user settings, optimizations settings that are only active during inductor compilation will be ignored. +INFO 09-23 16:30:51 [kernel.py:369] Final IR op priority after setting platform defaults: IrOpPriorityConfig(rms_norm=['vllm_c', 'native'], fused_add_rms_norm=['vllm_c', 'native']) +INFO 09-23 16:30:51 [vllm.py:1585] Cudagraph is disabled under eager mode +INFO 09-23 16:30:51 [compilation.py:329] Enabled custom fusions: norm_quant, act_quant +WARNING 09-23 16:30:51 [utils.py:501] Dropping unknown OmniEngineArgs field 'inline_diffusion' (not declared on the dataclass) +WARNING 09-23 16:30:51 [utils.py:501] Dropping unknown OmniEngineArgs field 'shm_threshold_bytes' (not declared on the dataclass) +WARNING 09-23 16:30:52 [arg_utils.py:1801] The global random seed is set to 0. Since VLLM_ENABLE_V1_MULTIPROCESSING is set to False, this may affect the random state of the Python process that launched vLLM. +INFO 09-23 16:30:52 [model.py:684] Resolved architecture: MiniCPMO45OmniForConditionalGeneration +INFO 09-23 16:30:52 [model.py:2021] Using max model len 512 +WARNING 09-23 16:30:52 [model.py:981] Model does not support mm_device_do_normalize, forcing mm_device_do_normalize = False. +INFO 09-23 16:30:52 [model.py:2021] Using max model len 512 +INFO 09-23 16:30:52 [scheduler.py:277] Chunked prefill is enabled with max_num_batched_tokens=512. +INFO 09-23 16:30:52 [kernel.py:369] Final IR op priority after setting platform defaults: IrOpPriorityConfig(rms_norm=['vllm_c', 'native'], fused_add_rms_norm=['vllm_c', 'native']) +WARNING 09-23 16:30:52 [utils.py:501] Dropping unknown OmniEngineArgs field 'inline_diffusion' (not declared on the dataclass) +WARNING 09-23 16:30:52 [utils.py:501] Dropping unknown OmniEngineArgs field 'shm_threshold_bytes' (not declared on the dataclass) +WARNING 09-23 16:30:52 [arg_utils.py:1801] The global random seed is set to 0. Since VLLM_ENABLE_V1_MULTIPROCESSING is set to False, this may affect the random state of the Python process that launched vLLM. +INFO 09-23 16:30:52 [model.py:684] Resolved architecture: MiniCPMO45Code2Wav +INFO 09-23 16:30:52 [model.py:2021] Using max model len 4096 +WARNING 09-23 16:30:52 [arg_utils.py:2780] This model does not officially support disabling chunked prefill. Disabling this manually may cause the engine to crash or produce incorrect outputs. +INFO 09-23 16:30:53 [kernel.py:369] Final IR op priority after setting platform defaults: IrOpPriorityConfig(rms_norm=['vllm_c', 'native'], fused_add_rms_norm=['vllm_c', 'native']) +INFO 09-23 16:30:53 [stage_runtime.py:853] [stage_init] Stage-0 set runtime devices: 0 +INFO 09-23 16:31:08 [patch.py:259] NVFP4 W4A4 weight_scale NaN-clamp: installed. +INFO 09-23 16:31:08 [patch.py:510] inductor factorable-divisibility patch: installed. +(StageEngineCoreProc_stage0_replica0 pid=62176) INFO 09-23 16:31:12 [core.py:123] Initializing a V1 LLM engine (v0.29.0) with config: model='\\\\wsl.localhost\\Ubuntu\\home\\zhout\\project\\edge_infer\\models\\MiniCPM-o-4_5', speculative_config=None, tokenizer='\\\\wsl.localhost\\Ubuntu\\home\\zhout\\project\\edge_infer\\models\\MiniCPM-o-4_5', skip_tokenizer_init=False, tokenizer_mode=auto, revision=None, tokenizer_revision=None, trust_remote_code=True, dtype=torch.bfloat16, max_seq_len=2048, download_dir=None, load_format=auto, tensor_parallel_size=1, pipeline_parallel_size=1, data_parallel_size=1, decode_context_parallel_size=1, dcp_comm_backend=ag_rs, disable_custom_all_reduce=False, quantization=None, quantization_config=None, enforce_eager=True, enable_return_routed_experts=False, kv_cache_dtype=auto, device_config=cuda, structured_outputs_config=StructuredOutputsConfig(backend='auto', disable_any_whitespace=False, disable_additional_properties=False, reasoning_parser='', reasoning_parser_plugin='', enable_in_reasoning=False), observability_config=ObservabilityConfig(show_hidden_metrics_for_version=None, otlp_traces_endpoint=None, collect_detailed_traces=None, per_request_spec_decode_metrics='none', kv_cache_metrics=False, kv_cache_metrics_sample=0.01, cudagraph_metrics=False, enable_layerwise_nvtx_tracing=False, enable_mfu_metrics=False, enable_mm_processor_stats=False, enable_logging_iteration_details=False, jit_monitor_mode='warn', jit_monitor_verbose=False), seed=0, served_model_name=\\wsl.localhost\Ubuntu\home\zhout\project\edge_infer\models\MiniCPM-o-4_5, enable_prefix_caching=False, enable_chunked_prefill=True, pooler_config=None, compilation_config={'mode': , 'debug_dump_path': None, 'cache_dir': '', 'compile_cache_save_format': 'binary', 'backend': 'inductor', 'custom_ops': ['all'], 'ir_enable_torch_wrap': False, 'splitting_ops': [], 'compile_mm_encoder': False, 'cudagraph_mm_encoder': False, 'encoder_cudagraph_token_budgets': [], 'encoder_cudagraph_max_vision_items_per_batch': 0, 'encoder_cudagraph_max_frames_per_batch': None, 'compile_sizes': [], 'compile_ranges_endpoints': [2048], 'inductor_compile_config': {'enable_auto_functionalized_v2': False, 'combo_kernels': True, 'benchmark_combo_kernel': True}, 'inductor_passes': {}, 'cudagraph_mode': , 'cudagraph_num_of_warmups': 0, 'cudagraph_capture_sizes': [], 'cudagraph_copy_inputs': False, 'cudagraph_specialize_lora': True, 'use_inductor_graph_partition': False, 'pass_config': {'fuse_norm_quant': True, 'fuse_act_quant': True, 'fuse_attn_quant': False, 'enable_sp': False, 'fuse_gemm_comms': False, 'fuse_allreduce_rms': False, 'enable_qk_norm_rope_fusion': False, 'fuse_rope_kvcache_cat_mla': False, 'fuse_act_padding': False, 'fuse_qk_norm_rope_kvcache': False}, 'max_cudagraph_capture_size': 0, 'dynamic_shapes_config': {'type': , 'evaluate_guards': False, 'assume_32_bit_indexing': False}, 'local_cache_dir': None, 'fast_moe_cold_start': False, 'static_all_moe_layers': []}, kernel_config=KernelConfig(ir_op_priority=IrOpPriorityConfig(rms_norm=['vllm_c', 'native'], fused_add_rms_norm=['vllm_c', 'native']), enable_flashinfer_autotune=True, enable_cutedsl_warmup=True, enable_jit_warmup=True, enable_bf16x3_router_gemm=False, moe_backend='auto', linear_backend='auto') +(StageEngineCoreProc_stage0_replica0 pid=62176) INFO 09-23 16:31:15 [registry.py:141] All limits of multimodal modalities supported by the model are set to 0, running in text-only mode. +(StageEngineCoreProc_stage0_replica0 pid=62176) INFO 09-23 16:31:15 [parallel_state.py:1775] world_size=1 rank=0 local_rank=0 distributed_init_method=file://C:\Users\zhout\AppData\Local\Temp/vllm_dist_53967da026804fc7a1199a7d00af3066 backend=nccl +(StageEngineCoreProc_stage0_replica0 pid=62176) WARNING 09-23 16:31:15 [parallel_state.py:1788] Distributed backend nccl is not available; falling back to gloo. +(StageEngineCoreProc_stage0_replica0 pid=62176) INFO 09-23 16:31:15 [parallel_state.py:2119] rank 0 in world size 1 is assigned as DP rank 0, PP rank 0, PCP rank 0, TP rank 0, EP rank N/A, EPLB rank N/A +(StageEngineCoreProc_stage0_replica0 pid=62176) WARNING 09-23 16:31:16 [gpu_ar_worker.py:120] OMNI GPUARWorker forces v1 model runner for omni hooks. +(StageEngineCoreProc_stage0_replica0 pid=62176) INFO 09-23 16:31:16 [topk_topp_sampler.py:46] FlashInfer top-p/top-k sampling disabled via VLLM_USE_FLASHINFER_SAMPLER=0. +(StageEngineCoreProc_stage0_replica0 pid=62176) INFO 09-23 16:31:16 [base.py:138] Offloader set to UVAOffloader +(StageEngineCoreProc_stage0_replica0 pid=62176) WARNING 09-23 16:31:16 [base.py:173] [LLM Worker 0] Sleep Mode DISABLED. +(StageEngineCoreProc_stage0_replica0 pid=62176) WARNING 09-23 16:31:16 [base.py:173] [LLM Worker 0] Sleep Mode DISABLED. +(StageEngineCoreProc_stage0_replica0 pid=62176) INFO 09-23 16:31:16 [gpu_model_runner.py:5379] Starting to load model \\wsl.localhost\Ubuntu\home\zhout\project\edge_infer\models\MiniCPM-o-4_5... +(StageEngineCoreProc_stage0_replica0 pid=62176) WARNING 09-23 16:31:16 [vllm.py:1371] Enforce eager set, disabling torch.compile and CUDAGraphs. This is equivalent to setting -cc.mode=none -cc.cudagraph_mode=none +(StageEngineCoreProc_stage0_replica0 pid=62176) WARNING 09-23 16:31:16 [vllm.py:1406] Inductor compilation was disabled by user settings, optimizations settings that are only active during inductor compilation will be ignored. +(StageEngineCoreProc_stage0_replica0 pid=62176) INFO 09-23 16:31:16 [kernel.py:369] Final IR op priority after setting platform defaults: IrOpPriorityConfig(rms_norm=['vllm_c', 'native'], fused_add_rms_norm=['vllm_c', 'native']) +(StageEngineCoreProc_stage0_replica0 pid=62176) INFO 09-23 16:31:16 [vllm.py:1585] Cudagraph is disabled under eager mode +(StageEngineCoreProc_stage0_replica0 pid=62176) INFO 09-23 16:31:16 [compilation.py:329] Enabled custom fusions: norm_quant, act_quant +(StageEngineCoreProc_stage0_replica0 pid=62176) INFO 09-23 16:31:16 [kernel.py:369] Final IR op priority after setting platform defaults: IrOpPriorityConfig(rms_norm=['vllm_c', 'native'], fused_add_rms_norm=['vllm_c', 'native']) +(StageEngineCoreProc_stage0_replica0 pid=62176) INFO 09-23 16:31:16 [kernel.py:369] Final IR op priority after setting platform defaults: IrOpPriorityConfig(rms_norm=['vllm_c', 'native'], fused_add_rms_norm=['vllm_c', 'native']) +(StageEngineCoreProc_stage0_replica0 pid=62176) INFO 09-23 16:31:17 [cuda.py:492] Using FLASH_ATTN attention backend out of potential backends: ['FLASH_ATTN', 'TRITON_ATTN', 'FLEX_ATTENTION']. +(StageEngineCoreProc_stage0_replica0 pid=62176) INFO 09-23 16:31:17 [flash_attn.py:897] Using FlashAttention version 2 +(StageEngineCoreProc_stage0_replica0 pid=62176) INFO 09-23 16:31:20 [uva.py:65] Total CPU offloaded parameters: 5.03 +(StageEngineCoreProc_stage0_replica0 pid=62176) INFO 09-23 16:31:20 [weight_utils.py:863] Filesystem type for checkpoints: unknown. Checkpoint size: 17.46 GiB. Available RAM: 27.79 GiB. +(StageEngineCoreProc_stage0_replica0 pid=62176) INFO 09-23 16:31:20 [weight_utils.py:886] Auto-prefetch is disabled because the filesystem (unknown) is not a recognized network FS (NFS/Lustre). If you want to force prefetching, start vLLM with --safetensors-load-strategy=prefetch. +(StageEngineCoreProc_stage0_replica0 pid=62176) +Loading safetensors checkpoint shards: 0% Completed | 0/4 [00:00, 'debug_dump_path': None, 'cache_dir': '', 'compile_cache_save_format': 'binary', 'backend': 'inductor', 'custom_ops': ['all'], 'ir_enable_torch_wrap': False, 'splitting_ops': [], 'compile_mm_encoder': False, 'cudagraph_mm_encoder': False, 'encoder_cudagraph_token_budgets': [], 'encoder_cudagraph_max_vision_items_per_batch': 0, 'encoder_cudagraph_max_frames_per_batch': None, 'compile_sizes': [], 'compile_ranges_endpoints': [512], 'inductor_compile_config': {'enable_auto_functionalized_v2': False, 'combo_kernels': True, 'benchmark_combo_kernel': True}, 'inductor_passes': {}, 'cudagraph_mode': , 'cudagraph_num_of_warmups': 0, 'cudagraph_capture_sizes': [], 'cudagraph_copy_inputs': False, 'cudagraph_specialize_lora': True, 'use_inductor_graph_partition': False, 'pass_config': {'fuse_norm_quant': True, 'fuse_act_quant': True, 'fuse_attn_quant': False, 'enable_sp': False, 'fuse_gemm_comms': False, 'fuse_allreduce_rms': False, 'enable_qk_norm_rope_fusion': False, 'fuse_rope_kvcache_cat_mla': False, 'fuse_act_padding': False, 'fuse_qk_norm_rope_kvcache': False}, 'max_cudagraph_capture_size': 0, 'dynamic_shapes_config': {'type': , 'evaluate_guards': False, 'assume_32_bit_indexing': False}, 'local_cache_dir': None, 'fast_moe_cold_start': False, 'static_all_moe_layers': []}, kernel_config=KernelConfig(ir_op_priority=IrOpPriorityConfig(rms_norm=['vllm_c', 'native'], fused_add_rms_norm=['vllm_c', 'native']), enable_flashinfer_autotune=True, enable_cutedsl_warmup=True, enable_jit_warmup=True, enable_bf16x3_router_gemm=False, moe_backend='auto', linear_backend='auto') +(StageEngineCoreProc_stage1_replica0 pid=58484) INFO 09-23 16:34:26 [parallel_state.py:1775] world_size=1 rank=0 local_rank=0 distributed_init_method=file://C:\Users\zhout\AppData\Local\Temp/vllm_dist_a346e62d6aed4005983a9bf545a9460f backend=nccl +(StageEngineCoreProc_stage1_replica0 pid=58484) WARNING 09-23 16:34:26 [parallel_state.py:1788] Distributed backend nccl is not available; falling back to gloo. +(StageEngineCoreProc_stage1_replica0 pid=58484) INFO 09-23 16:34:26 [parallel_state.py:2119] rank 0 in world size 1 is assigned as DP rank 0, PP rank 0, PCP rank 0, TP rank 0, EP rank N/A, EPLB rank N/A +(StageEngineCoreProc_stage1_replica0 pid=58484) WARNING 09-23 16:34:27 [gpu_ar_worker.py:120] OMNI GPUARWorker forces v1 model runner for omni hooks. +(StageEngineCoreProc_stage1_replica0 pid=58484) INFO 09-23 16:34:27 [topk_topp_sampler.py:46] FlashInfer top-p/top-k sampling disabled via VLLM_USE_FLASHINFER_SAMPLER=0. +(StageEngineCoreProc_stage1_replica0 pid=58484) [transformers] `MiniCPMOProcessor` defines `image_processor_class = 'AutoImageProcessor'`, which is deprecated. Register the correct mapping in `AutoImageProcessor` instead. +(StageEngineCoreProc_stage1_replica0 pid=58484) [transformers] Requested torchvision backend is not available. Falling back to pil backend. +(StageEngineCoreProc_stage1_replica0 pid=58484) [transformers] `MiniCPMOProcessor` defines `feature_extractor_class = 'WhisperFeatureExtractor'`, which is deprecated. Register the correct mapping in `AutoFeatureExtractor` instead. +(StageEngineCoreProc_stage1_replica0 pid=58484) [transformers] Image processor MiniCPMVImageProcessor: kwargs ['max_slice_nums'] were applied for backward compatibility. To avoid this warning, add them to valid_kwargs: create a custom TypedDict extending ImagesKwargs with these keys and set it as the `valid_kwargs` class attribute. +(StageEngineCoreProc_stage1_replica0 pid=58484) INFO 09-23 16:34:43 [factory.py:46] Created connector: SharedMemoryConnector +(StageEngineCoreProc_stage1_replica0 pid=58484) WARNING 09-23 16:34:43 [base.py:173] [LLM Worker 0] Sleep Mode DISABLED. +(StageEngineCoreProc_stage1_replica0 pid=58484) WARNING 09-23 16:34:43 [base.py:173] [LLM Worker 0] Sleep Mode DISABLED. +(StageEngineCoreProc_stage1_replica0 pid=58484) INFO 09-23 16:34:43 [gpu_model_runner.py:5379] Starting to load model \\wsl.localhost\Ubuntu\home\zhout\project\edge_infer\models\MiniCPM-o-4_5... +(StageEngineCoreProc_stage1_replica0 pid=58484) WARNING 09-23 16:34:43 [vllm.py:1371] Enforce eager set, disabling torch.compile and CUDAGraphs. This is equivalent to setting -cc.mode=none -cc.cudagraph_mode=none +(StageEngineCoreProc_stage1_replica0 pid=58484) WARNING 09-23 16:34:43 [vllm.py:1406] Inductor compilation was disabled by user settings, optimizations settings that are only active during inductor compilation will be ignored. +(StageEngineCoreProc_stage1_replica0 pid=58484) INFO 09-23 16:34:43 [kernel.py:369] Final IR op priority after setting platform defaults: IrOpPriorityConfig(rms_norm=['vllm_c', 'native'], fused_add_rms_norm=['vllm_c', 'native']) +(StageEngineCoreProc_stage1_replica0 pid=58484) INFO 09-23 16:34:43 [vllm.py:1585] Cudagraph is disabled under eager mode +(StageEngineCoreProc_stage1_replica0 pid=58484) INFO 09-23 16:34:44 [compilation.py:329] Enabled custom fusions: norm_quant, act_quant +(StageEngineCoreProc_stage1_replica0 pid=58484) INFO 09-23 16:34:44 [kernel.py:369] Final IR op priority after setting platform defaults: IrOpPriorityConfig(rms_norm=['vllm_c', 'native'], fused_add_rms_norm=['vllm_c', 'native']) +(StageEngineCoreProc_stage1_replica0 pid=58484) INFO 09-23 16:34:44 [cuda.py:492] Using FLASH_ATTN attention backend out of potential backends: ['FLASH_ATTN', 'TRITON_ATTN', 'FLEX_ATTENTION']. +(StageEngineCoreProc_stage1_replica0 pid=58484) INFO 09-23 16:34:44 [flash_attn.py:897] Using FlashAttention version 2 +(StageEngineCoreProc_stage1_replica0 pid=58484) INFO 09-23 16:34:44 [weight_utils.py:863] Filesystem type for checkpoints: unknown. Checkpoint size: 17.46 GiB. Available RAM: 26.39 GiB. +(StageEngineCoreProc_stage1_replica0 pid=58484) INFO 09-23 16:34:44 [weight_utils.py:886] Auto-prefetch is disabled because the filesystem (unknown) is not a recognized network FS (NFS/Lustre). If you want to force prefetching, start vLLM with --safetensors-load-strategy=prefetch. +(StageEngineCoreProc_stage1_replica0 pid=58484) +Loading safetensors checkpoint shards: 0% Completed | 0/4 [00:00, 'debug_dump_path': None, 'cache_dir': '', 'compile_cache_save_format': 'binary', 'backend': 'inductor', 'custom_ops': ['all'], 'ir_enable_torch_wrap': False, 'splitting_ops': [], 'compile_mm_encoder': False, 'cudagraph_mm_encoder': False, 'encoder_cudagraph_token_budgets': [], 'encoder_cudagraph_max_vision_items_per_batch': 0, 'encoder_cudagraph_max_frames_per_batch': None, 'compile_sizes': [], 'compile_ranges_endpoints': [4096], 'inductor_compile_config': {'enable_auto_functionalized_v2': False, 'combo_kernels': True, 'benchmark_combo_kernel': True}, 'inductor_passes': {}, 'cudagraph_mode': , 'cudagraph_num_of_warmups': 0, 'cudagraph_capture_sizes': [], 'cudagraph_copy_inputs': False, 'cudagraph_specialize_lora': True, 'use_inductor_graph_partition': False, 'pass_config': {'fuse_norm_quant': True, 'fuse_act_quant': True, 'fuse_attn_quant': False, 'enable_sp': False, 'fuse_gemm_comms': False, 'fuse_allreduce_rms': False, 'enable_qk_norm_rope_fusion': False, 'fuse_rope_kvcache_cat_mla': False, 'fuse_act_padding': False, 'fuse_qk_norm_rope_kvcache': False}, 'max_cudagraph_capture_size': 0, 'dynamic_shapes_config': {'type': , 'evaluate_guards': False, 'assume_32_bit_indexing': False}, 'local_cache_dir': None, 'fast_moe_cold_start': False, 'static_all_moe_layers': []}, kernel_config=KernelConfig(ir_op_priority=IrOpPriorityConfig(rms_norm=['vllm_c', 'native'], fused_add_rms_norm=['vllm_c', 'native']), enable_flashinfer_autotune=True, enable_cutedsl_warmup=True, enable_jit_warmup=True, enable_bf16x3_router_gemm=False, moe_backend='auto', linear_backend='auto') +(StageEngineCoreProc_stage2_replica0 pid=59372) INFO 09-23 16:35:17 [parallel_state.py:1775] world_size=1 rank=0 local_rank=0 distributed_init_method=file://C:\Users\zhout\AppData\Local\Temp/vllm_dist_136def56607542418cb1ca141c7c28fb backend=nccl +(StageEngineCoreProc_stage2_replica0 pid=59372) WARNING 09-23 16:35:17 [parallel_state.py:1788] Distributed backend nccl is not available; falling back to gloo. +(StageEngineCoreProc_stage2_replica0 pid=59372) INFO 09-23 16:35:17 [parallel_state.py:2119] rank 0 in world size 1 is assigned as DP rank 0, PP rank 0, PCP rank 0, TP rank 0, EP rank N/A, EPLB rank N/A +(StageEngineCoreProc_stage2_replica0 pid=59372) WARNING 09-23 16:35:17 [gpu_generation_worker.py:103] OMNI GPUGenerationWorker forces v1 model runner for omni hooks. +(StageEngineCoreProc_stage2_replica0 pid=59372) INFO 09-23 16:35:17 [topk_topp_sampler.py:46] FlashInfer top-p/top-k sampling disabled via VLLM_USE_FLASHINFER_SAMPLER=0. +(StageEngineCoreProc_stage2_replica0 pid=59372) INFO 09-23 16:35:17 [factory.py:46] Created connector: SharedMemoryConnector +(StageEngineCoreProc_stage2_replica0 pid=59372) WARNING 09-23 16:35:17 [base.py:173] [LLM Worker 0] Sleep Mode DISABLED. +(StageEngineCoreProc_stage2_replica0 pid=59372) WARNING 09-23 16:35:17 [base.py:173] [LLM Worker 0] Sleep Mode DISABLED. +(StageEngineCoreProc_stage2_replica0 pid=59372) INFO 09-23 16:35:17 [gpu_model_runner.py:5379] Starting to load model \\wsl.localhost\Ubuntu\home\zhout\project\edge_infer\models\MiniCPM-o-4_5... +(StageEngineCoreProc_stage2_replica0 pid=59372) INFO 09-23 16:35:18 [weight_utils.py:863] Filesystem type for checkpoints: unknown. Checkpoint size: 17.46 GiB. Available RAM: 23.92 GiB. +(StageEngineCoreProc_stage2_replica0 pid=59372) INFO 09-23 16:35:18 [weight_utils.py:886] Auto-prefetch is disabled because the filesystem (unknown) is not a recognized network FS (NFS/Lustre). If you want to force prefetching, start vLLM with --safetensors-load-strategy=prefetch. +(StageEngineCoreProc_stage2_replica0 pid=59372) +Loading safetensors checkpoint shards: 0% Completed | 0/4 [00:00._kernel. This causes a latency spike; consider extending warmup to cover this shape/config. +(StageEngineCoreProc_stage2_replica0 pid=59372) INFO 09-23 16:37:03 [cuda_graph_wrapper.py:98] Captured HiFT CUDA Graph for shape (1, 18, 3840) +Processed prompts: 0%| | 0/1 [00:00, 'debug_dump_path': None, 'cache_dir': '', 'compile_cache_save_format': 'binary', 'backend': 'inductor', 'custom_ops': ['all'], 'ir_enable_torch_wrap': False, 'splitting_ops': [], 'compile_mm_encoder': False, 'cudagraph_mm_encoder': False, 'encoder_cudagraph_token_budgets': [], 'encoder_cudagraph_max_vision_items_per_batch': 0, 'encoder_cudagraph_max_frames_per_batch': None, 'compile_sizes': [], 'compile_ranges_endpoints': [2048], 'inductor_compile_config': {'enable_auto_functionalized_v2': False, 'combo_kernels': True, 'benchmark_combo_kernel': True}, 'inductor_passes': {}, 'cudagraph_mode': , 'cudagraph_num_of_warmups': 0, 'cudagraph_capture_sizes': [], 'cudagraph_copy_inputs': False, 'cudagraph_specialize_lora': True, 'use_inductor_graph_partition': False, 'pass_config': {'fuse_norm_quant': True, 'fuse_act_quant': True, 'fuse_attn_quant': False, 'enable_sp': False, 'fuse_gemm_comms': False, 'fuse_allreduce_rms': False, 'enable_qk_norm_rope_fusion': False, 'fuse_rope_kvcache_cat_mla': False, 'fuse_act_padding': False, 'fuse_qk_norm_rope_kvcache': False}, 'max_cudagraph_capture_size': 0, 'dynamic_shapes_config': {'type': , 'evaluate_guards': False, 'assume_32_bit_indexing': False}, 'local_cache_dir': None, 'fast_moe_cold_start': False, 'static_all_moe_layers': []}, kernel_config=KernelConfig(ir_op_priority=IrOpPriorityConfig(rms_norm=['vllm_c', 'native'], fused_add_rms_norm=['vllm_c', 'native']), enable_flashinfer_autotune=True, enable_cutedsl_warmup=True, enable_jit_warmup=True, enable_bf16x3_router_gemm=False, moe_backend='auto', linear_backend='auto') +(StageEngineCoreProc_stage0_replica0 pid=51364) INFO 09-23 16:39:43 [registry.py:141] All limits of multimodal modalities supported by the model are set to 0, running in text-only mode. +(StageEngineCoreProc_stage0_replica0 pid=51364) INFO 09-23 16:39:43 [parallel_state.py:1775] world_size=1 rank=0 local_rank=0 distributed_init_method=file://C:\Users\zhout\AppData\Local\Temp/vllm_dist_f3f857b1fafb42afad38d136cada03d8 backend=nccl +(StageEngineCoreProc_stage0_replica0 pid=51364) WARNING 09-23 16:39:43 [parallel_state.py:1788] Distributed backend nccl is not available; falling back to gloo. +(StageEngineCoreProc_stage0_replica0 pid=51364) INFO 09-23 16:39:43 [parallel_state.py:2119] rank 0 in world size 1 is assigned as DP rank 0, PP rank 0, PCP rank 0, TP rank 0, EP rank N/A, EPLB rank N/A +(StageEngineCoreProc_stage0_replica0 pid=51364) WARNING 09-23 16:39:44 [gpu_ar_worker.py:120] OMNI GPUARWorker forces v1 model runner for omni hooks. +(StageEngineCoreProc_stage0_replica0 pid=51364) INFO 09-23 16:39:44 [topk_topp_sampler.py:46] FlashInfer top-p/top-k sampling disabled via VLLM_USE_FLASHINFER_SAMPLER=0. +(StageEngineCoreProc_stage0_replica0 pid=51364) INFO 09-23 16:39:44 [base.py:138] Offloader set to UVAOffloader +(StageEngineCoreProc_stage0_replica0 pid=51364) WARNING 09-23 16:39:44 [base.py:173] [LLM Worker 0] Sleep Mode DISABLED. +(StageEngineCoreProc_stage0_replica0 pid=51364) WARNING 09-23 16:39:44 [base.py:173] [LLM Worker 0] Sleep Mode DISABLED. +(StageEngineCoreProc_stage0_replica0 pid=51364) INFO 09-23 16:39:44 [gpu_model_runner.py:5379] Starting to load model \\wsl.localhost\Ubuntu\home\zhout\project\edge_infer\models\MiniCPM-o-4_5... +(StageEngineCoreProc_stage0_replica0 pid=51364) WARNING 09-23 16:39:44 [vllm.py:1371] Enforce eager set, disabling torch.compile and CUDAGraphs. This is equivalent to setting -cc.mode=none -cc.cudagraph_mode=none +(StageEngineCoreProc_stage0_replica0 pid=51364) WARNING 09-23 16:39:44 [vllm.py:1406] Inductor compilation was disabled by user settings, optimizations settings that are only active during inductor compilation will be ignored. +(StageEngineCoreProc_stage0_replica0 pid=51364) INFO 09-23 16:39:44 [kernel.py:369] Final IR op priority after setting platform defaults: IrOpPriorityConfig(rms_norm=['vllm_c', 'native'], fused_add_rms_norm=['vllm_c', 'native']) +(StageEngineCoreProc_stage0_replica0 pid=51364) INFO 09-23 16:39:44 [vllm.py:1585] Cudagraph is disabled under eager mode +(StageEngineCoreProc_stage0_replica0 pid=51364) INFO 09-23 16:39:44 [compilation.py:329] Enabled custom fusions: norm_quant, act_quant +(StageEngineCoreProc_stage0_replica0 pid=51364) INFO 09-23 16:39:44 [kernel.py:369] Final IR op priority after setting platform defaults: IrOpPriorityConfig(rms_norm=['vllm_c', 'native'], fused_add_rms_norm=['vllm_c', 'native']) +(StageEngineCoreProc_stage0_replica0 pid=51364) INFO 09-23 16:39:44 [kernel.py:369] Final IR op priority after setting platform defaults: IrOpPriorityConfig(rms_norm=['vllm_c', 'native'], fused_add_rms_norm=['vllm_c', 'native']) +(StageEngineCoreProc_stage0_replica0 pid=51364) INFO 09-23 16:39:45 [cuda.py:492] Using FLASH_ATTN attention backend out of potential backends: ['FLASH_ATTN', 'TRITON_ATTN', 'FLEX_ATTENTION']. +(StageEngineCoreProc_stage0_replica0 pid=51364) INFO 09-23 16:39:45 [flash_attn.py:897] Using FlashAttention version 2 +(StageEngineCoreProc_stage0_replica0 pid=51364) INFO 09-23 16:39:46 [uva.py:65] Total CPU offloaded parameters: 5.03 +(StageEngineCoreProc_stage0_replica0 pid=51364) INFO 09-23 16:39:47 [weight_utils.py:863] Filesystem type for checkpoints: unknown. Checkpoint size: 17.46 GiB. Available RAM: 23.26 GiB. +(StageEngineCoreProc_stage0_replica0 pid=51364) INFO 09-23 16:39:47 [weight_utils.py:886] Auto-prefetch is disabled because the filesystem (unknown) is not a recognized network FS (NFS/Lustre). If you want to force prefetching, start vLLM with --safetensors-load-strategy=prefetch. +(StageEngineCoreProc_stage0_replica0 pid=51364) +Loading safetensors checkpoint shards: 0% Completed | 0/4 [00:00, 'debug_dump_path': None, 'cache_dir': '', 'compile_cache_save_format': 'binary', 'backend': 'inductor', 'custom_ops': ['all'], 'ir_enable_torch_wrap': False, 'splitting_ops': [], 'compile_mm_encoder': False, 'cudagraph_mm_encoder': False, 'encoder_cudagraph_token_budgets': [], 'encoder_cudagraph_max_vision_items_per_batch': 0, 'encoder_cudagraph_max_frames_per_batch': None, 'compile_sizes': [], 'compile_ranges_endpoints': [512], 'inductor_compile_config': {'enable_auto_functionalized_v2': False, 'combo_kernels': True, 'benchmark_combo_kernel': True}, 'inductor_passes': {}, 'cudagraph_mode': , 'cudagraph_num_of_warmups': 0, 'cudagraph_capture_sizes': [], 'cudagraph_copy_inputs': False, 'cudagraph_specialize_lora': True, 'use_inductor_graph_partition': False, 'pass_config': {'fuse_norm_quant': True, 'fuse_act_quant': True, 'fuse_attn_quant': False, 'enable_sp': False, 'fuse_gemm_comms': False, 'fuse_allreduce_rms': False, 'enable_qk_norm_rope_fusion': False, 'fuse_rope_kvcache_cat_mla': False, 'fuse_act_padding': False, 'fuse_qk_norm_rope_kvcache': False}, 'max_cudagraph_capture_size': 0, 'dynamic_shapes_config': {'type': , 'evaluate_guards': False, 'assume_32_bit_indexing': False}, 'local_cache_dir': None, 'fast_moe_cold_start': False, 'static_all_moe_layers': []}, kernel_config=KernelConfig(ir_op_priority=IrOpPriorityConfig(rms_norm=['vllm_c', 'native'], fused_add_rms_norm=['vllm_c', 'native']), enable_flashinfer_autotune=True, enable_cutedsl_warmup=True, enable_jit_warmup=True, enable_bf16x3_router_gemm=False, moe_backend='auto', linear_backend='auto') +(StageEngineCoreProc_stage1_replica0 pid=42376) INFO 09-23 16:42:16 [parallel_state.py:1775] world_size=1 rank=0 local_rank=0 distributed_init_method=file://C:\Users\zhout\AppData\Local\Temp/vllm_dist_3dcd7151d4db4756a5d71f8cc6beb2e4 backend=nccl +(StageEngineCoreProc_stage1_replica0 pid=42376) WARNING 09-23 16:42:16 [parallel_state.py:1788] Distributed backend nccl is not available; falling back to gloo. +(StageEngineCoreProc_stage1_replica0 pid=42376) INFO 09-23 16:42:16 [parallel_state.py:2119] rank 0 in world size 1 is assigned as DP rank 0, PP rank 0, PCP rank 0, TP rank 0, EP rank N/A, EPLB rank N/A +(StageEngineCoreProc_stage1_replica0 pid=42376) WARNING 09-23 16:42:16 [gpu_ar_worker.py:120] OMNI GPUARWorker forces v1 model runner for omni hooks. +(StageEngineCoreProc_stage1_replica0 pid=42376) INFO 09-23 16:42:16 [topk_topp_sampler.py:46] FlashInfer top-p/top-k sampling disabled via VLLM_USE_FLASHINFER_SAMPLER=0. +(StageEngineCoreProc_stage1_replica0 pid=42376) [transformers] `MiniCPMOProcessor` defines `image_processor_class = 'AutoImageProcessor'`, which is deprecated. Register the correct mapping in `AutoImageProcessor` instead. +(StageEngineCoreProc_stage1_replica0 pid=42376) [transformers] Requested torchvision backend is not available. Falling back to pil backend. +(StageEngineCoreProc_stage1_replica0 pid=42376) [transformers] `MiniCPMOProcessor` defines `feature_extractor_class = 'WhisperFeatureExtractor'`, which is deprecated. Register the correct mapping in `AutoFeatureExtractor` instead. +(StageEngineCoreProc_stage1_replica0 pid=42376) [transformers] Image processor MiniCPMVImageProcessor: kwargs ['max_slice_nums'] were applied for backward compatibility. To avoid this warning, add them to valid_kwargs: create a custom TypedDict extending ImagesKwargs with these keys and set it as the `valid_kwargs` class attribute. +(StageEngineCoreProc_stage1_replica0 pid=42376) INFO 09-23 16:42:28 [factory.py:46] Created connector: SharedMemoryConnector +(StageEngineCoreProc_stage1_replica0 pid=42376) WARNING 09-23 16:42:29 [base.py:173] [LLM Worker 0] Sleep Mode DISABLED. +(StageEngineCoreProc_stage1_replica0 pid=42376) WARNING 09-23 16:42:29 [base.py:173] [LLM Worker 0] Sleep Mode DISABLED. +(StageEngineCoreProc_stage1_replica0 pid=42376) INFO 09-23 16:42:29 [gpu_model_runner.py:5379] Starting to load model \\wsl.localhost\Ubuntu\home\zhout\project\edge_infer\models\MiniCPM-o-4_5... +(StageEngineCoreProc_stage1_replica0 pid=42376) WARNING 09-23 16:42:29 [vllm.py:1371] Enforce eager set, disabling torch.compile and CUDAGraphs. This is equivalent to setting -cc.mode=none -cc.cudagraph_mode=none +(StageEngineCoreProc_stage1_replica0 pid=42376) WARNING 09-23 16:42:29 [vllm.py:1406] Inductor compilation was disabled by user settings, optimizations settings that are only active during inductor compilation will be ignored. +(StageEngineCoreProc_stage1_replica0 pid=42376) INFO 09-23 16:42:29 [kernel.py:369] Final IR op priority after setting platform defaults: IrOpPriorityConfig(rms_norm=['vllm_c', 'native'], fused_add_rms_norm=['vllm_c', 'native']) +(StageEngineCoreProc_stage1_replica0 pid=42376) INFO 09-23 16:42:29 [vllm.py:1585] Cudagraph is disabled under eager mode +(StageEngineCoreProc_stage1_replica0 pid=42376) INFO 09-23 16:42:29 [compilation.py:329] Enabled custom fusions: norm_quant, act_quant +(StageEngineCoreProc_stage1_replica0 pid=42376) INFO 09-23 16:42:29 [kernel.py:369] Final IR op priority after setting platform defaults: IrOpPriorityConfig(rms_norm=['vllm_c', 'native'], fused_add_rms_norm=['vllm_c', 'native']) +(StageEngineCoreProc_stage1_replica0 pid=42376) INFO 09-23 16:42:29 [cuda.py:492] Using FLASH_ATTN attention backend out of potential backends: ['FLASH_ATTN', 'TRITON_ATTN', 'FLEX_ATTENTION']. +(StageEngineCoreProc_stage1_replica0 pid=42376) INFO 09-23 16:42:29 [flash_attn.py:897] Using FlashAttention version 2 +(StageEngineCoreProc_stage1_replica0 pid=42376) INFO 09-23 16:42:29 [weight_utils.py:863] Filesystem type for checkpoints: unknown. Checkpoint size: 17.46 GiB. Available RAM: 14.27 GiB. +(StageEngineCoreProc_stage1_replica0 pid=42376) INFO 09-23 16:42:29 [weight_utils.py:893] Auto-prefetch is disabled because the filesystem (unknown) is not a recognized network FS (NFS/Lustre) and the checkpoint size (17.46 GiB) exceeds 90% of available RAM (14.27 GiB). +(StageEngineCoreProc_stage1_replica0 pid=42376) +Loading safetensors checkpoint shards: 0% Completed | 0/4 [00:00, 'debug_dump_path': None, 'cache_dir': '', 'compile_cache_save_format': 'binary', 'backend': 'inductor', 'custom_ops': ['all'], 'ir_enable_torch_wrap': False, 'splitting_ops': [], 'compile_mm_encoder': False, 'cudagraph_mm_encoder': False, 'encoder_cudagraph_token_budgets': [], 'encoder_cudagraph_max_vision_items_per_batch': 0, 'encoder_cudagraph_max_frames_per_batch': None, 'compile_sizes': [], 'compile_ranges_endpoints': [4096], 'inductor_compile_config': {'enable_auto_functionalized_v2': False, 'combo_kernels': True, 'benchmark_combo_kernel': True}, 'inductor_passes': {}, 'cudagraph_mode': , 'cudagraph_num_of_warmups': 0, 'cudagraph_capture_sizes': [], 'cudagraph_copy_inputs': False, 'cudagraph_specialize_lora': True, 'use_inductor_graph_partition': False, 'pass_config': {'fuse_norm_quant': True, 'fuse_act_quant': True, 'fuse_attn_quant': False, 'enable_sp': False, 'fuse_gemm_comms': False, 'fuse_allreduce_rms': False, 'enable_qk_norm_rope_fusion': False, 'fuse_rope_kvcache_cat_mla': False, 'fuse_act_padding': False, 'fuse_qk_norm_rope_kvcache': False}, 'max_cudagraph_capture_size': 0, 'dynamic_shapes_config': {'type': , 'evaluate_guards': False, 'assume_32_bit_indexing': False}, 'local_cache_dir': None, 'fast_moe_cold_start': False, 'static_all_moe_layers': []}, kernel_config=KernelConfig(ir_op_priority=IrOpPriorityConfig(rms_norm=['vllm_c', 'native'], fused_add_rms_norm=['vllm_c', 'native']), enable_flashinfer_autotune=True, enable_cutedsl_warmup=True, enable_jit_warmup=True, enable_bf16x3_router_gemm=False, moe_backend='auto', linear_backend='auto') +(StageEngineCoreProc_stage2_replica0 pid=55720) INFO 09-23 16:42:58 [parallel_state.py:1775] world_size=1 rank=0 local_rank=0 distributed_init_method=file://C:\Users\zhout\AppData\Local\Temp/vllm_dist_6fe666f458a54616af06bcd6b9a314b2 backend=nccl +(StageEngineCoreProc_stage2_replica0 pid=55720) WARNING 09-23 16:42:58 [parallel_state.py:1788] Distributed backend nccl is not available; falling back to gloo. +(StageEngineCoreProc_stage2_replica0 pid=55720) INFO 09-23 16:42:58 [parallel_state.py:2119] rank 0 in world size 1 is assigned as DP rank 0, PP rank 0, PCP rank 0, TP rank 0, EP rank N/A, EPLB rank N/A +(StageEngineCoreProc_stage2_replica0 pid=55720) WARNING 09-23 16:42:58 [gpu_generation_worker.py:103] OMNI GPUGenerationWorker forces v1 model runner for omni hooks. +(StageEngineCoreProc_stage2_replica0 pid=55720) INFO 09-23 16:42:58 [topk_topp_sampler.py:46] FlashInfer top-p/top-k sampling disabled via VLLM_USE_FLASHINFER_SAMPLER=0. +(StageEngineCoreProc_stage2_replica0 pid=55720) INFO 09-23 16:42:58 [factory.py:46] Created connector: SharedMemoryConnector +(StageEngineCoreProc_stage2_replica0 pid=55720) WARNING 09-23 16:42:58 [base.py:173] [LLM Worker 0] Sleep Mode DISABLED. +(StageEngineCoreProc_stage2_replica0 pid=55720) WARNING 09-23 16:42:58 [base.py:173] [LLM Worker 0] Sleep Mode DISABLED. +(StageEngineCoreProc_stage2_replica0 pid=55720) INFO 09-23 16:42:58 [gpu_model_runner.py:5379] Starting to load model \\wsl.localhost\Ubuntu\home\zhout\project\edge_infer\models\MiniCPM-o-4_5... +(StageEngineCoreProc_stage2_replica0 pid=55720) INFO 09-23 16:42:59 [weight_utils.py:863] Filesystem type for checkpoints: unknown. Checkpoint size: 17.46 GiB. Available RAM: 12.14 GiB. +(StageEngineCoreProc_stage2_replica0 pid=55720) INFO 09-23 16:42:59 [weight_utils.py:893] Auto-prefetch is disabled because the filesystem (unknown) is not a recognized network FS (NFS/Lustre) and the checkpoint size (17.46 GiB) exceeds 90% of available RAM (12.14 GiB). +(StageEngineCoreProc_stage2_replica0 pid=55720) +Loading safetensors checkpoint shards: 0% Completed | 0/4 [00:00._kernel. This causes a latency spike; consider extending warmup to cover this shape/config. +(StageEngineCoreProc_stage2_replica0 pid=55720) INFO 09-23 16:43:43 [cuda_graph_wrapper.py:98] Captured HiFT CUDA Graph for shape (1, 18, 3840) +Processed prompts: 0%| | 0/1 [00:00wETDg|36>BC|ja6rEW~BON)Vc|?u%Koo=#LTn=By^Q%+}Ji z3aaxFj7%Cqpr?eeY;qxc0oH&quXeXjcGoOnV0BlCO9=%UDlNF zu1T%y((H@0>r~Q-CL+^ zX_jG{rAYl#2;){XW;@n{=Gu+g$1xM(U7_V^_i2Wwv}5$SM5Cq=gi4yDjUYCs9?b}P zJECGcntw8_MucFN6V-2MSG04~>x6ci$|YKfN*c*cvq`4WK*Ksj(Z^XY)}1i-GnpuV zO*^dZrO#z8OABcR!oW!MEF-LM)3{lLaXGDKJW&EGQHx-?>3ObpSG%P>q;`zx5Kq)f zW)dr)KBu%j+IFJ*0m9%O%~;Xmh>oqOw4mO0qHd5z&7wIL(LOBGN(t|a+J5bC?Jw$e zl=@#F$XWCxNPRst$JpMfAb0EGGO)sV1t) zgi#K)OV{q`JK-jMUD(r9;UI+ z)6-k}yvwP7fJUvLD|SQ))m|msb`y>M(0lSex@S>TxP3>H7rrIZylfER|FG zOs`U#>(uf#_06Q!$fHjN!Msaw&QTxq12q8aD)l{1xa_C-?jVc~(cZd5ZF6Xr*dYQ@ zI6y0uO?clVyw6bUV|qD4J7XX9*h}BX2`pRxW0*$QdxYs-f`5g^zC=$h&^#^>es^iT?^3xzwdbhrD2;qh$NCDjy+ZI# z)7VG=%vFBeLP7|Fj>$@;rr%fKU#2(Hhn%^Ycuw!o% zmKO>JpF?LT z^zZq}qgJ3RxGzS){>j$ir_)`Q4h402v_^$Ai!$1c<@BAY(-&062V?Tnn?n@I*T=^U za`ci#SM)@Qaivm%QbIJz|96bLG*T|zXVWO9RFAo5Q%xSV!g$!xcv3_qM#((tU96u+ zaG)xkALQyivxws0EydIuBZ2!wbxxtssS4<0mr|WVJ2gU-D5G}hnN1KmhLzL`l7uk> z$r}@0!C6anco;K8z0376Ds+l~C&*O5AuvnMp(^OUlHi1>UM5)qP6aL)>sv*4_{}*e z#zcQ`Nm<8NB(5*g*pM2UUWau9Ckj)WsLmZi`Zszg`h1|PNK`B&MRB5R)L$T31c?ni zFgoS|%z{+IsHIzP=^+{5rS=w@v4LcPLNFs#R2_37AKd}}kY2|KD=WzXCuv4bx-;u^ z5(!UmSPK;!Vc^qY+Uc1@vj_JDmW+NuyE0He2le+;iDwB^;^+>2{8WoxW@=&3VPaN{ zWFz>!N|+dE)C7{cwMZALN0Pb$U8@rmuRa$mVQ12D0FDlQR=~+jzv8G@ZIXITNb1(7 zyXqu$F`k?7bx?5=j5vY>xt>TRNyjUW^pRBhRHND?DyYY=RFa|4x9X4{Q=9HnNm|#W zPb$IX?a?2t6X`pFzEkK)O=?@8aBfJSI&{xVE$WAoLhY~?KAjeE)H9hz!joFm8WOt! z^{!7N)}m5_;HBu$K9C zKS%58R0EuA(H-E_r01XxV1XK(E|?+am#Tka;{yv`SB<{W8f}0FXo4{kb@&*gIu*1* zy`NSAl*9NO0_ce`uvgFvqsB(&`^HPXa0fhq73hX}B zWPuGY*o%A|P!-RyB4~?!;-YVUhus>d7v7rhW2`hF@D=gWST-8XPFEZ4Xj}mSc*Is2 zI}jQb3fF)6Zgfz4i{1y{ICFr2J0pE?(nTsbO}LZjv>2(N4x9t`XlJIYfl92kfu0Kb z2UqY6Jmm#2!S&D+ybt|j&v2^HS0f1zexTB6#Hr@i5}>0V|G) zRx0Ut71eMq3Qi6E4*Usx9;JW^BoAZ&cr)%GIq(Zl_%rl~wJIQ40SO5Ck)z9yLTU-Q zl&^nt$z4b=0FBElw1ia6(n|*2rBi_nLdn%jo(>NX(H6QYBqQ&^WgX;KtUWLQ4v?m3 zh1M~tjd37tpkqPC#Uv)QF0_wffqt1(AYB28w?u1v_#F8>0Sj32-spqba9PfA;w@ka z#_;0xz?sWwKtfOS;&AvAj0XB~YV+0LYXb^G!a^?d8c>?kKeleXMLDfAWE)l+S6(0= zQMgYxM*q%Xa)S>)Wk6PftzX6Z;tJ38iWHk!L59qKl0v`n}@Iiqz z#0RpH%S*_=n50ErOvXZQ;J@&VU-*X;$Ik)I08S*%7ETii?s*GbaavLMx#A}jCkrPP zXAGx~KL-R}gD0_b&(EfrenUcnAE0o~f~%c=f!jbnLl5|mqi`++i3l4T&mix(3PGz)QhZAweJ)z+bsMfjsz+BXj8i4hTugr4J+lZy%GP;O4wHdV*(z zv!f613Hi&VXRHV3tg(8?A6{Y-1w0?pFeX7bPLPI>N5BJDE*)caTzy}w5kQJ@O@K=@%nhw#bLCk42Zuw(?9qn90&Rg4 zr%N)?1cmDne9jyjE))OLEI1{gNudtf1DCgGhu&B($R^O0OH~{wgPzn-*TbL#)}beLbxn}pb8U;S2KEN1j=9CO4QS2KH|_cfw&^F?qMvr0bV>hh zr#q{z6X2x7|HX9{=pI~ufQ}eDrI-t7h;jJpC(uk%=stDb!oRV&r@t+Cvq6U@3(OGPl$~G4MM-of(|j+TB*} z$(PrQ^`QcAFH&qy4C@r}CR#ekZ@rFI0Y|nxE;}57cIv_C1xw+9JAJMt#@Q^GyVcdlKM> zxKEaQF3pMCr;t}wGzXPDkV#~dbR_(Svx#gj`-vT3SEreSF3$gS@~OeU8$#dm6pnz%5vqlQdfOLU9MhM z-P&NnHKcW7Q`w*F7(2p#W1q2Mz!=Lvp4 z_`l#c+fASC^w~N@a%ju{K$oLf2{9RBa~B;450| z@3p10w>D6}E#xUXNHaR6dz0Yjxk0|5TjZC4e+YUf_S-|fq|^R}w#QFb@xNz?`$hy> zIoJW*GKa0L(n;ms67C;?7ZP5jH1hhu9|vFHO&SM2!~42->Kfg{mjs{VW%7T)=Xi$Z z3}4#`x;sT5cpNX1PwPCvK>OPS190Kbx<}C9AHAh}tS|!;`8tFW!W0@QJUC(cz;6=M@vsWu zozODF1fSbQT$kqFA9$6}laZzfE)0GRTM-2w4`_ez<1mWp!0&@Of*OT1cNFkq6lliq zBypb%x9&vpu)u6X=3I9uN;v3K^pc!%vJEjvsYXCkRD@bH`IUwud zE#g#zhT$iCKq(%dfxZCQ%sm3!zOWMRE`5%G2)zor0W<`z_u!lBp0PFHx&~hhw2bNg zz!lhX%^La=`a)Mi4K!ash-t^k^t&d_5%IwW`ge7GzGw{}SWT+0tTyjG8Y1^}L7%Kfu%IPCQ-kLYkl{asmWL~7!u?_J z(s4YY`QZaRfGx)2ZSafFAVv?sfj)>U{B(fAy?yZBH6$tDh~kXRNR~j-G^T=9@aom2 z!smpBtKDHgTy}OelKW% ze5Yb3LxaRhays+92u%{&BB+OgU-$;?VDrTGEm~ujz=w#{;k%S;pBURurwEoO&ZUh; z2L^7s`x4-~i+PB99+;`qQ*jc?uxoD30n z?x(_214*|i)xj=@Ee)F--ZBmuUM+a7;2BT|66ew2#NfDif(QUSb=)@r{TCdWd%ECyQA;tpfg<8lt?h8WH4*iSumUxQD5u!%7NfIOC zc7^KPA3nx=NnD-k>3m8K%=rGO0Cuf!HM&6_HHP z6A-wLgh&=*P0*Txbb@dW5H-WKklJMv1dI;c@Il-QI}sRTEbM;hL5PK4?`9lXWR zbf8z@9_JUQ(?}-~=Lz(}tf4g*=^6^+$*}FfA-IhSzQMC-prZz;CA@(=E{`)BA$Z6F z;hu5_!G`39M-5sL_pRZCqYo@e#0TM@{=Ym!(X}x%aT;h?+`r}|t_WV`qYv~2c--Jm zL#)kCt$-D@0dO>MI7n;gHPwj+g3m$fLT>>#_7itRwg@Z+H`B3kgQpe3{%zyj|B z?y;B|=D_tlSldp*1^NW{-T)?IQB6pyAVUU{6A}dy7Mcv~5ySwX0odsmyiHtd!n}YX zq$>0$NKHrz?yE^44iAqDWGv)D3XOsc9v=0or^nG6k}PXZBSTto>B!?yF`Wh4A-q?h z93p#I1vAYA@i_SCxMan+Jn{zp2DtfXWOyqezu>a~R7fT6%R#S(G;Sk(#tjKCNFhi* zV9vcska{r>2)rWD6|n+bPlOByzV!(LVsVdMV1)aBoG$3a}idEzyd0?G0Yh&=%nXPqA%j0{2yc&UZL;)WWiZ#6`h*#TWtNIIv?&bUp?+@TGvSz&b&^ z9C3c`8^U@(b3m!oM+Qga(tu}wASwV$33$QM0bE#%uoF=a8xE4^p)PT5Qg6gdIM0M6 zhpY$hLi+-Oj2tf>;ejQXtxKOfB>B#h)H(luzh&fwk1rQ)$D%o!^P z%MYsxpBONQ%z^ymksxR~upyx{Wa;BvrrF#fn4EgR5V;%Zo2z3F+cAr3u!dM)&=(dv zBr@oP91&oJ%n5FhL&iW~$)qd%gOH+FA0C~7&CPYEd>Rw@LQ8`*;L#}10uq>e1Aq;m z!2^O+NHar$oI!RKmy<!;n0=pk_1pWBP z*v-hqDWVy`{{qY( zMlPrRT$@40P6olkolwMQ+^3ink3N3Qo_bukxUUrMdf3mg~c4!#q> z$8P6bSkw1xfUfZEz>CGR1EP8x(2MURtQ6m2(6Y+)dVVI6tqPur3@OM4*jpL!(6U_yO&U1mEMPItKcN)34Vi! zK5Q?n8muPHb1@R60H6R4P7ktd!OxN5hjWcx1FW#$FfYKs?naIxBJq#|pe#I!*mKAQ z#eRTwg8c=Fg8V#a=)4E#?&$kpOdh9?XZ_){;TQME;)=eoym0aW8#Uktm{TVGf+WCs z;#>t@S`?o132!Y5EHCcCg}nnyhquQaEFM^7_~!ms?xjV0Sb^~O!oGvo7M9@^y+2w5 z3Pwh@Agnr`iwb)ZBce4Rq3~=)J{s={3k`T<1nw{9-{1hig4>CJafQaeK;`_u1$TS| zWQO7wY&zszo}uq^bp5aP9NhyS-Wxt@K;ap(c=mtcp3@U0iPG{u{KyMtOGK!QOD_sx&D9ZaO!djbGqU=W_tKv zj1SR0W{i0s{a-AA?_s?irxaTAnemx$903=7ViW@Yz@1YR^uT@WH%5u=uNaN_-1y4i z8FHroD?Ha6zyJTP!!85`u($X(TKwNuxX0LB_-`l8%#|r!*#^d+!F)82akYoYnNv- z!aKrqjd+{{aVgl!u?z+7|An>6?|2*omT$}+=TgnGxuYW!AVZgHv|9d0-+L(U**AgE4M!GkpDR~E){Oc8f z?;hR(cv;|Q!TUn^MnO$e-LK!Aya+Az{DW3>MZvF@RExsDQG*PHSiyTdD6J_DjYu@^ zcuX31C}_!{pf758+`2vMK&74D4}H-K@$7a~__Ox7UN@jXQj!SFBA3y}py4Ux9br9;bpf_{Og%{)uPFEQ+ZFK^dQrvzpWs_0b*&I?u@wb%>Isl>jU>AzxoitjJJxA@M&F2p|M z1;0=qtHTrAV=v>Iw`@dv8X4m}0)^epV^BP*#Gjxxc3N;MVkLHu^HrD5RP3zbeBspL z1meW;!hhk)pZxa}5lwg@5w(IB@&6Ydy@MAFg=cuh^1M(B?Gu zfUm&A$4l%U9xI+{jc*<`hA)}NdN~Kf6$SBA#L2+Pa0ed73(wAm2P_t0=iHG;-Qf$4 zWn#it2tLZA#<+*Slk?eF4mKkE+#3##j5~PhIDbZL39&8yz66hLalaLO1o(|#Jlcia zYQ&^C*T*kN0@yh4)pJXY+by`patUD3^SoMk5x92?GKc40Lo)FUY1mefLy$YLvfwL# z#|;)QEJi$owTfD98Naa-{CcZFDvGsg1m(N1q+_X zIC$g+RuOD*?!Sszfjp-LmL_}%s0DWDiPn(TcsC016|~^F%&_h79v18({tgqKa*r5d zU_2XzKZUOWRt{PN4&*(z%lMVsYUlwifm=?ndhToR~2`hcpDLKl%3G^(*4x>67|d?=-g9^ zwx6ebqk0TPAYW}7^*E+$$OowRRf1ea zyVXecem>0+?->HK%Y;Kd?Mvthcvea@xetq`(k5S9Xw6g z*+I(JLq-^~2dY!sLeg1x>u++NCTt4G=Uk6uR#%cZ4M}6cyN&SQac?!x_X|_2n>1r+ z@n;Ex45D{q%1a!`UZqbL;@|Op$OnZTHrlL{`Ox6 zooOR+L+DR-T7e+Z0GT)z;)%6MwzQ(Y)riLw5-njx;@!&I1VN!UygSgCL+R6#+9VUj zDrpvn^~}W+v>ULhHsYAoNxI;T?0Te+Ar67ujT!`9qO89&WF1_jmBJYdYBea|@@@7e zdy(}fI@BawbEyU1DLz9qt)TV8JKAk2oA5O@f-*Fl5yiRQi9ECv(jErUyY1sBtF8eP zSQ_o1pC~JEHC^`--D(h>hOf3eqz-c@w2-q)H@&SDG7eEf&@Rwts|Ja&$9EVr=b>>Kt1 zQFuGe0y`gX@gw)5CFQZEvTH=sCE6s)-CRKHiudcEVxJS-%PfuEVk_uZGG%wJ)J9N7 z<%g7~dW+t+?MO46PV?_al)gb!{fPRnCpq#cwH`%O&0s<5`yH)IDk~$tvP$c&G0Ls{ zl;*LYc3D%xZXMf6D;%U<|1;$-o+He1Xs2e*Co1>-D8E8p+u83f-U?!rQ zN>qEA=yG0rM>A@()HdoA^<{dxnC+wN(CL&F`iQWX@cM*uIAt}SvO0HYLn+@hoAnTW z6xIvPg#N6XHc9QLj#kI2D=06tQuS+Vv{wl0{=yPrmM}tCBd9`_&_Ni^7HfIx7wUUz zFZH4_S=pqlRLiv{!X=?hNTWR3`9db`jyoi9&nO+$40X2Fn#TEDC=jZN4~51;b2gST zP-m)UwOn~$?WFlxDVr_4DpXL`>+eLXvD#eqtdgrtR=d;8Utot>9m;KeQn*jl?Mqr- zg}$?Lv|5zex|OY_T|Qe=2fu5zM>V5L&4xwW;b{b(%Js z<*_i^Pjvo+iImWJfX+Yz?N{}6wH@`B)o+N`x217k6M6_Y=sbL@ZBgr~FQ~WG8HDLE z_PDTBXe}m)3j0U9rM{+iQ{8H%@{HP9`<`_cQiRWFUsof#oufSGcC>~c5vJ|fTQtK_ z?3SKk`;lhXTvV@U{b{G4WfAs0yGr@E-LyHB-TFS|={`ra97FBjCr-Can@F6YueO<1 zYP2?s*0G7uLR@-KEl&NP2qJRo!06l;R@}t z(b^&PG|geEI!N8Een>K)HtE<;u{*R69fWZWc8tz9y$wqgoT|P+`*a!cvyX@u1zAsF zCcCYI$s}?ab~%OW~UEzSv#-l6K}kwUM$= zPEZ2Mx2jK@&8msp#OmT2+LvCTtJY7ot6P*E%1(8tR-I1n0`@hXi#JIcw;;YZg?QEx zb*MUtXz{%^m@>PISbK4<_@~%P+)k(CA!ST&QrgQ8q6g*0sz~R;CKd|Eg(>1RG0652 zzj%`N<~((q(p@Q26t#x-1aS_NFjGhtXNw;S^@yJ)Gmmy#*{rNlmMQDiG_5XspuNt5 zf>YWi_9Xnz(26-UNt>cPCp(qh>JrMtzNt-T*+Lg-y!5=7$wKUu@RhJpTcFIBugN=< zJ<53HymCdWCAJV>6y73v6Jaxj2Eq(2s*G26u`XgjI7GYUln@f;v!~QVWxJv(E0mAr zcjS0=FiRCJ(raQC$)+W2JDrSYSf08|EmqsG(KJp^wpOh}JmFn+B<NCWVdb07t z262G&ozzpBEVR|;s3CQpxr&_?LT<`D;8O%m-M zjemxCl1Z}?Uw=VpC~g%R38!h-Mu;c(W-YV_YHw{UapP~)K1y|^yPB!}BgkSK=~Zcq z)W{H`L;Jbnmj_3`h<1~6<#BSl{Ij-M_(+@}y=GV?T^FZ{b;MjYg`^?0ziVm>)6C5JWl1aKnnJ`Jb#M)67{nu=i+LqpxIHZ=-dlK)GELp7e(WVHqrAMUa zgtgjcwm_IDJVsoivDRDNr8O776)fshd6;@yyG=Z-miD+BRL#Oov6}RvxRbr8eXY)> zok)MTM<~(0R6kMYvHRjIX|eQ~5K@~d9n`s6m?9Udf`;@uzq-fXZ z8_`C}6fH$)C0I$4yic0Kx6C2cxB{q z+5<*mt8~-wk#U~s4dZ79zqE_}s_uyzBCkibM|0)F%6QF5^C}dU3oi(>#5k#o_^U8Z zs3Oc}3BR)n^>M`!tsZ$l(n%hnKGfbK{cN`|-1w4Zt);cOyI~t?ZdbLJmA@j6NY|)c z{zVz3h1p)Qvp7YVr+uV+t|YP!VsCMt&`-P}UJz%9XW1X>c4f5kjr?t-Yj{|=uUtoH zFMTF0ovCTt^V+qc!ha+d7TPO`ef0D4=dNIR*T*snCNp2CMDi#!^LM252oc zZ6d1@`idH9QP)_!mMW)4H_5-t&&WB-NH$-bC^eOCO2?(U(qVBEahj);u5y=XO?i%T zoObVf>>1*AQw$@GYYYdZ3gKJrGi6Zpop4I%TIjdvXthf1rj26_q!s2bta+BZhH31O zI!-x6{M%1FdV2I^w6R)K2#dqTzt{&_lGau0FNl&we3rD#-$?84PbcLUItQO<`HG}$ zlRr{YHS#x+2AaXn3k$?nQl+?x4OAPeUfNOX#kZu1;(o1(nyn01u188jlfsQ7??hA7 zI-=27*EG%4!u+zSMB2{UYIW7B=<4wFa7K7-WR=oJI4WJ0J~v!3UNg=%ye0gh-j+8- zXGa!Co{-a&LeiT8B=dgI6v1xjWXKR75#|a##AgLBo2k`ME9F!2UAcu^L*Aq`Bn>NG zY-$J^GfWR#-VrZ~yTwhyN=9*9wTn7SS*;w^dW%b> zHikQf3*;mp%Z4Z!;da5!f#Jac;r-F!${9A;_^Ub1yu@rUHIy!Ds`5iLF5ELbFye^@ z}N+etwtP>ff{Kk4qA?b?vo48)uA*G3;G@rd2?Gx%9 zF(_ZCIqbOj8I`XM-Ty1saHt5*~ivsla=(ynCNx2l%)A)rM}vq-uSvmZ$xcXB{@-XXa;SIV$iM$ zW5ilQ2YS+sy(I1vN3u!k2(_cSkYwAhVv1BKej(Y6Zo&+14?^kvHZDmMD3}ikT&=dy(d=4hSOO& zBWw{?vkPi#!N#O;{{Vc^96$_<+5w?y=Vtzl{#7dRoyInV>oY& zSp4>7_L`11_B-T89A^5{_<>=J^saP}w8CN1V}|*L1Y@T0x+%}J+cd!}SlU?9EPm?{ z>jp~=b8C~;D2vzG5%q-pN+cunWq4vFC0bpsQcAU>!gA>&;sqZHbJg_d8=>A+kC#V^ zlM99Xrg`=Aj^-5?^eR45x~lSgXmoUhxfhF zTK$%!Y1L3ZjBW@I53LUDs{FmYQzExeMSod0+J;=<|0>7}n%HV?n2wvx_R8aYhP z_O7n(E6&fY@y3Rtpj-%9gCAGzuGn7@t$I87a`FWXATKh6pE zdzM8cGpd{K89N$hNbA`yZ7gZY4soe?-Z0eE-t4iyY(Hv0V+&cUSqGbg#{I@_#$M7X zVHa7L{l%~8eE7w|vzvo!t_}Q`F-oQH7w8HqKG1vICX+3eKZ;eBY`;6_33#3x^hf)-gLPsi3 zmQO6pC>dP5x~NxiQc3I5KTB_vG%fzIFt4Cm(W&CArRMS_mA{6@tLcVa*3PaA9?AQG zXQ}%!*N4`hrEIldSh=y{wUm6mFQ-Y=JBLQJ;Az2XN#ek_IKTjyvJ1Zc5RjAxGse#Vrfg zPs2;*CbpK&yY8>OEqvAd>Hg*Z4!-uDBhC@_r>*&>#|@Ln z(paK&kQ1V9Bg4YCLc@a#sv1;&Tz;^0cFFc4weVd2;Jl4_YHr`WZ?a#{F3eq8U@vZ3 zHYHF;KE&3TH@e2e^+-rhd_T!X>BA1!JJ!YG_Q=M{=SrhR1B&tszby`z+%CTnco;dZ zDy)OF#qhnciMhRXwxfgVO;?udefJq}4c}1j4A*E|YjYimvQOkY;UmFEDFN$#U`lwO zyk0vaE;hEb^tNwu-S;GT=X>UPE_qISj=D#=K6Lc7eP|hL+G21>sX_~_v%+L+^q0tx z$g=R!U~(W-d9b3iY+>nZCHaMS@{VRdlkLoEn*Qhm_V7Sva?XhSH_A#w*=(ojXZN28 zA6J`KJzTv<^-q&J_~$wgn6k82!v4y}rCo|w6n#9ee(xhnOq_|^ltG&v&KsY7033~&PiVGE2E2Du&!Yd2_;E}41mD%N!%a)a` zEI(RyzjSTMsp6`l?S(%T`U`?N=Q7odHJRqjJsF8vZSuz#@2J=lNfQ6Ip7uPExGJS{ z_3YF=DU*^q`L8&x8MCzO;RThQ$}X04E@@oSpH6i`#pue3frr77Ar{^pE{+zfgT$@I zzSil^pSteq=S&zh$@FLH;uONi+}{9XSzxEL0#oSFGl#;+OAXE?G_bH^40i{Gl)75Yt`CK)YJo7>sOxz#zr+1zp4 znrteTHVWs-4y+*W@ouusGs$E7J?Zv4WpiXx@Ickfs&!RM0%^h9;VJSz+HJ{i?qI8D zf7LO=e!w=)7H9j^Hr0}99AG$OIBlL}dC5|0-fYe>*R#B5>0{Y!UTgfru-35O*w0+s zs#^QozOoq{cbtn|)m(2nn%jQ2n9Zfe)`o841~xJPepF& zyyB9Ar}F;D*_<^at4HRL%&wX9v)p;_6(kmmrFSb{4!tDT)0ztN#Oj8X#@!~fd762; z>8$B}b2m$>wYs&)y4zM{{m}Z7rJ?zt@q##&T~dCHJ{}nxz81O|Dhh21r$l$kYt$~} z=e|gup8>)vro=+faK;N1^?o?LFIG+kN{{hs(Lm zInfn$&3D^9Jv?jOZr4!9T3d!?xA_TEQ$t8-$aZVrYN^^aB~cz7nHwG#x)In^SyZ;5 z^w;7`g$D~h&X3D?=H=wH%E`$#=RT6xC_j)txnN7t^3vLsDZ!4RZ*7OLTAVAL zF~wT=)^>`HM0917Db>#2l z;;1#+H?kufiDX2+i{?ask8U7unn&0z^)c2mH#6s&<82?>YdXg`uQ@()Cb@odH}IzT zcKhD&*?eF6y82)8zu;@@Npg*LWY|Vq7nwgaPLfs$@$7N(+N>d;*T%@Ga2bVEn^nGE zZY>KGrxf1KFU#wmcO~au_S@N(?9%M7auV~5`NjD^7A`EFRo1)my{Znurr{;gCCUYL zA{!_wQib6ulhg96ZL(c*R5%tp2fH$y1&*nXg?80iLA1PJoNs6;T_tbmE{X=MBp+^6 zVafs7DnAmP5($RJhkp;pMXE=SN0XJF>IN-exFeMs*O=#7E?5WJ4>>z~26_8?Cwqtb z-;2MTFe~9^{MPsn;&;cb^tbf=;_2Y}!~TQyPqWALv|*(9DVwNXm$Re0B4fhO23=L@ z;AXH!n(};BTYyb(Qmie}~_V zTIF?0w)P0^o>QiqmR#F+j#O6{cO%bb&qB|S?w4I}JEu4n*@xQ7EVIqEOr4DD3^OH3 ze2#32&y+gyxyaJ+%+QXY5NsSg9{eKoOjw9CjP8;j%cx(Ae~ny+g zdjii@HZM;p{l55C;k5kHoI2S(vYyS{kpAF7+Xt^cX!G#1hm+IiWj>!%o>x)uNb$bX zr4_XU<-xRYr)Ur5Y0WEcGORV7vzYArofF+vo?pDPeXD(G-UXgf?$xf%PMhNe+ZBt2 zPF#iYTk_)lEM#a;k>{;_RET^Lnj734a0EvLtA#!boenACMo|a(#Oi8wSS9J`Ba9Za z!8+Ccv@^+l-t)V!UfjfZOTyiRClWtT9FrJL*p|>S;raL)amBv=-nH(hoT7cRWtAx? zg_){+9Gw|%AG}tXS5{C`QB=S1aGp1(MOLkhw;m2l8+Kp1pMSqe+Uc~752|H+o!vL@ zUcpC2qbQyEROLRhP)>e8KvG!{eIm-sj2l=K9|BHTPb0r@5}WMAvo4 z82i(v7L7tJ4=WW!`}Ejy+zP&&!gBBMg);9r3&foj2-v}&(}J_x5pJhDxBR$ZVK zlTG@JG|za-eBAnkz0%R!{f+muzdWuuJ}cq3#Q3B;iF*^eSSbVCWX5OdScQX5CEPuE^?eY6#?~l9xO`4px z{NdotRyo)5_7=1&9#xuJ@lMso;Qi2y$X4>Y+!f{-tmeknx%Qu&o8772zP>5GQ{Jej zo@a!6o$CYV5qo#yTrDimo8L5*8=6XQ37519>Whkld^`=q?L%UyRmc{;5UvsF9C;WS zA-A9?$s&rJ9%IwQ5eBnqgn7Ru&eqlOj%%)`y059f+&@0zlFKCVTh1I_QL8&tI(yY&J}aZhLp4_nx8)>_lNAhnOh!qNc-*n z$M=ujFTP(RZO4PRGHPb8%-xk=x2QqM?6S`)9t(UDsuLL_7b^>ePKJ1MJ?mTcna(U% zyl0!Ileg5DM4FNGUJ(8^ z910(ZJQiITofmCE@rWAayY8k{XUl~Jl4!hXnrNA8d)1NdeA|7~)4}KTf9t>DZxS~l zZcg0dxax5q`HOsc-sZG&<6Ji!eQZgV>BiO44dFHIhCDDbFLWz#xAJcJ(b5&gl?5I1 zE@dCjEKW~*a5^n1ZDZPlG{?i~8F^Wab3e?>Dex3uD(zijS$ z4OdMKtxN4wol{(AT`BH^uJNvo&T7tyjt!{CfzcD^Iw(pv+r~fCK=XC!g{uh0dy1F*(mlZcD$L9-k%VB;_s2t6gxaFj(BL?78xu6>n6&91udy zBD3YD+AZOvw9q)%e8PIvp5-{>80>h=@rL8LV}#=k`#sxBwr;i*+d=D-)}EH%%|*ta z$fH_QOci!&chwJ-d2%>9S5_#pQd@pMdLp_??xRdpo>e|k+Nu*YCVVNXQXS(QQ`mgb zI?JBz2spoTJ?1{^KIQqzYw*SS3cN+$O79`>Gv1#(JKQh1<~s^(+pQfekD3gIu+W{o zu8x+MM%ISz2S!xhD4SI>qi9aS#Jo#6PiL>rQZsjEN?EJ3n&ybP8M!C(e#-Ayc&g~B zlA;nr*_QG}q;)?Qo*Uh%DB6o+XG3pOilvRUz&h0SqpiU9qJ5fuxV@9Tg}tNQZ*Ok@ zz*cS@Xsuz%Hmx&84Ckat;*-L&>;y#<($&FgkfIRpDJG@1(m?4(iBCmxf2E~5i2e@I zIkrm37C$w#Hw`qmvJA7Xv7NH-a6E9{bp7G(=lRXk%6rE9wy(4AJMVpu*YmD>rE8wE z#9nSSSpG1LHtv+V3P!E3GA8N@zZMu+Sy6VQB);f=e&4(ixnJeDNiMvY^=S6l?1?$Q z=X{vEHP2sQE^JvevN)~epRyM#KCbE$JQF?<6;&T=BsMn8GnSclo7Y%=w|2KpvK_HG z>|c>*B-0+T7upZoU$GyvY1aAH1(uHH+NJ_SK&mdKh^Hx&aE^9K9iuK)9#sm-$Gc2^ zLLMUjLTB)T@)^a%pJXcp3wc33ra|T(Ef1}o?7uk*k*1xKBDE4Avs@^vKH4-Kx^^EhS$U zy;nFPKRI_|R`;x&tTEXvdqmdKtZmtQa(>Nik~cYTcm9fkK}F+>N0zdR4pp0iW5OBH zW9mebzGn<~jYG|SEgxH7wI$oP*>BkAJ0>_&T{B!Cx$3yAuKLacj=$||ZPTq6%Z$9IC+8ysH^PKg5;EVc(6OS41Kkqx@{nT^YUFv$&dB!%(l4u@h{8~E5daCv1 zmErAykrke@F(ng<*5yCUX`J08yCmzUtdy*snGZAjXSuT*=1k2QlY1cd$GipwvkQBd zl$TDcc)n^~a7m<<64m|^rb=Wb6wqC|2Wq= zuGyE{9=CpNzG%!g*bUD~W^pEaR$ELFw%y7cc}et2W33Ug&;_ zW;f84=JY!qMjoHAe~S*6fwYOOYNl!z?{2m+yH@sdSzR+5WmqzSVw`=;-2X4>2B!m z;J)V?=^9Jc>_@gG7N>cuaTeJM)x`!vRNJ8zDN{)nY?bq)#gT!Lv620e=FxRgpIjg} zQZH&tgmE;pd#1LQ?bdhg!=3kBsyoMX!TZ2h>@SP^JAOy}^7x+dcj7w6we~xGPk7pq zR(8_*mH9E_MRAcfJGwe(uNqYGSlN)G-}46M7;@gFnbpedl2Mr+N}ri=FQauZ&{wV{%QTycG;flyhon3 z`L1QI-&})SH=JQdm3_Kxt>vU?gz+WAEa?^TE?cA>R;Q`S>R(D7Wr(~g+CDlcdWd4i zQ{;fWSIJkGv9;nShU>;S^Y4}kw#OXXoqo656ZF*djr6}8mlVG^ep~$a@eShF$L0C6 zeG9#n?oH0x_M4W+%nOZQiUZUOq(`R)##a7Rno?-V8=m`1P9S?~mOry3eNB4jjNdaJ zWE{+RH1n6tNm}ft{NwJ={7TeC+ zCpZQ=_Bp0HTeymyDbB`@x9qoVKU;sW{B9agdh}AkBGh4t>LK}d^k?FX`=W!%uOdcg zlD;xWMl^)}Zwz*t&Tx=Cy5p=Rwl$7xt}i{^XhvVht%_fe5TDp5aa5u$@l-;+ggNnI z+zej_?{Dr&&Ly^8<}1cSVt36DsU7H1@li?FqV{$Z)a_)8&@5 zMy+V??KAJOec#o$}Uu{4E`E=CGvCBsxA}SlarEywm zq#*cF)vn4#l~XIzD|%FHE$dsBP=2edPT8&E_C;F?%L@N2?pfBPa$#tEw61EE9OiS5 z;qHy@Q|@c-w%&HW2foMstNefXUx~LQj!M2(?X{HDl%nMF#N`PO+Bl#71j_2L zQZ=$-erZl|S#f!BPHE%v-z%3_wGY&<^3e6&Kp?m#@LS-^V2?<9ZI#&0)X37w_MBs` z>ru}-&k%P#=lk}J)^Dsyw%fLa_8j|F$9Jx?p5J^&{U?3Jo@VYgOeP}sh zEwc@Fyx=Tx_4bVQ^!3zm&m$lA4a%ks z?p}PbIV+O4swk!W*}lhk;`-iYaXKtt35TOK zL(f#UF8#Ie%ltWco$`Ln|E1_kiN9=p`O-=j@COEv4`MN$p-!@!W)w7@vNm$M-9ub! zTxQP!&)4o=j%(IF<_@N>jDMQOnpcpoZkuJYeLd-n^<0(CcO03vD%&ypdB<0dSDbfT zJv_C2L4Ui1%y@tNMgMZ|Pwwv>ZS5tN+mu7mQ@b2FTz)aHefB#UPu**Lz5L?ri@h!z zuid?U@4;g^^NM;^o{?V`zcc-0&9YswZML1ZRoJZd_w94Y!}Epfyz2(-nPHAM&A*8g zm3M>f%eoh?%-xXPA*(#=NY34SR`Pqry3nD>t!NkdBQ;sL%2KrRs#D8iSH%6sQqy=# zP1`toWBX!THTzNPKJy@w)oE;~a79=n4KUs?-LZV&XzQu(8|-()MdIeh?e#n3s{B>H zR=y6tY5tVBVR3!pT?rfF_ISIK4Se0v#k|h&vM@ffr{MVqKi+%e&bVuv&rUz{%cWt!+GFJK!{XKlYWmWJjDc+4Yliq3dt=YIi-yddDJ)Cwy%^D~9F! zfo-MZ@;}ar%Q#3@?BR#mncZ@$751pO7>bjp%U!j-(gtIiVX1VM@_KFauo%DmFFFF<-Dp+~<97#61x|H{nX6oVY5nIH7hz zFs@%j_92~UvU99Ma4aLq5p;~V{UY^{&s4TA zZkyXSea5|ox3h2UxHB#77fRs&tNd^4D)lV_VZe(@FDa z>oMz}woSHd%K+2sQhl+nwoFcrJ}UpLJX8&0ebaW^Sl4FXvV`A~Iwg0j_Ik>z)y5}n zPuQPOC!uj%55G0;T-*x(SKdk96Xeg2cXY8FG!D?_lsCv&b$jQHdspV4+I8&3BXv(U zxM03*&iSYG)ldtOq`2RmI3OuE`C{Vxz6H)7>;r9&*uS&4wr5(VSyo!7*h|cAQH{2% zG8I3X{rbbP_ny7e`Bu+6_Oz!m3-dRZFOIZjDbi@u7Hc>Ai}nQDOmm?jo2-vJhB)I( zrX{9F%wbcO>2=dmR*s}Cb@M=Uh3KECsW5% zTb(pBu`s??oZ`FTd&)o2cf_~f+r>M;9dZ8P+-s@|Nx8=!=G-50bLp8Uk4!!M-H~0V zre1yRVXuO1Wt-J8jz8jFP1v4Xx5ky!iE(S4%N$?WYuZ{_PMbFxw;R4Ocd}Pm&C*B8 z7vYMEKMLHLBhr@NdF^Jan<;lI(%#RSTT~f5tG#IW*?ip5+ADc$xRPw^NR!wg-4L5m z2J1RDL0o9~nqpT&q+g}!!Y*Z4qTIw9fhS;rx3wF3&#k?4gYPXAY}p z_uYOvYenIh&^^oJagCD>SF2sKQLSmowR}CC-`Liflg-(tEmF4dzM<55*A_Ll79vXb z(6!R?-0tZ;?=HPD=DO+TSGU`wZOb`XK0|IQeQj~O2KcVTKOH~Go8_2l*=rap9un?o z1Jr{`veun4qe_M6gnw96=^6bq+&OeI)FnJT`kJzr%`lmqKl%?RJyJcP_SH@{8$IDb!7u9{$a!Z9~)Yqi~}ovU57K~Pp?jxH+j7*J;mpe1Nsf}~JzaYt0V_4l_gJ}&G);m^5 ztbL;TzW*WWJHVW%zPFP}Pqt*Uz4u*UsRDw4bPFP)GzCOaK|xUz1O*kODN0dL1j`RZ zks_cVf)oX$_p-F@z4vT-ndE!ljC}uRo=KUx{hoW;J@=fL{oz|e(?hz1JOw^W9{gCa zUsvFN-F&X*aD}sQ^tHA#v;G0@(xN^WIJVDN3C(OCBd$98)cqnx%?eezG5wKdGw= z9T-!dWJ*;e702Y7z6@Hexuf{NU+I3yk?0uXng~0L&afPx>ywMyJRa!I?PLrieD7r4!))RPHFa; zom*UkeQtjr(d2%`S!12uGO%`f#nz&a?vBY7a^Jq4RWPMuX>+Ahp*Ro}6FDJabJ~|# zL(=VW-6H-9yKR`F7$&awY<7HW>1Q3_I_Qpf-FAHrO+||9Z|7{!7SBhnFWjsAHx)YV z*T(&^-zA&Vu4a$w(z9D`=e&;3WbH{=8T)qR98>?I`$O) z7Tumjt}pDtmb0z34Y5^g3m>{O^Oo$k;dY<9LknN7+R!%D+o<{`WNK7q(vh@B)0QVM zjSG*`gx%H8R$lkzdh$I{o<+{hj(FE;SQ;&Hr8r00``h+IOZ>h|=FO5tsfPqFj~Edj zp7vS?SLZjoj_T5!5f-ajy!x{+{kq#~oXC zdxxe+tIcJP7Y(|%BX{7<{2QxpcP)&qd7^ELXNK~Z;IYw5lc!_^XADdmk@RSc(bO|2 zPV>C5M%25T9LMa}>>oKNyJk9r9HL$4xMzRO5#k!@zUbK{v#Fzk&zbD8|D;^byx3t! zPHvZ+E|WX`l5NVUNInreDEfa9*TSZ$mfBX-9;iH0dLTFEoc-_OBXbTLPISEV_w!^XA3e<9RU^YnnVZ*x~EDMZ6NU_hduuIWjC;HQ1qSdK)&X%0jogVG* zT1H%2@1#fKQX;Q~9nxot&ovmzCltGGe|+9`wBz9){_1zE&)M0xqDzlAL2$& z+E<8-j2mAy-j<}bN>?e@Og z!|pl@R#dKUn(LS^zoK7g`ZKmH#g$%^Zb>eTKO42rm}wZH8Y0{4Iqg_$+hLt)&9gRG zU$y;a%d&?%Qk?HX8~=xItNc^-|AOY5oYCJV7N#xBUexK?&Z;iwa&~q|&J$tXuuUm4? z@GNEOS8L2nr+ovvuqpf z1BhLI!SQ9udo!+dSekRS^A|ZoIxfimJLAKYOK~fs_L|P<6wY&X zPgnLU9d)PtZ0_;GBZ{N#$ICDNdize%f!bTnqq;tk6-oQD%e(5k%5tt`m8X7_&=5T( z>{rbv(D!uoUU&Jdr`vWnrPueVjw-J!`XcY@oyv-LTd5P{X;(7fQqL=+2Ej ze(Ff}(HSQ;UtD;*r08sIfwQMBH1dh0tyxpM1a&#xX+>7w)MpcZjy8r()vWg?iHp2m z*F0OBxl7CRhS@bsD}FDDEBNE?p*x@74bSgi986;!+|f5A zJQ4k`X?jqrD#-t|Yl7WnS>JxaTxGu3e#LUl`icFnBiC*7F7{W-C#lqWd&tO$F|mIp z{*tQ9tk1T0Jl}Cuho0H*W_nZKPmGOghD-V-tuGnF4{-ZaD;iz0k6lM|mvi_N~= zDW!A2&S!Hz?3A7TLfV?dJF#Df?UB9PvY~2H`5$>v7uTJ5<4Dlq<;QBye0?)B|FeqS zmI=!Lh0TtioB2=IimtD9p5Ad@MtIW2n1$gJ_22vR-D^D8+`rf-S$dh@Zh5;QrM9$c zZP~WM=kmU|*E?@l{*Dr%_TN^6>m~Ue{g#NG2^-QIGpp0TNFEtKBKkGseodV})V0{qk>{PB~D8lm6esfH(S|p zTF0^35g8e&e#yIeRhzxLkP zdkKXX%Fot6(*CP^it<>o9(>dJ~U%I2*p6XIL^4brWx3p)Q^P0CecBx-g^-0OOf~ve3c~c8sDU;Xz z*lKW$m%k946Wg5HJ?mJOFXOk=#KbvKZw58Un;j?HRE=4+2{qr;w$y*r{G++jUgXsa zf2fz}M(9HglY%}CZVKsc+#BXKnIcuOUnc&NGA%tdt7nI&I<#j0oo&gSks6aQDq_0o z@3tdV>&sj7@-K`&`uJZ159b}7adzyj*pk@V<+jgsqhsomPju+ny?2ipoqo=!NePV~ z5-tQCQM~7NSV!1LIxhl`T(LB@FEv-S&Td{%f4EXsQjq^wUa$P;iyUQN)LGjWyQV05 zg{}cT*^&8n=JGU6@}F^&!UyPP_+<9>mWKMFwbN^Dbx$?kYMEj^;wtv-S6tL2>uYtx z_4WE1Lv*kMdR3iqk0~Gc)R{CXZDHoJ?Bov9I!y0So#ja1k~Ao$uP(v)PUF&=^wPQ4 z+$Z}V`|jwMe|JCq`}O(xTgv<`mt^yd6ET7#bAId6r(>7QDXB{niy|k525EA{#f}=s z3io7ZjD4bQu5Ft|ZrRn|*eb7ER^GRywdloyd-TgE$N?ezv)! zx2@Z)<(Bu`!!3Kw|1=G#xmA%_cBeS6FukN##o?NJjVCOR`D^r@BR0i7ko;?^H}&C^ z7ZYBO^cYUae{e1~Uu~RG`%86s^}*WN4L`JQwf`ipfc{6ouIg22Dn1CF9PER`n&;qD zx8B%ddMNsZga=cKQlH2;o4uuDXop=HZ>H`{8XNOy&`Hmv)~ zyJ0+zvV?|iMU^$qqITuJ4)-){H58iS*;nQ{XoAz zI4W#T#GIJ#6ON~Rm!ZwxoV_#amCO_Aqf(xYe<^B8*bmzE?uwR@dR5JUqL*$wc4g9K z`=y:X*Cu~m#|T;bZPo)MBBS(o@`#`=uosc)s+NSqO~#}ppipc>*^?jGb;xu)2@ zvh1-WSyNy|@@Ly?Ek8Hzuj^WqR^_R%RNkyHHncbASPIc@ zA>vw4u4=vbtSzdgu5N$zkg8=>6Kht~hqTVJ&G1CZE-5}%AJOXdSM`tUYqevv+q9Q; zV-076-w4|f`F8BE#M3D|(>G^ov%)fOrA<$6jGrF;LHIkNPiv=(E6nz$)P};!A^ET7 z_Pn|3`pp{)@3s~HTUlKfZhc!m){tbXi2XVB{fxHM?Bt&kYh&xe9}aF-z2zJ2I_y~O zc-=P0(%sTvdEff6HP+hHzNB?w)4_&ub^4kERoiQJ)Ek>(+Vbq5`pY%4kk#RrqtoMC zh{WqxW8)uxp7fVL{<07Ta{C5K5YnZJ7SyTc}7;FctgEQ+oZdpJE>J; zh7z<2U4lUw@?zMx5nsm?CY(y?oBn)8amJ90E@{1zM<$$&*$^?@IKYsu=Y_U+TO5SZnZaUY;@Gc)n2Iix9+`$ADbR*&vuU&zS6pb zkB1M5*&a7B?x~oS5eXrE)oXlxRb7ep8Q5HYrB2Y6>rV#nGOmb-#tQsB*_Jvk-JP~Nbzky@gi$f?Mw|}&I<(QS zOHuE3SWdSGo9EZN${dBG3O45l7n)03D|S~UHso6KeN&Vb`b(xUv2$W)#iYf`V;zyT zVJm{hs{i!g6@L)l_k=ow?5FID?DuT1+P|>Rx9(^g(z2|%uwhGGOKnlTzOkk8cx$Qs z2j5=hP2G#3)5BXL_eXyky+7h?$Q^BGVXxb0JqZ4+pgOWDs;aKKynbEFH0y4Jx{?X! zReD{!zNf*V>!uyAF=}?Jd#X>X3$*Em$dF56t&zK8yCuAkG%%$(rBBM?qy>pf;$vcl zM|=}D$2c;iR{f#4!SRxPfn{UE_KHCzwFTSqdK46u^eg|pTwmAS(ox(i__RC1R!1+7 zDU4~4O^^L2vXklW;Cyw9tOn7gW_x~cd~bix;j$mH&9L`&9Jjt=Ufo*KGOlS%y{qo~ zhUCV=#{8Bn+d)rP`IG8sL%6YbctwOcVr2M7p_%$L<(J}l``Wh8n$FazYsOcNul`?M zVN-*-(7w!bz<*0|8+$^Z7`Ev5>ymU{&3?5U+QyeP^R>tH@gX%~yCN^d9E%T1%1hR! zYEyfsv?n8*lwcb~YkD1TJZvBHI=v+6Hd z)4hj;V}@VC#VAM2&+(5XOpTou)oOY#_*M1y!V38+-&gJ)&T&qUqsTtR@u9QYo@=Qx zn_+`%Ye=gfTJNbVuA9)Xsim*=E7#M0yD~!meaHw?pU5eZ#ioc*wZ5yellY7M8S{+B z=W2A7qbhq;52&5dD40*$72Yedx70iJ+k$!rUk}O*QtH3Z2x^6DnDSjknDV%Kqke6O z!SsD(@7Q4p*OQbfBT}X%f0no|{$$L@Q3mXN<%RtcGF978ZV@fsLZ_{DQ*A~0^5R?h z=L$v@K3ce-U|jjU#!SoCuI=(t!%5TP$TcyS;-@AojhhlZF?>l-je3kSL4eJ;Yos&X zdBKt7403(v+UAG>Tvk{Xw;gKQ-uPR?*L69yNp*iUKG!zQdco!L{iFOTWD znybi__mxkT&lh4;UuvHX>TbLj{%!Qk_+Hi|p0XL6$5+oTQRVl~o17PXukiN%yg3!`Hg>UC+#6M|h9pKL#%@a7oBVWA zRYGp8J6s;TM_Z}dB46fx$7OPMaD+O7ouRH3jy<+swp{D4?O(M7HTmjWYKyB2s(04j zYB=9=!7|FV-=|YOYxvGMHry8RSHzblZ%CBkOVuD>t-Y_=*|e{2WKCGjvf3}}zi8TS ze$DZjH&bp^wrZY%9d|$dc%7iRsC-57rcfg9Efgv`s^z+0gIbNZA|}VQ$4yLJm$WNs zcjEAb+i`1SF2i0k7*@nn!n%d*(bb}dExr}5GvUH ztuHuy{?~Nh8y}1ME$+|6+essnCdPjl^}5k#7@<9<*zP~$+3xD;R61i^r(7miw(|pr z-VtNFVs3Al-gKlsv35cA>FPzb&o``V`PK5bbC2%{)hWZL#=+qiBGyH0F})v}tDmLn z=ZkgJx1DKhuhm!oUiEkNtF@~do^4%di}B>hZY!SyHO@191}M$Yf2SF)N>KbH*U0C~ z-w>jde)SUln<4kY=0#S-yc54W;h%)d3DF4);;Le%N3V%AgkK1o6t>hj-cYMdkWKgX za<6J1(Ri)uV9AmE5A#nKROQ#@tuG!?<7qi+Gy2AB;zB1!JQVwV;?bm=iTx9v1cf^m zyi#XYb(SCU&UBr3gxR;+w%cEIOtQz=B5a@7E?Uye-CHj-w>Jt6_v&*R)y>0OBP=Hz zbG!@XCF%mh%+Nltf;tJeU44VT(zMF|^t9L%<}uBN22btU+Ld(;4Yuaa?RNVj&yW66 z;ak;nnpVwS%_NOYRi*e={tkR~+>#Z`M<`aS>a?yPzj0)QGJ06-7jdKGd&d{Xorrlh z>ZJ%pxFu{{Xz$R?p%Dx7F*pTRzaoge#By5iF8$BazOz_+KQL1-kJ3OsUv+YA$iv1PGBlaI{|JZjp zJ>Eu$KRlMNt2~}QZE>$8HVfEXp9QA@1U#P zHm&{jmUWE@4H}$zy4+OPT58$lSml}TKPw!@>78G63hdI_G%u(v%6gn941%ALH8PWM zN3l^AuFchd7i=_kFb$8m6S*y_JZg8;{HSS>&qQ8|cq`)Z@c)@^gbxjO8E@!+P!Cc* zD}TZBkLBN{&DEcjo-0W&F%_@OKUH|SJhFantH(CnSD(l< zgnoe?(~+vTLcMt#T}|Z?sNn&oHlVi!x`L$F-}i z-`SsVo%Q}Dt5Xb7_ttFF9M}A=iB*e2lW(%8#PO#!x_xw;r^V9zc#FKPw*989%9-R< z`ESa#u$FPDLp00OZ>TC2t@1sxyYNsk6|oQf@Sc#Xs8Y|A%!YRaN_(_R(#V>ZezIULlr77LUt+vv5S&k?KzyPPPtq{Nb}IeY!58-NKV1=fEDl zYeZIXsVY4!;v}G12pvGs4~r7HnU%c5OL; z6J2{-bZsT=EA1WK^F^0`uaK;ITeAj=61zHHHA68`Ug(?T&2{Z{MA~iEM(cxEBM$%< zm;ffP!6&ikYHZ|@u84tQ9&A!Mk&(dhICgBFF}3EL809ASt$ zi=Y?>qjp6th%!VigH2O#i<%ev<@9hG0pcfpU-Q}QDD z_dnbHwSV)YjhPKY8s2L3H6^uWSX&$uJbQib2zONR z+SR%N`fa)wwLbMTsu;y2*?I9j&r(;Sb39IK4YCK@WsYLU`%Z%(18#Y08o(fM9 zEQ2<9i@h%IZdg1$BKu6R<^D%uvm)2FY3sFV+Oz5xRhty= z$%Fi-ye5y+^_Z*3dCwW``o^`)y}%ReUFLOopArSJr}um8;JoMF?@Dl8a~^~}ezf~j zPnx*VcUaa{aaMI#W79PlE(iAx9d8T|+Zooww8xYZJ|g_x@ZZ8;h)9ckHS$Dce&p%M z+u^y!t3fAqjp|?IM?EIn+*WPFf|{qQs>@SKJCyVy3>z)bX zGyXT_A1fxQrfHVw78$w*{~VGV>Ni$}9XCx5ZwX%zkrNpd^<>nzs1KqP(f1-#!uy8y z3A(I1tQskcagVhA&@#2*PVL3&Ar)1nnlfdjrsl!==bAL;iM9$?y_ks=wN*0=C-Pch zfB2L>RXNxH=W&uo4GF|*+h#xQh;miBL&f*~lZ6n~ z0Zq7mRnV=F*Ntn!dYP`_)UDgJ+oUxu4pWEK87qwM8T%W18$U4)4t*;4y1oxibO$Sc z^jq8`?1#-uS~8p7sQ;&WV`XDyOig}mN<&MN*8ID*-q}msB>zM?NwZkD$`BOvG_6B| zmIRGA4AGC#J*ay^H&$1z9jmp$6l0ynrmj(qQ0j!M{*S~cPqy z-n;$jmV(BK;G7z(zpk2HbE>XSqqSLKj<(HnZt&L1UR65P2edhcH-oMPT@1<(Y6(gY z>S&0@>7d`Vv$R9Cr!?nry1Z1iRCQQ+Na4hZIfF0Jd&f20QEq*&eR11rjK#vHDNTh< zMa_#^$D6NPcG~T(G_lG5rSO-sRlPv_hwc%5l75NqOYOIsvFaA(NX2paGct`IPF1`! zyhl9Qo-bh!u)`JaI^gW!{GX%Po^7wRUAEQQl=dn1P)CAux$6-RcB=j1@_vfNs^2v$ zbfXLhgTg{uLp}+$gg#(gZv4pjvGF_5%O}-QQdX*`^s+e zHR1!VHfu@S_~wC)C+Zt&=hqCYiK*KSo3rh0+17K8&7Rf%XB1Ds8Y@RX+n^58;bhxQ zeY8GBr_;Wt-lj6CGF1i2@03fGbClmJmnqjMWy(XsOY&O(FkiIyylVkYT1Q&?naf(w zv^?Fiv}H=`%C-h`j&-|zj;n{a(D#`9RmBvQLNit?YKye5X>V&ffL~n;ON%$@=6PhglEV?l`QjB2S}OR7_L8uezR3)k&R*qAA zB+Qe4D0{`f-RBfv5RZAYy!oCDp0S=Go~fQmp5C4q&lJx#&pl6-r#ozguX!`XOX6aj zB8iuU%2S0|iZjYY^*0)u_EG&yhOdHt3EmjeCv;Qjwa|vp!qB6kgFnEU`da?STy zy!}0WUEew`*|H(Y9xPkc`L+c;kC*qlpzSGTvwz224@0Cfu}fXbQ-ITbB%w5+CqXuTtO$Hsrf?p zhITUe?YXKtSf2k3|4~L?Pj94K=`6QpT2+<-?P6PF>!{YeR-O5o_6o~t+Zx9%SG4!K zuezkY!%zZW_TIwrOcdUhr^vqX1&M9$IM)ToHAsARONOPSJ;!p?ve0_jcGEt< z8SU=s&45=w7yLNAs_3WuNa<3-DVFk6rC0HlLZ>){^V!K5muKaDzm;ZhIhyg z@GW^39`8Ovc_ysHU*P$$gRBHTXX!`R08eSd;URRT>=Mpe)!=+QJZQm>y9)OOB8Qv@I?_F`O*PZhnZ`&a$*gvs1+gCU`I8Qo%cWFJVy}QJ( zeV_X`%f6S76g2EWtA8K7X~qawg`tWM z6q^-`6(1>{Q6wpHG2%A)TKQnP7ZL0qhhNfa{~z#9GzGpah>bD><^i%a#8WoV2<$3<`z9R4EIMv?f`rY-b%i)ycWNMq+;@Jo} zXSeTlf3obhtU-QAz8t<3#{gQhWPhWlNsuug@-2YBLJv-@{sEt#@4)ZmTzM6|I{qvl zgjw4F@4B7*IlkfI6z_K)mFFFIyXz}Z#SN}<*Ms0NM|))6E#AjPr}!y+HZJv_ftTt+ zco1gH#H;>q{qOo8_xFI0hI#ls2i{Ff{6paD^gCIdOoX4+BAE>SI*-dFI1O?W{( zh0h8>r-)VbRE$!L#r>pWqGGDzVTD@JD*P*~7hV<~hhNqL`PcGg^4Bph3VEF@4=eI% z_}CTUnfGaUT|Mf1%9kfD6CV~Ey$ihk;KRz|Dfg6m>>k0J&`KrZ*I7zzAJKk&c?C?D93H3C&%iQf)TO&Q6f=ieP&CT0lrT7MXh@k-QrGh584;*E5Waq;ajh-*y8=oJIy=B+soU>`xIox zk8zsRf?gaJD-bZ?b@&-O>N^RDJndWV8xNnpiM|4Hk@$u9i8xMtL>!4yw}?fceq()` zeGR@T@HOr5_kq{pqcT5y{!WBfeodC^xB9yI zM#GOlvgZ|dg!{7VglmV(FuJS)Ed-?VKw`4B8mlSj)Fo4% z@^X1QeCfssU4$ouslr_09bpO9X{|$a`$`rMV5=Aan$!*1TJR7Abhp$a1R+I&P7N`01;g7jOd`nCcb8!xA zllKsOgVuR{IQz3m{6jo1mSOeY5zoRy@LKU%TIGr%fazTC4R4{>>rEH?h!Ze2uZvs7 zeeevqRs33l0=zokfXC!#LGRAW z%4JGpZe+94aFZp-+RPaOD?p^8~ z4DW`Quqw~PQ*2-FYu;aQvacr~d@DS3-xW`TLn{?`h_m3qH%s(*|MG74e&byO{CxoW z)?D=bA@p+xAfXXZALkngTsQ(8UX(8q{H{yP7q5!PFn;^QqvA#JhFB%)03%QN=7Bf9 zReDCGkCz)u>Ko_PUy=XMYAGWIZXMc za)a`)@`~~QK#bm78uY5lNPLKG``U>$0 zDG>f+2m4Gu3m{=GeBVp}G;|kLqT3rO_QVO$S->6Np|`E@cN`C&(k7h74g!7nS$tD` z6wu{?|A61T-=db=-f(d|eBioq<}ei=J^NwpKPEpfe?<6MsD%gCPKv>brximK$qKh% zM*oY2JfU0=h0cnZ@c37xNL0S6{6$%+3{`bfrK`HAI;x^o`Jnw1;TP~HMQ?a5enV)7 zclU1cLg1AUc;jB{AM5Yz5A)ahPGQyl&-W#~3BTs+30Sb8x8GpayMc!7gN}EHceVE| z$o@aTv!@l*Yczbh{{$JX9M^TsF!aj4i8xN-#G{Wb9kaRB~5iswCn zLru6kVvIf#e-*360pQ(?@ak`YcgITfbvyh{cY{CTSAn^Q3rSdwx4|8+N1GSPSIhsD zJK&A?Yf$Jc#cPVa;6U{_AfqyqE1 z|XL95N=rclXUS(E$27cmFf}T7H{4?J7BG&dRfc`gqb9^89)?m-- zN34kx=v@o&QiMMnJlQMobNH42N6_Z0h{@qbln6%uW@L{C5HDf`xWK0nx8g0?d$Mv}xhfp{1PAh-SmsrM^D{ao23$hHr`14nPfWMBmMR7k#z0H2CDBnI%(ZHU!z z2JuhUf#-i7p6&yAUH`E%>n&xW9mOv^O9zRHJS+;>E;aY!k31OyKPO zkgKXt52K;p1^l)lR*DgES{_6%CxCyS0gvpj;d>l<(+9H=i^wWkM3#}^)?!XV1GAKY zHyw~G0@1dVh~{oVTNtgW677VcF zjnfP8IRL4i0%San)%_SCp*K=@#2N@e?`4RCz_?oMJ)`b0<`pA+i-0FB$}yqT6s)5( zd@>#)p*sPk8__yHdLhM$&%>-T2GVV`k#Xm%P^KC1(gL`w!*50+XMB3bO>YG}DNwT! zvTj$*QD3xg5N=+5(5?imod}Fn5b9T>FDCp?Mhh5^j&TyR@Gl-wgG^{0XI73GG$2P} zV6_v%pFq5yX8{f45MO32ddv~(6`1cdq+;nN+`Kr_G3X7y)7!95f;sh;#ViU8;_-|568F!kIwxw9^jAgAvJ?U7J52Fpwpe^Ijrl-)pzUX%f z-f8}W1UE`!S<%27oiPSOF;gRfCC4Dw<7ho+tSfpiMV8FKcMf9z3`VI>U{=Q<{?Hht ze*`5D#yaSV5lTdlq5@+G$A%as#^mJ1=$z~w+it*r4dy|LO=k@BJ{+xJWI9HvQzM;# zJ~1XY<9wL0hs9( z#BzEW_-7(UVho^h82Z`|z3Yil>Wum0x@5deLRkiWWuvbh(DM#>$4@C{CZBgkKfB_y zGxGL98H@@!1lOY&i6>DfuMxm|gYb@PBMxm-V5P$k24Im<*^BT^csFD8^_Y!V)Y%#1 z*Dp}gaO8aiBm7w4lchZp`1J_hvc+A|B0^IX#)KoF3yc9FRv#FNFu+ncW;6;lCt<7- zF}IA9$Ub(#$S}5JFSLBXe{E;<%Ym4`K`5UwG6}C-X%Q$}hIlQEK3@ntAVtP5#A;>y zc48J?pzU#36^yu;iki5B!qBQ<%rhbg0DDWZ$r-PVk?R89PymgDl0> zBOkz6eT?aM6}}_RV$X(Az5hmpvLm?u!moeugi*X1tNK!4ei>Ps6q<3`86TS52}@u+ zLB=`f#fasMxh}~ z&H(f>ZnGCRFLG!Wj1ys@9;I+L^HDC#XXJNj9&Q9$c^kEH+!whyQ z#SvwEQTB!NN(g1tQNkr5mXSs6fnIUm`Gmc+Vz%L09G`@8Y3A-n6P2QXviJWN37avp z8IQ9DZ7C1HTw$Q!#po^XGQ8o4lS?6fWJJ?;w1O+2?ePR^_5|v7qaC~$Kb27-9r%>s z5hxm1gV>A_E&0t^lLe?Jp_MZxI)PmE>c|XOXia zPG%f$M$si_9fXVJN+Y003sv~94z!Rwg$nf=aqEEfSW_rUAVuXTIb_OliTD){jGT;r z#LMxhm3W_Rle^Nj4 zU!4Oy7^8iYjx#+Ycc$Qz?O<$T#u|=A*{oZN7tG$0pOrWQ=?zCL4o{^vNNtKlI!Qtx z!%~i8QY%XkRMQGgl;j5kd$tgj1FhhkVRSxMCc7uB-@*xEEfrLIIPERB8nD`|)3e z70Fr9BNf*Sd5m=QJ|3;&xMl@LDj6kHTA^GOg0$qig986JcN`gx1Z!o?XvT*Q56o;x zpv9qRV+x)`qVE~_PC(zu!*IMQ|7PGV=b3AaaD&svD1&f7$w7;h(WsAQkq6bFAK{43 zNB-Xh4o?~Afq>pqQZk|CF<5U;Vi)ARe*$VEmY;-tH-Rx8McQV6Hfr=j{?0;L2g=f; zSLCk@D2p7U8lU8+$n&ZLBPT`WWgJ%{TFwH?$9QW));8Yn_M zb4YQ2)p$yLN1ltEA?Jr!i}7QLC5XjH4T*J$*QAl=Di1^dIVR+lq|zy65%=1G*R8;c zvTpF|%v&octGMT1lHx9pHu-ahK7fNe`<6oEJHRN<1Sc zL4GYC-~3IULE`+%@RqceTnDuwO~}dod{6pH?oQ(RDEpHepa!KLzuC?zJRuKU`2Vj0 za1iBqF6koJUTO@a-f%u@aC1heb)a0qKHYCETSk77EtdG}I+Rn2CycyJ9+bQfwMO^; z>j~?wL<&lR>?>>L2uP)nqb)^$rHg$bx0Z+8{FJ`QAMs+D)P0bPzlZvmuN-AjzGS55 zX0(-jXg%s<3rlfvEF}(C8U;qCrX;|2l7l8sN!<`fo%6-^F?ShSLMefK8fSvs4f!By zTlh_VloYd^ZDwm}iNkWpZ?jf%ekCZ2{bvmH2Beq%G5R>mmim5wZl!WLW37Rkk{s6( zYqX$mlsp&-owF`QLodcRYvSmaqh5)hCnS*1zwzIQ5jx0+@>w3<6$N-za>92p3X(KH zZjvRjMQlAsmYg;DQgYI{|Mifg&haY`w1lus&5acQoh>J95>}+x?394XOG^AT+?4?P z5LfAeb+|5V=n=<`HE>qR(UzfPt}UsQI<)0FaOXv|fthkc$EF7UvIklx#i*}94sxs2sEvFx;ie9~=3G!8+Zw#RmeWFjr_&FQeL5)DdAJ{vAl?^)~i()UsOkPzVa z$nR!?8zV=YiJX~unv8ekdW-=|&m0_UNj_lT**YthZ~NT z#i2a%vgCEhv5~9hs7Vq7OD8AH@+F=%3H(<&(!`+-@>tZwur!v;RFbqoI3Sln-3c#A z$H~$p&O;g-awXFIbL6N8q8z8fQ;s+J5Ar|Mrc%Nq%#ebMfFSM<_^?u_MZluxKd2lZ3bfN5v3|rPn*cx5IGbbz?itx4^`(JgB>rs0=!qCr?&V0ZRRKEcz`whgGY{shG62O@nEgnMN;6s-2Km5)@$h2)h(W1u zA}wHjjRES#T^`Z}(g7FdRgQ6xWA#u2Ps-Jd`fNzqh_}qi`fD+B3Rv6`&IxJ6dt_ujZ;nFW}N#xMRO zMheC4fK;bL-JDJ00M@5MeId9>O}Jm09C#Lm@=4u-ky;u>0XgGQAEibWQWEcQ$0r*7 z5>YO(5V;dl9a;!beq;|R*Q$`3^eYjqAZDk|gP1f9Pf0bXX$nTa9GLq!X>JGBthGZ4cQ@;MvwWUyiQ($Jcu4|;*m~+k|IzJcWw#e zq=9Uo8t*!wuc4^1Bhpf<6pGZGS3jVQ@G8xc57>|8vDeh!ai1v;zhY4u;YFfj4qzia zR-PQKqXw1QMmchE1jscI3W>dxc*BypL(JV%(pn|*wWCfoV9$(o<^ql+A4gu7u<5}+ z0q=;h$Q4r-Ck7=R)dBA~(Lz@sr(VW=do`Xlqct{A39kMUU^_YRK?Q!RV8L(4H>GZt zQHz>cQZ@c_w~dmn3s|@Y@xRr-$;QBtJ^BBY6PkXG+PAfHFl@Aa5~J za&JM}bD;E0?t=BRWb!9$E!#*9Jx`9@04?Uu2rWt|{gE%>81a%c8`K?8E~X7dF-ju; zLHVD%P~6+4q$zPEERp&EO84YbXrI7byeLg_FSQ0Yr62CHawHm%zZg$h_C-7?My-FN zJsz~3Qsz^#Vp#J(1zVH%5xIROc154?@9-~^-SfW)+@C1hkJL`&xr$yDp%*R4Sq#pB zw66qI+zRL@gIrmGZ%VzA)`7Ffy{mepEy8Cxcm%fjHvUsLLp=p0(`w{0qjl^VWoYU& zD4~`k58>L4H9)*gtWQ|tn|#QsmjNTRC8+`|%0SPkwd2Yo)*~(E*pNG8odu|c8ZIYN zQX-PLVR>MMHQ^04PuxFi$5@e;6G|;8m(m|`F7uE_=4zwF$k`>-SZzsTb_z!8up5d)9|ClAkBxDLrplS3d@GoWP(^d}NEi{Ma5Azdgp z2;<;EJzAu+VwDG>G%qM-M1U?(7cA}lQ}0VXqr^i=yEroBVtqPbHPTc``XuHTfhpqg zoaIIW_xM2fsS%X}gOj3${)an515`kT+Bnjr6{G`{3Z)$l>anTICEnx?3b_>0i2FM- zl&h!-CPgByXD;#s2}nuafYKs$`m~lHjm$#IFr;I@$U~5ZM1mf4z;D_IQ0JZkyemnf zq{*akyeMx`Dx^f0iqg1izx!q;ty9|Mjsr{Rf~T|^ zdJuPC*d#oFCppO51*xRn0+!u9V2{uZDSP7t8m&6|qFmZS(fX+ea?zrO`w!gRp*2QN z*j)??SYQnN&&Gp$KV6W5y=2YZ0u~T`(Y9eoL5q`qD4%vH?31)_)ICsNSJe0*+VBAW z^+ZnEsB}Y$-nhEs7i;T*=WI#0!29m_WSjYq^>zzKMoia#gS_YHqk!L)`_rEJ>q7X`Sh$H7n^Cq&*Gd2jWudYq-b39S?Gf65mNZ z4ND_Nk@iNUeN}znA2Ai5^5Sj>_e+>k+5;p9F74e)9JZvXqCSWh-*7jEd#BV@Ns`I^ zePA)oG7?#N#)VfiV zYQ{x7QA%#y`)2v%i>QC3wqDXnkXD$Hhk8hASZJNZ-F)&{+@X*xJ*Z!%c3ILzO8Q0e zNu&r&%QBhc{*DKwUCAyY$AX(y&tB@=(xbIOMXa#vej*zrlz)|Kd3P+c{xzEE% zqgfW{xnxIF66mv}rDClTA4GofCdy@g)o6o&72~s#N zgbePRk^|Yp|qnUwSgKeYW%5b zr^G^TpYY7_;8wpm=^_iyIo-UOv9VjJQDzLR#M_@6tllJ1N1 z!Z-KdQ_oM_L`+A_Ld_)GB;h{(XFI54rB?O+CB0`FDL->d)^yU|3N3WFcPr_NrTrLb zXP1~%vJoPN==cisuqMP@37$n;YYAht10I6Nfao=WyzqmUfaR8FN3h6tw zDpEU1fk}gD!6EGuuvFH-zDZUi()jT0|D|PLnTq+imqOlvBY(f2r1xyKq{ZZzbKauZRCRgDgYZeUM7yGwEW<(){0_2ew98c`y(j9 z2}`|SH>o&fNol8!yFzTG#6L*3XcDw>4RG&_8W~DCv;>L-??pQs?hsLvM!jAr zR`C;IdHgWScnqZsgiZNkq?~~hOK-{Ez|&!N#o=6B&t%2nW*2=LN_VN*UGCuM%dsr8@W2Vk{qHd;Rkr))mN382?- zufPeRweWlKJ3J}umF2>7fKi?$AAytYbLAUw@+}`{{-SWwccX9_r@UJPt8fozKYtZg z3u>WJHpQyNFg%vY>x7fy5w2US^`TFqgt5~@H`a#vzwO|CFZWV^L%+j zW1?-bxK};Ncq{&3_Lwe%v)_%M7V^3LO8fen9%YZ0j4qyDGPQDe(?G`&#n#Z|=!arn zil_|T8dRv;pzbErdE=d}))wnV`ykhwp2Il1Ioz|sHNp9tGsu0-^OCsTcS$x{`K(qS z6dZC5Ui8+h56iz1`?{w%imekZYc1h+uY0-NsQoE;O4x1FUDG3`m0|NkOAQ&C;eto} z9Or`9h|B%y@_&Wd%0nuR=1=V#`Ywh-#H~)#zN%U${EKKoZ#f@oFR9&A@a=Wym9Dq# zr88TSJ-5`CO#_p=wRG_GwoSD;o z-tK;%j}e?%7gw6RH(8ocp!|y)L|%j2MBDmDId|AZ+Yx8Hw`L$cm>(oUl|Wc%DO-Uo z#}49g#3SI6?We0T-O23;A{iN)?tA3v>YeW^^v?|~k7hwl$t&`Cs`u)#DhoeM?qYJN z9HKWcW6?|M$LhvrN?uAgfZfcNZjpYLPL^q)IOvJ&sqCNj`h z-n>+OH?IbIE3aE&UM*FF>;~U!hbweoZiSARRu*0U4Q1Z>KIYfFg3-nv!RdIC(w|T} zS)O=FeN@quet`Ul)(y0DcX#;gNiHdH52_uo`oH+M2eyPqOWGon@aE)Ks+hs$O%z|{ zdziPFSyB{A_v)RQ4!slcob!dlg-|Pcr?4yjWzw9a7x9dyr81rSLp*?|Nj{5zhsr`{ z#4FMD5*E6K%*DRruL+2Fg1nKO4xjKTUBfK3%TjaheOvhT`A?y^g0*+J15sDgy(&_- zOM|y{@~S>mpGP{myOll2c7E^o4gc{ir|gg3z9w3kZme#dxF&Ib+zG+R+`*>Fo=2Vs zm;0)C7Ptp^MtCdxw)!snLcX*94&efc6uU=F;7%)!^AtZz?xF`_y(L2EKkqM>%URvC zGLRE_0Gb0^%KNBx#fkA_;$Nv72xqtj^d{mgS^y1~R*S8S%nJKw>Q>U_mW%n8 z%m!b%@6EIFiWJ6D4=20MzSA^K+#X+BS)Cb;u9eP;t{1z6+5oTD?!JbA!TH{A1&)S) z1v`WX#xme_MJIx=EqG=NKCk< zS*&cY7{z|4d<2AFMIOr zWi7eeahVk!R_v5iS9O5(<2LAZL>^?kOgH-ru%wrU9l3R+mc`x(n5&FA1#^oE18!{HoNU!sYm&(3brlaT~5G zC88&Q?a`oMkKo$S67flFyX+J~;x^)6O2vGj24jn&9o;(&;gU(Y3o^4mHpx(b{PU|= zmm6-(#aD9F8Q8R-nX4gFL#;uediMN++281lneX;~+Vy)#sc5Sj5y>BFzM?P1RB3$D zTU9c<60Iq51*?1OIT2e;%TNn#Tj|{G{VUWYHX5l!i+ta>a|yHKPpUS`1!@P}Fxon> z*!{u5JC?a}{6C^o(V2`~`A=LRVMWsHr0oeN^*cVqcA#cqKcPMnz4$3uH}KIf1Y3j? zqvxgB@P6zLnaUhyFVHF2XR+8G`Ex$U_ie}foY$S+H2pk0f3)Kj_Az;H-5bp#t=crd z^*?2@nNWD`CEvaedndde_O9Xg#f1wk=R!X*TKJHdRZ&*Slk^Bsfrb+$(E3={a5w*O zH{rNvMXhPJE6$nTZb4=ABK&~r$~!by6Jv?z;@7ImIF5))ZUuk1kJ&3*J=P_zxxs$Y zN5pKtYW&0GX_bbj^Z~NV{J3VI7&jNy$5O(d{1d$QJ*&K>zInlskzLSCVh!_>Tg}yC zUSUAV^KZ7MmDR~D{nF)4>NDZR%g>5Gv9MGnOZ7BOYBRmn?1pcvT;VH7Eapo&)jk}4 z+5VN{V|Mm8-E40i*->VsW?=H&ie$y3i3O^~42z;tqnHs)_640QEKl^$bahN09J2y> zl08Je{G_^J;+zUdC28_D^=_s)bUS#)UDMge+1Az0ljzR~BeIt`$E{XcHD}}3CEQ9l zozO9%Fs`C{w!%y{f`gF;L8&*()ydt_o9ACHj+WKMZ!x3-R@`L1BJS{Nhf4b{FZJiS z&p$IxWQ4wSD|l}YAtw`^wca$G+^ApOD%JX{GZ3G5o$f|X>DP6i&VNbzb*=chWo&Q< zg?yNDs^&%fi^TM#SBZDx>j9=+lo%tk zhyU@la6fY`^Ii5w|Y&Xv9up_#Fz@MNM5TddFu=ant_4(xGqJ$?e|CA$Gw zanr=@;>yUM*n8Pgzv5Hi z;hZf?0i4m9$WLjV@Fus!tSYZw^e*>G){YDqFcqPD^(x3M{N8PO7Wyr)7X(kWm%{+Hw;xUD^q&O*)- zCUzDed2WyYPt!^LQ}t1mqI@fFOf7@^N7e^V`JekA`JV?nitZ>Wtto2=eUf3Z)4?ka z&QMlt$;te|ey;N=?fa8Lwabq_NsQIJRd-~aVDRHHS0G%EoMc)q5U`m%7H>rM_vt3iFG9i(7BJ8~h^ zGO*3J4{+|x&OWwG)3@>mrRPi57L^q2$w|$7TcoyDis=L!<7EiNr3bwy^g?Y{G*C&N$2LI}%hlxsA8^%LQ{ddbqWYri9rE3bM1(WjH zwca`T-O~_QNKhhY!E#kX( zYAyr;W3(LpE0!9P`&PUEwGXlmx4gFM?YrG?0$*Z%(LI3ZwnF(bPMc^;x|gU{&*ciR zQRq-K1JG{H5GpK7<^Wz&J7S5*9deJ{Cwx}!Qdxw%if(L6@;90Qt06|(EAlE(X5UqQ zA}{O5y&vq)!I@RRMZYSuEv2_TeQ`_Nyvn~Tr&M~9_*HdFc~@wz7)I5UeGk;O*4GA# z_veq#dzDj^SGl;3_L2<`{YFkQv%z_IRy9DQ(;U|HRBz&A%q0Ab>{z5#fb?{B?6vl> zz-HDa_duc!x{EKQM$r9$TkA94qq?b?8s9Vin8qc@IG%RkjnHe5LHbfU3c}HoxRF>u zbiwz7TxlfjWhyCp0l)Hg)O^|W;7=!PdR$hs0^hMJu<) zwMnR*G$eUqg>T7c6I=p#TcJIniVmxxdx<9RYgS6m$NYrS-3G`}$zKqeCYy>|*~7}s zaqSW|#AmCEgsO^3^k}rcq&)cDQ_I=NamsPmmEj=+#i9MtFH$A&5oftwio^Ue0TZ;! zPMY89amo(zA@oM#3ciylC(lres61jX;Aq>BTj)?CN^YPa>J|B%TmtgU@nW*KlPyDg zy`*w+gZu-Tt1^&`t{*e9rWx3f3HN}XOS;fnRVn^yVt$3cDs+iYQTC??!Y4vOM{7gp zq6s-^*>LWs!f$^9#y)n^Gc5QvnvN#2XN29F`f)~e8&wVE20}Jqk#vwd*GJQE9AAg7hTmavY@upW z+%KU}-i01PZDn>SdIP@wC}kbtGWUtLkThM5{Yp2-W3lsrDjuuTWp|k?mKPVue$V?d z`Q7u6v$K|$7Fdm5P3TRyD`*%fB1iClCoW0(RP|L#*Q6%uf64zrM8p+1;Q4IdYyDwd zp$(SSE4fv=vs^T0JFGs1*d_rwMuD^jaRE5@MVvr_W`4LgL}N~hi+4`HfLyN?)woL#xL)3o)-J`-y9!Zao%uX7xbRqs@zmzewD(? zKaxMhr3y}_Ejbp?g)d6_h6cD-n)jDiFFja-mJQUMF;=h!>{{m#H{{(Im>A*VKh$ga zGrn9gNj`~9W^Z$sh3~3t^#LK9UXKq!anu3j$qq|Zl3mfiL1iN=8> z>Xf*Rs!GBXK3Vxy)i!QM{D`-GPj!UytR_ z`g2Er-XxkHT6Vd1Mu$svz3>cJnW>81K^IV6mUjTgaF{DFA!F$N5v(_ zZBTjHW7t7yVtBXry3=RBY>&6sw;#87^cTy{m5wbxVm#+a4Ga<2MG_)OlBvi|>Yl=) z5fk1d*%HSmK=C^DVdV?uEuP_;&>hJf^rh@xbS7}fDu`_b+?waWi!L1=kM1TLafLjk znyVVD{HU13-l2-|g@A}sAIgX>@Ex~Gbe#%we$4$oD#!IlUzS!huc$P?Yk{%ku>HO$ zNMlGHst?_o96;@t|E)qbpW@Oq3Cc6b$DDQ8) zYc)95x-r0deF4UiGbEdFFS|r&sD7e(7MG_X;{J|n9zQ(69cNe1;=8h|$S6`5>IIx5 z{{uRs9-0Te1fERIp%qvM>KZdbew%+IaC{n5fjEl{gDI%3Y-FrUP-EX#wlml8BRQw) zpV`Jz?fD|8plW_v!64l+w=(PiYydB`6!^{ECX?m=3bT}b)$>)=6}^}=sw;X3IF-d@ zYUw=jj{kzQpZTNSXgFr>V9T>VwJU)a{wnJe*QnrOFzEb*Ok?YCf7pTCe~RnMp$QX` zOA~vWpcPEMx|P}fP4c!d>VDd>5qC;SNg z3$KPK#Y)b1+RG&mONNvV*RD14=F&g8S@~Jh@?&M`=6c?~Vn$dSdJrBQ{aacI+s8EG zzX|cm4*V&m3$YwqfIY`%m$CsRcMA{wvFdjj`;>$q#T zXP3w7+GO`wdYP}88`yWaPX!)|kR(pFPqtJx17V5D+J~kUp{e@BPb>p#i@(D;d>-6d+EH>*+Fn{YRyA}3fPZQi@6BDB zKfU~np+vv0lr4Ohvo2?Ak;aCb_MwVXAu98 zam;gCMH$e|vZS!WYjy{`iGDUf_Y3}%A^p|gBZ=p zl{ffOAzv7+oX)T0&#K19jfjtr>#jP-@8xdL-{@{EfG=`9`;)pw^uzC=CbStc0y+Tv z$m&U2MBe*fIoFsflo7?I0;r^swvYbr(rei-f4|PDUi?Wb+Q<5w-hQ40f4fM3$v)T) zVyI7kRMAX0#vhYUVRtYJrX5qpPG#lP9psS29O!+Q5Uui7p176mksK9VquQx;~8d-;prkkR-*g{wys)0MZnO1wymnRf%=b4BlA&n86wHi<5CdReFHy{ppJ0>N)BF?F z3{8)OJqg9}2Q|M`&6Trx3;$JEtL!7}mM>zKP)!LVmVk9Y7t2ELt_mJ)n-pQfmku%b5n2lZ~Kd+c5T<6F0 zN93cq*YeYR1=Vsv!)+o?!*8W4VpvoMd=>|XYxo&gynVEFj+Jr@a7Ns@o}Rw#{*1ue za7*A*IZ;{*+s@3FH2Vs!vwCWe2_t3l@M5)C<`_B*0I0PZ~Q|PP0zoWcfWY2Ht|op{25tyvY+RjDm9oHPfOnd z-^IYK(68`V=`-vt_lwu4s;F~?RFKC#m+N^}_@OKmcCt%|mhd~NE_OTGD7GLvJvKjIh;Cg)7f zXG>Q7xnFQL>sVIHTx)SuUkVt4UA*2 zgzIUP8^^Vf>xHK(ySimuYQn0-{}MHc_Yc5HE7@oN3mgNH(;;b-CjNg_Ip?$3>s*X7#_efd-1=aHBY1g&F}5>Lc8&}>%i z1oyY7I!-lQQIqXSO~CE&HHd>sW3R)z0dbA+jCSvLw6t8;4lCVUl$N_9t1RnnQI|4n z$-X>aPLG0dC77{|XL0z5NQk>)$DoSXcc!jVs#z6RKW=mUoVYrgJXJlxF8{{;!>wZ% zP{$ESGB><8_$qKQKn11#f7~Z*l`IP^O>CnbmmGv^fNw=`thhGvJbDu_3C3WRm{a@@ zRiP>*R0pTyJk5)Qg-HjKUnO4G3{(Y`=T)6ResZ3x&mO0jkaw^)a2094=w`8R=)A9) zdygy0br>>87QmMUQaL(Z0XnylQ&kd)w z){?U&(y|rCv#!q3mGEw~3)&x_N9?Ef^T}#1E+M`<;JwOJJrw=8JCv1B5Pi@KP@>cp zxgF@>Y3+L8M4gLWbKND*UXB^|2X?iyji+8jcpZZRe4&zEj2sGFOVv$REd|ECmE%~#>_{#l4ye?ac%_0VpPf05kVG+Ke zx^;YMJQBZHy-jhRdVnkgwY|&8Eo?emEmGZE-EqzO#n#8!*?ZVO)Ngf{I7%Fw-B#bw zpggif`UrbR-J^cs|Dq%DcVvR%g8Fp=oY+r2gICZ^nXp2P8<;Rbb4w_YE7)4(Do}B& zN}R%zLGE%L?g-2W0{&Y58UBu;`{DM1_s-u|!J2L+jhl5R%D0z<^2522!erei!(zjg z@{{F=QE6Wrm>IP~zpd}6;0JNPssE8ZiP=~Ql7NZWY3wwdFR3Li4zvu!2af{Y(J=pf_a%ER z>nn35Q!PWhR#QUfZ^-Rk^gz4HXfz!(%+Nj6FSJDi>9H;_OPmAL@2boiHXv`s4-gDO z3lPII_ylGQ)v*FnFh#L?Bp+D17yd9grta96M_P&2qAd_8hUd?DSA zEn|Mu=eSGqa&9u2Ne<)ID0xk`x|u3P(Fo*>Rq1~0CGHi+a(kI~)FZ$_2_ln_a^wN# z#HXMOr1K-cLWhE~P@MQkyb&z%d~syiZd!YpH|yJ%oi4WJEzB(}{9>4Hxn&f}my~Ta zEVCa7l2Qmo2%H*1#V8$vDVFgyge2v4+9U>og2ssV&S$TBK8Z95w}QoA>D}#ijw>Jd&&mfTtb5nq~nG0>Z@`8sP1quu@PH= zpCrx91^G1j9eOZXmpF_iAw!U9I7&7k#$)RNv+;q*gsX~Ifm{AKadL2l_qB7OJ>L4( zSW9>R&w?T%Z%Zy)dc=6vJXfzTd#Hs?h0X?Ho2&s~rb(F%bX^)_`zvzz=fWc87eFAL z$uz|4%HE49p#`C#kxr2t!BOr3wtAKaR?PXrg9XM1vx4`*8dixrBOPOn;j`ov?jlbr zU3?dM08AsjnTGLO6Mt(gTvy@`d;pq>ou%K()8z5&d8#8g6@KC;08wo$ag;j2jA6PH zxw2#8+t35Clcc)rg!EYSU0{j3r}L3xj9qCtXbg?H18r5^UPFmF z&$%jaFIEZKhh~y1n5WDDZXJIOsCh@^V}+^wF6JtB8J0`-hSGx5LO%jSypStkuVA}q zedw6&Y2|z8+vi^$az+ls8cAkCtI%>{8r@BPp5M!7$cyMB#0Ju>pi~_Nm<>^N$WvH< zY#_0Us>BRrwlQ7kd6b^KO)MpzQ|;MfoEqpkIGzH30B+e;B(Gwc*d9P%O7f+8>N>qv zjpd7Rjjpt0YPRmzfb4l?u&JGCvEh)mwr-c{U+0ym2lN9G%JPp2 z0Z=|Wv5hcgEGa;HzPqdWru$R;Jw1IK6HLntm&{8X_uc&gvAA5;451(tc)AXRoumrX znt!Wv)xCwP+-`CUF@w3P_(vF}Xv2M{Ym=wZQn(MAOa!UQ?0@W2aI?Had?aR(>!~~7 zX6OLxypP?3=Sp7yx8Uv3Zh&T%60R9c_MEq0G`9oaF;a3XH}BWtyjg$h7`o_&YkTOP zXkEsb%NEhWpD>o~s;I7L$kpY{Aht~8Xnu!a;~O)Zp+M+?yPB)HJJZ)VP}w)twZyjC z{M0zblxI_bCS~9&26X8O&_(HVNQ*!e#N8KGt08p`U&!vJ6r`8jMwhXEb`{r=j$%^4 z=Sf8nypU|p67nV7H)cA$kv>41=pAeVV1(^qn^KdoU$V)uHPQ7k(8(SfBJK}*J<}bp z%~OmYwO2|Da`yb1oApoWHbbuNL0QYPB5fUGQ^&2)K}e02(I45a@~7bZYsRAjq>#%m zaJ%RS_&mf8`6B!Mk6i1Wo9+Kuo7;ZcHGmR+-rCfj@0{=P`lVuFtQou>t3@iPvs4J2 z>q{vow@0;1JyXbGd2%~G0Utwlp_|ek>I!iIJB%L1J`=yFO>`?ZPQFEvtFVK!>n^j0 zYC{d7n=^N*W`qG*CH)I9h}MN40PKwKxBP_Mow`ezM+L z-l9BenC4j!O@m(&C)r1wo0-8bh>ZIB^Qj7h8L$JCg0GcD=2&eUH7& z_RX>j3>ERVu1M0?RY2-INlbA_* z$PaireiV;lodI9z54BM4=JyL(!ehmAHcWSCTue4|pJ~lZBF~`rK;KgT=mtOu858;z zSPm+Bw579tf9XGYcYdAup~!nxw!~Ou%+yuY*>yqlWiJ(Du>Y8~^5zPTo4{>Vz}yG= zGS!bcPd&mmz*&+9f#J@_);L>{b*NQo6KrNcZv0@HV%=d!UC+GU&>qPKbU9H9h)><9 zVxSSY*tPsL)o`H;mqIzo&D3^4e%g<>#k-*c0OjO1HW@!c=&32p2PVYy<6g=?DYo!W z`Jama$&8|Z{9BWPG1oa{g3+GJ~K^p~G6sF1xXXJhdjU8cUd zexH^rU#|OQ-4du58w8>FW_lmfhrUg%0E(Q7!kO1pIWYp6AiEP;;xBat9G#u#>~ec6 z+b^rbGz0KAW7a+PORlB?cSI>`1ZN{J(N@?eavHaUf5Hu7Np=QTmAOvMq;UEybrz4H zt&k&V5A4GKR}t`y#6IdJbC;Vdf6sm6&dEpd&-g)#<#H`&V#m<8h(&lZeiQABbbv-k zuf|$LTSR6AKY7v|7p$4a8D&@Ug}mhjpZ~nj4mPedEY$tb^|eyo4*_Gir}Ptch+IOY zlAl3r>I&$uW-Nkq0j$5UBwef-xbE5Qdg7oR7ww3BpRJyKl%tn3+bMVN_D21i!*Q{` z(BG&92NZ7*XQq*h2m=9ArPN(!5^JIx0o5sn-@vqp9$AR@A{$XVC?oA-)a>7E3HyZY z&o<&tfW}f2SIBl|4>BmohdU7$(0V9_WB4VcvrGqQoV=*=pLC{L-{}XJW)-|GFqLGK zztRmd{?K>VS+$tCjmzXa8r~<-A=Pn^si9_cFS->?!p2~^Xk%nDyh*krni|UV6?jg& zqK=b}FOEdVU-t2inyyjqt?nD1X1@BtDUrWqD)c8dj3CH=$iqY$`JU`X?j$ObgD999 z2;PXvB#xIL$IyXzMW9Hvrw%c9*rV(_(4bn#;EbCIf_u_wvUXcr8 z01Cwce`!%z!><4%HT4M7~A)#x4Vf*EQ)lXf?bawnG)+ z`iL6visHaW0k~BO7=jCc+|>sV4u6wFsAW`hI)iSH;Fv@ApAV=%d2$ncRqDE9DZjfcZz4V=ReN{ zPpK!xo9w;nN%yq!%6&H9W&ch8c7Kk4Qs7vC5B%jf__p}w`dat|Uo9W(PYxskat<3B z2W%x?hBu3~BVr^mwn(x-D5ppyfyso0yTmIL$kxp#0rrPfbB325D-4c z>PS9GDoHm3(nLi-*O&)%(gCt2vcF_jSyQMl_$&Zami~ZAv=n)YR6;%ATKqTu124hV z#4cheh@@s}550=%&o}%Mj@1T#ePjvJ3jSLdw zVPhK;X7-zVSU1=*?2Vn7t_z;AzK8zvf&Ia2q5Xg|^;1lbjE;_rH3S^7%~D=gEL#Jq z;0ACvcqV)ez67W;bKyPkSMc=xhhzhGS{qaW2(!7^J;0G`g=_K6gbolkKadY76OFPo zm&^I(75OT{Vd0YSQ1}km&!d!Em1)XO%1X*&p`H*^tdm#d@|jokFpw{7z`7x)WGRwW zk<{?nz(L<*Pl+qlvDjMGeA>9iuvGs}m#TAVwc2jFzja4-S9LS=vkVoC+W>~+xapNS z*;-)h>3Haz;by&gK54)U?%TUV2f~-cC6N))nXwg;C(;j~Yxz6G!1Lg2*ajXX*up0PJd?JxeOdwlPf79EUYaq_fmd{Zv=C=s#l{HkXI#WGTvt9F_W`?FR zV3cF(B$Z2e4D`rv+*FolZcxeOAe=+jgW-`)(e7f)(Coktpt`MgRRX)T%N#V;G}4As zdWSAwH(%FOm!X}n{hzjp_MvvTE?2i%pK0i4DmS;XX4p*jWzGy&vZn};R1f?9@qY`vBHe2*ttU;e)Un?vLC?>YyFb1E`2D!d_xttUG=fmw`8^ z9(fm>cvb1jOgvkSt0FI#uTu=>I|>2eyYirF6EKmOq?xYir6Dv~>f!2am0xKT_Ve`= zdE9K4WG+*U$zgbV^d8hux)(6gCjsW`Y2RqiSLaN7eQTPzqN%EJl3}$z44$|~x@lTh z`NwitJ4jokJ*v~_oqDx#wdtt&u_fPH&pytv-?`pZ%guTkdRO{B`pMu@P?N47*%I9h z$Tlv?FX=Lw3hj;KSC+ASfG{O`!KiKtLYq?MUNO1)8 zUyM}tQ`H1C_-2~%n$wy!nsH#K;?$j03zS=gnS6T%CbzOLnR9d^)e`i^e1m(*j)6By z7xD(0_!oN9+tbU5R#r_Fj37a;$tn`Oor$+E%(}x?cK?hRa5? z$z~pHJ!o^-D?8h}V0VINi1&i8*k36)8T3iL6s3STxEXlN{FF=rV=9MaZ2>847|bKP z5d+c@eTUY?PGDu=*(<{8;2HP~LI$GDe5x(2X2Q&FHq0L7rpvo25dIOrPw1#@2i~Z! zYK>-qX0~RcrU_Wp81-3|S*cWZ7Mk&?ic+9Vc4sb74~gd3ML0orIW{HIHQYLw;J13t zx&}L})@<_t)BlV^4RiG8LD^!Zwx#xM`J?iT@{M4p_UZ)vQ~ei1sd1!v2GFI8ZB-m? zoUkk3b;EttWAOI(?+9E77KOTtQzJ{F3gEBZUV;M>5)Uf6GQfD712}1Ckp>_~^rJ(- zdAAeLKwa2hI7QqgR*?0nAJk&HI+Ms=WEXJ(PLw}Z+~VzfMu-O1>vIIdW;_j5SR=%zG@Q)+BpJM@?sz^R(-t z`#s2{dixg!E(YI+nuw{9Dy=4aB-;UXhJV6?Ky+%0UP2LUICdVq zU(@g_cm?7ZF^S|T1NDQx!aQX+aAV|t`7OnIzMfDhtW$PVHC4l!OBzw5jH?x=(`?p! zQgiCIszJ)BLSw#MzL|?>v*_y7d}1;-0ui9Al3CGa;@HsKz+qpSN9nTLeb!!<9MfH+ z+tAqXRWH|1*Im^P*N)Q8)S9(H?Ll3fzNMj~G1WA{yv~wi)z}pd%6SdciT`td^^|#a zzGi_Q!B?TIuqfUFltC3xJ1oF&>^2~trc1ZU>Ol`6C43idj{JjEMpvW1(6*Qndx$HD zw?qe01k(~(bUwHbcj9ol7n~Mt`51pwxCwf?W~obnvYf8@sqtyDHCr^8CQWTnMU?{WL)$(JZ?+jL80Q)6`ZoG~ zx{u%l9HCvWHEChpIo(wK62p4q4AXY=TMKWSWpC(EI`=w{yAHTtd7gOR`z-zj!BwHT z;dt?mxG18GZU6+PN+5Fz$IeJ*0_xK;SrViGL}3W2i>yQJ$P_dOWVGk8{&-bz8fKGM zsekC%Ao_YiU&~r~Z$&L06BuQI@`h@fT2yb*WPzEV#5lcX9Z=2}s1K`NDL)EN`G<-< z@=DxV<|y@=IDid6l#ov%jTyzl(4s&s-#+&)=SDkh+iqE8K4H=u>ljlF6ZJQATXmyB z6rKlG^*=pjC^vjCrkkwhCf1R*iD0bzu49sOfop)fqo=yJp|87tTwrCePY4QM4v!T5 z;v7KvL!u+125^QjV5Z9`nGPDxpUFBy7Xf#%6MO=$jch?+G#%Z8-Na7<^{qZ2HODha zU}evNs{2Iol7A@dP>xVFQb*NaH0ro9XhOj4{po(@lscx^1Zy430P_vg6=SiXOuty)4&;Na^)>W6 z^eV$I!%5>9Q)lxK%SE8}ud-Khyacgph^xID_hftWybxd=djfBR<3cIn;_y~6Pvj%> z0F8PKAZB$04tL!oi1dfFr|bow?fnB~L306Va4^U@uA!H)HTY)ofQ0bIW!NA{FY>_wNt}!2}7sOU< zEwUW?PkJV{A<{eiC-A{{$aC9eaV)owvGuc#wKO)@G*vckF{lhr^lSD1)A!Z?tydd% z7?O+zqt&FasI6bDi)~fFuKjeJac+0bbMNwO@ILh&0y9Q!gB3$)_!a1ieIO=9=0_|b z>-`*U1J20pl16|r*GqO(20_aq1Re%5s<8-(K1BCplklcQfKUJ>+(~CJXMrZV6eyXq z`TjyhWl;HDwMwl7Cw+#dP~!ye*)m}JFk79gs-xKD<8 zU}AB(#4l+B$a#|iGkgmag{Hs}_%`wv+76TB0(jG$JfqITQN5!e?D;t2i+X=av8_LY1_7UGO0}_Ee(tEL` zk^14(U_9s(p69kWH#i#GJ=U9+J?6_M(zM=KVpwLVXQ*aqX_#PmYv^J08(*6inHyVv zS=L)S*%WrG{f^_5a~U{8mV4%T+xZ&$s|JwZz2KVApP{ zI;fwjQ$UV59&~QYH9yq{)wFu6>aj8`qzDwBDIdn=Fn#IU0Ik>%oFdJkRB0$075yPu zu%rK9Zw1eOR~_ej`(L(c*148+P?e7uM;V=l?}p=se1qLE#~3x9GPN{cHK$o5)-3A| zTSL3vehS=Ej=FZcH+YtL*Z8LS#{_BxAA^&`7rGQ~D!ve#M|5Ci7~m5ofGN@cfv7zY zoFg@$QxF6ngKL2|Z39{#3u2$}2gGJ_Dpi4Y)6bYK>{zae98y>m&-s6a?#iFa;i?a+ z=IX`jjq3U8-s*VuW7RBGv2vC&T`1-Kio5c)oQXL=2grTIYb+mm2_2Q*j2($Q3xipg zz*Zj&a;qoK6i_8PV!dIxVEzcs$yP?ec-ip9u+k7RG&W`%r<#74=9xq0LZEp}wbikE z?b(h$P94x<(mh|j7r`Xi;XwCb7)(^O3O@@^5sSp(5jeUw+AVf5)pM4rEtG?iRRxE#xZ;?}dR%NHtz{TlHII zQ}Jq2U7|XuYN2|gY@ysPr1QrW3xOsaW%kkzaujhEvm$!PC(Q#Ei*j*zXluaa>*0Oi z?(F*FIBy?h>uMcg*W7nZ}bwjcJw%H!n3SE$Np2R*CJ3Z92$=WlqtV z?Rw%q;E+P;a1{tK(f66n8Z7P?y(%WO^g6^LxpraAXSb7aeV}G_lmQC@l>vi!84!wXK`Lp3Skr_8s;VpmeryN?lJ~m)sLQ?Yv38 za^GwJ$N(DL9OOgWLUed}I1h9VKM;FG9s>UOC7{yn0X`Jn0d3eO=>h1WZ2(uhGgJ;8 zf=40*`WannpY?N)$Xlf*;5C;hXR(UavR@ zy8AH22DwT;mwUp#WiHc8r~zbS!i=p0wW>7eiZn&CGa3)!Q!?m!NR_>`Ih)q zfvx>#Bzwe$HsB%IX%}2RPdI`FUk+fkIK8rJ5 zB#!3Ju|3%h%nQ0c-G^F4CK0vpJoFIK11<-;VgT@zdqmXYm(aoB_&`^G2VVpqKg=bDSB) zbYtA~8d^mcQ>{Q<x74Dzq_UG(Za z4LvK}k6f&4f-~Ov3Ctj*JG73j&ZEwtbD-;#%j9b8-r&x3H}PEcbn_N_XZuq8Fa6U3 z98gXh12VWT)G53UynRY>10YFnj!2`sfK|sF;EvJ+cn7=(s^d0k7RXkv%W490_j+)n zI|S|qGk_}h0ZYX9;hFecpqefQU7j_m-4scu)9smgOiw06cLiF#kv>nKqG!+zXdGy! z9K}=9Nh`4#OlMWc8)LJ;?)?XEfHulTO6N%y#zsV2Me2%G!tKBwUJR%MQ~alWl&`Dz zyr+uit9zZhiQDVSalLeXazXB%?tk1L+?Z#K=b}dkc5aVX;oIQ*;SmmA#pZfUw4UKi}JC*f&WW?@a|b8O{J%$3}BF-k>!AXp9FXZ?1fJv zVPq}(3GIhn!j$+Oyclmz)FmDgmB_0kPxYgY042W@Sjzz_l^RGjrD{}h3AEi1a*Nifj9mZ{tLcp zzO7!B_pxWErCNgyt8$3Nb0 z_3ial@>TWeyjQ)Oy$8HUz5jZzfOVbl=7H04u}|w81?C77fdhmsFfRBms0ytCPv*?< zr|=%JdSqp!5a{mm=8F-}B)yuZxn_lZ7>&+Dt}Zv{G>mipiOnZSy`p8ysd6nqoZgnEYDp%q~;xecn( zMPg4tdG8EZ)wKY-`9Z8I;M-Ofg4Q}yz`Fe@z_7nchS~hjSB#0eOP3Qcu8C+J`HDwEg>i6 z5}gKU+%Kd5&k(*GTMszJ*Ck;|OwwAq2s}TJq_4rP$OWF(#&8R0oa_g57*ar;p_|Z8 z=n<3#*Mr|cJkX&r@V7_ccz6ta2-*vGfMLiD2qL49%#xb=sD zBK1akPBK~A>Hj&cu~xw4WMu3_bP1q0ua71G3iZXP5m3d~M0Q8|0;aq&@)A(fSBovd zQ`Z{Y+h&UG#o=Op_;9#Kcn$dVI>;_d!xI2+ekItqBY>@L6DLM?Mg~N*;uk<9?+u>O z)Yxl49zO^6kdpL~u9Ac#UnS|1&eF!xwtx^`SC%F_D%}mJ=*vJnYy+xNYh`BuEB*yE zMEY2E0=g%w167qJ!4BC7$RPVF%LVhoZJ<%IezNYe27u6gOgc(7OgdG{$sE!rk`Cbc zA1;jow~+gQkla5Ohyq`m*pyf!;DBEM81J?y7b}gj(IXKdS{Cs|aw4N53?SY&{r|5- zK7dK=PhyGKDsnI42D>~na!=eZR*7_vc)?fFA{mj%k(-g)Q8YR)dM$D?8i_WD4v5+# z@1hb(w^-}{ca@Zam@By=c_ZB*@d4MJOi8BnmMlRwR+=NdB4cH#G6i%*b{yn3g|b`F zE*T{21a*>)lzAjL_}wP01OAOo`Vs6>Q&}tNTbW!YN~cOrfs+~do=ba!^);8wkq!c` zMi)Va?;>Dh4~h+!yo%%k>h|8)H9(6$3|xCZ0CxKSadZ~YQQTb{AD`LXSxq*sB!ocm z;_h0YxI^*c?i6=-DDDo$-Q9x|2ytKc9od=r?)#mdp0=Dqc4q&2@9%k@zVa6Nfc#VX z0O$U*Qf0`Ar{wpbQ&KCpr3caqX(Hsq50K#*q>)mRJX#(NiUbWfojrmv*;;82+3>mY zZ^{*=RDJOvlW2211h>Se$Vlu5avC!3$DtDtHMR@UU=<)^y%E|U)q^ijcSt3#0#&!K%0^hJ z_apZqM|?e`f1g8a@>|3&=Rsz`1KBA@%DtevzZX2pw8|yCOuW2LUMd%$QggGe3YxgXdDTv$!BFQ{7DNTMd6Xs z3w%!Zg0oXB+7+H@1KiwiLIUhS&c$MzBe&kN7!QWDS@_{#_5 z_!;O*4JeJRLp~t=Q5(2`8o-B?gFUq)JnJ%~KKcfnlI&cGGW#6gSV3wtpy$90%ZUiRJMZe(*h&|-H-6VvaUu_(P*gnPK3<$ zp^%awAt`8M^b=G{qmUQyr$@m`-5FNsU&qZ23|YD^Wj^>1 zuY>WK5BZ`I$a>hj{!zU0aHW+p2kNdG`+BPW1S zj7AP9+mOG&iGM1rna#l+%K=%b&%k%5;{+}15R_UO$fp2msG7q}%)4_M^ zo!kdG3Eyv)3|?RG>qC*d;22OM!#AOnL$zU?(j4jy&*eGbTw8=RR2m|kl{V0on+JQI z9^U9Q*k?b&Qy+jgGg(OohcQu^q$Hv%(JgR`cnX#HD#~;u0X+$;`7`7%@aGx;zF*gs zR(2^pn8VGL@p8id=Wq-}{(=899ezq>#UQtZT#G8`P{j$Sz&6M#r4Kx}Mu~>`&;c2Z zg2y-VN=cAQrM<{hbb&HbnSwTfpKuPI>@OI{hh!7_Kkvo9vPC(GR+QgJEzn}{KQC0C zA}5tw@=AFP(2f%!BYG%2i5B@KKUGR#PFUn?NG&*7cLQI>XRuzTLp9_(d>b}+;{jxx zVnt>lb6^&Jg@5YT8gKUM|-43u*Cc|g^8`+4SQ6gdOIf>>f-N1o+G0cL|h#TH) zW5_X_2frs*nGD`;W8|9fsjc!3xTj2km0=8g?>P#K-h%z^CA_VbK$RBC0-Q$w0oUd% zd85)>Iik#x*DI+?MdUVe41RZy|K-cb6uMLSSGgeX1OMTTNFFM~&shlGa2Qe~w?PlV zZUmzeEkSQ7%h73QIC=#c{Qvw)C)k(vz~_92U|2qS8@%lr!FpZ{ZlyPr)-d+6U_~5? zP|99;GmO6xF!Ka(#k&kt$2oaA>^TGEnequZfi#n5%TwW-sH=>Z4k-13Kz}4HlcJ=J z(n#4PzmWIKHt1&L$~t9^+z(Fp2cVDLLTQ3FM2DdVVFf=8pB@MA=_klfv(H5S(&>kPCR{`(I)xU< z(@>8Kk~gSrP_dfM*qEVA0PY`K>5udiP%d_)XHxsf+2kIwGuedn0|nCyPsEO(&5(cK zJ6<3cNG+usp`=hPah~uR&fVEuSI!^Y8?*!#1uh1T2QCEO00&hPV1l+l*Wip`6%GXl ztRcb$!7Ofub83sw%g}sD4d2N?Ses5mt)db791WpMFdOz4J_O%@cf;Ly85nSO!RrwR zi8_RpFw+yMr6dL2&Fa)=@-9^mZhjpZ19UixpzktX^^Ms>-=s>YchpPj5fwqLB4f!P zL@AtwTxbn+F|c<@39bn$TLKk2Dl468M~1yn+>V#n~8#ADJ; zR;21uX6h>NB_!1pZfrR94Q{EO;Cp{bV$>TlgG>f0NT%9Ae|#@6j{{XRRVkX=z?qc- zJJ*vrN!w{BvsqQd^kU-aS)`gs#0Ozd&~>N|9i_~Y7K<~4?fh+Sa!?f*=ilL5?|tD3 zxZk@QyN|hAx#C^7T^X)v;1;#dQ|PG$adsuXS}ecZLjxx%sDo^KcIryLI*HJwmfcD`|jobBA{-p>Bjfi=Mm+(Z5nG^j>P^Og08 zfWE|>a7#P{tY|X*mG;8j{xEQ2EYp+uM(?E)=~C(yHIG_M-KUmAZw*&9RH;-H)Hj}L z8f(?MPWtY8N!Lc>VYJK}^*B~n1h=lbUd}MwAZ&qST|X&S(aE6Y#MtFJL%Z%2zPyR-}MH8C|U#L zgN1(_DuPpK9##{7g#W<1k)vr^HC6pYZBY$Y-Gnvl7|VGv8G%T>`wV4d21N_%RAUcPucQ8Zg>2w2C zf6X~IU0YWh!}etZphV^kox+xfjntl2jb~VPzdoq%VHlwus%lI=$MzB$`V#Ytu1Dm8 zs=R72E;v^BTQmtP{d?Vmp|?NS7GsZdL^;OTGRp&{T}tnlPAj)rURZHkE88Ob3`b+v zUiUn2x_@tA1oyYlGjva$i&O^ELIYKfWz=xhpX$Nt6YBS>A?jzUfVz*S3+NWMLoIO~ zjEg^1Pt~_H8Elevs`j8ZRy$1hKxZ)a4!dYF>3ak5tJnbn`lq5SFs`G5v7ld^(B9l9k4{( zep-{P2dy#oXO6mV+G`423;xAT;U5Y(c&x6&P7trj+SCQ=922L$$r@Oe4Qh^QhJxAg z6=1^JvL7_XnwuIe+lhU{MrqG!`|H-}Q5c!$3_XqSjHF=`TURw%bI*9zwAWBY{V(|w z?}+D;_n2^1ReCFO3~2C=fu7tJ0lXghIB#o5x%G(w2Uo%P`tLdTgivA zSnEgY-`0wjJ=SYBt3&PH2{HSBbD7?>eHU?bRc*2WfSd+XJP#m1V@;TdKaVkp%`X{MRL(}{;T_2jK)3HuolvhJqe-w5_!{x(Rx-5jRdSd^BiHYfOuD9cWUuRkt&2 zq$xpDpZc_js31Dgwb6Fs=s;!YC2_*F&|dDT*KVh6Gi{6Q^&GstgT0w0P?}eq zR6MElWmziB{#TYL%OFcFTYtwB*JQ6Tz;b_cPr)m5QD~f!f$bn~&^gR18e=?+N)xZ` zsvE1nsavhx&0g1b(8cQBXs>G9>I!s5{Ve@*-74KTT_>a6w9quzWH-(*PSbv%OI6{9 zs^mp(OvQ%bvMi>D%k;=+EhQ01f=kbk6jxu&{Di0SIR%R?f(CQmG}>Q0sl5I&y#06V?AP9ZMWE_*lO4s zT7^=sxJz+z>5sC%fnIrSU1y1~G_?+LxLg|Fz(BWP^WbXEDVU_z$SLdskpQ}mj-csT zuKts4tv#hxfs$mduD$M^uDw1%zeo4C?hw$35A`y9))#u0{-|-Gsl6!=OmQw7zp%@w zcPi0PWY!w*Q8)3f%0mn#r@^`44gN{&8~ox+;rjE3_#V8?x5|}k{cJ6<4YzNz4YS>{ zHn21*Eh<)*)GmuEzi&BcO|spxbhU)pNM{Gn2j9*>de9$;=Ho-{`844U0ofm^Ju36$#qtL7n~(t>L%-c(~J81hR%lLh94lvU16#Z^lk%_sK2HT zQvc}Iho^-%(mX^{Fg@lbbK&Iho-oTsI8Q|fX9)+msSu&Q+&$j$+S=Eqw!gC?Kq|yr z7nPkWK3AL$VFJA@2HQTX-7>a3)3VTB#U1S%7C0aHH{c7T3iajT$PMg&GkzX*leROr zz)*d&c8qSi{ulHBN9Z*AsfJaC&4vnwiTdY2e`^gJjq{CtO&(*eu?x5}-ZfPT`)ug0 z9!9;;ri5)Uwp8h`I_OszM`n5~xdrViRt-c3j|HxBr$N_|=RNE=Yg=a3*&5qUTAEw$ zTV|D4EuCC4r-Uk9QEs;GvGuW5x3sjf_O-70p632;!QBCOu#`I}xuM!s3$IFaq%}-W zRc-ZUO;>h`ww?Yz{UiNp-FMw^{cyu_L%QLYei`V0w;OgFB7w;-fN=bz zf2w&#<*84Fw+_qFq@&q#6Kn->i@HSJLU%~30yduzcm%#HIsSOx57%t#Jqv2vViT-G zEUT^CEcZ+I7e6j;QL2X#dCm6DTE#NVvfMV*MeTSkYmWzkJ0zh+w|`YRgIfrZMTBw)=J}WV=EJD z8m^ts?4VZ~&V)gyk~GNm(FnXMIg}#tX;M1h&i5SpHba7mfyds1?nCx`U_^)5{MLYF zuO;4kyga(pUwpNsq->4#iOmkwgBsqo*Wqz@^7{f`xhC9`;0EEbycByxNcazM>wZfA zQa{mDf;}+}bcE6R%lej}u54$>((g9RH`ojd42=xAhA9Td_|WJzZ3#PXx@bIT9A~`1 zqD+0&U_-~qS!^FnCyi2)sa;e7@dA4%R^z_VKl4y zq|#^~>E7xMgfS1P_pX5$=oVQ#me{40_dFxrL z)@mznShlVtx$IPV16z@uvk!&S)W7yK&Z(ZyfimvAaDnf}*A%D8^YP2XG3p_G4Sarj zsK#mL=(PGa`bPRcb(H>~zO$jWVVC~A{uD3+KlLLF%M2LI@+?EF$s3krnrwV#sHN-6 zdMH*sI~)ze*z(X<@j4zut!3t5b~z)|H{kL8^0f*+=92thJ#OcHYb{HLWifE+dA66< zK^AA}*OI=aEz6tPEVeO@DfXszBQO%8tDbKU*H387ZvwUc1StV@Qz+@6^o)*KPiL!c zX|KRsUZlIBJEp&+BMh>BqhXSvn!cI7HN4xChOGvRL1pY<><%l@Jkwm`2xF#xh-xeS zkLG6Bzeb$i4pqNjSVQ75u@akrR1shLSNbx19fFMlnD2)t){$V_W*KO`3`(1!wo$gx zpo2~=U0qsI-pTgUzQ<9;QQv;ap68tH8Q`D54Hh;DC;4cRmR)ETeu^ANUt=CH9hkbB z`Rpwnqw5DMAld)WpUt25pY=(uH&)CZWnFI@Z9icPa}c() z@@i!dO14@^`#?u4Cu;ZF_uB6|rg}PgQ{nF4jc>wt=c`JEP+fbDr+|mmbhALCu(6YL(+KakPdIH7(rTeS{DGq$|+l+C>SeV;QO|;3UNn}(^jA432 zlzu3=NqLQ=66s_eYA?|hxh2dBr1;ka>T)}PgDCZMbj`Q2z_t&!PXv~;mi>#>SvCM> z_btmP$8AR=r^`{r{@Lzu*7ddswC9%beV`9oUzjiTLe4=qb~81IuF3RZ<}gMz%dXY_ zrW>XE7qq%DY&a-)H|SpJ9Xd&ysr?IBk3aN74GT@8siA2Y=nY!v#xZZ`d%Bzme;7*} zu{3!*siDrmjk^#XDGv$CzNNvZTpcbHSm#4LL+$geV{JM+4`j{~yKGxfKCLvZtiI)g zZG&Tnv#oQA{kE;haoSzS|4(o-*NZRU;smdlDK|&!;TH)N^_@CO?`CwW3UEemp*;gi zz3c2`wh3#~=wVksr>m?BX+LOt!szCn+yo_DFoo&T#V;{0< z;J|fMZD!wVzkvSk8@r5s%I?wa(q|e+!&{sM?Bq3l80f*Xbc-X7nKM-}Q9g2tt1EYd1`1@Qver4dI4|SE=%53*-A02s)Y=_D*$9kf?RoSt!QcDZxL3gQZ zz5R@>t>a&p)!RHs35C$rKNNf`G?wNn8?n~J0`dq^Mogk!(gT3@T%|dyIjM=&WJBUa zmYQV$WPbyGht-Y;_2YeQRsDa4wZ@=nY*_2?R@xfOBf61cW~A5nJDX0f#HQihhy(O{ z+C$z$_X*vC#$XTd;HV_j4_^1xbQant*c#YRI3k?CoNFDtHM)F2nWj8wZRqUbdF!$} zKH6(JhPZZmzXTTv&ta7u#g&2A&RgXeb`WY{X{3e>5=Y_GoeIu{pEaW9h+3`Qr_uqR zTFgEKcaIjD&1wyMMVqZ}W$b8t5_a8Gq#wfkM|RflH!q5K$POjr@D6wzvK7!veySzb zTAa%_2AZaWaE05%RSb0XG;(ecVX%-zeC?#y=} zu2}a=e>y*2Tq^A2XYkoV7wI2_B67)@6hk_Qk+527RV_99Sc?6k?xU)rddjp`KZDxA zPZno!O}J*aCPORh^+vs^4t&N}+Ee6Ok~B1k6v7X&=~ySXZ_)*|EghvwT2#yzPl=s<)-r>RJzTJI-zKrEv?y zm*Q6;T4*S=4?R;#urhKYRSJ5&r^F~KiHQRC6{seSR=tVYOIKtJ>OWY$wmn-#?NW7A zOPVs>X2WKzW8@R;qG%y z17p0s-0hqj94{OToUCWOC)G9De!()-Qr*_bb-;)Ey`DJNU1wF#Y<~rAp3o~)HFR8T z1I}TMl-lSKNIS7nOX+&#p9DjFqI;=ttNUwm)uWiL)Lk-}(Q7`yO>LHXpjxY*t(Mq@ z`mToKrXOK-4TI@{D6ZLVoEI4~JfqfPU*&$-1fnC=M&lqV$SZ?!{$X5ejuEGdPlMh3 zigSwNyyKR`?ONv^>;2bbbM&{qgNlLMRo~Y-IM;v8bJG=Yt@0IfgvRksXfdrb!*L3^(E#6d5V}z3e0!S8I4utf{N#DIJei;6&n5k zug6Vl8qFjB(f5pe6~2~!iQY#Hgh+pa8s0NdV&q_V~F?EgNRTnW}f`Y1GSH812RNN*$3at0-@O*Spu4m3!o_c3q)ZQsNpLl~`#?KRjC>Kd2YKaxZb*Y`lk2}dQ;rI z19#qbp7+iS_UA01D81mn5%`xoFSd}+LbvoUxi)mQhk^FEEwP)bLd#Syau`9AC&3eC z799s;Fq-HIb>1gf5xyGE)#Iph)KhX0t*8jt6^nFR43WBiM6_a7Q>L9!3$+{Y4#*&x zB71_Pb|+1J;*K;b&@+%IHWn917IAg3s(&jmnv*
U+Zz5D%%{&t?$uES6r?&9qi zXe@3K+JeK`g}@fBn>bOvh-F~Vw~~wH+Gq`2OU|JhGZtzmI1^mO#t@Up&QQs2N|s^W zpg-wX>}XrO8EB3r$OW1}*r}cBs#>4!xW0p~7Cl-yL+sP@F)PA;Fb$vvJPdP^RT)ZK zlL=w(_zwQh{4k+85TU!omE03=fqSB-l`GQ~=9%TM6%6w~cK3B&x36)n_e~Q9OS;ey zZVyzjfACJJA67!tB+ekW^2c3*FuH;1o(*7$4#JAH^6s0k-P`_12^R#pg>zB ze@5El8;CksHS`TSi10HB+NU~6Ka;)1B;Z4kvDyN2<>;BZsaP+_h;rkjn11TpnopE7 zGz8QG9e7P>zBoTLK=Asvd7e9E&^=J@d%lLjvjM$tqw|5Ik~7}>fG?B~WoAg`9&)?* z-y}a85BuB`@;G)H-2m*$YjPu#p#F_{MZCeP!mJE~j?5f_{lHW?dPl@BrlR6NcHvK`N9tFaR_aPvX7G3a z&Ok3g3jHNogmZyp&o?LMxageZYU6SF-v`%#b7ZNrva7WxCOANP59wQDr7q%4@vc-0 zrKx+W2`Yl7i2$(gS4b~4obf`B#EV}*_W@^iPd+DK2C8CU=rcbBIKAiGaelBkDWsLI zN=sy?l7=lJw9I4hn5Yh321|6?waw{cWRd28`9;)MO*VcHyH5^fMo^Gsu4x{rmhq19^e9+&*!Z5(FJgO%z25>^*Uv zcB|H_i!Z_s+P<6r~?Q)+XN>{)jjlsngsieqgti5Re!9@h-#) z*}-*^yR2uw;pu+zHUkFAQ!0@6=1) zpm&#Vh>wC`#bnP4&k*lqf14l=-I7(p8Icbq!l=lFd(xj|47CqBM=q)zJ&pOL>ZUGJ ztyXnYJ!GO)JJheV3&9Z;HF1W9#$;6(x<|YxKhwO{ztEH@Uapn@m}`>rNbqn7Q(gpK zd*`_)LTKwtS6vtvi-P-wuOcgU;2H%4ZirkT&KrB^pQIg|qfAC4sIjVb>c7=hR9)#U zL=<#&`cQw9n~8M%Dz+LZjE1rf^d&9Da^aNtx8UOnf>(kAxj}p@;gV2MXvx3ldx(9d z2*@QpkK`aL(F+(t1PLFhp(B{{%m(HS6V4o*NhG9BW40AzM?az?!y()6fZ~Gc%7KO>H0v zav@QlxQbuF>Z8k*`SKkpT525{15X+u_7nTUKMx2^g`L7ev68e^-U)2(f#C^?mm z1+IFqsy|aeeFCC&4q*chaxZlIS>+077fOUmaGvkLkL3U3@9}@}vHTEz5M;=8lj?$^ z^#zbA7Z3}o#$C{>Pa`IPOU8R*KQRy9`#->kP6bl=7_c^_@(B4WP=S!bBh3r>MT^)z z^fXjUIwe(+Z_D+R4N4*s0;d-h)*1VVb%M@+B|Hz?gr#9l;7ex#dGTFIQ&s^@co2xn zSg9d{xnFJvS%aIAI7n|RK)ZpT$_n7G8xu_lE%6RNi4VsO_z5f? zTZrZXB{x$!D)Z7L36)L(aoQ}TgEL}==ofo~BjH}Dp?nPV@IxWtz6|+_?grAiKRzEn zhJOd{)r%K{qNx+U75joVKo22qV9b8X1A*3Lq^+TDp@fhr)F8AtbU(y}I!c#-z`ZI@ zR!qR@rJ;9#>Tib41XUD`x5iuH0z6+0>@85^@jzt$fdC5yc>#oc0yL*%;P25uPR^Cq z|36uISndPqi$j5vIR$g50eTTs-&4T}v^r)%{{=3ag16iq2&bb!S}F1>)lC;((+ZJ^VG$HO~&6k`f@Raz3&h;gKxVho!+?R3w(b z$>k2dA0L6|0Bzb8JqqdJ%al9vE9pn5IuIBK#2cW^K|@}#T+{%qTv^JJ)`Pw_2Y91! z;0H?4IIJl)5L<;E24|cem>XS=YSEpLY55k2%Bsp&U{IRM8d(O0q$<3z)i4Spfzt|y zjLTABoA(0?i^H3qhg}4o_ZH~>W3hYSz?}iaO>?9e*t8;`SKmm@rP9zVV2*!;e4!|q zfdTkuG*HuuG+*ZAA;4dSltw@wO$R=fK!<~Jp%|56eEo!PVH_}MuYsp-0*-*yK;^Rn zw0+~{mU1UxCx^)sga;YEC+?9Zq)<_5t#`i!?F-i#mdBuRX z^$ZYsSwN_r2cGN~P>me?e1m*U8V_@;pL8S?17mU?@Z|Q83!d@_kgGp|%K8%sX$mbw zuV4$n!J-}cCr~q+=uUKyUdxPvTlr^ockNhRSJP5J2C>JN%r`CQxo}4%G?m#C9+ooPKK23yH~CN2Ck(f{;j1Zi15SjdU^e z1sod(avwQ`|4*zcJq+=}X#OPkoIeusDLL2^@W^k2SHROjeX|v7i~qtEP>|2Y>LHt@ z?jj?6#X1rvUw~eF02>2y6a$Bwrc{4$u{lGh(&ONU7DHAe z4q)4mGC38P-7oTexq;jg6iYWj$FT`k=m_|gaX^aA1^0`1R1HjH7tqrVf=b$8Nb2+g zqkk8e;Kq=@x*m3r71GSmNnoz#iT6M&F%$eh4@#eadcF$;cQVkGe3-wMTIO@1h--22&&mv1XSZ_!yY?5n*?`RCGCyghS;Tm?km zdF(!Yl|5_NW1Oeksn*gbu_p4E&=B!Buws`&tK}!5Ffd0xUtRtqt zthkCe(G<|LKO#?1|4TuMcRhCbc5SeW*!mMF*Yp@H3#v}TuZMm zxLv#`{uI={a_3g-o3im`wXB$Pr}tZ+R>+P%C$Cd2i27J5R!-m11x&}oMjE4aeN=AT z4&*3!t_r(29cK;({ad`}AYkgj0o4Go$mytl;Z(msH)E3w}69dO=JZ= zhN=W-v>t3r{S#Av^YX|Z(e-0WV{XRJNUodGr^4MNHtbO-&hd|}tGC?Vw7glVyWmSU znmwdoLhXr_`S}(P-a&?jA5v~e& zycGm)2M6;z#oqF0^iO;M(TChZb%TV8%G%!zgG`gc8GN&e4{m~yV9Z^?kNU6u_t)_KEebEo?%V(nUp+^Uvi+l(@Xl{a z8*B)%i3zFiXdLR6YCFB3I0xkX1!SJ=5!wW&_-px}LgnFmV0$1un8}-@Nx%Zv!<$nr z=&j5OO%1~*Q(D-8@Dq_`QQsj=VOLy4fE4U_hRsr1NxuuX0y}&)d||$= zzUlt|0(n7Fh?2G_FHnXEQcJ*vxdq!(`$5;saNIa6{HFPYxt6(0MDOSWFQS$l8>*VBHuOwl zDH@L4LbK3E$_;r+=x^?|yN9cecV*yXa4VNC)Cjef8Y?>R_FPTuA=0T8%r$ilZ3jb| z>5-{CY-;%Q@Y&&0%^M=ON3V;;;)ldGjJm8Z!lSuSo+0jzz?LMHeJ<-=^0sJj`FndF z)UoUP--kXT73f&Q&4`~7A+yQcJFK4WnL3$%h=}4)F4}+JvB`3!>{RjOf_()YOAeIp zwY~M!6>6D^m*IkWpeXD{&1Fa(wcuKGLqME_Co zll%tKoEw5i98OB~bM-IHWev#+nrUn`-5-Wt#to)O@Nc5cCDB4c(?nlfr&uZC16z!2 z7Ul&so{&{lGP!7Vp|kLKVbzkMR^BeSe1Uv;99j1b8p@WcNP&KTnZjb61`BQl% zO!WWe*4vkrZ!8fCD-^nmT9$pZWx3w^*6=mt6s$f`OdW$6nNR&q)c_~MKCu3s4fzF> z=lH5ZL14S@j=P3yh|}$93Oxp1S)}yFfo&$^NGCOu&ZI@vDa`|RzqYQvk7;Vyi?Da* z&ymxj-bOWu@x+zKJ&n5`JKXe&xXA7Iw0DdzTU6vIh|HgpzpXH~G~8x$Wcr%$mE>9E zBHcZ6dE|@e`!U9tTc#9!4>d#8lMez~vs**`do8;QuQ14w! zy`t**({h8^9rFJv?P%@g7~#Ju;b;^&QTy5KjAWyp$Gnc=%)O0gv?X*kG{nIv(%gI8R6mlGljL%W2oc)2c4a#%tTc&eVJTCZ3LQRwgzWkYa8f|hAF1F$c8bY z*k#eLqf??=M?pqi?BUp|VRi8CLX0=lZYjBy-z4|)uiM#)#ltO&oCCdWxQ&oLdYd_^ zcSeTCFOF>!b1mvd_<8*b^>_TIILiCZUcGD=B(cpX)D+@{$;I)d3oT2WwF0+7EY=(9 z-96av+CQ{wHAT!gvOCsM`6!xrw;%WQ_6&D@bQ+yoU5&iU{J(=cM=dc+8mFAb7Luo! zaCK$X3&zj%SG`mnQf&abbp*Q-y!AdB6C!WLJdYg~*CBpS+@si}I5D5^syvl&0eBW~38 zu5?aemHbhK4~qUR3KfNyUAG_i{2A2C2-c0<%G_jU=)Y(iu{W5G1cD3tn9QU`GfSCMbZ@4&x&nKVt*PzEzE{r! zGT~5IMAYH9u%xBQTavAblM?=mYY;Qo&cxSRTVh?lC5+M1&39^a-}a(t3p>3fC2+6pkv=lr}66x3+T3_a^YW zm2`5Js)ptj8`AQ+A8Z=a8H<+>2`>Zxcrj0JccJr<!UM4ysM}NECc0Vb1`5QQuv4UfL*98hgKA90k!L^= zkV)=gc5066>zJ#@1{2p;SeQ~Hb$RNelv_#n<07IfMx4|flMJp4#1qd^Uqhde+VVeNrf-i$vd_EKsl8`K~;vru(OvsAl5zt>bPa#DPLa(=3| zQoZz+mAa=~NSqjdHoC~zg_^01XHEa!gR(jA@@s3ANyNR0Y4KRL}jVI zu}{Du=88_Q+oiG6Pw@H5@8bQyR__Ow&Kcp@WUpd>WjpJ5?l~Py7f(rdmB!d}d>?Uz z2qW5p+BFSJ0LArns7frQo-*^)OV}s+8e#d6Aaf$-TcSQCGnGhtmIg6wDcuu?#BPho zX49nY_F098v(V4q-nIKM@AIK=J9EMv&BX+~K;6`w6MHMx6!$GbNKA}9Y_1vhL)Q-W z;pNh$px3ss@Hynv<$u?I8~Gz5H@|RWSzY%&p$YbyTB+f6f9iMWYU(~~U797d7hMoa z=I3%d{k^>}9J19}-p$&@p>=(CU-LEKc8R-W9hOM01vkkH z+>~j_T#~gm_xEDiR_Jdpy}?*!Ci_x%RNu|;NdJ_bPXCL2lD3Q6h3McCH)XHy_}j6= zUI9|2qTFxX?|s*VL()$;W1?P+kG^;KGb;IvQoB3iFkq zf%;b1u29!hYV%URjV@ z-qQ6T*g)QgH&PwdP6D2Y*1ckfGUM?3$`$czaImkT@40uis}VSG#d}dtyt}SY3>o!5%=)Z~ss#@lG#CkAt+=lw@~> z1quD5dWR1-R8Y;rnnJe05&vyRdyAzsP}IHPT;93d)ZFuVe-yhc8(oFI9>P{cNA*`# z)nu}EmRBvJdf=mxTGCwTR{ZPLd%l3rxdSu_!@ZXvV?90iCpUrbBesxELvliQA;jyt*5@M1HlZ1qkF^|k!j04z>Og^y$ z-4v=2Eb&+z!>r>N9Cc*`la*2AYgGbx^KREQ)|ymji7#l3 zJdkS$w*ua?*LA~r$#d6-_-wxO!R7oaE{%&3R*1>sFtM4`0JN((I)^Yb&%t@A276hz z+i=ks8@Ak>9XTQ9LYzObQH6pE+KMri=2Z$$2~Tjurkf8^jsRs_Ui=|z)u&Gxx860& zi2h>9yXyEiP$1V+=bBUEAWlBvTGFG00nu4uJMK3T&W?T@b0YRh z?B3Wy2;O{}n4a`1p;LT=crwz?TnLTu71^Q+etci~CFVo(_d~wi&U<7#+8CERjn@Vqq6C&SOVYt$@?jAZ6lBt_FC2q;XUIS*}C2#*jR8zaTl^oA)BGtl&`T zYI~Azg_w(BD!*m{q#ZYeRNLn2t3+LS8kgit_e^r}4m;?fDtc&t-(ZZeH$=)>NK6fh z+R$L|*|-&&qO3*x5<65!^i#ssQSV|eCfE~iCe=$>lgcG;j?a#jRYkW~DnJi_tGT|2ln^Z`ww3RLUa z2cWTdtq!AVqq))*;lDsnIE}Ay<~pXkB=4iZCGhKnXjgfh93hVay>eBhx>6rKfM=5X zRhM-{*szHE(OVL-E6h**E7h2~GIdev{R&l+ViP*VUXQA4Ji-h>F7uVVbuD=XMD~qu z4ZfCsUy;+Gu((9;OySRB_f$!StcZItTVgiGXro(1_Aq_dZPl!#Mj@qQ6(OF#8kp+c z}cZsgS#SHm0E6 zz3Q$0U6{^1KB8{qaq}conm&V_s+vg-gg!qhw-MKI@BA0NecbJ#ven#DP+F(NT5KvU zE4={~zFbEI->V=U+KSx4FOf230vGFFkVhIqM#)ozP$0oy+ZXK#xqi5}`5p#VLzVHI zJOhn~ASN%>9(cyf%wMXxz!b%6SL^qg8kkK{BV#Wm6en*^ZJlOFt6Q;d>ZuCHV{e)= zRJHM?!XDSUvd#IQe*XTwBs2e4c>?3xzmj8+C_`HYSA`%<70qVbcxObTVjc zt`KUpnz9#eI|%z~vEQft z9G&xf!ILtVd!#svn4->wYKF~R7WH35*RZ~T_)4lUvNkeR8ZMsaUvi&1_st4);PQpnax&JNR5Rbyc1Wcjt}iyUF|IOBGGeA;)5ow`=7NX?QQc!|#7Xg6 z66nNx2}cl6{>SuW|6->{`#7IGk<#des?){RvrILqGWA+*|HuaCzW;U;}rR|0S%EoXAIf8|Wy`syDOY zpmZ2woN9Vvx)avJd^DmbqyTGTj>evdeG~g5ZhL(H*d`I1jT_h+ba&)CAM4#~tyXj; z?{My+-0?X%dD%sEEnA)C0am$7*i_*C?EpaCBd+9}?K z4#O>BpI{LbAxr2l7D^s)Wr)No5g5Hdbz6h!zUu26OH8ZGuObIT^@}7oIK<^UoI4Dpp$@&NaS8e6DW;X;DYT__X=i_1dA(ne(gS{IKeUsAVW z9BpD7LGpALqhMMSUNd5I^yPv5{kicNjp?C&bfjjD9jFkOV~!}>>LMQ z<20$glmoq7pZHYV85#|pqU+#`&=1>0^rLU7aa|unMN>w&H?n8Uve;R1`{S!7Xc8XA z=fwYr^F$vse>WJ}UDONYlCaDhYjYLvEhx_0o--(0m0P=DNy%kvndcIpFOy`F=7hes zX=B*k@B!hkAYaL?o=We*hbm}j2Dia~!<*+}yk(xxo+I9S!17!O_5)(b0{OX>`3;AmX=ZBGwywD(+o;>x8Na{wMWNyCzRBv(j=z_`Rl zF{8uR>uYG96UU_@zuPgq>~!IkJT_-$miK4n><0PYi|v+pcTO-QSXopM0ZV%+6t2;^XCHK@~jVYv#G{`U0t~zquQGa=dB&Gl4X&)BkaF7SK&(Zyz2@ zCa!Ihx*P89PNCScxVtUxzPP)?;_mM56fIU4>Jm>T$@usFzmr2bg=8{v=g!Q%&-?tq zzc`Qii-}|w(t>}WzqW6Nw}k5E9pdfcMZofxMu)MZA%!PJ90DGnk(dE*hfe?#Ts1Kf zZ2Fnf@3Iw&Q!1b4rT$ewPt%x?df^=-Uq$VW-W%O3@_a~V(-}h_wN|o^drpPhc2xL^ zdK6UTyv?f2uFC6I^s8*RWu7~mIg7p`7pQv~{tIkn8fw}XGzU^=J8JgIKM?E0R$LPO z3X&XZx(L@$m&IKPb@hFGiT;{EsRpvQ8G>>7Tl*XOC~7eE7BX$>dXhaRYAVcew5E>& zJ2;2;f?K5!OaXT=4Vb_l!>rz5s8leJQb+>bs0@Sg;DLsqzdz9Mf8)Jx-&66uxgYtNC+~Mx7Kqj|z zhf--?FWj+3vs?M);ydIpdJ^r0RskJx068Eo5VXQ@!3#6HUL+556ThXWS|0?`99ERSr;FK3`F-~-SLT#k2e;X0T!aU{8rYY;UzyA?f5G!rtpN!>~}3D&-gzFK=!JyD6u?@KDN2;>VG zu7>hb{s1?b`v!jLmHZKI0GmmN`X_i7fqi_bv$I3tkT?c8m%5|88u~EXRmekz<2ghN zNe=M__oL56EB~5(O-J~5`x-)4%VM^Xa1})*Au^-VrnYG{`r3N0Zk?`DI|#;ec4$6m z{?!i9wbhT;4bgN_zLqs3v$3lj<>~I2YMECtqx4;IzvBAEz02xZemhORXpX_2$#PW# zwfpqljf|nCZm4>uB9E*h24Mq`8~h4x3}*m`CI;-w0kUgOKrHR(RGo%L`4A`x2p!DDr_Cq{NZ?n~` zh$x?5(y!!M>C=jhRo$%3saw1WuP3$0Rodgabs8Kh=XHx2c3MDFeVY6i_7`x9z5NTEO{|xz<(48#TLMxRnXPOO81Kb5Sh z8m`+Ea0t@6rv;4-+-}U!Y?cS$m-sUOQ;*NN)vmIiuxTC7T#uw* zlKLaq`A%btfc0vM^#H5oICL8N6?|?V(Z(o^v_u<%$Ect9li$N_V=pkh!Rw=AF44tw zT{ee1C2U6)V3EX8$rtjjA|6t7bG5&8Gr+q4pOMu+R7R0ku_|#mJJ++*@zD}eoe3!~ z8*LvPDX!5#fw$$K3w6=O#5dv>By*(@R`6~hcFTcn|D0k0c=#uVKn_4w~MRdX7UcWvo8`0vIw&z~)m^d?)@54z6mjxz!f03mH84nt{G6=C2B7sOI^CeZ%FF_K;ZgTgrl8 zW&;>mlgJDpS8cM}^1})%_)y*}b|}iomDo3CAeH0h9B(Z_mBE!us=8X+x>D&H!f&L4 zXf6*`EmVa=^)jpMD&H#2lXR9AOHP6Rw2Ih`3)nO43%X5s!7TA*doo;;fsh{U9PLW> zyz&0UXoPKOD$zkY9V{|MK=90j*vG%mr<12xza+kjPLA-Ds3kNw0jFfEh}2CK;*L5Yq96G5c3ne3-*ANfo&h0qfO!Qv7%w)0M_(R~yOa%8|T~rAMuG`phtR2?>|INU=@%6X{ zpNOS{^=c-vLEH}QeKvQEUB~_b;Yz8x4*cknpu^X6b?j7CzB&PW^Zp>2e9*adv%ZD5d7(4*)F z^Z?og^&xlR|0=kEA4PVol#;_Tq${0yAoW3UiepZUXrCC~(5<2F|iSm{C`PRsI&361#!b za2wdZZX-wGUBkha7z6%7HDU*9F;kSnr)nT1cqI>mtua)L5v9O+UIiy-3b<<-@Z_CA z9)Sn41aTm4BpW#mOKSpa(GeK|-#QFw4^(d|@;Ch51Zq9ZKntgXSuh8T;RF(aBmlp+ z1t~^?&^l;6@PQ?PRa1*%r~~;9OInAlgf-g*Yc&u)O&}k^mAeOQh)qO7l!yv2+cg85 zT|aOXwgG3}3~|1=1blZ(#HCOVodH!xZ^a{Ew+k140Eya0_zWJmT3~#g3RZSKkf65( z9QNx?Q4o8Ag|s;^q`xs7#^c&cyOEJFrgd4CL$;M(!v7$DAhR_d2+6g~W~P$)$)yT| z;rqV|M)3sLfm4NYVGejLZ$gUpYMxnSO*D({F-De4)cIf^*Op0_QD}(CmOKtx!`Dz5Z?f|dY2!| zM}f7r7C#D{tsz31umsvbT{vPLkY;e?u0ra_E%@m`YQmmu1nki(;8%BnDKrB(*pblJ zE)+I_^}8FirL*9Wy#mKS9sGzh;8TBK4cepKz?>L`<|8ZM$WUU5Xca{`PA+J1*TLjC z4xEz?pu+bEyWwXQSa4NhJQ!R50nTF`wAu0EP-t6wz+fqYJ97jax6Q~7Xq9u3uCOJg z(0V_?Iq(?1^`HpUKje zI|KZ!9-$IGA1by6%UlmQJNAR`wGFKA2;@3A#)rW-{eZhf5qW~Ph2G!}IvJe<1bJ6< z5jq%rQ!OELNl7H*lhN65&K?%~2vuO1R|;}?8d@zR388{Qp!h5NdOnSx42c0F;SA{w z-~0;M31{E|aD%o1nf7*|E3|_)HIx^*8{9E)4CZk|`E0%e^zqjq5h)8u;%CAP zp`OqPj`|p(qYy3N!cBfT(B=ex7Rc^HTq%5lMINlG(uM~1 z4SpDYH+)1;d)WYX1h|&E(q8u~=Lk=ryOp~axV(RQZ`j8>ySWi}ss8{%LmKK2$qLyO zRS)eOO^kAqY!cCgI1e*$VREzd8P-Qc*xCN^-cO!R?s3kM&I9gM{;~W(Fx}qeP#Ddz zi@ot~k}c9caF`eTe}&Tu{uWpp%NakN!gL1%{xUWW^5;4T z+upEBa9_NOWT3+_8l0P>z-M>{ zy9Kt&Ti9{vD_fz%VJ*ji19up-`z&zV&B1D7SHK>=9DNBk;sMwu>mJ$V99+)b4JTJyDzi5->({L}%9@3pi>X9?>Fd zwdsbe(91ezdiTKCMPqw^3uo)%x^F2ix7gY_^DDMj9CCCMizFsRb6v7JKvth@t=8z< zYvw4|t9B`uDaOlH@|hBhpGM7b40Eh?x?SHrV;~9Og9kE}eXHpuOnXLT7b9aO-{o&r ztu%wx>lIC8ZKZ99d+6Wd1-=1rX}OS_@Y37Pz1lw2nri)GJK)R(m(VTd2zL*j;p5;Q z>nOg9$RgTHhDs-q6x4bK;$xAa50S)3xAV z!QG5!)gP3z6@|oTVKG#gqJ?W((ynTjmLmJ@qrDN0mrRX@~h z)PB{(X(ofS>$k!y?Tqc=ZutzJJI+FQ4!&;xV#}~Suy1jM!3g?(Z$J7Ddr<6)Kb9ns za@hjeYDltrEmN(`_wnjS~uYi^2od`{7sniT#z^iwc<;phoFMC zjYh3Y)29UN3}VecLt2E^52b^fhh7iu8a^p(x_%eU=W4U(mh#Sn7F9)F^*6}vURz$r zvD8C3|9C#og~ArHOVHQI4dK7_Uz8111~skTqTUNn_|GJ_u~Za#4!Y1ev8qj(u6%w~ zKW7t|-|Eg(_-`=n`E>CyjIeFR)9@mR7oKiv$wx}l(P?}JlS4nEr}|g>#(5um!aQ?4 zBd9J^g6F2Ymgf-V^SxqUi_zfrKY~vt7E4N`!(~0>KCotVl&R%kfWrF++zF?Z>B^a! z=)j8LgAuo4?nJK-P;#7y_kH4?(h~OwZ-i@^&1CCkf9)7+c@J(5(Xrj+j7pg+v2{ zrMa$9pH)wCkhq9VM+OMz`9d&QrwJ>d#?H$2059x8W-!fxy;Sa>!EEK%BNALiL__73 zlb8#2_n~rwQlggXjv96ahL|;BOk_Yza$@7e6XD&ZyB&30bExIMb;Kn+$isU-Jm&1pb0#l!pW+j`4MJ?zXM%g?QH#W{T^Kt zU6m$SP0No-I}r6yBbP%>b&RyMt2$KKsp<<@@-+5|u2WtE%wHGqI&p!Ri=^UC$t!XT zIC2l+C!p$NJ9)oA9r!jTXyU&;6|4LKrU7;B`4~BtPH)U1YQZ+VrpaF zZ~h$eBP=emRtz7zF{-2PvS9E&^GtWyt0Ss*S8XiYUb3|8XZ6>rtEJKkhlTeX;bzFO zpd%q!AsHe1uqPq^n64OK>;6(2$snv$ILiL=Bv_M5Iu!iMHRP)E)qfnN$E(&mppHQ> zV8P6@tj#)3bDGzt%j>K*$%?sD`>eFxO#$#8bC{3sssXJB!U zVrkLS;@TB$t9O-mwiG)W`YEBaqNiy_#E$Sg;aegmMSKdmXmo3n6pe|Qf{R|`9pzY5 zo>kB+r%hIDcFVkuMH%JOE#F)wCJz}RT`f-p=V-F>h!Rl_RK_S*$#&wK#OquKI?U6- z5ox<^iL_K&oz7jZrP)*?l#6N* zQ#<-iRF}}LL7D2)l7WcHzs}Xs`mHjkY(RlBH!FK^Zc(1EAg3I0y!OQjzwy>`n=)84 zUt3pwP4QA*A-g24MyDd{h0o02-bpUjKGyo&QfO`I80dOSiOfE6E0!P;$ghx}Iz`n; z^FY_l=n80Jx*8lEVh_$VCk2OwTnko)tO-+uw+zmcxrK|q32wG3v*kEjo zYS<6UEQy|-{^7z_e4ZxF{5*7P1Rixe>Qv<5ko zl55OgTJ)~eQuWgD(05PhE9s-W1=;q?w3{_GR4wEmq>=a*;S}U#S$(rTV_kO~;dZz6 zq3wtB098&O;s2ngBq8#@R9(UMdsKZ!y;vJyNDH_TBsC8|{*D?HJul*8 z;A*lGxZ2acP&+7={w#&|IiRq1*_6sn<;m4gojz|Se;$9N_6DvucM3ld84=@+q=It- z#;BU%N_L^=UwcU9h2nn;r{_J$U7VYpj~8jnu34@-ulXayL6TXDd#cvjN7}pUda9l< z!ub;&F6?0~{te#7o*quQFOg-rX~+8bJID3Vf4cs(Y^rWzVLH~kjMKj6`7Q5AJ5A&X2 zY9pJ-5Z!O!w%&zxjf{yz!`qnN=nBXcd>d+_Z9!$vk^=>aALxZo6)%E>{1y;ZwjKQ%u z^=vDEG`?v|v!^*Xdd7h>cN9Mp?I)Qld#(Dd3pQpOPZ@)Z3jGIdH(euLqV9qAt!4av4g2RRrEcd$qUGDUdmQ#s~gx_J4Smm{SEn1WDD(N zgW1$7bV{^3Dj~d1NTj|txrQH3^|mZ1Sy$MnK#{vGXJOulKbq3Lm8tf9l#D6nX|yRh zU0JNztDB}xR+Y-;OPXNKxUNu*(i-MV@7VJlE1XVOd#FMB?klBF^K;QD#6@zkDqLsP z_cWX_BpOyjs`OsX5luU=ix%kT1yzQ1i#{H=Cb3r1#i&NcUhjqmV`wi!1H|<@;-NDky8A^}(hmO&I(Pe3;X%Nj;RX5d1 zbysa){a2$HxFGmz*qJCSZdm+|xKAO~I`9i&f%Mnvz>>FlNm=7FteG8(zLjQHys)qF zO-D;`mBOiC6qFX^FwF`56>&U7Zk7jL&@7Vt%bufFS(#!ouSo{|>%U*QnR)qn#WyUs z+&NG!?3el#qtuf$Cp1fxqHLjbKRyMegnsNa-!s=YN0KAR7G-T+-4-hHj=K}-`TPxR z4XIaoH1B~xtqf>l+@`yt$x_Fui-GofteXVRKc8_{@TrJPF^%F@#+f6ifSamNaubr~ z%r85fKPYqC?|T^qdF%c(Dd}OI?q$XI&wu9CdyW^5Gjx3R5Zs7|lt)UVZWj%X`%bpsZL z?2N9Hur66%%Ml+J+D41YaKvG6Upy{rX?oyi{!2tgmjY!GRejyp7|T-V_5YZYLVf1u zAqkNAoJVpBHXQ&Ih@=tvIsTlzETcT)D{yyr#X)i0@e!VJk#n$dXZwY#DWauJ1}j%i`~23sUE+(o%@!HgnLlJ9R*3JgM2c2H@6I3FX<~^sotTV zV~jAKH}(yALI31@fW#$W_tPW1R{8;xa?W8AdDjVOj29zGFnrUW)qIh6k*q>KF?T#4oIe~_A<1>JV}Ns= zE5XwP%;8etbk5N8xCGIUN+ogf8>(RKMEx4$jDR;#SvNHx&p5&O(6}?;sL2x+AC(!s zIc`eAvKY15rJg{hab-4X(b$ZIUzeoCe5&)~c;=0QE7ffopLCb@i;0N-9{V6x8{0j4 zQrL#TD>@$(7tP=_{_*Y#YjDNPVt4-3933S$#Z|O|KIvXzdsVTi=wsfJoQ^qH zbHC;eEGR1ORk6i7(Os9_kD8^iifyVlsspMcDwR?}ZbR~!G~a9LiQDD4VmoVFX@_J9 z&qHrhTF+*3^8e-4;C@0UJwtAUq>vQ(FqKr-%23Og7%<2bA2vQ}L99K#ZsMhc?+IMO z)fh6Ui9&;yuruu=3fE>`O8@zBP}<^epMSGi-l99MTVgNy9|IBbZ-OdmQ1ZB>8VRn* zZRREVJ+k3KJ8FkrUVXBpR{n^bf^2_IuiU5kjf&2dzN#V}W?yS=3_=k<wrP%*F28$|2lMr$HQWHP9Bo8&kX$EqaQFS6dYHDW zzP^zUNHEPb^C6uhKgINn?;C$Uu{dde!m)_U0VS%v_$S}=>NACRe}{aY_dfnp=9kAm zM`cegKj0Z8R;YfMgyPT?$?&03iw2NDW?13bStC9y~AH_7N#5|>5p>1Ud4eV}i5!xVpb=0o7TS<+Qhb0|O z$ceoZ`b2M**F?^HK9{Y@t@X3;)4;TSpFX9B{9c!Lz4E4a9A2R@1WTj)#IH%}n%qAz zFQ#AU3FAIxU3@az#Bt9(1KpkA3O?=C!#8x%z_zZKL}jRMxfd=QG(*E4>BXisylCsZ`!p zRiat0?*^P_IXvlTqp!ztiDQ!klba|1O6nHdBe=OHKzfFoV82tmKI`n)hwnPR-}d=t z`pKU!^CwtQcDwY5;dA(y`0%7yQ#{P3iXHFniVsgahj zGh#*HaMc_vi>h7GI#2y$-AB!b@gE<5`I)ZIUR(ZvI)HXmk29O1XT~2)j;Se0t_!s} zxd9(k*;px~qlP(pRsSkKP&T0Kb6F)ANtadKtU6vDX&dg?=S*?c@znRFFf;kF$P=ue zL{9o-TjZ(oWx%_P!VZXe>?nUKHPt;4GRn_7+Pf}zf_(#-XrT)_i8xDMRvdvkihkOI z`ZA*{aDX`>w0T5>n869}lJ+ETNDfX~6|**YobH^g8DDB=i}q#>Oi%turcL>D?(6wq z#|u+!3^P*d)aQj+V~-_WsF9PbO|VDS32tRLA#aZ^rGL3j*xpwqRE{mbRVFDv1Z>O4 z>K2wVON{-U%yO((txXmC-k1f5+v-zlhUEUkzDe z=%MV3)$-4?4Lr24U^9e1I(vymk`XoO{=oj_N%X%bQl*s~BB*psIm&u>GTxaPRP}qg>Q8??)fPl!56=!#@yeB4bb%%Yt+p z6VV(0ishl_#2I`bJHa33^?Lqzet2$qoKzqGV0Ni+9_vfqSLSNF1f&KFVSA$<#C}ic zozy?+M$+TNC$YQ3h6I#re9~mT(z&brYk?uN>c@@md(xYJAN6Zc-mP-cQOz8X4A+L6 z4@V4%yO4M|5lJ`~Q#V{1G+gtEj7M{50n!vkRDG$im)EZlD;iX#SNp70jvnqsp2O5z z??1lwzQ;bw9}VWPU2F&LApbWc)7{5&zzuZ=tVhAX1dJlZ%0k6!T z&GZ!}U~S1FWrBW1V6Wio;oqZ|#&Zb?i8T^6iJ#)EkrzyYuCbyVjrI?*eJLB6r_a#* z?(}=mud<)fIrB<{>TD0#)@1v@iR%fEj~Nnch*=)hCPFY*7`~`vjQ|X>w`&N=Qq(_wkFKTMPn17*7Jy@tz@XA1ZUAZ zBFkN7;{8*-JE{4eah}zlIPXV)1)D2w!X>f`sxJC3L0v-!MN-iR;#wt|l59y+6D_fs zVXp!^>y&b+w)Xt4ri+K>U>Qw+b3fnzRR6x7S6*VbJoTPL8p|Ep$3dy#*P_az??(qj zZVl}mlmn9L>(asKYHo;cxqFW@$8izrar)ct*zVbW+Lt*o*T0YkuW_w#6P|x4CuHj+ z()mnl;U0MDQtMcx};BNCq_4onnddxwuU9n&3Av`44=s;m)ZL-Pk@Ps*sySo5o6=8-%@ z**fbp&qCq2^r3o!v0?Dw@VXJ3!twAw!5xBT>1sixnv7^G`j}k*O|Q*U&!ceXK!vv6 zsdH(Z%N!;4k&Z&gZAWise^+CV)H~aMn~{RIc_g@{Y2q{_uuYb zedT%VI_(l{RebPjDC77`{2*&Y;O zaA~$GhDoPjKlyKr;0yIVrJQcBi*mkp#=C|V>tI2RvDRwxE&MjJ8% z%gj?le}(^!=o*n5u`i-5a(dYGpdQ*kzy>Zw=hEqpjLIz~p9*6Orx$+B?U&d8&$SA- zZHjvkOJEe)OHCM727NS*H9s`>GyP#=r6isT_fAhA z;Qei|4dY#NT?@dLPu_tzwOBo2wDC1PPM1RiTBPS)NPElOwo=~IaOS@GvX2~)Yn z)zKfzrxO#DcXc=5`MW5vc3_sFTKhuPOdc$midUjn#VLFrZa+T}ScfA*f^eDd%hhII z(KmeiDX(ic_{%>ys+?Qh)4d6FIOh=O;Q{0@aE>ljyqE8jErC%1DdJ^2`hzG5kaIDP zWXDoRfwPV~hdSZ!!fxXYFzehCX83&gX2{mt4tBXrX`*ZpBqH6_JklRD&I;NdoE7>w z>PE=M+r(BQINGNu^S_DD0zbntHGPrD06K zw7?z4IQ<$m3AJ@|7_+k>IlIwVk-0Ch;ysG+XT_9{zC^}4Fg)sw6V z&P~){rlt4}A1v#q+O3U-v7xuxq3TD9-DG`Y57LG|#a#8@gyi^5{*&}+W&@Z~|KTfm zgK!R*2pnu_4e1B|IsRKv_49;@<%Yrx@jEPtz$Dj!=t-3fBz|Llq_e0L+JZ0dZ+^Vs z6~Ch`fM8e2i@;pkNL8q8s*F_pA~~Wr7Kj*xDO?+NFEa@0gubw^xO;q+U_eelqVP}L+LKRB~c z2QqR;B0Nwx|MOgq=cBl`Y$K+OKFAyZZ(1IAk(U6~^iBLNUIx}>1-RT=b7R>r48yQ& zE=Tjb#8v2CyfN64K9L^TFL_E$i(uVJ?eFVK5LZ_+G3DR;^qkb|UIL=*fR8jE}b zDl|nn2Z_hqAmhF#&}Z$$w}KPWEw8as*drD621ds%<97%+l7=RLk8Uj?fZHby-w%FF zr*MM*#Leasxd3i2Jl#7539v;TynG9&p>ZQ(!l11N5a9*qw5)qdo_|sR&Y2yTCnR4}1*q ziMS%kmcArk$>j2eN@v&N9(#9Dh+!K8?=ig=fo3C2))C-)Z(aYRB@@IQMJdO z;5E_>z;T;`tE6+mo1O$ifQx}SUxa5%#zNNSH0dpABMFd}l0lLYXgD{S4)uL>$3Uf6 zygSkDaDAfeG$DLPp5S^&X&fj0C`}+QNgYHkJ{PNr`o*cxj^xN%aj&qCuM1YjyD+*L z!S-TWFuBYl_6GNtK#49i8rOqAu~KqhYJqemK{A-whZlk6^B8cfuYixNLVseHk^S6r z-#$oKs7pEAv7QVn!gtNz7iL#p;ddmb$OySWO5i#6gshWvCoae2*fsPn+8WyrRna|# z$6(#O$Q@;;GK1&~{vS}2eUZHZ40$xjM{GB6wByhhaFk5I zk=_+g089B7u$&sMB~Z!>xtH7@pgE@tg<>=qqn2YC7>CKgYZ{N=fmBi@*dCvV|3Sv( zJ|JlGgu}uv$Wy;1TmhS?75J=4K!}ZmB=M23Z+ar1k$JENH-R7>f<c@SP)o zY-;Ols}9@>E0dz!{!IRzU`IANZDV#4COgufb>bfMxcScpH}e z4P3+)SZ*YwVmAdgv^OmOf28bruneVZGI0uHFs_*6o1WOM)}5t~eNe ze-6G)5uh*gr62Du+9$pPp;%>;tJ_euv7g+}6UNhjRU`he@i~tpIBw~QyqTr_pz49+O z+V5aV zJJ^D!aGb6|mEL8bJTC$5c?qrwkAeOzfa59wcG3w;&xQBh1FHB2?6=>rY#O|(et02} z(CmVjAKv@FpCY*LeXzA6{B*$YY9K82aBk^fEqVA~298-7Ecpj)*-c1gzW`_43D~!1 z;HaL4Z@vx7{|wY7_5XWJjRYcEgoEFBSQ7%0#O3gPWw3WLVEu0amwFzSa1qx3HSnU} zVYyCd5y3!t)`MEZ&T#Dndnvryz`tlEh}w;ta2 zFSMT<@aH(3D;I&1t_?oUf&3C?DSd)@&mzJPK7>C6eL|iv3i7Cz182{2-#G(Pg2hTY zLT`9aN=T(-Q$?x@(+to)(HV^Wv^R+~@IP6(iFAz1<_ZD+D%RDKvd}~6M!tXi*C0pp zq`(mS6mg1Bc`jJTTBy>M<%)H(2lxhLotPrd6Grim**0{x_ZL+{g?k5jzj~+pX8LvP zYe9((gz?-L(s@!Plq%1b?Ux-Sw@KGZ^u$~&4m~a+{6wa`f2p?@#d~g2$GjCVLekzJ z#oUIPoySNQjKMcb9svFFRMtk`LcUElibSPW$cj$EZ=;Qnm2k(f2TaH%Yyum~)&kpa z559oU6*{BCiB-fyu^0DMtd!)E8zkMKdgCE+3X|e5q2lS8z;hkga5|Wt%cA@_aK2jU zw@eZHoi_nH{5SL?7tyKsHt31lOG1gw*gDjRK7wO)OI#)Rpy#d2J^P;}m%q$4;KH~P zZjz8CT7jW#0QCGXY&+yM_aX{$6Fvwy$_LOF{x8A(g)oo5$<5*p0OL9zsva6bg-9{j z?O#Efd@tymZ;A(@3T8OeO!URd(0yj!_fQe`_76x@51JRd2tKSBC^RU42|L_jD-rWXY^bEclt`>4I z87D#?yA$n;d9az_v^|N>!GrJ_*m?99B)A*JIAJz?rW<#W?awB$r3}i>U~9v+k^%?g zKjq>ls5w}R&Opzj=do!}yKojeiM52MwVUWVu#GXvxVv4zcM#j4pRjT~lb|J4kbt;OHU@H!r^}<{J>=UVmFTTpl&Q(jcnMMu z`2Q?e);I1yHk=to$3TV1N_r48nd>PeAw96;@a?&hF_JD|y}btc%?!}CTn&5GK9NfDF!j%h0M`Pola>s^W!t*dS))+l0X7eh}$hKoTKu+o! z|7ECT83l8V7rl>sBk2Mr7wWkU!2i!d`lE$tKDr$$LJnZxfzk*J%=GS<`O71bME<(@iJh<$k# zQCyriv8YewRF{_iB$&wzb)s=mkS_4KAxPs@#Hv4Qa||BCRt-vWg ztJ+;vzZ$VFw$F6zcZd$RtF`wsb6HFwzDa4QirU5h9YFVYt)07w5PsYd1m)9e}TFXKwn&5)^~7IR@hx=KkLVo9ieT;U()yF`^a zG`7g9Sry%?OKsVnNAy9y9v)711eWrKid9cmH&<^`uhz`bc$NQ=#n@T?yx##lY&%c5 zXNUW;tHd?Zl?5K3=DxX%g{uv-W$E}3=~1Zzo<%G1F<5(~6I|PC3H#YR-zX}@{g?BU zW2|GPBgNr#WV_<1Q9c{ph@<$iq7)c+g+wPk5BKL6r6$N<$dNRc%B1%tSBPu)P&^#h z5H}<@$*VwdzlB--W_ne?oWP18uc?JO#&iv`I=3t1Br5(sb;jM#9qH=lXkq(hNv^6_ zb=_)r@A3EH5TrHkm;9FPf$D)By1BY78ky=pMNj!|awEP&9K~(%OFd7WO0ZPSbL@h& zpl(n*@Hf@bKb;xKX(9ik9n`^|gS4GSk}5nAO%rKlsr@}BZ;@=vljvMzd%8Rbc{t*S1s`p1IVhuifIkc7iL+eqJC zI*$8Ku%cH86ZswT6YoKe%M5Io(2?VqWcrLRi;D2XJ5y}=mSoETi_bdAVRe1-oboke z`w1_RQP?3og}4dNgDWA6@3FL#^t|La(Fk1L@3BK*Uys5Y6JgR+Ss&#Y z(#tUNI#M5Dc&h25*bMp7_2n~VLnT>A5{pwU>@zK`tQFR~HkG}vJqNb!KW7{@&!5W1 z2&+(z=qwG9-j&LwzwmDeFZ2}~3oqCr=7xU?HN$?UdQ`O<5|8WI#yB3kp19+wE50_& zd#<^75(v>6vIO~hFnP`asymk)N2ZWJrJ*Dv4IuxM9w7e1dx67kCwWRaTz}t~WxQc9 z8RrHr3w|2@FzQ!iY{)aiPx2R6=vnSw>09c*^Dq zC+&I-sa7ibNY4}3B+I4srEjr9!Q=1c8g5lswATK%t@c7ksLKO+l4mKxZ(=5K)4+W_ z0Dnk)mChvRN_*gDBvF{hjb^6#2YAnTXs6mS+}0DaoYfYe<%2EV*@^n@-wv*TDC8=( zl(;9|AiD)MykUyd^2f3v%%w8P{wI{v)zMYcam2RSdfYkz>JRjeHLmNPt-f>2bN&WWfN3Pr z(q?2n`9L;bK3;xIHdt0c7Qp$|lzc9Yl~m(n!3cazZdQeSwwd zbj>t2czS5R&``5XcT>8ANq1H`W_fb_Um(xxpD`Vb zdXI*CtB2r;3Sk@4XMGpE^T91U%oPB}tNOOCHp(948t+b}F8R7J&$-pY7vv+>80wre z$px}aa2?E$mCLkX8gDBz%kGg4$c5x$*>l-K`BCLM)n_%M!SwHqV**+SEDtDwYW3YF zr#U0!p1GfKjp7*^K_|Erj$-E(>WR17bHojmQO;FP-ZP2mDttnxNV>?XfO);GI4C0| zcd-AEn&NyRk=L`uzI68(#~y1x%Wexe+nhbzddRjK;LoB%x#^+`wLvybCVCbUK~BR6 zK`O%YD;U4GttZCS!`Z{x+p*iOu$SAtjzO-D?s(4@>M+66|gd{}oh z0htK*(C2s~T}>6b8auW^zwNSzInO!kxe00ta96BG8p4?DV7NO>mnA5@stcOB zknOu!HAcc{49h;~Di z;#jT^J((h%i|nlJo#Tjem207U4P-DXd{K0Lt||8gMp;h_HIP`StR4%QU~iH6{Cp-K zoL8H@r@Rv=m3yf3nqz|fjs3FYy=#PL6}1|!)Un)L0mg-~fspmkU-}nVn;R=g}gbS!g2Rq%&kMWHn?RiTTKNa4IAVP2hRy z0GGhjrG~k(9k=Yg?R}l+s5QP`zL!2HnBOD7fK>x>SaM-hbb!zgd4{wW&HN}9rM13p zl+Po$r?@j*M)y${?%Lr@bjB&G7I^yEL478R!`O#?u>Q11NxQvk@^O@6#X%yC17~qk$|$mdFJ!M9fE1&67_q$ zJKM$Ma1Qf~_jQ9it%>d(PM>`qY~5d8C9{s}gmfpGlA$t_{GIe4q6c!4U%)qn+Sg3} z68p;kmuG;3vNg4zcWie}^BjZg^&J07raxN_*+)Ls#YGBxg%>b3a}%C0ukm5rJlMLr zl<3~(ZtlS$3+yDML^gH#Tx!n(O6JR_Q@KV0Oh!X?PdBU*oP=@`fqaN0xlis;q$`Ii zrz>vDy32l(DYE~L2q-m#pje_4N(g47l-Jz#-tVe}t9?6=*xkW(r@a z^R6Th;{Q#zgMY=(Q1;p9bGZ@7LRm1oMkLau4F ze46YVc^7Iok3iK$H+2HcApnc3Ypg$|pJ*7ZHyE!6Z3rz4s~w(Ux~!i=hVZMsd9DxM zWLnQnWzKuYyA1X^j&1G_l*)h9Z{u|6S;=-;scf_K3YN!rVcRkv*v7(Sn8{EvExoUu zHoF1XnrE&T?y;WhUY#Gz$}qc<$bF}m(QTRL{0MME&PKDv)%+~>FpWZXb6xLy3IYvX zM_f1E&D?*v<9xrGA|LvSF!_3v3qHASlGVJ>+3XxoNlYp}G+vWA}LKQgwYc zUy&d8O{Us78@vAYtOpmB$NP>xDtt$WNj8(4$Y`Pu@`|^z7RZ3na!a@w>=j`7XL(F+ zx8pZhxpeM1o@#2d{{YPE$hrQklWq(t$cc~^GXyHW3&7Pta4AfgFOOOU)axCm;s02= z3h*Y9w;#`1TD`{C|digU=}?uQ>7E~QYUl)8ItBfFbysogV4E%0%?TC;AUd4bhm7|{JQ*4xM!1U9&09PerPiF_P{2=qrin?Bktu5ch0r@ z98z%mY2?bFUfUO1PgxsMG*w3Jr#`xxanABxg8AZ9aAdgUdjgtmJzRf+7Hpblz3U6C zP9)eKlPxTxEqlp2YqUMxahf^gie&#{Y1bL>Fgpzn&p*KL?K-RiS9lz3Qzt|H0je8I zZ0~GJ`*henUSn-#?MHUCKDGHAYnVB#$*VE3DQOBdD@fOQ-Q;SlLLEdp2*YD5RQwUO%HZ9 zcO|=uKmpcjC+rgX2CV9Rq(Yb>?h4;|t{fcE7l>x^HhT^1YUjW7NasR!3Y!IUM6V+V z?!svDIyr(o0Hv{p+Uhj8`oPZ581}q#86$U1Vq;*nt+!X}<$&vukd0?T?4h86)D;j{ zL#+pFZ(v7el+9>6YUfjl%xUP!`gxymhVYjQ&xtQ0eUZiDBJhF~LcQ#S+0hxG)7%Y@ z$NvULh(}4Fofh~8gcaEWd zbL_RfrwmLp*A;p^lh3qt&GOvlCWv-If7ze++IJE5ic?)vK{raye5U@PJdX2@Lc80x z&iV&=i%hiruxsg^pd~fk{hU<;@9~C<0d1@x_B<7XVVeI@%-N864qVN)%o@5IHQwIOwhLx$ z;nr35{nS;cmtBE-p6UAFn(az)4R3 zg^K3NHL4qGrRKFZNxv>IJ7|3HnV^`!wz_?a^O%Q!o4eZE(KCjfM&Mx%IxeIwm!Ncr1*Xq6De#PdyvYF}BpAH0EM2e}qFalIlDbywV2>U2| zhW!hmT`2I~41uw(v)jiuU^OlybAsMYeW1qDhv+u6fqLK=26&fN)?;K5;AA$Dl`u<5 zgc>=-1&X-95kKmC$vMJR^J&3K5rSMocj0=#)Nhl<%FfI7$v(@%<#*&O6~)S#YKNv1 z)Wo*>rQivZ64)rvs}Iy)){Ip&Ci29|f>_>F-z|@Xy};~aTuzML>l)~6?%WQXbPJQt z)G-cc3wDe91ngg{VHdV5?4%~MC5)S1OW&cF(JMg@Ach&p3}!Ov%k+GDAUzabjiH6~ zYI-))1p3Oo&OehiWoKIhTQ}QV+h6t_jtWY}42IS0 zN$zf5ANcsZ<6Y*j75pO%7hiz2pp|&6;u_~qdpqf(q z)SooXwW->_G!@D$(77Byw8jUZ9mMU0)A%Ov$uo1yLFuFpc2^epV!bWhTJ|bva3(vy z(B)7%qiGv(j6<2b^b0`I4`S@}4tfLap&8mi7t?J)f7-`%arSV&05|pZFg}iBe305S zdORp)7E>Ro)6^Pj1vm-~2awRej>nF4$1TTgN1mfKb)T9{bC{>hJZBr1l>NX?b9>zX zcrN;t_k1HktKt!t=Jge<5uO$O6bGWQ7>d8ZCxLHeG~5q-kzE0<*esPvJwPkh1?%#) z=d{bU0&Nq`Q1v<0CuNLss$z$HifoTGK{`gFCU#(%$Z63$!47cq3iXD&uedfk8!7M=B?l?oM)Lv7L%huMRT7`Y)^tuowL8Q-?Hzu&$IUe z$5jrjgKf4O?VZ3SH^;#`iXD`Lpc1Gi)Dg->jRH;0KL8h+>0AK5o_E-V?r2aI`_KE< z=i>C@z2xhKgG4*UrEu4M1~-CNPA}O-dAKrLHCgkY_BJ5QALx(hyX!~jujvoy7wS8M z&g3y2q8kjQctUMaaaG?Gk)VJ#iAcq^gQmc3ek!-p*A@^Rw_VMhHS|a7C+xm_vi$`p zxW^WrrMvmQ>3}KCbjh^Sw8OO5^x7mb&oMtYCtIdkZd$%svY>~*X|Vy`Z$3EG+Q~ny zjP;n!XB%i=Z_l+SJC-}LVHap0l|)z5(?Mgcm(%UM<~qzScK3&w>qOsv&Kq!aa{&8% zzbFQ|jkd&J5dEc>WaaV<1)`d-7HUIvRl1(~8~T%wuGRX>`e$%{MZZViTmMbBTlbsp zpmw`vpSr8+j^c0G7D-3EE80TbQy9kY!rkC|>G{DbT$>m*tW15f|FRvk&LMxdTm{7b zNK>xyn(=SrMdJzMbz`luw`nu<=7CUtr_Grz0h?Y7Eni*0;+7yBi9j=hEB zontEXgqlQ$FckC6ndTYOq1gC{9#Sf727(y(SyqC5Hgx7gh zV@*?Sv~Ce-M7Gth(jNpDyN&_Z18xOe30NC2EFdM|i#}IZrQM`isiu|5ilMT8lDBvj z8i0_(Sb-aMiMDuuy1xSoPpXn2%tF1Z1+!s)f(SZK2k~FEcwze*@7Fk=to)OpH-u@Vr804VKydBDF zsuOc%yN&@jX0Rt7^ocrh7IRB^;{@fxEn*xvdaa3zlIF6z@+Hay^;pdqtyTNCt~u1a z_xiwq2?4(X!UOvR&JIipL;{Zo81-J=HSGiqrk>crTp_ z9$Z8h`_^zWf$X(bfQZhD+oCV9DB^F4P?jTqrfjeNQxmVfqV1qN13cO8`uTc(z=(ij z0pA051Z)VH5}*zkqVK4qG&$T68jOoS#D4p%bfyN%jkx&cU!2jOHokp$cCft?oHM`6MEN3mD z#rc>eO<^1bJjb6fHc z3$&tJfTdZF-NBnn(xn^a!OGd-9XJE-Qf_Mv(3cO^eb)7Wn)e9W(+4;X>-l=07Sjqf zjB1xMQywjwEGY!1^~uOG(MbWx>jC)PRL>1I1H8twsj-e4TblJW`N(24cLg{2olr(2 zO`S~*KyM?+6mLo}#hMaLBcLB-O`XjX&1=lB%t4luup^NII@?!Cifm$CZvA3Sv3<7f zwl8#yqGIU^@Oo_E`~Z3`L)cF4Ku}rB2OrMw91S>FYJ`_WLC7@pBId#8OZ2h=`5NUd z)duxwa1>0@HqbWF9@Lg=r|53$e(9{b8eOe!jV?zUp&hPSrEa4-qBtviBMBw;VBZj- zc#7}~zdLUu=aRP?aCt`OA*KcW*|E;P!nV-C~$tinRw<|<}7o(<$%Qtnybg5d?s770L|J2Q1BxiUdK}^4SY$uIGe$2 zILuuH?yF;9SGP5%Kld-5OfXZ(idrMn(Y@G9{J7*#*=WT*<#p9v^&rhZnrE77%>Zq- zHdZ%Lw_cZ~%hr{{(M`8RE7V4564V=%cjW?Ed&zse3{@h1MQ;Qx_=C75Riq_*#uCme&cxpYEiE_VsK&Q z30K0r!G{E3J3;ZmCfzMBP#9r+-3BwF7)?*jP0;XPuYI8XrcKZd*B#Pr)3wyqXj^L^ zYtq$YRF{C)-B&uDSc2U^?4o$#HrQXY`kH#rxp%TU*K1}TjZijwE~I9-^&)7TU$acJ za4esobo!bHo0|Y5YXOWqL(PrME6u6qYtRd%nA4A zc#U7pP2}|VzI69tTe!5&Z}dTGkYgq6>9J7vY4QoEXDo*G+qPsBNdo#m2Xq%RCyAb9<2dJ(z20ASZKo2p~wU=$^Hn`V; z0{SQKc|d<;a+CQN1d(tboP~6UwZfSai*z|~8ILLBRWnpGRT7m{m7rR$x~V!3^Vinu zCF)n|BkFzX2z9OMo+?c_UhziOUV4PMiE+^e;*pRRA+Hr@x%UCMhX`Fc3`?g|B@PSR zOMHbHv<_DLzFD7H-&)^UFIZn$)2$f1Cb1<03umNln60m^H#}<&VIn;13IDr*;`?1& zcl$m2W=9b9liClAhYawoj&a>`b!Us%f$qod2H^QR1zJrYry*cF&hjI``L-!?9*h81 z64BBNGMBtcu|xSlIapb%IH? zeh2l5TZ=Xbj)0Fsf^Vs(l3nB);he(Ur_EFhwbl{nNVjjW4}dvnCzyL4x8DZ8%VYKr zzz!J=P7PZeX%J4q-1;uu1#fojax8XCaI|*xb~JYkaEx(WacHPiDwy5}v+WHG&$-B1 z3|eCuu&!|k#+$zGLx4Sb1FISfeLFa>xPAB@!GEGrpu&3qZzp*vmB||`9xCb-BE?Ag z2-$D4figt)NUD+MNdly+q#W6I=_qMu=?UpqX$L7w{DxD$(O*lP|PNH$zO-bpNbOV}0 zTc}V_R{KuZ&^fe(8Nw7YdqCxOlIx5so_)_Ig4*kU?l#i->?gxr7$LD3#SSrUFpSKlg75)iWoifmZ z%;(_TzM#_k63}8(K=n7(yTK!Kr@5v(&oVB$g4zfu`%d4Q`}4sBjYUrN6vd<6Z#$RBJoMNikr$6 zz*i=f6^g}jqr{E=6i_~|I|$Y)M_A99hnRMoO3dx7M{O7FCG;E5R(>P#XCw(M z5962f2J-rHM*xzK@@@590R6dgkHq`ga}S)8Ps56emzBBa!aRMPvzjSjy!1v|Nxz|H zQTfy`ryekzP5%zfw!U#%mlXxtzguhWB7mgQZ3n}4!;bUQ)us}FZC>BNu zQQ=cT8^L9MYkny&j4$UOlK5#12Y673Q;7hL7Vaj(Mucb5AI z`@q%N)yB2S#R59{fIH1|(!0|)6Vkq!dlhg&{kg?}v&{rG&MV%ofE$knJn;i>JJ2b8 z0r%oZcy0I(_*y|*Xc@QpB7OufkQ>Tr0KYuabICmz)`5KpkDujd%J%0Klk2bIjPoSEEmz*8^eZQxDk zHRKh8Qf)BzKIm48I8On!y9;oyR{?Kn@&y2Tcp7I2pfY#(B)%EmD$uaK?9O5Pv(+v> zo5T)b_p-Q~bh`l4R3^G9S}G!i?S%scBl&}Q5!^SvKv0I<%c_92(8g8a zoCYfx^VtRNZk|#PXqSS{>Q(+$K~n)CxF|RX9`=MFm*?g-=iUZ%?;KwV>`$3sH)I81 z|9-f$-J?CNywzU0@1FOXR}Gq@MW9xS_znZA`#tDSuk}WHDbT_`@t2c6yazSe*!>;rB3Gw8f-<`i(6aF=rLfX-_<_d95KPvFYA&j4#| z^X>69@iE>nP%CZ#-aHHRWk&&GI~S0|?Eqi7fU^WjB?vShkN5`oXi)kb2erry{bfF& z%K6?VfL?tID7HTUIV%MH-T9n@pz8Y%=NcfU*8q|_0u)_;_#T1w>PFB8-U!(6TM#1$ zAf4NArh?AyRZswa0(*M@LaJ^8;&~0E0Cwg%gX{6hgW-G$Xrb-~Jle_I-sd@00UMD*l{~xcP)TdE(hfEE5IV3@NEX2)uDjeZU#IF zr4NT1Ci5wLp^*12eLW$)a{-07575I`eUIUnegP`D1iozo)TRw^#w;k(R>Chjpw;-1 z=?oyGYv3Ig-gALctpqU1L4XU6h17kUd2wugYh7u4& z^*Hnz$o+4Cp1uR<>thg)ZIJ65pv+f8?9w2ZF?<1ee!m_y z?niE)fF9v2eDW6L!vjEYzk~1zaN1a z{60e5Gob{spl%kzI8Y3ah4qO1JjktIfL-@<0KUSbznrq*C&TAp}E={H;F`;@1drJ_X9aUn;Hszg${F8vJF{ z7E;s}dVm)7>GQweyguzMp}ZPHnKp#FnFy?nsQMbI1h#`5uEK@X`LFBe#xV7(skmQHH5rq8VKL@_ggGV3aKd1gxA$&&!@9^QX{`M<|c8t_t zO$Jw#)%ONLP(uE6#X)=;L5dneXi^_fe+vDzt~sQmH5{$rSqDgwzoh<`#@3KdfAE)Q zD@bos_p!K2@AyCMuT?7erUVXYeL9qIj>0=Yw1v9jPfsZ1Z5)(RY<;SlL)`pz z&tJEiL3;eHCI!y?G4`j`-)}U9XKm`Awf+B8`peJ%d4Hb7*O$A$-wcP}_V@XExRx5O zDTg>{>Qm=GBkJQMg)|8MKevTY61@6S62NObXrHe7n#F}PHv}I%bHhx>f9C)5m*@Zf z{OA5$@Rzw5@<0Nq_V?gQI07IRA&|HJSZL}WRrOc*Utb2F(!lEh@P0UyK{y0|59m)r zB=i&h+|k2t_-lYa59RQAe;xFn`P1V+!{D0!z=iREffnL#EBK-XuJ~Itw?47{-}C>XKlT3l%CFA_ zc%i;7`~SlYOMUSFsm{#f}rL|_D1fBdiY_~Yhp1OArrzu)H6pZW9hf7kSnY5v&y zuf&1$IqUlYBlH~pQNO&tXRfU8n{DtbYN$c&fV;L3<}lYd?>V2qjo>cm&i4ZZ;UZA! z5Ax1}d&Tyyrp~jlE|=x}0e84sxDSlFL?*xen^@l^hSW9v;k&wt~|31kOm`A<$Mo17Wy#y{ErN?v zFo@6cV)z&NM*e%gm~Z3G0r#x&ybnAse+GZKpra@q8G$o|N_t0Dq3|httBxwQauyFq zE{bU0Jojt+cyoxMMa{#?r1Fs^ZHm8?MpZkEH_0OVc_+%CtJwEYYL2?j5LaB$QS^A7Qc2ocd# z(L|&jUIngGD%D=~K;>&$hP;O=O|}e?^AGvr*aNi1vBA2dws|F9)6I0nTxptRd0?By z5WXy-8JUZ;LJvrKD37VE@;@ZIv43Dq*DDyvmARi%Ct(-uhTU#$1A73|Yz9Xbvyn~k z(4HdSblBs3BzVm4%DW5P?F!FrHiNn8SY(?3nhF+DX=SZn?JwzS_7F!cMA2@NsmkrT zLqUy0?O`Die@Bdppu;AFjM5j#$DjiR7kp!wiKdjQoh2&^P5I9JqDb#zt(0x z_ylN4Oo6I!Y+?H%sYXX?VXuaMJpi@1Y&^5elgo))-AYD{}K^ zWZA!5OdtJj!rQ6o%f9c=6_voEL1x(I60y;#+Gn5c~ZlI29-(EVjhPa)ZUSO6Z)9D#y`u# zbDMwf`sIE4lDDyM^yy2!XXbt_Nvo@LxO`6Bt&@c7qt3^4PiUL8KEWRKNAN>c8P<*8 zjJ;)TQBzkOlfNo=bMCxcO&(S7rZlFek;Oov?vtSK@CTwJjuI>IVss)hQWP)9U2mId~s!qtFJC^P-Q&HBT5BXNsr{tWb8v z{^L5Fd&x&oH{Rw=${m@rA!lqZTVO6-UA@dKr7~EnZ>(Sux{MeonMT;~V(d@EE^Na0 z0-InZtfx-)ECc_l#r%WFN=b&Yk=`9bMP7@IOgxs{uffrzJ#lj)P6rk$*I^rdC+)*( z78KpgKJ@Lz=WidHynFP4`jV9Wqwsdsc5<%kx$rN=#Gs$yN1|rLB_*tk?-?^c?4XX2 z9u($#S~yl1=rUiy(p>j1So7TeUWf4#r)7b4g21(H6J@5CE?9I6v< z6Kv)ReIcGAVEtY7eDpo!NyH~{t9-NeW)KpwDQ14c^rXGXDanr$%u$Zu-rD(6wcrf% z$+Wl}%WLrCWTxuV`FBs>&CV$N9+kVIbe*9Ab;mau-=h_V-ilZk^CJoG z;*$amZ<6n}x5(QEd}2=UZi_&5PbSnX4U7#hjCvdAOsqL~(BbN`pcmop=(PCk_*ZdQbZ$sz zO%Cqh2e_NqcGS=%+4-+?(z4fOkICtfpI^kOoMbGv?RDC`LxnE%E8&nT0KxlM8Y)?i zJCSVRR{mjL9d{^K&QlA*#ci>_rKKvX{&ENzLC17Rc$_#bDK=qhG#YwOcS-(1M6qR- zsLCDrPqVTz`RS^+zuuhuu;B~$=aRywRaKUEY&Rr8EeReHVTvhC*q-z#;b}~tu!q|5 zk`)4#d#{zKK3inVIsJ3lk6Yhkvoya}=JzNotKDT~7}k4Jn2)E(zboIW#;eb&iWGeL zbjdEvDS9a|!V2zL{w6`bXc9I+$|x7>7lz!3$cUa1Uz=E!csg!NV@MG;svKncY=7ta!0m->lB|(SR1xYJwL_V! z*e&lXnTNGUW{W?I81Nl`f;7TsNDnC==spD{hh;~m#I{L@PPiC5C~{>;YrRI^PdwD4 zvOcS9St!aG{jLAUDQ}5)p&tzy8-FAgtS?s@z05|@J9%&2)sVMQrZ{K(i1_H3l+fLp zeiEBd<>_v1SUtX&%-mE=EUZ?MSzYC?rP`O9B7xtCUYTl@u zsaAm=P;>kQx(RtFo+{2jc=#~M2l+OE!3SPy(UHI`thUUl6f(;eR%;~HEous&=4GL)%^*lBs=6cljuzR`ARf4|y!Mh^1JPq?>#jFfV$AK8uvcZcP}K+%)-T{Kn|R;qL-Q%EizY8e9G@=j12- zjQ%Wp+x6A0*Pq{sJ{|bhC~rvVfw~;VBbXsQsU8wIKKx_k&FI*uZlNiXv5tc%DY7$$hi zzXrahpYdAR1$AxUgYY*oT@&{cp{V3S&i=2;_wtvX z|5m?j`u5OAXc4(TOWmf9tU|m`dPQFx=J$*-V)+8L_W%*NXI%+~Hz*+nH;n?ALA?Rc5_>ceZ( z`$k`ae-12sTRn?nIEN9FEJZsg_*dw?Fhxj?E>STRbMue5vuzP|Bg&r_bt(|%8}c_7 zZZCOWxyCrpvB7T_MtO}~$@z)>Vta%w)@0$~oH;gS_3`45KPP|c`KI<&m)D)%9RFbWvi4_4 zp}9s*P2>y`AC^XH5&|oNn}!SulxdzxHzJX|hpv9sF15ksLyH3oseDc0tYUt7VKvY4 ziQevADY%QZmN!xVt4+~g)Zf(NYKbC4!ojwR1fc%Z6u3fP_@l)C;uZ32?e*Xxk+pG) zk{>s`+aMD4d~?;mWC^pyH(#ulk;;dF zDjKG?$Zp_8VhL}r>ykCoaJo99{CMf95=V)-jH;9wG20tvyEj_!54KJ=L{$ttRYto) z!&lE$gi4oTt;D|z8Mx=&&5r}l$8SVSMX>f^&`Ma4oF4yILPmU_xR{u~!`kc3vbCZ# zcY9m6I&;bA?1Nu_eZG*9`N{FQ#kUqeN9LzjoHw_iHoD{ax6naSpM1FTZ@Em;3tb~j z;_h>GvXjP3HJ>Vd<)oh!dr9v!U3Eox*K_6?A@OOb&XchIr zf+c+wr!?np#IZ2W_B0FklT!rbzf?xRcBQN))duUHQ%r` zbe{Hv@ji>zqQ96@LWY)^emwgbNBdpWHe04{MP5xnWB!QBzg*UyY+qWzM$Vrlp=rj#>o%uF`CI zcR(S&QCXEW^512kh=AFV1LA|C$)djEd1x_ilr~h})YJv^3t13$G0YftI;>gf{eaFI zxvUp*i!;D=&_2BGdHH`u9}1e}4a&*Qy`Gm)c(jzPerUR8-9&G2zvHBW{zisqwlEM@ zJ+}K|-5$Em_M0WdG}kb>ZbR+ux>Do6mgaUYL%XkV#tU1bABq053G$)J*~&J`ir zg=7#h1aF9~MSG*uu&u;5X`an&*KveLP;D#X+LoNls47j4Xr?3y>R; z-N33@<*s73;8Xsmf|bxCmRGc@Ei(2a!54{Ty<+Zj?q;5V_m+F!H_3y#CR16qRFX0G zH4QYbHrAQ~$TPMQYP@TPH=4&2m7?Q8J3n2vM6nj!mww6aOOvJRi9>i}`~fx{&mf|K zvGrCtMpL2h5!5tzc5pv9HV6K$`>q-#4Mu4015YWv#++5tt}>)7x>!{-t;k*|D-JGy zRK3vPG=H+C(Q#~w*9#8c-8nArCJ)Db!RevK+QyM?^GRUe?lu*f?~)DdedwO-1Ru>C zBjRIfNr`l|yjVdf^@`83{<3jWuEc}K!2I_Y58q5)wiM zj@2DeZ3UZ-HhhV9DlN4rYb8}w+2Z1_g_8=&!aK!7%2!lBuIp>w@RKx6FIX z+uvK~u5>+T4md7bcUZ2QW#$>Cizbd`mzAbIjQ_g(N=7>WQOdJe1T$zB1>K= zQ_31j2}us#1z!ZNW0xd5WET|qstwwZfb&6PgF6O40uIXYz`5F=;3~El5%IG;bLruh zn7WD8L`8PVlH$^$uSGXY8dpfG-_?@FMdTCv9eO%A2!^p8*hKakAok8sz3g%;3YrMx zE&VLh$sx7@j>*g!HpKTYua77aEyTwG!#`Z{TCqa$L;gY5RJL8(U9u3|ijRTj_$=9C zU}>GxbkeU6tO;5aG&gu&ur-jQo1)qy>wv8mT=g||&as{_1lBgJT2Z#X zcY;RiHmYt*CnHOEKF=P?U~XMoTJ@+ryQEc#w4`%Maal>_;98l{Z8>5SQcIcMuA#0K z&fClz`ifm{YfDC$QRAn&>bjwZ(?*Y(XB!0k&hg&wJe#N|j!FyU@02(Ez8!$XjZwCe zuab6?h=@{*#+Cz@?XmQ#Vwn1n?rh+a;HSZ39NqOm-ke*RlQQ4QBG0F<+r4#C8H$!h^NE|$v@Jc@_DK# ztxG>Is7uHu0B3Xwy%~Hd;FQ`XUqxs|ow+QV;@D~avyQE?!ZO3l^3rm=vaV`sZMI>b znPc@@cfuNAZ;G@(ux+x=w(K(aBb zJ&KcnjT@SPu)di4n^qjN#gdve1QrQjJoc ziH_nQ^BkcUkc;caRG+W3lus^ql^0bMRsUYAHr=uOXZ!5%IVh?>-2)JsKgm%Rg)yUc za!q#Cg(|FSX0@!&Zd_(mdIPz%}t+l6*OFMt}42`NK* zKnZoh6D8lE_v@$nPZOqZ6WB7iTgc(il+c;MI|A-##hUx_k9Z?d9Iv%^fa@`pZfghr zU>4(R;{aoXafxx5X^1JpJPG(2$(GmV%O<@^YsxX6F?v;;_Yr@(P$Mov81xW^-~`?XABG>qx8ld}D|lC;5V$i3W&g>em5)_ZHSxN^`o#fs zfG=R4K1sV(m7z$N_Q8${?c77&x2_5FQ2QeCf$4&=%+SqnudclAZk?fytUC#c89xE_ zzTeo#$T1Bv%`pX=wwY4QQ$d-&t?egxsTVNA*bGk?=O}NbpttC$xEs0|i^mV(Dq<$_ zif|D-B-bT%k|N0^X{sz$K1Cr>`jlT)nSj(6Yx!EII$BjM?=3?l-7tyhcU}YEQ@7sr zCwoRBe=)qJ^xTWHxR_?g&$On|-mKr!JQM&oSDz1lr3{^C?qz(^X@CV}-$M zxM(~ATmY-FA+R(?n<;ZE%V*0T!2EuI)%5<3o74xotFs-O1T0=3cOQR;aG-cDuodd? ze~1LhEeRrRDAhx_F40M3l0Zo#$w<;I4I?YjLs{=*mL8Km3v8P!AEh(1Qmb-AYB-MaT4k9zj?_?oa2PpTYz^YapKQ$rsj4o5}vcF_mubOm_+0JwP3<6|kj5 z`~X2?;Wg1`@g8I`+7sj9SMkO$ZVDyOB{QWrrRmackUPEQr{(|1Q{}7VZa~_GOa8+x z*ex^>5s117zVjw?zxY~vkAPdQ8aSwWtbvhAqQMygzZ5 z=qm}9-jhZF_IHfzl*}w^1aa9fqojSLwL~O72i=045f2ef7kuL#0Y$yJKAktw9SG`c zVa_aiA2kG2srOoUkRO1Nu>$l!=9>zQzl<$Rw@tz3hvwFnCgfmHHqQS)ghlkHmP zM!iFPnH&YLD}RAtgK)X1hd2~@gmeXUwMW=s{4w4WxWq>#L#0ooWzu44ois@{RW?_a zCv7X8CfQHW*gLq**7|t~AbdJsYo97d|({;l+ig8g#9i#1h8wrT^&CvEz z%{ucI(^}JG;2-Tahg;rQ4ujv@1!(nhY6N|r>E;r+UxAwRAkI-P#fubl70wsU7Pmvb zB3scI%!M5TZgVO@NNz~FNbgH?q>rW7q_?DBq~8G(Es?g93?~}m26O}DQJ(0%Fj_E+ zw~X5Y6dwC|{$ZQDx;y(aLG(q(Hv2l;Bx@>JXE|jVWU&K(fHgIMJ`w|dUY_L!nP%N@ z`_Imyy3>C$L9Q%zKkRu<;+*0Z@<@J?Fj3T9+zZJ^CZYtE19|iVA4WVNaLGOiSBgkY z5>{fCq(cl(OU6n>lDWiT{5JL+{Tpd0R)_`*;|1q<67DzO9`9J#FYWC5#Fzki{nT;U ze%AIJc>5AE&C=G=#3BJ+Ncu@qpf})1vOy_i7tx#eiBG`qU>WE) zWW6{=x&WydP+)#6g~XA<75`QBIhM8sar^fap(z5-j)% zpTd*zPuO5A2Ted{A&13dL_Y;x0hM}zo5qO*J&-e?(~#)8#Y~`kQ!5-t?fY%z*7;U9 z@Hw7XPFtQ?LdYKE0CE)hhMaCCZ2#I;+GjboP=)k(=S>&K4cdd=Wt>uOM}C?hOZXiW z4i6$*(4klbHWa@Eqg_wPo%_UL$gkc+S8!6g3->~LJP2p8uhH>SY;Mw_9B5k8_5 zXAAX$y`VT8$?eLy;9U;dEGvNT_=UMZ&!uu58Fqoax$SRjAL}Ht+H%cOY8eV8coY=a zgw{LY+K^(`INXl*^j_wjGZc6i_dQa;Y2&;U&~rZ}%oaTmuSOQ4TI>a;@z)*Pi+6+= z1rS`qjT@i^EXG6deC!wY8QThdJ%W{hHYFc=h8%GNF%C*z7G64F`e#B}mU&)*qU2s^ zi`n!G>VzZPj@y;CbC738z(L{=FcNDm!^joztdN{yjkJ~7u7aBfs1wl1&WSFP?d?hP zR{7e1K1VU%EntN|MH%8WWChw4^baQEuW>Wph!_I(>J~AFm_oEAVu)LK82$@8jlIIa z{}m&!GW0ykAj?6eq_wz_=#{|ETL4&LoYTs8!86s}6P!P-%rbfo1v7B_@3te>8gdO8 z2Mk!k5^Py%;gRjYr8kot09b)H;E-~`v5)!$+8!FHXQX?D_n|MCyA}}1GVq@d6#oJR z@3Uwd>>!5WbMW^#k4PW}K+HxFi3E*5hrBF-_oia4FbcherlM0&IeHHngLuWG#dAby z!ifTg2MBh+#pig7JxkopAa)XGF7)(^91rZTYzAvf>osyBdE3&?!a{#~4VY+twJC;t zY~5fRYaiqIlX_2=Gh){)_62BRPWL?q-wPj)_FlJLxU@l<+(0f$kPFw)3vJs&ru@NqZ->k@6v^T6G!8aS7~kzVka&$DSE2S3mpXNv0-8{|0wxSx^S zN?uPvns9<>81!!er~umoJxN>qAub~HL_84;^=}B#oQNbo<7s$TT#Wz3_Cnq3jU{0? z++l15jht%`$0+2!I9?nhk_u1rG2SK)ELD0HFiz=QUzrc|Sn965qiu|JH|emnvg|f@ zH@ks(Ctj0e;#3b`d*@jlmdb!M#Bb zhCwDEJH+Qj(}YgGgx3bt^p)P}pi}d^tBUzZPp3}U8{1;6Bgj*hYA9c|`Mk+y>}i~2 zWQ}8i4Z7RpHdUF=TkexztwP}8?4rtP%sJHchVA32^3LG6xLf%p0$NxAtvCy*0xo0< zei@G>1`#cw&szZ_#8YBBu>{Utcq-l(Z-@VeN8?_M!K$%B>@YSAYmN!90(2uN!m`M4 zWTSY7C{8$^KZJYNciNi>nnp+166ac`Ilb9&-}bw8IIOPxG`BL_O*c$ZliIk!@YK)) zR>*!Bo0|l{PCa1RM_#a6Y&Mu7^#?`zmaZIjqo*k-n4aau3Wf@Mi+JJ^F@h>F3G~pD z!I_UH(gAyL9(tVPFphO1q(lzf8+6A5A(k|JN{$O*1UZa##R4%QfbXi%qi7O(6_F#q ziN&H+K_~uSTpp*LH_Efx-I^T=4kyj2O^#aId+TH}-!jy4!aT+F&4`*l8qXLz8EcI5 zOh2IpsLT({cP(qc1!kh{7C5K8p!++sTwa)|B>2ie@t_C)F04{M6mNjp?j~s4JMoqH zJ{%)PLcPqx&*B&1S!>*Z-GF)dN@(HzF&&inYnT~t$Nq)U`XM}Cz?NaXFd99CjzcGb zE|&y3B^m>YoOQs>oaU)vXS+^2-_u=zd9JQk0X=LQZtP}Q26vTthAcw^<2z%9v7Pao zVVm)wslB-&IS@3g-Z`29Gj2HWmCw0WxUYFGfv-Hc>j@W#z5;vHfi}nHKzptPwYJAZ z1@uI2{3x`b9#}HE9l3?D$af?TZGrYe$D&5$Gtv~@f$E^Xw#Eza(ZnavQH_Q9g`CL8 zg!mID6QL4rfn5;dk+9aA%wY zt!e;nz*y`p#NLhE1^vn_P@1GfYs4eO>qMu7lZ6k3{Y15*?sHk~b`CO+O4rYhP5=Rz9kd zR%12Cs=w51uX$SSs$F2P87G=kEjMh1_5^A+ljoALd)zxb1G%qxulRonyNSApBE;9A zzrTj|$M|?G{vO7h2iPI}Cgy{cmu2V|=#5^9mWh4{i-qrm&xQAdx!`^jB5WkA5URyB z&=bd@9ntxy0$Yf$B~Xa~=HJ1xYH4?1BzBT+m0TmH;i1@UvK9< z-Vp!pplW*;yhlPs9$_5tiR@6bc%a=i5E}yb>^nf?aH+IfI#jk*c31Wk7?v$%|4FY& zwh=Kn3qD7aVdr%{zm#*%)7Q0*5m0KI-m=UXVi;TdTTN|c_ww1LolE{GZCJjgd{~9M zLRs0WYHf9GZLo2xNl6Oq2OT>4J>AIl-96v)gfoB_4zs82!WN<-qHr;bSkaZ(IBXz# z1Z|CV#0KJHF$c_JiisKo9QHxfSpR@n*he&iEk05!@PFpIc^ zorksO2Sl`lBYhzqC+h*RpC{`qn;^4F<Vzp>LtS|NttWeDYEu$yc8qh}UjP8a| zgG@*Ei^D)&@_|^1#3JKCQ7jRe0V;S>Y%|pR<9HQ*fQXcoN(M6sy=wzhghb?d6};D#Ag zVk((f)}SJ$Dz7rQVt0kM>hIbzL!fCRXceuthJl*OD(58NSe^hrU<+Pfa3V1Z;)OFr z=a6u;ISO$?%h79)l1gk1^n(+zRWMqXqyNX$TfjMSz2CzbpU5VwEbi_urMPSH;_kFK z6f01qK+)nYP>O3QEmGW}xJ!{`T_d}3Pu}xnzWe_EJD*J^Gk5M>f6jgG%sD;P2h>q= zb!i&dPH)RKr4`};ai7>s`cv8>#mGyglJZ&kiu#PEHhdX>X{+gqN43{m^$(#vy+mKe zu-uS~`RItKpI~LdpP=2T9)UHex*T`R}|5jJj6j5K4UcrKuk-n6+ zp@n(S-&cw6#RgJu=>=xlkLAta%ET(D=B9S9Zf8^%{TG;7r|D}O`WZZW&hR(-`pc+? zy4JemK-A?mE##p1w`k&%xjz|MWeIr$>-|N&23KvTU~5^BY&w;<)#%8noI4^bK3z`B zNjaVVI_r7n{ftT(Q_?$R{gtaTHnd!T&$OKNoK5Tc5z4_X*xNqg0@Wqv2lgggz*iH$ zLz?oTWAmLHmg{I5>;Bdq)b4?o^g4LYa@1WkgD?X+Et!PJ!cD;}{w%f;`w8FhL-+;! zH-c4|C*Bov#AVXo(mE)dzSh{Z`*q)9e%?@jU#~IzXmA>uL>GykZaAe+iJA?5&;_V1 zl{Q1|lWvOVg_HbA?m6=@ye0T^Kyx+6S;iuxbQ+s zl?||KAHl~Oqxlvy(M#G_um@jiMyO|k^=z8j35;-9e1!LNiwmrXGtq(h^Y+wsGU|=Im+kGfnWV_8s-OT_bF*^0O^d%@<9hbL(Zl%6ynPF{5*O zm-G**ebTCC+|Kxz`6;t=wmN5I?p{-pxgRk6DEoHD3fEHaSpQF<$#~j+7}Jg`4mR-@ z(g4`Uy0F2Ph`00uo^SnGo3Hs6?Xb4`k-SdsB!4HdVmYBb@8lkF1MqbFK-R>pU}v$% z*jj7_E{{tGSF=jICbpBlkT0kkX^ZKybc4Ysc~5`RFg-ds+8X^JdPVf`=wi_~4AF)! z^&6u8)_t#?qA9Je315pzm<8`ohUy01o&Gv7$*1$4aW`|dw7;>w%b#y4Ys$#onY}Li zPEMKZTABOOZl|_PJCNbZE}JW4XJ_2aT9Ny}G!L3+T6>0dpgqR*&Z7wo2>u+}h&Lb) zGxhmQAq5s`t1PLvVAi%tovz-Y{#|oI^R;G<`a3Xwz6XPLODR!I5nSA6?izTyFJlJ$ zgmFU6!J(3wtIT_5C_9d;#K#FWg|EQG-bcQr{!P;ZIC6H>WpK|7kB)^Oxgh4>m^m?< zV}6g>7^4Fxz!bwotZMzB1CH1JsXilh#|&o!-;P_$%n82$lS2Hl3|LS^ZZm?~YC_F=r-DGQnf>MZq_npx^|@_K2ebX)pXvWdgR zVL~kbkqxsQxh8mDxf=T$Q;8YH)L|32Ib1CCAAjYu`TIhibV`1pZi>116zvY3TAyeb zZYUbvF#6xHzP$2!|9Yp?ur=Ah|-@lDQ8*&(c!{gJgGD?8(6YSHv(X?3!CF$N%!_UuGc;yk%){vM(H=15r5RQl_UStTh1}Af(G=6n zRO{s?;t{?BUxa(aj8|oc#s<6lyZCm2zqh;Vw*8^)lJ!i%C(A+eWn+z8SN7VhM_KK% zUuV_In2|m@?T7S!S>?&;42Fgh4tbqtk<-c4eDI=0?lA;y0(RGfUa~@qW-YH4}92F^~3ZN z^fUD1^tl*q8v(2PwBKu&qcwfPy?ztxiVK7We1QGHJXK|dH-m$C9e5q;``USixu?1M zI&APLd?;9*U)}uFI5)3u&fVN|IZ3&Vv$|$n%Ftx3&+U}!$on>z(gXQkEB zF6l4vn(!}Ql|Kh9u*O_*E}0E8tC+{kNoaethE~jAt}dQcddEHIhY731I?_cbK+lvX ztNrRznqs=y@KjF$wtuSY5OpAGe$?csux^^J1@i30ike8Ca;oh(tl!Ac!s~k zdnvid`7G6@a4@6~^$2eBzw~n6;hrzuWn7H2g#AT9xBP8*TES+zo3|^sV(yE)dAW0Q zLfKWbcjmbB7Md=YN*T+TUYc*^3(y0d;H>04?|SAg?yD3G2EFvoD&9?B#kCabh!>%f za6q~%bpYG)FJRa8$THSoXTZPtK{Sf_usTstQx35Gxf4)z%)y9!nYp4etF|!TvS-;! z>?$bLjKoubZ}~Y;lGrKU7pH<-+$678|DYMF8IBobZ|x!NKbVyr?HjNk zTY$2@h39#Mx`q0)9F%sTSB(8M(Fh|-9?t#9dLHL5# za!1)U&W7TYMM1ZfIe@ zU~4i~U(RvMxb(g?aHy87%JY(;?hq=r0uHuQK zPv-LGRroBG|G-)rUgkAU#?{+B+LP_=7T6su4*sml%s40;F2Jj$7Fe5iqF-zwJ{Lzz z-5}z>+Xl!l4`*hzhP1t`iW-MhASQcu& z0kB_u1h@Rp;tpxKyjDFD^%_uLRnM?VRHuaP#zo5>~#alRq`^ zOQ<85V`A_WW>c;^KUSy*4KIVFmzqm9#|0P-erb zZ}1Ll1~lwAi~$C$H`elf={Im}ux%${L0*)Q2*-1pF< z(hEF#!Fb`7FdW)w2c?bhUYCJyvySvka!G1=ptK9xEAPZ#q*>rrStWiHv|>N8o>)oT z2%W}u!X5rUekyuEaee{!H+P%;iha*i2eZsN)c~-O{1wUxngaU+l>(#uoqZ_n_>yyA-s^8^=vPk00dk};B1JRsJ`d!KbMQ_B;M3VZm?V7WQN zhQL(w12+enj&m6=*lr7$+SuRE0CzD-%smzwyPTG{0GS*4UP4RwTGY}TXmE}ZABeXx z(mX(kYz0cvNIRv@QblR6_>DM3j1kL&5lJKF3s<18wt{a7loa3}@sD9`{$$6pOHtw* zQ4Vpc_2DcqlVm}4^B1fEWMTa|%U#>u&sEZS(O%PbpN_IDe=0 zwoS4Pvz9N&wnjq5c(SJ*xh)OvmAFejV2w3UIH$-tz-{5$jqh(6VfyIu5?4_Msa=PoQ03mH(FS z3Z4)9$Gz9}9?Y^g?0an%tS6rUSMm6Qmf(V1XzgvEi#54PP@MSI{&J z31D@3#C`@#(o?+4o5I{=3}AZM2-VMC>}YJW*oqi8^0^B9HSP#B4t8U_xgazU1Hxc1 zY6sBgQ$;f{ms>c78EYamshU9<*91Pm;zC)BgcW%Pv%ALp6!gF8+*8br>T*7IA=<-0 zHpu+U_@RPX9dArO3@1Rzv~;LL@La&`-veGLulK4)4`p>d2ti^UE$tU=v+P@KzuDS> zbMZUt2HOqCX|T>U12db}dC^tObHshYebHUtJK2}(w+C|JPnaLN6Z!>jE#Fez!wlsU zIGWCZ1L_Xevnui`A)kxlOF_c|mWmsOR+`POU>iV%Xa?7U({QU{ErQH-b{y+st8z;* zKCEQx;LJ1d82t%F+ui(6n8#KSkBQ&H=gN`;wl`B0Hy zPM}esjlZ|Ajdvv4{Y2LUXK}2hglym2^K752w+k-i`wAM^27-~Uvh9hrgYA~x=FE2; z0l!mUcNb4-pT-~b{}YG_#-lXuLFMl<=C$!a1H0K;Tt(=UAV}zR|vY-VWZ$p2_aguAiKJ z!Rs64Xz0kaU$bRek6WMG^6VAh8~1_(yR+klvz%vwr-b)7c(=2>z5T_&>9rCJZ1GSv zybng@D@-4Z0hQQkY%ZI^dby6!)0>P`mE;S+L3N9thgy8cJ%E;2F82rUv5qgst>%pE z7f5$Kt}QsmoNQ5~d=N_JPpIpa!xdX$11iDSab0*TY{F=KP!L5IddMuniMR0If_tor zFc(Pt2Db>U@INk#n-8Bs3Y2=ga1FRNh&>xhdn=*hI02ZYGFy?|!?XpXSO?W4Fdg*| z*AI6KRSk6yCIn-Gcl|^C-}>5l%X)uzzr`BXROd{`8q5ceIP%d-a;+n6YWptdROboj z9w^iM9T%aI($HJmJI-VAc)ec+9tGnD=l&kf<%VJu$9 zAAn8$NwA?+<=3bu!G`OUyCzt49IWwFF_%iYKA zbfO*DAJ}U+esZkBd+{A@@wOcM6vs&CcE@`AVLa_I#XZh5)ic8b^>pt!Ux|PmoEB^m zYz&U7ZsE$%!yXBX^(*s+*$S=7zT86e02}gK6LZ;-d~JRq-;0mO7?;QwO#E zC3l58&F#egPVP2mhuY#Dj5h|fqA~m-UW8h8YmAm=aK6KC|2+RuUoGEs?+vi8&v5T{nVsdq@3;#yim8q?`!oA%`)p@D zuqsBoVu3QByW%~?z4M_sx!J4ro%6L1*aA}UOfVX8W`&x8+rkQ-EU)Sew4i&it)Nc2 zhMU06<&0*98?o7kLM2kh)sv8>n=it&@sd#Ypa4qpQ0IE!zFnfnXO+Edvi z_Bxc~z5{+OKrMa2_`s$(9o~-ua9Py|?+kT>PWhtX=3o*S{66~2``<(FfcK5@Uh^2; zE>~OEQLtd1ax{0Ac5ZdJ>_OX4_Vop4hOvmv@Ud)$`gj7V4ipz-%}W z>~sG@_4G{WF4Q?%g59K>iU*H{9U9rIp|$#$Ex|wK*6}>=<=%76fB~*xyc>aB*GFra z#6RQr0E5inyQ4kK=TrF{KA+b?tMDVX)4=RC#XM-!RunrT|DUlv5&sakic7>F#96Q| zgG9e@0wwm1Py^#>3fLc}qfD-$ztzFGQ3}*0YvFgigZ{CfX~tNAF-%~9ngs5(!=Xx{ z+rjUl*?u`NA#lgv)c?d6>wD_$?#=Yn@vL>vaW!-`b+&glarOWUXg|jQusct4oN_L5 z4RjxJa;_WBTvvbZ*WUI%pQjbL&a3zz2Wmo1*ctdT$cF5pBhVw>5-ts{x7N&b%&1gs z71-Oi>;`TWP*fdm821sa;unnkwfRnX`=}*<7Cx2(;P-Q3#JtOo5%vi!gk$_k=wG?O zr%@K8L@ng{7hvsPk_+1FJf4AQDz%pGiD$)`nA!e?8E!psGC1-o;=hb=h#$w_#CS0X zqgHDu3XWoPQ3@+DQ>@Co1J*hi9tvhQHhcnVIL|b{Xg6n(&u_r@}zkTId2V zL5r@1_V5C&Vh^7T+$svaU@vlnA?1lo|VVP!vK#Q7OzY~Z?~9`-VOU{8x;{*edu=>FlQVC=hue$fzI zf@y(FFrJnP$o>^j3LEBI3N4WJ-uIs79veFGEB98n*A?fw1CH1)F!Oi^mWgwY)6OV7 zOZdz^(%r^g8A=XCyG$e?qC?{-6n}!lOfSs3qWuTVXSo|GmGl12W~>YS30txSErbzwKo>Ycc)@Q1 z-=>NC8vd@c!0{rxmcbhos!?c{+o36c1X%k9w0pd{XX;|~)teuU+e4ssM2Jf(XP>WY% z#?%rR;586KML`4!lmRp9OW@UgARHEcL0P;Id_sA6nce|aT@ng}4`>~~3uCdeFJXJk z|HQ{&{QU#=s1>+hH^bkx7oL)lOeyA1DA7NFUFZ#d$)}+Xp?ASv!LmUXcCuvPo`0Y} z!Ajo?^*0g^myFWJRPA`Qq|K0DkUeu=dSklM(Nz~R`c!kHTD1E zKj}Z}uM8#b89_c27pe_xIV|J~oeL8)R|&9q9aFhg+Zlmn*=B4ftZ-HZLYjz`gk#v8 zP&^$E#3{nkkLK6%m-+kr3H}t=KVQM?-WbfG?S!6a1>=PcV7I+1{Dqn3Qp`q|Vourw zxan`$!m%j1Ol~=HtbsD~Mz$q;jp@LoLl=HNc)8XB=dKHt3}ptvuoKh-e+<+JyzyW1 zFZBm}w|%pH6@6#CbG{ zygx3`8k*(TfDG0_mt-gyJwJz{z`z&`k5fHVc~sqjApOi#%&m1?OKvc%Qzqu0{gJyZ z{62UEu49aAEc6iuV_sfEs4rB-ta-A~7vo+-Fff@gZ+F78$q1idBPL;ttO9&hgO7!s zo6c2-U-d0}5~~zF*=%Mr)@42-pFQxza7Jh;?A%LO{I7!XuyhjxKL1{Se=s@8 z{&&7LzT&>O-re3E=-=nP2a)G5p*uDVHJRtl_nN$Mcth)`Pee~R=1=pN4NL|9_;9cQ zCk0!CHbGaeBe)6^z@9f7JY0>KZP2fbg~y;LW-jm8DqKH|G*h|l@EUyPN}%tx#2l(U zKMEFlIc)u}{3>{b<^d0EM;l#?Ha-E|!)^EqyoOH$PW+2oi@sV0syer!i1{66B+>9h ztO4q0fbli}Wk{+$;XdH(N&%m1hmaN;@N0q-g5@zk{3q}uRI2L*st4>~w%+Jp3!65~ zKippzT2QsIwe*jJLf&@FsxSFJ`*Zv?10w^!;i~k2A=oH5FL(+wfIgwcVAFMmnun)> zpV0_5*Ac4K;EMGirvsrpe+R1sQEYp5I+(5xU>@w zJ32o+He5Fx9Zm<1-GLR3*`dCn`XMgl2<8Vr1n*(Qx&RwHFE|^Yb1{>f6`UHJ6dV(r z5nLMl1>5%EiQpBmtlx(U3m#fSyKfvC8k!MW6WSa4H)IM4V7P4-9t|tF6TF|v;9M*N zY%mB&>A32x%82|%GYM!_ow44x0Q|Qrm`y+tCz(q~^9Ohlo-_BEyOIB!%nckp#{9zU zX7(b~a(I%zVS2&mTZYjCiDm6jIs+=lQHi0Mk{TE{+J2Q%cJ1+T#GbJ4|fSy zLyC%r<0E{rOgKCAGV}l_{$l8I=oVOfFNaQmYx*+w?u1^1lE9$*6#vgdslembkOmyH z`fv%9So?5CFz1d64+{?uPXN>G)bLDf3&1D(6Zns}fJ^i!*iJ8ksrE6rHeZ58(+O8s~Zx?868EnOyq-od^(Eo#BQTks1=cx;a^8Y6Ukpaw z8A$QBNc~XccNjdB{lNe{7|#|D$FcGF9~CK^Z^ExYGla>1}K`(QeP94V^;T zPJoB@D41yv;{Paqor-YN()XVcep)5OVVvEM{Okqa?k=>3-T2;(J>nJq_5c692O*9i zzCXZgdk%TN44iZg+fCf_9&+{w%&?Rv;$2Qfx{UwhQ*|R(RBOa+NgS2L1*rq4ByGeu zN?er0(HRBXpv7KXWQ&b(OvV8NCPsKF6%J1WLI`NR#4|};jG4F-)$22q=RK4@mB1~e z=qC2=p}Zg9IB^2MLdu?C|52nSh(-8Lq#kbI^G>A9u49k#aVHYX-AG+g3w?y^XnTxJ zVJd!&(kA}iG_=udPPPVXdVu zHe!HofPPK?^>M5YdT4DhlF~o%E)(-I@%&Z-#F&6q5EbDMRe>RtxT5or zmUOiJB=o4ak?lXEl9+hupW4_5Y)SYhX5P<{kSXXhS?D`vGLZ5-iEP9O{ZHstt ziSd^5=0Oco?+c=R67!~rdsAHzV{6e!OD&I-Rz;eLiw_z`2}bPJ&T7S%9P=|y^po!Wv@$wU6Kuw`Qp3c2_+BA--elrv%;B}P$V zAEg{oDVL%4T@w7MrBLb$^DX799`e;R!r$8xsq7fpI>F!98L97qy!6B;ZCxU{ z?SW4^UYPGb7`?v+gL+@AF%7`}0Q?#NpAa3PGU$o$T@Ysn#N8sorP~NOuZ31q38R6+ ztwV=2GHiAwyd#B-|DlTuf7hB%fLZf@dmrFFb4y#p z|CKdy-V(nu*&BsxnRsuT!S)c3Z%fooXQZ@WBrikZNf-mJ{)yPeMYb`pHluKK1T4-_ zaH0-C$iB#9FO))8LHMlFx_x}e6W z7JDMaR5Mg(lvky`2BO9WVH^Cvtv^EaM;L0qO5JzG^<5&dbVZEq&;#1wu2hcH%WEMQ zl_LznWsusENI#{VSa_ATMvT2m9x5Owr6U_L2~&uos6FELB`)7$*jKJBiEw359_0{g zg-A=Ka;$+`rM^QoNG#gzA}Q(|>0gvf%6A9U1$|TdrLBErqn_6aSG0#Y zZ?83uw?Ii!SvJE)_h=YtL&~UCHIh4GK&C!Qe9Y8SiH%udC8it@doYdu)NhH=nK*v2 zz=LsQKWS=c+NL`p|;P3-N|awyj|@lP9l*G8?=c&co)ukeM_ zcuKtCN;@k5zw}a%pfkh?O>Is2uYqqGcPM`48e*$1hJ4YuBS%tB{KsVDXw;#8NMoqN zFHR#XZNx=RM{F2({%^D442?y!5so2C>BWddWXIHd8GKXUCe%Z{Tj|&IN$k*tfy{`wCQTk{t7<_$328`vO1H}7D3iPiokj*%69fzSWL zMlU0_^ljwG%LsaSi&zLjDE5jh7ul-MxC6ySobwcGA-jA^1nm*8dnQtrieKrl%M?BZ zsrwj76Y=VkzQA)>@khV_PqESWga4rbLS%#($nxKepn_{aP#3^@e-@1Rrz0EbC!7VU zx(LL49r*1g{;y;IGXAe3^fmk@Tt~-A!GNy(6DaE#kk>w7&EF$f@i-9JA2>>C24{hx zD0Wf^IFER);HpazOhsuR6mu;S|0Ue>BFj@NKjxf^K?&_?Y2 zgzipZ|7iFS?oZkTM}gfA;|SfK^dSDi|2b@bMndfe+S>+y)6R&F#CG7m9r*n-Q2PdG z9niKG7@kxoHUc+q2P&jI5oX+n@85wD2`AE#L%35RMm&rBkro0eA{>d7gi;QqE^rtj z58;YExbjz^>7Svi@GFj#f5LdwD+~Jo-HYx+ zv1b4c(N@@pDHggnX(XgaVkc(v+{ny{6cUuNfv_OyAkaueqaC3vVtiMQ(C9?t2{Ewy zBV!i}=5!V#4(SQdNGV~XF}-kXqVb8wbv@3~i~vGo5vxGs7tQc!oF`jBR)d)532Q10 z^o8>Unnft#$fA&50EMDYWlo`J2+-AZPEk-G97MAXMN@#zDHe*XDe1G2T~%~iXy!qR z4uzJPkT+Rk+KNSvlclDOtgphJPd1oPx^ko}evzdiBtrIsEJ@ACKUt@mk*(JM@G{K? z3N01kz3SKstr_jpFXd=;#HCm#ik0@rGAU?|_DI8okU;qeaw6-dV5q`llqT9Q-2N|x zise-9Mk%DUQ7V-*QmQBg)goue*3&t%vGss#lo^bIAR9)o4k;-p2#@AAin0P}E7Xhp zqTJFvp>E`}PQ+3xcT!@dd(u`rau+&7r9+w@q>Dkn70XQf|8GfEizT zA%sX{2*p4O6Ewoms6u0l4xbbQ#Ybuqg{mkt(<3aT#6;H+CZe&5Ml3>I!d=ct z7}A!YFoeAbLE7<2DmjF~$csfdQ5lC7EgJH86#$zNo+PAJfRUPzCjFC!4SkcE4IwwY zVjek0_aaprWp=FG!HG~bKhDSXgzgA~=Hi=_GV)*vD81xgA%6?`b$o~`3CHshCJFY# zjQ_W=92Q`&6xbH>CVU1$%fcL+u1iL^Pq!qKSr{Jp;O8Wr7jouA#0k3PqLJ6 zafbAXGEf?ykkTZi)B*c##L=V3tyXmb=%562&AuAObEN1Ajy=QwE!>%qFnPjW;ktVW@fM#CfN3a4_wj!Vao)oBN8n4s zGKAqt3F``w%TwI(Kg4$nF_I7WG18ob^W@k37r$R1FAotjrGTy@n861DRRww+~GC$@(|)a>i+>^c#JDei0?h_McP(R z5%v>4AK=$JTuGW-)M{R!T|Gy-)A1_}sYr{QPr+I83sM_+j2J#4TspqV!%Z!cd~ek9 ztp96+gtn+vQx8c(Yf6j6X2yOhS}q~6G~9=J8QtkUQtFDNIS;**dNuj9$xr?c-yiYo zZ|pxsIW1P@hpVb4;5p6G%<8oufF-i3qX!&EflFA#oa~{U5 zSk(uVyNJ=5)YalK_Ps}G6vfy{vo0^jy8@&u6MclnVH>^~l^g#O{Ew7AKaS@i&Rp~o z>Mwz?g!v`uY0-RB0E*J6D3xUQvruM!^fC;Ics3^&d5MQjaYwEt9j^q~7{Y@kVWWz} zV$j%4dPPwPLq0pQE#w8Jm4LFaT%<{-XuVZ{9io|TQ5-F%B5giW+EYgQSlELE*h=!~ z6^Yohl9786&LoUS2(l#3#Nb>)1b3E0TFW7>60nJ+pGKa*>Jgh*1^dM!>8ymbl)^c( z=j4g05y2E>JIT{i6`$1*Lxl)(sfySXJ-QkQPafWiu)|*fQ&h)!@(|Sk(r6U?`TFWc&<^Ru)y5f8$EycVS#x~WgD0px_DRKz)URl3hEVk*dyQ}{ zd4tH;OI|PXu62bstR23|pG*1q3Ld6LD4!PaI}xHHZ)vB9SLv&W$Ej1qztj?*sBXBP zVjzzc<@8IOX^L;s?;};T*0@6_#6g}a@(;H}xMoOU3#7R|@<1g*DJKsf>EDrNSM&dc zC2g{{_$M{M<`Ewjc{rOPY-5y9UEGUM5#^BZY&-m>oYVcu_t_j_2_2HE8%LKVR$sXkIz z1-;Q+D;j6x@mq&a>Uo6AbT~@uH?+b^5)Zwk%@T1!sy4O zc;}1seicRmCw>QUl=S%&tuF;nk&<5sXBEt2#h7WwuRM%j7VMFFrw8M&4I`8TV<@c! zSP%nwv&aueBQmWQCS%lfVeC@S6X7ZcLXkzHRRbeNIa;ry6-5OLrQkPt#ZqxJFEV;l zyyTN2t*~qyA#YR?#!(vW$v^fV?nSnpX5)lzGVn>hF2Xxxb6#OT8}}hkS{jZ%!(I~h z@8LMvH`0eB>qrWbWUUEX(Kub`BT!a)p2HfDHG6?8$OlKhII@3aamdD{ARYx@k$opW z!XtdsS{EUd$2j`{S18^*O5bbb=mTOPZ1xeh{aNJKErdvgB_#|&_U|EnQyxhVlC0(n zTu0tOS{WsU&-<`aj}iJVu78E!v<^*{^$lX95>W6Ip%hvpeTq>Qu8kI`4LAbbyPwh@Od906%XV~`~PV1&0Q9FbJ-bd<)kWMP^1qUnCAC?qIcl@i{s`ex z{G?QBL@V{+9%g(y@R=Q%1(2`Ef^dY5$(x&jYY8KpBKM5Ql^9Tj3fntqhU=F2zZs zI;plQs~zPdSCzvjjqdba67d#}*_3-yY^0I7Xyj@NM{8kZKWNp7R!)@_O(jm6y%+!A zF}f$s>dDfS_1L$e&cWGDT}AY$2MqPn4f^4C#aC>{tZU0SszYeWB3 ztMpAajC>B{^&?BCcnT>lC5++?B$Z2QL*z{$j{vn8T8*OCLOuwpe_F>t z(CQ1RR?@d}J>8A0Dfv05l~IjQ-NZyvr0kJ;CfP)~8;7<}s;sngxFP*0~3f$T8(gy|Q>rlg8yD>R1D z`Voyjw3+a4jHH;x9Rq{%{WVQdK$fGe5H|(w0v{$Nl$Upwe*X^ zlYJ&%MmCNqvn4ua#5FV?(&$R7SL8KUo`N7nY#M)Q^~;JYXw;(A&_*M#a#u>%Hn-3^C}_cmSg5vWqf}E&lq&L}P~OPXp^W+D z@gVJDdfuck?FzC`ECStw(xuEMDWp;=G7IAtR(YpMlOW+rSz z^WwtQJF;zLY3MwiqcWyEDB&n4R3?-=r5xy+a!RF4ElG({xsGaxN|jm}={+l(()uV4 zN(Z$Tb0pQuiY&Dfva}RlDOtKZ?Nd7G{?wl6nIEcQYFCQKjq*$i(bO{vBAe1~lxI!o zE|fZBBo^g46sj?bg-W07Yhjhk%i>8{PoKi07Dhfv%eN&&H7Dzd#WAsU7Kz)YJDQnY&ot4!e>K!!JP+kdrQykP^ zlyamisWnj!=$r0GDWegIu29A(N-1qhUa7td*TCt1lp9JTc|z$K9_2|MT4SQIMHyWv zCW?V#rLxP9gd|mN^0N}cpl@2MqPtS=3AZaLP+}z2`Vd0V?19EZ+N00HHGE}doIDJ4 zp8TQ83O^}r(@3YxM?yHSjC?c>QYdAGUh)1aD2VPvXOyd`1eDR5VxqBG@ivpknYkYz}=B-l9|x`l9#XauIL|jGjlS(u_8KTTg zDHckJ;@4N!6bmgq*YcmAoq}4Rj~EPQd}n-1h&% zQ%L1l;kpGKQPMG>9ApU?`OBlJ*+W(v^_ zAyV>M5q6_>OTtrxR}+yQveY58WkU5qw0j%c8+{Wxr<7<^Hvu-ffSV(msl?7>@!mQA z7ypYeMEqR{bKBTm%uUs@aM4h)pcL5bU*y-}`SS(A0iha*^NMOCvk5GpGr7IoIj%gO zi`Vkaxx?V8sLq@S+d}QauR^=<^!KUoBY1eq;cnlAasw?wgH@+O{r#2kUf%4`sqic& z1#wK{*Na-YyVO+3%mFj!=B`e^Zw!%+;u&#yp{dS0&PP*R9Bhe+&n(S zzrmCIf?(sPaZ}kT%v`n=$FSz`#?S-U#G9d_p}f$cQ2k(|&;@W$$FcpmFU28JtTabH zp=qyup!r#IKyyx=A~yyzZ9RFAs1e%Zox$VCcOzyHo^N}ln$0Z7TT&;v_xvlo3zUZU z!xFf=p_RS`w)dG^l3pfP&)$*QA~iN+zj>{@9KSjCY4InCeTx`MtSy-v|A)4}SS)OC z^fUcv{A?^`Qs-yeA`@qzed zvHqxf@J)-3*~eyq6+=GQTDS*f|OfR7S# z_`7&Vd?i<(b8~a?#>zVON!S~@7c3ii>tBm^j9TC=^bM*v+--54roH}<;ichROy_uC zeBZba(UbHWwdK^0p_SQCcna2-1f~_^!h05aRYB0>9q2k_-&@e#v@GjI@`HD`Uw8cE zhq7OcwSuQFZ#C>Gd7^TkYE>$YDf6Is-S}8_+0ZRVFXM%@0ZC6kJx$(~S>CkD`pmK0 z6BX*qO%`iQ{h(VhQ>A082)D(eavSKew$-0Cbch)qvr>OS{R4L_(8~41`qE-Cj>;8s zKII;_NY3{D(W(@Fm)us{J!+7?nZBoPrka%`p*0tWH`(^`U4>6RN4lM{zM1;$I~SMgL9sCH9!%nKns$&D;#ccp5q~tVOIk>tV1o z|7bJV3#{?^lTE90l2gZ|+{sv#b1iR;nSo1ujrPC9)8$%J99VvG*_6`r5_@X9sLYPO zx$Bcxe;E4y+Yj-duVoA{J+}Ykufl)OHj2I(J;u-`YNYlF7;(mkd-)aIbuO0|rCoAs z*)PuFi!jZCFT8WyBOJR6Vk~}hV{3I+J%3Zx1zx8)t?v>WlaQA1ef+_g{`ySqfAS%r zJhzL-k$Shs&;7x0gT`r-^xBc2pm;eEV*;6C~+UXtR}D>duD$a_muS>0Z&%gb!F zaL|)!8*1roT9PN_s&anJnwC+J=1#MvKgb?tDs3z7nD2TRSi&EU%8hHBShnc$g!A#* zgv~KCw0GGdKA(Mwd0<{3r&rFzoXxoxjgt!=I|h2aL6I?VFS&2|Mq(Yg9XN{StBYzz zf>C>ruDfoz_PV^BH>pyBTYWFw7oBVEH>|~MJDomnFnEPo2SuaCx-Ev4F|T9V#Z-;n zr!S-HsX3+IEYFg@7GHt^N+qrrk4ZKuUYa3Haub- zF`adXdjuwUx?1ZQKW3fHXp?>{^;$}ilq)GW(@JO6%uCEqwYTuN0w39H5*Jl7=2AlY zBGnU`#EppgA}U@^Wc+&aRj<8m~4sFEBVu`B#K1aW93#V2IqNS)obR z+yI|?O)yN^<>K;dF-^F@o7u*y^}&4KP0s*#$aU4lyTAAJ^#2*I!#9<`(%y|46ul&N zZQQcBp0U%S`{=*ZS-{ikmqtn_z)q1S%m!oDX1ry6QMk_Qp`L5z&fxtciC+U|g293p zYzG(FOR9>2IOoCq8OBpt%hEQb%uOEqsojTVpIc@Gvs&c+W7GRC1@EcS#u=5c!cayEe*`~=jaztno(P_vSAP_SmYspZN8vBivT;w%l9YT-#T_ zMsL?Sw9~a|>haP?A)7zJObV%k&A@NC-P78eh_^8Z`sN18z{In{73q~`knUO3*D-tI zdnX)?pAkPkespZv=yW~w!sPLMC3d^&VCbLVn@~->WvF4l=bwr5<$yYtyajWDO%kuk&7^#BqgvFC z(caYBpf)0F*QiIz4dlPY3hbM}R3GQ7>ET>PX9X~Ghpu-&Z(c$E@%1ky62y_FZbM3b(e-mJ&Yey zv~O{1k)IR1v32!_MSXaMyN{(|c2at!^wR08(<|lNFbY zcAmD2ZV>7#7MclV!3K9mGf!&D&r#J3=6ajCA2}-7##?LIHO`*id%@#ey4*{fZrC5^ zPUMSkExxmOu;}_CXX5+E-H2JQU!(mbJH?@bi=7X?*Qelv8ObJtC*LPjlSFx`yiiJ% zvWabnv#2%&7kR&RZYZc}`YPvoMj&;{=dvGKeyH{_E$Q~>&1rjbM_JWwL+Gm5J?cfw zi-dv2lZ(|(h>xvh=piSCZo3!TUK%TBSIjD(y)dJ0))v!lYZXTm=Qe+LAe(K>YJLHD z5Y=*6yE^LIC{h1w^vjqi!)o0H%`Ukido@tm*V3J8|0jP%K~Gx)d#bamzan!@NK+3o zjE-BHU@daC*pJ1(D7Gu{_k@`EwCK}@()v=m>gq;PHdqVv;If>`|IWF%_F&XHBOVbC zfj?=jC`oIiO9FH(*)^)e!GAmh9ehDj-m7d~W}DQkqyZo6e?0P`!>3BAC9`{(qivhK z>%vP!x4vkR!Nq?|tX^bqTxQIasDa{v&^4FVI@dHRrywgg>sodwx0-2S{$krl=P_^J zU?4aQ9%?t+R(vd(fHy|z9)q7aO}`7emj8;~_~FdBpxT@1y667KDLGm?i+LS^yWw%1 zMsBY;uidD(#WD$8!o&Ep39k};}I{zfF!du_H+cwD}SgKnVnF{js<|YM$z;v_7 zcE!=k_1d#05W_U%ii;~WBXyniLd?;aQPDo_GWA#T0X{vvGVq&klxH^-UpBkjLF-_6 zz!93q1TgZ{*W8VItM45Xj2#-^IKiASKe1op`uHWWO=9*N#zh&lm(*X&3E~*xl2`>S ziodI~H5aubv_-Uux=d}Brj+_iaSwNvVN~6N_g&p><*j!t8F}8!rD?^IdnP^q_*K&K zq)W-0GXKpoVppD_2Kg)S*1ZB}?*@61#LB&;bApwvqUsmeg!jJRyXV_`S|;aR$t;^b zH^ue2W75P=-+WF_IhQ^!_a|Gdw`}kolOtY-dKs%3CeQ9h3dtrjEuK%bomA1&P)wF28?d=o{uH6i%0FI%@iBJ>a;P<)z{cZYy(9 zm4=y=5GoS-jCUhTg^#PY17THVzvV7Vt<`^OUPS#A{V{e(ydm*Sv0lZx6jc}H5--IE zVyZ>Y)=$z7f~Lm`bt>2{8_POPFHIM)&{ooZp;;tv#XMvX^B@QXY40BA#{!3`Y)*-+ zy!4Z4+T`<}>!)-|>zdX(tGVf$g5{1op1ja1<|nS59It7mE+&sqe~>GPEx@k!GdDZ@ zBDfaXAU!?Hpx^bob+6@)IlBfVFhDlHC#{CCT5jNi}}JUMu&IbCyS%xd79c$l?+KSp4gr7FA~}&N{KrX)CmXT z8pd^ssT2K&{#{h>sLQ%L+E&=Yn%nB}&==q|_0`Lz=5kN*G$?w?M7iu+tF#h$h!%Wmvbz&lgDU4vs)ZJ zcr!g!r3+6F?DURuX>FqQqUBff6{FL*$JEktra*L5c5n4|37iV4nRn3Su=DX?)*J%% zo5Oeqe>E5kj&W+?1Nd%g3MpW@Xu>ZBo*E$@lWSet82jcpotByL*#p7{3h zAL9&hTvT=Gcgf$H zmymlZt9eGnR52x#(jp~0r9ozT_RGBO=F+x*Tw3qGKrz)twj8&cUo6g$5@1o*sVl1& zNp18HPQ3hD}c-3vj4n) zTW~Pm$UVvY$iCwr3N0m3{SugB5!5egXj($4WhE3)zJ{jDPVE8RH2pZko#Ab08v3#6RfH4wXdKyc3zH=s_-uvYj{cUy;tM< zWS?Kq&0HgIL{7)d9vQdOO=)A(il&>gR%IW}>0~UO|K6Hq8|^yceFhf9eIYwDkv+|^ zVs-h5v|gU3siJyv*X9!>)vvnqOK(8Y}aA1cPw-iIHx=3I668$ zIEuTTLBnL9y8yaUA-^1o4&PO!uowBZLND=z+z+Z57qv&D9vM1CUya!icQC#|!Vd{w z6-i4dm#{Bhir*1?Cpy#M&~J&Vsq3jdtvRYrlCQ{brODtXxefL&QMkf?0$X&7>N4iU zcLQJeuDSnqR*9w#=QK*U|KwX@R*)ejO-)l(YYc6gG1udU|=s zfxGOBU~hORPhiIJ7(7cgdCY=^DPZ6#20o~|On*G*a3!1>Iv)BfG%&P3xHtGsa7W-T zf4u)E-)8Sk&p}TWPc~F9E_#x@!+pK|hXeLtD6~6VgW1f^;HGJ|-`EdUSuoU2y!igd%K1D34XsErAA31}KnQ{N}jlGGMjAX3YO9NHLbEO&9>b> z#5u@y&vn={#5>ma%wI8B1?*dYsg{6uO9dXZKe*q(kKqRwfF8VY z@0vGevVjE$ggS?A2bu)p115i_zhuA?cnTJp=Aq$u+7M6Ysp?^AW+pd~zaTioGI9m= zdd)NKA378CTD|%z1`}%an4!O6l3|0PykVt&mcEAmT2#}h$6)&1qy0&!u>UC&zaE*V0_pWoKY&%N6>78|J`aHb=K{Pblfb$5 zJ$T_tunU-Zcv`Yf_&R3MEkh%~KeZ_IGuR2Pfq|ho-cTO^{?}=21Fjf+Otr;%(pikv zUqkar7d1MnynY?{@a_8j`m6f?z_8v@AFpThe?z}+woa|vrX8W_sIDfv#5F=L*OZ;B zx*WO}F!)D#zjya{j<8p=-2p4>Q**NEd($1`JYy&0En^MSL=yv5%jK4``Eo&i!BJ}? zdl$!Ur^&U|Gt~Ewzin`GsIe-ZX#rlYnOs-CA()w5{9Iuhm}rg)ey}=K1rO_QLP_B% znAEm`Pw*WW?q=dSo*%;9!nN=ge2s9?a0k3C;|3qWP!-2qVNSqKRD!E-xOiNe4L;h9 zsK0r-*r>HprSx<3lYr&+={M<@>dWbC=?_J9je4W|8hrnkG;h`S zz0mQ_Gp>D}_25Jc1x%q`s%uOYw9JO!mC56$3;zj>*h)+m?P3|s{U?Kc`l0wExIbqJ zOZm58#On{fnR3iO$RR!F5W-UzFX1t7ty-sgq?*LInT_xe76A)hIZ-G1r6{!zy>LBL zG(YQFM{SR~6IEK@Rxj!k^sN3S@|Ff=&19`XTUJw7U0Jq>`vrkt${tWTLSF>?`{%+# zciK70e#$z%ph*5ga}CpBV@KoOypefN@>UyL8e14AV0_6p*R}i%BtOqO(bm#&@| zdRF^d1k!>t!gf_@wldn}pZo|RTlfz1e+hiAx1|51u+$o8S0}Fp&*?FE1||tZ_$^?z z9>^YK+A%V-QZ*WD(F0TqRLj9C{7f~Pxy=NbC+v0ZN4~sJQjC!r%C*#X^Y~1jS|4=@XxswL*8@?Dp>DcgSDj<&em?L zXPvKYAU`-QtYiAIHNn(Z8=P|q;s&uFIKl5hhu|MMD8GSbrwXbXT6qC1Eqsj$ zvJBX;GK6yQE1LJn`?jR{VbcJE4g9LL4CZpi@;2nuIN&ujSC_pnKm_`wjBu zNBn;EBXt#ZXRH~lghpW;$kpRT4(Q z`+N~PfXmQd{Aw-qd2VXrwdc^X7HZ-&E7b4gCh|n-sOZ5cdYFIDO#%~WP1p(zIJ#?r zX{a3Ao$bdiXXC-NbCN3qF2Nqcdtoa0->*xxCY3gVaG?M0}x{dmZ z{2jC(>PQ2`QNm1q5m%D^Srr{V9}M}e-u<3{OK@h|4qDF_;= z&8;lMEXyry!Q+A()(W<4`%o|*y4;JstNot9_o1&<=a^btG~Wz$R~cpeCA7EZL#Jmi zGyz&@N1}gxuU({Vj5?g5c>v8TMxF;2y8poP`ZZW84*ZAXSpj$q(clD0K8t8=yV)67^{Wt9lH4w#S6u`HxsvdBse| zbM~KtZP4$kdN)9q@~OQeTIPa$pE<|$jmcz8G!`=^<&8Dw82g(xo4lrl7DN8@{GtWl zgF!pd-qw-p{KfqOYD;YbPlH3l`Kr5Y1Mp#Y78gom!1mrn-9WQkW73p?rk+KcqgCq? zpaA%bwmfREzNUlv|KsQ^z@t{)E}mqw?q2tnBBc~4?yeViySTf%ySuww+}+)!6eukf z>bjoY&Bnj?|2_KvrO_#d?u>BUu{E>(gkCwbvQs5n8Eso=i?@BZEpg0q z9&-+L<+*=*ni4a-GXFmEPGBIAq;_##gu1XlG#MW%J|YpMTKQYxjU7}t6(@kc=_+ZZbQ#>c3`oUy%bf7+@k)0|<}7(Y=ZH&ow-E0 z$=3eK-Zq~0t`Ck>`^l(%RiKNsccyFt8zk>+m_~-?o4r=aDVnBL-J}U zc_J{6o&}lyw}m}uH+;TihIF}1tyre)3B>0^>Qn0V>U4E8O_b)ddXIXZx}G{+)n0W+ z*%0V(!ScV-8q#`D>CO^Ogjt(IR>I!Vc1W691spJVY=?3Zg>-y;$=(2!)mjR?Tk6Ns5pc<_-EBeXY z5>%3nmtYYnhRhc3^AEU@TvM(A*BaKi!(hEz1pGG%auw;0hCsU7N>L)-4EU(~rM;mx zhyottB&9*MTGdtcTX|BsQ29miTmBkq*ks8Ye68pYu-^}JrTyDeGSPqU1txT=C)Jl9J-mpfW@G*@^{KQu{s!>ul_1Ji~p9$pO@SCWQZpV4`#4 zi?U71LF#PH72RILJ7Y`JY}0ZN4Md9`-SpF$yN1t_{g`iy*`P9oLHw2OX0eGTVn^sgTTm8;H$LX)mA+9#jqi zrgabX1a&`kg{qFKx-vzf0YczfiGYuT8KgZj7S3qARENNG-$#$%dE0)!iY;$Ysw?hZ zL>9g%oL_Li;6>5p5?xtr`HPBywy*XYu7;jT#7du>oJZ?f8<&MB@Dac^?Ul>Rf0RBiE`1;^Z zgQ_BTnm?Hy$n`=8ic4kp6?rO?dKUaTsV-1YROKtjsT-=cD<*;NK%)FDTPD3K-i@h{ z`odT)mF@%7Qx`B27x)QMN6n{Kv3-Pv*fPA1bSThP3lzCZyE+oMYb`WOG)dZMU5Rd> z{)W!3?F_W58=6z9!-`w7EXihk9rgqg$`=Vu`OBQ1-^qe z8^<1CRLmB72Ne~d{Lg@b(vNVsJGe6Jb*qk+Un!kXe4}u3K~~Y_(vuZ~t5lATzSitz zw7dAQ{D5kd=8krTVYObVnWMBQen~k|U2FqdB&_1@ano!MAeVIw zc1E-VYVEF2S0qX=NOPodK#BehjJIpj-ayt#f|?@>a))WrEUY#9SP-~y<}5kVH^jT1 zsOdT6DsgPL|F#{s)w1!GS1XdsTbI@=IZ-^Lcz;oT@sWxs=X(#~Tfxl}KULnz| zO0jOV)Cf9go~0Qi`zcy3?4@*mu~+8l4gB}E#Ax3FvMZg+yM${<5Vjs42E2iNk|scI z{44V+j;l_nduz698J(b81ZScDsM{;+$adjN(IQxVbfIfQrg0M8h~3V=LsCT#C8y;M zdO=jQFyY!qT%>xh z{H-K`8D9ZhV!z^{^pWT%GKAmHoTkzOMP!BVyZ;(JTkv7CB&mwW>I~g=BVitCd1abo z*rYqGxvLx}Bg7L$3*c+yyc(DigINQ6mq~yWP=ZdRCj?IUeZB%;GhdW9%k$a2)z!$= z%XP=$tZZ4nsPtsX;-aMm3ktl&m6h|HX#~n>@a;;S(I3(&GBfN_NcB)d@LU}$F$rVH zF^wo$Lkd zmK=bLZyWvqNIXN42p(rubiKeM@_nE!-HB~4M2S#oZRJ(%9b>wAzvYpoj^(UrhhesM zu=0tdvB-=L6V^j@+kwucTF}X$q$;O9R5f5_u7N`UkLe@kW{i>+*>B*wwM8qSl4g4Z3WYBtOk1c@|Y96{Y8G&FPri zKfhHnCSBGqopsl7sz0 z-pLiPB&+7n@Izo1Gg#DKd{f$3sn&KhoH9+dI4u1vappAR5`Cq5qFgTSh6eN7ne|i# zdEYuT)4HO z88L^;mn_k4wbqY_j#(8`5)~9-3R!IuYob8OHItLjn?P8r4Xh7brCKm+K%n^@v~+$U z9PuGM>c!GUdU39FnleYz#!%h-$8y5D*?Q5^-ZWfSrK~BPj^%UrsRDmz-!5;qH_YEI zu!Qc(w&yvhMmHn#z z(KXR***9Il+B%|E^xnwlVWUDqEIRE%aV4#D?=D|cI4kdB&dl7q`AMaH9B}~(EmZJ^ zK_R7)Q)6z%h@s#^!v?-k-am;Cfl8D~A4xKhZ3-wu$h@sN+w^ z4UcIa(IiNve=8TT(n8ZAU5wmo+X~QPiw3x8P3!Q;3%?tvc$t6fpBDT(9hD7!uqkGA*WS^tA8>!RJhz zx~8}_)6%`WEIB_h=gc2v_JiE6Mf0knd}D>z@)pK3q2ppcBcF(48>~n>ATLylykI}}Gbomn1OwA|lFx_(9G@TFXsO4~~nW9cmiIutX zk+RQ{#=yj!hSn2?a*fy(OfN_z|G_u)}DZVKX>% zt|HGT{~6{3a#y@uu2IEmy6aBrOY~dyMNs1|)KsdMs4J997!o(N}e$3e#r=ScS>qCKf(8>0Qh;j#&e zG*txDMXL-}<8uS8Pu5S>Ro5ES|0o(tkK(nl^MaK7OAn+H13O4lKu%qUlQadJ$~%E> z@B&oC-T2wekbuTF-aXp>0X9MJ6n86}m;dzd$bu%No$b54&6xuzE8C&F7c?@;5??d^ zWAu)&=a#zK9g+v^L{GbNS^kkf=Q886tU2=wj#Mll>|D9Dqy9?pk|=rnf&?-yEP8in zym_@oCmV%MrPp{*y8gg!)EsvX@!K~!(2f0zRNzBpenqjWkLHQity`+c^rJ)mb!%AK5=_2v-x*&`&~YbTw`WTS_+$)b!Q&9Cm8#XDU0C zFD^X+Y;9`%fT;qB=5*hheF^>o>Q(zudpMc(}J1-_Cxj%5Epey8}GD$3M7 ztWMm%>XI656S_s-w4|!++)xQPq%)39nen0u+ZRW>(Sydt#Ci1AuEO`-);%_Bp zClc{ZqLu|!XvfK#U=!HW{ze{~v&^}~-PQMmy2<^A07*=WEBwltYL&*Qd9Fs)xyosZ z7V;*t;nFb4McjdP0oBY(U@olSk8wCx!Vcp8;oCzp^j|)cd(A##(qWCQ_g-?kdyG@V2FKs8c`9jYjXSZiA#b#&@Uc{9`=^3? znc^SLv~KC+e_#2VS{dwLi7in7XE_@#jUAN`S?y3+D0#rPjdBY7~Kj&4*JtG((BwOsuloHf0XjgY<+XNu;du|h4bk{QLUfs@u= ztcV-Uo{Am1VM-k>6$}E+>($5TT8@VjD zIDSI>lxSB-P2)#py4Zz0X3qzv`Em)Px0Qb(wU901TcY*w4pOzEhALYf&^WXQbh~w@ zwU5=El@DeAQ_sCe9&jGIFhG%+WXHfvDv_Db-4-O65zc}faLVLH7H|&&^9ikEN%{D~ zXE}R*zfHgUZ9sa9KjP9TPbR-fIoL8OdPgm3gV9Z1H0)oePJEO#M>d64*yiRX{b3YfVqt>+chIPCK~`=nC-``7reio!t;;-fpR|+%S(e=4p>BeG(Ow_+;xR*))28Rd$~B*QakOUw41&^YeA~u@bwxx^O^w#k4+jY?LZ)e*EpY zvgq`%rj~QsJoy*=icmm*@fQ$}J>NVB370pLoJE_2KlppaY3&B%155Ydqajek1er}I zH2Ja^(Ftx>Aj12{73nlO|8=ePRQGKQ)MM`oi?JwtAbuFzAgo{(`#ZX}R7@`1kRAAO z^xJ~8uD^2&ZaTu*S#q_xFlu^PX5~Ydwz!O zudSjQN#HX5rQmvzmt#)E<;IC(lOvY}2N^G_8cU~QaeOo#K`!(~`%-}U#niaB1SQKmai`?Vv52_x5ZLFTNh6nfeqYv=Iu$Mpr zCPm+o?kw&<;;@%i`@8XX>-4MNRhf#yfa5gVLV;Q}F$Fb;)+jgM*+@i?R#7%i-tj;yM^ zl}jtfRXwoF+)2Jx)G)SyyTOfTN$Q5Lo2zr>y`qYo@tMY~z~5n&AIRh4V52)CE^&SG z_IfSq9Zb^14lz5$Q+)4BW@YyMmiejKm-p#6|JaIR9Vt{9uGR5DZzJ|ZN5sTOcaE$P zb}HzKX|A5vTvJID`z0^21fe6#Q%-W8ZzYlIiSza&-ONukAdS|1HZBYb4ONHc2l-6% zbsohYd@|R=f7JEZrl|_A+GacE2zRFwL;dE!7@&)={zblFp6QO$<<|=EY;~47_n%U+ zXRXjl)jViRbhjGI>P)IPF=b+nr;*8qsn|JpprCU`Qkw0nEdA1N_1_s~*Id`>61-ep z&wMP{8+t2jVOamrxxp8$4J~WTeNEF1|7!KB7P1t4ByyE~6IkNy?yl+T;#PY%25Rub z@s5h2+JB5&&AlxT&6ka89i`BTAM(IG@!og$aGiJVf!9H2H)lgt@ounwbfC5y9r~3YM?wQI~Lk z`e%rKOS9V+tS^U%zi=`;2zYj=Xi${sF5iQ@I{^(ob zeq&!z$(4;PZC`Sx=v_g{-|M+cU>%o}cdNXYf0X2&*&CCbR92U(H#4P4%@#3jtTUCb z5Zc?lVh7A~`!eFP-sKK09$$IT)y#*|>v)UEC$(t2=7@+xaSIb4R(B?1)rw;A$mT&W zb$8`i*c)~$d6?Mm8t9zuYDu*8p9);3mE20<2Kp2DEXks)u<{!%Ss~p7`i2W&1;5E} zp&$FCuE?tGWtU2R6onN!|JKO+_~-8Ltr;i&Tr67S)}y6{htb(dGwPkLe>_E~5fWp! zhG}-<{pnH8QKkL!Gx7%hjV$z(bgr!9pj?HXKi15=tM zXH>ry(=Q~!;FiC{HZp5`HrE`7$NtH&+EwYkNg)0=fo!@qRR6aH8mo}ZP{`H6nilG> ziZ7CuC`}c(xr*t;%AvOQi@oMraJs%tN;n^f0adv~=* z5k^aMb+GshGr)7J@=A%es6}CAVQk6UvO|@ut%cL;p5S{-*TAxrwJlR3S0vo7`MCCy z+e zTYDJ7)zhSzNDbyczuxO`Z**ODwsE*^+NxC*8Rcy%HrnQRb}~C9WAp<;qhi}t|5)ol zQc2C$iJM~&N3;nJGHugD%kxF3U|_b8wY?WzTkY+t)RjNMhmj#+GlK&b!Z=IYSg{kQ_(s$UVvghAN~Aoo>_%C9MenMQjuS+8>LA}1qrit( zj%c~60OI=!Bl@xJ-^%RL83n%VdVg-@gq8eqp5pf^&s!^Chhsz3n9zRaXWG-MW6BQ7 zIQbv(Q}h^r19k;w6Q^A-95?O3K-A8yx@jwSPV*zkNX0W#QP`GPQ({4Nw0cJT;uvS- zUfZrN(TJADa*wzb*!i(nem0*b^}+ z{7uLob2IG}={rFY_|KhdJ5brLGQaX=RaaZ8y`!U%%jlU)WDwDyHx#>GIzHK+RyHcn zC>~kRCAT!YZ(jY96Rz`om^wN{84&E1iHTGaM8+O3D$+*bS$GFsd%{*`%$}0rHwPq4RVCC;qHj95sf0nQ8%M!$Lx&06R{|GwXut8fw&I;gIq=I zcNe<%dtP`7+^t++9WCs8s@hi^E)6YiQCPcRSpKIxTMnIhE#p##HaoAd!ZwKNBzd6! z6*4=rLu98gv9+_Q$nefo-8v(vQP5M%CgTkaE4_ovqYr~ZaEeFn8Reep3UU2#i+v}l z>U;;$blFJtbp0MvS4&r`JZNfgaA?D@j$tiAy9DpEBpX|4k0=On0jd&`xK7}_eC6x! zQ9D;v5oK+Q+ZU++-pqZSb0T|1R&qv*^he*8fB&7)Jl|j&LG6-c=;DJ;g=mAfmnPEom_siTP+%1i2d>Eq|o0t%+B?l<$-kD^T4SYgTwr%*oi7 z(L2IP%Y5BGiZhZ5aE63Q(!|y9R%j#s6?2B3O+RN)z7g6HFOxix{VVs%y$V*!})X1!u;Fxt0e9&&=Y3*W7xweKe+~Tl)0q2mQKceR4?ZKnDP4Y!L zN%l>aCsjy-@ugTPdJ9gY)`|Aw!Q$n>NDCFa!Hd`q*lCY&A4Ut`m|*gir=7E*y;s%Q z3Uk?%qRx2_GFSiH`s3-ZTiFYWK2<&SJn}asYx|zKM>{d+UQY-5iRh|2#QY|BRmk+9 z4yMDp9QAC?P<>y^{7^Jz1uaHQlGY0lSe;Wc`&n+V$qIAr~WtN3Do_7B)I~uqE5H+@v+{wluV^vz|1+ zFkIFgPz;r#Vi~AjLqN&WOVki+gQV~*5H)8}R|7QyjDL@>i0BGGE!ib^_O~mmlg7-*;8d3ZKNU5lxMnOl9>K6HZt}!#+mAy zyIa0mwphgG2Zm4D8tR`4hwK#S64$`#qE^%y9U!D|3z$fHGVm4e1f~W)zNZaOFx>@?a`kVR+-3RR<%{=vT)qLf6 zaIv{1Kk>m>8tnDw(P9b<94FTS>5?S-1ttgT2A+{Ra)2N6clWm>I|Rm2v2ws*#EJZe0DglpPLu@een}5wI zx$SH(mIZ>}J=zK<=b_Z?Kw5wgw5K*wUMh-iL06}P=^S7*zM=}KaC#=43#V>X^nN;& zo=?fBM}eHc04k9-GBop(oyg^Lar|MvgU}V(iAIZF;k_lBq?2VL`6&4*d8NFK;;bS9 zJf1t0{gh8YHS$JwL;6ONAbBF*A|50bizniXL~SquD57;BnLz^Nw*RplItb^1E}X%V zOiSiFa2EU0c4{4kQbPkj$qnRY@;(_EI1xyomQdHIn?PRNLT!S5WRxC9=g=dWzf50X z@z#g6dpn4#`YPN(PJuprv1lT&fZIxvq@kdyx+L!iN}X6`FJ(_t3u5 z=o1g&eSlNE3Mj07q^BUzV>0N!TFUpyKY-S3tGu54fh-PA)k#Sg$tKWp?iTgMWaxY0 z0^H9?pv^7^@^C9QoYk;p%p2wsbD#Obco;Ps%?1Or`vTJ+PIXt&@pK{eh`K~w20~>i zoF8_fx5D*m3;(+vTMF9Q5xf?-7TrK~-VObXHUll54yf40pnN@ymx11Ng7~c1CQgzp z23ByAber@&DAkIk=cUa+Q%H+bVMHDhy#ije8BIa{5w-$RvN`u2c9+MnJ=r1bY9Ir@ zV6#|?4dxQLCR_>^4@}$F@b7I{3tY)c<_GhcdCc4c;_D+Ohmo?)*-gNd?9QF$MEn@w z6s7$KgFJWM{)`9ea#@&oXR#?l81%CeRayKu%&`;9J%N#%2*(3zWpSF%K3e z>IvG~6{1a|?V$AAF4_WA)oG&cz~w9f)%ze!g}p>)0Z%#$Sqtf{exP`46{di~Wh78D z7XtThGwf(@0m8}uxFRQjdNLh|(@y>rKL|*aueeRzKU_3d3B773utkTlBcXNYSUa1_ zt>v;HCuA+3$=3&7i4FMC*AN-nADHHE&_dLY;+Pey3I3m9ptjr(B+W;lwfq3?pldMm zjl=3-6nY<>jn+r)Kxv!~DYHD}TOI|f;27Wy4iUxzjc_Bh=PZy&{zv573HrDRLQ4S^ z?(m~{6@QDH0W@d@=Z3re5njL9N>;(u125HWQ1Z+Hx@#NwItkFJE`gpd8J&dg2Y*U7 zs3R$8n+r7M>F5Vw`rd@`aRk)ZThQg`d~_;01X#cI!3Bb$xyWN=A2JQAXZ=UeijJPYmk1Werr+)FNzI&%yN?0zFFsB;ykPC;t=}p-1>_{BnLaKY<_4_k(s!;+OKf;PbEe9H6tC zfq6O-2$Po~7gPyp!(+g!@(d|O6wsI3z%?2Jm8b$3hGH!$(QL5U)VKz};H|9JuC?;V6ehsQ{2%oB#lZaTAv6$T1&bhutRjYIc@gm7aiGn{2o1r9H5Pi|QJ^M$gJd}`WQG1O zzxaQ7l9BM9|HsJ)hdi49@f%pU3%SthaAYicK=hCJ0%%}bi58&nGk~M(h4?NS*#vD( zLRenPf9A&WYlYR&L&MNVkP+2Z_y#1`#*ls=4fml1@>*ylojPvEllfb^zMkiVY}Nf7N|PW%_H(k)QjBtp9S6&Ov^k)vpPn4SJXPs02E zBc#AMO+y!A$Dle&LF*%<;rnhB{sD*DRPem)K%T(ZKg!?cgCX5L5s0se$UNZ|UmrY$ z1pi%_iR^(M>4a<62YhL9FuxTG$#6AKL9ZJDB-8m&*R+Q=B|~cVNVq<4A%)Ng{h<@| z+cn5pdtxfxEf~NPfHEvwPv|QbDWxzZ6>%T5uN8qBwZJ z+aRlfg&PZ;)LYOaHbUQpoR5c! zO9|gK9(2tuke5K#W%xp2J>&?r18(g@WQwqjR|;p5Z&+unH~bVtxC;HS2DD%&xPRQp z6y&7fK~AF`(a}h2elr&dS0)L+#0SrFtryV(@-6z#k|N!VF6SS*Ey0~ zi=4o6LHT`WBJ_o*yHHB~rFyW#`G%q_$q4C1Y$QJsYLq<4)7P8Hk1vwGlq>WoRsNnA}P&!A9Us0oPfB8N_bn znqapjKe40WGMmDw1&ZO2qp~dC8HqlZiYz5mj(Lx zPeY}gO&b-@jXlhVWmEh!T_cDRcOUn93|5@_7P5PIFY2~)mFuRkSoSaUs5#;U)ep=b zsA6*%P2fKDNitd5ms6nW;+6bNT8ef=&VedJBDm01m|b*_8w-jxHyQ9%gSnFvMvJ>h zp0M9YUg#zCX2xNu@>QaT)EWwyjy!`LRTN6Z?Ds%Zb`K}#--|8se{nUtJg|u$%WMs- z!8S@q19`qTx`lh}A4CPfUARQ(h^&|Fm8`Nwsy-fPqE5Zj+5H66L~d!j|}c7cTV&h@$q+PrT-C?F6*e?A;pCS>;ZywwPPQEdbu6` z82Z8^|0VZsp9<|FPL_RF-jwvBcKbeX4t6csln#Ni`PpN?c9LCh&M5(zBD;N54Y4$UEr%(Y_Kr3&eV-gHFFQ8l!rwlF9$#$=u?= zlt6b@gUuG57ypBuVU7pN0zc9FvKg}D(v#?lzi^32 z!iw-(l4D{{TqT@iiu?xW9=9ADtC^x{BhOZi!1_9(?WO+3>=~rK{D$F{B0(GwQYb6o zbSO8(1&*r%qW`VA1JlHl6{n;JVb45)OJ*m5R%J68MfOHMV^LTLtTm2_ zLb*H!)?9(t{$Xq?Y7qs{o-$I=Q1Y3bLR=+o_|647p$5fU?Ov4=|HcjTTy&LrP6rNS z!Sdm9N@|ewK%crFn6H5?lysJKfvV^b;tag^E@x7aN7y>CUgi?lK>M&= zLDPaU2VhPe2Hwpk=o2oSU&Y2TYQ8zL9|#Y6^l}%seMc><{em=reYH@~Z1qGs z(80bkeEj4 zAtV-@2OU}`VIJZDhW#2?KZvm~Q0N?l+Tl8oTwLfAc=m0B%KAOp6)i%3L+#UuNe6Y&-q1An>wL>tN}F1Q^3|KMOVPS z+DhyMHWS?>Jb|CGRwzX(p&ipi%kVQWgOErj_;-6i_T(kl1F%AsVT1Z=E!szP5L|{s zv7tx{?icf#-NiF-HS*EA7y-U?7Sa?1kxZ@DCesRRDIPZ z&2CM9ZFAiyeHX)0gUlFeT4LH|>SO9;o?;nb_8VquPpCF2#>n-uY2g0TNqXQOEE?7E zB%K|oMq<9H#CQ+qigtFj&$ex0$zVs6Etil^oE%R7|sD1TdCzv53twW=nz-Sz>_ z^X~3myKgcnr3TUxb{&@^JV6(Vw&A^@9;pMqn=Oib{rotoFE0 zW$0w=XP9KjH$+0R3af8zSPZJmYPz}_ttwZsUS3~TQ?gAw1!u7;^k3LDTMLo7YPv_@ zjK6`8CAxU7xlTFvIz*1TcFy(=UR!J~+eUj0hu?ADnd^G*KIz#*eDt36j|zzB*31g_ z5O)><}D`sM%q=;I(o z(t$(@>o^CqovuZlCRh5``F411!~!DI)6)~=$#ge>(BqZv!|oFI8qX4N$OaVVJq>XEvO>#MR<^LM?e-h(TIG&AkBqh)S?>EK)Q_gh6iUQ*pc` zMtW8{3lgr*D!M8~Do)ixy;D6M9Q(Iba&^4=hUzM~_&2JWsg!VnS*94ID3I5X=SVXo zg7`KbD_VgzM*i^0Tov<_c2U~{GstQFd%i?pv{y}R0Bs%Pu5{^sR$-d*ON>^j`3u@LusggWt2f z2H!Iu?`!Wr<_{+?kv=$IQ-GJ|5$p|m=)16A>1F3ZH1k^i0jL%3*&Sw6FWiQho3B=g7xfd-U{cF}v8MzEi=kVE+O;K`CAIpFym4<7OlqHd6F zSuB15+K*n~9bYf6rKqb6z)6`3G?2|SO*FhZpgykN1(nHEbuINx)jXA2HCA~O(g149 zr^ zybj_LT<7V;Jfbbpo7hHtA*9etioJ=xxgUZqKA7sm(CAxbV?+PF4zvrJz zekDf+DgvjdF!0*Efo$U(_CBN{$G~d;KV&@gkyH^}C9zgwlTcE*ycpcFJ(YUM_PC** zuW@TGXba(7u2@THE3|3aB5j^_fmW(Lr%BOlP~TDc!4=skMF@ZSiNrCg9weD8#n(nUdWA3+Zy=RoC#FI?SAWjmI zFd~Qh?)oYq7izG-#NU-HB&P%DXs3-QdO@vL)8+*z)Z zuCFfMWpsNX$+rc})z{ptdzy#$ydmm&mv}FE!+bM+K3_NgEq@$&g{%=+6Oh3vNGDp& zDt%h1FSY)I1&(`V_zbWOB_Gz--$Rn3);*m2`-*3`h_+{zViQY*~~6F8P2Lc z_&@nhdtVVRJtj{tx5stCHQqJKHQ3d}HO6(ob>B7BMY?9W-@DJcF;Aptk0*h6LBx7z zds*)upT>XMPx=$cs;{qKqUEF9+(wxypa^RHh9p<2;<3 zHzTb;)qOxzh}V#;1P75+fhl8DJ=McCi?j!IkMySv1B_`#J-D26OmSwT*=ly0UYo|4 z9LBoFv4-RNGzf_Qrs=JIrmUy94hg4W;=!VIs8<-nUt>kgRH{xuNs9djUnx=IA>BRQ zS6wY#+0I?i?ii=danbS0k?!y~5}Z?=Zf9TDFPGHa+&#*@%x!Zo_jHA7k08J=0?AB1 z-y%Qd|4Lp6OoMaDe0mSFm|el0;DM74>Eu5!214;kaf0-aELW}tC;d5fxyGdHu5WH& z4Y!Q5OqhANc@w0$9X5Y6JIzHYiXi9Rgt9ZuG*#kqS5FE>t`A|8?C0Nrl#hP=24b+7CSiaBCH&^B)eK(n;V%o znJ|;p=+f`enYCxtUS*P^uB@G85q=K)ilp->WJQ%yyP;~$@}2PRCvJEix?j7>oqZsA zsDH%VIc-LJ6MHXs9k&zqdX5E-caUE>#0jZcu4^!tmbq7Z6vTGI;LYal;~Al}4sEE4?yKk|Yil#iP}Q zaojVe8C2f?kaEA%dmg-=_1q&}`<%IsrjAK=m+cbdehjv?w>7mjx6QTPvBlX_?Az^y z_6Wyf$33_k&zy@~2{6Mp^Q3#W5E7V`8pG4zr++KiB~TjhQ(;VJb{qGY*CHwCf1p~Q zD1IVQ$mYw>!?}7Yq>&bAhv;7$9vKIj(o9>;8!Y{;2d!7E+Mt6$4}&&=Rx01R+nNM- zB-D~%{%Jg5h||~6c2%b;r_0w!FNjZxx}qb5C0q&9m{wAif$e03ztsDY7!K)NZ6QbUm4mbovOj{fxSqCZ@D2z_VhOidY@=;^Z5Lt9 z5oO>7(OUq2l z8*`4Sz9Niq( z?5Xx5+b!En=tmuG6K$()2W@BJE_}3E;SL;waWMeK#5HGYSDLH4JI0genGT+mN8W3` zZT_`TcebSl(Z?A*jAl^kBmJ;fqGa(($y;e%NWd7N%2MZRcx`9B+IZ2_&pg&#&zxs| zVQFklw2G}M)>+nv))Uq^>odz>3vXUyE`Ygpmfy(DHuv&h}aMP4--S zkYj^`bj)?K&Wo=8FfU#5OoN=2O7C6Ye*a>!H@J0I(=V7*ZZiK$z|fsoP5ccc0?d&W z!acy$TQzQNYyD5de3RL%H9v&3`laS)=9}he<~nAZDa;&ZE-@W|gv=-tW!!FDV`!&m zv?Dd^R5uhAa0j;H(bx~ze`(1Kr2J%||0Z~wgS;DvVoyy^iTj=Vp?eUl^;Uqsc#@NH zbaA}3*R@kHlJ~%q;~Y)$5ck6`f^P z>2}FY$wf&!$yjj(c+@#88C!y$hrRj)z9u(?m9U4HW=sQS0P~Hh#%_WAoe6Nt4m1uf zmaEUMX0Ff;=?PSyKqHd#NqkK}4SL!09Ny1KcwKOr-K*WGC)u;qbIoHRx)R5ULL$XG z(~J9__+I)=;7z{Fc)3MLb5Rha)4G(Y+FpifW~WsgDv!vD8XMCu=3!Jx_~OvG;4n+9 zzMt})I1UZw$|)6zc{jLMxu$q-c)yS@VN|0=W#D?zDM5$DIUt*Pn;6E%|YvSy{opVwTZn>J3Twx`88`a&2?gh9onC?P}GNs{bSDETF4Mx~|=N zUE)Lu5rPxk-QAtR8Qk67-QC@0a2ecPf(DX62ywlB`?ml4{r;5&!x}soFu0?zy7d`!jh73Y>Kj5!+dF}OAKnw#Yl?taBl zx#u$f{PAV{^QT$X(Sr7_CQ^GQ-f+;G6m&jpWmL=3u88ZU{tbw*oYMy~XXQa0vQzd* z+t8A%;(;Y;B{l7`155=^vHOX;tUJ_I+KKat{Vw+4b!hcf=Qz&*UxFyhsl-A0G8{U_ zgNC?*Dp9-2?FAV;>3h!Z&S%aQ?n;~@+))deR7193T1Zf2R80M{mCE~9++S&Z<>wW8 z$1Mpj9k{{7)9;0A_T=1?zeoP8@oVGn=NTbc|K#Vonh;LI^?=i*I!2^M&x_k1zbNKR z_^5zV#vN>5Vk!TxgDwio_s^#bIv18Leo<0nC*9q-U3>~(im&bCypufXuA0smM=iTz zGdfb7Pdz7nXT_7sV$#BFfHluv_AOnLtgkc@HNJ~(%E{S#I^H<1xi527rOo6D?E&+v zz^!4UOQ*&@On6x#ztXVE-zr`y>x#+_`Oo@VyH`HwYF+U6pV*%V)6V_u@hdf*$o7;h z5fa%`mN~&E!WTvliVrI{tZbR+yQNn7RWfvAUP{;9{}yl0UzT?@??HawLUZvNTZ(g? zx7c@qU(OHUdm|6_%l+Kd%Jl*|wzjVN?zi4(;egznu#uDKo}h5Ln0OivXW)`I^y=I- zoEi4rcDrM#d!w(RJdQf1?P&fxa9NnUbg8)V3H8b^uW+&ArwVjJ@2HZXVpDs~RC&A0 zzu;iT-c)Pqy0mWT=YMz3YF}K3Ph_`Q?}xY|>Xm5~f4bbcgq|@o!$dz$uhL%0;!%rE z=U&d5UkYzQ@U{AmaOJre&g47IuNNza!yg`AQZ3 zO_&_Lp;RkBz5Xwvop)$qg+EeC#UF=KUZ>j94*kx`U+?`&Ju>eLIUM;dMoF+$jIP)v zJ~;AoV79RrQ&np2+Fj5lD>*~WxbtUZR!Po+f)LvW*IQo~she^{{TEe0eH2A%D30N; zaLc^;o*~F;B=S1c2kNmJw?OSpH?_I4O;Usng1{4eDzZxdt7BZQM$$Q&dPci-P_Tc5 z8l4~4E1_bAdllIVk7H{@%m~_LYDKlZvX=Rt$b0 z`6{+q`B7CaRX&_hJ~};QmSrIOuQbAym%ryv*Yu(3p7f0wXR})8#TPeo*7y0OL_|fc zQ0=jlXsn);^M#MTmRxu5NpB)I1EyVUrmg+8z)2%Z`gunb zc+#hRPyH5}JUw|(@{qJsIfPqBMw&Nz2(gFU7^`UYRlwknJL z*&u~Ysgb%bttg$zu2xvi`OWuUUP*qZ-y$#NK`r7M@+K;P7xJ6Aq244|OKfZSmSZb?{TKKX(+Xjh{~y-);M|dx7e>MJ`Mf)`d6u#hiv9WSQeAURT zz%0F>M7ZwcSbvuNJ}Y@x^3~*^l&JK2Io(Psc&|y-$dk-T?F9XN{blU~W(Mi6M2d5K z?ZELgx*6=ob3N0zcDzO0AQj3f%4l^YF_JukDxA6GQECjcN>f!o+4Rl&EzlFXtMtpb z+U4I?Y+f-j!CR(Z%g$0xJ6aB z*Jf&$N?cNIRdi;^5R;Wq9H+9Drjp6z*9V`keD3<~Q0j@yw?z@2UE(659UG{h0vZrw z&}lo;aQ~BD^Zwjx_iR^`Yp$zFE! zur?1m9X2JJkB_KuxMGv?v*Q*=&kZZ>_nbC+%jMVmwK;j>mmeR_ylwLS+qYU-l4F4y zWGo6QU*>D254CpJDOY1grDJhZBDVWqVvlg$@}K>({z&+i`}xhM8DFx#C#4U`dt!gj zWlL|#7)=BHbkLMKY6mh^$$84ZVjsQ|x6xD0Gu{);(OB1N%e7P;ZsdJ*1GWu(!~SOG zfHF&K7HOyI`LW3~hi3ss{&mo2I^qRRe?Ys&pswpHoYK}U5L zgnotnex)Vf`n3C1{?jYZ$9?$uqkm3>r-W=}UJ=o>;-lK<>)oo`r1t%4=@p#O?m&{Q z)CT^{p$SzgC%8yH33Z^*hyF zQ}b!1LuCpBqUg~cU;e1yX~`o#Onx2tD(%hPq>o>Fq&@yqr69<8iBBag>|5<&L$vuX z(B6ZsuPiy{LFNS@YYj7u*R|IkWINDym6zT_eSHSEPJ296xmLnc^{b|$h)Rx{B(_-6;;wI+h}T+Ww*L2S?JS&!dtH(lnVX^ONj7In)#rTNu0U zt?`oCW@+I!*T0VcO8@o9#xAx_1&86c?j5rk{tws0XkV%)!fW?V=5yrH%x6PZz}AS+ z*c)+!5^Uv9m%kU=Iy}`cg+Ar;x3jquQ=cX|-)cTA|CIP+*6(WhiLO!VC(HNnldm0KQX(TU9IsUyDTd>ZrV(U;WZ^{Lw5E3@Ym+8qzL5~(!N z8Fut7QFdCH=nmdHtscjP!qPtzr3KOw{kvv}bCNljND=Z1D}|kB3~RIb&KJ zkQmZ5v}r_(=+7{do*vZBT!qOJUwEh6&SVm)S>Jc0JWSh`-Xpti;brG)xtGBk7##K@ z@@<)Waiik?D|0=Z4d|dtRX6&E+27{&{GE}qHF@~AU&+IMTuH5!J}k3N{=|~{ZhyX^ zbdvbVEYM{dbIh;(^Z|Z>4};bOj|x76lihE>W|qdrKDs;Xb~+Dt`F+R$+)SU+`B{$m z>;36~y}=QoU4#2try0vIv*pn~)ty{CKGXJVYeslhRL+3Bk?4}WH+#-@%>J(p%lPt7=xv$ZhKcF8r6YbUvg z*-WU8HzZn4_!R}%gD${TZWvfh-2-p?)wO6$Y5LdN!|Yeot54Nz(2X)F*2(^(tY59Y z0@nw9uq@T>r>e+3y|J!S_6vD?f9umHWko{M`l{rO`>~Ku-7xkKN)Opqs#Ms#@SyPi zA%p$P8nQ`0afpYr)z4p-+2{A-pUu-!(zNO0e@A7k$)fUy6m7AscV%$*g;0g0TWNKM zpC;P>R8X^!gi`fFM~Chy6%q0_s98Xeb*{-|yao1Ywtla1m3fzSg#R_`U)Fj4O9IB5 zsxl|kO41W|BYRF^PIir7uAlR>F6XYvZ(lOqW003HQ!K4Rc7;9(n-i{y+!lT-c%C(1 z`%E3kEp{|1?v)#xvF+#Nw1TwspF=XLWmd{6&Z$$FZyV+u>K46I_y<=p_ys=>v4jSNS;9_)eh#q)7X-cwNcOLRZ2wjN9RZgEU-<1X%`h*plsC*L{)pv# zevX*JLj`SehyNO#S~v4r{^bI1agsMvX~M*qCIuf2A01XFEFfZhM0AM7+RRW)Zx>EF ztJ#hf@>$E%r~kV7tMo56UCd~bRW18%PM^ZIAnnku+TLK{u(UxPLbuT^H14zT{<`2U zrLseZhO-fB*w4@rr5xbY4Gqo>`Vdqxq(P}wA(I1FSS$IJu`bqO<>GVQU5dZuR>=v^ zXpr*a$JdN8d0p~%m-O;w69L**)}x_?;kCkqu=(JdNdc!#aoYN7W3I7tXvwF%_)I2a z=kI@hpUvo)8JGPddr@wif?CBpY%A?29a~%zyk59nEhb`^@6boJ@f#GhyVRhtSK)Ib zuSX7uY!YdVtRGl6_kc{QSZ#QD&opqGB#tmRNUw~*&uElNh_YX3AyC(^!spOR|K zyp;F3sGn=I}b)j51XSjEs?rH%v{ES0r(;*8kZlV#Hu&B@!4{U~!!CX@X$ zdr;1*Twh-4!puTlNd>!XPjQTLFZA^hXUe}wM)OfW-c-wPY2c0ExKbNJyN3CPl@Ch~ z9}(FhijN9IUf@#9jA&oP+VF@{gZ(CJc=@_VUotp*!|&fIv%VyKuKIn@ucH}ba!%SO z@(k6>u-Cs9C@DijQ$x#_dL7u?TuU>OI4M@;<~b%8pDmc1`zB{$-o*TgG8%QTPs z6IVX2W^|pX(vj0j#adN%m->f0TwFfi{ikEv#jh#JN74d+j!8eBeWF-(MT?&)S-ZyY z!gSl3M3YzGg2S2OQh&X8Y5U2%D)SusFB4UWuusxTsI@g_1V* zea^#fm5UN>o zToeup9fcU75DdQV(gP`4t|&!`$N2HwZqH3u7srQ^-NpIE7fYttH#lo}^Z5zNIBJFF zm?71Y7|=K9L`YAp;+LZyM7v`u#I;CRTs9znVa$Y>&1JrYRz?|Wt~==29geTR3nFH-m>+>(tT z-Ik}0lg)@fiYRxIX9x?xE!TM#db@g;d29RL37Zs|urTE{*L5$AWi4g=M+TG)K3>Wg zF}rk~GI=q&m{~FR%IIPqL=7%A-rr@8HU!bF<=%W#Pm;YEa-6G6&K0jN@s)f5lg8mZ z0{!|F+ZK!r9^CrGlFz8i`Q=D-FZEjZ@4^O2uik-X;Q^|=kHJq$79R^w`MN$Mui*S$ zMV_kuMcrmHG*5M943aU%yvF?9BtcsnV~zA1>mM66xsg0eGD_WW{*O^7!p-{=S(6Ud+|efJuj%_4UKopvUgK6H3oV^p zA8zo2LX0xrg!4qMakTl0`L6k;>8q)%(V%y0zktnMOkW{~P;T-Od@Z!(5uz<7W zsO#i;&`PG_p6)LXQsR!y_8Ye2wt=>9wlB8l_R7vI=M7hayPc<}cb0bwM}Sq?5H3Xn zQC*RzEJC(^ADzo&X{y6p?G-ZiHh71fMD^rg?IhH9ePx|=GTb#QGpCu=^cZFmT?5`( zVa!hUIQ(zy>_qKq?LzG;?FwCj?usr@cS-v~)0dsX)PTMoL|F&BE65;B%* z1X4Cjy(E{AGsrzqSkxgcq!GG-wa^Z|Ko$Q2oc0dDPoWgm9qyn4^M8+f;MY9bS(3gI?&n7L49gEbQ*V| z;TTMuMcyKmIz?qcf43OEKUJAMsKuJks0_!nVOOvZ*h1E%>8k0aS*D59EQi<5bB1PQ z%8O@dgUb2c3WzsQupO7?NaLWun<3qko=X~exV%+p?*1z))t~Y7oa1X zu1r(zDJCeuUa1X;f1su54{cT+-hT`fAyp|BPEroIX6%C+BnZ`_qoK5jAg)1=(-%MG z8O~K((EHt#CQ2m*`8K7xQUh%q1qY_bsPbj=PAsbTl@LVL7 zMQ$S-kRfo5S%_H`K>R@!=Q;I1(4c3jyU?BoP}qC|pS=#z6e^R+P#Il<)`%mF&}qex z31kzp8GbRO9s2x>#3-mb9znb0R!%FOp{3aa4OkaB9*V>|a%=gn90&#AJEbP{T6*Z3 z&ZB~?G#N;CCC|aB<~ymQ6etfpWCHb_+(OPGOF=)<4;r2mYFpKa_nd>LiC0^yyWwa* zmY9Y);K4g|L(lLZu^DQVX3#pB@KqcCY7TJ}dM=p|;f0fqHc!D5{8BrpIyDzHp^Z=h zTOAt2no!hjg}(M3bU>Byw}YT68Vx3!6awb(p*jRoEf)-d|)i`HUC= zm-a7sig8f4)WcgC3jIkQ-n;|#uno~q?eWzVYNXnD%AQc{972t(1JBwFo-V`js|u+n zui$$G^%C^>Jk*yvl(85GQ!$60fH~=eR@hszvGR2q2>&M4yY{te`)B^%uvhyLe=qaIKf8{ z4N$*(lz5FEYL3x41mn94SsKck>sV2$K=XGJpVeBmK(ofG4&^uWbm>Yy)M-DIm&y%% z{ii$tXV;;GLuIs5{feJBgg8Rn$5XPTN~AzNGzW^aFd|>w0ToggXoT88&ovZ3br&>b z$*K#rZNX5U)Pkm}2~ijAX^DQDiBI2ynR$T)9(BR0qJuIF_B&8G2cibI4#vn|>I(GjH|Ts4h~8-1a*%I#Le;bwD!q~T zq*m~{ib4yD&>t_a=FiN=<-@YcAS1mza*~ z=XOLFwBCs4%Y?SS{8$6j)$uBp&CGZ!x;JqkA-7UM-D@4hQp1P>(%}=!+TF1sc+p7|*|;*-OK!a1$zA6)k#&o~@6*Yl~H= zDSmGSZJ!2X(jRJ-Sd8|GcvG49>_Di2hpLencSoT4Ym70v9F^n!F%~P~IbWcMPpT(y z>pTSG>x1%GYNXynZRu(3fKgBiK2hHi=g6H{n1Gwu(1FbQM23V8sZnMyuHKC2GV zTosA0YN`L1AI)5&aTBMOP3H?X zt{srP3o1@47(#E|4n8nDnU_8ggdmI-X(7kZlNx@ zy3|(cqv=8RkO%N5bSKnb-sa3}x({w2j?ho3uR=C@JDI#7T_lf^YZQfAplne)P&38J zL_LZl21r57GUb|NC042>%nq(ZlTYmMeuW2;iHYC_X`j=5#SH1FG9Q&bM}>Ww!Ng(l zI(1Myr6!SEg{gG1bcpC8Z(t(Snu3#<$5@n#q=i6Kqh{0dl`q0d(xa^>pY^@f+#xdr zK?!7stNn!M)MiGJ)4hLz-*7`5Br24f>Zgq1KWdWc9^yV_6Zx3Qf~vnNEfZ_SbNIP8 zWrMn&%qA70rL>=%Ms*chVC|SkHWVKzv6|A#Zg~;`4?ks(aGttD&y;Ys)b^$Cdv`ER zG)cm6p*(d%GnqRg1!_K!bL3;{znZmjwiHMHp!%bRau`)eg^TUsHoHyTD7~S!k=3Pd z@vM9k1t@nY<6Q$NAqN+P?^44pu{RF9Iw)%wyxWh6Y=OHix+ zNLrvCrg}+7g;j_$CrXjfZZ07{D=|>bOa(c@LhmA5%0G#1R4c5kUsWr$n-RbwK1SrD zR&}V_PZ=j)CoZZzNiSi>J7ilNCp z>Ti$%@}QAz3D=xrB^A%`7%TL5tX*fJNAF86gu=C{`U6_t(!^eWjVhZ&F9Z zK~uaNJMswhVI8s$@jwk!is5)%qV!iA!x`wCJWFi?Ug1#Xs5}FjpAD!*YDLzjZsYp} zsA^8C-;};;MP&qX@6i;E+HZkaMBc#8bq0FYipnY3qwG;1%l{~U6T4JK83M%(ryfvt zs>`uY%*Ht*9eY#=6wNtAnz{uJu8)+C@VEboYVT!AGw5yCqYAl#vPg-;e%AtL;=ORD ztq*5t58{f~Q1>1rc(~bBg*G=yex#gKE2}%8!(WRy?m00Gdaih)zPds=j8#1mn(h`* zB`+i@!0|N;wWK6*Tv;nG!Dl~#s@O!fKB|bj%A4d7s)gD> zr6QJ`kK5gU>Fj_gHTb`$nDhj z${smO`Xs-D14@0&r@B~CeMCNSnH)-1A|_)WuYsGjGUQ6qiTzxon28zCOWP1Z{sX0E zUAU%<#a>!ht%i8BGdTy5;%s6hM!|f{`j+Z#`G`CpDy}qTvWoo==eDKzj3h+#<%r9O zGDed$6bbFAbs!J4B6=a(MM4K>td59eKB@l_!Bj)IsLmvlh&~`WjZkuBozeq4;2L5G z{18iH_nVIxWFKf7d(=YcQx0N>XoFM7eX<6<4{l4xKwYY*9K&tqRE0ymd%PM?UL}&T z@4X^^tGP1f6lMZVGDKyp9^(+@kHnguM0``$fli=BP3byCBG%E*s6JFOl=>9lNpJ|d`1#3_u0&4}xv`6jaQ^zCuV zy{tZv2gn~~>==k_IOx#ZQYFk+rVqV`s0tnT1URTo#OdmV+7LRoJZc3sgW5_ZK|^1H z-FYR^ovfo)gZiu*HI5hv2F3?DO&N=R7%Pud1|#b04~5Dv#551c0;(G|ooq$m!==_A9Ur#KjgXj$yg&9gI#Cg>acW%MF z<&?F=WBlZNutP>7+Bgdj-b#P*?NNvJ+Ij)vP zFCUV%@@eH5v6E^@j|W30liGrc_e3R5s-~o1O`0oXEkPuniTCgxYQ1-e>3R`2aZ(tG zksVFmfPQc&_!~P=BfpRsO0_4t6H}=u%=*SyB|oXJ;PJFrIw4!-2GR_<1I|3H$fI@^9&~^i2H5AM_pZ#&NQkfKLo0|D}I0?KL^t z9L;v-8TQH;rU5;TJb};ND2^06K?^ZdY9NKb|bY7(9kJ_&+>H{r}?@+{Mmk1}W|{#zg{XFHb=q(PQohBmO*seKk)R4V`OO zp@vXjPQrpQkmZmooZ{*X0&6nVd;@WVdeEr4pY7TU%MpTa<)!b(p zW(WCBnI` I*@XB%PHX@C~_0tz!DIOX)f|XBVT2Zj!P~6_f?iF>$k8j@St`X-}w7 z1Idm=dGaFZQyo$}k%zW~knhMp)w|?Usw;hr4ySJ6)O!yqQBr;=jh6mM|H)RR7rdN? z69>rhw2#qiIx#(=tK3X0WDu&UP6|GL3Lha1k^aI7EskhHFJeEl2C(t|&`GK&1%mzT z7W~EW$nOr9D0#g)6nE{@=m7dN6+^woDo@j!Nr#dt-U!);;W3k}z)Ri@=1=)~= zzBh?rFe)Us=^;+3MVz)Aipvx5nxTM~Wb1L9|XJ@?id>&q5CORv@S6vMXB z3}sz(GkQH$gPeky{6-1HDSiP_mpX}^;y6(xcNTZ?dwef_H+h5jMC`0|gZkgY&Om;z z1wDvdLv|oq${FGkaTpvga>X&IUx~w+@)Hq`Y*7ocEA^6|MGa8jATM(s{%9fa1|BUp z0>8pZZeZFn^GOOPv1=g0Ou%_|512i_)oRE^jia{H64?vBih)XP`HYw=oCg(bf>>Ee zA=cAR=oFfwQ_0!tdifUAxPQs5q=(o=FA?pjUF0M6mfTg|3xZ3y9ENs5)35xieuvWS zH)tCLSY4h{+o%RuFS?*kv>$aHjFN2Sfiy|{SG*;B5GqJrl>kBmZ{F(cGIl0g1#f91 zV&IzU2zeR2)(+xq-whcXh03KG5N>IuP}djEP3Ip<>(vz`&CEc}^LSmN*1{yIpT)m@ zD?O9pYecz%z5Do+3PCs3tkvf04(V@cr!sShAyR$8;4APR<$CcfX6!WL11&T6nET9d z<_@$+{nR9-7@4EZ*p&_=Ggd&vqgJFY`-OSURAzgyotUZQN@S|0kelgyOgH*Caai3$ zZl`HxJ#~s0Cua&H#XZVgb-ywQxs^^t1am>-(KzV#DhZu>6W?d9$eRg8(+*EDXw|3) z!~WSG*^}wYOk}L~qIGc`#XaUHi7a&9)#00(0B6aSAWKyxX|+Ip00PrUxtltPY(Q0| zcd);;hjp?xTYDX<;706nHk);_&)G|wbStdZHOs4$p~3X&Q0OXSSjV4Rm@meSRz zh6G4bQeCkFUycj)R`Jwy7rUCdSHr7(D0kQQgx@VtQa{NdZNW;iLY)rxh4*q5DVGo7 zb9~{xZQg&qtgpm3K$s@KC;p{2(evS<>!(R(hp};RkIkol({E`DT*=F72E(&7SNC1F zTvw>SWvp)c$5<0i!Be1P)I&8=Kn+H=tTerxy`ZV6(J+Msqbw0Q-%M{AccinNGaSBK zWu12SYGH{QNUkB?A|}X2q*qz$Cmi-=dOWD@N${QFj(g8}2XRhsiTAm$MC_}yCN@&J z%yg{<4#@F_5xSae8>$$y!C&Hp;i6S;Ox$H$`s0?{{yPJ21W7?Pf-d+6nEiAu=uw1A z*@zQ*Rk9v4Q0FkNH?K7&YbsGalm+}?mr~R#-=06C=#{-Hw+g(B+eB$5LcdIVlRPN( z)|)b2q|aoVZ9W@v0+bUm14h2Wx{&FouIJNv-SxEgr6 za3A@P(nVy`y<&#&Li_}kY9;jmxf&^kV8)Qf^ znc*H$!+)56Thw3F_J3||Y94BsqfKIZ(x;g{nmElGx{3M)nt=_zD&FC)8@5bnOBUKK zo=3h0;t$11-DHckyY##D+cifBr%>q8Ifj-TLcK2yRo{A7WiC-zB1TJhz&?8?7D}ne z5v+&4@FCNRt;LRKeo*&`OQ1Up5%+=05KC01XKHAJpSj3V+pl{-nZWh|rTtVmqBJvn z*58Cj?K}M!?H66R>8yFB@jGLYKf9+Cf5>~AGce~#PE>w>+gvV!Y_BUam9rj$PtsV! zDE1+o^*qk0B~synLT91gcHTMMbJjZux1y`1NzksHP@51hi5O}cqMy~sk(Z+kWP5c3 zBCTG+5B`r3DND*$asiyoZkjGxTKnDctLta9PPCXTBhBOCa=ycK6z-I3;q1N|PNj`a z3-oQN!NPmz?cz^)VcFuJv_I>zpB3)$7>E_R?v^0|!9kY-WBqrSqS&TVmTN`v5sg~Smf646JBMSd>u|U)4+_;^ZyEZITH0V zK3%A3p1G#wmF1SD(3}T%+j+)FV>vixmbVPHKDR70A2tP(B@I4Ev{o z_BlzJ-~O;!?Q{1RZSmlgX&B@GIB;2zBarmZGo~>2q1Ws16b5PJoMjgZET#)>=$EPZ;F}1Uj@NM?MrC;AZI1d1Yd!$49+s$l)u&0 z!~n89H5csMa?DP0xiUj+z`MBlpgeNE0)C%#3YCQh{War1=JwY5*4~zPrisSC4F>%? z?R`ysO@`)+?ve46rHS8Vzm0zP{AR(EC((R@8S3j%bUE`0Ft(+B&CeL0yUm^^ZPx1p zO`*F(e+I|<-!+zId&zA*Wo^d`KNgHBI&CZGy6>3@U(GH8A!@~WVxHJgY9=30E6_5i zON}%=>A%$m(iHw3m+Fo5&h-YMV*fAVA+tu9K3rV*N@*QbP{_CaUf#e5GG5Zicg(MJz!dB%4mEPh+zB~ zZx3%6_uBVTm?L$7Q_%-4VXO)7V3J=P_GX7Nq?ROfFPYupN+X(h{D%iq@OR)b}S z$z@D64Y0&nD(VNwO^dC+Z9js3B>PxsbQQVU;@Qq5@xq{tlG_mzewMCR44Y+TMqb z*S1}@0{bC%w6B5CKzPsh=V$((?-b}nB85}PMJksasLj^!^lmj!n(m9_yxeJC5LHQ* zbz}jDjd%}ptC zdSOiZ&mYrL#{ayRk(E8K`JP)a#d)@zvTCdTBQuAeK9zXwIiR>2AoP( zX~t>ZYS!y^8m~b^ebI8<^M3+`?F-bK-`*m+_!^uXV2fs(`lvLO}n3H2?S3wL@1=jM06O4-{|3|?eK1>$z3JX=U&dd_=f65qlQO#(K6G^9rYiB;de*i6 zr_4PyLO zg6yxpmd)VAT~>3^`fY4o&3~F}+VOfn;~irQBV1GU`}Ku}gXTqkDFG(}PX=BI;Qe^Z z9rHqCPnPwz%v|_w&X?t>xtW!Vp*8Z6$~3mO>9YBaE|BU1g5z*9nBGF~M~1w$bR4() zV^Be?@eFXzalCZ?@SOH-5u)I>x=*Yo*Czs~3Dj2d8`yben88djR7g+ZVcJSMAi3oh z#6I#2{hKWVAMeT9D*711bNyXilCGt}XxeLz^xFfqa(}dKvHw`V|15XSdAh&lfWjj` z`~OhWBve3Fv^R0>@by%dXtwDiwB5)Cgje|7D_fsaJ=p*MFzmEx{|ll}(3+F0x6SZ-V9Sh`qVYH#xo@;d(<@v}$9om_LV z&1vVVi6!a_raOC;s3k5J+YsBC`kJGfDNJqBDoqf)U^wsgUUf}(-E-%9Cvd#ag~gi%T_A{0c^KGaI43ENfEjZLBRi7`0$%~CA5MP3WuNG(*4L@^f`3MIyS~SxnW$93O-m@g-y@Iu73KzbTe! z&OT#<*erOTS3}Q5>T(T_Ohe6K=FR4J_`Qqiw&|TQT%QGw$TwZ0rjc65H_Vk|e`N3M zdg1NkP4isyIDL%NL^>kQ5^nQV#oKaAvKl>)j8xZ2LDCQLt1y_qC2tQ=9~DQ=h0ebYqs%>U9P^4F`x5 zI+yMedTx)!-}2sk+njD{YAn%NG#BY;QcsxFzr~)uf8pnq%(e2(^}cqmbl2oA2o2?* z;BJM=AH>G82O0b-vJTm>66u1xR=z6s;l3|YmjBA3v@Mhvu2z&8?{OmP4a5YHY&bNo=x-_@Pv&N(4o(cP;Gm1xDt@INg_$ok++6LUthjN@! zRjDS&Nr(6e-h1vG_fRfCcq)b9hSMi+5M#v2;yv-8oT@gX#?mPuF4m(=$wI!Q|05?6-^A^L z&zs}bLSg>NGmLv7K2}q}PJ1Ue5bO9h5Kc{_FDp(`@VlCHcdhDyk`FSYr1gP%&y#m)kyoI~1fpTBzt58ndg&6h^e12b} zvSXQiL)h%2xnAJ?%=iAo#R%=in_!;rl;(;9#Z%b%zhJ%SNsnN*G6(6Gh(!kD_Wure zWnY;_n(o?A-41QAwiGhaWAw$w3zj8*34SB3QPxYAM&@0HvAU6(U({r|gODjMRdn)l z@g(1zTjl=Zs^xvaIlS$?GFMvE!)N_6$o`8(PPi`g7q>~vjlk5s-fJ6Uk^ImO=*BQlK<-UxF)%*?#CdcjB@*X z1>anelH$awVkFkB0KPnb4>g!;#(-|+licY29Gov)`wLZ|Aczqc|2Sb6OooS8vkmZM^u63MspY^9Jj&`Z8zW$&-(6GW#$Jhh;gx{7{)-l#FD{onCSqFdO98(3uJGL<~QyeM=iqFN{ z{6E|xPdnE_=T7GjN3MOZy_}=D`-CUUJCJL}vA!7YAMZ8%xuvf?XjUzR1Q2(Ux!F+Y zpX46-LWT3714kjdzeD|v>Vj?bIxwL=Xj*DFYisBjU8L@suD7nPzP&zAA7rRzxNBH$ zylAqUn_C}S73*s20_#2NKX{*e%?FKbbm7ce^#DfyULj1Z;alx3u+)tD{h2!q; z4#_ZofmrB=);!kD)p>MxbWZS-42Cv_vjz*eP6P1u$G8U6xIl~7^4=<2XIdv)t66Vb z2AIbg59ym}?ol6=j#7r$OlZ&hai={)+<&=3U8S7M?1yYxTXp+tu!Yh3YzEaXfTxTAr80-!lX|sE8Pu%`o>we=-^60r(pP5&o-%XTy%H6?#D33FW zo?1oSri@tiZ_~}0OlBCIWX2;4cmS(cU)?30pMH(Ll%YGu{xh)jrWkh{PZ+1dPpytI z-uTnd)v!Z;9F!J~wl{oI3UwMo5>Dz? z(-qTnbGT)uWt-)K#bs$>9dGSw&9)r3%)?hr%LQ|)DarWIFkfF@cSYl7r?WEihCU6h z-vOeB`cSSR4TR&&f7}r7Mz_Ox){$)QXn$)9vYjY-UlL%m+C(s*#@Sxk9@?Kc4mlfx z+IG|v!wvNH=9>tk#J7@&IL(I&20Ix=cV@b=%{8O7XLR>L^=xWPHI6Z9!R#w-X=@n; zw&ySG=alt_Wxr*-rM;z`CCMCZE^pEp?fP@@7FveP?kRRBGm~D7JD+e=n%O1f6Tre7 z!u{i+-RGS*!IRr=ziczv{A_(~aUjIxl$5n?vNf_dbrd@GJO6eaal1U#xH3M1Z;RC} zOL{C{MZMYsR0y@ACo!|wZJOU&o!+V60^;3!;~bOGywv>KESno!)>@uh@-3e%cPyJM z%W#4!0ljaYX}58fVJLWai?lX)VjX4AF<%Gd|^f7`FyP8K*krVHW+y2K? z4jqXd^SpMyZlu1PAq{J76e!<0SVMMT#I?1|wVXxUZdndnCRysC=bD%Yo2DAu8xr-+ zbZ@m=v@T7QCWh_Lw4`;^2qHKE__te#h3)mS5s1 zDQA0XYXEM?G{;}g*0JqHrg1Sf_tv< zh6Lj^W4vjc>5Hkfd87Hexq>AT*{wO2HTYH2^4%P3o@p9p?1i;%ITQqhuDfx+;dzboLd|}?RPre^<4Obp1eEd}pX?oNjz#j4*99eFA~Av3a5SJd`1q z%sb5!K#Kg&q%)a~216Bi9&ONd)~(eZg|kpcb|{le%_Y;-ok|~>lxhgweEHrRo=kU+ zD-ZgR32?2tZ`a!=+p60d+RoTQ>_hGM?SDJ|cJ^~sb^mm4@htIP1dDeE-%W@VyMRic zq)2K2Igq+UTiFmzzUGj20{Sl-@Ao9`HQE{<8ylJyny#5Xm;%jh&4bOY&9%U_bek5N zUKmpi={VWApe>oGJFWex=?r(FnV=J{AmfQbWv^UL8Z7MdC2}#|>YhY*h^r+$ygE5< zfrzxmHr%$xmT7BZKVT1WTy-39&T;hw<@B@XmiIh24Ox+&e3GD*y5s!*PIVLYk=Z}U zoMZQErf6&H^!np^+ECxH!5|{f`@v{3H9?N+4EVvMInG?q+!1TaWmAsP30I~K`kDFx z`T&qNUx92qTT_$WOB<;-sMHy!xFn6(9PEn>?^n+*_e|GWXEo<%M`cGV`)S)sFxFUm zBl}$YRr_E^O=qC%687G1c)uICF1`ZaTz;1DO!R}#zzoz_-6ARQyi2hqY_i6w{h%AC zzpMYFFK?J<$TC#GK6?x#)48S>rZm$JQ-LYbT+M7SuQq)(`WXirNW(e(Nd0$RE8S~t zqP9Km+cwbUDG9X*gO#sRv9OSj^;x-}p1tm)uGh{H&PU+fb++f&KHJ>3ikK@GKu{}k zoOOm_wvyIhE!%U}4S*FU!wJtQbGe0p!n|i}_aIK-2ArN<|4qboUOKpi}3)_r& zN1Xw+BSc*!uM+jbTi@fAYtu0f55Wg)0{XF~;gmsV90v!r z4yN;_R8xX^li6nOgqZ5PxuJQEDaF{#Xg2;fOgA|6&GZj+DcVb#VW@z(O!X(r61$bF z;G8VryZZ#hEe+g}uCC4Um8SUq!rnoQOtMuMshk2Joi z?;0qilFQ??Iujio?F(#GY^C7dUI!7vF&klDVQ=XW95bAQT#P%@y~h*oee3PO^#XVC zrBDgX&h4Q6wMK>POnMnJp6#y**S^*^)15(NwI1x>35a7x8a0SYY4alUBizs3uvD~8 zxAwAHty?T<=KAI}rYfdv;~e8BaG_i4M}s%&W&dI7(*`i{YpWaOJ)*=9g)jPUPpn(- zaymjB;r2nc(?Wf zzdP0!i1xdid90l$j28`0z=3{%{f~q9T5U=sZh<}P6776v-+gaO&tq2$aHst2!8Wp_ zaq;1z$wljnY(;&GR{GUD66&BXDo^ukaC_9xh)p1n} zHJw@r-A|P2qH3?4rl^Edts58&dD2n>C+-6eJ{w&Dil}l>T#oilVr2$QtyP4h_9{^9Vr|GWAW;$seKsU9RELW_XY_s8((!!bJoal-IB5@6-5p;Gg zL%h*o(CaXQ#-QT(i8_IXQZ8OE2_aq*lcWaeNEtz10B%K&e5!&|98xw{-GT1^MT(<> z)b-RH)s5<*nxZUL3|HKT&hc*95$SbeibO1)i{&FTMU8}6pzl4yA7d?^*6!WTfA$1h zn&k=o%)HHX!f3Bft0s&qjUHnclgaede2-oQBPy^J+e+*o9E+Sr=VsS1xFL^YRH&~Ux2iLN zW_nuvh5DvytIAT&1!D4A`E2OpwvtxD3|$Wu)N7(i!s!8(?-`d5b)mhkREOKP*xJp~ zlTI;fO?8dGs@dv!#vCJS>|-i5y))0JC6+Um8P;XMTkQtf%F~@);r+ALa}25u4z4zI z%XWbl_N3qsR1<0g2mUBf-{0YzVa1yzH;E~50*V5Dda8V_Vyv>Csx>83-%&Tz?A4TN zWLm#wlxC`WHuX{^QWYqU$lH?PG6PX887sbpg+R*5Qqa;x`R)7{pl9!NXE+`95w?1e zUs{uHZSG;ZZQNnZGLAHTG)c_!&9!I+tfuAGcD6=#!jb7X<{aZHb8UAw_LO_h02x`x z)#3Ytp6)u-a@z~afypaE>Y!b)Rxn#9!n?AGbO&?=dMG9?6=~fsi=$6y^!0_vSj5Rm69c%V+Vx!JniBwtBeaOyObX&?Ey*DbxP98epYogZLv&%>eg5e@mC6VKqXHD zv8j%LhMZ@%CY+6Cy& zX%bSBgx5oxKpupT8w59tOz5(O{|22_r^>par~U7k*H&BAo8otQ=d$W%F39|oIV3A6Z$!x}!y`+CD}`$j=#GX; zPDypL6H)<@hL1(l1b%N0+m4y)uH#%}&$riio^)+;uk)OO+=n!NG!Xs&2MT2+eA6-? z@9hF^+z-BMf#yQDh{O)!Zpgd7MgEiT1(xy`RdXr|bW(D4Q_T_WRb7#OL~xhTVd1F} zQzF5Z8Ic@zJ!pa|UQ!X5z=Z-GZ(7NR+}zB%8GkZvWt#VkJyJm1N{O?8k z@s*MV&|NISU!v{6Te97|ht)C5JPY03T@}uM?oo^l_Vfa7DR1MuLq>@JQp9y!fPKK# z23p=@cqcs$bQd{Mv3NBhmYK-Sig4u^Wtw7)@)uN1CW2Dre~RtO&Xh*eMK?I8ZD>~b ztH>HrS0c|w{1>)g|3WUoR(Zd=Z_{JSse%ugJ=0tNEl4i~(#+Ys__F85fa3w9^gk2E zVaZTaUQ4VNufW`*6M`SUJgyaJ^p1Pn?g8M3Kg3YnRi5Q>?+1Plf783r`-0c*&gmxG2A#TVj$uEix%6m{Z8KAhSI3R~bP9~E{^3{sHs;TPlT2auJ zkm2F7$c>S&BIvM#A-%O{WG#^}zM1=$Ij8JkpP=(a2L=87fB3^}3w98DhWY0iP^$ z)2|LL2|XVX46y_)BHDy)4$jrAlRXthanGG|%?af<3yx;J%2=14_K(j#kvqNMRGHtn z)v=zbI z*i$SC8riv??o4B@k{<)kDwA+LrjksCtZqX7Mj=+plsy#<<)h`J$wJu(*-_Axv`{=$ zjnx$ETtT}+mqyf&N{yl;1rgmt`|85wtI;ZcvOACdTb@@iJ}W6BI6W)lUsnB`?|HpS zFI6wI|M1N7I>FcA!tO#w1SW2Pfu$Z?H(qZr-wzUM#lTG!L4Lq?;Mec=Lc$tXmpcb3 zOhwQcDsc-uuRT3jGdB~Izz+plw7>WVkuGZ|k5UR$Emg(JSY@d~38eAwaK}iJw^0mK z?N?W8%k}z@!mu3?dm}3&{)LG{)Y<~_7COLtz%94*uc%!p$@XPTOdp>Sp7ksHP+q5! z<%THRZTB)h2y{y)u_utT^GiGeAB;``kH%wvF}$mm@;YA06|&c0cCH6rt;&n?!CWKG z%T8v$d8WI!LyzSZGnM5<@?psU7 zaYa$Cj8?bTvbwoJZ$qf?NfDbOri8Z$6$FJ-KO~XD4XoaAvU*&JH+OW#leBt&_W#BH z2{Q|F-WJcQT4^=9fAh}+Es!SSU7)XNDg7Y%forf`$O7S|Ksqo1die$cg<=Z4Cs%@M zxq){#SIr(~X-3Xmbw76XaD}`59)kPLH}Qk28uf@>(gX4j%CXcGwH*=*7OKsVR&Y~Q zseG+;D#uY_nk(9t`g1|D(A2Q);bX%ahSdl;t*s%i#+n9#**Ug)RWZf)v!gNw{oVQZ za{8R~ynmbWyd^WLr&-Oe+1xe%O=Jc>1MXa#C8^?QydLHkbr)U$2kkBJs2%i``F6u8 zV?n@xj(v+-3E6GklSPVGRV#=L#Bx3(rsk9;;$-BJxZ;FF{Y9zquO1{5;S6VejzM{cD9#)ecMN@TJIz7Jk!$i(bdnDGnZ0G( z8NJfh{K`sg^5^ourMZ)fw^e*Fl6I+QhqowD3vr_}u&a1uJRg+Ktx-Al78#DjgVMtd zTKev26|zzE7xI+m2eyDNZ!9~@o$K^N?Q6MnnlsED!`$RFe!Vai{Vwhzy+$@xc$CNC z^f8i3fhUcj-c!>w`?RO@<-upeq9W@@_lymX8(w2Yv?KJXZYot@8Y1e$=qwM*RRtZg zA7pGx%T3*oDo-m-pOb?YMVB|OR$8~a{&4U7Zecw1NA;jQ$w2F&I`kHD6)Aw5_z{Fb zmZB8)AGQ+JAp=GC1XlxHd|6y;rV47H^PIJupPg-84Lm*BPLTQdL-Yu1C^;<^%G)X~ zD(%X%K+21uu2B8dgER>`P0+TG#PI8pU!rfvYU7^OK%y6i-O?-77U?We2lk`oSjFqY zYdK^7<)wB0#ibHy!i;;_(S>J9T~$}<;m#}UT5w^-i26faG7rr~y8%(fiVOuE+GRwE zenvZE@34(nP3#bQ6d5J@A;|UD@^)b7c>=B&*D~nxU2r~kJ@s_wLVaSvbxKGdVnTFdqtlXoE)|#qB819jI&0|_ycj4=-**;f;hE^oQ#mX*BV-N zswgs#&&2;CzqkH!{_d2{WeE%Rln5#xm`ZFDJk$A+{+WXQLRNGeS&Be95;7I(hjc`$ zk*;VFWV-CaOYt`NJ1iA_37K}c1^xXhelJ72g>H@O7U*NbTy5Qpm{zccu7dCH3g#1! zmi8y>DMl-|s*X_-O>-@!$Ai~|9tr;uX^XbR{)<~59~9Rp`eWFl;26zC*?h#yrP!5* z|CK})+|K$hJvPnq`_P}t^fB41^FJ1!uNZEW+2*^pvJbtjpej@g($D*e1mNV^EP5&m zMq-dK$lW4vOk9l@LXUhA_8y&wR14z*ExiwcS6}6R3VB(-oGxd;b;8qxd*p2hUKbXL z#wSbCq#Suz5u@5nk(#|)T3-^o@W#wX^*Iik;oCxrCVESEJvoAVcK zM-5cz$%60jl#~86OgsLkLq_*(ZT^v>^X1#CS6JRVR(Xzdv0gLWxH!ngxh@z8teFUr zNAwExdM<3DcquqgDkMWBXT>-0|FD5bH-Xx>4s-*v-MwA)otz`faTOFXmzYt!%)eOR z5%tGzh&_aqbjtTCF>0NBR{nSRuUDy?` z*G?E+WwQ%+XD4Qmf4ym*KhH82XQ$^aD;iw>%y5o=W}ohE#cl?L#%7<*cLdnU_X5e_ zuU;p-Bx(y(rARt<$l5aZhP|5?9<*4x|of>gXfkDTAZl#axOzkhnWJFF8N)UtCmdyNHQFA61o- z(!d7SZL_U%SMjnuKscsv{(I@~{(q0NKju9uiYrrA-8bf1jyR6E=6KdX=FL4eid)HV zg9>XNurk&QS0Og+mSmaKDjNz}bw^}hq@STCwGJI7%!d>HSmqrhd3|%Xbgp&wbD^FV z>>s`zIL^01y1;NuA$Ci`;gtDZzCbxZ{ZW??k{f{#4f;I>9iiEUR#R-r4N4SqF1E=C3chUAn3wziMf<)wI$w(AL*J&ECd7 z8#>%oHiP}Uvj7Nt8+d_#gs>FtA?YA%Aa4cT*3t5A82yU!c zk-lzzZR%r|(WrHgy^(7iGnPjJKG8zlMGPdt!J_P|I3X91O{96^<`^wf2?~8%z+rL} zyomcD%j^;O{}aKx+*q&{m^B4Jq>%!1=doaxC=u%dzLO}GPrEBLJ!*M;PIA9mOif)% zN#eG+2T?6UFKJfGehZ7)J&teYebuciHRTgZPnCQx9bZ1RvR!po;{X$8N;f_-Dvax^ zPa3XOL<4aMwiVd}4!a+~ zkm(ETgk0ei(R0xU(Q$C)P63yEbl@&{K%eo6-jTjNz-VZTACrz!KGvQMof`coenE0U ziXx>v@krd{=s{r}^oNxH#K$4?c9bJPe=_Ne)rMn+vxYO(ON}>8v5<)J9x`3p8SfkZ zRSvFbUf!)NyEMEkqP%70$m$@vy*4Ho4+&uFBu=8EY&5K(aOr7DTQLiY&>d(H z+5=@ELF5eHOngav46PvhsR z-W5S*D@%41Hz~eQTw0P+o>Jv71}y!ZPnmPxIKg+(TJ$q?d{XiK_)NSzehMi;;a2_5SzA3C>NFDuA^%KQU>1}Z}`cc>`5bL`K`l%!!_1m~n{ARw4JJ0s_ymnr( zO`sE=#wn{Jk;I8qY^!KJILkkBlb|lL9rPUcxRYMD|Dtd$ z+EVGHhli%r^ z7Z@OHhIr5&xD6ENq0(Q{+0Z9UB3qMf$^VhDWSQ&}{M{vU$Rf#>WH6a68!kHy9oIFI zXz_8(jrdlJZLMP%Q$Hx>3CwX zWCh&L`(TmiAJJlAu;9ACxi6KU%8~3}NF2K7Ds#4XW;#wfjyc{y_R(HQpvra~b&vHV zFa^w3R>y7Ts-V-_mG8;7fV6B8jFl9Ep*ugMCe z0V0BklZ1+ecn*37)SzPFwZJ%kl+VEbgcJ=6Q-|5+5qoZfzifhgvHLR2gwBvZp=Xve z&=+C1Lw+p5wc;jni@BBDd~Pb&6Y4k$&dz4AkJuCJUUnn99G>?$`;?{Gwou`T=O6OJ zppKspI=BOYt%6O$-J*-g3-kw;g=a%I{vojrlt^W=>Eu5$Sv~~x6|7Xhr$Eo35j zADqJbrIkbyF&IYqFzi5gfdzCQ2&jhzdjebhTYOi&IiRZE49{?p?av0oPmsxcW_~e6 zkaDDE>w{ZoDvaZK_8I$|EoYsedqX)tYh_E>AMnIy*`4ePb{;#IozHFq2gqMGh#Sj& zO2*+5WW}o5tWM8A}Q!^bTyWYr{OEa zVUjnJQG}IP0KMnYvU{)+qsb;@Eixc`E1M*>pMH zbEQAb?$z8r*h6n~?|^Ar%2h*7u7_h_Po;t3A>=7g5;x1Ek$$o2O zzkvSq7Kw+d@Bo=pK1MY|9i*MBo1$+K^et#wFdEW7 z=_JWftQuG~q%V%^?b+|_W$$mb(z#~6`Mzn6sfEdEEHqv=E--F3zBM+69(1Xhv~;%a zvsKz_Ij6f`x}%v(Y&|~HJJD|eYMWkEE*gteA{~Hy8iWl2^2J2V4yTKuNNdRCb_B|R z;gjUs3K~)t5_AuH_W_Sh2k9ckc&v1#{G*E2Jk?JMDG2jMY>c`R-6&>8^s2~LVI6}1 zXc{ZkvT@>9$UZ@-uRDK}8RuT(4A>t+lI&@#(mL7lgRVB8Ftss8RSON3m7^=iR6ee3 zQ?YHFwEVCwfiBw;*1)IuV+H?&V~~9?A8X-j@jLhld?EN;ZP;CG4b~h(ux(KB zP$Q+ng#r`g8@oWa{R#HNey|t1xC>s||40~v1rZ(O*C;|iDYS27$C#%zro?B(|BYJ{ zyFY4U*ff1BYBgEkg&S0}?s9JHo(jXm0C0P67_)7R>!Rdp-1 z6>ZChmg5zRD|Z@jlgcvO{>-(S)%oTKrXsJf)8f03*gcJCM*No4kqi~@#jirfHIFnw zeu!F%jsp$U1?-4@zEE!&m%*Bu#mqQH#D;L`{7V0C;d89DRG|#kDnouo1jR0jFHXFi zJSX{c;SURC8}WcN6*?S)Os8uAUk2-agJA<43^>V<+~C7^Ki>o&-$~KM+mE zl_!)Z4T6Tt%=pOI0TIuF!hyX02(Jd`SEc*6eUYV)*0JmbB*Z*XQ45HN215LTe?UYq&*!h ziSS2viyM{LKG~YQEa_@|r`Y)skAhmOZ?W}7}HCd{M8$4BcRY8UV!;Naj zILmw-bR6H!RVJZnTlH@PX0TW8t(;XEU-jN#GO8`F?EBmfj)8jYTJb>H1%;e?qkgNo zu6e9}L@~-=@&>Yzk|WqXQ9N|GcJrUvI?R3dYgY?b7uP9Qq+8}0&wvWoTRZSoRE`T| zb(Lo|or0Hy_m2*Z8<#jOxoxsK@lo8om{Z~LLB-S$8H4uoZS=gd@1lE=oFKe~*5L}!`{O(`bI_|}kQNHlPUfyR#J4%Rb{Hl88;s6ZLgP12HF zr}R?yG&i+7v`N}{O*_h`D3YC&)WtNSA)v{J-sds?8v+cXNY4w-N zr{$q#MWs{AR23bn{DvVg3tpI1^jZ1}eT=S4&oSRNwKsh-EikX3r&~9{t#S)f$rlHt zXriPBuq1X(Q!-mMMz=9!Ohj7ru^QtNHYJIYKP4WE+YplynGzDG{Q;>E&4g;s;ap)G zZa!srP|>ffeW|!KxXe>-tVpfgS9QkF#rVV28nS5Hnpc_knj4xc%s1(|mJ8N{_PMSd zOiTW*f1hY3zD#;lzC=~7o&?&09m7%rqr#Z%w47%@cbgbnxJ&!&^t02d? zvvr|;r7M(C@+Cml7%h&Fty65JQZ*-Zm-SCT|FB0}PT3U~Wjcuq*&H~+yFBlmxLsrY zO}C|Y(aS7tY)>5-?#^6@f3m0oZz~HZZQ7$DeIr&!Pp#29;e1k6a(>dL_=MP>k=n35 zx(wxD;+SwP>vT-BHZkq2tSs48G^X%HVXtCG$?UQ|=_YAHs2U25tgiTzXt;k7 zSLz<`cmat3bIduWVDnM>xAmd}N@M)^KopuT!4wTOF~P&bE2A_u%<{RCDEAl94#j z{esP22|M1EU>|4MXFd-(x{J(>EjMg0ohO)p_m1!mj*s8!tKpmXC09XS zTvdXgM*FCDVGs2NS9F3jZTsGG|S36fD*9_>LHTUE(y}3T#Y(FlViM5inmVE_kOl>u;X{C9tE~h-o ziSk;~FZe^zH2-=o;C}1aZEZ~#nASo{=r^;^QUn#r9$bMx7m*Sj6}>dggA2k-qU*%H zO{kIlB4ue!Jmq`B(AZg#i$kw#WeTadO<gSm3%5a zS<$U}HGR-_2y|OLpudyj>C9N*-Qsb(+ygvEm@BNBKka3qe~^lP5_gi8k@b~-RlBM6 zR1(!mHAC@9_C?YKt10a2yTRUacXLd%_J!}hy}1xl2Oin3I}@0J-Uh;YctcsJs;lv@>EvbVI0*n?~m{PFf;JGg5)W?J_`HiFlDnwD5++1I-^vu}LYMNh?U zGC@rQy$B1AK40TvLQ&GRl;E1TQl2Me#N|Yd34>0Isz1RCM{^3tSaV&2vn;A8Ew^D# zo1D|RPx5~h-YvG49;mEsI&A&nIOGcUEM>-mL$JL!gD>Z%am&F4*n>X|Inrw1KYub* zSdU|W#gBBA7&a=|V*(O?VS@v6+Sg+cA4w2_I z7ZNyyERpP$pI46x$_&#)pQzD2p-$5IYNeTd0EYJmgGGt_*(Q|Y3ItuKtxJ%K69^Ux^OeR2=L#B`p1IKXs`F4_YM5| z>Wv2+VU zF7e*^*wcd_7kGngl$@7eRL>2%8}>G;UJX@3MAG79DrHM@P-4Rxmm<%H-iDanNXaKb zKenm;uxV%2`cgLkKu%D0|Lj&dxw$C?=E8R+Eh>kZZdyM&n!1lNRa{S>94eH-fjRyl ze*mbKIlk$>5Z_$iaeoUSB#eNJhFOr&U?3``b7gmAD`mZ<=Rw;Tf;AS^4lMCn+2J0u z^PIzGZ)zV2`O>AXt;|_|R^S9uOA;rSsc-8`L*GX>iw%uGlo*t}GWkbRLBg&Y^`r7b z3B6eLL9$OcpBwMkYA&wIE~N`D+{hbCr2AIG}?8 zcStRG4jk>t;7L{m7Wm)#+&(vW{5t?q3y7C0NZ2QWSPE`EmxGJ<)$ z99slFygY#*kl^deA7OhjGd(%(d+r!dJJ1Ey@ZRxX5ayvPB`e8wszmL^pd+DYA{5cS zn2K1WM)%l#(U}pgLnr7H)i%Zdnv4Y*b_}iY}QCd%x6h z&$QFxvGI;L@VI9~HSW3h9b`Tn@}WSNY~iPUM&BI&w!m~jT_BoPiIRXVG6MI36A0X@ z;(p@e_-$}()q?uBNHE8r?d{JG;})cH{P6d0|juu_PDF19Jg zV3XkH_XB^6&&CZmbt|*5KOShJBXd{-sU)Ky-xoyKQ=dq zeC#6ATJs@VY8_#d+Beuk9GElIl?RH12d;~*=I- zkTm;UU=&(JnaBgQHFgFo#fq@^SWk>Y51}4p0+Ind+6ThEKt=}4F)$Gh2*X5qq9P<8 zRpG;d(xj92kR2!Q$TusRDGw+=E0+L&=z@G3xky$^x=u0|^m2M&#;yi_{AXW3?-afr z|B>sDAS3w75 zzpa%Wbp#wD&;zycbYU8Ro=w7M^Jl!Be6PSiUI;7E7w8AwXESsYKLcU6k7%Xnt*Aca zxoFXC;K9FvO~mz(Dzrh;2x^9>z{B-k){s0&T1cf_AxGi!lN?39lGTGs?Lw)G=t!KA z1WRsC)9n5Q?R0(J9f4u!KsXHaQ<@T~#Y zUTZ;nVPDY{WEHv>dxJa0;Y6%dFH?{_nF%vOtX!rnR5nnJhEFpUr+lKEsT3<0DXQiB zy~lU;-ZdkbQT!pWfiE%@9CVM#|G-uH4hU)|CF{lG@eY^`86o;9mNrz9`#fCln0^8AFmh(U2aYmB7*=rLMHL!Mc6vvByR?4 zRfT`9?-L)!Z3A-eeOE*02m1=!0_!nIfw!2OnqQcfmIx@O8uzX&V_Q zyGL%64+1~SCK%_1DxYc<^?!=4XmvAnEww_OPi>~6!H2O~6|Xv{#FbkV4tXE>VsZ|+ z?FJF8Brbdy_7sT{9TG@EJv0(dEgwB?+z*_HW38=$wUuQN{no5BFEhoOR3^D8%2e0X z$Fvt*F5}G~%}wYZ^el_Q`rf+LHo)H05#p4&ysmIhE2a}WjGN7$^nUS02c`&43!jQC zhzhFU4aAWW0Z~ePknWVVAdTcrc^`#Waab9uI;~Q{Xd9>`bt`o{b(q>iT?5tRe-x{F zuj;RQ3A5%GxTXiln?d%Yhqwg!sEe@8$ZcVMpuK;DcP@93DR(b+)pdTiZw4R9OG`V; zHK>K8nrE8_nA@29n0vsV8_h4xMo79_N9WUREYB^yfq)ZkfPUe5`8+a2W&}o3q_{QK3z-TjZe9HQy+1iWv&z%J zt#^HP9J3#>Wx&pN#S&}TK?l)U=1b=7=9%Vh=APymP%HUp7D2x|mF{B+SYBD@LLaV$ zqYKQGk?y&kRm^_&759Qq1)_bvzX(`cZXphMcLoh$PMnZfC3YfB`WEPV+vHsoC5mZE z36P$KQ&y^#dWCwEdVzYHIz{cKo>F_LUX)qYUiBJwn8}Jc@*!lD%tt(zEEHeBiV;k- zLLdpugZV9o{iKG6bscmLbwu08fs-`|oMrD|%nQvA%qO9`Gugb@yx;r-W_N9R8eL3- zf6w~aI^9;&?y~1QK06<|F1fdXzW*Bd_1^Mtz!Q_{cLwC}UW^1HLQ`FVGT5*e^Ie`^dA@-NaSxcx5lK^@1mtTPIn5(evpJbOJ4-tDsA3 zH7n@G^bGnEZKC^HvMpQTUi8H_2~IC&N4_)NmGA!OdCxpyzjArJ2~aT+7(A~E zRgG4TQgoD4WQp`JA(Yg`o1(K}2Ol1I?z8hPxo6CBSeuyZkK?C3(!R=Ov-X4xycV#B zr_wiJR*$DA!${Agm(xe-Oz@yxx74s6vDUJEx6QS;f^%1uGu2h-mN8Lm0%X16Uc#sI z*AH|SbP=`^)q>MuZ7dNF5mS<2B3@ckCL&*uqvQ%jn&Oypx=I2&;B(4Ik!rD;hIMKK zj+vFZ1yovIwM}JEVoJ3lK$>N@q++7Icm(zcsUg}R$njIYb$lFG#B78;+y}&%*^aMv zy?wMT)jAx;{S!E2J6Lc_Ih{s7qp#8jpoaN}P6o$usb#P=!@2}W!~y$n#|`HlV0?HX zr(F&d@i1>wUnl=GNYK~~UcdFoT67b(2j3;$BiTu;0RP=V*Nv`p~b-_7R*-9!v~&odKx_>+Kk@W#&CI@+#Sn_0hDR)Eu&rti~hpxZHuo&Ymu z9sLH}b&D;3EcLB-tp7&^`C&f=ch(lJ`tB&`DQZ|17Yw7`;Qu?k4?$AXJ5eqo!0O@S z#oHw3h|ALRvMb~+`Fh0?cmoZlFc|G(wL~M=#B2I%mTFFF7HPU_v>F5ay9=B-y;aMV zCl%}E$>b_&p`@2M6%@kzM3sWhKt}8dd*VR2jlOn2aD8@`IFyc-_U$&Ob-6Xl`qVPr z5^l+$FM_|eH{@eB1pU+)Sfd8ItL3aE)Or)R7o@$=p5eIYT;dwzZU<+^_HaU<0ErA+ zeGmL}AXr#S)Du~OKEP0MXUSq>v2>nn4UG9tcn4il?W8)ZtJUo^vo-U;8Tefjt?dYu zYP05t=8a~h#;dNO9!V`#T~zK=)Rb?Ny##{DQCxuyKu!t~!BkLtwCBIGeSm+F=c;m6 zItWKY*cU%o{|El>DL`TCY<_1ZVCF1`d7oe@uCMjKp7NYG!9OZ+L{JGd$%Wv)EyrUd!-;LubKuH)C;td;0#+qbm#dd+ z{F<8DF53Ru4O)X%s55D=Xm4sCY1e8AZ3oR5^;+t)>Z@|9;vD%~8br(%mt#?Admv8V zgRb%onCWZb$PPS;Qnbr%o752%F*+5|(0aWm%%t3JE;@$ziqu|1BB-|wWfRNZA{Gr$>sRb)^ z1$jh%UGYa*tzsyr`i*7^xCo21C0d_$gzkby|JyM^}I!AxdTq@m*(N-AhQZO zICo83Ov6nBO`}XFOlc;+X{7n9c?K=AytM2EEzWfNFvnnLUvLx8hraV2wtx!(KKCEL z3YhxqMcGJW>=gR&wrQqe~_U$uuir9P}#qiw4Du9NB`^oU-hZ=@fqpQ`uh zj_La9w7NaoKbk7_b!wSvnDT#$L%>qpA~}SAL*>X|;q1T)-zB~#mj+bHJl7CsoTCNw zN^`9)O9Y&`bab})2%K4*rk|!Crb1H=)Q=CF4w=4~qRnf}>Ev!uZ+j9F@ z$3SOq*AVdS&IX0cMW|ZV@@<51uPs~vxfW5_7Q959OiYDUY9LcUt-MUNojL<-(e2t! zx+>jp{bl`reJ{NLo?D^Mg$(fb+FsgUnx2|V>eEyMRi@&L{1PdWNeCLxM;+kcxEe_F zedPn}3UE9E;7w7r0I{ z;JtLhQpf7Bz6S4pyn}OioOV~G`={ptjQeZO&nLkBe<9@5v;#SdR7wXs<0Z{3xX$*{Ez}*>Ez(8lR%;RM6U_*XQQcSlg7T<3s_rTsiqGKV zpC#)jeI+sD#pox|DZv*%kYo8iKyj10uQ|uV{*nN0-UpVgz|is0FMy1G4c@06EXRRc z(|N;v5OPWQa$}FpL9SVJdGw$T9d4 zh!L(36(C(f+gdGF5%r|KWn;+2@;!>Z%4?7gUa5}J*4GWx&kI@*+$LmANB|IA6ZE5X z54E>7-PBEh51K(QJupmkhivY;0AhI!6>g?+s# z+Y7WqBB*Yc0nw|ww}o%AzcesaC`P`a7JLZtMi#A@tGb|mri}=y6Y@Irby%P9l5i%x zEPP^kgRoH{zx9hW28D!hijMkX*+^GY>oMc!%DxqwE6^&Ux}j+b-P7*#82pXV|HQLF z9~h);NO`C+sycElaU0t#I^}Q4raAgpMw-y-epP7|-txy4^$hz=^DG+sc-KYtgs+A0 z0HVis03}x@7Kl4z3q+ugk{GL_Uw&*Ke6D}2+Kr;gc{MAK-gI zIm2w-9X;KHx%z<`XlKb_S*84(sW(G^$9UzW8iA6}JX`fRUYmkEzUSLC<)Zm=vo zCH!f~4xK`INc<=;%Ja@Vvg~VKYNk5lar*gxgK{i|^C~-9li9_>aN?D67gSMu2Zsc` z)EE^>gjqD$OSm6dznDf;?={q^rc9Z%)1K-1>)k9|fUlG-QhuT0G|x4wHQm)lAT92e zPmuj3x)DQ&#Y7HKQ%1>~0!_14<`QW=YdTGxEyVbO{GNtrp z(T<{P#o?feA43o(4iBH1yO4!hTR+Ta!9Y2Jp{lHx?8&LUo6CWTk=n_6#TqbTSNhAuSKC+|o0d-DuRT~B#_fa|<^h}S+ z?-LKP*TO>ICw81mXcL*g8Mai6DD7U{vZQgv>*_a_B`%|PKFZ35X$-;bLYD{6($CPg zQ*OsGZZO{hT&+Jg1y9YzSSe8m(AUl2Saa zbbnPlnsfB#wux%W8fpfGyb50srVcVtyU2ZLC7VL`Epz1-|LdP2$-I`+ujp)*%^vOB zjsK_EsrjtG5j089PN77r?aR!!PcJtzF}c##~@rH9-J{T4J--IqLq z)%W#sWLLE>s+p6W`5|jb-m_v$)fwAGJ`FuXR#ES?zjRNv->4O2ZG2bYHA_3!*`pKfD&n4fXgAps?#L<$yl41!i2@;#IaCD^Lu-D4iU8n8qE!Rz1hL#mqOH)ci zDs~y~*`_k*{YB`1ve{Ino(~?XKcKovgd_R?G-Y`dwBZi(jrMcAl}r0grFWk(%^yCHB~ZBGFoiK zDv>lnGhYS!#ogL5&EhlGHJq==Dl0D=S~{_MQH1&>R&R^PYfG6?K8zm+dE7qqi9OH`-GyW)$&Bz}|Yg00H(%%ZSO zcKmkt=hq4jW4(zPzyJ*Z?`RDm=PE8G)YwwOAMQJo*J~2zgXHaEZ9F_%fb_Dj_fRF+YO&;Wib(heDq#$x3E4lbSsN178ggAEi-(y{BfW0Pry<6 zb;_+t(;TGgD?SmBJLF6D9JXg!GU+pxpElmvmwoM@iY5?Kf$GskDOU;=>9PXJODq^^ zEsPPIh5Ws80WAu}#YD8M4Ovds03O?G@(E;tToP;X>DXXw8a5rfkA>j#@T>S5{3SLJ ztu0y?nBm>R8i4R}#$INPw2U`5H@z_aHcmG$v`zGwyk~_)*nDC&`9o1d^+NHPn1Dq1 zR(M+5>zVZiqGC|_hsrIc4fa<|g})dTNO^gP%BB1#pC+w`ZxmkemU;q?UAEq!b=>TF z!z}gQ5d>k4hy&zXMWnKm;vZQl?IsDuR)goTd0?UcqQ9x27bK4bi7yee;ahqGSu5A% zFF^%2lDH?v@Dg-2+8gyFmylOT8T>8;P23_-v3vN|+!3bGo#|X-&$Uc3-#1>Z9%ej8 zcXC#;@BEXII7t?HR;ANiSI<`Di&?=xuF5%(9#Z8lU0;$^_PJ_T$20_9h7ujDPVH?R~E z*gAoNn&w{m#t7$O-H4^+YQ=G7AJscm8`WZkN7jybf$u^?kg=lAkes$bF!%restq)t zcK%B5dwwSu!7lU+aQ(GMS~0r6$zyCxH*$Po4*BYe`L%BhnuRf@3N3<7}@*?*H z%PzzEamnwwYbOXvSuO~f=9S}r#easZk2+w7v4*%7kBO=9#vJ%Bu$TL_9w~kB73*=a$ zD?S5p3VH-i__zAM`=3J=GAimWB1AAE0!Xm;9pa-{qwAXelI4eKZMC3!qp82GgD2ki z|5*A8=r*pd+aV2#4T-}H4Kp-M4K&P68fIo}m>JtJGcz+Yqa8bDlw?`5SOfpg_uiUi zTT!H$%lF)K_St(1T~f$0+_Tss+rhkPE)`_f%VAH7qg7T^nl+_PYIf$0+}Xa>>S(sI zfwTS|nHSO9k^$$?Dk3HLJ>Td&WWR4O>{Q&~Lr^O-SA=24X_gf@{r@x#(ih_A&=K07 z;j4jr;Fx+6oGhnm9@@-rl}Z_pnTndvVz-Ld{}3DU8{p$@Ms0*9^n0jsZG~3BCunVs zCEls66|kv>JB028?)!Fm8n}l#%j3);=2h{e1fD7HsX1J>G}zoW;;l8-n8vrD=7q0& zHs!X@{ww`JYR~imIkjB}1C5AVT%JLJ9@Q)BHB+8gRF|Q)4772#&owx#xsE)+TP5^e zTcz6}?lMMNR$F|g&W1$cgl;DG{yyO+$kwC7PPvjMQp0t_v48c@mqB(;gnk^@PiqOi zxx2cv%sD!p8cRh|+n`Ke9h$2fY?E=5RS`y6StCz<1>k zHI^%+m(2$vMp-H2CjKDB$rkUJ-0UnW-Je=2qpWSUD?N}$eCPG1mDZUNqpj0S*Tf5q zO=<35>CzmMV`A<=*9C8-a62-{#!GWeR?7zSD&tz|E!U4OuAL6A4l03TL8$gAFNrG5 zY_6P`CJogK`o7W_@h|ut7qZQP1+Kw(=?BO)-auEPSAb(XSMw>q$wYWU=zZ`>V5R@1 zw@7}9^K`C|S2DkfuR^H0TAeD&c94phy_WLkCHjwC1u8zg#{1cMBBxH~*o*^Nx%SKM zoxzr5NuD;WG4(PpG(EsP97OL>4*PT6z2HHf=BnYb2GZnoat7N=bU<+>R$mmBZVO!; z*$^k@nP4tyq8wEB6Or@@uxn%s7s2HASol-8z<=f5Kn*RM=>XpCUd-Rj6X*-T$41W5 zjw-Z#H}p7I9o!uw0^R&SJm+1V;cqc}^!~n~I3Ly~E@v7_{YD?$%bF8KSn zTR1jkpU>)?GtXgmj}9Ers#$|-^vwnE_4uGpr`VHdmuaqx7!3U2W--{_-ytS%AH83 zP=l$3&|1KHax-wrJKR$k z9Fyn#L&7aIH#Lo&AqaEq9%4K;7IEDU$25LsIq<@V2oa3a;W&h;N zbVIH^JYRdl%$C|B%Qw+_&)nEhnqN$Ep@;6}_V-zXGBYzPt9!+v8jsQzScqM4SWP|8KQynHTnFQE4wam}=y z&m5Yy*Y?PH+A}0Pku-6|jFY1p#n=kCBI=vA@`Z`Ue!bI`nU#{99FtZf>!D+Z_o(`b zZKpSUZN>|O#5)+;z)=b-< z^Jo45r3E`#|Bp#CH8NI`o^p@ruj=~XIk0Un^!ogVz=N`k?#RC3pCJyq3cSQQT&!** z7;A436QIs*C9jY}saEtsW+K~w-y`f1TS$wgebRMlvm{ArLJi)^X3`$A3sjG9DSPB= zp^5>)d)^t$9FaUFsY~j+%v!lmeYdqN&Tn2`Xj+LWB_|KjDpQ@wrMn@{YiIZJQ$&{(rH>Pf2}==Gc|={; z4u$vozUCFpu9)PH9UAu`p?T^|Ta>Q{VGwskO)D{=Y^gF*2|4DbIhwiQFYZuN-^AaH z9rELF;B_m^%^Y;yD^@tu4+FO*R~QHm4d zrY6ix$<7|hS?mKcp_QYXF-cb+LqjV1R{W$7kRP-2MVO4)D(^5MROW`&cL zIC3bvQKU>oA{Iq$jM^Qs(R@%pjCX*2_br)6)JCpq0Xj=Jhffv4$#%F+FN{$<41x^WRnd$Rt_U!hds^CNvFmsA*0;Y8^PMIKw8&?cWVCpkId$J}p= zzq{j~r&e@q@jHkZ)`$o~5$U@WExi$1@&D;A(=61UBIzJ_R!#ES;7ETF|AoM|P`3O7 zCn8bWW2zDPqktu5d4bZArOfxGx!ehqF%@|%)yd6N8D@j7G`E94z>k0`=MbtK@m78s zXq%ssRXrj9TkY7MKO3Z1&Yd4Hl4m4q!K6}C%4=o*E8e!i6sfve)g7PJJbB=c4Y4JE z{F!9QteTe>EKas$j_F2mN5Fm=6e~yt#YFDC&dT1_y{2appXF-73tod~q<5&lRw!E; zN^cbOCNeS`;qI+5>CvkqPMh9HTlk(}37*dgOjRZhEULqGSpd!aB$sO2m6hR`;7@N( zZu7LsKgP#hjsKb4J4f)y;qmkbVEw8pr3?S@>)AETRjMU)pns|99tyhrRee79$eg3e zd*VOE4^J$Xu^~6Z*H3xJCRy@h3KV-)tXmN-YMb~MF(WX`HQ81&qefaV^+kH^oN;;E zyi37`zc;utbTm9pEkUo~E(!6HY)ChynkE@fOaHN7wLd}!d;`3kcfYS{=&HJmj^g_o z%+^zpgQCbNU&KFF331VimicCzF$7-n5Z1++)JkohJS;fScih9}7sx%B{yd@ak9lz| z6UwBg=N|SIQCXp3WWho!iwrC}s?bI2Mm~vn5^C(3k$WVkWcGxtn%Rl=`gu-Q*!8#j zdw!fp@RtvJi8pK;sjVr?dL%L;%5H54jj~46HE69o_65D&efI*TWgsk>Pe8{W2Fp`- z>sjjx>tO2z>x_sc@Fwno>f>d-gD?7TRp56ED-F@P!JfC(TRQ(~-aPPsSI!%dH^F%@*PMI8F+4XRZ@YI> zcp%w?`=YO5eHPWQz=7y05yy>ng#OIG#5^S>JU3J={8+YXAIV$HL2jIISS+gl!_e8- z-}KqM)H*DpU*yinTM=f<34JnGif*H>3yt-?&r>tJ2`#_tzTEqI>c_Rzn4E8}r{Pt) zc81CDPv45HU}f$0==4@)I;K%)(|9tJE$4VP2g3!L3b~LA0^b1nj1ct2)B4B%{cYNp>~E#xt0$kz2s+OC^`wt)59OIo<_U&! z(p_N!u}`yYwBTHW;tT^ z7_PuySB!7YUc{W6L?58%F%u9^=)oEJ5`25!$;U$R?67o4pI|6#nqZz|*t)_@w@E3%^$SuEl3156|r4*y(u}+D3F@&j@;Hu=q_F4P3`mb|MkWZOZlIW^=Xqdwgx=;tmqd39rO&Qh9^bFhzJ<3`%HO4lc~Ar*!CSo#TE1~| z8FiI5nusS`zy{gMcH_t4^m14~%ka){#jsm%(HE1}!EVxVE@S}zq?^zOsS4Cz)H$F@ zDJB)UkKc8#b+Nhx-E!SFrY${$$|CkEtNo)~-RzyR-ey$FcH2rgqg}o8e|p||Z$Xo^ zacB?phrY@QYJcJ@(Sg)aTP6X=(TOjVU6grc?hqi=5h>sr+=Y$)` zljQ^Q8|?d5?A63%X~zEL~U^ z!Iov~fJdtU>(eFc-s;Zk4uJ7#2$aQtG8>q-OcF4qUTQ70-uIFgaz2rvwbSmYJ)lf9 zL~+XVWe)sr)5HD4O~a+aWy00Nox=mei^2~;KUzng0M5@Baz4&a6QK=nRO_f+)v@XZ z^*A!cSi*%DYWEMEdj*?5r?qmtlOMC*BbO|wpXi3y1$`et9qNQrjv~$`%ZJo9hIRJgN z&RP?#j#de}p+z-|Mrt0_k6tgT)kc1KTdfs-*Tz*3rHauafo!+ncWJF0eky3ywPrx( zkI+_V2f?kI2+VS2qBV5LdgF;Bh^fRfViQ>0t`oP2N6?590GdP= zVJCce6(n?IkjMsN{vGj^h$mw4_bRamb)N`j`t~UMZ$x3jK=1@j>oxV+5sEyag zXn$+HaP>t#!(?rmwm@42t)oLgo9U)C4UW{az8@>7eyMJO70i@1?cSilC0K)Gc6VyrbMyE)s9) z>$PXE*Nvw`M7p|H83l#Cqw2qE zG4-Kb7WPfkpb@HMmE@4J5S$F3!;3?WL(M~5fTO#Q{G`9t%IXYd0wl zoeq_dqj@s&CXYEQ=5>Q6O$KyTwtLQkOYOOLlkbQ>E3h_H6X=|VS~9c@dorcjn!rL$ z6BTHx3X>R8B}1-Q zj_RtIks77#yzo&1X$Kjro_rhK$t9eSB_{eX?KTrP9_``&c>0jc%|A=p$ zdOCZ(v!*XfPAA&YUfo9MeSPBRie2^h^mmOd&E+g9mao>u)(hq%#>x7X0?V$Vdy*T~ zSMn114)h0I+6?kFl?aW#0ldOL5snC_L`pJ1lhtJ$VOnL%H4QaC1%vx5i`!BO9Gfex z3#@G|w@o<)Fv9Wup?q~kUgxji%Fa2Kwl=}`wf+0SuW!6q^nC8~fv-~D<$Y#;nzK?| ztHSRYzkZ|T_vluIQVS;+9#c3W=6Zqn$kq`~bHI4SFi9H8pJBcsM^5!uMD%J{uEU<0 zGto8=`D}6CQsE+`g>5hPGBh(6j(8twiP|1nDB_6as`(u}-PO!vO&x$xk>Rx;WuWz~ zrCw42DND>0v%~?=kywKLbS_KKpVd%cgy&*zpPXT-J>p+{{_#HTZR@v9KlcARGVV;$ zgzTyL_V8TYHA7d6DJr$V!a`?aipO*rgY+Z0-A$QEmLT?K`E-;|Lil|xE2c{E-RyZB} zDcQugLUZW+By%}nx_-~^=SvGe1eZ`xiUf#`bVpUM8)(a3el^E7x}o6M$&J$}Wu&221-^?gJS>j-N@OFQE{ z=$ic0|C9;B>2_teL7pT>QD`0YT#(X_d_(}MpJ7nw5n>$4mvi31KjQ0%f zq2;s7bk`VVSO_%wake89NsJ8Jz4u-JIKF1HSx_osukZC%-0t+V=Uum(5@Q`PLxeM9Q3;6jzJDL1iI% z0QpYy3?I$?ElbQ%=5MA6&|-`=o;UuZzb#(iAG1%GlQKJW5VC!uw z42A>J(HolMT41nTSX)jGXDahwQ0fmr0I#&Hu}q5S9T|+6XB}iNV7wz$5U=s$xZ>rb#t$#=@G;1bVO+mZBQNpF6%isfSW z$IXvD`)$FG+KKM;Wj2SqZeUjU5z&IRN)e{jmU)(*mY(L3=AGap8VUB0WZ;TZbr+d| zw2AISG*a#dFZ=H1ugL43JIZ!9dvjLRtZi9GZ3CUU{FT0P;VZ;+Mgqg#8KY=0^?3MT@l@1IwQ1wzVrLVS;&NrLeB0p%W9zcCt0o= zQ>0GZRk{+fJRIc>RHA?;es^`k|qg3R<9dIx1)v2dCog~ zwrjEXMxdD7pIA><o$wSbQ~D*Nd0tZ=*<$}^8LB_Y&%wB z|7II=dj0}$5z2`drCo+<;FXRuRW)5R?l3r|^}-o=-kK2IWrMFp-X@zd)0x^aY0=N- zKYGND`a%BunbI@kn5|>pSZ{T?05y{Hi-a-N_?M|3R4YlXBVCh*NCl<7(5yip2d$mbh=B{n$A)^w zN5)g8(dIwRK4?IG0W;NXqruqR&=uK2J*64a1n4kL*3Z^ogimY-RD-UFg2-~SnIJJ) ztr!Y=&N=7izT1VHzur2_GDbKhw^pdO4Ls&2 zpJlo!8~*PP;BM=#84#h{DOZFxLxMaXO1*!ox0M0%rqJTRFkf3wk}D$br^9K_wEbm2 z<=Eo9;i~0X?B_$L<<3M6rW>~qTJmmDG)y!WFqJoLfZi=<9&FxgzG2yJxoN3osS7@B za4ehKny;J28Q<&w)&Hk|uivD9DJ4pur0vk>stjiRr}~ZhcTyLz3SUb1g1V@d46^x^ z9b>b8Pi>ai1m3*=K1Y7e`I;Mh_oq1}BI})_k$0{@r_CGTR zCU1=|`JMhU>(h?U1HXQbofXfdRLNYGd*AC0v(#92IamNb8ad=h>^Dx=mlW4+o@P$zdAww8oc9cmOsMT*S=XWp7$7}VxR}K!yF0ZeWi%K5#1yA zM>dM=6_IXPWp0faL>)sheJiXTQ^gd_!iR`M&d}e%_gm|0NniLs*ng=ErA(lk`>nl0 zW=zVMc*nQ3pH_bS`SJAU7Tm~ zi){q+@P6hJ^O~8jJI`iv6Zyh?MPv_c1O6gfT@#w(yX5{Wm$ChkH6lZo{xt1a`n=4W z*~{&}<=yg(3NBFY6Df2Db`9TGOoV>WNhrOwgicstX{yu_{aD9fGv=G$Sa(NOkM3Te zLBS>ke-vn2pm6m1$bOKEtZq;dQ5^`>kBM!mYo)8hPT;1(Vqt}a!e;0TZR38^m8XWN zM6gOemD@A>P+Hr>-{MYuUH19R=ZatH?`quApJ!9kvXk?A`+F(5WPi4uc+1enESrul^jc|C zQ~A_IsXx;CWm;^roE!4{_%lOxHB7B#n+w~-U0?__>6hqF>Tl>{rG-#J+Xl~%4W6tg zmI4u#BYy+dc|-J>XkXOvNG77K<&~+hu{&`5xA-z#7xo@39Ivh@dx*7g{kd)2HE5UJ z;%)-wk3tI0#` ze93LBXZh3m$$H58)FPN$8ZYa6NJqfAxB)6$=b0mj@m{BCx(3yQtOz^+yeXmMU@)1O zx8Cs}N6WNkTu-Y3#-=9eoia1B*EynHswXdSQl3i`hRVfL;dgMaoz{0W+=lh^2)_>+ zJcf9q)70BC%{n_`V`P`8qS5Q4uSM66E)_K_VzFf-IKz5KjKFbbU02#jtq0e7dFl<& zM->>A*@JP_KcY33z&0eK6Lz?M*6Y$LqkzOuzwn%%0i=xXS$07I9@ zZGpaH3w}Sh5}F2|sWQZDIWCatS?4N~E7`_ob;($no&^T3gBd@wUfG`I-g5;#qXV9> zQL9Tff)ZUbwkG$4E6=~S)yOQ8Qq_TCJmi ziP)~cBgP`a`B8U=X~cX3Ti+vQpYApLlymc8;feSPE3QlOA+{LFU8mP;mBa1)W%AeN zUeD^EHY=$^;*W$<3HpR@2}P3@rhd%aWpCmt=xr0Mt285*FmKsD{BFT1d=@$gXZS^Y zV}31{%GP3A0!_CRDsPMV<$Ocv^A&-T`V(dkbr$=5$sp}};@(@_`C=5o*ZjnL4nE49)0Hyj0Hda8MtrH1u6 zM)Bu}zazrdEK4QJThlJ%H1Lz06RQgGTzxR}p9cHe9G2yla^3k7!WUr;&OD`YUO6Os zgh_lWHiCYyeh9Vo-^^d(Y?ZSuePl{rk|n83V#?1AiIB!sZA929?#q!*I%(TSlfmNC*JmYD89oLZ?%AMjG^3V8P zLPxQKL;#;LNuL9@%NAlj=Vwk6ymCDF*0;hH<#?1?EB#yQiInNd?~*7BWS;95aLg1UrLEpbGdg z_7N+{&eT3?Ce)@H=?1W$aRM7DnUPoh(KO4FYW)^bCh|c<%ZLTA!RMMwndTaT(j0M= zaG&qYcY{Le6TT}{bF;-;(lLEe@TXQa%msV+9_0P(WRFsX)#st@{#ehzyveqvS#8n_ zq`yd=mbxHyOxj-=K`;{cbCz>=_pbI24h@iBAcOb57DwC$@~sHbiKqfL=R!~(Fu~)W z#Fvu7`k}DQvrS2+5s1?Nr6o z*6Nlerl8@JzM@o3q>xQJ2g;qFg*)P1tVyK}cMY?R3DDg=VG!VNAcYcKF5QKwAUgu@ ze81)Yp4S|sY)e)~=90|jnQJoFWbrvQ?fTrMc}?9LJOz9k{BeP`!A+t0;b^&q+)}52|W*&R|;xF$=Xaiu9$dR z|H}B&+zt90F_A>%_K5k`YL*SA7~@U-ab)$A;%4E5P*v0e&C=O0#u#JT4!yk;(-G5J zV@T`FXMH^q1|8tO+ z=c?&M8oh=cD(sX-8;%+Gn#!2lnQNF=gX!WHa9&-Z0s9VD6@9k;fZ>R7k7=U0Ir5SB zLYuLyIohf(a?ZKA(YbXTPwnx@mHOS$ z7Fo#aa?^8bNw^aqAp8_Iodp+g_g+3*b46nDZyb-)EO0M6nO97>>ulI=^yT2hy-a=I*2Wiih9&#OE9(D(Ed@H?^JxlXXxi7oy zd4=*~ou{2ok#$-vZ(&}2*J0OqaAw$$0eJ|ScrE;Vpi*!|XjeE_j={R}5?NK-!8zj5 zJ%Ki&zz^V;^7HvNyd9b{4t6a22{EgWOiL)-MbWb;KRKNIMARfEX-Cv-rKqw@P7C)4 zzXxM)qfjd_=SGL2CI+?mIq)&Bg{s1Q*a>&&(#$yK9wKc~x@fS9j@P}@wPLf`EnH9D zD!dkki|Jw=>2ImN^jwS-TY-U~4Of<}qASBRr&m!bxu5JvmW7J_IN~kvMlW!xZ=$%u zZ$npucLMLg`V;M&?k$Qe#jBq49*3s}_+l@6)4ipAeSF)&X72Wt0GI4-Fg~OJ;rK69 zvA@f;)fvd-Zvf5i4a`uTft|&^V(+m#+1k*i?~B^bgoTxga_^&e0_(UJf7jC;=s2n+ zbr8smI>c1%G`OmEDI=7w$}HuXQd2#xmee*Nme81(Nz6jrrUl|3MG$4^PV6S4$Wu5& z)r0QI8)l*|9^Nwp`vyDVCm<*mAd1(O3X~5d#JX(s@b!4{D z`=F;j8~Eat>SLv#vR*C;G~M~|s_;Z$M&-~cwEe}P4!TpD{dvB2z6ahx-s;}2-oxGo zKGo;+%YpLXO5Y}5fO^47tsde>70GGjVe%CjPliY{)sUJ_-J_!EQS@!B;tiRR%tq{9 z3!&K(qW93n!L3t?xR^rwoLz#X|Go~bCr_az6pkCyp zo>5zoEZK)_LDnEkl6umG_}UHPAh8~Go{Uxi zV-C>>R|`bGdLhy@huDg<^LIi)OLxPa&ytCxMAfARQmd)6I3YMFmM%b7pv%#v=@_8D z@{#d!f|^A&rzq+PIiGAm+AwaqA@+1h8>s2EtLg}q2O@2(Qb_qAZ;=Pd)nrD_3V#cK z!Ic^IhxNb!wv>mn6ElX6jsgX&}j#8+3S_Yl9Wgm~Y6 zEm?~|q-+eanm9weAd-k2V7_t*H-UgKL6Q<#4E1e6_9Lf|JIV8iyni7R$Ye4NDl|}S zA`hZfMw9KxI+&eB$w)GSEJT(ko09{e1F#LBe~MZ=Ns?lLxmEEhm3&X$BToafJqNAX z3wN$e79@?Nk4PjQ632)Y7)=eq{*|a*LTs{=R$R+dpQ`)Rf7GFBTeX&2R<)>-s)BFL zsl+QUm0QXg<$$tUnWKzW{#M#xTr^f%DP2(GQHX%;R_-e~ibZV-Z{|kzDx!2e;&$zT zN}ZxD`Cp9l60DfFT0CYgN0dR|4J8&6hlnSLtdgin6S50xK7t&N(yk%b<61>-Aa`Ij zI!PV}j_?+u$?wn(Kgc97X=R~ZlF&K{XrnjypUaqETgheQ400GE&%cwUQBMu6`^#!N zfY~wvqpvbyA@UIayr%6%^m7)XzGPenX@)O5?PknuAE*3;lj=qFvHBMAM@6;b(@nLm=+Eh>*9Q0t_aZjBO2l%(+TbUm${ZO(mLe;W6~IvS8+x`3 zSr|QChO7v#D(Ik*gUG3fl5fN6c9(pPmiS1%ChwD1$-U%qatP*ZLDG$w^+C*$UPLYQ zs~@YuV<-V^NAHf)`XQ3q1b(wpS}{bzOCo+=AEoJ~P5A$@@b6kcvm%z;46*Rh!~#UZ zH)B@q!u|FUTd>;9BPJoD+YV9MA_N2Uz-vTkH=_-@V2_AE4E~#XAMLbDU8&AhXRGso z4%n`q0wZDy5CRqPsp)8^r-&L;SgmR!CfpwLtq)??{SYDUi+J%kJaaqd#d9d~(x`O< ztPw*o8m5txQ1h;2J+uZ*CIBC~9dYl0SOLnTKNZb}Ncnr*`HFT_+k*aBuFXf(cr0o> z3L|fhwh8awMZ7wI_O6HhVG_^^4_YebnP^l^^*6aD*Djm6(wRZ}gfYjdn2Gtf4tfiU=l zKFHPlng(_~JrRkzmq58|Azt5_=tA_zGbSUJKO1$Qi(PCC*0QeXfvSj>(}WxA#e3}` zJe^0i;}|nX@pA(8yoFwUjT$9s_W!N*68gFjdafq!+79;|fxE4S#?m3|0M}8w$7s_B zSU=C=ovr^vC=5ou8UZIz17#_XxmcDcg{v&$@I{E?XjK;cg=ty>un50K&l0reK=}7t zW3JQ#BA_8K7F{rR#%i;*wLmW1L}?OH5>*p{GAN1|e(C?+ts?4C0p%)={mTlK7^oz$+PuJ5pBw1NuA+< zXn)iPN@NV$;T3k4RNz>qVMH~@N>i992`oryw8bx5ApvcwY8KqRAo|9JvOdNg&Z4gS zP|}s?kENJLtMKZWc1pXaz0kg*))2cz>GIHvZuEE}Y>h;W@Q0}9H|+;-I!=v1U1IR0 z-|(y&Xxn-iXEneRSQziiumbY_*LJz6=dbn);qwH_Qy3$qCO%sWpN&CZWuSCVfi<~+ z)<1=P^AN5R|C>*bFnZGQZ9inQGc3N!0Au8a7)AM5y9Z4JiXJfK}>V|VxmYsotF+>!r%>cju+ zs$U~K8f{hrW4ieN#`v!}QxqlP(d%LGY38F=5Pt(U#__+N^x?fc{OcFmg+WXInqOss zbE$@_3hqz@y{zE#HehOAU?!cw2-$~PU%~5ND4=+(9zmdN3jVM6eqnhk;ptI$q7Kg_ zu}aVwHC~Kf8`|HCr`pgyKQNZxVLaT%=(vu1T|gc7;@X4y?7__1kKeoS?@eftZD@@X zSYPg8WT)X-0`6W81O0l|XO#9k z+BpudKHyavO5#F4`LN=f2mxcc2udD<){FRGJ4E2G1*1NM_R7L%V=*#*q7E-G67Qk~ zF5?M@Q0^0`!F9C7eT=jBxPK1rs$$-lFm57nw_j`5ukls`^SChXD5AfEXbC@BE)Dkt zxhPsO3+2eij~8p|Gt~78YCc=*21FPSMBpj)5cc~2uwz|UL+Vsme#PWM;p-upc+SU& z6AUkPr^ufErA|lwX@3`brq~ahfPKUvv?tUjI92^h+PD;Mi$t^2v|?dLpr`+C@Pk^4 z9>$&r@8V-(x$FYF!!;#FTS=TGe*@}G)Rrlip?~8KotMjNmx&p$e_9dswZ*DiZB9HO z#{(yKn)*%-Ar@$ri49oY^yFaJ1*M6`T3xM*_6k_7xo8P9R9wqr1$;<^U_mw{tKigT z2ZC-eQ43aV1MJKH!T#8Rwrzs_{5JY^DaLn0*e(|_ww>BAV5EZTX!RC&9OtW$^;DOu zMrbufQ@t1mu>M=M_DW=Uy!uqSX(&oQ=6))()zzVqno%eL<^WmuQ(Y8VjuTN$vJ|{= z@5s$cuTaZSztDNbt0aN%>n@S6JcI)KJ2{P5OwXr>k(;#1YD?v)Y=*jo0PJTqYCiFs zHdrlA*x^5(OAB-ibplq&4b?)J$s$Ayd0YDzamzVM3)o;YvEwq@Kk8+*Byw9~v=2mi zaJYqu`|3cTH*b)e$;r^RHG)<2vpSI40V}!_{?(DVr!7)`hrL?}r|9#jVO3>XxF>A% z9-%?n8QMe~Q0#$$Ixj)962FZaL|e&71bN4$vd_sN5IK)p(eKtegMEbyw z;i15+rkhX40+HI9_@Mqyt_2_BdrHHZ%Z>VKY6S6I>kag15NOqtu&V9qDA-mD)Lq(T zoT;V)8#o8+JPG^g4#vS>&@JmsZzqqzTQHYuPEMzK1Lt{?yiNQde-Qmh6ZsK5T_s=> zY{48F56cMLcd%oZ;9jEkTs@~=Q7^(8{E1c1NUYLW%<;>}i0DnkYj21MvLMDGgL6g} z)~aM;C+>CzbNCTPR4i7U3giT2@O;DEoQCh#)Xo#R>TTSuA7)%t(^q0$TdMtz)71!^G|l98)aMGu zP9Jy+-r)Tqu%{<#1=Wc-4@*Tt;@Y)Sln-B}g3pk@4Bkp3vwuId~7OH^5$S*{H z=y{uBQS{Wi$-AOd4k=Fz`EH-i%@I8_B%zeu&;NZUw@$t?m>(0F~-$ib&ARnb%8G4OB^Lu zU|b&5vWchU8;paOK+Yzpx8%d>12Dw~h#~3@SqC2H=4t_=De|D-X%}%`jK%3_Cvlbh zNj4;UW1mVUzG6JYpckqVW3XS9#QJ_(J*_PQW8N`vw*Fe*_NsH>C%FM$+a_9^+K!l` zeuY)hU+b%WRQh9{Y$r;QD>3qhL+htJH5ImYJlePy?vf02>LS?kW3>%f6)I!gjK|Jc zicC>HDUrxQ;I#YL4|=OMxeNOH1J;jh?2%j5wOT7G9|-4F6LN=|4{i0Payi)lDP#=AlQmVB+)-_$2*hFXFuj)gs79!>+egOFP$MR^oILkn4TcG!V0k>@BQ*-P6-+#`-7Ur;1B!=|qS2D8aZp4^-G2+vD-B0l^f zTsQn$ey%kDhIzm0R>~{yWLE0}-^5SsDYdm6Wf@VCB8l_bN}R=wWCwCTy^V^16*Wu! zp;J%-qc)r z2l-k%tz5?GI0Wy{aJmt6sMi3o>%*z~D`nM1(ihap@&$PcxW6Z;NpwpcyhCcV{4!_= zIzvV1#oPg?x@?uB1Gj?Dl>$sx_6+@vI4iG{_sf2jBA>zv#43+=UzS zia4UYK>n@-o{0s(i!ULn;lMC}Sgq|;;=!R<1bOQ-sB>CrD2ldKI%t*1f8Z+`h50=Z zv-pmzDf6|9)HMd$FXR_B32V%Mq@9ezonB#G9i`rpZAvTb7j`WQR@!l5mi7l$>)l#s z@;Xk}196fbi4{R3eA+#wu$rfNv6kjgXQ+@S$Zh3^%1X?&tH^e)LD=LpxsZl)Az1?B zasrtQJb$9xUf!;DA*wQ~pwHS-Rn-ZY^XoBs7Q+M6l6Dd6)bq*%We%c)v* zIv!`md*EkJhqV(&ZkDHn!}0)S7`$`;P<4s!;k!x<@fzN&GVscc$9c6BxsZ4U+od`c zAfccN4(}pVU2-4R@Ip$GY=)nr5$4Yu*ud?CFm3l-P`4;E9!o(S%*#9FaVyfCr ztB;J3l2kh)QY{XRvVmkel|cSS)`fqgiTVgWkjG$sOw*QS2J&Y%ur zpMIyMvW|F#)ohyfhuTSfsT9CIwT-k;-C>s)NJSf<_R*e`wJ8@>68Pn@ zY89}S?jozvS@bz7O6?pT5-O#WbdCV2^V+C^Ak)#(?& z*|$KJ$_ljzcG;QKQF0gN!L9H|XxEidhiF5wUrmA4UsoB77>cC6QM;2n=s%IY_9xi; z-0BBn6CKAa*Xo0fcq4oT_sKX|sJXxerUD7;C(qM!shX68vyun<##?e2RTWyrL#bLs zcd85(ByUs6$R=t@wWa6j?$e8@)$sMDku{iOOnoYZQIiqw1v_Rp*dOme@h?rSM75yr zho1-2g0woEJkAu>t<(a@V67Fbr92{C$gKQ5G|89kd+HYvyPOs38R`;9gQCGVc}3{& zz`2l3{Tq2m1L(O#jw&guwa%22tpZ)q=gfS15%RFsGJh~*FrKFC?y%o=%b00QKSY_@ zG2L}Ob{hMMeT+{wMgDVfwhoucnmCWHC)*b>n)bRf^l7RxwV#THl3E*WE8bnMV^5AdyCtIHdA8>EiuQB12KFwt9X5xpyn8rwS6BI7 zh0YQdoL}b?8<|)1BL0c7jd`~5Z}GMe$B*LMNu!N|wn&X(VGlwTX{dp4Co|M$A{yCFu1#*hor`oqTMDNt#MWPK`UYNtXbzj)> zBB#$YRkl`$SZMj%z)9b@d+a{mD{Pl`3JiB$SDDHOe=vb8!O`qqE}37>-qqQ4*Eo+* zL#hvS7O5`-ouBQ7mWC)p61d6-8kXxb#4-FKcB!r^FkJ1Wn`~jSz4ASHHs}oY4Uh3I zu^H3HrI!MOVB_@sr1=Raeq2c$ola*KPR~zYnU!D*=XP)h0wu#I)eQ2et{0!lXNw;V zr@&+-qP|B%|R<%aZ#^-1*O>I z$X#HpPr=1{$NUj_OSkz2VEoS$OABk*%Cv{5ffFxIbXc3lQlOQstpRsR7kY%~IoALdh0 z-h!U!3~QG0FG&Yn%PoDtw8`ku_vQ|fn%qY|rwybk=o+#Qk%^NRx)v<1N^e;?{tofx}LgH+!%h8=$7op#^x#Jp{9R~YYeneXAT3?UDGs2-&uMs6z8Lvp~SfG2X9~7 zx-8C?kyp(zGOc8M!k3~*cdV86K5I@!Wb);oa?*s%$~iUi#`$_7D*8z&Nj;)R)BU&( zhVIr+kyj!LL}Z(18xHB;7}`e!B1Ty{n7T^Sxv9)k26zOP1TR^C8eR4lA$50-c;d{*ujYssarLMw0ZmiBnwN`ifXXo{> z9d+)^yOR4by=S8OqyLW<$uSwNGK1-3QVJ$#r%cXxm-96Dou?vHHAB!gZJ~LH1I$#> zWYB}lHqI1h*rxwtxMk@aH7x4AQ_9oDvm{VMok30KHVXrQ zRY?_gh_%6z-PtlX;zv}E$UCO%(oQ}_j4}4Jd@^sYhYnTV;@f!PO?R*l3KDl zlW0a4WqWhOfc>4tv}3C2=CD)wG16Rc$8F?S^NB)9F_j;t>rGWrM)~Tw*5scIS5x15 z;%xeqa>*xBQ*%nYd$=mv2c)T#5&og zd^CTVP>GG*%WI@`57IN>hKnP6K8CXk$A!}T8=XuKqT{LE^llx;>yZUI zj(!82p~Ob=lY~F`3&6_uLk{M7b~}?oTIKTjQ}SqU5qRdTzC_2y)bc5()6#N}dH(Qc zGTJo>Kw;?5<2M5=&MUNxtg#c{Zv!kV7`@DmS4skCfiaKne*%l z-pBpT*46a|{(A?T!K@@JD%ZV?vqAoFc{iC9>}ju@8J*fSW3GK{ekXsfYkc;A)U2c% zY2$2f-AhAN1J7NP?33*mTzUR)Y6JKr*AV3p_cM|_(}y=2YMK0oB~Z&Qp>GBp^D$#H zFy#MXxn{6RJ%#(i3u%(!h2g%mR>)(QGY^<%TsLtUm=<5_=1@(krpzX85Z3;YT!1;i z4AC`X+vqmXeHGGIIucjXzMjoS2@)W90)gO8 z(NZW$u~MwX-Cc`Qpea&ZiWVn8(IUZ$1_>I1CB&1BZgzHNc4WVI^Z%ZCmW0jh?44_K z?>WEop6G&)rO~c@r^|6U`%cD-j25}=OXA(l#PQA*MY{|87GEy!>dEt#5zUAx@Z8VV zqKPDCikY!}<5%5M*}MhHI=d|mY?lID0sn&Gn*hbiTIQ=5n@6m6OB2%z{atnfm#Uv` z{AkGJ1dvZZQ8VeDETM1D4Q5I9Hq(k(3tffY-VeeM=Xd2*q*2N_alUI#(Y5@2IRW_t zOC+bQe0}kX{CnA^tlL>`$2{jW_pI`}B^Qd?7g<>`|K$ZQM!?#U3x1^BR+| zF5GI~Y1W_`|HZn-KPvEKz)d^pKg@5W^(SkB-y+*=+i%uF)1QWs2HNNWJ3R*qnjP7< z^b?w4DQ-5NQ}3~QSWh>ko|9|Up+a2wM%N4xs@=i}es)PjK~m1u{58cZN{5tvF18j9 z%N?E7E<4##yX>G#b8aqm6wyV`O76O5OZ${qbsTmdGv#aQU?Pzvj3Yoe_BXnWbn#*D*npHcBEt%2~JMWw<_PTj`CGbwvq<3AvW+Gg(LT$CtD% z+gTP|R<&eaG3U$q#{Vh2m%7VClvm0zwLmwD_Ghajzrl8BY&gws^tOfpbigkGyOAqp zfIZdTFEAzWXy9l2-?l|of6KR)!`3KUb6YFKy0$hh0s|e(W#}p7M^DwSWs{)>)kC_< zcYx0MEa{rijh|RnzvydTc>bM&S>Q6K7alC!lD|J^PmUost{|*1p|EqYw`fCgNl9W^ z2bbdN#sA}`#9f|n^(nN(b~C5h3!tqB8XlT-wsLzvC=;szosb>kK)|IyZ_xCRUxNdJ zuGs&zX?{cff^1D~xBcE*2V2Tbg~s!SE`}4>KZGM=L>N<>x~*%k>ZCTvy>1nby9c`D zG9>ygy5*=|xY{8)7CH765Cw+(uzYL&pn|QAJcqULwc|yhSR7Sa!+GC1!*!DHCv=k1 zE3jdpE~skI*q~8C`9V~$hIq~M_BM9S*1*=n zZ!B_eoHi?_ZHREXU>L2R#m!)Ym@H}%c?+xktsaMP+r7lSm)}_)*~L-C zV~frd-f}c?NCgiHk_%=#T#iA7fyhquPvNNITBV=MG-rfsD&JNZC*6~KY8!MWs(}89 zOEf$)*{oaqGHj~O zf(RPzl`f+~E5Z&|s|BdEL13`P!y5Ms@f~I@Bk>7dy&k#@kRtxxV_G*YOI@N?Q?Dq) zl>p^4cd)YjLgByM0V(0?uI5i9;+#PZ=Ifx7c^|uD4 z%m*Pd44&GD@c+lbQ&6BKXj8Rj*yrC<_ke5b1-lWUx)nvSsSQAWEmHqdpQ#-7tqJf{ zeFtjeHvFwd_}v$SJSf+NfL*EsmZvf-O^tE=_VB#agcaF?zvaU|n1`Rd&V_%=!9Tfl zUf7&0$j$c^_SKWH>Tg9&&W0VcIp_hO=Qafvx_913@ZS1}fMc-0`Ml)Gu*$!|-_qdk z&4;f+f+t>qx7`ZwaGeU;qa(a*vAE9g3cIS06PN@-U}gm`un1+H1{SR!*qJ_PzsY!i z4&M0%?dem|h{eyo_FHuese;WwjSTcP4oxn*XpasIvGgpBfd=6T$3>GboV8ITSf*QR; z9EQ$oH&BMTxQFeiv2XE>h4A?A$Nf(SFW41YD&K%9>j-^~-mu+|LiFr1@H?Au#yPaj zWzt zd!RS}jBoi3B|DAsT!(%75!xsf9?#Esy@zf08cKW?J?kP?`A0xU#DfRf22KRlM4bHs zXF1Wc>p++0Cvdk*F?!E~9!mjZQ>v5Eb2aqf67=dU=)v4ai*83R8i;z1Ml0!b>A3#E z3Oa2eR9_~+8}$?Xqr<=;`s&R0J^z5#c!B<1hW0j~@A{**>w;^j3-+QK7!yMUV^Rul z&`X?`1WMw51sUO^l6?G433`eVXEp`dG!VUbIk zBWnpLKX?k!ll(zuWrNb{cju3?G2l=%FfOHF(#r61;8le4%Hg^6sl)`J@7BQ>YJs-$jl&6GwB~|&TMLG3 z8|rd5NW)Dy)>RzKF{e(zxcde^jrt&NDA-ps(MEUB8b{EEKAvhf{@sdRe-P|S0(g;I z;6omxZc;ECd_b$_ga63GjF66&OUK;dqd-33Z!dADsc7*OoRfocmQ>6Yc8ssuXsfQ6 z$46uI&jC}s3Z?Uv=TDSyX9Zif7;Mo@jD(S3B)fn(sf+p!!o3R>x;jt6%iTmfpU3z= z3{T>5lhv5QZ)sKElm}m!X1l z(_{AWwSNd|p*DJIH2Pi}^!U#B{@$1~ee`4;Uj0y_??Dr_L#Y~}7gR-WFye|LdW!?! zmV)oSi}KyY(<2eD+xY!H#^?QtcVD2zd_>V3v|k!(Clf~&?y0QeD6OEa%5f!MPjjN& z#i++@oRNjrFUC2(zm(%nbQR_I!*}}_#VVkNeC(rdbk)SmH=Bmzc@c=2)?Cq_eXZig zwR{}pd$ip%9FOsOg+BBOPaz-a^a*7t!C4Zn@4~nETGfNki71P!;$0vARf4#kX5g%0QH}GKi_F__q>{P>cg`3HS>HG;qfM z#+;8ebmP8@aD}XjKK>T7;8Pq)DD4ycd=5hIJ-#aqhp$h8y1?NpQ5inxBh`E_0SAve za8{J^e|77tO<%8cR2;sVEve)xS`FJWH-{nEMB^(G4K!5STSLa2q@%0w2qQCfh zixGWDk9+fxl8|!3xxP>GxL!U=o`?3#N2~b=FeI)D$e|^QcLL|V#TgQ6$;ZW2#>fuAbrLaePByL*XoJQ_@Q3W$9|JFV_lj>{K4b)`E(L+PFN zFS(JdN-w8F5&Q6$ZYcQ(rJaDMbsSW(;z5Iahb+B6(zlq4tipDOC5`}l<>gIq2CRz~W2QD% z@YCO5uJX-h^D(E6#nWmgo}@QG;7tZkwg6lb4K2eMl&2JtG98F#XtD9SM67{$Fz-{e zFpbklEfsMROR=K=6Oj^e>I!ugRQA?EKP*n`1wQPd)&~8c7&(VmU~P39jG7%0HwoAe zgn^rB2sWSe3Si1}5JQlPdT))jOn-bsgtxNy4b%!#5u*UDMtC;E!Q^blJZVKKqPVhVtXt%wfWlD8p zKqhP?8&V4?C$*A(g}mW|nIz^e^MtXnv)GO740aGZ7CD_CGP99UBN=@onp%!XrvbVh z-W^(FC?!TH|H)H4w5N+STl_%`5mMYCP)SuP)$qg~i5QU)WB{U_hSA-iv|9zaH2n=`<2+NEITHClx7ptMZ?i9h zW>H2UA9ym*9ym7Ot^aVpt>(4HYur?7i1(Q67Os>ZLoS2r1%q?F+1XiC_K~dS*@Zb( z^MVU5J4O_>EtyfuId39Qpj6(^wTfTuju9wvwe(t!(E91Tk;bn8mlU;6CAJQ2#B_1BDx%uOxdS=&Q*p}_BZD`}}@+{K+@`cgNE!SFY&m9I!LeBm^* z7*9|)dZ!Va=x?Fyf5ESfy<1R9Xm;f#;TLNRjCc@XjQFQ!EfsIR8Pu?ltJ%qzVrKd<8wmR^_-do&5GNXUU2>5+QVNH_6vz3Aq>Hc`JW`I z-9d>>q;4?nO^vJ*Y*u@`|6Th*`z!zVwjP!rjM1!%yrVmyM$1QpZTuVP_qXL&@O#|n z#ABXG>QLQ5YC1Q`Si`#9zeUhrp&P0=t8cCqTK7!7sSN_798q^8^XoN^I1+Zt?lJ~3 zpFDC==Zwaw``*+^7M@;z694GW$GOigyx#LsNc)&IDF3hGI<7LeB2tJoTc)&C218Xa zRhvRMsp+(feXl=ZS?b>xwx&Y?rvfGi7TR0df3}`Ac49?Pv$5*8o|=MIPL;dMW;yqk ze_P&!-|n6-?(>{bdg)q01?PADeA6u}Z+{pPUFBZ&fweO0zKBeSJ{u!7{S>n|x@rA8 z)jNiz_#e{`@*H$D|Jvl;qGai@_TTP1%Wjq233}A@dGXt|AB(;o%s*R_!uORbsja}+ zPXbN17kpYD!a`M}XxO$1!xKvf|KawJ0cQf+g)9tR5L!K?OTawa1Jf}5Nm{{JTfuKA z%P7(nPA*8zzm~rz-&qh-q?Oj>yGSX@FS;RgXG2fx8hdK+hOpz+N^2I@u|)Q3w7N-5 z)3l~>&ECayjow>#L3moo5Wh2Yh%nnRG_85csTVDt#Qm3aXW?!C|H2;e&xXC(mm2!D zTi$}=*Pyq%DREk!_YI;WKI#sD5E@6@>6OeRjxl9f7y7S7KE|pcJ3qYu$r1-%3wy1r6yWHUHDOn4%^0N|he#;Lm+U6YT-Xm}H)}tpI2y3%|%;3bZ zrPU&99Hde` z-D`i>a##OgUefQ$S?_j!>XbFbQK$4@exhfS_MR9_t-y2i4jsYW(Qh=gG@Lh#F#Fp& z2BZc~3_24W5&ACFQfX00Vc>RKPvp1zK<-!WxC6@$I)>%G&KQxdOMCgnmhMhJl=(7e zm1B6>Irrc44etuNwy}ZVUjeU!k5+n9B`vfHM7dX2ScrOB zw`uh+VfBOZOdE(n{B*~!8K*xqcr)es<467vy4;U{ST||ei|%g*ez=zYZSKy(Y0eiy z3uUPG47n<*V!z&o96`MxtCKUxGBW!YOYDu3;qem6ZbV}91B+%1KS~bEb_Mm9}m47mK&B+DLiyl&};ir>lJ-}(x%*Z2Rr8!ea>H-^Cjy==H{%}oPxX< z$BkmStQZ<3yA_Xj33-*C$ll}H8@d`*Q%6g_wYH73{}uQ(q-|wK)v?vD)a+b)cHNcr zV(PW1y}ai6YP~Bz4f@q;L74f+nGUuj0_~Ms#J+0l>fths9N2q=zmxyHx zU2Wa<1e>tRy?}4%>Ri6WIkT)~=^rIyO1n7^xt_VlNQabdx*POV{W()lYr0<+a(2cb zf6i3PW#bgCBYi^GQ*G`Ug&Y}Y%M+aAorjz|kOy?5yR%r;6M|6^t8)=QQB&z7%q8|D z*A0r&4Gb3zi;PjGQqy+u4D+mWpm;q5?NL3TUcfHD(56Ua$w;ne%kp$~?=x3~Ax@T%_ z-e*oiX1pC{%G}Ph44F#2dRku&Z%`ZN8r_zDL5-$rQ%0<%e}r9iAl00zMVYAw_bX}NSuQlvJX1)htZGEXackL;0uQSK{Uu)bWcb;S<&IasDmdURtUaxxt&^<7t*xwr<)WpZB@=38@un208vSPY zq_3*)$*pA5D^{6pkeRUrJo{(F7H1$<>>{k7JGDSil46^XCJVTC<-+8t{d%cr~ z_1uv*L0h7gR4#58>%p_uRY-Twb1VEpUVxrPFL>wuTo@Xz>R3NKg0{v@zN!1PySeaC z7%d7=@hE|=$Yam9h!Y>7lqz#oQrn?*!;bh0)}|DBnCwV>q^8ihbSGvllL)1*R?vLd zz@B1XvLx4?+m0>s6n&QdM?(@+ay}U+m{LrU=9%V;=5lk0CBhPJFNdav8Ye=kz1$GDgSyy2_LEUT7qR zgQ)N`%?HEP-Mq{E)m#}qyTO)$mhP6OmH?==?tl(riRpl;hpE80!Pv<7)G*56(f^^Z zq~FAe>;Ux6ROoTFrhX=85DRo0pbGI-tqe`W^Kun=yQiV&gS1onK?;^~kzIF-I0`+l z6q+dg1lfJU{exS?opnOKh!3tC$X9#8_1snBYQQhSxUBDvcN>LYg;HS-} z>W^}DxxFmI{=yulQ!(4LCI=Ifbo0DxwZrOb#b5bJK8`-ROsXz@5)X(Y#3o{pXcaA@ zK_tXtAw{?&oPi$79NcpqffDlFsqQ!KWcLSmo?C$~M}J|n@Ic_i-r{;OS*#{al&-*V z)77)lla7)2r<^ahRrW#2V6yrZJJq{d6s)cFbVqdIh!7#cDVCEHkZYhTeU+}wY=-9i zFYF_>G5Tx~*8#2cMIUXLhxJK@fkWH85+4>w(z%?wDbt@XSboV#ZAR44p>@fQs$Q zOhzWojnLIUgSNiT{Kvdv(%~S-j8 zkT*jihEu**)=B(@NL3Szbyc1i6bz-l-nHj}2X592; z)LTP37uijFPWP z2Otl@Sa~Y)5&Vks|0O5LSLK`XJ^6|JRDLJFmp{mxa2mMT~`d%M|>!gj$b#JW8Dh z1AiCCzf=OX6Yu^^wW9o~ujF}Tlj}(akRM<-8Vhe|0kRuRgta*h*7rCs>%FPXhE9C0 zdPE(g)<hKqX($!r*Be1z*;ASbvZc3|9HYh!aVM>WCd06CH^G z#Aqli%z|HX5wRFPwk7bfts&x}t+)@`AvfR|{EAp1D_I)^&tP&MY>FqzJLEgkK`NvX zy*C&HxdpquGBS<)4}aT$6-rmcVQ5ftIg2X|gWuOoWP?Io5ASLNc!{3D?=Txt2jQ@B zy+Tyy4k(U{fe*Qp7LCXaKUgwL)pS^z?!*3c1X?Of5Npt1{YH&O1cD9zX9;R6c}fBP zbtzuO1h08>wU0Vo-KySH^AUfEm_u0gys%x)Lmw~qM#5LJ4KcF$P}ryi9f@wRBMyW= z9vR)BE721+yf%2ZDSXp0@aVUIr?xxZABuXJ0SoK~Vh{9W?m>5iC+uVsGLD>z{=6R+ z$!nM;t|J@AL2@OOW|~8FB?r5&IR(uTu=J4Txbo8%nmXDot##v*MVA{5717b6I_^<{;BRedOg>pdCfjV3tNf>7zT;J@&(sk_E+;nut>9f%VT& zc-Gc}T6m5g;D>oK*c~ zREK)e4D^BRWH=>3F(?<-&^%%!`8W9(Ynu@ADeCGAahFih(|CBlRv{Ayjpy`k*gR?c zz6!S6e_)F&f%Ve`Yko4KbHcnCh(H~Hnz@fQ-l_2NJY*kv8(T|zHK&+C5VAJ46URE$mfy@6}wnv zEBfkaRlp3i5z(I)pjzAuZWtD@5dA$fke^KxuC z_p`U<6y)yBPjfUc+2h>L_ZBxH0=zEKlIq7iV8?NLxMkdMt_hcg%uExYmbH8T2Y9lW`+^O$SDz_s|OvqcRf5bUKah&w$Hgud+?J$=qUY5EsQ2 zuq&~GFft=)D^1f?=m~TReHuCY`XL8ItckN6w6?VU?BB?~&VCtIym9_%)@7!4`eTPr5yiUELWE5ex{tvE3OpEnUf8h z3?KFTIDd9Kw6mtcFA+tqg;G-(`Ifwi7$^awM^<$)^w(Xdaym0QggAufJAF~eI8 z@nIvB1o^ByP5DJ_h#2QgM9?Ks7N$Cz&353HV&ydvL|{L*kok*=XD%Z@brM?zmR@N1 zSw8y(*n0&o4XzQ|qtcs7^}~!|rb@quEDO40clwPnZ__uY($vw?1b3V>u&8!^+ng0y z^Pxc5HLHGBO4gg)RL9ej?#>>3g4kVY0nRd-e!|>fcXQMAAM|nhOpevp*2i&U*iiN; z`vqEV+o0uE#t2MntO73461k4(pu4JVQg~^s!0}Im3P>pu&F(nc|;I zZ#mtr8p0Xrh%(&!k+@G)Lyun1?L{2TFujHq(|L9`@>sn*&t^rVeGW5<392Z0e zmj&$%`ZnlmVAsI$0e$Ro{#|S?>ki8hbEK)caVv6TET;bU`fDZf6X{=9eCgSu9~_bS zHS=cV7G^)ro{C!*+#L^hc~)M{iW#5BD_J@l00JULQx$tsP+ezhia*{)!{ z_XaEZ3!a;ve?4|jJXZEyJcPVOuBFb_NL>*zpN{7G!Y{Gf662R*`{Mt={>(nu{ti^`&Z(+0QYWi$?Zk~i4_7dYiTnogO&CpGk$GBgY-7V_n zIGP`m_YY=_S-B4iZWRCOJm@~<8R13L9cb4kmQmKnR=f4Od4cg9*Ob{ocJn$AGb9Or zK&5iI@J@Ir9`RIDXL=hEt>CrVNxi4$V80Wf(`)DCzEY0+9J0+?otMiJ%UU^qD^Edo z-wAR6BAqfxe>0x2Kv|e3J^k@1QzMAS-=2}$qc4%qFa&_oQghP9S2);pL zg20M_(l4IJGNW$McIY(n0qxHu(nW|mEGMFM&sD+GLCojFT#3%ovg>7E%SxRqU31-K z;%a$-b_2763m%*=OcVAW>@HeRO9;)oPwT0Apcv_q_JPOs_iXpreJkvVU2P0$r*>GB) z#>s2}vjkbja+!hbO!f`ChD*}-F^(Yzd44UEQW`WWUQ(OI)8$0UQBaK0~j zTXd`_v8YLLkCIg-hs&n%J4J)iSnHxYPA1ZSv3n5B*Og0WPcv7r_ILpWi^o_iMrf*1 zLw&0*0nPRqp3x!j`|k($m;!Bw9FU36mHYBIPh;tO@d>O?58($(6kAB0JPYLWN-$Il z1|hp@OX$PxhektJVjObm?$X}jX?qgS=w;w6%+?E)WXdoXi;h*gV!Qy$p|(Joi$yUchtfh}YAat}DYegTf*h=<_0LT(G! zg$v~0wfO>Pq?2$C zb~Y}bTu$OynI;U8&p-*6#?wEO+QiIc@31y@Jo5=riFu$mGoimAY8L1UJV55SZSdgM zKty^=Fq=J~UuV^L4|!2J7%;pg@~y=b@RgvVw@Y1mtF6zn}_U&k&<`V82*E@1gFIE3p4s2@16`HH+#+ z_hl}yS2-8Q=+`2y@2P&MejzuXtJPSI{h8;)_GPFHGe{o_rkbza`Y1lTRz%q2x($#b7 zMRg@2%YQ>0cW3z8`r%)*60USoPE}Zb($u)wF4tp_^84UNGI zP?hKfVssIBrywW`9EIv(WpJ4LHKS%z*D0g0Z+n2}_$)bC_LqAqntC4V^zG1;=tM?P zO<|4R2Q7V>?#(!$QMw(L=6|r;nh1T$>d2k<6LRLgApNlaG||D}DrBmZve31#GrbE1 z&q35?>LKM%kEQq1IdpsGG}8#QauxOqQ?oH)|3T1 zyOh(ewS0t_>mgK|cRuk46^MRygA0Hj`Vy`oHyjEzm1#R=BO{3!y7wR?DnTu&0l15A zpdd5^l;CK*vlV2>5m-_m;~w1@KeOe1GLP9M04l8;5R>0Y*Bn;QBcK9iUNLoI<)$S&+#zJfelTtT^P)aFC8 z<%m|MwFLcf4h#I>5Cd<(KDIi+5br^aw%5G|q2kcipCK2f zKSWaGa1gtzK++rs?K}&79 z6ZXOWw=#$y1$!SSc%-l3fPBXTus_$ppBx0s@dx(m%fa~gINH77P!GZ`^$h!@FCdZf zG5;iDkFpWuY$b0IsOw%JO;XhqsBbPsAFc+y(E(7fnhrklg?AKsCV^Us1Zm7e4d*pT z(1{gVSssvA{-6WHK=bv6J>XvuMm*SSnh3{^Fap}5<*V!6GT|?|MhlAWc121b9u2UJjdlR&f2N9nC zfbpD!R`Q3x_%R5-halA6;m*9?5D+)M-KmeE9|#U78Z{+@ue*eJWU552YhHiBV8HlQA!qf)4ZPlezHM zWYAnME1oQ=V9RpRCrGeF2RcP2zrv2LFb==6)7H6>_&`+3HbaptgqUE zPi+pG5(YQWeVMqgcc_m`;FKTZ4wF$b7ixmQ_xQ8{n;}l11MCE~(I;!6?7n;aj5BYc zWqhi9$1#syK#SeP@0V~#f8(8FxUY?9$>m_UmVu*Q1dHA(jG6d~^B!Y-I8Xz{s1-Aa zJE4O8E2^LbeTsYq`0g;&XFZhid(74SLClUo*$1E(^#Z->Q}YW0TS=ilF&$Kpkv>w9 e$3cOE_2OTB1wR^rJ7|Xc?TXL!L7m2dcl|#L0HL!0 literal 0 HcmV?d00001 diff --git a/benchmarks/edge_harness/results/e2e_profiling_20260922/evidence/summary/README.md b/benchmarks/edge_harness/results/e2e_profiling_20260922/evidence/summary/README.md index 9a9c187be..dd8ee6450 100644 --- a/benchmarks/edge_harness/results/e2e_profiling_20260922/evidence/summary/README.md +++ b/benchmarks/edge_harness/results/e2e_profiling_20260922/evidence/summary/README.md @@ -1,6 +1,6 @@ # E2E check and profiling -All 60 pairings have a disposition. The timing tables below remain the 2026-09-22 measurements. The configuration matrix and affected per-cell reasons incorporate the [2026-09-23 scoped recovery runs](../../../e2e_recovery_20260923/README.md) and [CPU expansion](../../../e2e_expansion_20260923/README.md). The CPU expansion adds a separate 20-request serial MiniCPM-o text-to-speech profile; other new paths are single-request or short-stream runs. Profiling completion does not imply full release qualification. +All 60 pairings have a disposition. The timing tables below remain the 2026-09-22 measurements. The configuration matrix and affected per-cell reasons incorporate the [2026-09-23 scoped recovery runs](../../../e2e_recovery_20260923/README.md) and [WSL CPU/native Windows expansion](../../../e2e_expansion_20260923/README.md). The expansion adds separate 20-request serial MiniCPM-o text-to-speech profiles on WSL CPU and native Windows GPU; other new paths are single-request or short-stream runs. Profiling completion does not imply full release qualification. ## Configuration × model @@ -11,7 +11,7 @@ NOT E2E means no complete device/model workload was verified. “Scoped E2E” i | PC HX370: CPU / WSL | profile completed | scoped E2E: short stream | NOT E2E | scoped E2E: text → speech | synthetic policy pass | | PC HX370: CPU / native Windows | NOT E2E | NOT E2E | NOT E2E | NOT E2E | synthetic policy pass | | PC HX370 + RTX 5090 Laptop / WSL | profile completed | profile completed | scoped E2E: text + image | scoped E2E: text → speech | synthetic policy pass | -| PC HX370 + RTX 5090 Laptop / Windows | profile completed | profile completed | NOT E2E | NOT E2E | synthetic policy pass | +| PC HX370 + RTX 5090 Laptop / Windows | profile completed | profile completed | NOT E2E | scoped E2E: text → speech | synthetic policy pass | | PC HX370 + Radeon 890M / Windows worker | NOT E2E | NOT E2E | NOT E2E | NOT E2E | NOT E2E | | PC HX370 + AMD NPU / Windows worker | NOT E2E | NOT E2E | NOT E2E | NOT E2E | NOT E2E | | PC CPU+iGPU+NPU +/- discrete GPU, joint model execution | NOT E2E | NOT E2E | NOT E2E | NOT E2E | NOT E2E | @@ -43,7 +43,7 @@ NOT E2E means no complete device/model workload was verified. “Scoped E2E” i | PC HX370 + RTX 5090 Laptop / Windows | Spark-X2.5 | PROFILE_COMPLETED | not fully qualified: reference-quality and remaining reliability/performance gates must be reviewed | Broaden only with a named workload/device/precision qualification. | | PC HX370 + RTX 5090 Laptop / Windows | Qwen3-TTS 0.6B CustomVoice | PROFILE_COMPLETED | not fully qualified: reference-quality and remaining reliability/performance gates must be reviewed | Resolve and measure playback stalls; run quality, interruption and thermal tests. | | PC HX370 + RTX 5090 Laptop / Windows | Qwen3.8-27B | NOT_E2E_PROFILEABLE | The Omni pipeline binding now exists and passed scoped text/image cases in WSL, but no native Windows Omni run has verified the NVFP4 checkpoint, memory admission or modality behavior. | Run the same checkpoint and explicit context on native Windows, then broaden quality and profiling; [WSL-only evidence](../../../e2e_recovery_20260923/README.md). | -| PC HX370 + RTX 5090 Laptop / Windows | MiniCPM-o 4.5 | NOT_E2E_PROFILEABLE | The exact checkpoint is verified and one constrained three-stage text/speech request passed in WSL; no native Windows execution, memory admission or speech-quality check exists. | Repeat the real three-stage pipeline on native Windows and verify speech and sustained behavior; [WSL-only evidence](../../../e2e_recovery_20260923/README.md). | +| PC HX370 + RTX 5090 Laptop / Windows | MiniCPM-o 4.5 | SCOPED_E2E | The verified checkpoint completed native Windows three-stage BF16 text-to-text+speech requests with 5 GiB thinker host offload and explicit 2,048/512-token limits. Text and all 32 thinker token IDs matched WSL CUDA; a 5.2 s WAV was nonzero. After a 300 s default startup timeout on the first attempt, a 900/600 s limit allowed a functional pass. A separate 1-warmup/20-measured serial run had request wall p50 18.38 s/p95 18.73 s; sampled host available RAM fell to 0.78 GB and pagefile use reached 11.17 GB. Speech meaning remains unverified. | Check speech intelligibility/alignment, other input modalities, concurrency, interruption, loading-peak admission and sustained thermal/power behavior before broader qualification; [native evidence](../../../e2e_expansion_20260923/README.md). | | PC HX370 + RTX 5090 Laptop / Windows | InternVLA-A1 | SYNTHETIC_POLICY_PASS | The Place_Markpen checkpoint strict-loaded from a UNC path and produced finite `[1, 50, 32]` actions on synthetic zero observations/noise. Policy/output CUDA placement was checked; one native forward took 1.12 s, with 6.68 GB peak allocated. Relative L2 difference from WSL CUDA was 0.83% (no task tolerance). | Validate real observations/reference actions, units/timestamps, memory and repeated latency before task qualification; [native evidence](../../../e2e_expansion_20260923/README.md). | | PC HX370 + Radeon 890M / Windows worker | Spark-X2.5 | NOT_E2E_PROFILEABLE | No placement- and quality-verified whole-model graph bundle/stateful adapter for this model on this AMD route. Small backend graphs do not establish model support. | Supply and validate the missing matching artifact/backend, then run the complete specified workload. | | PC HX370 + Radeon 890M / Windows worker | Qwen3-TTS 0.6B CustomVoice | NOT_E2E_PROFILEABLE | No placement- and quality-verified whole-model graph bundle/stateful adapter for this model on this AMD route. Small backend graphs do not establish model support. | Supply and validate the missing matching artifact/backend, then run the complete specified workload. | diff --git a/docs/design/omni_edge_e2e_roadmap.md b/docs/design/omni_edge_e2e_roadmap.md index b2a36c288..ae4a3b85b 100644 --- a/docs/design/omni_edge_e2e_roadmap.md +++ b/docs/design/omni_edge_e2e_roadmap.md @@ -18,9 +18,14 @@ adds constrained three-stage MiniCPM-o text-to-speech requests and a CPU-only InternVLA synthetic policy forward. A subsequent 20-request serial MiniCPM-o profile measured p50 21.86 s/p95 22.97 s request wall time after one warmup, with swap use under the 30.91 GiB WSL limit. It does not qualify speech quality, -concurrency, streaming, loading peak or sustained behavior. Native Windows -InternVLA direct-policy runs separately passed on CPU and RTX 5090 Laptop with -synthetic inputs; AMD and mobile cells do not inherit these passes. +concurrency, streaming, loading peak or sustained behavior. A separate native +Windows RTX 5090 Laptop MiniCPM-o three-stage text-to-speech request passed +with explicit 900/600 s startup limits after the default 300 s overall timeout +had expired. A later native Windows 20-request serial run measured p50 18.38 s +and p95 18.73 s, but sampled host available RAM fell to 0.78 GB and pagefile +use reached 11.17 GB. Native Windows InternVLA direct-policy runs separately +passed on CPU and RTX 5090 Laptop with synthetic inputs; AMD and mobile cells +do not inherit these passes. ## Architecture and prerequisites @@ -77,7 +82,7 @@ capability and lifecycle implementation; a state-handle type alone is insufficie | M1 | S25 Spark | Device-local Omni-compatible controller; embedding, prefill, continuous decode, ring/full KV, head and sampler; resident state | Reference checks, at least 128 output tokens, 512-window/1024-bucket transitions, cancellation, resident memory and sustained profile | | M2 | Qwen3-TTS | Resolve desktop playback and shutdown findings and CPU compatibility; then mobile talker/predictor plus GPU vocoder | Complete PCM and tail, history/chunk correctness, interruption/recovery, quality checks, no post-startup underruns and RTF below 1 in the declared workload | | M3 | AMD stages | Connect compatible real encoders or other useful coarse stages through current Omni workers; start from the existing 890M vision evidence | Actual node/device placement, numerical and task quality, complete downstream output, shared-memory and handoff costs; reject unhelpful splits | -| M4a | MiniCPM-o 4.5 | Three-stage desktop text+WAV produced coherent text and nonzero WAV on RTX 5090 Laptop and WSL CPU under separate constrained plans. The CPU plan needed vLLM 0.28/0.29 processor compatibility and used swap; 20 serial CPU requests measured p50 21.86 s/p95 22.97 s. Add encoder and persistent-state reference before mobile artifacts | Speech intelligibility/alignment, CPU loading-peak admission, concurrency, separate text, image and audio-understanding suites, then combined streaming and interruption | +| M4a | MiniCPM-o 4.5 | Three-stage desktop text+WAV produced coherent text and nonzero WAV on RTX 5090 Laptop under WSL and native Windows, and WSL CPU, using separate constrained plans. The CPU plan needed vLLM 0.28/0.29 processor compatibility and used swap; 20 serial CPU requests measured p50 21.86 s/p95 22.97 s. Native Windows needed longer startup limits; 20 serial requests measured p50 18.38 s/p95 18.73 s with host RAM/pagefile pressure. Add encoder and persistent-state reference before mobile artifacts | Speech intelligibility/alignment, loading-peak admission, concurrency, separate text, image and audio-understanding suites, then combined streaming and interruption | | M4b | InternVLA-A1 | Real weights, observation preprocessing, shared prefix state, iterative action head and versioned action metadata; strict-load synthetic policy forwards now pass on WSL and native Windows, each on CPU and RTX 5090 Laptop | Reference action agreement on real observations, units/order/timestamps, observation age, stale-input handling and application-specific deadline reporting | | Independent | Qwen3.8-27B | Public Omni pipeline binding; text, then image/video and longer contexts; same-model CPU/iGPU artifact and explicit offload evaluation | Modality-specific quality, actual loading/runtime memory and measured performance; each precision/context receives its own qualification | diff --git a/examples/offline_inference/minicpmo/end2end.py b/examples/offline_inference/minicpmo/end2end.py index 3c1d9dd87..578590436 100644 --- a/examples/offline_inference/minicpmo/end2end.py +++ b/examples/offline_inference/minicpmo/end2end.py @@ -402,8 +402,8 @@ def parse_args(): parser.add_argument( "--init-timeout", type=int, - default=300, - help="Timeout for initializing stages in seconds (default: 300)", + default=600, + help="Timeout for initializing stages in seconds (default: 600)", ) parser.add_argument( "--shm-threshold-bytes",