From ce1d8c770c4d193e4f581021946cfec247c6973f Mon Sep 17 00:00:00 2001 From: Rusfort Date: Wed, 14 May 2025 16:46:09 +0200 Subject: [PATCH 1/3] Debugsession N1 --- .roomodes | 3 +++ gui/delegates.py | 13 ++++++++----- gui/preset_editor_widget.py | 16 +++++++++------- gui/unified_view_model.py | 7 +++++++ main.py | 12 +++++++++--- monitor.py | 20 ++++++++++++++------ 6 files changed, 50 insertions(+), 21 deletions(-) create mode 100644 .roomodes diff --git a/.roomodes b/.roomodes new file mode 100644 index 0000000..1f2c591 --- /dev/null +++ b/.roomodes @@ -0,0 +1,3 @@ +{ + "customModes": [] +} \ No newline at end of file diff --git a/gui/delegates.py b/gui/delegates.py index d40765d..a992280 100644 --- a/gui/delegates.py +++ b/gui/delegates.py @@ -126,12 +126,15 @@ class SupplierSearchDelegate(QStyledItemDelegate): """Loads the list of known suppliers from the JSON config file.""" try: with open(SUPPLIERS_CONFIG_PATH, 'r') as f: - suppliers = json.load(f) - if isinstance(suppliers, list): + suppliers_data = json.load(f) # Renamed variable for clarity + if isinstance(suppliers_data, list): # Ensure all items are strings - return sorted([str(s) for s in suppliers if isinstance(s, str)]) - else: - log.warning(f"'{SUPPLIERS_CONFIG_PATH}' does not contain a valid list. Starting fresh.") + return sorted([str(s) for s in suppliers_data if isinstance(s, str)]) + elif isinstance(suppliers_data, dict): # ADDED: Handle dictionary case + # If it's a dictionary, extract keys as supplier names + return sorted([str(key) for key in suppliers_data.keys() if isinstance(key, str)]) + else: # MODIFIED: Updated warning message + log.warning(f"'{SUPPLIERS_CONFIG_PATH}' does not contain a valid list or dictionary of suppliers. Starting fresh.") return [] except FileNotFoundError: log.info(f"'{SUPPLIERS_CONFIG_PATH}' not found. Starting with an empty supplier list.") diff --git a/gui/preset_editor_widget.py b/gui/preset_editor_widget.py index 25b9629..01ce841 100644 --- a/gui/preset_editor_widget.py +++ b/gui/preset_editor_widget.py @@ -20,7 +20,8 @@ script_dir = Path(__file__).parent project_root = script_dir.parent PRESETS_DIR = project_root / "Presets" TEMPLATE_PATH = PRESETS_DIR / "_template.json" -APP_SETTINGS_PATH_LOCAL = project_root / "config" / "app_settings.json" +APP_SETTINGS_PATH_LOCAL = project_root / "config" / "app_settings.json" # Retain for other settings if used elsewhere +FILE_TYPE_DEFINITIONS_PATH = project_root / "config" / "file_type_definitions.json" log = logging.getLogger(__name__) @@ -63,18 +64,19 @@ class PresetEditorWidget(QWidget): """Loads FILE_TYPE_DEFINITIONS keys from app_settings.json.""" keys = [] try: - if APP_SETTINGS_PATH_LOCAL.is_file(): - with open(APP_SETTINGS_PATH_LOCAL, 'r', encoding='utf-8') as f: + if FILE_TYPE_DEFINITIONS_PATH.is_file(): + with open(FILE_TYPE_DEFINITIONS_PATH, 'r', encoding='utf-8') as f: settings = json.load(f) + # The FILE_TYPE_DEFINITIONS key is at the root of file_type_definitions.json ftd = settings.get("FILE_TYPE_DEFINITIONS", {}) keys = list(ftd.keys()) - log.debug(f"Successfully loaded {len(keys)} FILE_TYPE_DEFINITIONS keys.") + log.debug(f"Successfully loaded {len(keys)} FILE_TYPE_DEFINITIONS keys from {FILE_TYPE_DEFINITIONS_PATH}.") else: - log.error(f"app_settings.json not found at {APP_SETTINGS_PATH_LOCAL} for PresetEditorWidget.") + log.error(f"file_type_definitions.json not found at {FILE_TYPE_DEFINITIONS_PATH} for PresetEditorWidget.") except json.JSONDecodeError as e: - log.error(f"Failed to parse app_settings.json in PresetEditorWidget: {e}") + log.error(f"Failed to parse file_type_definitions.json in PresetEditorWidget: {e}") except Exception as e: - log.error(f"Error loading FILE_TYPE_DEFINITIONS keys in PresetEditorWidget: {e}") + log.error(f"Error loading FILE_TYPE_DEFINITIONS keys from {FILE_TYPE_DEFINITIONS_PATH} in PresetEditorWidget: {e}") return keys def _init_ui(self): diff --git a/gui/unified_view_model.py b/gui/unified_view_model.py index 1ebd2bb..64e58ef 100644 --- a/gui/unified_view_model.py +++ b/gui/unified_view_model.py @@ -552,6 +552,13 @@ class UnifiedViewModel(QAbstractItemModel): supplier_col_index = self.createIndex(existing_source_row, self.COL_SUPPLIER, existing_source_rule) self.dataChanged.emit(supplier_col_index, supplier_col_index, [Qt.DisplayRole, Qt.EditRole]) + # Always update the preset_name from the new_source_rule, as this reflects the latest prediction context + if existing_source_rule.preset_name != new_source_rule.preset_name: + log.debug(f" Updating preset_name for SourceRule '{source_path}' from '{existing_source_rule.preset_name}' to '{new_source_rule.preset_name}'") + existing_source_rule.preset_name = new_source_rule.preset_name + # Note: preset_name is not directly displayed in the view, so no dataChanged needed for a specific column, + # but if it influenced other display elements, dataChanged would be emitted for those. + # --- Merge AssetRules --- existing_assets_dict = {asset.asset_name: asset for asset in existing_source_rule.assets} diff --git a/main.py b/main.py index 2e04852..7b859d8 100644 --- a/main.py +++ b/main.py @@ -4,6 +4,7 @@ import time import os import logging from pathlib import Path +import re # Added for checking incrementing token from concurrent.futures import ProcessPoolExecutor, as_completed import subprocess import shutil @@ -238,9 +239,14 @@ class ProcessingTask(QRunnable): # output_dir should already be a Path object pattern = getattr(config, 'output_directory_pattern', None) if pattern: - log.debug(f"Calculating next incrementing value for dir: {output_dir} using pattern: {pattern}") - next_increment_str = get_next_incrementing_value(output_dir, pattern) - log.info(f"Calculated next incrementing value for {output_dir}: {next_increment_str}") + # Only call get_next_incrementing_value if the pattern contains an incrementing token + if re.search(r"\[IncrementingValue\]|#+", pattern): + log.debug(f"Incrementing token found in pattern '{pattern}'. Calculating next value for dir: {output_dir}") + next_increment_str = get_next_incrementing_value(output_dir, pattern) + log.info(f"Calculated next incrementing value for {output_dir}: {next_increment_str}") + else: + log.debug(f"No incrementing token found in pattern '{pattern}'. Skipping increment calculation.") + next_increment_str = None # Or a default like "00" if downstream expects a string, but None is cleaner if handled. else: log.warning(f"Cannot calculate incrementing value: 'output_directory_pattern' not found in configuration for preset {config.preset_name}") except Exception as e: diff --git a/monitor.py b/monitor.py index b550cd0..8c0beb3 100644 --- a/monitor.py +++ b/monitor.py @@ -195,17 +195,25 @@ def _process_archive_task(archive_path: Path, output_dir: Path, processed_dir: P # Assuming config object has 'output_directory_pattern' attribute/key pattern = getattr(config, 'output_directory_pattern', None) # Use getattr for safety if pattern: - log.debug(f"[Task:{archive_path.name}] Calculating next incrementing value for dir: {output_dir} using pattern: {pattern}") - next_increment_str = get_next_incrementing_value(output_dir, pattern) - log.info(f"[Task:{archive_path.name}] Calculated next incrementing value: {next_increment_str}") + if re.search(r"\[IncrementingValue\]|#+", pattern): + log.debug(f"[Task:{archive_path.name}] Incrementing token found in pattern '{pattern}'. Calculating next value for dir: {output_dir}") + next_increment_str = get_next_incrementing_value(output_dir, pattern) + log.info(f"[Task:{archive_path.name}] Calculated next incrementing value: {next_increment_str}") + else: + log.debug(f"[Task:{archive_path.name}] No incrementing token found in pattern '{pattern}'. Skipping increment calculation.") + next_increment_str = None else: # Check if config is a dict as fallback (depends on load_config implementation) if isinstance(config, dict): pattern = config.get('output_directory_pattern') if pattern: - log.debug(f"[Task:{archive_path.name}] Calculating next incrementing value for dir: {output_dir} using pattern (from dict): {pattern}") - next_increment_str = get_next_incrementing_value(output_dir, pattern) - log.info(f"[Task:{archive_path.name}] Calculated next incrementing value (from dict): {next_increment_str}") + if re.search(r"\[IncrementingValue\]|#+", pattern): + log.debug(f"[Task:{archive_path.name}] Incrementing token found in pattern '{pattern}' (from dict). Calculating next value for dir: {output_dir}") + next_increment_str = get_next_incrementing_value(output_dir, pattern) + log.info(f"[Task:{archive_path.name}] Calculated next incrementing value (from dict): {next_increment_str}") + else: + log.debug(f"[Task:{archive_path.name}] No incrementing token found in pattern '{pattern}' (from dict). Skipping increment calculation.") + next_increment_str = None else: log.warning(f"[Task:{archive_path.name}] Cannot calculate incrementing value: 'output_directory_pattern' not found in configuration dictionary.") else: -- 2.47.2 From 85e94a3d0de223e0330525fee5bf37d84403ca4f Mon Sep 17 00:00:00 2001 From: Rusfort Date: Wed, 14 May 2025 18:07:28 +0200 Subject: [PATCH 2/3] Debugsession N2 - New fallback for LOWRES images --- Documentation/01_User_Guide/02_Features.md | 1 + .../04_Configuration_and_Presets.md | 12 + .../01_User_Guide/09_Output_Structure.md | 1 + .../04_Configuration_System_and_Presets.md | 3 + .../05_Processing_Pipeline.md | 41 ++- autotest.py | 8 +- config/app_settings.json | 5 +- config/file_type_definitions.json | 2 +- configuration.py | 21 +- processing/pipeline/asset_context.py | 6 +- processing/pipeline/orchestrator.py | 331 +++++++++++------- processing/pipeline/stages/initial_scaling.py | 90 +++-- .../stages/metadata_initialization.py | 13 +- .../stages/prepare_processing_items.py | 197 ++++++++--- .../pipeline/stages/regular_map_processor.py | 13 +- processing/pipeline/stages/save_variants.py | 15 +- processing/utils/image_processing_utils.py | 10 + rule_structure.py | 46 ++- 18 files changed, 575 insertions(+), 240 deletions(-) diff --git a/Documentation/01_User_Guide/02_Features.md b/Documentation/01_User_Guide/02_Features.md index 37124e9..34a54cc 100644 --- a/Documentation/01_User_Guide/02_Features.md +++ b/Documentation/01_User_Guide/02_Features.md @@ -16,6 +16,7 @@ This document outlines the key features of the Asset Processor Tool. * Saves maps in appropriate formats (JPG, PNG, EXR) based on complex rules involving map type (`FORCE_LOSSLESS_MAP_TYPES`), resolution (`RESOLUTION_THRESHOLD_FOR_JPG`), bit depth, and source format. * Calculates basic image statistics (Min/Max/Mean) for a reference resolution. * Calculates and stores the relative aspect ratio change string in metadata (e.g., `EVEN`, `X150`, `Y125`). + * **Low-Resolution Fallback:** If enabled (`ENABLE_LOW_RESOLUTION_FALLBACK`), automatically saves an additional "LOWRES" variant of source images if their largest dimension is below a configurable threshold (`LOW_RESOLUTION_THRESHOLD`). This "LOWRES" variant uses the original image dimensions and is saved in addition to any standard resolution outputs. * **Channel Merging:** Combines channels from different maps into packed textures (e.g., NRMRGH) based on preset rules (`MAP_MERGE_RULES` in `config.py`). * **Metadata Generation:** Creates a `metadata.json` file for each asset containing details about maps, category, archetype, aspect ratio change, processing settings, etc. * **Output Organization:** Creates a clean, structured output directory (`///`). diff --git a/Documentation/01_User_Guide/04_Configuration_and_Presets.md b/Documentation/01_User_Guide/04_Configuration_and_Presets.md index 0748067..20a4e2e 100644 --- a/Documentation/01_User_Guide/04_Configuration_and_Presets.md +++ b/Documentation/01_User_Guide/04_Configuration_and_Presets.md @@ -13,6 +13,18 @@ The `app_settings.json` file is structured into several key sections, including: * `ASSET_TYPE_DEFINITIONS`: Defines known asset types (like Surface, Model, Decal) and their properties. * `MAP_MERGE_RULES`: Defines how multiple input maps can be merged into a single output map (e.g., combining Normal and Roughness into one). +### Low-Resolution Fallback Settings + +These settings control the generation of low-resolution "fallback" variants for source images: + +* `ENABLE_LOW_RESOLUTION_FALLBACK` (boolean, default: `true`): + * If `true`, the tool will generate an additional "LOWRES" variant for source images whose largest dimension is smaller than the `LOW_RESOLUTION_THRESHOLD`. + * This "LOWRES" variant uses the original dimensions of the source image and is saved in addition to any other standard resolution outputs (e.g., 1K, PREVIEW). + * If `false`, this feature is disabled. +* `LOW_RESOLUTION_THRESHOLD` (integer, default: `512`): + * Defines the pixel dimension (for the largest side of an image) below which the "LOWRES" fallback variant will be generated (if enabled). + * For example, if set to `512`, any source image smaller than 512x512 (e.g., 256x512, 128x128) will have a "LOWRES" variant created. + ### LLM Predictor Settings For users who wish to utilize the experimental LLM Predictor feature, the following settings are available in `config/llm_settings.json`: diff --git a/Documentation/01_User_Guide/09_Output_Structure.md b/Documentation/01_User_Guide/09_Output_Structure.md index a45a4b1..c64a141 100644 --- a/Documentation/01_User_Guide/09_Output_Structure.md +++ b/Documentation/01_User_Guide/09_Output_Structure.md @@ -58,6 +58,7 @@ The `` (the root folder where processing output starts) i Each asset directory contains the following: * Processed texture maps (e.g., `WoodFloor_Albedo_4k.png`, `MetalPanel_Normal_2k.exr`). The exact filenames depend on the `OUTPUT_FILENAME_PATTERN`. These are the resized, format-converted, and bit-depth adjusted texture files. + * **LOWRES Variants:** If the "Low-Resolution Fallback" feature is enabled and a source image's dimensions are below the configured threshold, an additional variant with "LOWRES" as its resolution token (e.g., `MyTexture_COL_LOWRES.png`) will be saved. This variant uses the original dimensions of the source image. * Merged texture maps (e.g., `WoodFloor_Combined_4k.png`). The exact filenames depend on the `OUTPUT_FILENAME_PATTERN`. These are maps created by combining channels from different source maps based on the configured merge rules. * Model files (if present in the source asset). * `metadata.json`: A JSON file containing detailed information about the asset and the processing that was performed. This includes details about the maps (resolutions, formats, bit depths, and for roughness maps, a `derived_from_gloss_filename: true` flag if it was inverted from an original gloss map), merged map details, calculated image statistics, aspect ratio change information, asset category and archetype, the source preset used, and a list of ignored source files. This file is intended for use by downstream tools or scripts (like the Blender integration scripts). diff --git a/Documentation/02_Developer_Guide/04_Configuration_System_and_Presets.md b/Documentation/02_Developer_Guide/04_Configuration_System_and_Presets.md index 1c1b4f8..7636d7e 100644 --- a/Documentation/02_Developer_Guide/04_Configuration_System_and_Presets.md +++ b/Documentation/02_Developer_Guide/04_Configuration_System_and_Presets.md @@ -12,6 +12,9 @@ The tool's configuration is loaded from several JSON files, providing a layered 1. **Application Settings (`config/app_settings.json`):** This JSON file defines the core global default settings, constants, and rules that apply generally across different asset sources (e.g., the global `OUTPUT_DIRECTORY_PATTERN` and `OUTPUT_FILENAME_PATTERN`, standard image resolutions, map merge rules, output format rules, Blender paths, temporary directory prefix, initial scaling mode, merge dimension mismatch strategy). See the [User Guide: Output Structure](../01_User_Guide/09_Output_Structure.md#available-tokens) for a list of available tokens for these patterns. * *Note:* `ASSET_TYPE_DEFINITIONS` and `FILE_TYPE_DEFINITIONS` are no longer stored here; they have been moved to dedicated files. + * It also includes settings for new features like the "Low-Resolution Fallback": + * `ENABLE_LOW_RESOLUTION_FALLBACK` (boolean): Enables or disables the generation of "LOWRES" variants for small source images. Defaults to `true`. + * `LOW_RESOLUTION_THRESHOLD` (integer): The pixel dimension threshold (largest side) below which a "LOWRES" variant is created if the feature is enabled. Defaults to `512`. 2. **User Settings (`config/user_settings.json`):** This optional JSON file allows users to override specific settings defined in `config/app_settings.json`. If this file exists, its values for corresponding keys will take precedence over the base application settings. This file is primarily managed through the GUI's Application Preferences Editor. diff --git a/Documentation/02_Developer_Guide/05_Processing_Pipeline.md b/Documentation/02_Developer_Guide/05_Processing_Pipeline.md index 4dead92..b5a77b1 100644 --- a/Documentation/02_Developer_Guide/05_Processing_Pipeline.md +++ b/Documentation/02_Developer_Guide/05_Processing_Pipeline.md @@ -50,27 +50,44 @@ These stages are executed sequentially once for each asset before the core item ### Core Item Processing Loop -The [`PipelineOrchestrator`](processing/pipeline/orchestrator.py:36) iterates through the `context.processing_items` list (populated by the [`PrepareProcessingItemsStage`](processing/pipeline/stages/prepare_processing_items.py:10)). For each item (either a [`FileRule`](rule_structure.py:5) for a regular map or a [`MergeTaskDefinition`](processing/pipeline/asset_context.py:16) for a merged map), the following stages are executed sequentially: +The [`PipelineOrchestrator`](processing/pipeline/orchestrator.py:36) iterates through the `context.processing_items` list (populated by the [`PrepareProcessingItemsStage`](processing/pipeline/stages/prepare_processing_items.py:10)). Each `item` in this list is now either a [`ProcessingItem`](rule_structure.py:0) (representing a specific variant of a source map, e.g., Color at 1K, or Color at LOWRES) or a [`MergeTaskDefinition`](processing/pipeline/asset_context.py:16). 1. **[`PrepareProcessingItemsStage`](processing/pipeline/stages/prepare_processing_items.py:10)** (`processing/pipeline/stages/prepare_processing_items.py`): - * **Responsibility**: (Executed once before the loop) Creates the `context.processing_items` list by combining [`FileRule`](rule_structure.py:5)s from `context.files_to_process` and [`MergeTaskDefinition`](processing/pipeline/asset_context.py:16)s derived from the global `map_merge_rules` configuration. It correctly accesses `map_merge_rules` from `context.config_obj` and validates each merge rule for the presence of `output_map_type` and a dictionary for `inputs`. Initializes `context.intermediate_results`. - * **Context Interaction**: Reads from `context.files_to_process` and `context.config_obj` (accessing `map_merge_rules`). Populates `context.processing_items` and initializes `context.intermediate_results`. + * **Responsibility**: (Executed once before the loop) This stage is now responsible for "exploding" each relevant [`FileRule`](rule_structure.py:5) into one or more [`ProcessingItem`](rule_structure.py:0) objects. + * For each [`FileRule`](rule_structure.py:5) that represents an image map: + * It loads the source image data and determines its original dimensions and bit depth. + * It creates standard [`ProcessingItem`](rule_structure.py:0)s for each required output resolution (e.g., "1K", "PREVIEW"), populating them with a copy of the source image data and the respective `resolution_key`. + * If the "Low-Resolution Fallback" feature is enabled (`ENABLE_LOW_RESOLUTION_FALLBACK` in config) and the source image's largest dimension is below `LOW_RESOLUTION_THRESHOLD`, it creates an additional [`ProcessingItem`](rule_structure.py:0) with `resolution_key="LOWRES"`, using the original image data and dimensions. + * It also adds [`MergeTaskDefinition`](processing/pipeline/asset_context.py:16)s derived from global `map_merge_rules`. + * **Context Interaction**: Reads `context.files_to_process` and `context.config_obj`. Populates `context.processing_items` with a list of [`ProcessingItem`](rule_structure.py:0) and [`MergeTaskDefinition`](processing/pipeline/asset_context.py:16) objects. Initializes `context.intermediate_results`. -2. **[`RegularMapProcessorStage`](processing/pipeline/stages/regular_map_processor.py:18)** (`processing/pipeline/stages/regular_map_processor.py`): - * **Responsibility**: (Executed per [`FileRule`](rule_structure.py:5) item) Checks if the `FileRule.item_type` starts with "MAP_". If not, the item is skipped. Otherwise, it loads the image data for the file, determines its potentially suffixed internal map type (e.g., "MAP_COL-1"), applies in-memory transformations (Gloss-to-Rough, Normal Green Invert) using the shared utility function [`apply_common_map_transformations`](processing/utils/image_processing_utils.py), and returns the processed image data and details in a [`ProcessedRegularMapData`](processing/pipeline/asset_context.py:23) object. The `internal_map_type` in the output reflects any transformations (e.g., "MAP_GLOSS" becomes "MAP_ROUGH"). - * **Context Interaction**: Reads from the input [`FileRule`](rule_structure.py:5) (checking `item_type`) and [`Configuration`](configuration.py:68). Returns a [`ProcessedRegularMapData`](processing/pipeline/asset_context.py:23) object which is stored in `context.intermediate_results`. +For each `item` in `context.processing_items`: + +2. **Transformations (Implicit or via a dedicated stage - formerly `RegularMapProcessorStage` logic):** + * **Responsibility**: If the `item` is a [`ProcessingItem`](rule_structure.py:0), its `image_data` (loaded by `PrepareProcessingItemsStage`) may need transformations (Gloss-to-Rough, Normal Green Invert). This logic, previously in `RegularMapProcessorStage`, might be integrated into `PrepareProcessingItemsStage` before `ProcessingItem` creation, or handled by a new dedicated transformation stage that operates on `ProcessingItem.image_data`. The `item.map_type_identifier` would be updated if a transformation like Gloss-to-Rough occurs. + * **Context Interaction**: Modifies `item.image_data` and `item.map_type_identifier` within the [`ProcessingItem`](rule_structure.py:0) object. 3. **[`MergedTaskProcessorStage`](processing/pipeline/stages/merged_task_processor.py:68)** (`processing/pipeline/stages/merged_task_processor.py`): - * **Responsibility**: (Executed per [`MergeTaskDefinition`](processing/pipeline/asset_context.py:16) item) Validates that all input map types specified in the merge rule start with "MAP_". If not, the task is failed. It dynamically loads input images by looking up the required input map types (e.g., "MAP_NRM") in `context.processed_maps_details` and using the temporary file paths from their `saved_files_info`. It applies in-memory transformations to inputs using [`apply_common_map_transformations`](processing/utils/image_processing_utils.py), handles dimension mismatches (with fallback creation if configured and `source_dimensions` are available), performs the channel merging operation, and returns the merged image data and details in a [`ProcessedMergedMapData`](processing/pipeline/asset_context.py:35) object. The `output_map_type` of the merged map must also be "MAP_" prefixed in the configuration. - * **Context Interaction**: Reads from the input [`MergeTaskDefinition`](processing/pipeline/asset_context.py:16) (checking input map types), `context.workspace_path`, `context.processed_maps_details` (for input image data), and [`Configuration`](configuration.py:68). Returns a [`ProcessedMergedMapData`](processing/pipeline/asset_context.py:35) object which is stored in `context.intermediate_results`. + * **Responsibility**: (Executed if `item` is a [`MergeTaskDefinition`](processing/pipeline/asset_context.py:16)) Same as before: validates inputs, loads source map data (likely from `ProcessingItem`s in `context.processing_items` or a cache populated from them), applies transformations, merges channels, and returns [`ProcessedMergedMapData`](processing/pipeline/asset_context.py:35). + * **Context Interaction**: Reads [`MergeTaskDefinition`](processing/pipeline/asset_context.py:16), potentially `context.processing_items` (or a cache derived from it) for input image data. Returns [`ProcessedMergedMapData`](processing/pipeline/asset_context.py:35). 4. **[`InitialScalingStage`](processing/pipeline/stages/initial_scaling.py:14)** (`processing/pipeline/stages/initial_scaling.py`): - * **Responsibility**: (Executed per item) Applies initial scaling (e.g., Power-of-Two downscaling) to the image data from the previous processing stage based on the `initial_scaling_mode` configuration. - * **Context Interaction**: Takes a [`InitialScalingInput`](processing/pipeline/asset_context.py:46) (containing image data and config) and returns an [`InitialScalingOutput`](processing/pipeline/asset_context.py:54) object, which updates the item's entry in `context.intermediate_results`. + * **Responsibility**: (Executed per item) + * If `item` is a [`ProcessingItem`](rule_structure.py:0): Takes `item.image_data`, `item.current_dimensions`, and `item.resolution_key` as input. If `item.resolution_key` is "LOWRES", POT scaling is skipped. Otherwise, applies POT scaling if configured. + * If `item` is from a `MergeTaskDefinition` (i.e., `processed_data` from `MergedTaskProcessorStage`): Applies POT scaling as before. + * **Context Interaction**: Takes [`InitialScalingInput`](processing/pipeline/asset_context.py:46) (now including `resolution_key`). Returns [`InitialScalingOutput`](processing/pipeline/asset_context.py:54) (also including `resolution_key`), which updates `context.intermediate_results`. The `current_image_data` and `current_dimensions` for saving are taken from this output. 5. **[`SaveVariantsStage`](processing/pipeline/stages/save_variants.py:15)** (`processing/pipeline/stages/save_variants.py`): - * **Responsibility**: (Executed per item) Takes the final processed image data (potentially scaled) and configuration, and calls a utility to save the image to temporary files in various resolutions and formats as defined by the configuration. - * **Context Interaction**: Takes a [`SaveVariantsInput`](processing/pipeline/asset_context.py:61) object (which includes the "MAP_" prefixed `internal_map_type`). It uses the `get_filename_friendly_map_type` utility to convert this to a "standard type" (e.g., "COL") for output naming. Returns a [`SaveVariantsOutput`](processing/pipeline/asset_context.py:79) object containing details about the saved temporary files. The orchestrator stores these details, including the original "MAP_" prefixed `internal_map_type`, in `context.processed_maps_details` for the item. + * **Responsibility**: (Executed per item) Saves the (potentially scaled) `current_image_data`. + * **Context Interaction**: + * Takes [`SaveVariantsInput`](processing/pipeline/asset_context.py:61). + * `internal_map_type` is set from `item.map_type_identifier` (for `ProcessingItem`) or `processed_data.output_map_type` (for merged). + * `output_filename_pattern_tokens['resolution']` is set to the `resolution_key` obtained from `scaled_data_output.resolution_key` (which originates from `item.resolution_key` for `ProcessingItem`s, or is `None` for merged items that get all standard resolutions). + * `image_resolutions` argument for `SaveVariantsInput`: + * If `resolution_key == "LOWRES"`: Set to `{"LOWRES": width_of_lowres_data}`. + * If `resolution_key` is a standard key (e.g., "1K"): Set to `{resolution_key: configured_dimension}`. + * For merged items (where `resolution_key` from scaling is likely `None`): Set to the full `config.image_resolutions` map to generate all applicable standard sizes. + * Returns [`SaveVariantsOutput`](processing/pipeline/asset_context.py:79). Orchestrator stores details in `context.processed_maps_details`. ### Post-Item Stages diff --git a/autotest.py b/autotest.py index 1782ef2..96f147e 100644 --- a/autotest.py +++ b/autotest.py @@ -96,6 +96,8 @@ class InfoSummaryFilter(logging.Filter): "verify: processingengine.process called", ": effective supplier set to", ": metadata initialized.", + "path", + "\\asset_processor", ": file rules queued for processing", "successfully loaded base application settings", "successfully loaded and merged asset_type_definitions", @@ -108,12 +110,6 @@ class InfoSummaryFilter(logging.Filter): "worker thread: finished processing for rule:", "task finished signal received for", # Autotest step markers (not global summaries) - "step 1: loading zip file:", - "step 2: selecting preset:", - "step 4: retrieving and comparing rules...", - "step 5: starting processing...", - "step 7: checking output path:", - "output path check completed.", ] def filter(self, record): diff --git a/config/app_settings.json b/config/app_settings.json index 1343766..dbba665 100644 --- a/config/app_settings.json +++ b/config/app_settings.json @@ -46,7 +46,10 @@ "TEMP_DIR_PREFIX": "_PROCESS_ASSET_", "INITIAL_SCALING_MODE": "POT_DOWNSCALE", "MERGE_DIMENSION_MISMATCH_STRATEGY": "USE_LARGEST", + "ENABLE_LOW_RESOLUTION_FALLBACK": true, + "LOW_RESOLUTION_THRESHOLD": 512, "general_settings": { - "invert_normal_map_green_channel_globally": false + "invert_normal_map_green_channel_globally": false, + "app_version": "Pre-Alpha" } } \ No newline at end of file diff --git a/config/file_type_definitions.json b/config/file_type_definitions.json index 018a0d0..b8aac76 100644 --- a/config/file_type_definitions.json +++ b/config/file_type_definitions.json @@ -190,7 +190,7 @@ ], "is_grayscale": false, "keybind": "E", - "standard_type": "" + "standard_type": "EXTRA" }, "FILE_IGNORE": { "bit_depth_rule": "", diff --git a/configuration.py b/configuration.py index 6a4bee1..b494d25 100644 --- a/configuration.py +++ b/configuration.py @@ -4,6 +4,7 @@ from pathlib import Path import logging import re import collections.abc +from typing import Optional log = logging.getLogger(__name__) @@ -12,7 +13,7 @@ APP_SETTINGS_PATH = BASE_DIR / "config" / "app_settings.json" LLM_SETTINGS_PATH = BASE_DIR / "config" / "llm_settings.json" ASSET_TYPE_DEFINITIONS_PATH = BASE_DIR / "config" / "asset_type_definitions.json" FILE_TYPE_DEFINITIONS_PATH = BASE_DIR / "config" / "file_type_definitions.json" -USER_SETTINGS_PATH = BASE_DIR / "config" / "user_settings.json" # New path for user settings +USER_SETTINGS_PATH = BASE_DIR / "config" / "user_settings.json" SUPPLIERS_CONFIG_PATH = BASE_DIR / "config" / "suppliers.json" PRESETS_DIR = BASE_DIR / "Presets" @@ -649,6 +650,24 @@ class Configuration: """Returns the LLM request timeout in seconds from LLM settings.""" return self._llm_settings.get('llm_request_timeout', 120) + @property + def app_version(self) -> Optional[str]: + """Returns the application version from general_settings.""" + gs = self._core_settings.get('general_settings') + if isinstance(gs, dict): + return gs.get('app_version') + return None + + @property + def enable_low_resolution_fallback(self) -> bool: + """Gets the setting for enabling low-resolution fallback.""" + return self._core_settings.get('ENABLE_LOW_RESOLUTION_FALLBACK', True) + + @property + def low_resolution_threshold(self) -> int: + """Gets the pixel dimension threshold for low-resolution fallback.""" + return self._core_settings.get('LOW_RESOLUTION_THRESHOLD', 512) + @property def FILE_TYPE_DEFINITIONS(self) -> dict: return self._file_type_definitions diff --git a/processing/pipeline/asset_context.py b/processing/pipeline/asset_context.py index f6363e5..42c3d28 100644 --- a/processing/pipeline/asset_context.py +++ b/processing/pipeline/asset_context.py @@ -1,3 +1,4 @@ +import dataclasses # Added import from dataclasses import dataclass from pathlib import Path from typing import Dict, List, Optional @@ -27,6 +28,7 @@ class ProcessedRegularMapData: original_bit_depth: Optional[int] original_dimensions: Optional[Tuple[int, int]] # (width, height) transformations_applied: List[str] + resolution_key: Optional[str] = None # Added field status: str = "Processed" error_message: Optional[str] = None @@ -45,9 +47,10 @@ class ProcessedMergedMapData: @dataclass class InitialScalingInput: image_data: np.ndarray + initial_scaling_mode: str # Moved before fields with defaults original_dimensions: Optional[Tuple[int, int]] # (width, height) + resolution_key: Optional[str] = None # Added field # Configuration needed - initial_scaling_mode: str # Output for InitialScalingStage @dataclass @@ -55,6 +58,7 @@ class InitialScalingOutput: scaled_image_data: np.ndarray scaling_applied: bool final_dimensions: Tuple[int, int] # (width, height) + resolution_key: Optional[str] = None # Added field # Input for SaveVariantsStage @dataclass diff --git a/processing/pipeline/orchestrator.py b/processing/pipeline/orchestrator.py index 6c8fe7a..2d89408 100644 --- a/processing/pipeline/orchestrator.py +++ b/processing/pipeline/orchestrator.py @@ -8,7 +8,7 @@ from typing import List, Dict, Optional, Any, Union # Added Any, Union import numpy as np # Added numpy from configuration import Configuration -from rule_structure import SourceRule, AssetRule, FileRule # Added FileRule +from rule_structure import SourceRule, AssetRule, FileRule, ProcessingItem # Added ProcessingItem # Import new context classes and stages from .asset_context import ( @@ -200,145 +200,224 @@ class PipelineOrchestrator: current_image_data: Optional[np.ndarray] = None # Track current image data ref try: - # 1. Process (Load/Merge + Transform) - if isinstance(item, FileRule): - if item.item_type == 'EXTRA': - log.debug(f"{item_log_prefix}: Skipping image processing for EXTRA FileRule '{item.file_path}'.") - # Add a basic entry to processed_maps_details to acknowledge it was seen - context.processed_maps_details[item.file_path] = { - "status": "Skipped (EXTRA file)", - "internal_map_type": "EXTRA", - "source_file": str(item.file_path) - } - continue # Skip to the next item - item_key = item.file_path # Use file_path string as key - log.debug(f"{item_log_prefix}: Processing FileRule '{item.file_path}'...") - processed_data = self._regular_processor_stage.execute(context, item) - elif isinstance(item, MergeTaskDefinition): - item_key = item.task_key # Use task_key string as key - log.info(f"{item_log_prefix}: Executing MergedTaskProcessorStage for MergeTask '{item_key}'...") # Log call - processed_data = self._merged_processor_stage.execute(context, item) - # Log status/error from merge processor - if processed_data: - log.info(f"{item_log_prefix}: MergedTaskProcessorStage result - Status: {processed_data.status}, Error: {processed_data.error_message}") - else: - log.warning(f"{item_log_prefix}: MergedTaskProcessorStage returned None for MergeTask '{item_key}'.") - else: - log.warning(f"{item_log_prefix}: Unknown item type '{type(item)}'. Skipping.") - item_key = f"unknown_item_{item_index}" - context.processed_maps_details[item_key] = {"status": "Skipped", "notes": f"Unknown item type {type(item)}"} - asset_had_item_errors = True - continue # Next item + # The 'item' is now expected to be a ProcessingItem or MergeTaskDefinition + + if isinstance(item, ProcessingItem): + item_key = f"{item.source_file_info_ref}_{item.map_type_identifier}_{item.resolution_key}" + item_log_prefix = f"Asset '{asset_name}', ProcItem '{item_key}'" + log.info(f"{item_log_prefix}: Starting processing.") - # Check for processing failure - if not processed_data or processed_data.status != "Processed": - error_msg = processed_data.error_message if processed_data else "Processor returned None" - log.error(f"{item_log_prefix}: Failed during processing stage. Error: {error_msg}") - context.processed_maps_details[item_key] = {"status": "Failed", "notes": f"Processing Error: {error_msg}", "stage": processed_data.__class__.__name__ if processed_data else "UnknownProcessor"} - asset_had_item_errors = True - continue # Next item + # Data for ProcessingItem is already loaded by PrepareProcessingItemsStage + current_image_data = item.image_data + current_dimensions = item.current_dimensions + item_resolution_key = item.resolution_key + + # Transformations (like gloss to rough, normal invert) are assumed to be applied + # by RegularMapProcessorStage if it's still used, or directly in PrepareProcessingItemsStage + # before creating the ProcessingItem, or a new dedicated transformation stage. + # For now, assume item.image_data is ready for scaling/saving. + + # Store initial ProcessingItem data as "processed_data" for consistency if RegularMapProcessor is bypassed + # This is a simplification; a dedicated transformation stage would be cleaner. + # For now, we assume transformations happened before or within PrepareProcessingItemsStage. + # The 'processed_data' variable here is more of a placeholder for what would feed into scaling. + + # Create a simple ProcessedRegularMapData-like structure for logging/details if needed, + # or adapt the final_details population later. + # For now, we'll directly use 'item' fields. - # Store intermediate result & get current image data - context.intermediate_results[item_key] = processed_data - current_image_data = processed_data.processed_image_data if isinstance(processed_data, ProcessedRegularMapData) else processed_data.merged_image_data - current_dimensions = processed_data.original_dimensions if isinstance(processed_data, ProcessedRegularMapData) else processed_data.final_dimensions - - # 2. Scale (Optional) - scaling_mode = getattr(context.config_obj, "INITIAL_SCALING_MODE", "NONE") - if scaling_mode != "NONE" and current_image_data is not None and current_image_data.size > 0: - if isinstance(item, MergeTaskDefinition): # Log scaling call for merge tasks - log.info(f"{item_log_prefix}: Calling InitialScalingStage for MergeTask '{item_key}' (Mode: {scaling_mode})...") - log.debug(f"{item_log_prefix}: Applying initial scaling (Mode: {scaling_mode})...") + # 2. Scale (Optional) + scaling_mode = getattr(context.config_obj, "INITIAL_SCALING_MODE", "NONE") + # Pass the item's resolution_key to InitialScalingInput scale_input = InitialScalingInput( image_data=current_image_data, - original_dimensions=current_dimensions, # Pass original/merged dims - initial_scaling_mode=scaling_mode + original_dimensions=current_dimensions, + initial_scaling_mode=scaling_mode, + resolution_key=item_resolution_key # Pass the key ) + # Add _source_file_path for logging within InitialScalingStage if available + setattr(scale_input, '_source_file_path', item.source_file_info_ref) + + log.debug(f"{item_log_prefix}: Calling InitialScalingStage. Input res_key: {scale_input.resolution_key}") scaled_data_output = self._scaling_stage.execute(scale_input) - # Update intermediate result and current image data reference - context.intermediate_results[item_key] = scaled_data_output # Overwrite previous intermediate - current_image_data = scaled_data_output.scaled_image_data # Use scaled data for saving - log.debug(f"{item_log_prefix}: Scaling applied: {scaled_data_output.scaling_applied}. New Dims: {scaled_data_output.final_dimensions}") - else: - log.debug(f"{item_log_prefix}: Initial scaling skipped (Mode: NONE or empty image).") - # Create dummy output if scaling skipped, using current dims - final_dims = current_dimensions if current_dimensions else (current_image_data.shape[1], current_image_data.shape[0]) if current_image_data is not None else (0,0) - scaled_data_output = InitialScalingOutput(scaled_image_data=current_image_data, scaling_applied=False, final_dimensions=final_dims) + current_image_data = scaled_data_output.scaled_image_data + current_dimensions = scaled_data_output.final_dimensions # Dimensions after scaling + # The resolution_key from item is passed through by InitialScalingOutput + output_resolution_key = scaled_data_output.resolution_key + log.debug(f"{item_log_prefix}: InitialScalingStage output. Scaled: {scaled_data_output.scaling_applied}, New Dims: {current_dimensions}, Output ResKey: {output_resolution_key}") + context.intermediate_results[item_key] = scaled_data_output - # 3. Save Variants - if current_image_data is None or current_image_data.size == 0: - log.warning(f"{item_log_prefix}: Skipping save stage because image data is empty.") - context.processed_maps_details[item_key] = {"status": "Skipped", "notes": "No image data to save", "stage": "SaveVariantsStage"} - # Don't mark as asset error, just skip this item's saving - continue # Next item + # 3. Save Variants + if current_image_data is None or current_image_data.size == 0: + log.warning(f"{item_log_prefix}: Skipping save stage because image data is empty.") + context.processed_maps_details[item_key] = {"status": "Skipped", "notes": "No image data to save", "stage": "SaveVariantsStage"} + continue - if isinstance(item, MergeTaskDefinition): # Log save call for merge tasks - log.info(f"{item_log_prefix}: Calling SaveVariantsStage for MergeTask '{item_key}'...") - log.debug(f"{item_log_prefix}: Saving variants...") - # Prepare input for save stage - internal_map_type = processed_data.final_internal_map_type if isinstance(processed_data, ProcessedRegularMapData) else processed_data.output_map_type - source_bit_depth = [processed_data.original_bit_depth] if isinstance(processed_data, ProcessedRegularMapData) and processed_data.original_bit_depth is not None else processed_data.source_bit_depths if isinstance(processed_data, ProcessedMergedMapData) else [8] # Default bit depth if unknown - - # Construct filename tokens (ensure temp dir is used) - output_filename_tokens = { - 'asset_name': asset_name, - 'output_base_directory': context.engine_temp_dir, # Save variants to temp dir - # Add other tokens from context/config as needed by the pattern - 'supplier': context.effective_supplier or 'UnknownSupplier', - } - - # Log the value being read for the threshold before creating the input object - log.info(f"ORCHESTRATOR_DEBUG: Reading RESOLUTION_THRESHOLD_FOR_JPG from config for SaveVariantsInput: {getattr(context.config_obj, 'RESOLUTION_THRESHOLD_FOR_JPG', None)}") - save_input = SaveVariantsInput( - image_data=current_image_data, # Use potentially scaled data - internal_map_type=internal_map_type, - source_bit_depth_info=source_bit_depth, - output_filename_pattern_tokens=output_filename_tokens, - # Pass config values needed by save stage - image_resolutions=context.config_obj.image_resolutions, - file_type_defs=getattr(context.config_obj, "FILE_TYPE_DEFINITIONS", {}), - output_format_8bit=context.config_obj.get_8bit_output_format(), - output_format_16bit_primary=context.config_obj.get_16bit_output_formats()[0], - output_format_16bit_fallback=context.config_obj.get_16bit_output_formats()[1], - png_compression_level=context.config_obj.png_compression_level, - jpg_quality=context.config_obj.jpg_quality, - output_filename_pattern=context.config_obj.output_filename_pattern, - resolution_threshold_for_jpg=getattr(context.config_obj, "resolution_threshold_for_jpg", None) # Corrected case - ) - saved_data = self._save_stage.execute(save_input) - # Log saved_data for merge tasks - if isinstance(item, MergeTaskDefinition): - log.info(f"{item_log_prefix}: SaveVariantsStage result for MergeTask '{item_key}' - Status: {saved_data.status if saved_data else 'N/A'}, Saved Files: {len(saved_data.saved_files_details) if saved_data else 0}") - - # Check save status and finalize item result - if saved_data and saved_data.status.startswith("Processed"): - item_status = saved_data.status # e.g., "Processed" or "Processed (No Output)" - log.info(f"{item_log_prefix}: Item successfully processed and saved. Status: {item_status}") - # Populate final details for this item - final_details = { - "status": item_status, - "saved_files_info": saved_data.saved_files_details, # List of dicts from save util - "internal_map_type": internal_map_type, - "original_dimensions": processed_data.original_dimensions if isinstance(processed_data, ProcessedRegularMapData) else None, - "final_dimensions": scaled_data_output.final_dimensions if scaled_data_output else current_dimensions, - "transformations": processed_data.transformations_applied if isinstance(processed_data, ProcessedRegularMapData) else processed_data.transformations_applied_to_inputs, - # Add source file if regular map - "source_file": str(processed_data.source_file_path) if isinstance(processed_data, ProcessedRegularMapData) else None, + log.debug(f"{item_log_prefix}: Preparing to save variant with resolution key '{output_resolution_key}'...") + + output_filename_tokens = { + 'asset_name': asset_name, + 'output_base_directory': context.engine_temp_dir, + 'supplier': context.effective_supplier or 'UnknownSupplier', + 'resolution': output_resolution_key # Use the key from the item/scaling stage } - # Log final details addition for merge tasks - if isinstance(item, MergeTaskDefinition): - log.info(f"{item_log_prefix}: Adding final details to context.processed_maps_details for MergeTask '{item_key}'. Details: {final_details}") - context.processed_maps_details[item_key] = final_details + + # Determine image_resolutions argument for save_image_variants + save_specific_resolutions = {} + if output_resolution_key == "LOWRES": + # For LOWRES, the "resolution value" is its actual dimension. + # image_saving_utils needs a dict like {"LOWRES": 64} if current_dim is 64x64 + # Assuming current_dimensions[0] is width. + save_specific_resolutions = {"LOWRES": current_dimensions[0] if current_dimensions else 0} + log.debug(f"{item_log_prefix}: Preparing to save LOWRES variant. Dimensions: {current_dimensions}. Save resolutions arg: {save_specific_resolutions}") + elif output_resolution_key in context.config_obj.image_resolutions: + save_specific_resolutions = {output_resolution_key: context.config_obj.image_resolutions[output_resolution_key]} + else: + log.warning(f"{item_log_prefix}: Resolution key '{output_resolution_key}' not found in config.image_resolutions and not LOWRES. Saving might fail or use full res.") + # Fallback: pass all configured resolutions, image_saving_utils will try to match by size. + # This might not be ideal if the key is truly unknown. + # Or, more strictly, fail here if key is unknown and not LOWRES. + # For now, let image_saving_utils handle it by passing all. + save_specific_resolutions = context.config_obj.image_resolutions + + + save_input = SaveVariantsInput( + image_data=current_image_data, + internal_map_type=item.map_type_identifier, + source_bit_depth_info=[item.bit_depth] if item.bit_depth is not None else [8], # Default to 8 if not set + output_filename_pattern_tokens=output_filename_tokens, + image_resolutions=save_specific_resolutions, # Pass the specific resolution(s) + file_type_defs=getattr(context.config_obj, "FILE_TYPE_DEFINITIONS", {}), + output_format_8bit=context.config_obj.get_8bit_output_format(), + output_format_16bit_primary=context.config_obj.get_16bit_output_formats()[0], + output_format_16bit_fallback=context.config_obj.get_16bit_output_formats()[1], + png_compression_level=context.config_obj.png_compression_level, + jpg_quality=context.config_obj.jpg_quality, + output_filename_pattern=context.config_obj.output_filename_pattern, + resolution_threshold_for_jpg=getattr(context.config_obj, "resolution_threshold_for_jpg", None) + ) + saved_data = self._save_stage.execute(save_input) + + if saved_data and saved_data.status.startswith("Processed"): + item_status = saved_data.status + log.info(f"{item_log_prefix}: Item successfully processed and saved. Status: {item_status}") + context.processed_maps_details[item_key] = { + "status": item_status, + "saved_files_info": saved_data.saved_files_details, + "internal_map_type": item.map_type_identifier, + "resolution_key": output_resolution_key, + "original_dimensions": item.original_dimensions, + "final_dimensions": current_dimensions, # Dimensions after scaling + "source_file": item.source_file_info_ref, + } + else: + error_msg = saved_data.error_message if saved_data else "Save stage returned None" + log.error(f"{item_log_prefix}: Failed during save stage. Error: {error_msg}") + context.processed_maps_details[item_key] = {"status": "Failed", "notes": f"Save Error: {error_msg}", "stage": "SaveVariantsStage"} + asset_had_item_errors = True + item_status = "Failed" + + elif isinstance(item, MergeTaskDefinition): + # --- This part needs similar refactoring for resolution_key if merged outputs can be LOWRES --- + # --- For now, assume merged tasks always produce standard resolutions --- + item_key = item.task_key + item_log_prefix = f"Asset '{asset_name}', MergeTask '{item_key}'" + log.info(f"{item_log_prefix}: Processing MergeTask.") + + # 1. Process Merge Task + processed_data = self._merged_processor_stage.execute(context, item) + if not processed_data or processed_data.status != "Processed": + error_msg = processed_data.error_message if processed_data else "Merge processor returned None" + log.error(f"{item_log_prefix}: Failed during merge processing. Error: {error_msg}") + context.processed_maps_details[item_key] = {"status": "Failed", "notes": f"Merge Error: {error_msg}", "stage": "MergedTaskProcessorStage"} + asset_had_item_errors = True + continue + + context.intermediate_results[item_key] = processed_data + current_image_data = processed_data.merged_image_data + current_dimensions = processed_data.final_dimensions + + # 2. Scale Merged Output (Optional) + # Merged tasks typically don't have a single "resolution_key" like LOWRES from source. + # They produce an image that then gets downscaled to 1K, PREVIEW etc. + # So, resolution_key for InitialScalingInput here would be None or a default. + scaling_mode = getattr(context.config_obj, "INITIAL_SCALING_MODE", "NONE") + scale_input = InitialScalingInput( + image_data=current_image_data, + original_dimensions=current_dimensions, + initial_scaling_mode=scaling_mode, + resolution_key=None # Merged outputs are not "LOWRES" themselves before this scaling + ) + setattr(scale_input, '_source_file_path', f"MergeTask_{item_key}") # For logging + + log.debug(f"{item_log_prefix}: Calling InitialScalingStage for merged data.") + scaled_data_output = self._scaling_stage.execute(scale_input) + current_image_data = scaled_data_output.scaled_image_data + current_dimensions = scaled_data_output.final_dimensions + # Merged items don't have a specific output_resolution_key from source, + # they will be saved to all applicable resolutions from config. + # So scaled_data_output.resolution_key will be None here. + context.intermediate_results[item_key] = scaled_data_output + + # 3. Save Merged Variants + if current_image_data is None or current_image_data.size == 0: + log.warning(f"{item_log_prefix}: Skipping save for merged task, image data is empty.") + context.processed_maps_details[item_key] = {"status": "Skipped", "notes": "No merged image data to save", "stage": "SaveVariantsStage"} + continue + + output_filename_tokens = { + 'asset_name': asset_name, + 'output_base_directory': context.engine_temp_dir, + 'supplier': context.effective_supplier or 'UnknownSupplier', + # 'resolution' token will be filled by image_saving_utils for each variant + } + + # For merged tasks, we usually want to generate all standard resolutions. + # The `resolution_key` from the item itself is not applicable here for the `resolution` token. + # The `image_saving_utils.save_image_variants` will iterate through `context.config_obj.image_resolutions`. + save_input = SaveVariantsInput( + image_data=current_image_data, + internal_map_type=processed_data.output_map_type, + source_bit_depth_info=processed_data.source_bit_depths, + output_filename_pattern_tokens=output_filename_tokens, + image_resolutions=context.config_obj.image_resolutions, # Pass all configured resolutions + file_type_defs=getattr(context.config_obj, "FILE_TYPE_DEFINITIONS", {}), + output_format_8bit=context.config_obj.get_8bit_output_format(), + output_format_16bit_primary=context.config_obj.get_16bit_output_formats()[0], + output_format_16bit_fallback=context.config_obj.get_16bit_output_formats()[1], + png_compression_level=context.config_obj.png_compression_level, + jpg_quality=context.config_obj.jpg_quality, + output_filename_pattern=context.config_obj.output_filename_pattern, + resolution_threshold_for_jpg=getattr(context.config_obj, "resolution_threshold_for_jpg", None) + ) + saved_data = self._save_stage.execute(save_input) + + if saved_data and saved_data.status.startswith("Processed"): + item_status = saved_data.status + log.info(f"{item_log_prefix}: Merged task successfully processed and saved. Status: {item_status}") + context.processed_maps_details[item_key] = { + "status": item_status, + "saved_files_info": saved_data.saved_files_details, + "internal_map_type": processed_data.output_map_type, + "final_dimensions": current_dimensions, + } + else: + error_msg = saved_data.error_message if saved_data else "Save stage for merged task returned None" + log.error(f"{item_log_prefix}: Failed during save stage for merged task. Error: {error_msg}") + context.processed_maps_details[item_key] = {"status": "Failed", "notes": f"Save Error (Merged): {error_msg}", "stage": "SaveVariantsStage"} + asset_had_item_errors = True + item_status = "Failed" else: - error_msg = saved_data.error_message if saved_data else "Save stage returned None" - log.error(f"{item_log_prefix}: Failed during save stage. Error: {error_msg}") - context.processed_maps_details[item_key] = {"status": "Failed", "notes": f"Save Error: {error_msg}", "stage": "SaveVariantsStage"} + log.warning(f"{item_log_prefix}: Unknown item type in loop: {type(item)}. Skipping.") + # Ensure some key exists to prevent KeyError if item_key was not set + unknown_item_key = f"unknown_item_at_index_{item_index}" + context.processed_maps_details[unknown_item_key] = {"status": "Skipped", "notes": f"Unknown item type {type(item)}"} asset_had_item_errors = True - item_status = "Failed" # Ensure item status reflects failure + continue except Exception as e: - log.exception(f"{item_log_prefix}: Unhandled exception during item processing loop: {e}") + log.exception(f"Asset '{asset_name}', Item Loop Index {item_index}: Unhandled exception: {e}") # Ensure details are recorded even on unhandled exception if item_key is not None: context.processed_maps_details[item_key] = {"status": "Failed", "notes": f"Unhandled Loop Error: {e}", "stage": "OrchestratorLoop"} diff --git a/processing/pipeline/stages/initial_scaling.py b/processing/pipeline/stages/initial_scaling.py index 6fc27ab..9d88c5a 100644 --- a/processing/pipeline/stages/initial_scaling.py +++ b/processing/pipeline/stages/initial_scaling.py @@ -1,5 +1,5 @@ import logging -from typing import Tuple +from typing import Tuple, Optional # Added Optional import cv2 # Assuming cv2 is available for interpolation flags import numpy as np @@ -7,77 +7,93 @@ import numpy as np from .base_stage import ProcessingStage # Import necessary context classes and utils from ..asset_context import InitialScalingInput, InitialScalingOutput +# ProcessingItem is no longer created here, so its import can be removed if not used otherwise. +# For now, keep rule_structure import if other elements from it might be needed, +# but ProcessingItem itself is not directly instantiated by this stage anymore. +# from rule_structure import ProcessingItem from ...utils import image_processing_utils as ipu +import numpy as np +import cv2 # Added cv2 for interpolation flags (already used implicitly by ipu.resize_image) log = logging.getLogger(__name__) class InitialScalingStage(ProcessingStage): """ - Applies initial scaling (e.g., Power-of-Two downscaling) to image data - if configured via the InitialScalingInput. + Applies initial Power-of-Two (POT) downscaling to image data if configured + and if the item is not already a 'LOWRES' variant. """ def execute(self, input_data: InitialScalingInput) -> InitialScalingOutput: """ - Applies scaling based on input_data.initial_scaling_mode. + Applies POT scaling based on input_data.initial_scaling_mode, + unless input_data.resolution_key is 'LOWRES'. + Passes through the resolution_key. """ - log.debug(f"Initial Scaling Stage: Mode '{input_data.initial_scaling_mode}'.") + # Safely access source_file_path for logging, if provided by orchestrator via underscore attribute + source_file_path = getattr(input_data, '_source_file_path', "UnknownSourcePath") + log_prefix = f"InitialScalingStage (Source: {source_file_path}, ResKey: {input_data.resolution_key})" + + log.debug(f"{log_prefix}: Mode '{input_data.initial_scaling_mode}'. Received resolution_key: '{input_data.resolution_key}'") image_to_scale = input_data.image_data - original_dims_wh = input_data.original_dimensions + current_dimensions_wh = input_data.original_dimensions # Dimensions of the image_to_scale scaling_mode = input_data.initial_scaling_mode - scaling_applied = False - final_image_data = image_to_scale # Default to original if no scaling happens + + output_resolution_key = input_data.resolution_key # Pass through the resolution key if image_to_scale is None or image_to_scale.size == 0: - log.warning("Initial Scaling Stage: Input image data is None or empty. Skipping.") - # Return original (empty) data and indicate no scaling + log.warning(f"{log_prefix}: Input image data is None or empty. Skipping POT scaling.") return InitialScalingOutput( scaled_image_data=np.array([]), scaling_applied=False, - final_dimensions=(0, 0) + final_dimensions=(0, 0), + resolution_key=output_resolution_key ) - if original_dims_wh is None: - log.warning("Initial Scaling Stage: Original dimensions not provided. Using current image shape.") - h_pre_scale, w_pre_scale = image_to_scale.shape[:2] - original_dims_wh = (w_pre_scale, h_pre_scale) + if not current_dimensions_wh: + log.warning(f"{log_prefix}: Original dimensions not provided for POT scaling. Using current image shape.") + h_pre_pot_scale, w_pre_pot_scale = image_to_scale.shape[:2] else: - w_pre_scale, h_pre_scale = original_dims_wh + w_pre_pot_scale, h_pre_pot_scale = current_dimensions_wh + + final_image_data = image_to_scale # Default to original if no scaling happens + scaling_applied = False + # Skip POT scaling if the item is already a LOWRES variant or scaling mode is NONE + if output_resolution_key == "LOWRES": + log.info(f"{log_prefix}: Item is a 'LOWRES' variant. Skipping POT downscaling.") + elif scaling_mode == "NONE": + log.info(f"{log_prefix}: Mode is NONE. No POT scaling applied.") + elif scaling_mode == "POT_DOWNSCALE": + pot_w = ipu.get_nearest_power_of_two_downscale(w_pre_pot_scale) + pot_h = ipu.get_nearest_power_of_two_downscale(h_pre_pot_scale) - if scaling_mode == "POT_DOWNSCALE": - pot_w = ipu.get_nearest_power_of_two_downscale(w_pre_scale) - pot_h = ipu.get_nearest_power_of_two_downscale(h_pre_scale) - - if (pot_w, pot_h) != (w_pre_scale, h_pre_scale): - log.info(f"Initial Scaling: Applying POT Downscale from ({w_pre_scale},{h_pre_scale}) to ({pot_w},{pot_h}).") - # Use INTER_AREA for downscaling generally + if (pot_w, pot_h) != (w_pre_pot_scale, h_pre_pot_scale): + log.info(f"{log_prefix}: Applying POT Downscale from ({w_pre_pot_scale},{h_pre_pot_scale}) to ({pot_w},{pot_h}).") resized_img = ipu.resize_image(image_to_scale, pot_w, pot_h, interpolation=cv2.INTER_AREA) if resized_img is not None: final_image_data = resized_img scaling_applied = True - log.debug("Initial Scaling: POT Downscale applied successfully.") + log.debug(f"{log_prefix}: POT Downscale applied successfully.") else: - log.warning("Initial Scaling: POT Downscale resize failed. Using original data.") - # final_image_data remains image_to_scale + log.warning(f"{log_prefix}: POT Downscale resize failed. Using pre-POT-scaled data.") else: - log.info("Initial Scaling: POT Downscale - Image already POT or smaller. No scaling needed.") - # final_image_data remains image_to_scale - - elif scaling_mode == "NONE": - log.info("Initial Scaling: Mode is NONE. No scaling applied.") - # final_image_data remains image_to_scale + log.info(f"{log_prefix}: Image already POT or smaller. No POT scaling needed.") else: - log.warning(f"Initial Scaling: Unknown INITIAL_SCALING_MODE '{scaling_mode}'. Defaulting to NONE.") - # final_image_data remains image_to_scale + log.warning(f"{log_prefix}: Unknown INITIAL_SCALING_MODE '{scaling_mode}'. Defaulting to NONE (no scaling).") # Determine final dimensions - final_h, final_w = final_image_data.shape[:2] - final_dims_wh = (final_w, final_h) + if final_image_data is not None and final_image_data.size > 0: + final_h, final_w = final_image_data.shape[:2] + final_dims_wh = (final_w, final_h) + else: + final_dims_wh = (0,0) + if final_image_data is None: # Ensure it's an empty array for consistency if None + final_image_data = np.array([]) return InitialScalingOutput( scaled_image_data=final_image_data, scaling_applied=scaling_applied, - final_dimensions=final_dims_wh + final_dimensions=final_dims_wh, + resolution_key=output_resolution_key # Pass through the resolution key ) \ No newline at end of file diff --git a/processing/pipeline/stages/metadata_initialization.py b/processing/pipeline/stages/metadata_initialization.py index e77ef96..8870253 100644 --- a/processing/pipeline/stages/metadata_initialization.py +++ b/processing/pipeline/stages/metadata_initialization.py @@ -148,12 +148,15 @@ class MetadataInitializationStage(ProcessingStage): context.asset_metadata['processing_start_time'] = datetime.datetime.now().isoformat() context.asset_metadata['status'] = "Pending" - if context.config_obj and hasattr(context.config_obj, 'general_settings') and \ - hasattr(context.config_obj.general_settings, 'app_version'): - context.asset_metadata['version'] = context.config_obj.general_settings.app_version + app_version_value = None + if context.config_obj and hasattr(context.config_obj, 'app_version'): + app_version_value = context.config_obj.app_version + + if app_version_value: + context.asset_metadata['version'] = app_version_value else: - logger.warning("App version not found in config_obj.general_settings. Setting version to 'N/A'.") - context.asset_metadata['version'] = "N/A" # Default or placeholder + logger.warning("App version not found using config_obj.app_version. Setting version to 'N/A'.") + context.asset_metadata['version'] = "N/A" if context.incrementing_value is not None: context.asset_metadata['incrementing_value'] = context.incrementing_value diff --git a/processing/pipeline/stages/prepare_processing_items.py b/processing/pipeline/stages/prepare_processing_items.py index cdfc2ac..9c71cfd 100644 --- a/processing/pipeline/stages/prepare_processing_items.py +++ b/processing/pipeline/stages/prepare_processing_items.py @@ -1,21 +1,69 @@ import logging -from typing import List, Union, Optional +from typing import List, Union, Optional, Tuple, Dict # Added Dict +from pathlib import Path # Added Path from .base_stage import ProcessingStage from ..asset_context import AssetProcessingContext, MergeTaskDefinition -from rule_structure import FileRule # Assuming FileRule is imported correctly +from rule_structure import FileRule, ProcessingItem # Added ProcessingItem +from processing.utils import image_processing_utils as ipu # Added ipu log = logging.getLogger(__name__) class PrepareProcessingItemsStage(ProcessingStage): """ - Identifies and prepares a unified list of items (FileRule, MergeTaskDefinition) - to be processed in subsequent stages. Performs initial validation. + Identifies and prepares a unified list of ProcessingItem and MergeTaskDefinition objects + to be processed in subsequent stages. Performs initial validation and explodes + FileRules into specific ProcessingItems for each required output variant. """ + def _get_target_resolutions(self, source_w: int, source_h: int, config_resolutions: dict, file_rule: FileRule) -> Dict[str, int]: + """ + Determines the target output resolutions for a given source image. + Placeholder logic: Uses all config resolutions smaller than or equal to source, plus PREVIEW if smaller. + Needs to be refined to consider FileRule.resolution_override and actual project requirements. + """ + # For now, very basic logic: + # If FileRule has a resolution_override (e.g., (1024,1024)), that might be the *only* target. + # This needs to be clarified. Assuming override means *only* that size. + if file_rule.resolution_override and isinstance(file_rule.resolution_override, tuple) and len(file_rule.resolution_override) == 2: + # How to get a "key" for an arbitrary override? For now, skip if overridden. + # This part of the design (how overrides interact with standard resolutions) is unclear. + # Let's assume for now that if resolution_override is set, we don't generate standard named resolutions. + # This is likely incorrect for a full implementation. + log.warning(f"FileRule '{file_rule.file_path}' has resolution_override. Standard resolution key generation skipped (needs design refinement).") + return {} + + + target_res = {} + max_source_dim = max(source_w, source_h) + + for key, res_val in config_resolutions.items(): + if key == "PREVIEW": # Always consider PREVIEW if its value is smaller + if res_val < max_source_dim : # Or just always include PREVIEW? For now, if smaller. + target_res[key] = res_val + elif res_val <= max_source_dim: + target_res[key] = res_val + + # Ensure PREVIEW is included if it's defined and smaller than the smallest other target, or if no other targets. + # This logic is still a bit naive. + if "PREVIEW" in config_resolutions and config_resolutions["PREVIEW"] < max_source_dim: + if not target_res or config_resolutions["PREVIEW"] < min(v for k,v in target_res.items() if k != "PREVIEW" and isinstance(v,int)): + target_res["PREVIEW"] = config_resolutions["PREVIEW"] + elif "PREVIEW" in config_resolutions and not target_res : # if only preview is applicable + if config_resolutions["PREVIEW"] <= max_source_dim: + target_res["PREVIEW"] = config_resolutions["PREVIEW"] + + + if not target_res and max_source_dim > 0 : # If no standard res is smaller, but image exists + log.debug(f"No standard resolutions from config are <= source dimension {max_source_dim}. Only LOWRES (if applicable) or PREVIEW (if smaller) might be generated.") + + log.debug(f"Determined target resolutions for source {source_w}x{source_h}: {target_res}") + return target_res + + def execute(self, context: AssetProcessingContext) -> AssetProcessingContext: """ - Populates context.processing_items with FileRule and MergeTaskDefinition objects. + Populates context.processing_items with ProcessingItem and MergeTaskDefinition objects. """ asset_name_for_log = context.asset_rule.asset_name if context.asset_rule else "Unknown Asset" log.info(f"Asset '{asset_name_for_log}': Preparing processing items...") @@ -25,72 +73,135 @@ class PrepareProcessingItemsStage(ProcessingStage): context.processing_items = [] return context - items_to_process: List[Union[FileRule, MergeTaskDefinition]] = [] + # Output list will now be List[Union[ProcessingItem, MergeTaskDefinition]] + items_to_process: List[Union[ProcessingItem, MergeTaskDefinition]] = [] preparation_failed = False + config = context.config_obj - # --- Add regular files --- + # --- Process FileRules into ProcessingItems --- if context.files_to_process: - # Validate source path early for regular files source_path_valid = True if not context.source_rule or not context.source_rule.input_path: - log.error(f"Asset '{asset_name_for_log}': SourceRule or SourceRule.input_path is not set. Cannot process regular files.") + log.error(f"Asset '{asset_name_for_log}': SourceRule or SourceRule.input_path is not set.") source_path_valid = False - preparation_failed = True # Mark as failed if source path is missing + preparation_failed = True context.status_flags['prepare_items_failed_reason'] = "SourceRule.input_path missing" elif not context.workspace_path or not context.workspace_path.is_dir(): - log.error(f"Asset '{asset_name_for_log}': Workspace path '{context.workspace_path}' is not a valid directory. Cannot process regular files.") + log.error(f"Asset '{asset_name_for_log}': Workspace path '{context.workspace_path}' is invalid.") source_path_valid = False - preparation_failed = True # Mark as failed if workspace path is bad + preparation_failed = True context.status_flags['prepare_items_failed_reason'] = "Workspace path invalid" if source_path_valid: for file_rule in context.files_to_process: - # Basic validation for FileRule itself + log_prefix_fr = f"Asset '{asset_name_for_log}', FileRule '{file_rule.file_path}'" if not file_rule.file_path: - log.warning(f"Asset '{asset_name_for_log}': Skipping FileRule with empty file_path.") - continue # Skip this specific rule, but don't fail the whole stage - items_to_process.append(file_rule) - log.debug(f"Asset '{asset_name_for_log}': Added {len(context.files_to_process)} potential FileRule items.") - else: - log.warning(f"Asset '{asset_name_for_log}': Skipping addition of all FileRule items due to invalid source/workspace path.") + log.warning(f"{log_prefix_fr}: Skipping FileRule with empty file_path.") + continue + + item_type = file_rule.item_type_override or file_rule.item_type + if not item_type or item_type == "EXTRA" or not item_type.startswith("MAP_"): + log.debug(f"{log_prefix_fr}: Item type is '{item_type}'. Not creating map ProcessingItems.") + # Optionally, create a different kind of ProcessingItem for EXTRAs if they need pipeline processing + continue + + source_image_path = context.workspace_path / file_rule.file_path + if not source_image_path.is_file(): + log.error(f"{log_prefix_fr}: Source image file not found at '{source_image_path}'. Skipping this FileRule.") + preparation_failed = True # Individual file error can contribute to overall stage failure + context.status_flags.setdefault('prepare_items_file_errors', []).append(str(source_image_path)) + continue + + # Load image data to get dimensions and for LOWRES variant + # This data will be passed to subsequent stages via ProcessingItem. + # Consider caching this load if RegularMapProcessorStage also loads. + # For now, load here as dimensions are needed for LOWRES decision. + log.debug(f"{log_prefix_fr}: Loading image from '{source_image_path}' to determine dimensions and prepare items.") + source_image_data = ipu.load_image(str(source_image_path)) + if source_image_data is None: + log.error(f"{log_prefix_fr}: Failed to load image from '{source_image_path}'. Skipping this FileRule.") + preparation_failed = True + context.status_flags.setdefault('prepare_items_file_errors', []).append(f"Failed to load {source_image_path}") + continue + + orig_h, orig_w = source_image_data.shape[:2] + original_dimensions_wh = (orig_w, orig_h) + source_bit_depth = ipu.get_image_bit_depth(str(source_image_path)) # Get bit depth from file + source_channels = ipu.get_image_channels(source_image_data) - # --- Add merged tasks --- - # --- Add merged tasks from global configuration --- - # merged_image_tasks are expected to be loaded into context.config_obj - # by the Configuration class from app_settings.json. - - merged_tasks_list = getattr(context.config_obj, 'map_merge_rules', None) + # Determine standard resolutions to generate + # This logic needs to be robust and consider file_rule.resolution_override, etc. + # Using a placeholder _get_target_resolutions for now. + target_resolutions = self._get_target_resolutions(orig_w, orig_h, config.image_resolutions, file_rule) + for res_key, _res_val in target_resolutions.items(): + pi = ProcessingItem( + source_file_info_ref=str(source_image_path), # Using full path as ref + map_type_identifier=item_type, + resolution_key=res_key, + image_data=source_image_data.copy(), # Give each PI its own copy + original_dimensions=original_dimensions_wh, + current_dimensions=original_dimensions_wh, + bit_depth=source_bit_depth, + channels=source_channels, + status="Pending" + ) + items_to_process.append(pi) + log.debug(f"{log_prefix_fr}: Created standard ProcessingItem: {pi.map_type_identifier}_{pi.resolution_key}") + + # Create LOWRES variant if applicable + if config.enable_low_resolution_fallback and max(orig_w, orig_h) < config.low_resolution_threshold: + # Check if a LOWRES item for this source_file_info_ref already exists (e.g. if target_resolutions was empty) + # This check is important if _get_target_resolutions might return empty for small images. + # A more robust way is to ensure LOWRES is distinct from standard resolutions. + + # Avoid duplicate LOWRES if _get_target_resolutions somehow already made one (unlikely with current placeholder) + is_lowres_already_added = any(p.resolution_key == "LOWRES" and p.source_file_info_ref == str(source_image_path) for p in items_to_process if isinstance(p, ProcessingItem)) + + if not is_lowres_already_added: + pi_lowres = ProcessingItem( + source_file_info_ref=str(source_image_path), + map_type_identifier=item_type, + resolution_key="LOWRES", + image_data=source_image_data.copy(), # Fresh copy for LOWRES + original_dimensions=original_dimensions_wh, + current_dimensions=original_dimensions_wh, + bit_depth=source_bit_depth, + channels=source_channels, + status="Pending" + ) + items_to_process.append(pi_lowres) + log.info(f"{log_prefix_fr}: Created LOWRES ProcessingItem because {orig_w}x{orig_h} < {config.low_resolution_threshold}px threshold.") + else: + log.debug(f"{log_prefix_fr}: LOWRES item for this source already added by target resolution logic. Skipping duplicate LOWRES creation.") + elif config.enable_low_resolution_fallback: + log.debug(f"{log_prefix_fr}: Image {orig_w}x{orig_h} not below LOWRES threshold {config.low_resolution_threshold}px.") + + + else: # Source path not valid + log.warning(f"Asset '{asset_name_for_log}': Skipping creation of ProcessingItems from FileRules due to invalid source/workspace path.") + + # --- Add MergeTaskDefinitions --- (This part remains largely the same) + merged_tasks_list = getattr(config, 'map_merge_rules', None) if merged_tasks_list and isinstance(merged_tasks_list, list): log.debug(f"Asset '{asset_name_for_log}': Found {len(merged_tasks_list)} merge tasks in global config.") for task_idx, task_data in enumerate(merged_tasks_list): if isinstance(task_data, dict): task_key = f"merged_task_{task_idx}" - # Basic validation for merge task data: requires output_map_type and an inputs dictionary if not task_data.get('output_map_type') or not isinstance(task_data.get('inputs'), dict): - log.warning(f"Asset '{asset_name_for_log}', Task Index {task_idx}: Skipping merge task due to missing 'output_map_type' or valid 'inputs' dictionary. Task data: {task_data}") - continue # Skip this specific task - log.debug(f"Asset '{asset_name_for_log}', Preparing Merge Task Index {task_idx}: Raw task_data: {task_data}") + log.warning(f"Asset '{asset_name_for_log}', Task Index {task_idx}: Skipping merge task due to missing 'output_map_type' or valid 'inputs'. Task data: {task_data}") + continue merge_def = MergeTaskDefinition(task_data=task_data, task_key=task_key) - log.debug(f"Asset '{asset_name_for_log}': Created MergeTaskDefinition object: {merge_def}") - log.info(f"Asset '{asset_name_for_log}': Successfully CREATED MergeTaskDefinition: Key='{merge_def.task_key}', OutputType='{merge_def.task_data.get('output_map_type', 'N/A')}'") items_to_process.append(merge_def) + log.info(f"Asset '{asset_name_for_log}': Added MergeTaskDefinition: Key='{merge_def.task_key}', OutputType='{merge_def.task_data.get('output_map_type', 'N/A')}'") else: - log.warning(f"Asset '{asset_name_for_log}': Item at index {task_idx} in config_obj.merged_image_tasks is not a dictionary. Skipping. Item: {task_data}") - # The log for "Added X potential MergeTaskDefinition items" will be covered by the final log. - elif merged_tasks_list is None: - log.debug(f"Asset '{asset_name_for_log}': 'merged_image_tasks' not found in config_obj. No global merge tasks to add.") - elif not isinstance(merged_tasks_list, list): - log.warning(f"Asset '{asset_name_for_log}': 'merged_image_tasks' in config_obj is not a list. Skipping global merge tasks. Type: {type(merged_tasks_list)}") - else: # Empty list - log.debug(f"Asset '{asset_name_for_log}': 'merged_image_tasks' in config_obj is empty. No global merge tasks to add.") + log.warning(f"Asset '{asset_name_for_log}': Item at index {task_idx} in config.map_merge_rules is not a dict. Skipping. Item: {task_data}") + # ... (rest of merge task handling) ... + if not items_to_process and not preparation_failed: # Check preparation_failed too + log.info(f"Asset '{asset_name_for_log}': No valid items (ProcessingItem or MergeTaskDefinition) found to process.") - if not items_to_process: - log.info(f"Asset '{asset_name_for_log}': No valid items found to process after preparation.") - - log.debug(f"Asset '{asset_name_for_log}': Final items_to_process before assigning to context: {items_to_process}") context.processing_items = items_to_process context.intermediate_results = {} # Initialize intermediate results storage diff --git a/processing/pipeline/stages/regular_map_processor.py b/processing/pipeline/stages/regular_map_processor.py index 964aaf8..e07ba64 100644 --- a/processing/pipeline/stages/regular_map_processor.py +++ b/processing/pipeline/stages/regular_map_processor.py @@ -37,7 +37,7 @@ class RegularMapProcessorStage(ProcessingStage): """ final_internal_map_type = initial_internal_map_type # Default - base_map_type_match = re.match(r"(MAP_[A-Z]{3})", initial_internal_map_type) + base_map_type_match = re.match(r"(MAP_[A-Z]+)", initial_internal_map_type) if not base_map_type_match or not asset_rule or not asset_rule.files: return final_internal_map_type # Cannot determine suffix without base type or asset rule files @@ -47,7 +47,7 @@ class RegularMapProcessorStage(ProcessingStage): peers_of_same_base_type = [] for fr_asset in asset_rule.files: fr_asset_item_type = fr_asset.item_type_override or fr_asset.item_type or "UnknownMapType" - fr_asset_base_match = re.match(r"(MAP_[A-Z]{3})", fr_asset_item_type) + fr_asset_base_match = re.match(r"(MAP_[A-Z]+)", fr_asset_item_type) if fr_asset_base_match and fr_asset_base_match.group(1) == true_base_map_type: peers_of_same_base_type.append(fr_asset) @@ -197,10 +197,17 @@ class RegularMapProcessorStage(ProcessingStage): result.final_internal_map_type = final_map_type # Update if Gloss->Rough changed it result.transformations_applied = transform_notes + # --- Determine Resolution Key for LOWRES --- + if config.enable_low_resolution_fallback and result.original_dimensions: + w, h = result.original_dimensions + if max(w, h) < config.low_resolution_threshold: + result.resolution_key = "LOWRES" + log.info(f"{log_prefix}: Image dimensions ({w}x{h}) are below threshold ({config.low_resolution_threshold}px). Flagging as LOWRES.") + # --- Success --- result.status = "Processed" result.error_message = None - log.info(f"{log_prefix}: Successfully processed regular map. Final type: '{result.final_internal_map_type}'.") + log.info(f"{log_prefix}: Successfully processed regular map. Final type: '{result.final_internal_map_type}', ResolutionKey: {result.resolution_key}.") except Exception as e: log.exception(f"{log_prefix}: Unhandled exception during processing: {e}") diff --git a/processing/pipeline/stages/save_variants.py b/processing/pipeline/stages/save_variants.py index 482b1cc..7c76482 100644 --- a/processing/pipeline/stages/save_variants.py +++ b/processing/pipeline/stages/save_variants.py @@ -23,8 +23,17 @@ class SaveVariantsStage(ProcessingStage): Calls isu.save_image_variants with data from input_data. """ internal_map_type = input_data.internal_map_type - log_prefix = f"Save Variants Stage (Type: {internal_map_type})" + # The input_data for SaveVariantsStage doesn't directly contain the ProcessingItem. + # It receives data *derived* from a ProcessingItem by previous stages. + # For debugging, we'd need to pass more context or rely on what's in output_filename_pattern_tokens. + resolution_key_from_tokens = input_data.output_filename_pattern_tokens.get('resolution', 'UnknownResKey') + log_prefix = f"Save Variants Stage (Type: {internal_map_type}, ResKey: {resolution_key_from_tokens})" + log.info(f"{log_prefix}: Starting.") + log.debug(f"{log_prefix}: Input image_data shape: {input_data.image_data.shape if input_data.image_data is not None else 'None'}") + log.debug(f"{log_prefix}: Input source_bit_depth_info: {input_data.source_bit_depth_info}") + log.debug(f"{log_prefix}: Configured image_resolutions for saving: {input_data.image_resolutions}") + log.debug(f"{log_prefix}: Output filename pattern tokens: {input_data.output_filename_pattern_tokens}") # Initialize output object with default failure state result = SaveVariantsOutput( @@ -64,11 +73,11 @@ class SaveVariantsStage(ProcessingStage): "resolution_threshold_for_jpg": input_data.resolution_threshold_for_jpg, # Added } - log.debug(f"{log_prefix}: Calling save_image_variants utility.") + log.debug(f"{log_prefix}: Calling save_image_variants utility with args: {save_args}") saved_files_details: List[Dict] = isu.save_image_variants(**save_args) if saved_files_details: - log.info(f"{log_prefix}: Save utility completed successfully. Saved {len(saved_files_details)} variants.") + log.info(f"{log_prefix}: Save utility completed successfully. Saved {len(saved_files_details)} variants: {[details.get('filepath') for details in saved_files_details]}") result.saved_files_details = saved_files_details result.status = "Processed" result.error_message = None diff --git a/processing/utils/image_processing_utils.py b/processing/utils/image_processing_utils.py index 70da34a..143b6bb 100644 --- a/processing/utils/image_processing_utils.py +++ b/processing/utils/image_processing_utils.py @@ -194,6 +194,16 @@ def get_image_bit_depth(image_path_str: str) -> Optional[int]: print(f"Error getting bit depth for {image_path_str}: {e}") return None +def get_image_channels(image_data: np.ndarray) -> Optional[int]: + """Determines the number of channels in an image.""" + if image_data is None: + return None + if len(image_data.shape) == 2: # Grayscale + return 1 + elif len(image_data.shape) == 3: # Color + return image_data.shape[2] + return None # Unknown shape + def calculate_image_stats(image_data: np.ndarray) -> Optional[Dict]: """ Calculates min, max, mean for a given numpy image array. diff --git a/rule_structure.py b/rule_structure.py index 14b2313..5b04fa9 100644 --- a/rule_structure.py +++ b/rule_structure.py @@ -1,6 +1,7 @@ import dataclasses import json from typing import List, Dict, Any, Tuple, Optional +import numpy as np # Added for ProcessingItem @dataclasses.dataclass class FileRule: file_path: str = None @@ -10,8 +11,12 @@ class FileRule: resolution_override: Tuple[int, int] = None channel_merge_instructions: Dict[str, Any] = dataclasses.field(default_factory=dict) output_format_override: str = None + processing_items: List['ProcessingItem'] = dataclasses.field(default_factory=list) # Added field def to_json(self) -> str: + # Need to handle ProcessingItem serialization if it contains non-serializable types like np.ndarray + # For now, assume asdict handles it or it's handled before calling to_json for persistence. + # A custom asdict_factory might be needed for robust serialization. return json.dumps(dataclasses.asdict(self), indent=4) @classmethod @@ -54,4 +59,43 @@ class SourceRule: data = json.loads(json_string) # Manually deserialize nested AssetRule objects data['assets'] = [AssetRule.from_json(json.dumps(asset_data)) for asset_data in data.get('assets', [])] - return cls(**data) \ No newline at end of file + # Need to handle ProcessingItem deserialization if it was serialized + # For now, from_json for FileRule doesn't explicitly handle processing_items from JSON. + return cls(**data) + +@dataclasses.dataclass +class ProcessingItem: + """ + Represents a specific version of an image map to be processed and saved. + This could be a standard resolution (1K, 2K), a preview, or a special + variant like 'LOWRES'. + """ + source_file_info_ref: str # Reference to the original SourceFileInfo or unique ID of the source image + map_type_identifier: str # The internal map type (e.g., "MAP_COL", "MAP_ROUGH") + resolution_key: str # The resolution identifier (e.g., "1K", "PREVIEW", "LOWRES") + image_data: np.ndarray # The actual image data for this item + original_dimensions: Tuple[int, int] # (width, height) of the source image for this item + current_dimensions: Tuple[int, int] # (width, height) of the image_data in this item + target_filename: str = "" # Will be populated by SaveVariantsStage + is_extra: bool = False # If this item should be treated as an 'extra' file + bit_depth: Optional[int] = None + channels: Optional[int] = None + file_extension: Optional[str] = None # Determined during saving based on format + processing_applied_log: List[str] = dataclasses.field(default_factory=list) + status: str = "Pending" # e.g., Pending, Processed, Failed + error_message: Optional[str] = None + + # __getstate__ and __setstate__ might be needed if we pickle these objects + # and np.ndarray causes issues. For JSON, image_data would typically not be serialized. + def __getstate__(self): + state = self.__dict__.copy() + # Don't pickle image_data if it's large or not needed for state + if 'image_data' in state: # Or a more sophisticated check + del state['image_data'] # Example: remove it + return state + + def __setstate__(self, state): + self.__dict__.update(state) + # Potentially re-initialize or handle missing 'image_data' + if 'image_data' not in self.__dict__: + self.image_data = None # Or load it if a path was stored instead \ No newline at end of file -- 2.47.2 From ca92c720704ab5baca88ad1e71a0c3dbd5988c71 Mon Sep 17 00:00:00 2001 From: Rusfort Date: Wed, 14 May 2025 23:19:35 +0200 Subject: [PATCH 3/3] CONPORT implementation - Autotest fix --- .roo/mcp.json | 45 ++++++++ TestFiles/Test-BoucleChunky001.json | 2 +- autotest.py | 108 +++++++++--------- .../data_level0.bin | Bin 0 -> 16760000 bytes .../header.bin | Bin 0 -> 100 bytes .../length.bin | Bin 0 -> 40000 bytes .../link_lists.bin | 0 .../conport_vector_data/chroma.sqlite3 | Bin 0 -> 163840 bytes context_portal/context.db | Bin 0 -> 344064 bytes projectBrief.md | 44 +++++++ 10 files changed, 142 insertions(+), 57 deletions(-) create mode 100644 .roo/mcp.json create mode 100644 context_portal/conport_vector_data/3712b223-f80b-4c07-b57a-5cf7c8175c86/data_level0.bin create mode 100644 context_portal/conport_vector_data/3712b223-f80b-4c07-b57a-5cf7c8175c86/header.bin create mode 100644 context_portal/conport_vector_data/3712b223-f80b-4c07-b57a-5cf7c8175c86/length.bin create mode 100644 context_portal/conport_vector_data/3712b223-f80b-4c07-b57a-5cf7c8175c86/link_lists.bin create mode 100644 context_portal/conport_vector_data/chroma.sqlite3 create mode 100644 context_portal/context.db create mode 100644 projectBrief.md diff --git a/.roo/mcp.json b/.roo/mcp.json new file mode 100644 index 0000000..ca3d3f3 --- /dev/null +++ b/.roo/mcp.json @@ -0,0 +1,45 @@ +{ + "mcpServers": { + "conport": { + "command": "C:\\Users\\theis\\context-portal\\.venv\\Scripts\\python.exe", + "args": [ + "C:\\Users\\theis\\context-portal\\src\\context_portal_mcp\\main.py", + "--mode", + "stdio", + "--workspace_id", + "${workspaceFolder}" + ], + "alwaysAllow": [ + "get_product_context", + "update_product_context", + "get_active_context", + "update_active_context", + "log_decision", + "get_decisions", + "search_decisions_fts", + "log_progress", + "get_progress", + "update_progress", + "delete_progress_by_id", + "log_system_pattern", + "get_system_patterns", + "log_custom_data", + "get_custom_data", + "delete_custom_data", + "search_project_glossary_fts", + "export_conport_to_markdown", + "import_markdown_to_conport", + "link_conport_items", + "search_custom_data_value_fts", + "get_linked_items", + "batch_log_items", + "get_item_history", + "delete_decision_by_id", + "delete_system_pattern_by_id", + "get_conport_schema", + "get_recent_activity_summary", + "semantic_search_conport" + ] + } + } +} \ No newline at end of file diff --git a/TestFiles/Test-BoucleChunky001.json b/TestFiles/Test-BoucleChunky001.json index 770d458..292d275 100644 --- a/TestFiles/Test-BoucleChunky001.json +++ b/TestFiles/Test-BoucleChunky001.json @@ -26,7 +26,7 @@ }, { "file_path": "BoucleChunky001_DISP_1K_METALNESS.png", - "item_type": "MAP_DISP", + "item_type": "EXTRA", "target_asset_name_override": "BoucleChunky001" }, { diff --git a/autotest.py b/autotest.py index 96f147e..15771e3 100644 --- a/autotest.py +++ b/autotest.py @@ -584,63 +584,59 @@ class AutoTester(QObject): logger.error(f"Value mismatch for field '{key}' in {item_type_name} ({current_context}): Actual='{actual_value}', Expected='{expected_value}'.") item_match = False - return item_match - - def _compare_list_of_rules(self, actual_list: List[Dict[str, Any]], expected_list: List[Dict[str, Any]], item_type_name: str, parent_context: str, item_key_field: str) -> bool: - """ - Compares a list of actual rule items against a list of expected rule items. - Items are matched by a key field (e.g., 'asset_name' or 'file_path'). - Order independent for matching, but logs count mismatches. - """ - list_match = True # Corrected indentation - if not isinstance(actual_list, list) or not isinstance(expected_list, list): - logger.error(f"Type mismatch for list of {item_type_name}s in {parent_context}. Expected lists.") - return False - - if len(actual_list) != len(expected_list): - logger.error(f"Mismatch in number of {item_type_name}s for {parent_context}. Actual: {len(actual_list)}, Expected: {len(expected_list)}.") - list_match = False # Count mismatch is an error - # If counts differ, we still try to match what we can to provide more detailed feedback, - # but the overall list_match will remain False. - - actual_items_map = {item.get(item_key_field): item for item in actual_list if item.get(item_key_field) is not None} - - # Keep track of expected items that found a match to identify missing ones more easily - matched_expected_keys = set() - - for expected_item in expected_list: - expected_key_value = expected_item.get(item_key_field) - if expected_key_value is None: - logger.error(f"Expected {item_type_name} in {parent_context} is missing key field '{item_key_field}'. Cannot compare this item: {expected_item}") - list_match = False # This specific expected item cannot be processed - continue - - actual_item = actual_items_map.get(expected_key_value) - if actual_item: - matched_expected_keys.add(expected_key_value) - if not self._compare_rule_item(actual_item, expected_item, item_type_name, parent_context): - list_match = False # Individual item comparison failed - else: - logger.error(f"Expected {item_type_name} with {item_key_field} '{expected_key_value}' not found in actual items for {parent_context}.") - list_match = False - - # Identify actual items that were not matched by any expected item - # This is useful if len(actual_list) >= len(expected_list) but some actual items are "extra" - for actual_key_value, actual_item_data in actual_items_map.items(): - if actual_key_value not in matched_expected_keys: - logger.debug(f"Extra actual {item_type_name} with {item_key_field} '{actual_key_value}' found in {parent_context} (not in expected list or already matched).") - if len(actual_list) != len(expected_list): # If counts already flagged a mismatch, this is just detail - pass - else: # Counts matched, but content didn't align perfectly by key - list_match = False - - - return list_match # Corrected indentation - - def _compare_rules(self, actual_rules_data: Dict[str, Any], expected_rules_data: Dict[str, Any]) -> bool: # Corrected structure: moved out - item_match = False - return item_match + + def _compare_list_of_rules(self, actual_list: List[Dict[str, Any]], expected_list: List[Dict[str, Any]], item_type_name: str, parent_context: str, item_key_field: str) -> bool: + """ + Compares a list of actual rule items against a list of expected rule items. + Items are matched by a key field (e.g., 'asset_name' or 'file_path'). + Order independent for matching, but logs count mismatches. + """ + list_match = True + if not isinstance(actual_list, list) or not isinstance(expected_list, list): + logger.error(f"Type mismatch for list of {item_type_name}s in {parent_context}. Expected lists.") + return False + + if len(actual_list) != len(expected_list): + logger.error(f"Mismatch in number of {item_type_name}s for {parent_context}. Actual: {len(actual_list)}, Expected: {len(expected_list)}.") + list_match = False # Count mismatch is an error + # If counts differ, we still try to match what we can to provide more detailed feedback, + # but the overall list_match will remain False. + + actual_items_map = {item.get(item_key_field): item for item in actual_list if item.get(item_key_field) is not None} + + # Keep track of expected items that found a match to identify missing ones more easily + matched_expected_keys = set() + + for expected_item in expected_list: + expected_key_value = expected_item.get(item_key_field) + if expected_key_value is None: + logger.error(f"Expected {item_type_name} in {parent_context} is missing key field '{item_key_field}'. Cannot compare this item: {expected_item}") + list_match = False # This specific expected item cannot be processed + continue + + actual_item = actual_items_map.get(expected_key_value) + if actual_item: + matched_expected_keys.add(expected_key_value) + if not self._compare_rule_item(actual_item, expected_item, item_type_name, parent_context): + list_match = False # Individual item comparison failed + else: + logger.error(f"Expected {item_type_name} with {item_key_field} '{expected_key_value}' not found in actual items for {parent_context}.") + list_match = False + + # Identify actual items that were not matched by any expected item + # This is useful if len(actual_list) >= len(expected_list) but some actual items are "extra" + for actual_key_value, actual_item_data in actual_items_map.items(): + if actual_key_value not in matched_expected_keys: + logger.debug(f"Extra actual {item_type_name} with {item_key_field} '{actual_key_value}' found in {parent_context} (not in expected list or already matched).") + if len(actual_list) != len(expected_list): # If counts already flagged a mismatch, this is just detail + pass + else: # Counts matched, but content didn't align perfectly by key + list_match = False + + + return list_match + def _compare_rules(self, actual_rules_data: Dict[str, Any], expected_rules_data: Dict[str, Any]) -> bool: """ diff --git a/context_portal/conport_vector_data/3712b223-f80b-4c07-b57a-5cf7c8175c86/data_level0.bin b/context_portal/conport_vector_data/3712b223-f80b-4c07-b57a-5cf7c8175c86/data_level0.bin new file mode 100644 index 0000000000000000000000000000000000000000..09cffb602cb74a6c7739455213fb6aecf2c31a6c GIT binary patch literal 16760000 zcmeFtfdBvi0Dz$VsTV1P3IhfV7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjm>oJ0000000P=rrgaii; z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=0qoF$000000FeJ{BP2L*;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4rqst1poj500#M64`Od2WWay{0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM h7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pG7fdI>~00961 literal 0 HcmV?d00001 diff --git a/context_portal/conport_vector_data/3712b223-f80b-4c07-b57a-5cf7c8175c86/header.bin b/context_portal/conport_vector_data/3712b223-f80b-4c07-b57a-5cf7c8175c86/header.bin new file mode 100644 index 0000000000000000000000000000000000000000..e85f4658a3abf704e4023ee132dd4208664aa979 GIT binary patch literal 100 tcmZQ%KmY-C1RKQaVT15nU^G4geRJ4fg;5 literal 0 HcmV?d00001 diff --git a/context_portal/conport_vector_data/3712b223-f80b-4c07-b57a-5cf7c8175c86/length.bin b/context_portal/conport_vector_data/3712b223-f80b-4c07-b57a-5cf7c8175c86/length.bin new file mode 100644 index 0000000000000000000000000000000000000000..bb1821a6e0903f5e946692827afbaa97caa22938 GIT binary patch literal 40000 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�J#{#}qZ9cpnb-9F z1Rk`Z4s0;{Fxh!Ya-UL1ktYWSZ;mybbvG0gLrG0$C}lpuUN|iI&9D5qs zmCG`XiO!lIGgo!=0T#&uC0zrZa0YN{?A5wqa0*#CCS=>{!ptBQ2QvLufK+JU9^_6c zm2CktH`U+UUU6^&lr8Too^QAb`C;fKHp6tZ?QbyJBs1pTUBexXoyr*>c28^&9`k{k zrP|s4FX)7NeKNI(aWdR)CcZ!jofz9LUP|mBQne`wT_N98>ifUJ*-)q4)hS|Af~L?$ zg=1S_M3?59#r;kZxxaOR6<*uQ`;NImj;tKC)s;jE*YFJoU;x4J-|9@U;|vz z$h=G6s5XE*KtMqIS0ldn@eLo?b{)4fc!-t^@D)1Q!;hlzxvj(C6mZ4q!3We$+g7KQBHIqyroTQYifd+jxx}d^(++89Oa^@$&!-O7OypebivF}7A zYAJ@+7!aW+-;~7Q>ms~LmAyp0ffvCqvj260MKo5Mu9_?xq(SA~;CN7#v0aLtaz4XN zcGA~qKXQxX{1v)mhNIQN`DI-=I-QUw+SmH`DBL_+j5xuJ2?985@~9ccpHpYm=ZQ(C zx{zHf3ZO2DDQ-zk+B{twLmV`59|+>0N7G{EIOU}AiLfT~FGbV052OGIRwYbD?!PYBt&${WH#Y%KLiQLt0 zDdf0UZF3bc%?(q6sKu%I*W4{>3b$UgH(-$}dAS?ejY&|8lR_C6m+9JRLdL0+QO~BA zujiduO#tc?{wF~7kT9%W&uw^1uqZ^A4V-wR;Jd%muoChGl!hpWc0RkGIr@k|4NvtD9 zCp1Wv4pjvko02U-0Aqrm4|;l5Aj<>a!TX+k=`5l;_}3SAn~ZTH$x_K_4IL=ev_L;dGd_ zqEd3BJ(0GPt5H28GG9bo^inga;SAz1zg2D|VKaMDPB`T!ir~y%rQXDgkYvOVtYq>c zq}3MQhB#ZuYOOR%4P?+vyA50bwJOfwmA}PlQGcNrfl2&*6edX&#!XxiJJCj%)+=}b O04s!Xw~;2-O8*JdUZA1? literal 0 HcmV?d00001 diff --git a/projectBrief.md b/projectBrief.md new file mode 100644 index 0000000..8ceb261 --- /dev/null +++ b/projectBrief.md @@ -0,0 +1,44 @@ +# Project Brief: Asset Processor Tool + +## 1. Main Goal & Purpose + +The primary goal of the Asset Processor Tool is to provide **CG artists and 3D content teams with a friendly, fast, and flexible interface to process and organize 3D asset source files into a standardized library format.** It automates repetitive and complex tasks involved in preparing assets from various suppliers for use in production pipelines. + +## 2. Key Features & Components + +* **Automated Asset Processing:** Ingests 3D asset source files (texture sets, models, etc.) from `.zip`, `.rar`, `.7z` archives, or folders. +* **Preset-Driven Workflow:** Utilizes configurable JSON presets to interpret different asset sources (e.g., from various online vendors or internal standards), defining rules for file classification and processing. +* **Comprehensive File Operations:** + * **Classification:** Automatically identifies map types (Color, Normal, Roughness, etc.), models, and other file categories based on preset rules. + * **Image Processing:** Performs tasks like image resizing (to standard resolutions like 1K, 2K, 4K, avoiding upscaling), glossiness-to-roughness conversion, normal map green channel inversion (OpenGL/DirectX handling), alpha channel extraction, bit-depth adjustments, and low-resolution fallback generation for small source images. + * **Channel Merging:** Combines channels from different source maps into packed textures (e.g., Normal + Roughness + Metallic into a single NRMRGH map). +* **Metadata Generation:** Creates a detailed `metadata.json` file for each processed asset, containing information about maps, categories, processing settings, and more, for downstream tool integration. +* **Flexible Output Organization:** Generates a clean, structured output directory based on user-configurable naming patterns and tokens. +* **Multiple User Interfaces:** + * **Graphical User Interface (GUI):** The primary interface, designed to be user-friendly, offering drag-and-drop functionality, an integrated preset editor, a live preview table for rule validation and overrides, and clear processing controls. + * **Directory Monitor:** An automated script that watches a specified folder for new asset archives and processes them based on preset names embedded in the archive filename. + * **Command-Line Interface (CLI):** Intended for batch processing and scripting (currently with limited core functionality). +* **Optional Blender Integration:** Can automatically run Blender scripts post-processing to create PBR node groups and materials in specified `.blend` files, linking to the newly processed textures. +* **Hierarchical Rule System:** Allows for dynamic, granular overrides of preset configurations at the source, asset, or individual file level via the GUI. +* **Experimental LLM Prediction:** Includes an option to use a Large Language Model for file interpretation and rule prediction. + +## 3. Target Audience + +* **CG Artists:** Individual artists looking for an efficient way to manage and prepare their personal or downloaded asset libraries. +* **3D Content Creation Teams:** Studios or groups needing a standardized pipeline for processing and organizing assets from multiple sources. +* **Technical Artists/Pipeline Developers:** Who may extend or integrate the tool into broader production workflows. + +## 4. Overall Architectural Style & Key Technologies + +* **Core Language:** Python +* **GUI Framework:** PySide6 +* **Configuration:** Primarily JSON-based (application settings, user overrides, type definitions, supplier settings, presets, LLM settings). +* **Processing Architecture:** A modular, staged processing pipeline orchestrated by a central engine. Each stage performs a discrete task on an `AssetProcessingContext` object. +* **Key Libraries:** OpenCV (image processing), NumPy (numerical operations), py7zr/rarfile (archive handling), watchdog (directory monitoring). +* **Design Principles:** Modularity, configurability, and user-friendliness (especially for the GUI). + +## 5. Foundational Information + +* The tool aims to significantly reduce manual effort and ensure consistency in asset preparation. +* It is designed to be adaptable to various asset sources and pipeline requirements through its extensive configuration options and preset system. +* The output `metadata.json` is key for enabling further automation and integration with other tools or digital content creation (DCC) applications. \ No newline at end of file -- 2.47.2