From 52d52e2d338b7e7e55b5abbef1fa190356d71550 Mon Sep 17 00:00:00 2001 From: Francisco Rossi Date: Mon, 9 Jun 2025 10:02:29 -0300 Subject: [PATCH 01/26] Original dev --- .gitignore | 2 + src/checkpoint/README.md | 3 + .../serialization => checkpoint}/__init__.py | 0 src/checkpoint/main.py | 28 +++++++ src/checkpoint/stage.py | 73 +++++++++++++++++++ src/checkpoint/template.json | 29 ++++++++ src/configs/serialization_module/__init__.py | 0 .../serialization.py | 0 .../serialization_test.py | 0 9 files changed, 135 insertions(+) create mode 100644 src/checkpoint/README.md rename src/{configs/serialization => checkpoint}/__init__.py (100%) create mode 100644 src/checkpoint/main.py create mode 100644 src/checkpoint/stage.py create mode 100644 src/checkpoint/template.json create mode 100644 src/configs/serialization_module/__init__.py rename src/configs/{serialization => serialization_module}/serialization.py (100%) rename src/configs/{serialization => serialization_module}/serialization_test.py (100%) diff --git a/.gitignore b/.gitignore index 9c3b44d..3ceb093 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,5 @@ old/ build/ *.mp4 + +checkpoints/ diff --git a/src/checkpoint/README.md b/src/checkpoint/README.md new file mode 100644 index 0000000..8baed46 --- /dev/null +++ b/src/checkpoint/README.md @@ -0,0 +1,3 @@ +# Checkpoint + +A module to generate saveable/loadable checkpoints for tensorflow models. diff --git a/src/configs/serialization/__init__.py b/src/checkpoint/__init__.py similarity index 100% rename from src/configs/serialization/__init__.py rename to src/checkpoint/__init__.py diff --git a/src/checkpoint/main.py b/src/checkpoint/main.py new file mode 100644 index 0000000..9bb238a --- /dev/null +++ b/src/checkpoint/main.py @@ -0,0 +1,28 @@ +import tensorflow as tf + +from checkpoint.stage import Stage + + +def dummy_model_function(model, *args, **kwargs): + """A dummy function to simulate model creation.""" + model = tf.keras.models.Sequential( + [ + tf.keras.layers.Dense(64, activation="relu", input_shape=(32,)), + tf.keras.layers.Dense(10, activation="softmax"), + ] + ) + print("Model created with args:", args, "and kwargs:", kwargs) + return model + + +if __name__ == "__main__": + # Example usage of Stage class + stage = Stage( + id=0, + name="Initial Model Creation", + previous_stage=None, + function=dummy_model_function, + function_kwargs={"arg1": "value1", "arg2": "value2"}, + ) + + stage.run() diff --git a/src/checkpoint/stage.py b/src/checkpoint/stage.py new file mode 100644 index 0000000..c0605cb --- /dev/null +++ b/src/checkpoint/stage.py @@ -0,0 +1,73 @@ +from __future__ import annotations + +import pickle +from pathlib import Path +from typing import Callable, Optional + +import tensorflow as tf + + +class Stage: + def __init__( + self, + id: int, + name: str, + function: Callable, # Function to run for this stage + function_kwargs: dict, # Arguments for the function + previous_stage: Optional[Stage] = None, + ): + self.id = id + self.name = name + self.previous_stage = previous_stage + self.function = function + self.function_kwargs = function_kwargs + self.model_path = Path( + f"output/{name.lower().replace(' ', '_')}_stage_{id}" + ) + + # Ensure the model path exists + self.model_path.parent.mkdir(parents=True, exist_ok=True) + + def to_pickle(self, file: Path) -> bytes: + """Serialize the stage to a pickle byte string.""" + with file.open("wb") as f: + pickle.dump(self, f) + + @staticmethod + def from_pickle(file: Path): + """Deserialize the stage from a pickle byte string.""" + with file.open("rb") as f: + return pickle.load(f) + + def save_model(self, model: tf.keras.Model): + """Save the model to a specified output path.""" + model.save(model.path / "model.h5", save_format="h5") + print(f"Model saved to {model.path / 'model.h5'}") + + def load_model(self) -> tf.keras.Model: + """Load the model from a specified output path.""" + if self.model_path.exists(): + model = tf.keras.models.load_model(self.model_path / "model.h5") + print(f"Model loaded from {self.model_path}") + return model + + def run(self, force_run: bool = False): + """Run the stage function and save the model.""" + print(f"Running stage {self.id}: {self.name}") + + if self.model_path.exists() and not force_run: + print(f"Loading model from {self.model_path}") + model = self.load_model() + else: + # Run the function associated with the stage + model = self.function(model=model, **self.function_kwargs) + + # Save the model to the specified path + self.save_model(model) + print(f"Model saved to {self.model_path}") + + # Save the stage to a pickle file + self.to_pickle(self.model_path.with_suffix(".pkl")) + print( + f"Stage {self.id} saved to {self.model_path.with_suffix('.pkl')}" + ) diff --git a/src/checkpoint/template.json b/src/checkpoint/template.json new file mode 100644 index 0000000..f04c1e5 --- /dev/null +++ b/src/checkpoint/template.json @@ -0,0 +1,29 @@ +{ + // The stage of the checkpoint + // This can be: + // - "new" for a simple model created and store BEFORE any training o processing. + // - "train" for a model that has been trained WITHOUT quantization, as a starting point for quantization. + // - "quant" for a model that has been trained and quantized, as a starting point before QAT. + // - "eval" a model after QAT has been applied, the final model. + "model_name": "lenet5", + "path": "/path/to/model/model.keras", // The path to the checkpoint file + "stage": "train", + "hyperparameters": { + // The hyperparameters used for this stage if any + "training": { + // The learning rate used for training + "learning_rate": 0.001, + // The batch size used for training + "batch_size": 32, + // The number of epochs used for training + "epochs": 10, + // The optimizer used for training + "optimizer": "adam", + // The loss function used for training + "loss_function": "cross_entropy", + }, + "quantization_config": "/path/to/qconfig.pkl", // The path to the quantization configuration file + }, + "previous_stage_hash": "abc123", // The hash of the previous stage, generated by... + +} diff --git a/src/configs/serialization_module/__init__.py b/src/configs/serialization_module/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/configs/serialization/serialization.py b/src/configs/serialization_module/serialization.py similarity index 100% rename from src/configs/serialization/serialization.py rename to src/configs/serialization_module/serialization.py diff --git a/src/configs/serialization/serialization_test.py b/src/configs/serialization_module/serialization_test.py similarity index 100% rename from src/configs/serialization/serialization_test.py rename to src/configs/serialization_module/serialization_test.py From 34eddfa46bcce02e7f87a2b6be5a94c0d38b8760 Mon Sep 17 00:00:00 2001 From: Francisco Rossi Date: Tue, 10 Jun 2025 07:57:28 -0300 Subject: [PATCH 02/26] Working --- src/stage/__init__.py | 0 src/stage/functions.py | 369 +++++++++++++++++++++++++++++++++++++++++ src/stage/main.py | 174 +++++++++++++++++++ src/stage/stage.py | 204 +++++++++++++++++++++++ 4 files changed, 747 insertions(+) create mode 100644 src/stage/__init__.py create mode 100644 src/stage/functions.py create mode 100644 src/stage/main.py create mode 100644 src/stage/stage.py diff --git a/src/stage/__init__.py b/src/stage/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/stage/functions.py b/src/stage/functions.py new file mode 100644 index 0000000..b7acdc6 --- /dev/null +++ b/src/stage/functions.py @@ -0,0 +1,369 @@ +# functions.py + +import sys + +import numpy as np +import tensorflow as tf +from tensorflow.keras import layers, models +from tensorflow.keras.datasets import mnist +from tensorflow.keras.optimizers import Adam +from tensorflow.keras.utils import to_categorical +from tqdm import tqdm + +from configs.qmodel import apply_quantization +from quantizers.flex_quantizer import FlexQuantizer +from quantizers.uniform_quantizer import UniformQuantizer + +# --- Data Loading --- + + +def load_data(dataset_name: str) -> dict: + """Loads and preprocesses the specified dataset.""" + if dataset_name == "mnist": + (x_train, y_train), (x_test, y_test) = mnist.load_data() + + # Reshape and normalize images + x_train = x_train.reshape(-1, 28, 28, 1).astype("float32") / 255.0 + x_test = x_test.reshape(-1, 28, 28, 1).astype("float32") / 255.0 + + # One-hot encode labels + y_train = to_categorical(y_train, 10) + y_test = to_categorical(y_test, 10) + + return { + "x_train": x_train, + "y_train": y_train, + "x_test": x_test, + "y_test": y_test, + } + else: + raise ValueError(f"Unknown dataset: {dataset_name!r}") + + +# --- Core Model Operations --- + + +def model_create(model, **params: dict) -> tf.keras.Model: + """Creates a new Keras model based on the specified architecture.""" + model_name = params["model_name"] + input_shape = params["input_shape"] + categories = params["categories"] + + if model_name == "lenet5_custom": + new_model = models.Sequential( + [ + layers.Conv2D( + 6, + kernel_size=5, + activation="relu", + padding="same", + input_shape=input_shape[1:], + ), + layers.AveragePooling2D(), + layers.Conv2D(16, kernel_size=5, activation="relu"), + layers.AveragePooling2D(), + layers.Flatten(), + layers.Dense(120, activation="relu"), + layers.Dense(84, activation="relu"), + layers.Dense(categories, activation="softmax"), + ], + name=model_name, + ) + + new_model.compile( + optimizer=Adam(), + loss="categorical_crossentropy", + metrics=["accuracy"], + ) + return new_model + else: + raise ValueError(f"Unknown model_name: {model_name!r}") + + +def model_train(model: tf.keras.Model, **params: dict) -> tf.keras.Model: + """Trains the model with the given parameters.""" + if model is None: + raise ValueError("model_train received an empty model.") + + data = load_data(params["dataset"]) + + model.compile( + optimizer=Adam(learning_rate=params["learning_rate"]), + loss="categorical_crossentropy", + metrics=["accuracy"], + ) + + if params.get("epochs", 0) > 0: + model.fit( + data["x_train"], + data["y_train"], + batch_size=params["batch_size"], + epochs=params["epochs"], + validation_split=params["validation_split"], + verbose=1, # Set to 1 to see progress + ) + return model + + +# --- Model Transformation and Quantization --- + + +def apply_bn_folding( + model: tf.keras.Model, merge_activation: bool = False +) -> tf.keras.Model: + """Fuses Conv/Dense layers with subsequent BatchNormalization layers.""" + if not isinstance(model, tf.keras.Sequential): + raise TypeError( + "BN folding currently only supports Sequential models." + ) + + def is_relu(layer): + return isinstance(layer, layers.ReLU) or ( + isinstance(layer, layers.Activation) + and layer.get_config().get("activation") == "relu" + ) + + new_layers = [] + i = 0 + while i < len(model.layers): + layer = model.layers[i] + + # Check if we can fold this layer with the next one + if ( + isinstance(layer, (layers.Conv2D, layers.Dense)) + and i + 1 < len(model.layers) + and isinstance(model.layers[i + 1], layers.BatchNormalization) + ): + + conv_layer = layer + bn_layer = model.layers[i + 1] + + # Get weights + conv_weights = conv_layer.get_weights() + bn_weights = bn_layer.get_weights() + + kernel = conv_weights[0] + bias = ( + conv_weights[1] + if conv_layer.use_bias + else np.zeros(kernel.shape[-1]) + ) + + gamma, beta, moving_mean, moving_variance = bn_weights + epsilon = bn_layer.epsilon + + # Calculate new weights and biases + scale = gamma / np.sqrt(moving_variance + epsilon) + new_bias = beta + (bias - moving_mean) * scale + + if isinstance(conv_layer, layers.Dense): + new_kernel = kernel * scale + else: # Conv2D + new_kernel = kernel * scale.reshape((1, 1, 1, -1)) + + # Create new layer configuration + new_config = conv_layer.get_config() + new_config["use_bias"] = True + new_config["activation"] = conv_layer.activation + + i += 2 # Skip original conv and BN + + # Check for merging activation + if ( + merge_activation + and i < len(model.layers) + and is_relu(model.layers[i]) + ): + new_config["activation"] = "relu" + i += 1 + + # Create the new fused layer + fused_layer = type(conv_layer).from_config(new_config) + new_layers.append(fused_layer) + + # Build and set weights for the new layer + fused_layer.build(conv_layer.input_shape) + fused_layer.set_weights([new_kernel, new_bias]) + + else: + new_layers.append(layer) + i += 1 + + return models.Sequential(new_layers) + + +def model_transform_bnf( + model: tf.keras.Model, **params: dict +) -> tf.keras.Model: + """Applies Batch Normalization Folding to the model.""" + print("Function: model_transform_bnf called") + if model is None: + raise ValueError("model_transform_bnf received an empty model.") + new_model = apply_bn_folding( + model, merge_activation=params.get("merge_activation", False) + ) + new_model.compile( + optimizer=Adam(), loss="categorical_crossentropy", metrics=["accuracy"] + ) + return new_model + + +def model_quantize(model: tf.keras.Model, **params) -> tf.keras.Model: + """Applies quantization to the model.""" + print("Function: model_quantize called") + if model is None: + raise ValueError("model_quantize received an empty model.") + # (Your quantization logic here) + kernel = params["kernel"] + bias = params["bias"] + activations = params["activations"] + + # Layers initialization + layers = list() + supported = ("conv2d", "dense") + for layer in model.layers: + if any(kw in layer.name for kw in supported): + layers.append(layer.name) + + # QConfig initialization + qconfig = dict() + for layer in layers: + qconfig[layer] = dict() + for layer in layers: + for k in ("weights", "activations"): + qconfig[layer][k] = dict() + + for layer, k, b, a in zip(layers, kernel, bias, activations): + # Kernel + if k["type"] == "uniform": + qconfig[layer]["weights"]["kernel"] = UniformQuantizer( + bits=k["bits"], signed=True + ) + elif k["type"] == "flexible": + qconfig[layer]["weights"]["kernel"] = FlexQuantizer( + bits=k["bits"], n_levels=k["n_levels"], signed=True + ) + else: + pass + # Bias + if b["type"] == "uniform": + qconfig[layer]["weights"]["bias"] = UniformQuantizer( + bits=b["bits"], signed=True + ) + elif b["type"] == "flexible": + qconfig[layer]["weights"]["bias"] = FlexQuantizer( + bits=b["bits"], n_levels=b["n_levels"], signed=True + ) + else: + pass + # Arctivations + if a["type"] == "uniform": + qconfig[layer]["activations"]["activation"] = UniformQuantizer( + bits=a["bits"], signed=False + ) + elif a["type"] == "flexible": + qconfig[layer]["activations"]["activation"] = FlexQuantizer( + bits=a["bits"], n_levels=a["n_levels"], signed=False + ) + else: + pass + # End logic + quantized_model = apply_quantization(model, qconfig) + quantized_model.compile( + optimizer=Adam(), loss="categorical_crossentropy", metrics=["accuracy"] + ) + return quantized_model + + +# --- Alpha Initialization for QAT --- + + +def compute_alpha_dict(model, x_train, batch_size=128): + """Computes alpha values for weights and activations.""" + alpha_dict = {} + # Compute weight alphas + for layer in tqdm( + model.layers, + desc="Computing weight alphas", + file=sys.stdout, + leave=False, + ): + if layer.get_weights(): + alpha_dict[layer.name] = {} + # Simplified alpha calculation for weights + weights = layer.get_weights()[0] + alpha_dict[layer.name]["kernel"] = np.max(np.abs(weights)) + + # Compute activation alphas + intermediate_model = models.Model( + inputs=model.input, outputs=[layer.output for layer in model.layers] + ) + activations = intermediate_model.predict( + x_train, batch_size=batch_size, verbose=0 + ) + + for layer, activation_data in tqdm( + zip(model.layers, activations), + total=len(model.layers), + desc="Computing activation alphas", + file=sys.stdout, + leave=False, + ): + if layer.name not in alpha_dict: + alpha_dict[layer.name] = {} + alpha_dict[layer.name]["activation"] = np.max(np.abs(activation_data)) + + return alpha_dict + + +def apply_alpha_dict(q_model, alpha_dict): + """Applies pre-computed alpha values to a quantized model.""" + for layer in q_model.layers: + original_name = layer.name.replace("quant_", "") + if original_name in alpha_dict: + for alpha_type in ["kernel", "activation"]: + if new_alpha := alpha_dict[original_name].get(alpha_type): + for weight_var in layer.weights: + if ( + alpha_type in weight_var.name + and "alpha" in weight_var.name + ): + weight_var.assign(new_alpha) + print( + f"Updated {weight_var.name} with alpha: {new_alpha:.4f}" + ) + return q_model + + +def model_initialize_parameters(model, **params) -> tf.keras.Model: + """Initializes quantization parameters (alphas) using a reference model.""" + print("Function: model_initialize_parameters called") + if params["type"] == "alpha": + data = load_data(params["dataset"]) + alpha_dict = compute_alpha_dict(model, data["x_train"]) + model = apply_alpha_dict(model, alpha_dict) + return model + raise ValueError( + f"Unknown parameter initialization type: {params['type']!r}" + ) + + +def model_evaluate(model, **params): + """Evaluates the model on the test dataset.""" + if model is None: + raise ValueError("model_evaluate received an empty model.") + data = load_data(params["dataset"]) + loss, accuracy = model.evaluate(data["x_test"], data["y_test"], verbose=0) + print(f"Evaluation results - Loss: {loss:.4f}, Accuracy: {accuracy:.4f}") + return model + + +# --- Function Map --- +FUNCTION_MAP = { + "model_create": model_create, + "model_evaluate": model_evaluate, + "model_train": model_train, + "model_transform_bnf": model_transform_bnf, # Assuming you will add this + "model_quantize": model_quantize, + "model_initialize_parameters": model_initialize_parameters, +} diff --git a/src/stage/main.py b/src/stage/main.py new file mode 100644 index 0000000..0a6cf21 --- /dev/null +++ b/src/stage/main.py @@ -0,0 +1,174 @@ +# main.py + +import tensorflow as tf +from functions import FUNCTION_MAP + +from stage import Stage + +# --- Configuration for All 7 Pipeline Stages --- +# This list defines the blueprint for our pipeline. Each dictionary +# will be used to initialize a Stage object. + +stages_hyperparams = [ + # Stage 0: Model creation + { + "name": "model_creation", + "seed": 12345, + "function": "model_create", + "kwargs": { + "dataset": "mnist", + "input_shape": [None, 28, 28, 1], + "categories": 10, + "model_name": "lenet5_custom", + }, + }, + # Stage 1: Initial training + { + "name": "initial_training", + "seed": 12345, + "function": "model_train", + "kwargs": { + "dataset": "mnist", + "input_shape": [None, 28, 28, 1], + "categories": 10, + "epochs": 2, + "batch_size": 1024, + "learning_rate": 0.001, + "validation_split": 0.1, + }, + }, + # Stage 2: BN folding + { + "name": "bnf", + "seed": 12345, + "function": "model_transform_bnf", + "kwargs": { + "merge_activation": True, + }, + }, + # Stage 3: Post BN folding training + { + "name": "pbnf_training", + "seed": 12345, + "function": "model_train", + "kwargs": { + "dataset": "mnist", + "input_shape": [None, 28, 28, 1], + "categories": 10, + "epochs": 1, + "batch_size": 32, + "learning_rate": 0.0005, + "validation_split": 0.1, + }, + }, + # Stage 4: Model quantization + { + "name": "quantization", + "seed": 12345, + "function": "model_quantize", + "kwargs": { + "input_shape": [None, 28, 28, 1], + # 'kernel' is set to None because it will be dynamically + # updated inside the experimental loop below. + "kernel": None, + "bias": [ + {"type": None}, + {"type": None}, + {"type": None}, + {"type": None}, + {"type": None}, + ], + "activations": [ + {"type": "uniform", "bits": 8}, + {"type": "uniform", "bits": 8}, + {"type": "uniform", "bits": 8}, + {"type": "uniform", "bits": 8}, + {"type": "uniform", "bits": 8}, + ], + }, + "is_quantized": True, + }, + # Stage 5: Alpha initialization + { + "name": "alpha_initialization", # Fixed typo from original "initialiation" + "seed": 12345, + "function": "model_initialize_parameters", + "kwargs": { + "dataset": "mnist", + "input_shape": [None, 28, 28, 1], + "categories": 10, + "type": "alpha", + }, + }, + # Stage 6: QAT + { + "name": "qat", + "seed": 12345, + "function": "model_train", + "kwargs": { + "dataset": "mnist", + "input_shape": [None, 28, 28, 1], + "categories": 10, + "epochs": 2, + "batch_size": 32, + "learning_rate": 0.0001, + "validation_split": 0.1, + }, + "is_quantized": True, + }, + { + "name": "final_evaluation", + "seed": 12345, + "function": "model_evaluate", + "kwargs": { + "dataset": "mnist", + "input_shape": [None, 28, 28, 1], + "categories": 10, + }, + "is_quantized": True, + }, +] + +if __name__ == "__main__": + + # This is the main experimental loop from your coworker's script. + # It runs the entire 7-stage pipeline multiple times. + for bits in [8, 16]: + print( + f"\n{'='*20} STARTING EXPERIMENT: UNIFORM BITS = {bits} {'='*20}\n" + ) + + # --- Configure the Experiment --- + # Dynamically set the 'kernel' quantization parameter for this specific run. + kernel_config = [{"type": "uniform", "bits": bits} for _ in range(5)] + stages_hyperparams[4]["kwargs"]["kernel"] = kernel_config + + # Create the list of Stage objects from the (now updated) configurations + pipeline = [ + Stage( + function=FUNCTION_MAP[config["function"]], + initial_config=config, + ) + for config in stages_hyperparams + ] + + # --- The Orchestrator --- + # It tracks both the model object and the hash of the last operation + model: tf.keras.Model | None = None + previous_hash: str | None = None + + # The loop's responsibility is to pass the state (model & hash) between stages + for stage in pipeline: + model, previous_hash = stage.run( + input_model=model, previous_hash=previous_hash + ) + + stage.evaluate(model) + stage.compute_complexity(model) + + print( + f"\n{'='*20} FINISHED EXPERIMENT: UNIFORM BITS = {bits} {'='*20}\n" + ) + print( + f"Final model for {bits}-bit experiment corresponds to hash: {previous_hash}" + ) diff --git a/src/stage/stage.py b/src/stage/stage.py new file mode 100644 index 0000000..a61eb8d --- /dev/null +++ b/src/stage/stage.py @@ -0,0 +1,204 @@ +# stage.py + +from __future__ import annotations + +import hashlib +import json +import time +from dataclasses import asdict, dataclass +from pathlib import Path +from typing import Any, Callable, Dict, Optional, Tuple + +import tensorflow as tf + +# This shouldnt be here. +from tensorflow.keras.datasets import mnist +from tensorflow.keras.utils import to_categorical + +from configs.serialization_module.serialization import load_qmodel, save_qmodel +from utils.metrics import compute_space_complexity_model + + +def load_data(dataset_name: str) -> dict: + """Loads and preprocesses the specified dataset.""" + if dataset_name == "mnist": + (x_train, y_train), (x_test, y_test) = mnist.load_data() + + # Reshape and normalize images + x_train = x_train.reshape(-1, 28, 28, 1).astype("float32") / 255.0 + x_test = x_test.reshape(-1, 28, 28, 1).astype("float32") / 255.0 + + # One-hot encode labels + y_train = to_categorical(y_train, 10) + y_test = to_categorical(y_test, 10) + + return { + "x_train": x_train, + "y_train": y_train, + "x_test": x_test, + "y_test": y_test, + } + else: + raise ValueError(f"Unknown dataset: {dataset_name!r}") + + +@dataclass(frozen=True) +class StageConfig: + """Holds all parameters that uniquely define a stage's output. + + This entire object is hashed to create a unique ID for the stage's result. + """ + + name: str + seed: int + parameters: Dict[str, Any] + # The crucial link: the hash of the stage that came before this one. + previous_hash: Optional[str] = None + + +class Stage: + def __init__( + self, + function: Callable, + initial_config: Dict[str, Any], # We'll start with a dict + ): + self.function = function + self.initial_config = initial_config + print(f"initial_config: {self.initial_config}") + self.config: Optional[StageConfig] = None # Will be set at runtime + self.hash: Optional[str] = None + self.checkpoint_dir = Path( + "checkpoints" + ) # Use a dedicated checkpoint dir + self.checkpoint_dir.mkdir(parents=True, exist_ok=True) + self.is_quantized = initial_config.get("is_quantized", False) + + def _generate_hash(self) -> str: + """Generates a unique hash from the immutable StageConfig.""" + # asdict converts the dataclass to a dictionary. + # sort_keys ensures the hash is consistent. + config_str = json.dumps(asdict(self.config), sort_keys=True) + return hashlib.md5(config_str.encode()).hexdigest() + + def _save_metadata(self): + """Saves the current stage configuration to a JSON file. + + This is useful for debugging and traceability. + """ + if self.config is None: + raise ValueError("StageConfig is not set. Run the stage first.") + + metadata_path = self.checkpoint_dir / f"{self.hash}.json" + with metadata_path.open("w") as f: + json.dump(asdict(self.config), f, indent=2) + print(f"Configuration saved to '{metadata_path}'") + + def _save_model(self, model: tf.keras.Model): + """Saves the model to a file using the unique hash as the filename. + + This is useful for traceability and caching. + """ + if self.hash is None: + raise ValueError("Hash is not set. Run the stage first.") + + if self.is_quantized: + model_path = self.checkpoint_dir / f"{self.hash}" + save_qmodel(model, model_path) + print(f"Quantized model saved to '{model_path}'") + else: + model_path = self.checkpoint_dir / f"{self.hash}.keras" + model.save(model_path) + print(f"Model saved to '{model_path}'") + + def save(self, model: tf.keras.Model): + """Saves the model and its configuration to disk. + + This is useful for traceability and caching. + """ + if self.config is None: + raise ValueError("StageConfig is not set. Run the stage first.") + + self._save_metadata() + self._save_model(model) + + def run( + self, + input_model: Optional[tf.keras.Model], + previous_hash: Optional[str] = None, + ) -> Tuple[tf.keras.Model, str]: + """Runs the stage with full traceability and caching. + + Returns the resulting model AND its unique hash. + """ + start_time = time.time() + + # 1. Create the final, traceable config for this run + self.config = StageConfig( + name=self.initial_config["name"], + seed=self.initial_config.get( + "seed", int(time.time()) + ), # Use a seed or timestamp + parameters=self.initial_config["kwargs"], + previous_hash=previous_hash, + ) + + # 2. Generate the unique hash for this specific configuration + self.hash = self._generate_hash() + + model_path = self.checkpoint_dir / f"{self.hash}" + if not self.is_quantized: + model_path = self.checkpoint_dir / f"{self.hash}.keras" + self.checkpoint_dir / f"{self.hash}.json" + + print(f"--- Running Stage({self.config.name}) ---") + print(f" Hash: {self.hash}") + print(f" Depends on: {self.config.previous_hash}") + + # 3. Checkpoint logic: If a model with this exact history exists, load it. + if model_path.exists(): + print(f" Checkpoint FOUND. Loading model from '{model_path}'") + if self.is_quantized: + output_model = load_qmodel(model_path) + else: + output_model = tf.keras.models.load_model( + model_path, compile=False + ) + else: + print(" Checkpoint NOT FOUND. Executing function...") + output_model = self.function( + model=input_model, **self.config.parameters + ) + + # 4. Save the work using the hash as the filename + self._save_model(output_model) + + # --- THIS IS YOUR TRACEABILITY --- + # Save the configuration (metadata) that produced this model. + self._save_metadata() + + print(f"--- Stage finished in {time.time() - start_time:.2f}s ---\n") + + # 5. Return both the model and its hash to the orchestrator + return output_model, self.hash + + def evaluate(self, model): + if model is None: + raise ValueError("No model to evaluate. Run the stage first.") + # After loading it is not compiled I think.... + model.compile( + optimizer="adam", + loss="categorical_crossentropy", + metrics=["accuracy"], + ) + if "dataset" in self.config.parameters.keys(): + data = load_data(self.config.parameters["dataset"]) + loss, accuracy = model.evaluate( + data["x_test"], data["y_test"], verbose=0 + ) + print("Evaluation results:") + print(f"Loss: {loss:.4f}, Accuracy: {accuracy:.4f}") + + def compute_complexity(self, model): + complexity = compute_space_complexity_model(model) + print("Space complexity of the model:") + print(complexity) From 14a367ce7a339cc2333beaf3d3d2854cf50885c0 Mon Sep 17 00:00:00 2001 From: Francisco Rossi Date: Tue, 10 Jun 2025 09:23:28 -0300 Subject: [PATCH 03/26] Make alpha init work --- .../__init__.py | 0 .../serialization.py | 0 .../serialization_test.py | 0 src/stage/functions.py | 8 ++++++-- src/stage/main.py | 12 ++++++++++++ src/stage/stage.py | 2 +- 6 files changed, 19 insertions(+), 3 deletions(-) rename src/configs/{serialization_module => serialization}/__init__.py (100%) rename src/configs/{serialization_module => serialization}/serialization.py (100%) rename src/configs/{serialization_module => serialization}/serialization_test.py (100%) diff --git a/src/configs/serialization_module/__init__.py b/src/configs/serialization/__init__.py similarity index 100% rename from src/configs/serialization_module/__init__.py rename to src/configs/serialization/__init__.py diff --git a/src/configs/serialization_module/serialization.py b/src/configs/serialization/serialization.py similarity index 100% rename from src/configs/serialization_module/serialization.py rename to src/configs/serialization/serialization.py diff --git a/src/configs/serialization_module/serialization_test.py b/src/configs/serialization/serialization_test.py similarity index 100% rename from src/configs/serialization_module/serialization_test.py rename to src/configs/serialization/serialization_test.py diff --git a/src/stage/functions.py b/src/stage/functions.py index b7acdc6..3e06394 100644 --- a/src/stage/functions.py +++ b/src/stage/functions.py @@ -335,12 +335,16 @@ def apply_alpha_dict(q_model, alpha_dict): return q_model -def model_initialize_parameters(model, **params) -> tf.keras.Model: +def model_initialize_parameters(model, ref_model, **params) -> tf.keras.Model: """Initializes quantization parameters (alphas) using a reference model.""" print("Function: model_initialize_parameters called") + if ref_model is None: + raise ValueError( + "model_initialize_parameters requires a ref_model, but none was provided." + ) if params["type"] == "alpha": data = load_data(params["dataset"]) - alpha_dict = compute_alpha_dict(model, data["x_train"]) + alpha_dict = compute_alpha_dict(ref_model, data["x_train"]) model = apply_alpha_dict(model, alpha_dict) return model raise ValueError( diff --git a/src/stage/main.py b/src/stage/main.py index 0a6cf21..2e769a2 100644 --- a/src/stage/main.py +++ b/src/stage/main.py @@ -1,5 +1,7 @@ # main.py +from functools import partial + import tensorflow as tf from functions import FUNCTION_MAP @@ -159,10 +161,20 @@ # The loop's responsibility is to pass the state (model & hash) between stages for stage in pipeline: + # We need to set the ref model + if stage.initial_config["name"] == "alpha_initialization": + assert ( + ref_model is not None + ), "Reference model for alpha initialization is not set." + stage.function = partial(stage.function, ref_model=ref_model) model, previous_hash = stage.run( input_model=model, previous_hash=previous_hash ) + # Save the ref model after the last stage we dont quantize + if stage.initial_config["name"] == "pbnf_training": + ref_model = tf.keras.models.clone_model(model) + stage.evaluate(model) stage.compute_complexity(model) diff --git a/src/stage/stage.py b/src/stage/stage.py index a61eb8d..914213e 100644 --- a/src/stage/stage.py +++ b/src/stage/stage.py @@ -15,7 +15,7 @@ from tensorflow.keras.datasets import mnist from tensorflow.keras.utils import to_categorical -from configs.serialization_module.serialization import load_qmodel, save_qmodel +from configs.serialization.serialization import load_qmodel, save_qmodel from utils.metrics import compute_space_complexity_model From bbe4cb014f10f8a0570f48073d3ce22b3fbbcbb2 Mon Sep 17 00:00:00 2001 From: Francisco Rossi Date: Tue, 10 Jun 2025 09:25:52 -0300 Subject: [PATCH 04/26] Remove old implementation --- src/checkpoint/README.md | 3 -- src/checkpoint/__init__.py | 0 src/checkpoint/main.py | 28 -------------- src/checkpoint/stage.py | 73 ------------------------------------ src/checkpoint/template.json | 29 -------------- 5 files changed, 133 deletions(-) delete mode 100644 src/checkpoint/README.md delete mode 100644 src/checkpoint/__init__.py delete mode 100644 src/checkpoint/main.py delete mode 100644 src/checkpoint/stage.py delete mode 100644 src/checkpoint/template.json diff --git a/src/checkpoint/README.md b/src/checkpoint/README.md deleted file mode 100644 index 8baed46..0000000 --- a/src/checkpoint/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# Checkpoint - -A module to generate saveable/loadable checkpoints for tensorflow models. diff --git a/src/checkpoint/__init__.py b/src/checkpoint/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/src/checkpoint/main.py b/src/checkpoint/main.py deleted file mode 100644 index 9bb238a..0000000 --- a/src/checkpoint/main.py +++ /dev/null @@ -1,28 +0,0 @@ -import tensorflow as tf - -from checkpoint.stage import Stage - - -def dummy_model_function(model, *args, **kwargs): - """A dummy function to simulate model creation.""" - model = tf.keras.models.Sequential( - [ - tf.keras.layers.Dense(64, activation="relu", input_shape=(32,)), - tf.keras.layers.Dense(10, activation="softmax"), - ] - ) - print("Model created with args:", args, "and kwargs:", kwargs) - return model - - -if __name__ == "__main__": - # Example usage of Stage class - stage = Stage( - id=0, - name="Initial Model Creation", - previous_stage=None, - function=dummy_model_function, - function_kwargs={"arg1": "value1", "arg2": "value2"}, - ) - - stage.run() diff --git a/src/checkpoint/stage.py b/src/checkpoint/stage.py deleted file mode 100644 index c0605cb..0000000 --- a/src/checkpoint/stage.py +++ /dev/null @@ -1,73 +0,0 @@ -from __future__ import annotations - -import pickle -from pathlib import Path -from typing import Callable, Optional - -import tensorflow as tf - - -class Stage: - def __init__( - self, - id: int, - name: str, - function: Callable, # Function to run for this stage - function_kwargs: dict, # Arguments for the function - previous_stage: Optional[Stage] = None, - ): - self.id = id - self.name = name - self.previous_stage = previous_stage - self.function = function - self.function_kwargs = function_kwargs - self.model_path = Path( - f"output/{name.lower().replace(' ', '_')}_stage_{id}" - ) - - # Ensure the model path exists - self.model_path.parent.mkdir(parents=True, exist_ok=True) - - def to_pickle(self, file: Path) -> bytes: - """Serialize the stage to a pickle byte string.""" - with file.open("wb") as f: - pickle.dump(self, f) - - @staticmethod - def from_pickle(file: Path): - """Deserialize the stage from a pickle byte string.""" - with file.open("rb") as f: - return pickle.load(f) - - def save_model(self, model: tf.keras.Model): - """Save the model to a specified output path.""" - model.save(model.path / "model.h5", save_format="h5") - print(f"Model saved to {model.path / 'model.h5'}") - - def load_model(self) -> tf.keras.Model: - """Load the model from a specified output path.""" - if self.model_path.exists(): - model = tf.keras.models.load_model(self.model_path / "model.h5") - print(f"Model loaded from {self.model_path}") - return model - - def run(self, force_run: bool = False): - """Run the stage function and save the model.""" - print(f"Running stage {self.id}: {self.name}") - - if self.model_path.exists() and not force_run: - print(f"Loading model from {self.model_path}") - model = self.load_model() - else: - # Run the function associated with the stage - model = self.function(model=model, **self.function_kwargs) - - # Save the model to the specified path - self.save_model(model) - print(f"Model saved to {self.model_path}") - - # Save the stage to a pickle file - self.to_pickle(self.model_path.with_suffix(".pkl")) - print( - f"Stage {self.id} saved to {self.model_path.with_suffix('.pkl')}" - ) diff --git a/src/checkpoint/template.json b/src/checkpoint/template.json deleted file mode 100644 index f04c1e5..0000000 --- a/src/checkpoint/template.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - // The stage of the checkpoint - // This can be: - // - "new" for a simple model created and store BEFORE any training o processing. - // - "train" for a model that has been trained WITHOUT quantization, as a starting point for quantization. - // - "quant" for a model that has been trained and quantized, as a starting point before QAT. - // - "eval" a model after QAT has been applied, the final model. - "model_name": "lenet5", - "path": "/path/to/model/model.keras", // The path to the checkpoint file - "stage": "train", - "hyperparameters": { - // The hyperparameters used for this stage if any - "training": { - // The learning rate used for training - "learning_rate": 0.001, - // The batch size used for training - "batch_size": 32, - // The number of epochs used for training - "epochs": 10, - // The optimizer used for training - "optimizer": "adam", - // The loss function used for training - "loss_function": "cross_entropy", - }, - "quantization_config": "/path/to/qconfig.pkl", // The path to the quantization configuration file - }, - "previous_stage_hash": "abc123", // The hash of the previous stage, generated by... - -} From d942af0cdbb6c127a3e9ef58282795a809433fcc Mon Sep 17 00:00:00 2001 From: Francisco Rossi Date: Fri, 13 Jun 2025 19:45:40 -0300 Subject: [PATCH 05/26] Some improvements --- src/stage/main.py | 5 +-- src/stage/stage.py | 78 ++++++++++++++++++++-------------------------- 2 files changed, 35 insertions(+), 48 deletions(-) mode change 100644 => 100755 src/stage/main.py diff --git a/src/stage/main.py b/src/stage/main.py old mode 100644 new mode 100755 index 2e769a2..aa9c3a3 --- a/src/stage/main.py +++ b/src/stage/main.py @@ -1,4 +1,4 @@ -# main.py +#!/usr/bin/env python3 from functools import partial @@ -88,7 +88,6 @@ {"type": "uniform", "bits": 8}, ], }, - "is_quantized": True, }, # Stage 5: Alpha initialization { @@ -116,7 +115,6 @@ "learning_rate": 0.0001, "validation_split": 0.1, }, - "is_quantized": True, }, { "name": "final_evaluation", @@ -127,7 +125,6 @@ "input_shape": [None, 28, 28, 1], "categories": 10, }, - "is_quantized": True, }, ] diff --git a/src/stage/stage.py b/src/stage/stage.py index 914213e..e4ff1cc 100644 --- a/src/stage/stage.py +++ b/src/stage/stage.py @@ -1,7 +1,8 @@ -# stage.py +# stage from __future__ import annotations +import functools import hashlib import json import time @@ -50,11 +51,18 @@ class StageConfig: """ name: str + function: str seed: int parameters: Dict[str, Any] - # The crucial link: the hash of the stage that came before this one. previous_hash: Optional[str] = None + def to_hash(self) -> str: + """Generates a unique hash for this configuration.""" + # asdict converts the dataclass to a dictionary. + # sort_keys ensures the hash is consistent. + config_str = json.dumps(asdict(self), sort_keys=True) + return hashlib.md5(config_str.encode()).hexdigest() + class Stage: def __init__( @@ -64,22 +72,12 @@ def __init__( ): self.function = function self.initial_config = initial_config - print(f"initial_config: {self.initial_config}") - self.config: Optional[StageConfig] = None # Will be set at runtime - self.hash: Optional[str] = None - self.checkpoint_dir = Path( - "checkpoints" - ) # Use a dedicated checkpoint dir + self.config: StageConfig = None # Will be set at runtime + self.hash: str = None + self.checkpoint_dir = Path("checkpoints") self.checkpoint_dir.mkdir(parents=True, exist_ok=True) self.is_quantized = initial_config.get("is_quantized", False) - def _generate_hash(self) -> str: - """Generates a unique hash from the immutable StageConfig.""" - # asdict converts the dataclass to a dictionary. - # sort_keys ensures the hash is consistent. - config_str = json.dumps(asdict(self.config), sort_keys=True) - return hashlib.md5(config_str.encode()).hexdigest() - def _save_metadata(self): """Saves the current stage configuration to a JSON file. @@ -101,14 +99,17 @@ def _save_model(self, model: tf.keras.Model): if self.hash is None: raise ValueError("Hash is not set. Run the stage first.") - if self.is_quantized: - model_path = self.checkpoint_dir / f"{self.hash}" - save_qmodel(model, model_path) - print(f"Quantized model saved to '{model_path}'") - else: - model_path = self.checkpoint_dir / f"{self.hash}.keras" - model.save(model_path) - print(f"Model saved to '{model_path}'") + # if self.is_quantized: + # model_path = self.checkpoint_dir / f"{self.hash}" + # save_qmodel(model, model_path) + # print(f"Quantized model saved to '{model_path}'") + # else: + # model_path = self.checkpoint_dir / f"{self.hash}.keras" + # model.save(model_path) + # print(f"Model saved to '{model_path}'") + model_path = self.checkpoint_dir / f"{self.hash}" + save_qmodel(model, model_path) + print(f"Model saved to '{model_path}'") def save(self, model: tf.keras.Model): """Saves the model and its configuration to disk. @@ -135,46 +136,35 @@ def run( # 1. Create the final, traceable config for this run self.config = StageConfig( name=self.initial_config["name"], - seed=self.initial_config.get( - "seed", int(time.time()) - ), # Use a seed or timestamp + seed=self.initial_config.get("seed", int(time.time())), + function=( + self.function.__name__ + if not isinstance(self.function, functools.partial) + else self.function.func.__name__ + ), parameters=self.initial_config["kwargs"], previous_hash=previous_hash, ) # 2. Generate the unique hash for this specific configuration - self.hash = self._generate_hash() - - model_path = self.checkpoint_dir / f"{self.hash}" - if not self.is_quantized: - model_path = self.checkpoint_dir / f"{self.hash}.keras" - self.checkpoint_dir / f"{self.hash}.json" + self.hash = self.config.to_hash() print(f"--- Running Stage({self.config.name}) ---") print(f" Hash: {self.hash}") print(f" Depends on: {self.config.previous_hash}") + model_path = self.checkpoint_dir / f"{self.hash}" # 3. Checkpoint logic: If a model with this exact history exists, load it. if model_path.exists(): print(f" Checkpoint FOUND. Loading model from '{model_path}'") - if self.is_quantized: - output_model = load_qmodel(model_path) - else: - output_model = tf.keras.models.load_model( - model_path, compile=False - ) + output_model = load_qmodel(model_path) else: print(" Checkpoint NOT FOUND. Executing function...") output_model = self.function( model=input_model, **self.config.parameters ) - # 4. Save the work using the hash as the filename - self._save_model(output_model) - - # --- THIS IS YOUR TRACEABILITY --- - # Save the configuration (metadata) that produced this model. - self._save_metadata() + self.save(output_model) print(f"--- Stage finished in {time.time() - start_time:.2f}s ---\n") From 35aba8fe472b7e2753126ebe26cade23b284ef4f Mon Sep 17 00:00:00 2001 From: Francisco Rossi Date: Tue, 24 Jun 2025 10:05:18 -0300 Subject: [PATCH 06/26] WIP --- docker/Dockerfile | 3 +- functions.diff | 99 +++++++++ org.MD | 21 ++ src/quantizers/flex_quantizer.py | 12 +- src/quantizers/integration_test.py | 46 +++++ src/quantizers/uniform_quantizer.py | 2 +- ...cifar_10_lenet5_model_accuracy_vs_size.png | Bin 0 -> 157278 bytes ...on_mnist_lenet5_model_accuracy_vs_size.png | Bin 0 -> 165638 bytes src/stage/flex_main.py | 195 ++++++++++++++++++ src/stage/functions.py | 189 ++++++++++++----- src/stage/main.py | 182 ++++++++++++++-- src/stage/model_accuracy_vs_size.png | Bin 0 -> 350687 bytes src/stage/plot.py | 136 ++++++++++++ src/stage/stage.py | 161 ++++++++------- src/utils/metrics.py | 10 +- src/utils/metrics_integration_test.py | 62 ++++++ 16 files changed, 970 insertions(+), 148 deletions(-) create mode 100644 functions.diff create mode 100644 org.MD create mode 100755 src/quantizers/integration_test.py create mode 100644 src/stage/cifar_10_lenet5_model_accuracy_vs_size.png create mode 100644 src/stage/fashion_mnist_lenet5_model_accuracy_vs_size.png create mode 100755 src/stage/flex_main.py create mode 100644 src/stage/model_accuracy_vs_size.png create mode 100644 src/stage/plot.py diff --git a/docker/Dockerfile b/docker/Dockerfile index d7f97d3..ef5fbcb 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -5,7 +5,8 @@ RUN pip3 install \ matplotlib \ scikit-learn \ tensorflow-model-optimization \ - kagglehub + kagglehub \ + pandas # Set backward compatibility for tfmot RUN pip3 install tf_keras --no-deps diff --git a/functions.diff b/functions.diff new file mode 100644 index 0000000..1d2b0d0 --- /dev/null +++ b/functions.diff @@ -0,0 +1,99 @@ +diff --git a/src/stage/functions.py b/src/stage/functions.py +index 3e06394..919615c 100644 +--- a/src/stage/functions.py ++++ b/src/stage/functions.py +@@ -277,62 +277,49 @@ def model_quantize(model: tf.keras.Model, **params) -> tf.keras.Model: + + # --- Alpha Initialization for QAT --- + +- +-def compute_alpha_dict(model, x_train, batch_size=128): +- """Computes alpha values for weights and activations.""" +- alpha_dict = {} +- # Compute weight alphas +- for layer in tqdm( +- model.layers, +- desc="Computing weight alphas", +- file=sys.stdout, +- leave=False, +- ): +- if layer.get_weights(): +- alpha_dict[layer.name] = {} +- # Simplified alpha calculation for weights +- weights = layer.get_weights()[0] +- alpha_dict[layer.name]["kernel"] = np.max(np.abs(weights)) +- +- # Compute activation alphas ++def get_activations_output(model, x_train, batch_size=128): ++ """Gets the activations of the model for the training data.""" + intermediate_model = models.Model( + inputs=model.input, outputs=[layer.output for layer in model.layers] + ) + activations = intermediate_model.predict( + x_train, batch_size=batch_size, verbose=0 + ) ++ return activations ++ ++def compute_alpha_dict(model, x_train, batch_size=128): ++ """Computes alpha values for weights and activations in a single comprehension.""" ++ activations = get_activations_output(model, x_train, batch_size) + +- for layer, activation_data in tqdm( +- zip(model.layers, activations), +- total=len(model.layers), +- desc="Computing activation alphas", +- file=sys.stdout, +- leave=False, +- ): +- if layer.name not in alpha_dict: +- alpha_dict[layer.name] = {} +- alpha_dict[layer.name]["activation"] = np.max(np.abs(activation_data)) ++ alpha_dict = { ++ layer.name: { ++ **{weight.name: np.max(np.abs(weight.numpy())) for weight in layer.weights}, ++ 'activation': np.max(np.abs(activation_data)) ++ } ++ for layer, activation_data in zip(model.layers, activations) ++ } + + return alpha_dict + +- +-def apply_alpha_dict(q_model, alpha_dict): ++def apply_alpha_dict(model, alpha_dict): + """Applies pre-computed alpha values to a quantized model.""" +- for layer in q_model.layers: +- original_name = layer.name.replace("quant_", "") +- if original_name in alpha_dict: +- for alpha_type in ["kernel", "activation"]: +- if new_alpha := alpha_dict[original_name].get(alpha_type): +- for weight_var in layer.weights: +- if ( +- alpha_type in weight_var.name +- and "alpha" in weight_var.name +- ): +- weight_var.assign(new_alpha) +- print( +- f"Updated {weight_var.name} with alpha: {new_alpha:.4f}" +- ) +- return q_model ++ for layer in model.layers: ++ original_layer_name = layer.name.replace("quant_", "") ++ ++ if original_layer_name not in alpha_dict: ++ continue ++ ++ for weight in layer.weights: ++ if weight.name not in alpha_dict[original_layer_name]: ++ continue ++ ++ # See the quantizers weight naming convention ++ # No name_suffix for now ++ weight.assign( ++ alpha_dict[original_layer_name][weight.name] ++ ) ++ print(f"Updated {weight.name} with alpha: {alpha_dict[original_layer_name][weight.name]:.4f}") ++ return model + + + def model_initialize_parameters(model, ref_model, **params) -> tf.keras.Model: diff --git a/org.MD b/org.MD new file mode 100644 index 0000000..e42f5d9 --- /dev/null +++ b/org.MD @@ -0,0 +1,21 @@ +# Dataset + - cifar10 has more characteristics +# Model + - Lenet5_custom_v2 + +# QConfig +All Uniform arithmetic +2->8 uniform + +Flex -- Uniform +4, 6 y 8 bits. +levels [2-20] que sean validos. + + +Setear la seed y probar un par de seeds. +3 runs con seeds distintas. + +Graficar la media y la varianza de todas las corridas. + +## Second step + - dsp vemos. diff --git a/src/quantizers/flex_quantizer.py b/src/quantizers/flex_quantizer.py index bec60cc..bed5988 100644 --- a/src/quantizers/flex_quantizer.py +++ b/src/quantizers/flex_quantizer.py @@ -157,10 +157,8 @@ def grad(upstream): ##### dq_dx uses STE ##### dq_dx = tf.where( tf.logical_and( - tf.greater_equal(x, self.thresholds[0]), - tf.less_equal( - x, self.thresholds[-1] - ), # should it be alpha? + tf.greater_equal(x, thresholds[0]), + tf.less_equal(x, thresholds[-1]), # should it be alpha? ), upstream, tf.zeros_like(x), @@ -207,7 +205,7 @@ def grad(upstream): ##### dq_dthresholds using piecewise-STE ##### dq_dthresholds = tf.zeros_like(thresholds) - for i in range(1, self.thresholds.shape[0] - 1): + for i in range(1, thresholds.shape[0] - 1): delta_y = qlevels[i - 1] - qlevels[i] delta_x = thresholds[i + 1] - thresholds[i - 1] @@ -215,8 +213,8 @@ def grad(upstream): # Fall within the range of the two borderline levels masked_upstream = tf.where( tf.logical_and( - tf.greater_equal(x, self.thresholds[i - 1]), - tf.less_equal(x, self.thresholds[i + 1]), + tf.greater_equal(x, thresholds[i - 1]), + tf.less_equal(x, thresholds[i + 1]), ), upstream, tf.zeros_like(x), diff --git a/src/quantizers/integration_test.py b/src/quantizers/integration_test.py new file mode 100755 index 0000000..913b794 --- /dev/null +++ b/src/quantizers/integration_test.py @@ -0,0 +1,46 @@ +#!/usr/bin/env python3 +import unittest + +from tensorflow.keras.layers import Dense +from tensorflow.keras.models import Sequential + +from configs.qmodel import apply_quantization +from quantizers.uniform_quantizer import UniformQuantizer + + +class TestQuantizers(unittest.TestCase): + def test_quantizers(self): + model = Sequential( + [ + Dense(10, activation="relu", input_shape=(20,), name="dense1"), + Dense(5, activation="softmax"), + ] + ) + + qconfig = { + "dense1": { + "weights": { + "kernel": UniformQuantizer( + bits=4, + signed=True, + ), + "bias": UniformQuantizer( + bits=4, + signed=True, + ), + }, + "activations": { + "activation": UniformQuantizer( + bits=4, + signed=True, + ) + }, + } + } + + apply_quantization(model, qconfig) + # print(quantized_model.weights) + + +if __name__ == "__main__": + unittest.main() diff --git a/src/quantizers/uniform_quantizer.py b/src/quantizers/uniform_quantizer.py index 384b848..2a3f7cd 100755 --- a/src/quantizers/uniform_quantizer.py +++ b/src/quantizers/uniform_quantizer.py @@ -66,10 +66,10 @@ def __call__(self, w): # Use epsilon to avoid dividing by zero during backpropagation. return tf.clip_by_value(w, tf.keras.backend.epsilon(), np.inf) + print(f"name is {name}") alpha = layer.add_weight( name=f"{name}{self.name_suffix}_alpha", initializer=self.initializer, - # shape=(1,), trainable=True, dtype=tf.float32, regularizer=self.regularizer, diff --git a/src/stage/cifar_10_lenet5_model_accuracy_vs_size.png b/src/stage/cifar_10_lenet5_model_accuracy_vs_size.png new file mode 100644 index 0000000000000000000000000000000000000000..8ecfb7ea688eda40ccc6fb61c297a6cccc554dfc GIT binary patch literal 157278 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

%niiEh5h z0R=n+4j`oVsKMr(J{ZK+WJh=@6}XJNAVZi)+3st+Q3Khn7cysxNWbnJs;#1d0rJB8 zvDbKHJnEQ>cB;k?0VMkJ=LUrslM*OQBom*NAem!Sw3?*2wX{PT`_e=XAHKlK9lhH# zkIZNy5RFXH8crC`-|)tM%r?EGTt(dq&Oe(9Km@2l)O8Xdgao9)@We0^`2*2(k;Q$E z(vDgCH`@#wo9_wan}vvTL*fIABhq8}NXRT$7niurvmblRlk5W$a;3RIjk-F2Wxm1* zrI6z)c^M?lkKBWBm_d#cgS=@HX#oevNrZ0~Lnc{37Rglt7#A)Pee@oQS~B&A^kkxM zd2Ov`q~~NXsXT>SrJ*KO(^>gHF2EpCJE&#U!-s#tD?0!siR?e12I{3p(I6(o_D>qs zvLZv`tzL5svIz@M#b81e`O}l2@Kt2`fMoa)deekFhR(Ma?i!{<_G2=I44YwKAkBNx z3nMaz8*jY4_6;%}%!9{mx(K);OX_c(vLWqaY>VNPffH(|~FOrUQ*S7P5aY@G#*i3&|!H)tcBcWC*@(o|wBB zK_Slpc|rr#3!Um2WNoag9Jv7mn{XxHPUL{q0jg?o)~o|BZFl+d3zqg%YF;0N;56jn zz!69wLKPuMvV1V-``+AK(SY>fUp9uz1cDyKWD6mc85 z&|%5w+?fYl@h5IB=PX}9wY=-=s{!g>7Aea@>oSA0Oa{@K>C+POuwh7snzXjV^@orp zAP|U*+LO6%;!yw3s8YU%76=QuDJ%`)FH2dBmN`-LX1YRs=Wzue2S?6-*htX@jRY@@ zO)dlgeBLtn_-Clf0;EENHH454$-~o>r$H|bFqiSjeDtmZe^PN`wcjJW`4%M;848ne!kiK6YsGrh9wZyXF`cNI%fzw#-xmdm`}hp|!R3Wy~l6MoMoVGv9>< z1;wF?H;%u50R;&#(9%LZR0oWN92Nqz5t4cDPyi}SFyOe!OKHHi3j|+#`etFK2TJ#I zxQZPX(x}pSlV!cU2bs?Rmb3wad&>915W*=DREie_d+sGYTBwE5snx31ZLuT}`N3y9BL0LQ9DA-Jxr?^H)&Cu{DZYw%V((<6IL;V+a z>&<0(jg^Y=YBIx0DY#~iGCw^+6j`2~#ooBqgA0%PBTY5|iF_QgqEuqIJ!WhsaMDd0 zX*KFDm^r|g%bg-Il(Rqbg>7z=Mi!+y;VH&NdA8o?f!y*VcTT-^yNRwA@9(uRp$QUI zR{uP6H!4FUj64gBX7j2<-^NS&na?nrTH@T(Fc*b{SL49Q6#Ng#epfbWiO4iSs5&Sh zAaE-zYR5O|pk#UqchEIBHWLPd1S&DO`?C*Wl^<^Z=?GorUb1v4vbA27B>8I>6@$e_ zp${;>rm9b-XGrYIQht9XCNqQq*GQ1Y%9b-;H!GP;t!e7JzWbZM4GWZr`AbsXljj7ItZ8(MFiAkmP!YH}jVgUNHzMO)wvr8Y`HFfqzVv%+Oh()g50YmN?I zJz3+Nj?L4DI$wx26n3#x|IwSj)SBNUQmC-!tV8JI?m;r> z5GkWaqSE0zi+T6&KS!1tL-(V(J^;cbuAYZEC#U-d`S2r2odBD<0F_`M|NF$6wp>Jj zoeUZyFd`8T#g_a}ltpH}35mlo;*%q{;O&2DrnCb8=E(Yj*#ksR<6tuq)rZh5)g4e#7Z8IyA@a{F4uTKK zIV46kz1QLloGM0 zPNz*w2~_21*dx3cChK*97G90J9ndh#X>Ub(8m4ezNLPrgcRsO$sP`@kp`Mb#7BWqR z65EyaRS^w~-212$EO?q6M01^2p#%z$UWX*Za-}{djDTJOl*1(K5kNRakJw5I6ih>N z1o~IY?Kr}wYYLFQLmrB3Qlu4h@_aBDjMANm<{wYO4U?1Ul>5)0KSvr*&{BC0=0U@R zZduphAQK;zpv30sMS2>P(<1xtt8o(r}>njUT`}ncof}SF&Kb zj!YV4BYMU3!!Ao8xU?DW^USD62WF$m^$}#$7NLqqeSJchHYAYk$6!+J?HU9H1IXwX zN#_wwmwaqY3LRx^#LZU70YLcCAa3%%=9~u4Pb^))7#@D{Q$i)l+{IZ?EqC!1DMkR z3kBRa6UipmKVrH$j$Eeo_Rf0pH*g8)(}DdJbw)18({NBqP)GxZg+x(g*w!b)X`g01~A@HIs*i z77!U3saHNEkLWUa7Qg~B2>jz&eqOi+tblr*fFell<032z7^v~^-xZgW_G9RvI1>Uv z^ZJ(EJrL*!m?NGyK5q}W*4=yeRG|p~L8wKadvw1$87-Mu>10qG7talBD|RGriKqw0 zO=uVBz+J9YzraEWsCYj&-oqw?LAdjZT+0MhLl_gJ8nUXYwEGzCWMD!1z$(hrPZzuy zMEZfVb_to%A$N|!|3?KP6Z_Z;IMX;?8o1JH1FkB=o+0m(>>zBYSM3eHfEq{fvQsgt zM<(o7Xt3;XJw|2BJpkm;#b59(O=4i51Z|8t}AvA;!)-mgTi@d_skmt&%bb=|oA^KV{#bL*!<1W)lHE?uhtp|TR6 zLM{7LTFM`}i;N@VpXL8ebKtO^AgCAn%_G1TZXMB%{#^S%pXmRv_nuKvW=+&6Go~>j zA|N85WI;fZWN=0h34%zJ=zxG^$r;R&k(@yhP(WZnayOuovyxh9g3#n9*yP-|j$!8g z{(bANb^qO7%Nd!W({s*Kr)uwAyMD4a08pMoRUdM1dFljt*3BC?ZpeUz>G#J;qaVxy z{P08tZenn>%5H3Iyx;_c2eKTXPW$zy{Aw1ztfk+3f+Y&r3fk1Wf^-+@Dxp3i0%oU) zXh8>b^dd^x`0t<3E!`^$@&*Uj<3HY$;_W*SZ6E+ln^6PQxya87pdvSw8$bU4d)~m_ zqF;X(T>w4lCdR7SE7k9UdpG?0||Lojv>gr+@#!^=2R$ zNuvJuv5)@O`u_T_{~tPLr?elV_(vP~UFh@{3;{~8v8}C5@z=ut_yG4fplB#6DpD~8 zOA$x6j#NDtw$YdG6_u1aq0uLq@#k0k`Dy92!5$8=b}i*Uvyxw5ckh}En6lK2~g@Ks( zK8|&O8whzoUv^bYuX4v87fgW}2g_H-zl6z=5HT$AG$y}O40!&ZPyV0R z{FvLy)zPT_|L%MI+F!rE{{QcU{_9FmQ2bx{#J}(QZc2Yy!gsq2MP@+yAXYa5ss}P7 zbPT{T#{T^#`{Tb?zW68dlD{8WTVHPlTntL|pikMlA{CN6=-kQ&ofi@G@{J9D{0wgB zspUVOMEw@jUx*d}q&JFC1<)qa$3w)I|6hOlpN`{;eGsMI0_CF%s6kg5B=e||6JRqg zIOw3C29mVE$h4oa5xvP6?f3h7<1Q4p0HQc&761&K1Dh137vpnt$(DS8Lo$fkbpxae z82kM85gPQoACKqC-{Z|#Bs$Z9@o4?B3S|-kYoVTvXF_>4WT)AHpi}_HR8;?P`qzwss{VL?3neZLQHrK(OMV#frf4_S_@Ncj0NX`2X&=OM&X-F`nOx8qb<#IBS``_RC z-o^I*gLb}AE<~5$IY>bz1Wy0=8}}X~A=RNp# zSOU0#jAB-5snza6eGE~eIUhWl|9xn`Kyu^zk02y*cR@>QA`^JR*RWv|*@18as0{}; zAfTuvzB&Hilg94g_@;yS^LFUU4$_d|rOt2xwgc}TUk~V61{5yJ6){mb5PTvfB53E; zK_ZP@yFeQ=gVLx5WZH-jRY00!^GT@x^2g(OkxNeZ+xVyiZVwMdB2GEvw74X9+41io z=L|xi(VqMQh&!7i9EUhyJYQWEHGJVV*RKV;7K?l(kkz8;Hb{y;L$%Zmbh zeBJ*_!B`pGy`xS}6T&j+g_0Pk4G!g6!go6ZsnO8Afts2tV7Jv8@z~7}vfpLokOE0p zd_AX1+;jGV|Asf*-&0qoc$m(dNx$rdU^$(?J~g@$_pbyqh^j*M)v-i^w7nPhu}y>j z_ddmYSioJ7(`})2FR)1`_?wy5#rG|8X+54hS16p}_a))pUbO|OBexBp-eV;1}S?Gy|>i@V+ zj)91t2SmgwrpSO7mfNxNDiY?}E(~IDd$`OJdJd)ueAUaNM?Mhp$Yv@8Z1cNuGKJ%^#eC)!_oiwE{~G>JKB>J zS(w;9C(uHJ)Cj_}EhWXp`?3j)cq-Q9;vzW94c0YeEO#k$c$o3VvBNpvISVW~z0|6O8LK1(+<^Y&lLsjb< z_TPqlf3){)xLuiAY;F);MzJ*`1Em2IdX=-o(42w{ko#dI#LwdC{JC>r%0C_iAvO!{ zSb99FY5*^L1&Y`%Q}jzvabM{A0!BA!P_Ii|Q2pjn6tF^Kp7VF%$$~4|GEcw zjH^&G#@7SHt_93(vE85^^7BWf=*gF+_PTn@ks{HDX8 z=|}t%@{9o@Tc{pnU2oy4jeE`h`@Zja*`*B=L|Q6L&D$dCL!$?>f?RXHN7}KV@6C#6 zkO0875RzkoOiKrNPY(ikIOw)z6sFvPX6i!HJ7^u?Ftvf8s0Ws>ux&GdDMNH16oY6~ zhcgNYf3WAkOm68AYI@5gfs6sMSkMvG67d*3&S((&2I}$FjvN2(ocsD+!Sowm zXAbS-Mzd$0IXF3W0U(zJSV}fhhim61ATAD|kMAbRa9F^Ppg2xa;k6dEA9{sC(T2bSK&O_)v+3hV6M^vd*kXVT5D$lWiwsSFJnn9}PIqTv z8NC+Mi%g$&zj$DH<*yIl=jq(@->+?85Cb$6H0iucaUVSh(mGbtZGa6lKtM7+IXUTn z-0&|5Bq02so4t7GZKD46e_!`fleGwzA&ir1A!h7H;}=^KK;Ws~ivd#70icCwX72>;{pKG$woX8POT_+ByRYyH*6+4?vcftT;UOJ&QV z;QL5wunYlOoOJ5wnU|=A5Q_Ys1`rPjbh)DI2oclk$$ytjhmQXI&RTWnL|bT<1RaxI zs*C4Z40KYz>kSzg0ERg|oHgUc*{yua#P5r1paiN2AzOv3S0&D$D2sqwzb#o(wChyQ zw_l%+!cO4IGo@sVv4U+6#PA30xZss`@O zy94(YV26Lzmq20)67Y%IpOrhj=<|iu1vl5dc@GvIDSy9p%c206H0wW>mM+NFmLe_L z4vETBN$T?!9=~y8ri4xKsPV*&R8w0d0+-BS@DKLjm+n5@QOo zhX+F&WC98H651eQ10+Zb2Gc;eybgb&F_Ips6!(*0WqG??!2>Vp@(8i$_F3aGO zpH(${+R_(vM$e_BGe&AMYUL~xBFWx98T{2z`;R)hvR%B)k`km38lS42Reh-JJMIm^ z{syzq&xiT3U!$@wq7fyKL%%`vH&Tggp)mw-ydzKYZb%5dgO5|(crFJVC1fg1!k{)5 z;*{T`Qvg?vedya&ZZWYq;=ifxef{vnM6gl>ao^2q-v~vS>n}C)Q<}!OBd4!Ls03Rt^3m?>2m__!8iSK}js5_V2d6*OINH)?X;^x$9w}5Fxvt zGUk#!$H9)eaR14N&{?{IdbW1AH{djolKO6O4~|$6N7{sub?R?>_M_I&V`2P2nWCm# zz;s`Zjg6@|!LMjR2RqW$qqPE?h+|;~D870kO$g*t6P{$`ZU?#+fQ+wZk{~E%!BM(; zjB;NiSW&@DfK?S!SOJHdFrDM);~u@QF9=hV-kB@1D~U;-Zs1ZM?Z>UPiQ=k^%7m2y z%3dHtSddJ%2!pm-_9z(CL6#kn$4*4*9`eqDA5!ru-h}iO`r+77YN-t62qJF*s8p{n z0VM#F=hQh6FeoFq4|oK@3Dk@awzz0O0TOQrAE4mE!i9VV;*lvNpauC>H!L>_lgc#j z;OGOuTM7B(Lp$|z%RH!DkXg;5kWFm(^QgR677;G%&V`{V*VR?LD{gA=E-pK3sQbBT z@h@bYrm57bd|0~eeQ0fx8zO14B?eA(1fxc#JrDwH5<#uVo)aSU7|_RP$^%jY0F(8u z=HH~dy%SRkboKJoE08<1ht~V*mBwVMgmY`&b7gB}KS45Rg{KSu{qeDiDfD#}f_fp& zvK2B|h(I^tW?zBkTOMc%h(OwPAaT_Y;mLSn7yx$>xA}qKIY<_*LG1+~W6a1dFbL=< zL#QKXiu+%n0dToy00UdT8~0n~Lc1lxUXeE`oOIBFejZ*KI_7VMBIh)8uAg|a63Mf_ zvx~RimrLDAr@@MlvNywQr{s?A_JW`EKnBKsO{1gtH>(?6I`i{Sct!?I3hq?QKTn4u zN%H(@u@;EVFzL%3f~Yz~tfyNbcDRCUgJJGU(*fCE8>fs$>&@9*-E$$Q*(=FackWRZ zzQ5-dJLIKyTKwkXw|lO_|NI`{&Nl&c>y)hO^Z;H+* zqykG z=4}h0IwuRzGIHkXMA9-s6|ybxr(#7y3#92YaQbyS-{V>Q_I$_#Z2XNp$Ec=T=`9rQ zR34&9ANGsY1A8F0Mi_l(a1D?&zvf%u@Qehhjhi1a9K6-L+shb^)s%4Gze2pi$km0uLTkZlbQN)HLU+#wlSR z5s{nLt{h*my?sGhn_nARtkj3~8HwfR-*=ci`y-h+QBnj|Hzp&SZKxSSJ!yU<-8N;M^223%BzjyUYyz}O)*|i&|}h%>o5*KI$v#^ zAgnm*tNTEnCFO7*jN1V!L8ydB^UVtg@DnqrOf_d4RqO=VV>ZD*HYq77O9XW@cSESb z_86dU;luOqlfE++F95go$X1SnwB5GC0d|Hh6cGSOr^TF#*?2>uMDLt z2Zp}0zcuTEi7Z~a_k6Q7OuM-7yg2jMG_(@XIjdq?lu_vt3{ygsPZ$B&APnLn5GDzk zUVsW3iM&AllB}-f3E2|De^EQyn04zDEpROdop&CTuRIbGdH`>udl6B+NLJW4@+%KI z(`Zs2b38WuOzd{`r_E9x7aMo+D=qUZl|I0#oWgXjFXXXjuw5w2@YTW;ax z=1JTm#yv+Twe7-ib&a!u5BAO^s}4_BE&APU>|Yy;jJZ>%lhU!hot|G6k>aD>{8E?B zfC28Yv5CYGRNWSw9tznSx(mf3Xv0eN*`Gr)$pz!YOff+5lp1{8OL5j7iMK!~j2u#Ckb z6bg#=R^eXITUUZy=+-J=?{APpCUS~KmV+?RhD{M!qeC04Hdm?}LW4j#3foc{>C_M! z6LFmVJdDbNOtN%C3aAd0iKF;D?MAu^w`UJfS%@S~?D$0&{9~k-z|MMp-qQq6ju_n4 z`I}GT(k+Yj%`BtwJJH-RA|AZrb!mT_evFQD@n8G zv3Y*mcc{GawS!Zau?y4ZD#4KDiHMikv>q4L9K^ckN|iNUXTKlnzQVyaTK*iwOn3V2 zKnIr>b`)k3f#et_c(5q~GKlnYfG66=et~wNcuUFB=uMzU%q1x~C4>(yRCEiA?i60Q zQL3e^-G$#d<0W{Yten>tx~|8kn=**GU(vPeZm)o2$deEvS|~lSDFafb)>B*Hb%Z7q zieG5oM!H;dP@qx`+8n07Eg@12I!(IZpeY;#n8XL2fC#(s0pcE*HCOjvIpK{Px)*3O z(r5J8%f?y{I??0F9PNWxwS`N+9TK@_gEl^Orw7&^by?l9Eop z@;Y*9yO_f)^5P_MF0btIEH^H`g^#ME0WXasCLPIsNjIOGGkGcaW`1S$*m>G#rv&9T zXN8(@xW4fBs%44Of5FI^6iW=iAKHw@zz_w?VTr^(9xD4^2p+p4n4%)rdJ*UXodcs_ z;KD&mrwJNL#3Uj}6gKMO5|2Ad>%QpUaZVUYbZ#0^bjM|6g4Y6Bp7`2rk7nB44_SA- zVEO})*&MRlAQF5bSJ$1Si1X$G7$U0}(=4(M1u4s6^H$!~Q7HGapkXO;_j z9{^kz9Tyj8DFwn;;26KFD50rRr6~fotU4&1Q16C;&hoF)R_A$wxw^AW#R-iIN}Hu= z1LXd^OrCSEc4n?0bSCdIbYsez_gY-96!$qNujc1&H0{B&_qBQH7CpzPhez4;P0gW* zezx=CJ?r*m^YeC#Bu9;#N=!UB_V~5fmA32S6%3{hk>1$BF(QFu!KN@lLU%>(qMmNjUiIl5M%O0o%6j(~g98C1`~w!o0XKq90-K!W^Y&;-|* z0``*uNv0(dWg#m%*k2ex(=PuBpu}=d_ci&3_-ZPL$5ZRplRoyBv%IDAc|ifg8Z_=_ zzl_Y&frkWwW-J!PNASoq#RFCdWkg#~0r0=*EQ7EgBT#au=>!t9tsd*j0P$5~N$B@( zJrH<)Q&DsW`Ne5*$8=!ipNHRZgNzByREn>{fwO!Vnxce;ez*qws_E=brpD#{bOv{YF$lb1JiN-s#Sf|ps@W{9 z6wK9pG7oUa;o7gWq{L1ZbGud12iV&kI&zVGdFM*<@6mBdDI0M_vYl$$l51@2YsZzB z3kM|jPLzec9I8yO4@n0AiC2^G61=JVy9DvE^cL5cjz~BX-6SA^4G>y0t zPZi?#Qw;R?&Z=}LBp*~2Uz=e(xM^V;r8hW2h+5LGF)27zl5zdoz4oDIUrq@zG~4xn;Ez6M|u4=nBF`YK2xJ$8NK!AUr? zw-nX^l>Vuj(9)@bD*?%A7n;!u=%pp--RKFh#5w>b(VU8FkoA3WV`PVl;yukb&%G4) z_F(!i9=h1@>xDtTy14P?G{KT*M?r$>3A7h&yWKM&H8RsD_ zuCykw5IFFQN778Gqo3b?E*xv8|M%0WFKp~=r#N4Elqp+sv|!2=WsI7mzD*FuIr!Cr zI&Y3@wUYZET+LVLSmR@v))SFP^$S~STP8<@#U@Hg1rr3f@XpVkGDQTRSh)}(sI#W5 zT)EmY^6*iH?Cx{>jYY?IBnz{nK^V*l^7<8SZI#iX*eha^ZvJTboM;Y%>>>v*0qOw@ zjJc7#f`zXD40-B$@#iDKh;ML?A{jigdIZytPY{)n0UfG-x+2#=f`%-E0b|0m=P@8L z{=9Yn%!GCgOhD49kl*~-kCKuH3cMkxVrj=lq;Y?E3h_DrZ|F?RL7|>(1b#TCpZVzLJ_a?#UVGT z29;lC0jeNi13-Zhdn62;(&M3q&jx5psbY19S;#yXm1a2|VIRZR6u{=^J@Mxvo|VQ&dKCyPD5k>Bh9}^2^kU#A0J;= zNm$qljkTRjy-|R>s7@sYNIo`Awe)IbD>4O`4kxrVPwep z!z%1IiW|qzNKa-ce{Qdw4J@0vf=Jc(?VP@fk&kRXR1t{m7-Vtklx?NGLu_zp~V!17MKOBbdRC!ai;^b$0n@g??o ztx43ccEI54kT;8w?-$UFWzGTgJ26uR-63e|6+LcCU0q!Q8XJ-PcHt)*ci%fQX4gK# zKxx9tfocBclbiKg&8sQPy)Q2=s6-QP+FdKzGG-YpCJ%AFxtlQLezEi3AT=F!xnq^( zsgt;XGBg6QKkZ`?@424BbPM-SL&a6BG_RxEmhtaNu?^KUBT{*`7OE*-*R>`ua8un* zn$qp&H(Zc$R2(wGWjFQZynCLQsL9tTrbyX7858&B{R%PJasIsvaV#c|D=0r-qn)yW zg{nh-AW1GZ!er*+8V z=cvc&Wv31`=ogA_E`>eQlV{8dW2}`_3a7rR)!Q;I;Xeq;Wb5UYc>5TFLlE*08}<~uf8RQH2o7^ikY^fj zb|Mwxt$NVBXoA=SQ#%=GxBDp=fXp6adw>@+xqBnJp~pY^!Yx6a1~6U+V5zP7iwvm9 z0G&0{I>P1c?)USIpfLC?U*Y}^w9uh&vgLI%P(A?4%$+TMfxfi#lTgoIcN>_nb>B87 zQWwqLUOc*`9~Jdh1)s&Sq0!UqHA5U>KQakZe|zd59rV~rxU=h4`6`w=J-5I^Pn5mw zI(&r~%%84((cNs8#V*WGtJKH2MKlZDdn4S9W{j5Z>lEP@3g_om5^4a;OUA!89LHLE$$tj81(knJ@Q+zF;K z%^Qa?0KK75Z#h{lvS3y5A~DC0jh+2gWqn%%1$(7fJx$|n?z|Sp)*UWAfwg+s}e^aZzSGl9|f4X=!RcM zxF}Zk|Iq0i>g?pjMT|x8DqU0UxONYdaxwNhh+w@Hb#PVl9X`a5(>IABBliF`S(?u< zK#`U`(?Gu_;>zb@N$d5g`OSKHvvvcOPnkXweqL>=j)5wE&w^+bW1>psuwy5cFA@8- zwb}-2bbPCBE#yAli^*~wm)qDhP!3*Na_G1gg^6LCOd*l0WJGPfFz3_LOR<%O9Q8f< zBd;xA{r)bvrg&g6UqN&*ve{ndFzvOSO>vQ@AG!ITbj${PPYw$8L6!u1O)V`|sE^+n z3gz3Wo`^~ZeozP(V2{QxfqoeZnplAnXx+we0AF<|W!X8XgjuP3pr@d}jPo4+PH`Q1 z7gu9gvE?eeV#D}izlhIK*$?AZ$5Pwzi5?2#-V%N6)Fd=EvM2+%vC_yihfrW35Hy8s z38GU{oL0?&BSeD|5nBcnAD^(THyAy?0UTS})C=UwU{S0PW91>52+gV{rtf^YmnW?6 z+yN`R0u?+Y_oXxIzzmpSehNGcp4FMCE6o&BHgdA-3!WH_i0BfE7|+v5z*MQ-ER-+R zTGl3Ff)`}TYm>_T9%9qOk1@^}r`+sBx)+bhcFAF#Vl`Z*G>3NUQ=)8AvL=biYhH)@ za*3uj6$hJWySDFtx|w3-@oc#IphJA*cphi##!jNjB$PeI3yIV-!Gwy+iu@{%T$L2l z{fFMBvsvzXPu5@b+btHG?Vdi7_XsY$I_UhsRj6sve#RG4SMU3cb#YUR>NDbL>W)QYmcaG|{DQ|^PHj}Xjz#Fm9HWA#^0sac!-pocURtUOZ8 z20)YwMnOpTiAHKd9i%dx17wXQc($SG&4|O;KGJs%0VBxmgOy$YL_VO9?*SRL#pa)p z;B$EwP~WFc0jk`*#?QfzfCbSly*s2_7`+=`0yCz-L?Zn{55NoP@m%s?z_e21o3m^7 z>}3q4_HWP~Q$A`ykf^d6=CXcCqj-9;Zy%#n{M+R-*-iB2rMIYHQKrhA4Fj9?drE3; zPT;rCL|u%Hm6H+`HDfD@FVB5g>REE|d48r|Kr1zv0x{du5I zH#Eu7El7ibVS>^2NB;QZAFGhWwXo23uY3=R%O7aylQZ)(uUfUWW24QhKmP(UE2WKU zHuq)8sZ&bI-Srb7@pZg>(Y9!MFVYhO zPlB5LAZHhWh883yjTnO#EJ)_+2EOg@H_}Qw{4PdoSGyo0LPJUu5QErN}zc^PW9r#l%TRl9u z8`3D;dX{?(MHJ)q7!0+>w}*aBh!;|<<#~Lq*6ADw>YJkc-Jo9&jWohF3=jO?4CyXv zr~uI%(oqV;B-t2>B*VT^!B(-EnE zC|_?Q7>k@?tE(FgM^N?*aEtV)AVJp--44UvOV=~!;B21;#8gCup$YZkswl2Ps||BdjJu$%qXDMAaBw7&ZHIA^TP}mpFka9$IXor` z(2Ca46+!7dpI0o|MnhYE0gf{B@%_1*gU{V3N5Z!j=xHYI>+3273cKaKdsSvWKVVIA zkC&xP`+AP5<4HFVcmQ6teHnr|9WZq&ImZ+{sN&8Cpg})S(7n^Q0hS-F&2%SwPH1&` z^Hq>h%u&%&ytx0RjPuV0)xaBpF3ESD=B#Wgj2QgX7bq`eV2HP3FOPCrTGA# z>y4($z3Eua5;Kh5rGrl9G!s(N%l3|mm~C&+;jdL&If!t3CgyqhZKYWaHofSfHl2E?y zH$=X_r$G!@vdlTCbjB*U9Z{<+`zSDe&3Oglkzk{M{C<)7J?ia8LdPIFA@YZA;J~5Z zKMWlTXbe)sGI@5;!+XFbS@zqSieTg`#f2E!PTIS7gB)p}*A$=4WAXpPefyqU<#W$P z4L6*VI@jC0pu7WlQ{0D`az>lEM|bqq|K4}l~oi zDhZQIB(CM9C%T~yd8C|WbGfL(a!8D78yVHr>tQofijiH$yY#EvM>|4nTr7@N9j2Wu(Vf58$u-&iexC1x=IWg3q~_@ zUom~e^LH_!zdE$^IGO6%_PrVGXqRRrO>*{+c7&DIr83)x$jW}Em0Sy+Z5;eOdNjQA z9bm866<~J{c-wUNKvRk|i%4_?^pV#q$Sj8Y`@4h6YZP2{0wyLV;-tM?0fOb^r+`|v zByS;uRpOB+YajdOjh=UVj5s3cm&N=0`!}UIVO1`A&oMrc{J<#0Z+P+I+VbjZ*&H2) z^6|*(fiXR=w`=x9sv{Uu<+Hj1h1FepKYQg%y9A8n(`~WMLnTK!yJ@L*_Rl?~t|hKv zX#%csux775=|AQifgjf5^NX@t`<%V9gVpg`p%G#&SlFIklw&*WeEdvcMPEJh@6@^q z3Ua0UH6OWlDpHjWoi1>9m;}=#)^-V=(ZUuMCeOQfC%1>zSnRL@X*SDw)`BH_NlMoQ zv`B++n$~thtKkKb#7Hl z$$7S^pw%Kkppu;`Ku;Xn6z}j*h53@Ea>P9^md6~+%SL)_3#=Eu?C*A+YpXw6Y8OP) zVi7XsAz4_yKBbcqAS*pY3%Ig+;k}c~YnImnUzLmWwdtZdJ6nFgNuNHSF!qHxLq?VD6Q?U2JWCsmf{c zlWbXEr$otv^1?#7^k&mW=Gl4vi=s|?7H-vlJt%AEb4or}v4?T;*sN3ch|e?JF2Tns z%_eSe>=1n$Wx^g6-RfPJ+L&{p+99T3Ew(J^$<8Y;n6triP_ zD#Uleg0%a1UdDKmg4Na2@Isj)NM9< zedDlw_ph`V<|K^zG28Gp`wUlBi2D|2pKre`|Ogx3LdCv7I9-vuCTvAgb}4DZ6ZjY z`eW9cDcvSq;)uSX2C4SHtA_ad=a9{``0&))Zcyljp7tLOlo{2Yd+EHpYP2+%FaLS zmD=3wujW_bR6ENsbiAPW8_}oQr98!<@pvtd0QgFWm14(vNlj|Lh1PgZ8B)NPG6z%a zO0IoK%`wRfEG&h6Hru0g)&61LW2^t6^ zO5cm%XcCV8)6m@_5H!@&RegK1zFJzH>=p{Ls*5PTg(&$@5I)Fm*T~j}`7Xc0+A5rJ zkV9|5byNNoYhqhno9q{lZ;T3`+uUaT%{aAI`U+)ZTk0lkw-j1S>LHv3i7@n!ew^&B z#TyCaeicxrO*gHXsCwic$;nRm!rE0Z))=Vkct;}U!nKB|gu?YtbSa@;Ox&tm1sDT4 zEU8AVu1`6KpvC_tr0#HV=!JdgHUldeaX14RsghY`s&`lN8xn`NCw#-Kt*wLdeOGck z@S9urYhUKQdd2Fy*_G;=+tS=T3K}V16M2F{hg}a01nqtiIt-9sQ7N;#oeD>!fUVxh zq&h4=7aQE1nbHyp871?S&Esjs_^IwauXH8Xn#Ng-oIXT7oWyv!Xn0R=NiP2G^k}-! z^}{WZaK2A_ZS9>dG3iOJt1fO8n;ojwxfMUZ^Wp1!ITwh9RwfEBBCWZOUX7j>AiB^$9)+a=(>0Ml01R$vd z-LirWG_~RiI(%2(5#WYlDDJ0F8szsS1sR>gUg^nJ&`)zvc4#QQWM>)HW35MsVvnYx zDzLU!klK{f-`*gVtalM|NmJCe1#no2zS-TD8zCL1qEZfh>rXDPUW&}3$&x!GR4rsv zI@aiX#_NuJYrMMlx5z?%eQk{se`5XHQ-yptE^BNrKFAcSs$wx(dDt&TSkLAnvi{Tf z#T_mKW4;GmlEk^~gzZ)f8EOzWhr-E_{&g3W7lCV4Yn26%tL52tfc%(%4(dox<sJbntdsum%3JP=R!+*8^f93bi89cw)O3Nv^a zrZpG-(KW04#`oN!|8VsIo$%BBUQUp_xK&hL?N!ZIs`ao?X{Ky+fo)LEe^I9(A7fzF z5$fdQT&2u*!eJ-+-7`%gij#FdYw}VXWA9gad4krzJ!2i(8v5{za7oBQ_d1(~Jzj#{uHU>x2WTB|65UJTG0xcaDWc#tpwJw&|~l7TkSt`avbB#MMW?$ZaeQ`~KR4Nhyrr?udP6 zL&UymvBhtiAAAnoswfkjF^{E_PWsYSb2OK9?~3&qfgC9#2RmErRIsADNUJC{eFBUN z7m-50*HV&29oWi}U8?-*VZZUAeSMU7T~&ewSmkpkcpu>e-=le;&`5)6&$e<&@oM5(DUH6x>w2x2M(oxXX;;{x$F> z)j7au%GJ~7Mf5tSowteAyVeHxKI|ibQK}5!5?c4Fiz=)Wsi9O<0eUHww8B2^+F^u|fk-3HH3LMWIJBuIWjuZ=2oAUW(}TdsYvwjdjgA)RdMs@X8L* z+xyiOxsOagT&nvf>bE3{*0K&IvAWQ{E+;3o{S7ReYbe(|TES0lG>|9HU#D_LD_rWa zUJQ&p5dZ{?R!d9kz@Qr(?gcP;9eaC}VR*g%O@2Oe-62X|s58TrGFT#~y{o(zn>bBD zW-8#d`d+4QXle2RXop;Dt@lFLbGNWvQ*AFJ z$c7`r#HrOPqP*)C8bO3e0yVFE2&hagaN zp|ipiaH`M!{ingXClpMu8i2`dxNzo=8_m#kU$x%uRz*#fY^XN8yIR`NAiGOq(Gl@H zeW^%ZVId%&-Fh+o4$i%g{V=x)DSSFk8}Bt+doQ`NNFpZJDiEU+=5x)VuL%sRHr{?I zE@kyyCrXnljpqU^TvzR$R6^EjuEMy{(EdKzV%)dDMZ(rF+1Go{+L(Cg zxx8EwEH|m7w9@viG84|q%4)P*LoEbS0#QT!JoFrvfln!=rww0h5ZK|0+9y(uz^zZX zekn2N&VxKFDk?u+-08&9VmBf;)S`-feuD#*H3l4XoQxXu3x0+pL^k7{&+TPPrB}B8 zvGdy@Jf)7a=Kc0t`_6v+!MsTir*eZ2?Y7Z7!FPC->#H2Hn)aA#t&y{*j$p<&xjgzUR$3wR;JqZMgs+fe2J$^Eg@{pXDeNiDs{)EmS`lp z_-EO94VJ2nHvgseAondi>!wxj;uljYN|{p*i%qOvYx68 z#z>2f=pe)WmldrnEdwZhzdZ`auZ4aZ-WeRO1BBmrEc+@hVa2wN@1@$bCQE31Y#_UW zw)2yPW2v`frbGvxvV>o&mE=!kqRbsU3FW8ZO^3yFIo!4IrpV?|h+rr3y+4etk1r&Q zf{$LHOUQxWRSpy3chWu_*rpdB-s~+Mt!Jos@X^6diK z@ckHW&54*f#kn8ZO)Ei01V*H|7{o$Kt{?A$J|4sr$br$dq4*Nj8ukBm8#% z$~C{iZ>looPABI^>t4B$1LSIn#>@^A@l>&fz4T=~W7TB+;|s^n`X8WpHT9Ii&L3Pt z6yz+{vfV0)hNNe*+bRR20ElTAweU=yUu@~sb%N2laY-co6lhV34>kg-CFy`Qj>fL;+c;>fEm9dNaBDapP z@2-YVe5rWFYILtZ{o2}+;`rxJ0|_BdkJ=WP`{)Y`o13_4ToYmvVvCK`s|U|raPm|WD+yMLU!vGt^_n8^~1Y!!}a2mNz@R`?r3Uh)d9vzfHU}t zH%d@Zr5)ZfZUPMl4n0~rba*ZwOvPL`H9a-u4+4_34m@>$9NG{5ew(lT0%xr3 z3n}ZAjTR#yyOrq?k=TJ;%@%In>HzQ&dDmg;SZ*-jP6+Y9^HnZ)Udg+{NEBkX$y@$mzQQJNWd^F<9cr7SsUTaa zeJwk}hb&KspfG*@wF?@N!oR`c-zukIL zEz&yf=+Hvx_Py5PA1q+yGty?DMg;bWH)*96@Dq z#+U}uZE9sYozTX_52j|2-FckDq7W;yR^CwuZPAOXiGU>~K_2J;U9*$=edip(wdOz`4uh(-@lziJl*pA-dW&taML&udi^haG3 zBgN-89VO;vxe^!5#1smsK0lg0m$w3gh(-?^um1%D0xO3JM&BONeJ=zMii0Z&^O-dz zMZ{v+;KWtP9V++-x+vChemgjSe^emA{@?(gu9INK72xlGUL&(sU4fAXZf+BZ2sH1y z1(qGuLJV2S=cxWOEP(7qk&~GxEk{@EF>g^Gy^G6Ud2qd z7{J+>U0$ThB$apg@Kx>1*-tW(V@k2?V6!C=_Y9Pp)J6)fWdH6RR!zwoySA-|PPw*y zckNp0NQZgS>|94utMfOvyFL#@%t@I0-L@l3;5zhK?Y-){-RsID4-dJnWoNp3Dh$8U z+R{im=2RnQZ#_IIZR2_CjEg&WwbwwELyk}Aok83KJ0;uU55+iRvEq(@M(+hXQ&3Xe z9>A>j`&aMa+h5=}CKbFlTBw{RX-hK?^ZC0^z4RBYDtKpVEWrq-oetI}a(|5e_MU6~ zBVE;TU{T;Y!7GIJC3MM?&FRdHQNmQ7{c1WLN^z#|0 zf0K2(oMIF@dU~w&^*QKd*H=>3Kjg2~(l=<;=j?hqCb_HB{qvVS-qocRA(mvHd+UBo zA^QD<3VvDY7HyF_ILwEvrR>jdz)hJ_>N`j@a{F|A$QMlXEC-ysu9INGxPn|QI*_5F zB-25r_4!)tEnyg65CqMvG??HtuMV#vYBiaSu|L=F0GD7#j@om%4`;PHDDN>2T|a2)nkL zTbEVKXabLUy`17H`}(Sd$36YYiD zcp*v2(d*2E-7cZCXP0abPh=k2Pr3=^$=x&kV!i(Uy^ow9GB_T$KPl15ej?dV)JJ^f zOS72GRS!5BlYc93|7u`jd~g2pv-0-ih8FixJ)2^ zxxM!w?EXKR&EKIsK%S#(qaJ9Al+*d1Jvo5}Jzui(mFqeJ4dp}|T9xTAkA2xs1c+H! zx?GUV;?~Z$48bq-Gx9Log@*n%_PIGC+0>3-26HKfZ+`YFZa~U$aAno2{awzect>6! zq%sb8e%A(mrY{V0`#8GZ4n7a?+h`Ud)#2T0GbX$1pZIABy*NA8{49}>keI@BkM915 z{&G%+g`L@$veoPFMuQ1T*1^-@=3)v>6(0DRnVJ1Ap($JTV0Ze(MW6tcE2LM@PqPB2~QjTxaK}dJe)Rr-Q92Trosn@@yuhn*wO z;*Fn`f7m~9bG(3mZ|rO-aWJSo?qo+_^4z7+mCLvDvQrU=Ftzqb!f$ExL?s0bM!Beh zQjCWHzUSA0E$t~Psw_=zXnw3Xh&y-p^LFQmIG_No*g@0p-09)eG4+)Hc?ry2f+)7I|Bjr7-k0BxKQZYsRQ(qC0eNt z)i&sCxuE;cZ58X^DQ-K@S+>_l>I)jO>guoV8%w~18P5qs6o02oR(BfpE$X`a3ymgs zmH>xrSF@vcH1u=ZjS{o*T$rPo9@&u^(0Nwg{C7%eM()CKV>1c*_|-?xwkzthT@P1Z z&zi>MReO-40NZmp+%R{zQH!m@C0X)#91p{7x-Fd~Yhh%DaT~?)f`;A5be-QV&B%IEL)b}#Ds zlDgM1bZVigc>@gOotD7@()5sGMNF@OX8NYDlOH}WRM(-aSDkWXF4i&({k3d-rd%NR zecelwI0+Z4d|L$AK%hRlenwjI>-AKluZL)ksGFIYC7}v?BHn@)bCQB$)x%T4>+P-K zUfXS}-9LI`dUq8HeOG46_g%4}6fLUPO7-(>beXelqCGOIb!=(R9iM%8?yU_Er^}PJ zyxv3Yc6L6N~y6RukSHp|D@b>mreJX3(&GX8Hq!xaBJj`zam*gJCR zyLX|q4nFp$6ve4?I>tUO!XhH_aKPTmlA^v)EzXn*a*RdoY9nLSAFGXZYMi< z_r$pdC*IBGj&x`eFLwA`m{7L1*5-gu#t=qaat%vyn(U+7LYy>GmjJCs2c4l;!=-|9 z02J)XT=d`S%2=x`l=4qIOF+9Mjhd{_R}&oACmx`wg<-8`L!QtV&8iLaYHsL4{a>QO z*Wb@-m2;Rpu<@n71VF0d9Mgf__Xhd*42Hyd+kGSosbqIGM^Xy>4i@ z*8TZgp_vFfRV`+Hw%;W7;<+eL?O`Lc2_BqU4XI4_Aq(5yZUdDS=lQ&iY&ErLtIoQ> zl>)l#LOZSz@&|$rkY`CJ$|)RS1JuI^sn5l`{kSSxNY0z?U+o?Oi_Zd(*I;cek{s&& zao~4FxUQhUm!MZzkaM2Ob}pcCeDj!^bWsVrwru~2wjGza7Uxh)>2F&GV~$iB))Az^ zu$~o%q2Be@(o#yIz{%6+`gJI5Uu-fpNwmHu6 z4cdaVQT-q2u>v7RAVFO3^5E>En1{M$sH=1oBQOXCKJxNXD=J>8bPj+7c&{{I>dOkf zMTZMmW0EyRSm^FPC8h=OH6I=YLv4=lxCAJ@SmS3guL#s?QdE!!kmE|{8d<}Ffm-tD zw%SK=Km2*iI7=7P=YfPdT5sZ!YN)dvX2YNO#bB(pG`3gO+6L?MnWiq{Tta(oip(WC zhAqt}{Wwb-`YdSkCP$w3uJ<4JyK33AEKn_cmE+5$tnACj?TdbQ0)Y&?*Ke=X%u=9!k`?;x5h(W@Ath_C+`lE84xvV?VH$SY^uoLGuWE-#Lrx8=9}~O^3#umd(T+oRpe}oQ#*jA5nD$2#l`J0PT2tR zMk;w)kK84@qoI-_RqjtiV+`1yKG{NNdr~cs?xVh|qgGQeV@9dIZ`r#q>~eCob8d5d z0cVZmY7v84He1+|2J_IZ@e96d8225(Za_YuuA@U29UTn@-l3@C8FQ@6*8~5YaS~9U z?iX72Q@r?N)h!awY(qR$QEZOcH-5}HNYdNfBgy5jk<_rNZ-a9r3@~LG4cB^GDH0M> z3)2fb&JLmDze={`$TVrCCzqEctuSpN^z(tpX@37$rcHnn{UJheA9_5Wsdhfdf;oA9 z<}9x7dfq#)fd}^tMvgf}!%ZZWbjrbZ%ftcfR~HEm z@?b?{_(-X6MM*WHRlvG32IgQ&ZT%IxB7)?xA>A6>7uR@9F%Ic&K5HcoEmx zFDVE7U!WK!jPj)6T1GDEM$H2VAOMcug5^s66Z^WvMXu&)>kTIJq9U^`tgRSqDBpH{ zuGvdB;zO&#auW@iT2%8OK|!F+o`s9C-2DF!XKw*k<<^7^Z;ye;LR17P6;x0pMCmdJ z6%Y}S+<m_xs=X`oHJ8@Eq9Beqyaz zvu5s@xyN?m_y~PpPY?EUHtJCJc!;QIx8tK${#R_&y@0z&Lz5!Q+CfW*4cJgxKp9{u z^w#AbTP~>&7f&roQ*I{{=WVDPO&17D5h>6Xc_SS6SyfXsmNhU%idA2myiu^QuF=~= zw#DDI@8rW1*{@w({JAX*ZRcW@Jwn&Uv~XYsmF4%pzG<%H?Uz$fASY3>e3SzgnFnC; z)`#dB^7PqAVyO&VCwp>fAM$llP}*%=DXy7c%fEcexMWIt3N(L`sc}SI6NdQKi;Oz{=1)xyOMI~oW;9BMaB*?ah~)G z_5GQ2OfOvgvA=R?8DiXhPQDS!Kn1`mtH+>T)9F0yyo3(9w0tYUK@Hs;coMGf7w5V~8h`<0q&f%&lg?Q^oD{ z6joQ)Bb745;_sA5`_;Hh`kE@8%UmySL%Cj%T2!0GF{=ew{<f6VMf_;@HAyTMsa@(TQd_k}<;tR$(T;p5 zbft4JEZ6QaHeek%uS$Wet0ygl(?rvDweNIIhZeH19`tDIcD`~Yw0oq-lN4?7Y2@?Y z#8dCtt6k(I32kF>kR}+f#)a`6y%SA^g!N+?V?Qt52sBo=X!u5O#aT_Uu|zd|S*Bb9h_uCB3pWfkR@El^>_p|{ z>{a5z!lI7Muf_kS== z%kXQK{U{3WZG;?MJwt2jMj?gCP9Kj2dvg)Rl}I^bSnc5^v}zy0uQ?1ZTGev8wsvLF zL?obygJC&5L}^WBAHj_VPwiu9&Ym|f z@|tMt;CyP3adi7%mD@*xl&EBK9|`4bltj_^z3`U`a9POF z6uQivxuK#+?d@XX`>-_GCq{KHu=(>^LKj4#2Zl%s($bRE0sE3EF4k%(sV^q>zI|v? z^`u%NWEihkKR6He50zpAOU&7vHI{Lr7Tc-e&#?N|JU`J(x9KxJ0c-Cw^)D;kmtbbjuu`zG9jxvm5c+hItgO9B znz3V)b)3JOpY|m2(9`q`P7?O6Jhg9L5t&{XdBML*nMoPq*DMkMJV^{KP?XNP`m-h1 zL~-HXW8xJfdH|U1m3n@pjdt@~eN|SyR$if6WSZmh`YWMX8|$PY(@Y%bMeF$H1X=NZb8yy$=Xd}9YagCtsZpyR=J z-0tS;G!s@IIpHTWrEq9d$?kpo*Q;jls=56c8rge$xLO>{9+-Wpt{f%n=;e3FqEEEx zTz`pO_@tQbMbXwGQ^~NHJ28>lwm89LLAZ2(N6lKsJ5J;}G;&UY&h zW)(*I6@MtN_IyH6k~pETK>9^q&O3knTj9!)O1r7h0r$Hqws)%*EpriHhsx?v*oBT< z@~fCTRc%?dSF*Q>DKN)Ky|ETKlb~t9v(6LdG1i9FU}pC7(%#b9hVy^-mO)$u6pm_3 z_u0rjPTDQq`kjwQ(`A!voBg{d@9TFo5wUk>F|03q8F&;LYb;`;xX`bq+6Lh8phiQf z*ij-n29WRZ$vrJO;QF>V+q~5U6c(bk>EEr8I4LjvsMc;H@#lW5I0^op?WEe9y}KV~ z2PGS~#6+Iu&-3MbYCt?(_h+T_krWfG@}L;x_KbN4_iRW_5Pp*$n`H5;JXj$ueU3Z3 zN}6JSC1tmGMh26u%ETw#i5Cg+Xt}tPfZn+t$^}WN?Ox_30|t~+c`f&tNK5ENE?^(p_l6gC}-3QljD`T>K!+%`W`mvZu+-IFp7Xso*r7j8-+NDqM zKSk?VNR)eh1Foz+%4V3Rp$vAsaZG?>>g@hXL4ll!^O6TbCjAJJn~7DmEf!`qpXDuaaT#b<6pbFv&3)qElQ>UYL~b~kwf={Fjg@&nT92>@g<1nuW+Viq$_@2x(%g$*J{#^^ERS`gT z-(xNux(UYP>+{^Ds=iMr*L5vKW5tf>#<7IcZzdheHIfnZnSBf% zEwAA68Xuz3kd+K@KUf`@%0%Z^IZEZn{wj@{|9*ypO_o=+MVUJF`rJ4!p9|*mJ_VXj zCX{Z_VrQkN-&I$aHr}(Lr*JtiwE2enqv)91B}l>X5)wys$ce+0y0K$<(poiYt8hto z6?74m`#yrC#wj(BMP0rapYRxMnN5J{2h6+Z^jI`ofm+|lA0(kPwqY)ztt6k?&M ziAm;`cHh&UdOD+Bj|`g|lPz0fqeyrr{U%$9GS+J*&Nf|ByDJA4w>q`ciLWn)4po5t z^%Uz(UvFojNM4%>u7PCJ3dNgeJd^8n(JS0v=jLuli8H=Hddgvs9%Svm>B=gXjy%3M zd)`b&I>6mxqs#q96Y@+j6oClra1Vx5?Wv(~uanvCPf<8`{zcbR@#OeWQ_|%i57`Cv zpfgm3^9c8V^n1W2D+7Kg^gftg%U(E<{oKU`Z35?si#pO{X&!c_nl;|CT+wJp|I2Ea zX>BMP%RnB){WnqidbB7EDN$9IP?Y(;-sIfECjk=~gQ`D>qAhFm4migeqD-zYiO%zi zX)5=65;;*?PwHHkZhEq+CHNMi3EyQ~{&Ke#gIxA{0=NcY7V&`vK>>;@**su(rP`@I z^Z}oLeuCMLQT)(nn_NeTs7_ntAD66Cg%{v1d}mcWh(iOV?h~arsn?OW0{%zbJrS7 zTz5%WX>FGDig#bgO@FL15zF6xDt{H*@KTp?lGcH%ktm9YsLIY=%!5?+Q#_NMhZ=9I z75xKOrCph8!QbZ-P3(B)KsY@e>}M*gUt%v2Nu!i>^T^Rd-4W#k8~%|^zQvFpePo#f zHw3CCf-nST9tOzho%-33`%D7Rog%P@8;M+rd_*twPW#<+9nD)6t;8P8S^t{8_6ykg!rosw z4tln(JLJXmv_RuS+VDI^;uix^;r2>d=WeP$tNZjmUWUC|b@-c5oL=Q?0nAc@wAkKT z^=dyRnyQciXv znUtX;l$u5hP|(!Z!7UH*=RjV<#E=Ci22_)Xyf1@|{F*lyUHA?QC;MHQMR#xsQGC)1pQKyy^wiybh`-_{@YO#*pr)*4+4&zkZVN*r10>7fGO=4sWelf*C|KCTP5rm!7s; zj#fkw^GqVFh{{TzdE*}8o@F8W)`#v#Or%$;gYNZPyc+HPbE06ean(#rx@XsLzJ2uv zj?to+kD?afro0gj?NcC7yDKIq8a?$F>Isi=th)f#({U+11vb8!@$o62p0RPW4hZir z7K~~Y4c9PsG8}TE|5tj`!PJYaWoWM_%UeW zm;4}@NhC-e2RVE)sSUT~P9|F5X{10uxUe7yH9GJ1N3~Q)sX-%_M(%d{kRpt6T`33q zPM)-2e7KaEx`|cSclm6K7kU-NtC`Upwwgaq=Nc`}r?)0?cUXyLfH_4J4=dx_$#2hd z*S}tzYCjlxf@e~Evg`OLJK^|fWQ3XNA11{^%_|$d}hXH~RCA z9e-l}$lpGF8#&t3E)Mq}J&Uz5PaaYlkAo&naiKc=Ti3XOUi- z871b1!l3~9c**8&Ik4p3-XH!Ik5)PLblSY+$&V^?V)uCkfL9k{KUdL`%+f#uj=d- zO1>1Hkb7cAb!4vn46a8TEC2<}#L_|a&&_P3<7qKUH5Ob-tlI!vD* z{TSdf;E^u+CGtozKes63WS#OAi4u(I+^bnqa_7aRzV`lhNX-5VldLta9k2BdR{ivU$0^%X+PA!7)nek^8!4nB4hcD!sTYrIsSJ%b0_GbHM>T5bWStaLS+;rmg5(3#gLII%iS9i8o_Sv1@75f>n3jfl3?) zO@S;xOOAhDfK{2jVQ8JRrWTZ)H4G2h+vUK`8{#nXfm)_iz!YFHlo2m{-tuG}1oA(A zNhvpFQ8I=6m%3pe)wKc9)!A;|sgyT1YAX|8&Diw66&X<(QawCs)L&Q?PA1ygl<-B5qLD;VUYn{nJg?yIhjK5E+4K&t|6>YK-(+EOl(S>*6N5o6Bm3VpA=VEJ$yiFt_-L}%7 zKg#0cu99*jf#BES>enD2SCQb82Ca-oD_!%Fb40J0pXdwr98=xZfgb~l&?=!f!z*?6 zKw-|$Ox9a@UIZ2q2XBj^O}3-;q!(Y^Nxhbg;&AXg z3kR)dmFQ z9?K&nVpNt%xD{C70)C+5pCf2H10+?8DV}Od;u-S^yw1YH%7Szafj-~&1SwEzP})x- z<^f=Wm&)J4@GP?CPawY_lZ(wr&nt9Y(`fZ4yNzl^x~D%M=c%ZLI*o)}8j{dOhzhP> zY%(rSdL!XmNm!5EM99$M8rj4ZP_kBrBCmzOQ@6FYuGbzLnMOu&Z6sL=8&Z)yhDs5= zi{Op6&L+3QXJ7~-|D3lf6aAKMpY^tBmZ+$sOKSO1ws&Kvu!uJbt!CWmpM9lrcbsZS|AkSV-H;YdE+O)57{VPr73?^X9Hz) zV1Sk+LPp+3=i|H<5!~y4KLZBSyZsQs0K1O?yh>jVS3)$E(mRB5?PzZKk&XPh_ z?6TGHS+m##=Gw|DerSQO_AxH^9<~@fyJhn$Qu@f`V~KWlRSd^G+N>& zSLdAk?s;7Gnp_)Xw!14=87O~Jd~#@L;cek5daioN);u`6Ow|^A@4V{r>tugEjqhE1 z#2w6~JEvT&yrHZ*`n<)NqL#*`johxAc3>7yjS>X)1_Ymi|&t1l;Z8LPwx- zvuy$TJgv#`ybu=@NgU5qEL!tQg`X4eKN{lw_nJZfc~3>CF*%OYGYcMmYZX2Qb=@>F z3sI#Cph>8yPcqytZQwrg{IE}%3+TXNh-YwU0@hU{URo#op)b^^n{0tc>g|113&?F{ z)%{Yf&O!vy#2fXTSC_jdhsP<6CnsNQXeIRoK=zz-50{=mmRN|TX#ajGC<%e%J{K~( zU;iWW5Mg(}bO#dS#Ay_!;A5b77)hUg19WKxYtuWkk((>SG0>Bj#Nf*q?LJc8YkKgR zYXW4^pq;oE?euBnEX9mbekBa!N!DU|$hG0(dNQ>bDJtWaEeuLEt0eu~q3^?bRmTnN zy3GfSr6nZaxECLscb<44;XSeTcJ}v-fTL+m5p!>OGb8myh4^qr9mZW46aceZ`uKb-&|7yxET80lLbs1u zETm5;*rpgVXOCN~n;VT8lo4mAGG_FoaUtmV&g?drDHPN8IPkq7#lpM|}6U8dmkgjWp(dGH$3L zez9fVjBD*1KZ<}WD*5b-4;8Omy{9O3%F96ig`QD6*(m$Mk@&awA%ony4@$Np;tB#B zRb{X7Q@$8LwXn9jt2K5ueUd%xN@K66sa0XyhmgHTIHCCAOD^n_pQi1+E>ePN0ys12 zy@phf3cq~Qy9nxYvVZj`3&Q2Q$@cQKpR8hv|E>_-v^k*n@1iF>fyb0~c|4(T3${s~ z>aH<#6{(K);GXC{&R~$6t&5%i3aQG1lHqZ2i;s@I%K+QN^KH;2^HW$zBpD^Uir`p# z+sW>yD->7g`AtzC6{|E&kHO4XL{pMJM7VOT$AlXh!Go)oljj{+P`JGbd2JZF#a}*^ z^eMqKPYGu&VeWe1(iYJ^t-IeSAGT?SHCv0sai5rDQ|m2NE`uTW$!;8bXQbCmXs~BY zTP`J!A;iv9t0e_0r04feK*`RkDFx(ArZuTu?dAHHD|7&5(F4XYdnG&n*$xWjVRt4e z>Z)g=Tg(BP>dnVkrUplgMtdhWX|CVjD*ChLQXGeEq@N`zAsN|KC=aY@KWu=anNzu5 zlthxcZrt_Ozm+h!mzn6s@PH+I6$lV?Jf`j2k^^7u@5S1h8zgP&bPS!2JQ=27{|#(F0u2>CaFQZVr_KvA}0XY?%A@xsaea#^`O2b!LA{W!&st! zsJrecXsc6ZDKA!Xls4s3qH%NQ#M})=qxurkB#JlqWOEV(Mf{|MxZcpUukC);(j7u? z{-+fSB!mhK-fl!GY(BIe)n1GcMK@mS(858BA|K1fMbCnLyACDe(!Qo&2`alV zL_|}+qi~QsSU)kghvL4npIaz#wu>QD5iy$oxpo(@ZNOAy%^yf3Y!Yb z{hvGplAVm@dVPdr2L^fS?l*y2IoA`aBIpS=_KC?*PC@md)`2t4WmAwoI>8 z>K2q<0=DGF-&Z3poT5)S3XJ^dAdQ>qI`#+VZUL?a>#R5^o7wmn>Qk^^NsqBmhh6>7 z+Ra@eb^-<96%s~3YO33!S}sh z8F{#zv4S%IiN4SSnBOAa&=X-b9tuu;vFV29R*Lp@jbIJV?SHsA+RRBPkCA!Y@X}ua zue!!ACRsbKGvF3Wg){L7vIG=tpAK`q(mr?p)$Mb=Z$WE~eTYGMM27i#7N8%ku7`V8 zyb8u1-OSHTa1o%svb=Zmg(<$`rV^@)KqH7lAZpjL-#;Kgl&s_}dO+1f25@q;!$e(< zc88e;(5?suDarhn!kA9E5csjt0P{)F_Q58CG(VJ`2@!2=eP_^Oh=c})2NFNrjidVh zy;@105+%QP#g^I&j3@iVx}W2Hz8xpJNx9WrsN~hj{V>sJGkqd2sXB)t@Pii&_7n5E z$f~w7X@OUWx#GBS$8em;d_agPlmg!ll)|Ri7aYY8bo7-Gx!_BXq*+`E2?lIz7MsJ1 zac0In9$sWIyDhegdn5>v=;88@iv-_<+X!#oh4}_cNd z(wV%aWz4n&(~*d+{8l1HMb&askkG0l3B@Xm9djgNiBG?rkg2NKnU=+gthH-~I;W>I z|LI$8K6-&YS~-89$|R7Q!UN@pWHyuZ1nVYFlUlh7P{S5S38`2(lD<+UpaQ}nLXLJ@C~1r9 zsy%5FnCz`nBN)R27GN2NrVjj|9D%;%7ii7#DUb7_Z#c8c@QX|LP3s#r5A^Ec z-|;Ht=biAG2i%}eTJr54zBN{C`uG+lIH7}-1BuxA-?hf4P7wRv0m7;#e2-$x-6A@| zs@;yR23ypC(OJj9wK?fn_4wUugd@2}+3D6R3pfNUP5HE5y_v1X`;!zS6C4t}6_%+~8|rc}DW&)2UMV6;#P z78Rf{`wTbVJT_B4oUA<~g4t<_iFKHuP#1SFhh$C@V$?o9x@CW~Mpl07ucRBBH@c=d z-8^SDOf8L{NB0wGc4#OmGcEPiyv}t0_H2{rEADYUZ(Skh=ojeF!43%%nMsv;}- zmPMteqjitrMRb~mU<@ue0JkH(h}M}r z#xd6#gMOf33($w$sy1pFyr{bGfrp}dit0Td>WOYO1IIZ3vEBX(?t(Hk@W+4o#c5iV z1PZdgyn&3P7*aW6beN!_4o1!38o|?M%#cBWJ zX-&hbzIgV1_oMNa;DoL9m!;>JS;-YW&5Wj&-c0SitGUemHLg&2)<0#Qst9^O>*0D580L|3SIQ~*8m?Yh3k-j@gRk7lFBTP`$WIHnaC#4#HwRQ4sLm&`@V7l zIiMB4TQa8eyBsheIkFlyi&9!*?A6v| zJ4)bck=57VN>zsXfV;Bw_X4`BsMY7z;dBF}5P$rSUxdE&1+momg1?9h`@*+W4!tJH zh9tShRE;Ob#lmcY;KNsn3EE+~e3f}v;mPRDb+#^EKvxT${e)WK65drpU~{cct6x~} zv9k$}p_Uj+-a5-s0_S_^L)uHu98pSncvig#Vr)VOMa&0~`RAs9`YA02%l7=vE}qzBRPJ%v2FxY0TyqesCzVn7F3364am#(Fl_G6ts8Db=oR z&uu-r+8)+fQW5TWwo?tXHktS(dn-U4MD(2*xwY57CS>zQWMnhXEaytqvu$DjpT8WE6lNpoS#7KSJn2<6Raxz+ z>bJellW;nv58F2|zgWLuVIChPcCVx*fs^NgbXoS+Sp@=TU`H)%tZntpxOd^$P5c^W z{_FOim;&bbQKBMlO{JLIZ?>KkQ;a0OFxC9l1*6iiG>V{%_-<{yuJ^x>#)Om%O+$icQRk`OrhyKrO;RVcU`eRFJ=Iwxb~dlg z8x5T*y6THxV;874PcKLbTYt(TQ&f7fvAEUdwzzSKHZHGEnR3z|cUnzKg~C4S;JZ5-@|`U1d(Er^7Dch_J5O*9Jwezh$qLmkZ>Mih z=slI;-`UpuUCLizL9Ar}GtpICua8E4Rw=ut>Og9;svmwSo%jnqtRym=cw@p^HMX7< zBl!O!9Jj2J4q_aqG-uN1am;%Nx_#^CxtwJR+yuZ-aUvVvZ1CNF^hPg%o}_q^T)uDN za6Aza0((37?FGDJ@f)yPF-#ok2hf7u*6$6s#pFHOFU~+#cZEVr%WwK()BSu&MrH%y ziydu2w-+t1{eZ3}St$sEAz=k>*yei{2%y;Wvrh@a?5LJ+mGeJ7F$Ys&@>^y!9h1m! z^Kk-M`e(q^L5j&e0E^*)hn^RM@?VQ0LnzUs;q3uBV)SU& zy^P8QgxMTA>V${36~=LdZXBvbW&~lVG?h##vxZ7X`|%|ie|#fMrsqeR_I?ggA6B7$Ifawati zUOZkSYlHMD@D6FXs>mnc#3t*Rg1sCd1fatibP3>lj`wciV{cd7EBRvvO-B$Gt&LUPvy zUV%d3mYTx9?8*n{;57-75@e1tN$*&jxWBGxL$$I~)i_j)4({k^3Z!P%EXT@3)lCSR zfe1vx8FKHo9(wab?V&5a=G|k{A7g$^>YM! zDmRapXy;h2^{y&b4#Al_ewQAwZhdw=8rkf8Jed)^^6gKoI!=yk-yC-_JKW77C&`~L zGw$}5JA}bR+{In;H!J4xW00y^XQ#tUlv5)fcrCf89e5c5*f?kk|b9JVxoas`!tLku{Yy%;{@BKbs6iJiiTpA5x&E4YmIKzUkfD zKE-BSE2#ShkDAWbP&uw6HNXc84D`5HWE1L#j5|0;VU4wFRm^*~rm@3r^_$&U%a1;a z8kB7hj1iz<%l-Ynf5UypB(*OaPTAZ zA^vSRkk#yhvh*S5(XT=951WNTadVlzymua%`{ZDC$2nX&e%Qm{ii792$yM+LH*SFP zT#gedy}9koIPPNkf3Qd2=d|v{Tu(w}O^`+{3Ht^lhH-iF@eoVDNgml6v4R449p)dr zzoG^f>v(NwRE>atZ1O`4f@Itjpl%j-FdJ$w>@IlTg42or6arXiDmNh|Dk&j}!ARk^ z^~sEuj;OY{!Kh0vLuQTv&c53=ZcwO3RQoXbboLLi=sP8q(Z8GYULZ;Swf|w#Z~nP? ze#j-Gc3V7DUgAy$c=F#arwqCUP*$22HE?r*30Z@(Y&Va6!bb@m|BTgwM1V^~kbgk3 z<3Z)17y2rn{hqA{!xsP3MX~>!e7LsCSKXm2f$5NZw_|SgAwT~314zhf zHku$Riv8^oKz%v>d9i`Yxa}ZqsYwVH%xGE~Zx@c`$Kl&@{)L{&9J(VN0{rH4uZCoH zGrWy}bc8L})_X8p9wWdUg~&p=8y2s`neTxRZG8?VAWZN7_b<#pOw|FE#Gk?Od~=V} zgNo6s6RYFhQ2FkuHW1OkR{-^rTYFl8qA3IS9~%O5_jxMQe;PK*Y8hFg8Lf4(! z>OP%C3MR=wOIS1-+)TNxXDv8;{b*v*8k8`3A*RSFAh=8VK8~28ha>z-I)Hn~pU-aj zWAk)iOU?yU`FQs9MjcQ)A=)XTxcw^MFV&ZEyw78~_c8IZ`Ni#vmT0#hYie#jiHb-2 z#*G|oLV>-`1xOSZYc^JEEXzccjsf?mQR%0fTVKIosDVxS0b7sD4nvHga-u zjZIC(P>@KTmX>Cffx4ypGAUC56#`Yo1H7POF7Slwh}8P!%|?8lspg(Z$C|fkAm%#; zM55#}bZE58YA|?;X=9oRk^i~?Q>CFN?ka6n$*a;A!s@sm_#jsnTZs~8M)k)=t&!D%R)^JU4Em1I9&migO+}5 zv2K>r@>sUpe!2+ZErqDPhZa5qFWA+4KoOKM2fbhW z5EVIV7Q$|% zgeb&!bIlVcS_*bA1Fs@QT|1^E1)K!|D0+H=IBe?z>rUZ!SyIlYmgj#0sYba%s9Ccd z!MIb4UC#t!PSn=bB};;@#-f~`)HGh$5U^Q0_LVa=jPG<5|Jp^PT<8q4>$FYlBj;iw zVT!sm$Wy4Rtz}kC+vP3;H8s=C{Tf8zyX~MukLivT(Vul#s!*P826jh^#wnn=TnjO} zHrAcXjjP8qa#-nD>^r?d3Pe5XrlzLu%WHoeYRs}z(^=pKRwgqC)P~b^-`p`vh$3l}T%r524WL^IW|!W$ow}-dXoSL<(pLj&qN&-9evRrimXeWf#(&`J#9{4^RC)ZFgHPuaP3^!I|42YgIlg3^YEb%^_9{P|Wpw>=G9d5lPL+@M>QokiX@ir!uC|ZUSi*;9SpW z4u(OepWDP=hGwkyT)zm7CI9(Pk$}Y5*vm8U79g+PSz%$SwSz-emD+ozpyP3GTuQZ@ zMujhKbsju<*#!v7w1I0H)@U)}Ul!(Hmgt1id@IUzM2zOoW+0z4EM`PD6-Z4D<Uo#$xQOrUO>}GKbSBCElFe3IGAUz{BL$y|vL=E{r~9vq@S#)=o=K z_0oy_OqO2`9&q|~fD`Dr`bL#Eth?92_~cs~7WdK?!>qM^X5e?RSe)%me~*e1S>5x-dZr zC8bWLL1s3AWc&q@>B#Nz3mq#l(8@KYF$Ajxl=%Y%>!ECBoR@YJ{yiB z^!w9;LbLWjcjkPp+Txlth#OGNCRI58Ne`LE%4`D`1qx5p(;WOnIsRjwaC65Yby(w% z;oB^M=>nqAD}~7vaVH|#Z{!4i*0&iUSJX;e8rdj-<|$<6?ch%X8(43!%$dD`xI%c$ zpt|1xOsj}KeL_yU;z9u<@(Dr7Jk zVK3dtnVw!{N>R=DYtIEI6qzFAlOQ1vHS|I>kr^6~`?fL#NQfd?Omhc1)6 z-_E++J8SPtyDkJmcH97^uiIcK*G0zF*uWi-k0K1V zz;8fz<&%-O&}~EGS8;f#6}SdzjqIRHY$>!n6^coHv;^GEei;*-F?hfXqr!6>v?1E{ zbs8eg;@S0Ek1ljs^f-Fvj;Dk29E8UAF3oIG3q1}Famx98MjbE%a@!aj2ztmFr9ban z0IHeuem@Per%K2P+leQEy+@4aSHW)VCWIW`!b?jOBhE4=oL))wnd}M!1P9i*gPoFrqJifJ>gPPQu1^K z+I?Sy&6ufJkOX@IF^*-ACvGe!_WjLd`@^MWUu^^7x`hQ4yJC|@>U@E{H@vkUziB#u z2Iu~|5%k>jf);P3Ot2Fr7~t4m^Vdi7dl7LuQiuBb?m$b{PbniOcPey!HcAbeLWe() z0UdyQSVRK|@SLRNacJP^hQ0s^)6f8_1o(*$P}u;Y=GrH&c=CeLgQk|_lQ zZVp1yCZI)~;y* z4-sNJSncXr!y?YA#*sgUhQYY`rb!rg+|?!A3jl#Q6LppVe;%tRmlZ!V`!Zt5h>3}x@l7I5=Z|a3b1^c-u}X6&wg;PT9IRqC!%otU zbb}X=IZj7Uj|g>3p?giQT#fa^N)WhO)?Mz;ok~^>EfKx!NV)n>81%v)TTH^|8{`aO zL%|X5WFK;T3cxDzVCr{JP=C7A{eOIaSzp_F^*7j%ISX7O4s}#hw4lDO-TwEC>CWr< zfnVh84*rH0R8@7e?Ra>oVyED&8rCZ*6_pGDB()Ri6FmVg4+RT^OiJrVobYSHeJ?mQ zM^1qw#NE3So5Pei;%?zY1+%0pQyVbA_myp__8yvGXFN{Tj6uI9J z{H?D^$y`8;OU0e1G>C|dXNjWeL@u}~5^v2KGm$p&o`SPKAn^wZ`{bbeLDWTZa8XZW zQg5B15(abp{iUR2uzR4cnDUmT?U-~n0>7>xda(nK{nuYM1G=C29{2fbPr5*jvmhi1 zUdBE+1$pmoSiEY)rH(KsK%Fb9n+G_i*TTUNNGHAW)y&@}3jp}Ed61GL|1`m%wVui# zK=EHO@e9;2#wBS`!Dlrp2Qh)W9@~(4K`V0I6!ltPLKx{I`L?@T0>ez&0%?C%qY(Ms ziDZdN!5F(MfVlvX5`c_$5P%Y2n6bX*=3vCU&t?>~0|Ut-G@(;Itf* zw{^FpD}a=a#(D-IF~ThoKn3(0J`sk%i%$6#8i@XaS9^ZzU2)ia!RIDG*8YW097p&> zUp+p+@(=uG9=(xYGj9OEagc&6HIV5Gc4Pb^%?;)b6(I==070dZ4OxIO;(AHR@Vu<2I| zC|r;kW5IuenmP=@Uj-^)id(LfhPXkE_GNz`H^{TF?D|`>?^l3Q{nojTy%2VFG={a| z+1l{-g{OXzGMi?v!-SC=OQPo1IoF9?88OTWP>%#t5?D0N4@)0+<2? zsCR;07&L@hIBW{>J8px8j`xsI(CgWl7467_n+Td%wU%zcQ{rim>lCx&I+@~Tc8JrL zO_~ZILzuPA?!}znoR#Z2{q@mP(}OJ~?Ir1m$AM;W2kytQW0d?2 zfs&LcztXYc{;AI6ZdiPlK*6q^yZ+z;tIJGgg&UwWq%a3{MD(|k{zJg(IOEYRh@?QN{nf}L6BPKT3BLpLe0Bx8Rgi(nXB4ND%e6l3 zmoES|d;UsGb8`ve0Jj8Mcyi?D*4p7>V_tmJ#2RHqFZJ-lOR7@_DJKPsa|q;^0=$JA zTr88?qd?|0(UpzsPvw_8rZF`M-2#K&OV!w%}1bW-{2KRB)X%psgBe z<^@I-bg`v@ZPcG6t3sV+stvlsA%v7y*=)B;a}z!Bxn_Ustn=fMx?DA z$Upk&gQLB@ePMB6#5NGwalY#2A*J+oL7RkCgHI_1YG)Mlc_Sw zQ8e39jZ#5KlM#`BlI2wI?Q_T0CfGH~Ut2cCDiIF`TPPt0UKeQ0;Dybw8<7lkLw#># zESac#r#u3N_;T3-TsTHhyleAttgq*ugE(I*^yq%(^eZcfMdL1xw1<0OI4aarI`$!P zrvp-`Ge_vX%2WOD=@jo$Z(qeQN1kLYMGwbuyNENL{z=sF1`fy45r?PlwYzy3)(+nxyFjZ>24 zklEb!u?4?;nPriR2$%$Lz<4~Z#XR1pOkL4#uF3oMIqUK41mUBJo57av8z~lpb!N?G z>jgdRV(k~ivTn6qlARY+Cm^QVJ+a^A-B?&PbND;R#=BbX!gb`GJ2lsc(c|65yVNDs ziAX-|4~u)SXYa)`8VsosVu2sTd{(q3iO0fnh9))OMY1K zS)$Fh&#BTblAc#Exkh{jpOK2qwEM*iA-1z;0(`p|njcCGV@ z5k;t4HwRyEh4pl+B=%H~J_A0n<$e&zoor$^u}a=JiDyEExq|ztp9%Px zYQ|#I$T2GFnd{4=Cddi=+~-+=zzE$8yggfM1Y>^4zd@XzmymB!WofY6X0i%A@+Z)i zZxHwuE5YTj2+akv+T^FV@BnmGj8!egUw;iL)pw`3&Gp&ZwZkbM7wqDksk~|eWcgY^ z*2c792R%-qbCDz(D9FOy`dTeN+%k?m$SBVWn*B|x_j#~0D%;GrY0ZFg$acfxQO;SE zOf}l{v&?7aJ)zyl-u5>#N^Yz2O_&pDG2S>Kg`%T-=lY5n>6`Ddcu&WL7Z$2M(4!xhL{$R+2u zx4j_hf8Tf<982+6JgWjS#dB5chTn#q9^l_x_YK^G^?hC*U)hV}Qx8*{G{a--j%xaHv;=3BI_LfVw}ILDz@$&bUXpb9mt86C;|!NgzRe6Gm4)2p)jev%_rPrYESq z_%x{T3WhlqERau1X6EJt^vX+ji_>-=;Wz`GgRE8q5=)!|I*X?^O#f=J!rnvnB)^;@(nQ`w{>Ejn%~|9c}Gzug;511DmB5v{H^;od7iw zf_z|x&<&Oh78k8;DQCt-U{rvbe7fkkc+S{hU{KHuLikH5OhoTSJa|PyJ6JWG64)$& z*I+7i$Y=;gT@W$>E0}>G0ULPR_Y@R5MC|imi3J&?mjR^hTS&;y1GMJ}iz_*Qcj*{R zMt@FkGTl*x^PmVn-Af1XT|cwmmvi`oPklp!PbrnnWiS49O9ZB;rln~BoN$WWP!TYz zWazA@SxRXkYGN{@JIcE%&@bOUQ1T#BjEc3@3qQuVwKl7O#bTkef;T{}aV8$lg9$ml z=@tg~g?*i&r6K<`2EKAf;D%Ietod%t%Qzk)BN4srSlijJ@VdHRgBDKtiA6RKGMV^k zR3FE-S*JMZX6)G#!A~e-`s1I8(ECnlVI=b09f=de!_iM};pJEFHmILK$xClobfwZD z>u>Xry=vBEi2ntHabnpX5DaFB;NQQ*#AIjRw$Tz#>%f0SR%;Hv@91q%?Sr-27z`K(>%;MAl3)>i|N8g&v9*$>= z;YFKYK#H7|i>|!!ni}D>d$+lMBrJ>_7i=FiBh94g|jP7rX< z_yl!KXRmP8cg;-qEREYyF8y4p>HoAAl+ux|CMl!EgTAZZc z)vBUpI=d`>!Te{l4R>;z)0|b$+2brG85c%%wX4k#ewKv557)i1o1a5ZkfXndxl)Bl_R)?%}(9c>19X zbWL%)nM_lL)151(4B~uq9)r^aKHG)`8KlQu&%Z3&87%HFvvh;-$J~f~i0yJvjn*T* zh2_k%TSHh-fm=Vsg5FHZ$ttzYbqUqI=XsZ=&mU|a<;BbKLll%YV;h~AUmYN%l+IkJ zS}^??ncWfl#0Woi#JKfiZS7_|81*8iz0e}T{wy!AptKEss&KdITvO2s@z2PK;pMqv zWHn)>t@E!FR(}qp>t?(>w=@;kteb)Vt~(0Y$EAT>EOpsYHW|{~!Oe40YE-)c{u~;# z3FwXg$gHTx(zInvgs8(BX)?rbd!%2G^3@~c&5LVikouTrkAHA)sM>c-n}6&f_HLy@ zaa-iy0muaB$B(ln`^|5pHp%jDeWBnR3~YhCLSD{C^Mk}$x^eh4e-(A)e#bYp_{DVH z{M(6a6mR8_%Hb}>AeJ__teueb+nt~6a!gBa(mdQ``2K5igRo3CeydQ~gH(IG!Hiq` zfxIU9f8D!7cX`M?#+&`y$1L>>m9kn_E%eIQv)LZ@cdtyg`|mc_iz(0D z7A45nD&V4jb9d=iozK6OtvGZBO~A2uXQHA z=UbZP7p?l>D=|9ggnweDTQGU{9U4JNOOx>S02dc>gQ$b<*}ykEY^FjhiM|K8NysZCX(!H=^-x_$dKifs{F0|0)~F+a%-p9y67~ zC+IaMZJ((5Y-_5(Yu`ln>>|~UHWmvgNp=X&9B!ibSilX8IWxxua-j)gA}ejwh+-&JhaahIJY?p$OXDYAb73&J`{9T0KYtk& zgMHv+npsqK_D6Gi{CT@0^V$z%n4c)x=qarC5Hp>-6IkM#TyxK3$!kF@-cS;M-kLg? zJELNHHsVVQ^VQT9VkP+3blQbPFen{TChyeO|768W#38$5N5O;y@!LEK9-rH_tH8RU zoz|u0@-`fBXgBUGyJwacb}}RW+Or2U>d~~FC58W{#Hk|kmZ5*$fkaTkf9G-{=yD_? z*=}HXD+z$N4)cFfW@2^P$_GHXFYpM>-98f&VLSTu&}W=O z^zBzS>|IMQvKp?XzaEIpS}nDS(!|LT-k@=`#~H)g29tMQrCOZSnH;O8yDEp@MIYTf z^oQe(jJViu$qD6Ysa0Z1H@050;MW;=_jjYgP8ne*xAm}!|I4QsmD>1AE?PS#vf}L< z80Mk&G~eF7371&jHzm3a zg*zR;vmdh$tKhtCVHf;5|0g_>f)1-ecne-bFx%q3+8&3`>c%)-!F{pE)$%v_q~7{w z{LVbO25H3443`*sGr!aRf$2lsV_a9?}4y*)VIP-8!{ zHEjQLsp8Mu)F8T67T*7y*TBt(K)d@}t1qk9JQyM}qZvC4__#v(be`#E;P)hE6{NnT z;>UUKyn;nL9^4hc79CYix&5G*V|8|sO6A_jQG!{8(?y6NumDKZi15xj`1JVxN_$KM8s8=dy%x3x=)E;hnVgfeV54^qPqXW_BzXnWvNtM22xtHpLzA1B+f=VfSWVabjNgFTE-Q!Q{r z3#C?{If>86Ud&|2swR~(--CxSG1vKbl*#}4g;^U6upP6Bd1xdS;IP6L0=^B=5L-j5 zz@U-(dMQ7jBSHST=K68w+dKbmgxud~Xz%vfn%RtZ+}H}SZ`<>A8qMuBn0w;EfeVTF z?L=kK+XbU?-*n-GT)hP6u0%wDv^6VE=cqBHC&q*66WOgoJ$%%@;aTB_^Loc=mT z1aqnl0up=rjXNba<^evyj(LXc&KpP@ib!Jbp5IXli^$ZvKYO^>LvOYmFMv+8(YUKO zr80;qac(_G!7r(qXcrW_&4eZb^=)l(;}0>i2V>>8g@u`-$@Wq&baVO!4By_+?~DmL zbZ@+YcBh|V6@J-{bi4T+yP-OfJvXDy`!W71kZ` z6>@{6^(hkkR=2R*uR0+^Clg?mtI*?{0-Cy8L2k?&G4`(1a>_qGQSZpAci4a=5qPTi zBu-p(qmFnGP4SK1je2IVrUo?v&zbTts)W|6>y?45vF+o3{Bqb)U_x$zp)TyucLH_1 z$^7|BbtsvC4=?MMGgs!bKKB24Upq2TZ^^@hJ zScMhH{_7V}UVg9+QCC_c%R=%ea3ih6-1!*!4Gc|_o>G(lhos+jm8`RAw2x!s)5}qg z7-}h52GLpvO_Z3VV_+~j(w>lzpy;qR$2nDW+~n66fHkg36eAfsw%9GS26f+1aY{B@2ew6lcX5?0U?CIC8nv7q=eM1AGQg|{!E zvY&h!lwV(|7i!)Sf}T3_*VltHCG2@u0E>}_s~}vMb8WUErN@4ye=Mb@8Z`;)r`@>( z9U0q=9OChm8onjyGWIISFzX_uC~my<0K6^YqSc)TCju$ghx&wR1c>8Uh~m>5Uad`M{BSmIOv}vFIADjel$ibWZ&OIeE~I>q+em zf_{K^YHkovN*(ErH#8WBp0Iu>6M++wHcYy$1|#C*;{(TcAL0ZZGAt{v-u-o=(khJJ zi?>O7+!z1g`>H+>_Rh`D{)EnyR?tm-VIbbfPR|}P>wKer%mur(kbfIJ+;3)T`g3)r zrsn@p_9k#Ortcg0NhX6rXhfojQdE{iw3vj@f;OdvvQ(<6w6DV;$rg!d(Y{AX+CxQB z(MqNw6)DmtE%Lwa!|62N|K8{K`+NyMJmJ>Z8UR2Zo`Js z{W*;l8}VWY__4z@&9-wk?xuVpTqZ~MF7v6Q8k3(t+{TY2eVj^HWVAG&l`02pier^q zIrOTf=r5o=hKI^;UVnE%Q2|3+Z2TjWl2*{HMo&mo+8~8Z`c~f4TH1R?!+jB^ep#-4 zX>#J@#`y&^UeqFprDC>Uw=jLQ$R`70oqd?inb}vlqZd$^$lmXL*^_52Z6Smf64V=H zIKtKK?d{3_-2Cg|WP*Hqp%xJ)jbUan05>~`X4_z<-VC{}@fMEj+RUy8F2xhV%v zAweTStuX`mn1e&WBgc}b965rHFNFbY?ZY9@API$(!SD)9y8hba^@GG=Wf&1r+K*9D zP4G)OetEOH*#_@an(&-LgH$tBPbf2BetXykX~)&dZe&23j(|M~vA)Q;rr zuQ>8{x_y~UU1UVWyCpGA zY7lU36?D)d&D758tD=ktNLE`_S?Q1YWg^Rd%<-|E<%HEPh#BWqOf{lx;iIrT=~GM6ntS0>AO2aq{X{79&u;KHF`E5;}MUrez*^gh0B;1 zJY6O~=$@GGO}nSd%q=Y?j4{zdAy94YE3;rrOt-u|h(SP?!o~bW1diU`l!t+>U$b>t z7lLLCw`_3lEh7jRn4`Z4=BFCu|LLqsFl}^p_69g;T{z)5t*0v=&%cbNF%{Bh84A=3 z#|_rpt=ng>=6@xo4imX-Id>1dG`+Cm^cVk@j|nLYE{?%;3}7sZyj}NRTknX|+P-Tx zFx{Qg*1hrOh#PkD8gMc{dUWUE!-svtpRCCEca@L>$Cj)L_m07l_7_p+*6}+K#Y|HS zTLL&i>(f2f({rh*X%ybTn3@o;(LoVaJfdWFr+;+x-;?dvtX+Eu%#egey&E)lU|K4; zw^?~#>dZV@y4q&H(*l=NiGk6B=E%dxyK3#KS>4z+du$ucV}iNvjzV~Tk&J$`r-0Sn z7v7DgVH>esK^ZuPU<@4&K7sVtSDJ2d1ftq^HB48U$I$_453B(C0QXf`#-P zmqk=|MFLqL>TBoJ_ev{Uo3Kt1ZwP-D8Ub7UtS*1F|6fcoOBiv3K(Dd;yi?1SJ?bT( zb?WS$Bsw4TD`WwVgIG2rWiUMifs&wA>wY)s zt|!F9{&VUYmx4st!FAWuYq`O_<;4E_lawr7I7h_X#-?Hba^v~#Umj$_yw{qZPH=?t zNt*qTbIbW~v2mf&%^>xyvsHH48s)hUde?S+{+zr{3Y4W%M@m9SNQisO;)Nv|UPD#B z9mJv>x?yz{ell6^fZGj1Ip4Vs2@KqMM#@7n;yXfM>eau_|G(nEGC zqsh}P5C3uKvfA2ZUeOT|i%FATSzn)(XHcGcu+$DO0tTu`RS)!jNA9GsA^qWkc?wsUKbIAyu63P`!(J)1l-jHTJ5W%Ezi6 zg}}PC>1_Cuq>M(nuznlRDRxh!R8_)~^z-_YY!2e>we~^QqAhkDDq|VsudsyE~T@4Klb;a*}I2ub-K`P3&^rv`zcg>X5bR)pv5i2X& zay&?58=^P`W}LnZRN24w6>1Pv=38Lbw&6ck)GZI#{t7XO(b_L-Uw#Ie3bkRFJE?EK zf_Ie}`V4YyukC0}ilG}21%^NX#m<(onXXm~c*Wlpb^*D#U7#gg*Pw``HL~Z8dzgHn0@a?rU94B zCapt}PQHel+pu^4J#kbQl+lRroYX81{XxPC9wg`JUh2QeGnw{q_^SpbLf=%Wl)S-3B?PqV`QE*c6%3&$u#~;;R)1 zl3c#MJv}KgLwk^>`=S~`MAfmup>96Z)+byQ!@iF5{+pE-3ER>}zjJ4$>Qjy^473*^ zug}c6P*-z(_2F{y{0)c8Z|=i?k)LFyHHfv;cFk_hzaY3_ZA_@=kgLo2z+MDSS~oMm z@1+log5B)*@8_yK7-)DEvxS{h{gK+ZW5*;7Sr~`G|FO2$rC7w#iD#f(mOLEda!7r{ zr@LU7?fBuGS?Szm5m<=rFijAzS2i|=)YjG>b8-so=;Qk0ns2PD8<*D2!gfB$T$jcR~EaJez=qd1zwM|1mYPuNMB9J#}e z3(lO{JVQ#ANzxM04u_EDKG@UKmyT%^D~$6tLY4Cj1g-8~)1ofF1@dytLlTs?6$R!Q5zZueK%xzESg&dkwb1pDqe{0;zsGiWZm|^kv0PkXz z^fYCJZh<0HCUCF8@%2r|dUF@N%F?Rt+AX_gU&jd`x${AcGMpEwUS|Y}QIQJ-K9=8) z!k|g*wHKnKdJtlZy$W8C3ztC4%Qd24*#X~yDXO9lARykQ_neFD`w6c zmGO_jNG}-v-CO^S$HWt+$PoR_>I|LAD!fK}_qntN41UeX4~7SFkE-ZP4*Ap(km7z& zU9LTnV!61Kl%%c32x5y|3?Eu~(i)&KIiwx@^26Ml{?n}iNKZtB1(Xk^T{phPy zUwdWcNBVXA@~+2#N*e_#4w8^+qg)Fpkr{5(r4Sp zg1Vn{hN5hIk`odvlPvpqdU;x&zC^~~iU>wBlrqo5&4p(;b@KBO72b%~Sl`*%naJNH zXIkv%C%ECBuONr?Oqc)bw^>Aa%X8)F+Mh<16?|m(`3cA-H|L;EDn0qdzy`dp?;qnx zNKR!ZffXK4sZp27mj`!UW#SOVzex zobu@|NC#-Wsb=MznWW8`~} z7!cQ|IHklLqaD>rZkC>GkD=PF@d?S|`I@a5=D6ItqXhbc>lwEaZvgrnUYQGpADh}pGG*+?eE%aIm5kgMT1HEkS_2B=Qt>hit*G@yMUrW*F*X2L4F zv_?dvPPNyz#^@lyYDIZO%6<4nk531cPa)Vg_zazYj|*MD)Sz*dnEZr9_3@OzlQkl{ zXQEuI)U9c_kuV;g8Jk$o_E?bB7zc z$`J+|_bA|NS`}4vdHon3m6_(}?4er~G!``a%~n1j^XahS@GFQHvo}6Smfe`~Xxav* zX+}&HM6XTE7k-F5FI@jKXpUAP5_lH8LAIpnA+pKHsHi2A1dnN|sTJ<!;#KEt(cO$?neLG5B~ zq`p*#h(eZ}`30bGUqM&XGg#rJKmnM43su$voZ2^94g+bp%XD;PFcURoJ-E4|7s?5d zm{r!+UWGEXwbXdj4kDV`j@7w05e6;;Frz^ghk+@EsQns*;^zudKM@o`x;OT<|y=RxcIX1tPR<2l2lb*mH*9qdJ6p3CtDyrrAp z2b%Jm94@SD_8Eap_bFvNA|;4UJN`XZrMCW!H|LO{TNq##o2NG#`=Un>xRxPCyFoA* zLa(_{x{=1I6Xy(O>zRI?2Qbx1w_fKDK0mE+WxB@)MRN8z*{hat=EaObh%W1 zP^Cx){K3z!<$WnUde6+Wf2`QvbKth5>b-i41Z~e`n-9rpX}t$6Gw$9s`|*81gNc13 z5#Ndp^>4*_jxEu7mgdw}_vepEOKkgO1*iLk+67()+R~%4EXBigg1`>h_*fVkuqpiooOvB zr^6@+if?R?;dBJWrEr^fEfZ)+jvL#_nS zXbln@WHs;^2CeT=>K3A#`%zof=%%mkY!%w-gqS9bjGUORa1Ay#Y0*EjSj8M1k#bsAut+xJ1 zg>8*Biw`u(jU5zfM1DO)qkvavqzogj%&Zq`M5WkGMHG*}qiIj!I+C)r=PTE*A~xVlg(8(@!jkjWaHO37j!0X=rF@K8`2>x|I09t{=p! z0tEK#lz{a$xEb}i6uhI^`XGU{d&&>;1UA}H{#MTSR2Xq;UvFV0v z67m(c@&Gw~g5gO%+5$hHG-H9%xpsj<%UF$Kzdy#f$t~xD)VD7O2tXW*zZrIG@}Uik z#6Jx}g+kc+jBR_W%+KUib&>p8++jk&M>aXT*ibEI$x^i-E!)qAyQTuK$PT)D4*E=;nJN3R!F=L82}IydD1JZ;^Ib zWo2hq;k7YInsV*Rwks6h+1``1r=blbor>+~8O!WQ;mX_(9h0Ttp- ztXIllNW~Ar^4>(T>-x59rdUBhpzjq1GMPZy9u0ZzPqnNIA_1`Ql(DjT`8o2k`coi# zy&!oc8X6ih-<}faIcq$!2mzA@!6TiwA5BB9x*a0m)i^W`S#?Wq99?xWX)N}ao=^=0 z8|Cynxc*7#`s!H5pX_C$goG~?zk(H7C47BIk0cP7hFIfFwDebNwPOH;`7H$ zU%?O^5GVWLgHLvd|abQ0)gq!Xyk!xgYwXn^tgrH%ZR=7>@vTQ|{JXR4Lj~ze5L)F)f$A7{>@z7{w>7Y<0$xJbBBxdAjZpOpK>&yKlf6|=oc9oE`}>v z!+kC{%DG=}#o9Cs=|X7A{7%9wi0wU*#4huU{E7bqdcnOS=|951#nt$nJCceDdPZ9-ggc3lmMCjL zr!_v1hfqha3E6-hh=Nw&!kdcLaX-h;B~LjwF5~>(>B9k#^i#a zj~jTT*uttU$-gKYTXJl$>>WJ1iooKGK9uki<*yL&3481Q!Cuz(`$-E=!;4pS53!Z4<$%y(Eu4;d|_cIsy?(~Q%o9=MAWehm=Kz}&#)mOh~rd7--~*vdO|L){&l>i?dI;E zSfJklmq{f6KYvUnCJbU3szcfZ*0%J!$wVdPib6eb{Z9J_cHM)f44x-39dhSuKPAt< zewkr$-0(Q-&tMnFo|>pe%C9LArrqe?h(vuAD)=0d2S9MVziME;EEHk&HPqdNDXw6L z)_>BArvPJdk7p8A+cW*Fs$tzlX-_%*YNk7CnGM~=xn+cA{@_}F%N0dLL4Kh zM(|d4%~tgXJtc{t<+EqB@r8)$Zx1#EBaC7zZe z&h3ftX%W@Tuaxz1#7&j{7vg=d!Jaf`xkK-qvWhw><7-f8CcvZr{86f@?z5-|zaq>m z`N|>Ckl4H3Zot7xLHh+lOd|a=(k}(Mw#xe7`y6r8rS~~VO4tpY*ddWDxHfHlN$f{R z;C}vS9+Z*i?E-rznG(4INC3$9Nq0x7785lTU(K@CO8rQMQqt1Wnl~bD2K8l-qUE|$ zsq)2(m0|rHry}w;ZM0bHn659I; z(f!1K#Ogo;Rndj@hXM`s?FFzi>8?V-U)7MS*_*26Z~wJakd&&$h?3f)rwdDr%v<33 zkVgk<#2lDQ^dIG--!Yls5UM3b_0_4K!O`Ka3eyYn;IkG2EEqvgoaGv?698GzN^`{V zNZ;%a_FO)p$c z9i_gtP>}DAmd#yOa&~_vd`oZWkBzh>`4&dbZ%+;a>@iBtZ1!L{o3l-*R{UUJAxSs@ z!Eu4zEZzVVw1+aRjW4X#NX`R9trVc>9wXHoB7|jwP}&gY!O5*_C8$#LihbZC6L2Ls zbbElTfueN*+oK4a^7=90We=M~XzEimRWeT90**cTezWg zJ}=mJn1g@XP;#^ko5*UX@Fi#+qEkCC0j)un$yf<-jpAWoQT`h4&9l}c2u?*_e3&Z6 zaHOlMtFL_h`W23I9i1AYv!Z|xEqYcr+=PsG9cg4_$eywZny^YFMoUWe9u5uwU9{Ax z(dDoTaYe+j!;@zMI?)+2viX**Yx6t)nyAC|9f@hRJAN=86*X=+S9biT2-sljCDj!X zY^A7@HqUjTMp~G+C+D=G*VR)(UO+?X+KAa`4|z(eGR0EHqpilPEUv&S)PDhdQ{86lE%$jGmB?U-|s`bAW<@v2iHLh5)naGWk;QnGSq%ER2LFRyRwyqnh?Ic9PKCm0x&B=-B;Mx8v~jFgqes@7HEXmo$La(arxJt(ad(RGz&aCU z1&IplNBVd*l~=KT_@AC42`^Vu*}&cRbMlS-p-#WMrsg2Z(Rzz>A8Ti`@GS3m>R512 zen?B#I=Eq%LcaC;Eo@|obU5BJwe^V7t*v|Jv92ErR|IFe9tn39Kui(XE zNVG4bmU~?;6>gPPy$8a~sHzi6yH!Hy@^+Yn!EExDkq-69ocwPp3xGFLp+4~mX|Tur z68{7;DR+YB?8?9a%c2j@ys+~er&6G?8jGkHr<7)N0UO>sIDqIc;=G)N(#HiboUK8s zb||4HU;Q=_Qm-+5i(#?Rrw+U~@tm!<0c*b_1aI25Pj$JU9n8(mRsCTo&{;8qbN3vR zb>l@-VJSiCni~mzBxZ1qXx%3?1Vb?=|HXP99v%WkDIGKe%zGX4n7ymH_>=#0I zVAPZ98X91(aYcZMmm@RpL>n(=?Vb)5HBm8U_HK0lueWr~y6hoGq}81I3r*IwLwm4O zd0B+OcI}U>T^;7geMZQr>*Grj`zdw&fN@S-rxCKzg{-^3+n{d=W6BL$rqHv4&RcfNtCFcbjs`WScf3bFm%FAz2_~ zsGPfpeI=5g9RF?V&pKitf&v%o8IN8RUd;l!`LgqF>$RhKw#sW?-_B#F2G#!rY3yPu z9#B|){b%w3=5q;H^k*RGYctzmkeDEKYY;M`6t{*BuG^O0Zx3JiB#`#_>p6BcU054| zFd{DK`e=AZ;VTfT3RThID}%l7Q}*OGb}7Op^VOkn_M2xv%kMLOhKod{BOy0&u``4t zQl2h|6|G#U7Y@6WgX+wX_7tX*YHC z+k5xOuEBaNhF!gROe+wC15E8A$edDm+Z)~Q9+QATP*9LIGBsp;4`{JGz0T+c&TZ=a ze>;LxW%ob)hgwZ)yGXKj1mjemFowY%O)Fz&1`9{uE`-?AaM}xmThs;$3YF2)+7AK+ zP#5DoASfIRMK>{zFF`CNCqbVG`f{Ns4kh4G4Jv^_{jT`>a51B=F#~BOXN7Y}(+ObG zmF%yDJgYPSqWyx4*L>mA(aAEOOx{Qa^xbD0Xx^2=1=gUaH;lWfVlNj7>~;4 zcuFfaG^hdt1zOQ_D);fhh-JzjWmuu4wAiVA#}5!TPgyFA%!)y%t*@i%do{2Zso`9} zc}#}{1uT=1IIYfcD)7c<3k|o!yA-;zKIx6wNN?^3LPjY#|FX38DRm-`N*N?NO{Ad} z8%m|4GBelD5>fLvL@BkP*8~OzG8ao@O+mlOj-(q8Q2_RduGk;kbQ>jm7BY?&mA)Kth1_B-g;W zZ6x*;*p~4scjSP;G97`MQ~cABZRjl=fqJL0Fv>fB?jM_S*4wwW^pr|f)aV)q|2Fjx zk-^t}+1e+&{LPB}=B~#I*dvQDt5TCS%;(|cUYR7whIbRoFY+{}XJovuw@fMH)7^K8 zoKeX~-HNY9p-6hBDSUfFI*C_M7uMQ5Vklo5tL0!M$hI7JCaooXFQzbk>(;IQHPHWl zf6XOu^dhx|C9^^pcz?ZA!C%iU#(>=d3!XDVjo3j<=A6tMBHybmtualA1ADsm#Hg1c z3dtXx$Hjl>KXqH*ZUpf#RpaRI_mtiM8cnRHJuQ$YfMR{nV6w#WR!kPXsmWW+Y0`kQ z+81*-WJw~KB!KT9+vu~bQ_>foDbz^!l}Nt7h%^(u$O%RFe*gFi0Vc#ebugbU!>^k{ zD2PHIj850CxhD6A|0mkgp0z0lkO#8@fHoR7zo^S#O&VeEVAQ|Td%KR_HA7bXW7cL= zL;Hj?b={$*V-}P^F5<6E(&@D@PQ*_#Z%nrEyDV#l4};;MCFA2%y=yDzlO($#!>)8X z$G@_7BJv||-MS^7%ldwdg81q}i+XLf{MSU@LIxvmg za^yfxK^Q-?R>kVxt7x_}VHA|cUl#%uvmI(V(tDe|NNA3G+FLLk<70z9XnTMR$)g?eSHvhN(?k~+`AU$mKoIJI;%W}`YbZI zq!-B#Rj2;@B^#>2uLk1)d%aDDGB$aTrU5QO2-8v&=Zs<*cPkPN)Ys)*r8l%5;if%u zA!hXfSd4Yd3Z|>k@p*Erg||@Gu9}VdhynXYJhCkWNyB87a^y5BHTvGlp@x@-Z`yA8 z3P7GDOxI;BbzEItjYgL;`gVXC7=Nx$#>XsM+vMKs-WRcuI;s#bCr`d^%ei^!^~+o! zr(%lqA-_|^M)snvh3}zAvJVKIVDinPLrlD!eF(MUL7L@KZN;0vC$$0Menuw){gvCE zN~AnPm%*TxA|<1g#*2-;6^fx?LZvB9qjZ{70d&Br&M1B(CncmZNn>ylBfw&n+DgD3 zOc5*93@{6s7J52^VITHSuw00Z=04gRT0tSd*T`e9#IK7P+yehmC}_sDRm}#2=T@#T z+{tt$)JU6%Kjakt`ANxYMmMiyK$=DcJMhDOZB3Gm<1t;f4#+p7>!QhO!^q)JR!vi(W?TF|%C~BBYxn z4QA$Ao_a|SN`H;MDAQYpI#Mc-e8l(v&QRV0%)IQJa!(B_#+N>V z98t*&IY>*Hji)`c*A7$>C1e8=lC#7$Hg<3J52&kMs;aB2OXNRs?v%U`)jr?uiSR2} z%7m};8R_vcG20AIk9*jIFC&)`XGCgE61822rdEh5c)-(s$Erg-WnaXn%cR_(|*P|0j-8|mZrFrS*D`R4)sgQZ1$C4Hm@#;$J3P{a5fAu z;;`6j8H!3f_N({c=~z>Q%+`LS`|*29rYQ`BkaQ`KkJdBJs^WjTFtk1j6ec9>2r3?O zVu3FvDv#uRGQugr3mvMCLFACpf~GSiU}%C{Y!Jum?KRkXkkCPOZ`Pc$unYS$gT6+Q z2=Vj+*CW&5bIHw-DrDNZkFna*=$%`kcG$BJ|rc z&rE@iqH9eKyF;Xjwum@GFN%a!yO){IGZUs{{xCdZ? zcEn{-zo#78GUKp?AnI?iy-lGiK*IXyiqIG}Hp8qZh=Z)BYOs~$d?g($FKFT*BEir@ z;Wu6an=dv=Xa220Hv9Nm#)AOv+X~x5vTM>PkxGtmxnquw=qA<*U?|?vjiIbFz7icV z844Q_ff(oE@U&4~BQP|HQJvXErCi;T5T=43nAO^gh?}YsdGzxc%It0l3`=W>XPF{8 zK%Lan*ME+(Q%5-RDe{?AYm>v@i8|(QH}Vq9Z?HQOFmw(-5s_HnHPSubwvd;oT@X<& zJ%&x8GPV%M9)#?#}9A($4cIadN9lsEun`sh1>tDRCY2DZOamrZe#iHDH3cT9lg6 zlk&w3qFMcfAR832U5?zSLKQs%U-CFkv5UqTwfjH~Ij<*bhjhbsj1;UfY2QbC6@RSm z@9$_F1(z2@5*1_-kjjvXEmNUj8yk?l-DaV%w;TL6YGIJ>LP&E1a_|IW;T$8-j;1d1 zRzNb_%7b5b1u>KxQj-@MmP(|s>)3C*$^<8VKoS6&Uq9rOEGb89i|2CccoCV!6pnN1 z2$;kY2ZY{AzjpnbsOn>>&A1mq`TjZUcxiyb5% zvWR>{ybJ_~Q8>wcf9iZv;&A3lbf6CZiRYHDuWnqkSO@;uSZ>hEe|dK zXiW%Q@$6MoaOj2w9}*pRu$Dk3sqKU_3L5qhVtYlj4zR`rk4{rk$`JjF7tR9F^44`E4otNv? z!Sfbh5UNX5Q;%pshMy4xR?9`BGB84L0Um zp-h&E`2w!herL+ElBsqt`v_qZ6hHsqh*7zf#z zP@+6tH>mi^s)G+>{mjLduq~a5TD9)GXezFeu^#pZD6+u$&EFOo9Gcn--RoN1zZgo5 z<|QV8ZmqFmxqp-2W4F)HxXl^%^_;cXl4axLN8JD+qn_r8S^C2KtWPrvvf}k;*a$te zkvKJI6yF%+$!e{`VASd$Y#_N{UAr5K+o@7J4WbkgucxJCm>)?*?VTDi^&4E(1X|f$;55~ohV`86VAyW&dx8Tbcj$l zW-|dNa8dRYidXKCDkG2xM-3*FK$p@woQh6R${i!iS*M-hcU0RzEqg7k5S5F!fB1lP zA$1j{p@#t`8Afzn0C)WhePe2<77o9BOw|<3eFLnQDjm1+Pv`Icq9Ct5o-INhw|}O0M4y)HEz)E-yr!rS*z8!1u5?q z4n053RCz*0EAXV2z0d$3VggQkk{iY?#KdxrPqM``8yEpMBPQHd#^t# zQd>bt^~s(7;%arL=#N40b-_PbL3AcS+lIk%rMpw5%~*x4qkOD9Lvxme!a*80aiwmN zHL9*$pczpVav+MDxIiXBvO_BOn9|1y+}cTOAwfrE^qxOZBO2O67?F$ZyhgM?SQFMi zUG75|k+0Vky*!CEMAeS>tw=PE85iB1t3LL$`N5=xJN@nStU|Pf=W|p*?Vqofn2l2pCLK;B{pm1=-{$|QxDu}isqZ}sqK{e0Nl_Bj(tvgV zlwF2od*8Id{@jHH+f3Q;T~=KCl_F@9ucCCZ#|2=}V0DZ_O;;BD<(|+XEozpLSNre3 zH-V(&Hl=f%ioeIM)nL@B;F}^B4yNK^Rym~^bPt1Q<`IM*AP(`Fz!Tg%O&6BJO=utzcxtNw$QSW-u`oSV4i8mhmw1C$@5B_8m|`GWjcJ*F8ZvJdb5 z3Z%^|N#9RB2*w?Fj1Hk={4d15*D;`E{r!yQH963j$xwN1KR;e^jTgS71P-!}71e&1UO zuv~^stkpha($R4-Arz#x5etvdUw2AN?oB>UXDEjIKD=1}>26g|$Ux5F+xlGmtK3ZKXdsNb&+1WWq_n1_NI8_baiKy#r()neOyf0B=!9=6Ur}m(_td&}7Ft-{K z5)cw)YhN!Xoa{VGAi%<`?YOna`<6Kx{2}X#cVw9whH~-6sm=YQWb293@DNu`MTPbV z$hc=9gvim6Wr0B{1@J+TSSJ`s1Tl628(85d!(`pORCHZY3)#4y?#FIefX)E%)R2|+ zBaPuEEUN)5f%`1HSYJig=Z+_PDx@^*e=;w==RT&jbMcH*pKpVbQb=~hQ}s|ogOS3* zfwu0!VP#RB6k*m{2%Bx2)J@?M;I}y~i29$Pgs-&jY`EBuMrhPP)L|R9 z5)C#0t6U9b0Cid+sThfFYmNwpEk%7B>$@hV2?yN$@bTkQlJw@l<~}3x45tzm^rHx2 zCB7$q8=yu#z@msD@1>$3u;n$LBHlsIYtd=Xa$Fj0s=U;kdZ*6^Z9Ry9_67t)+FV`! zS`)kc6IWd$vYPNrYWa&sO9_K|44DUP@W4S<#QzVfze1JjO}wuBMc#pt2j(?WaSUqo z6{z#WJtVSJtjD*f8&~aN`cX)e5k&2UVk0cx)pZJ+%<_x{(rVd^lC^w$1Wi{TIT7$p zyxf};)5|G-Bv*=(F8%gwaEO_-sNehR-a|oB0wJpSLuV32kkY?p7D|DJ-0_`X&@1KRS3PUe0L`OxnF3E3#r9xMV#UzoS$_i#bW3*Sg967%@ z8~*ONt_*s5_-p1(+&Pzi=jTgK| z-sz#n*!W0tR+e1eXn)FMY6Qh$Ohh1|%P%bwlA6IwexBM-70v`6u0uMp-OzIvp&<7` zue`&07{7fF-TX=jfzb|U)&VTT37xITt?`G&$gc%ZA$b;?KEG={R_g-#9Tj7?A1?x_ zd3Wo*o74Z8*c~6gXx@)XKpNl2&_nqNbB7SVuswtRY&@B0Jhsgg;fksaYvsf zP~w3eBP*Io6O!J6KAlU?!iRQa0`Wat{$`n-+ZJ)tn3bm80IvsJqy}(QnCw9u7cS6zlO0X)<=nQ`< zwVHpuof)b-gz2<=qv|+Pj^&&Fu|j{g@la*p0T6}C`U1CyrfjWZj}(xWj$5EMjIy)b zu7T@2mr{m<5;}>J^p1}o51``lEOZJhyF8JgFE8n@tA?DBkMfw;8%Dl7dNK#V^r9$`tt+v--Z)$nBHo;~czg zH1+cPhEmg+urD6{q~yK>(bi)K0=c5rnw0f-jMKwO3&p7$5S*}RkzMA#&6|%RE?km3 zN>x3rNpn`{YgKkkuLelcOq|MVzE#<*rLA3rhnYi=m)}CgJR2`G@UX?R z2IeHAC|eXSGUOV_Aa^vUI*(eH6zPBF@ZNc`MWBc|`V)B9fu!`>kFUGh+t1Jlh?aDY zA_?y1_OU8YETp;NRP?6I2 z4PKxKLd(DmCp1DT#B*=g*M(k}EFGuZVZ38M3M_28(96yT!w>^f*Mv><8|zXjrXFAQ z2l@`VbUZXMy3@$hnETo`B`z*5vTmWz(X|3hZgK-W@9>|;CDLF^iqM9pGQ%2Ez^F64 zrp5eNf(LeK_g`3e2Z=`Bt}G>2Gke~}7C*WZSF&+o6AOPy6K(9BS-d|!=m8R|2>66%G`T_^*L}UhJ-S6^nikSf%1#?0z|PA> zU0osdw4azTVT#A+=exQymA9%mX-L+~rR`dAnx!7Vn?7%F6bZUVenqQYcY^Wvc(Xds z0oSfi>tsDgzWEz^g;C~{(+`(7n%D59(XG?1?D}d^IXSuQItDAJY<+Ql{`yt7wtElk z(YCa>q_&TdV*}8|Bya|;kQ>~o)wk?VnzLMQ2Fi0Qw%dIow%^5c_tx|C=Tdc^ zYI5#U8u^yfPrV}Q-=D{Bm)iWYs%ln+!tl`&3xhosia*?&zBT#K*teI+>@Q1;gI)6WdV^3WbuWe#6zUNN8Jfr(W;_*CS#8GeV^I zKlCmK{aB{!k}E>J!(2K@rf6ZYTb_qS%P>p|b_*7s#VF?w5yKPgaDV~Ly@SZpofv1! zW4RqE`3f}C4qT;&8~&MMFaPT7rPPr>t5;=nV*cn5XI8OmM^a#hCy)f+WJ|RbKp3E5 z&$$n6&(K$T^JG3|Ca^MohRN;7Jo#7Pc4tkR|CbUq&bU-!w&-%nW`J$(9R^LlWHYGv zhf>|GzyXL&E|bEC!FTqHDeE-gE5k=MV<3YM4|^;o?OC6*cn))JIMH*F*(B&)`6GT zV}Hhg%P>ca3#EDJ!*P)d{VyWXedCcz<*Qq%XaxrLjU47TB%y*fd4q?H59jQYtecYz z$5b~o!KtgiQQe;R$M0`j?K1Ta2Rk%_6ZC}|efnsi-pK*St7n}>3)X6$e9!GTqw9M$ z#{ZyM&0L}Yx#VH&x{+2-ACl+7fW1(StclLXJL=<`PiM3^C2SmcA{%i_GQ)qhx81w{ zeK_Xxo`?`{pP*B>MZjt{mE3p2n7RaiY8>upFllu2O6t4@{8@r>@s~#;&dnS>#0&rG z(gCFrhjB!5vZPJ$G1ttP7*S?4fSTuKL_&TDdNy}(=p@?j^?aYbbLpJL7AINlx*1&I z%jKGLEwRGg)LaQ8IQXdD7xlsN2+b9^YjA16vFJ5Yh~_3>v+u%AOqk=z*L*4Ws1A1!W}BbY|8;%Yg=LKjog zHYi>&G`?|Gd=E=(&ftnnJnq~j_wCJzcZe|0BV{kbLFK0@lSIXIW1Fe0z42*7a(uiv zQer^^t8{G&L8%Q-A&K=(S|w^BPR=j_DCnKC%UK;xV3!OJ+08YwvX3EynMa*TH{uSq zPnX3M!bc18@)Aly>_In1(EO$OSrINaHcs{H<4m~k6ps#k`9CnXc(TsKuCAoUgS>a{ z+T`l&P&i8p-8!L>A@B&5Q zHYq^V(Yhl7ql8huH!J?A$rNRKa@nR1y1HApJ{C_|U#);n6pu;C{O#Fcg{nE{>5K}J z)|!TTN)CSi*wImUB(lpSJ|*P>n+vL6)zK748JpeK6$jmv* z?oh37(xl4upZn{KFCbhTNWzR6Q)Gfm5|XZ1SiseCIA6G@J~mE@;k(54(oAHAPK`s* zQ2OqZ%+P-iz19gAnwzSEc5HFmCAPoyX+ZwAf$q3$zFNZAY^#C-)qRnLa9p#gFvS2J zGfP*Zw^EJV04b{spl!{JOy_$?%#wi(LaE8x6B2#KM(;6-b{tdxfLIruAckK7a+#Iw zgaN%k(wC4tsP7X^LZ>;%Ps~V`S z(tPHNI4Ri8j$!!kZ$9CSE>JDv%7=ghl)zMPymW*I(AfnvITVIBU$lsZRGp`WB;A=6 z9@ZxxOW{RRgRz`ksHMf>p3+J$HZ~}&wuP1|@vDsY1KpS4)`bNt%vjmGoxgAGR!mXk%lBUknsFWKp?khc z-hXra8)^c1(RQixb?KorTLA3Ec(etm66$(w40rnu%%r5b8pazZ!>hgoW%3TE{48|B zON>yG%{S`e;N++-{UIA7Sp_I2)+DkCne&}bt#KO*zbWe@W|F2 zrzH)1Qar*rPHLeF@)RlDN8UR8mF{#OO%hE3Tlt^_#2JdB1MQVjF7Iowv++*8BP(bL zt461^Su~>8*bsHvcgp2DHbc9LfrT_w8~gCRLxGzv+%cgwD*-}misR8+-5{SC8&_V~ z)9AI4^W0e2$$wvKVt3{2e|G3&GXM=%^r7Kd-Ke@qwaL%OkTrswnJmzD93ms#!pj;8nGfFqe18Yv=^S>^O30r!h^61X zd$$m0LjY|Oln`@?QY^>knCq4T-}4ee+yi(Ev=cUCsBl;{*Oe`XR!fVkbsk^4RHGWm ziY7F#?&d9Yb6WF>3@_D!A>UfC5(Nx2E>=r-dXvc$h^rP7)|7+qywavIM-NOsYF!GS zTv|-W`wmp|MLxWXx!fBN`&gu3C^K7i2hmV52l z2%@kbn;~uTU&2ae8A>5I!P%XuJJ9%{=?oPmbQ9MFLFDNiB}91b20tK=Izw$&nEsA> zv%njSUNmcGCFYD7yvz921bAP-a8RFU5)5`DMk~TznN7os$($})l(NGJu@u^5OOU%~ zrTu7keE{fy}}Yj>UnKc&;wzH zG5Rr6lW-rb`5F>*$0jG2clgigRu}7njEZtR5fTYffl)IIi4O{6{>kT1a=AZn>FYPl z7%IB1o5O3IW3qpw^L)l-Nmg(iwmj-y|1R`h?1Y}~4k|N>pCL)faj30Jo zLo?t5LO!;jPZ>_K&y(q`xkx{4(R;55e0?(=1PW;={#c?XuOyewH?dovU2{>p?NyW{ zp^xjJ?tcgFf;oDb+G{>(wR4HEY%=_T7CdM1$cpGpaiI|S+9)==2`H;64b0#4^e4vR!gqHQ^=mr)87&^^%xM_%;fn(g5$5?yUp+@hq&C!p0mfSpO0So*cj;(5 zn$^rjZ1S1+`3%R0nZk~ zY+4)wu}WrhUtAZ{Hv*-Z%Ju`AD`&(mt;)f$CB zewi63{C${(>~u6ajNMls<2MF)x^4g-}VjEN+N*FZWFI&!9lTeDm)i~YvL0$_#E zDs2b-_DXbo^7)|X`n4gKtUOvJ9Y8bGJ1B|Yq8(81yVA<@>;6jm){?h4B5AdNmEfz` zWc92?Ea%@7aAZaos_J}pE=_y**@>5zx~I_5q;QgA&I1k;w8FFMclyO8onN^)YAhx3 zz2y7iZWqs+bHE)GzTUY&XYc^Nhx+|htc}RfONZ}l{N$Yh)S(Cn7@xenye(wP+~z#U z&8eZ6aIWasr%^7mDaQ%5PHSNBWLgHwTJ6|mB_r{Y)^E6$-{=D$0XRSoz=BwGviqVP1p!%7w*;n**(6CJM=jO8G)YCv;i9Kxt*96ywxf_A%bRV`zfO zH8%1Uc9;19_7?s50rQU8V?AcXqF`AtbFu7O3eT_2bmY^M;z?^`)v`ob3!REVL(~qWvo}s_h93ntUoivXr>kGXEx^lu>Q>O9Y5$tB~~>Hll{s|r@A!< z)CF#}S6+&Da^Tnw2S1BA^(>Y^z?*qnzmc{(=f8EmZv1TEb>zm-x*t`BU3e*PAMZZ>_6&|D=a1fXG>g!m z#(G6zBFuXPecXxnD`>h!N7Rrd{ZLYQF`X3~F#hLFvcD68)OU ze7w&o-s}IwvrbX$a;)bgB`nz0;`k?KY$v@P8`y;Z2;3BFk-RG}7Bcv`u--CL$C$_~ zej?Z|&!v3o-gL7*s44D`m*CAl(I>Xf#4|~c9cPm-+YaF2<;JeUy+9RPLTM|j%-Q?F z;xio5+_SmHIdw5X`b=2vp0Niqxm_({$Y7l4YOX3Ss{D#~n$v69yv0E^aN@58)LcpL z_3vFPYF5Ta$+eFea&iAx|FG7Wp*eAkdu04S9b(PP$2b_=$wf8;#Urw=;hA^D>7|$GYMF&qMm4_g{&I zUD|vvD)q?Kt_)WnW!b{8YV02Iml>WthjQ+lxHJtZURWS7+*x_WMCI2yG6J?*ig-_{ zt-n-eAS>(I$$Ew>L7VZVEjymICb0z@+cg$(hW+U<&=Q_4syKeYh^F1lxeUJezm{A5 zGv+}GOfEiQ#A+hcl#zA*?{!aFNc`R`Xkj_|qr0?I1%- zjO~9XD(kWNXcPRIl<%mPn1Amv zYkwA)td3!iKK!ry{C_dJm6l!4iaT~(-3n)Mca2Vwk6fnZubX*4z)%;>zejuiP5oBi zYSWigx6nYa&cojQ_?YxeOLB!jLtGP&X_Lf;;oe+&#)wr)`fXFr)h!p?*jKyGq51cJ z4<7ft5^nD)k?dc6&iqwGN^GCVb-@gq!=j^lECe!%-FAqf6}EQVTKdsv#;xTC`h*bs zBB##N2k^St+IDGYk<|?GXFZMkj!BlbewsVh!~4A80S-!o5aft$tN&6}%hH{W!A z`C*-N#npcjSg=p*KK&&eTG#NXOos zd;TfAv7q77<0qF&i$tzrh;JUByQp5QWW>&}Vn;0^e{P4FM9O1j{^fr!c6&SktgOuZ zpktvW-sZ0-<)6vCY10vXwpSJwj^fZ1W~1xdPF=xX6vM6 zaO@YS()$R@OBP>h)o^j#QTER~$y)0F&qtY-ouht3+KZatbNeI%+3C|Gb+yXh7@9d< zO}Ez_QmmwxT6RvmJI-TkvFL!{^<#Tkw|aCOo0=~yeX#&9uYBp^tINx_*sOhfob}JA zcxfj-ue}tSV`=?FM2i)#7kt4)S4|Fme3=#J7Id*buB@_~Gi*ZNe}pM!A~KApcsO>< zB(%wY9^+tg!iG7eZoLEJJfR%(@5x)UPnxnSF8Pe_eAGFgBNktr$Ig*B^Rw7l$lyQ5 z@BDLY5)8K@7WiN?jw?IXQ{JIZ7r{1Ri}Uz*SJG1$&q#R?A^7VHn24!bGOny=dkg<1 zNgSGO@I>R@d=h20Ve2M&++TmM@#tpCcW{Vjtxep)&TRLi#xU%e+RNMO-&jXYXj9u9 zmi>M2h%7kMIF9o;MK%>*Hu>Lg zumZWkFIqQp_PC$1@2Pqo=W^9B*7c!NblPxnmzc?|Cv(~0YZ-(xR&9g8KGQc{%8ZE@ zb$G~K7FFN%J$mj-o#^&GpcE;Q&ADFbsY|Es{K^R-X>tL%(IxJTU2|^`J*BlI_#X0@ z1*oahle}djo7lIW`cnQaaqg`5S2FY9ldjzB>N-{9D4G9M^w-TQnkKMuv%%&3x2Zl|74D zlmt%nX_H$TH#4R8;T^OwbGMD&9Cxiq&fwIpUzchk!iwjv2L0%V{c|I|8rBv{nP`R-g(CRE?Bu9*w`NHBK1Qw zW|2-JH@3m>(=PQnXO-74E^_U|Z*;v|+mOO#9X1yqnUCr&2|l?%^BQ)ua+%0uWIPLk zq1T^LxYXhEmzrO~fZ`MN>h%1R!37&0R?%V`ld|-^eyLaHagBpvxaBgcfBh>f^4^iM zNXAKJK53T~#bK<%nv98ac^*>&2K1lH`MMvlkc<;Vd!tju@@+|a!+!CAL%!k+INvDHu<|X45Ezu>WIBo?o0>M9t?>;@S^Wf@1 z*pL*08ev#_WLSnMv+qGF?8^vWi1kFKK<1?+LO8KTSAGB1Q*{yB2^)jZiv*z7GP`cU zgZAo=0oiC+CXt@6d>AY!SgFm)EYS~{2Q%-jpbff$E3fBKi|0WBq%idao`Gq2ZB|Bf z?(|_6B4`2u&62R%DQ2yq939iw=N$8ey7Qk&tIn|oloWux_{w=(QC*z@yz&Ko7^s#( zKRfohDc?;SGTZ^UnE7Tww;bf_)KAF8+24ZnI1v|49DH)F37os9bBW&bVHU^Sl5pfI zrRKatR4b1Fk~TCDI#_f34V@N53e*Fqm5iW*GlrU|FeV`fG#~Uu#(?JwA*g8Je6A=( zzJ$=}#QLQcLXe?17En|eqqnz^v@bkDze(dS;%oT`R-dGA@0J4H+*gaNH_elNOvH4g z=|9y1J!tu$RV(Nqjd&g%?FuBHlgxpn2RhsM3s`y+8GPqcN1D~fiK}=T2#03y?f3A+ zL}^lGfqfo_7ce6sF$_}cdHRw_uMZ)QR!bSoeJe$h8sAF16Ts$9Rg=~~Vv!VH=m~_L zXvVU#iNg+*T(U3yb@lX`i3K^aO(ERh@m&wB8chIw$ECs2A1%j;Mn<5jjnVk#6T9G= z;u*ZZP{7#8JC1JNf9n^ME}B(URpo;bIr41?-9>bS*=T4WgCfddDD=;d*ZP~5dj>(v z7vMfmRbyP<*^~ZUIw>Eg$@Ib0Alx)bJ=Jr4tN%Q4JZrKu1_B7*P~HHyB{{>_PYN{q zj&~nUC~#?1U$=7OzBBXC>V+7DukpK}L$(=ZgXl=8rmwZ|v`c_R577xXT&-ok2NuAn z9!@ASEHZ~l?gDljMAKene|Kl+&d%FzzoTsd?&E#pH)oVhJoiV_A$xO!#no6GCLT0_ znB1pqpr?!80jn-ZxpvDfm-9eHlADcE(&V4hbPSU)414!qs0L@-CRB|;t-YsNjFf+y zv!d#T1JBGyGOo;hzl=35QCU?LZ9>kZZbJh&Md4t*SeO%8b%9_HY0q#itFGQidTARP z#K8mJj=oWJmMA7dbW;kI=A!NFrzFC`4NQ?8(RC5gpJV(1_>N|cfbo-({o_7Ehn-G!bLYU zKpoD6E}>i3a}jo+HJ=Dpv)M+Zb>T0^doEdZMNB%ws|OHedBK0JaoW+*?X^uqDjAMQ zapDM--}GpL9>}dTLesY~wm3^dn@?XhqQaE!g^}W_+~PVuZwy82O=(q{y$GIVR|P` zC5SaTwQEP^6cyK69g%V2_iGW(*mB~B!gc1k$5`~}I!=}qqNZSrmgJnc@W|*?Mknn~ zL^X0`M4r^BfseMuh!;09U{gZxhE(UWpIORfoc<=Orgw(>Fg~%0?)P}0ja<@;?ps!6_c=GJ* zVCgRcXfS9>dOF?h^_9sf0BfruBfTti>pvHNn`HTxJ!f$Qq|L6O0fC%9ST76R^j2LU zRb$&T8a_c9MMqAcp#k%jX^DWCYPw;+8p#_s3;v#F?#-Nie+Ls3V}sQQcwZeqathkN z_?xt}#T3{NUji^V(H3o#TPmmCT&q!_&s$JSoW()BoE47|-`FalvHwCpR!X*H%mu93 z;a5D;!vJ+OF)Cm;%Hxo+F5LQ3VXIxgig9gja^8(h?)(gGq!Dv<&UvK=4HEa!eIa1~ zvzciuj?9+CLXM%;w}B_aP&HIluIRM(uA!$MAZimBg>8fu*Up9r(`?a4>K@JZ`82)$ zUE460j=98)V!1XdiiVhqX`wC6t_z*ghcRs^Nu{j;Dru`OXzcxxUs)VMAHhIAr~Ls! z7LUTPk%msw))?Z{HAP3}s!2-u$#tA!gz+!(*<)oxjHMdJYiP+RDJBd&>`~?A=FW$f zLuqgl_(2xckVg`hLk}qPTM-?ndNaaHSU{F~;V|8E>kE{`+q9$!&{x>r=VnbFb)d@ydw- zJ?$PoGh#gaSLi&q0sBO$42pt&o-?&EwB`jQ!Gk)kMaol8U;iGNS%^DlLClz)UL4!D zT>9ZJ^0wUU~&N@(9Z!B>eY+Is>&D_uzz=lkcwL^ewpQ+!-Xc%$9$-}#b`vf`26 z{}X68caSo-|Nic+Lvb})Rz@78XaGefBz#HE_WZ4ku;RIdg?^Njrv$+AqZ=jS#BK(= zYu88SKBs>zsAiuV@x5vqe{$}47PbAs$=~z0eh`dc32wi=4e*@rb8pevmcK}5nTjIR z3%dP(&S5VSOUNaXA?!A&65n|UT8H3K%l_3wg+dLFL-3283+>}{C9YF^ZY)IE%B8$f z4ATDw*1a^y+g{H@Ys20@D6C6BxIA3uY4p$GIVO9N7v~A|Fh6E0kxc~ETTm%(CZDu` z03D7dDuIT^zieLR5jKN>bOJ9E|Egnb{C(Qn-{Z6+dMmt5=QaXL?CsA^bN~K7!RLOz z=Wlg_LeC9xfu`L_4X$8?NpWAo8|$VmEX3CFa_%?BHL+IqjJ2v3H@Dm=o~ka+Fj=lJ zmrjao2RJ1gA9qODvgT`h*<8)+wX1w9Wls%Z%TnjT^)Od1Dv_d;dF(38pS*yYdjT4v z9(I@_dwPDonm%ZyNTk2(1m z7f*d+%AuBiIC{cFTOJ`jKl%N>#FmJi^Wofa3?CtpctxYrqsDJ|G;RiP(H}8$oA!Az z0MQbOv-wnb*@Dwz=BLQ&Vud5o9UNVtJdhQCwq#p)-HMEVUB?sa87O2Ov=a~HU#d0g}b(RbkY{S|nB%vFoLWdFshl}kqB z`?0Qhc%fCAL%JO05i}(B%!8#xx8$fqr2hSM1%{CW0%rf4coE^3G^2$1%twuukXgtp zajj9!x-GHl8-RuosnEEY?!0!?k(ON0D4hr5yVU2x9VO_xyMrWRfZNQdE&2HnCCYy*q#6W_7L7i6~;4JrS+)|mQUtSM+NJ^>lhB2 z?3{(acTN>ab4r*D9^84ixos)T0uR^3|*wFl|A`#$+kvJOIy&=i`< zE2byTgU-eK#bOJUMLI0bR9*+0YvSB1Jm~}G>5tf5^Jn}wXEk>k{~I7a_YeQEf@eh} zKQg-`SOx}f2F>E81<{YPq_y=kt?cIcmlps&D0_x#+8*Yg<1`# z!wZmUp9j4ZiTiI7lc^U((m?V7Bxi{}NbUZwtJz7O`1^>%cqD;F&PU73y1+1hi1h81)SNt8`bC=GNi5%KNgTZ%?cn){4&Am+j=b^Q8 zPxJrBz0K18wdIKM`LuMI?x-PFs6&qf*^S2abtArIL?6@ANV+bbx`Q6~XvoBs)cV>QH9NgBj$ZP%l zt@GKvXRV{pzbQnSjbXUF&osremU&+N=d&EI&%V(haKT%5lDE#Qwt@vE$uZ=XCFA=2 z^KEzy150)>miT+_sv#j4w1m?4t96&_e`}$O zT$8Cp-jL#FURkLTc7(FNx;ko}Y&ra36vy>16?l;wdE-2T&1yu11pB`lyf}TTJ1yV& z9}Q5oM$Cc*Nl!uHbDJSUQF<%>i~8-KpBGLagy**L{|R9=_kIfNG4eEF%E&3V zKagRWJMh>&# zvjp*egt~F!^h;D~vD;@)Z$3e%=c)U$vp4IIL*GY%o&5aXQB;Vaxx z)1FV$r9VqcXRD(&_mHg0j*oZ7;PrtkNtea;s%`{OR9gK9DxWyNe=a7yO75imalI~A zVLb!8HWP~DL5RTq{o1sJG(>BL-6bqql(hw&GK7@^i`)yBhXD8VOxS1S8W zdvk@g-h0b4C0&%vgO@mS3x(n{ulg3fVpjNZ^O=(!LG$eHuZNTylD#6Hl+R< z*O+_AL@rJB80`c?HR546J>uLr&7qZ$y(~52LN|Q5U5IS}@!)(BTjMW|8J9%V~F|GY5x~)sb^~*%3AQ)e(g!cqb#g0i5d&E_eV(ab zRPo1Q+wm1XeJrtmvMS2rsnmf#?(AnfJ<#WYt;&tSL)sXUb@m{fQ9N#~;b$cy=K-MV znYzRMEP?pr5?`2?1vQSzgs(-Lw1ZOfP#;dUy}h0Ff|y7;mdm#7kZH{=ctFMb) zE)%26Cl+nI1w)_@-C>MDI%f~mYKA-|!)nP>vOTv?WEzuOU^K9TI1#{FcB*vdzRr7Ug{?OZZ@rRFvXHU$nkq3X62DvmNTf}S#Cyb~4tX$lFANWOhr{(}r zMh`hqEqGF-7##s%Jq}9?71wgdgDfM9yc|d4)pBR9#mx0gfaa)Mogmk?R-2er2`a3+ z_=L|`i`W6^*_IIQm)LJ)Wrs`q6~OI2v7qL52$?024}YJ=RC^p$6KG@Qo*}eV3%9z5 zfI6@X4G#|w<6hhnP6}10P?EyWCC0STj}nvnGA3G`K`88au;9vFNO_6N|Z&-cSibkaS4 z-yQT;64#gyPlbg^&uL0ZN+QtdLQvv#==0>9n3me^SDcTrpNwaOCN2^KAlyyTPj`U$ z3c*oo$GMxi>@X2?BOG0j!>Q2v>_UfxT2&pGx>EjJ$aSb3Zc9jF^(_JaNxCQM<4J)+JlXknP-$KKbq4 z-S=SsRiKxUy%BQ@UEyai>&%1(R%hI349HQw4~~5OK3cHy?ewZ9Vq?Iz+=m>n3$3I%+B-J&3hYP7Q@$@uC6ZZ)lo2eC^pK%SF zZf`j4Oae0$4&$AK8E9-Hjlo;V;B`f-r^FqL5i=`tM&OCkgO)bsm>37`LLgI6Rt<@KYR^xsZpR7PLrmQj$7kMV z5-tdatnQ!eN0Sn9F5+fpBaXek%cvMkWo$9d#RE^2voo>xP-J(m`TThkA+Q^*(HiSc z{3(bT%`?4DP#I)DSJKhAnv=_i++(6i0Gvy!erj82_~ zm>|RHb$BWZP98+GF<$PMLxba}-`p5kN;DRPRr~;1LAY=+H8pXBB)!bWBnF`QTgu#l zeicdgSXUw2Q}F$f`_HUg`WN|bJ3k5w!|9;0Lqkz_CEdeT{&Nw>?`=`^*UMJiwP65P zcOWG}jOO$EeFns6f8>j*JVig4Sj`YJMnk3@N(gm~VZStccd@ZQOHEC^I1*PxNI_V^ zDB$@s^({o(tAi`yjIIa`J?6vpb_#ptYlX-(ds7RU9Bh3HvtcJNfX-h5vK5bGt4gbD zmOX=*orZ|7kQoGN260~_;v3@JL$n;E16#9asNy^)ocgyiJ4a+T%#Mt#$kKVH&EYa&l`_k*EHBs zY85hA?Ct!u{}B+L^)h_^)k-R}8~C;Zy8~$k+%%ch^QUZDA6wY3c53{^)09%PBROhs0SN1+s6!l zM#ZTogbfDcr;TOClvku+h#X|V;n$}b7nm+2j2;Gs$ka^M6Zx6tVQQI!Z)T zh*^Rn2Jn#c zWA8{MJ>j9SA=I#H@g0X-J1uGZ9x8DA2qOqG?u8HDm) zXILSWm6cH=?e!#IYK(hGxYlZm1}IvZ;AHL&2L}$L+t=!Puu_OMMIQEaYU;i}xIgiC z#rk?2wZqEN`uOCqT^Ej=hs+XsraOCk#+yC+csH99!QL4-4ktoHREXaBEudou-mK)z zgF=i5u|9Ndv%-^`hijl1W715fI`Uzv>ExY$LX?xpuLX^o8-xypM97AM%^0cDsJmiL z|C^QCkQr?4xA*|75@IX}OQJ`qxmd9I#H4M!&EZ#DE!-inBOZp9tC{5A#7+x_CuO`l zh=&l#tw|%e?YAXN^w(DJuO(~e#j`n-)defnBBN=wMImE==~9*vSndsPnM#8w!sn+D zk{GkxY^?6fDYq<14tM-Gu?QeR6!-Z|LmS-n6aQMaB@h0>3Z`+eOd*agIWlMR1k@LU zYX87TTt_`f2|zq9A-722BZh;xZk|K|h&e0#n^{y_X7pFJHfI#e-$M6-MI&WPmRb+O_xesE2x(&qn`QKTAwcpWq{Qf761zFpWwx zZq|Y{2%$FB!3~*{kOo4evoq=qXQ*+G80Jj0E~=s2IyJat+oFAd82@tD)t*kQD*Ng+ zm)m;7qm)`vjry$SQ&X1r&l4QlrX0SnlvI?JB_>I^+1SbbehLv;Om6lK4?Y~TF(S|C z%J05)#71Tu=G{K27VxVYUiqE24)s7Y9+ADe%vbghqu2phF-omxH8TM*p zB?HD^mTt*^JR`*O4@&I#o$Y}OZn3jCql?l}izL@qB|Lq$ea#*=ZJ$DJ5|ha3QK=&j zd71*(sNcboj9a9x4QUGzN%}m0=9>w($-!z;r)w)FZD@jT#^M)W{u6r=HNg% z_~SiM0YB@VCQp-5Hi=wV|LH1ir%}b_$gJC8-{i7;u;2)tKasUs!!+H6JV&Z=Qw&JY z5-~3!t~#;L4A-p9?AsTlzzw{VDGg%DLe#2OHg_Bhy_O-<+2a-U!r{f=wQ^BuW=L|g z=a~%ekbyg##|3}(3p8dfhHh=-i=K|oo(VeznqJkiY{g64Zam?Jwv(2?4^#E285!0o z35gjO!vDGk6>yeO+Y91Cm48=gI3z2ZnCa{<>P*5FZHuEiG|sEk@P#%3n-k*7EBitk z^CEWhKl(_xhBOzZrJc`1m(lniL2#L3n4P)OUyD^4qiKGPfzL(tm!_|E=>8v{_IJJ~KK3Z;7k}6<*5-F8TM5h!hvsaW#9ZJo_mz*vP`iQ&LgR zI#gWz=a_>yYCBUFQN#WIqBJ%o2xaHp`Sn*<&fcN>>^tDlJI26x$#>NFr=P~Q?aOb= zEZ)IVxoz8@tcw@BN^Oukt}aI-lXp|ks5akYg{!NhW3g5Uu$O1UjMj92?px=*uDolC ziZe;@(1VM+4n3Bfu#Yd+8+&5)@$lH8#~%XsTYN0rm-w(VT6S%9?=w!!e_Jj$qyesRASpX)e|ir6OB!NOht?xPR(AyZ}HIn=h^6Uh4uG+_#7M@+;ZIL zIQi`u^h{J#Gq;tfn{FLM_P(kIMGH-rL>Zjr(jcI(sZqogOx3$L(R+8)w&zSBfA~}T zNl7FIHAr@QRK^bKiSP6?zi{C~XL-2WLrzVO4%xE0c=gQ6rWuP8wO9I&zgu-zM0#dr zGq7iVPSm~|0{gxYe{Q|HBWGe1;#S?UoEqy>ynHz#|4KECM-L=p%%y(KSd3{@KPMZT z6oxS;cUTW;Uk~8Y(WH1x=`xTHk>*s+^pXP-`7`PwS5yDl1K84q1k zenG+JI$SbYB9cytPY(-Yj{LBMZ{;0J%8Har#T!pOJ}7qJzyW@n(b&wl#sOH{(r9FG zE4lIkxQ-sY4OMb%)3Nog$p*d0Xb#a0JW?Wfq;4dm&z3$#h+vig0PVJ5EmiE2>f721D3*cKPzz;pTxv}yZlY1&$khvV z>c%^kiiXL}@2p2{nS3rL0{Np#+cJAZM=H;P#z`-h|215_=`xDD#$xOFRKl$0Lf;_UMfWZ*S? zQsBwdSL7vq+tbt2daO4NrKog9@~y8p57Qs-s9V$%*`FUWfBRtX%I3ugf!t@#pFe-! zL|XR538xT)zQkm|&l|2t_If;0d}yI7mVSIYqodZ!RjcGwRQxmFUQ7S>?fgh@y($j1 z3i*THxZYy~GJ}RJWlj5u@b9rx3ng zCR_ZZ?--mB-uIZ+)Q4@+qH;P-3DLV!jEub=1^cqHv#ZjKwR>t4-&R@-x1S9U3*$4R z%c#$^P*qP&KG67AvC4h#eTbv3InVFCFD|Ztv|p<|6N`fjt02Hr%50eROL>^X%&&-J zf*lT964Y9Idg2f=`7Xst`Lb=Q%eP~UvokajO1-FTc}3&V6?U5@F3vjr%IEhp%zIQ~ z%}Ugfv7UZRb!{VA`eCx+Qo0RU>CZw#t6pA`M)>Q>bJ<{x8KYkr{EI8&)l~sr$)H7J z#m{02Cnsl$QKJUb)fGt4Nep{GTnpRjWcz9BD!s~TEwvUA*WVhxJ6Y3YE|ZAL*vFYWjWZ!uZIE&H^Ye>@IrU)!-UMVUN;FL=x>ZG;y=uLe zHJtstykugnK0X!hyLU~>x93Z07eLjBSAZsRCOg^jaJ*|hTvS0Ff+Xgj{b`#dS)qeN zL#I3&VY?fxk`jHcdc~SGJjt+q#An62Cz*H0S{Z8?*Cbu>%aloCkleX*=Lqt8T0QmP zW>**&QCR*si!#1TBjtqM(o@Q&+)SBB$91liYndrP-rt?F>LR@P&Z$o*3JI(j$ zTx?}Z!`S4$=nQ>&e5g<+m|2n_pcSna5onVsDiyl+O(fAHVN8eZ)+cY_)+Hk%C_Xqm5 zav{&0Jv?6VshHwnadmMqw(Rxsp?TXOlduq=*nB)a&LYiMA8hGd+InWk>q4+JK3P zDYM|yQ{l#5t@v^dK|!@ZezTYDeN{1j^;^@4L*%ofLbEkTy;imE!Mb4C~Wp7GTjT(hWLY5z7lJ83Ee?Z$Q zgp-w30t=pX^hx}A`>=MPKl(!chuGPrG27m1`SBL})~7nZ&?v;?dFsrW8sM32-Ck06 z$cjLhVC?r?_z;#x>B+^Z$YZhc4#R6yT}MZU=hFZ(RyG!v{89^)%BtBs%*@A61@LeW zW5mkmrt$ilxW786DtHQaN&fovtFt~cHN*(Em*%uXi!Lp#Vxq|0j5XNuq-~S_)uiA2 zKZTXfen!2h*rdnb%F3@=?1tcxBO`z@mA9TdY}P5~&LB|TJMrt+l#%;pZYitFnxun3 zxhh7{g07eV}_=K z9ff2s1gOH1`bipy0GI9fwYLtK*X~e$`s4;(|SA2EtDcm$9QD=%+NZ#sv7!!O&! z!o@6iI@eNIkD@l?Nyc)F8{W$)s=02#!V?@Hsc}ug%?y*=KwS4WPNNQXcUraSS#53Y zjy4Ht=?d71CVYQ;mz|xxxW5)1BcVtxDs%=O`rwqW!m->bX9?AscJK>j2zap`hpmU7 zJFVVwnV*A;nK>-%t!X;2!=oA+GgGS$?c6B}kW2RZ_3JmZWzU@(K?A2AS`*{{OjPTt zjtfvp(Y@3@h1xJ?t?*A7T-2o=Uy`nP;%KxIZ5lA3bA@_>-PEY=*R;ftK42iF@Vr-R zPXl(|j^~17*#Bl_oN7(eqi(b#wu4cHNtaJux_lYw&N(oNxm+f#Cj*bzD3phXisKoH#}1Uy zwXui`o30%iX*+8Yo`yU(#3E5aG+wrPbJ!XN{^!;sol>~f_jigXUoG2#ZAA6(;lobp z%hoc+Vm1I>dIQWuqyD-@6;ROD($WEty#}=`7ao3W^z2+*axN||h|Xnagr~#YxA6KG zAU~DFdA{rtdTQOd2W$8Y2DaXfGC~yZ{G1et#=8)FE;~QJihPWMJW4c7k@0!*BoazX8iY4Ey||o)G@@&|FB5}aynms zf87I$Rx)ua+;%h5W6|d#Jxa8(S%h)sj2}yFw6|G)Lc!Ryz4WN?ukp~$Jo;B__^?;O zd{uiAyb1Pdy`ePh)}63NPMqNG?&yd@9i`J=8e*Pr!GikN4v-rrKqiY83f{eQCyKBR zjB9=1^0$PtyBNtUwu%Jc(2pi>-n=;s5LVKgLv~L7LZK8r_;9krwch=!)~}z^#^V#| zydDRiDa5G&HA_gw<}{5sqmp47)$yq8rd+g~WT1eB!pyJfDpW;uVk*~>;Sb|(5bCN5 z;UEsoI-^jJb18r=#QmK)A@(jSG>3&ihq>`kq`%h zQ|GLyrSkdn!D!6YS=j&Q7r!nFn&Y|8n+ z7WdR=*1S0MlpErdv)CW1QuGv&P^5qDKH)N$zcV+uPbt`^=;Oy~xKOXML+xfd6`+qN z3rC@?%d1y?a?zqihWDQTFsOZT6yDU1Q7Bpr-dgq2R$&Vc-g7R3ei8=OdXv&#R1JdR z8?Km~^mJ!bIi>#Pj|{F8lomy?58@QZ^1HTwP*_*LBYzBj^CNWW$}l0juMGL&eAXk^ zEod%PV7nEvu6hf2d`T^G8_Y!vB{%!E3OCzD7EA` zN=YavJk-+CG9B-~K=1=B21H5u>B$jV1_pzgk9w>*$n)~^^4fn+3`w0l=>xzfS|KhP z5tR+GB`D~X!K9Y7kQ8!^h*JTkSgb6}%q(1Rs&eWe<`;?KLs*4`G$bV@ z5eUiQ5g-TYEOJ3j04gk-mlRQ1)X*d%ZQv_|rRrYSev;GHdK~5socG!gIV`Kn7qEL2Y;A2jM!;GD1qvN6_!>BPfP3kHPDU?KOL~s4J zeeGJr#(#c9Ha!g7R}#?H%gXVXw@+43WcdW17h0sa?QR|(=I6L@hn#S@ua_eVMnTFV zsTeeB2R5%A{H*WYyLZ3W4ScHEKRuHrc$#WX%S*Xb`_w_o#l_=OMVL#n(Nk>`W@d>P z1<51Ue2i<)??P6Gu+2S;dP@q}nW5{S6q&jgt2a>iuHr^nV|tbEg9qB31WX>rbBwzm zQ<@kQ#5g!S%sMwir${rD#7+{`DeYEo2=bUq5As%U+F{eAtV-3f|3K7>bmVVLX?G z;Xq-kE{j1u+v-g_tSlwg3hy=eyhGjO)Ii&lLv6BZBHLR_0wQrUy3pobo^#Ax>jOYO zf>?oKQAB3VD_D(0X$0w9nCMc9&-Sh8p~@#AX7v`HlgLmba*$K#z|mrb>2N~I{Fi4| z#e^qaapN8BhzwsV?DO;Iz3Ef_5?wWrIxyP}+?gHH{Oywj{#Eh|mt0`u)5J896z*<>E^zta^O##p^a5{2{q|)4}6ypPurL0G-hVX@K(3 zMEh^48#!+dZ@=9oK?aSFdh5d(1Xggq$&~GDkUe>?GA_Wb>qC&;9-&|g66%*zx7op) zkMuQaLbOKKq%`Y6iimOnJc-WV#Y>&ACojhad(sZi7D1F~sHxBX7>}Delx(2s#71Qu zeLXm`^SEWqCD9r0RlmL3UQh7odz}tS?or|7?5MX0r_=Bf?D@(bp|DSz`A|=QQTYaFyK0O5VVoe z>o(?OXP9<8d-qO)S9}eHwFHPTWeW=nO9zgSgu7FA2paweFS#Nu)2`Thfa>7zQcTN6)^znP!fsjnztwOB3nT9Nx0{POI>hm&r{pLx1XQdWktpuD*E z`PC_Y>*Q~R?DF2I?-^}n2K%q|*2zap9J(xV#71hTxYUfpz2|ove%*g%r-BB##M`ZU2oVQIp5WGgXG|klE$?$EXCH`9Wvx z&b-HYK`2%}S8He)r>e>C`pUT3Teb16sCE1HDD6V&%w~f|!|4p=By!Uz9HLAAq@+=c zLq7ZWkK@5B16p0vp9FUz8+$2csi^x^NhMcfGk4Ksv)jh>U8Gy~ERqjHvF&s2c@$QY zgNNLE`mgDHKh}}-iCI{yK4&UF8^W^HBVcz1L(%Uwmh2$mqJaHi}g^h)=ShXuyKAe{52tUS7g0{rfo53=XPT|u zz0MSh$kJmtgEWcD3PCST?%8!ONT|ZtcZ#Lv| z6)j;C!NU_v+a$l{n*sgbS8(=!gJVM%|3Oh>&W~NkS=uP7p}}bA`WsLnzwvSQ+npyo zEPW6EHcln~5Uduw0`JVT70=rCAK$h#ntWSUmY`fxv>zLl<-50{D^`5l_pk32>^HZd zP-M=U8YxQFf06fQZfR{{XBTKJp`OFg$d|m{MD9Ls|KPBU(OKaLw@oT*;x zlph*0W#y5k^0?Ab>Y}fHviRKT(>Yn$M`(axJKYy@jqZwZGP9-qrufVAQp?2Lo5}w_ zr^knX^UBJyHK>0YV&xEib^4=eODnBykN3=sCg+(bQB%iBv-nsZ_vw}nWqWg{=6}E4 z5^tB;J25e#lEQuJL7Qf&OVVL;_mYwa)p=ohr%q<<*B}hPd)GKn4=flT=!-Xn7Wm?3k;R$`hkIG{o z)%H2%z6xh={ic(BIN3kmWzeGYD~n6p@BNBgP?{!RSui3X)>N552rhi>|M`o)G0g4iGlnTHN$nmnkZ*1BWh3t`ymGxb}638F~!U%&e zuY8r%NR5wFll4tZ@GGWwtYy!VieH+9@#Y9b_D~&^GT%-$U`q~u_9s~IuyNDvUq6S= zOhX}22FNQCqhPOMdzb_&0XST!rRDJ0ZC0PtTX^(kKr5Y^0VYsVzui~z7S&oFK~L<3 z<`xn!${?s%rJ0G;?S1`rWg_BPb--f_@5lP>-)9ncYU~-tr|AKPbILh-Ygq?SKgHw6 zZ-+_eTa$w&P|mr?(~^YDM0vuxPwB<$XEF(4OP4KU+qbVIT4dpl8#+|k&AycJcw-fPE2gnMz@ z@rR5L6cJsZI$llI0yQ2%Ey&L`gQO=6K!%c?KE@%Com6yaNy~D9Cf|dA5hgJ+VwD|1 z0ij3OcMj;Zm9=#zUaZD<$fGzpH$%#8s6*Gg9{>W1iQ5l?>?d_dSz7nv!Y!isT(7>N z_rcSr37nUAu^z5Uaro~2#6J>$Ni#jA+P~nI#Jah;k^5X3d4>rvV%)nOf|41Q1J5Am zd5&RF$H7S=*4BQ%DRCht+hz>7lX1jM?Tyvm!>H#DCkI^8)r|&z+LY()IOxtWAoaK} zcSZvRPJ}rgM=t%^7mE`-ot;aOJ4Qmk_pWjb<@MG6Z-1eN!TbnVU{nIHi3k76Z>Hg6 z81pKkqpzpKPV-$VS2a=V4iq$E>RFbFwI%MBl2(gb5`^>d+}Z&B{2qao&qqsWzx>p))b+o3;L0B01D-@t<6v@bz&wlKNb%N z?RZ*t1=c-#-gE8Z6Dr%}9+8N6gQmV}KIZx7+_4F< zpr(3ylmD2aYjxjAMZ@j8Su}+HC@VhKxsD;&K9D`;l(qv8+qF^vVzC>)n*jsCw6<69 zVqS65dsx%EWN0O@uo#8IB#pBH0U#DFoghAvO)C!@?Dn3x2l1DOJ=_+A$l ziUSnmW;l!ylLrYfWd6wn`8KAOyswN`O^x?p67EgryD{kOJuG_>(1g<{@HnHPjX6L$ zvqQ2kyj}K+>dxENY2T*abCkecBhbQS9Q2k`U3m!_Z492|B!WT3rE*F>d4c$C+ySVELfRMzG*?l^dl+!X+P zPUe8|^ci7;8iHUQPzPv^-?ZJULQ6FNLD1vK5rK+&1}A16?3&?M>c+PyFaJItreB=F z#zi)d)ZKv=07Oiod8t!XsEPa(K!-IVbJl&y`>7PH5Xr&6U@B|Bnu1lc7)H3Ig`rxBW zG7EUIqDv%&Yf`h9cU9!n~Jg{QYCewtMe_T&BgVDY% zS!>NjKC^~FeGE#jdu0$1LgW;j*~7AlZNw1~b=o#jP4Gw%!v$!4TK?J!C~X1^>yChj8>Tf6gBVr_d^iUfe2K`>eOsSRNtRGGttI$ zxA|DU**D9FnWFpot_e!-+dQ6bHeH@qKfj}k9L4iovt`4lJzo+}^{+79&T@wHo^VX6 z)7=e)L<;;@yCfC5K9ka<;UKMr|Y+pMTQ2;$2DY|4jA(cWz}zk}kq z3n8B0y!#Qh-sdPHmM&cy1?ZI2B&cMy61$!rx^(H14%Q^_(HGti9?;U$KSz;?|0uZL zySF#dtT+HQ4M`ckrkhAfNXTet1ig9lhTz+Or!60+PI3dI0avG}ruKwpowFfnJa zHqMHObl7laK&eZ!VZ+Xj@--F?Gt;REe&;J{vD#EWwCJN+RfK8*G;l&*-f?7CQPBBB zV?{yZ^S!b!cX-&8ko1vfo>oH@O}lPgFv>fEYG9F>)bUquLw6#(%0b_Eu{1>9fi=~`gN)H-Btoxtg-6V-NFj|9v8Cp8_T%DBWL>d z=}q=Usbua3L=%U0`BRWVqH2RL)NMS0LUwhPLBP$ikgwF##i^tmOa}V!9Dk+b z-z6ZRN~jXheo-LT*?D+gm3FZ!#>YaGL@N82e1Y+-1R@89tfxEHQ6UbMzDJmJ$|7_% z1QIYNIhiY_IrP~xuIoP}%&=>r9Sg6*Tae0rr&xD~iQCIyy)O zcd7@BIeAQx!)&a%eED*nnI@Wiuxkd{Pmd@Pm{w-DNw}BSI-G?VVyVgV{Ug}eHbabp zjm?nz^qDhfh$;eEZ5j}F7Io`{G+7X|^_rP!X?!3!mC;TV+0@juA}ijoK4bI#^N#4N z)5vr^QKC77_{o$12oEJhKWEXz@}hR{2Y)0MWGhFzRDc{^jzP7KKV7#S+ zyw`)kkRvvyRqVR^%cS@j>8_3>mgoJPpg7+286g-j(<}z;I12|C*$8Dk>J2$_`OY4J z$RFm^nX={{!ykVfKjLuZCL5I!XY2EJ`(G1R+;V_<>wXG4a{6&D^7q01{{1u+=)lrM zz}tK6p4I(g?3+YJbhn8QTLcIAi*L;X0|V&m@avvjb%cdQ3@2O)*-{mVwt6&Z^7NHn zvj3wU#8)x|dtm>?iS7mgXC;FJ#Ck_C(4LS`WN!CjJu3Y@VSDbSwEY4T?_`dj8wqsc zHK{C&CWM|NX*%W^Zahq$dXl{3@s@&iumbGk)tb{@2qGkbfvQU8{9lhuqv#F5+N-?0 z=t5FbaAT@j)j)DvlKTWqS~c$?K2)d>coGjPvpUy;D5^`>%qU zkdl&mnN}Ut*9c^_10Z?1%LXxrkAXfuVF)*mb7qKUBvbDyXoE=TFli_4o`Q8oy`Tf+ zDg!Mp*n}Gw=QMe;nxB8%-l0CRYgd%gmr#GtD2Y3k*K)pQ zmCL_>a;~V!n0G#JlJWo1CY@BXY|p-m6sDt*m#lR^)@}2PSAN)Cmr`6h+TZ`eW-R@U z9F`cs)I-D2RWx?4QSbG6{8+jB(cdk&XP^wLaiwJ+Myc~w0 z{KPzzQ*?bp?64;Iw-y5J9YHtZ7rEOO;ZL4yEeRA*L`+H2i%jCytGtvn8mnj9HV za3RzO)c1hGhF&QOLFmdkd2#V ze7yF^U8@!yvD&)LEQQ5Mrqfkk7JJ+Z>n(-mszVW-m(5JVJ^Y{}K=V#wGg>j3k!>Ml)&4nj>aI8=vMx)9*tzM`MG9m8aK2^xO;$<&h z3Nt7GfIHSO({!g<(C0{tZl*q`uO=>Ny|Z9{phV zjD>6+@*U7wa&OBrmnvf^k?2U>NREvN39uh~=jP_F->@MC_yS_YNn>MULU7^Hrro+# zzw6xDXPCpd89?nL^Q14NB1F5wVhbK9BC;-ANkJwmV9FJ1sY<1-`r*II3oye+) z(6_Wy2J)D8WV8hLBq#s2#u^taS~lF3e9Vp-0jL|0rEPIrTm+;)3L8JkZ;+9hf2bbVBzQ0ig6ZT@HZgjllV^;UlN_PT%nLTyfp{q*GE z*qDX(agV5!oys;IS26@vJ@BXgOSih)Vfn9|V12VLFU5DxH|0miWReO}Vud!+`-hIk zUEeoJ7cW`y@on!B>7P=qNGjD78V0E;!TLLx7Ez>@kUw%gXPsc>!y#b*GcCXEBch=KMyo!__=ts>0QUH8DFif%-}s^QRWqxSUsG5K zmNn*%t{?QPvs?fuFgfsY0j(zi0fGF8oz+AjBZ))TLhL)Of?4I-^$P$1o?`B#0XEr+ z&NL+as?rblmH{i$XFFC@Qc{H#Y&KNFtE$!*t9*#aHNClv8U#hRYamM-hJcpFF7)z; zGebil{QJ91S|&%8QVj#q6|CQ`R}tY3l2Jgmqa;}Edy4-V=1{{4bdj8S6_QZoNA>4YvMR9&#-^sBPvGHyC9T2=+5 z?UYG=VWFy;X62ZXp3*abbVlYcyg3y_$VZQr=|EHNqnL_YfEk<+- z*61%KY1PIw>YCuAw}_CIe2=TUyRT_Sn-exF9W+?CH|M_K zDMpT%4!yfv`({6qMT72_BmJEzQIBGvl_M~sq3ToAk8gf{=>BkWYGv?;LcS@^O;U#( z9A;$4R`>Pw8BG?uynH?&|5+s`YM7>pJBseArI6~0rOz)dkF7}l6+ZJp{p3*P$G4I! zFSG_82}2I%^)kqlLTOnt0nT!>7ycN2)T%^0U@W3bE^ErQpSj~lx>}FhNM*{YBFzwO zW0qaJREDAIsOd;JIuxoCE}f}Mo9q!8IWVpzEG&Fio2}C(2G^75O?vzfZQCY7$O>R> zBLLo{y&=X;wj9tx2hR+fss7QY>PYC?2=yPL-3KW+Qngb!X|9oJNY$YeOY-6t9r|F&Nt^(;X}e6!0LI&w4$lCnsRW!`VOG83f3f%GVLj(<`*>rR84)w4LQ;0^ zM1?j>LZy`U9ZCB_`$h~gHHuW06772_741e6?R#mXw3pJZlz!(GbI;82e4pR({Q3PJ z$1{IC&wbBLeLnB^>vb*Xb)M%n={fyH7vu_J{P(OuRZ2Rd1A|90A(j(%8ad6xzFQGB zvai5ePTYA%J9Pig&QgiGo9z?Csx{v)7gy|YMuL9?S{Mz8wZy?h*6oo97PTu<9N?A# z5iS-)B%PjnzBQo3$=?@Mg;q1FSHcB}rSa+6Fbv|3zuP@}Jr*o*#y=`&u8n+|{jAMD zz<&f7(ip;OlWR^Ei_!a?Mk9RFE1q6*s?*P<SZzR%E~SKWSEw9flos@g&gH3>KlcuW-e z^Lh!FuXSivI{izlVOOD*-c##8t!Jz>?PylIRmNUUZ1-ixDXZ)0IbNC9!=ueg$-?pPd6SNhENkoJ7QSXXjS zsvPzu>fdM@ne`6*$^q^_Zqz_sexQ_5-Oli}d63`&A_CIa)tpomBJy%{_ymP?S z;f??{qt3?4vMwx$2O1#Uw;@_p5Brmci&$ys;W2?CGhXkB+h=>PvlFff zn`6|I^rok}AADd_t|BzR4Rnv9(j41AK7o-Vj4rzRJx!5;R>$b3nW}=C^d?03iAB?y zN(aOJ5BWj8vIYCZ7_aV18Sm>;x1~S^3v>v{jzWD|_&o0InCj(uvq5Aho^~?9~sk z9l1M9WSHCkJUc6@F2Hid$iepP7yT~gAO8l#+$%4>*Ob=pIDm}`JSGoSPZziGF)8^39{P9|4}@e^y7>jm|apuaGQy^;yg&%!1O zZ8uK7qhMBshKBNW@m!k{%qVbklMP6!ggjC#;^!np3unwsy2m(N;uDdUrWUbXokNOG29&dcdxfq#D3MmI zSi$Ex4OnIAhxWP>kRe}n9S|SARECSm68Ew0-X*=T35dQth!PF8cUjGCzyI1UacvRd|aM(W(Q2)}~&3U&5Kfqj0}^~oYeXYF%%WYFmlnyrk& z>onD)_V!sNGa0FB?B+|%-V?xbs{iiLAam4y3D!ju2CvU6yEkf^LC6NaxOC)o2h7%1Srrn$OO{n$^IFg z4O`X5 z$y29@MH+!Au6t-3Z;!AR zJBlyEj0|%d4nMsGl@mgJ=$$*Ol;6Uk0Zimj+%qwY`_PK5X@sz+KypRO zCP*}1wqMQww_h1<7MZ1scJ=lqz6}rKYeI!Z6Gy3#a){aD08eUwSIOCIoN%KLa~1B& zmM-+MOa-b1vyHdw>W`w&Wjeg5954z=NYk*N!9rA|fwe1YH|yjc!EKKoi$GEK==RN< zO7Y_ZzgL%+mseOqR90Yer@#*5Fj2!`UV=fv87EOI+I=3N`!Y~4r0@2fN`WUxAJR=d zx;H{?#3X`8uAwJ5g9e3wxZdlh(Mc1F+haMW<@hv?c@Da1k6d_@?K^q$%F2N|4`d`P z8invHS}(p*3cm7#Q}6YV+OhUekBiEZ!bE z^q12VAFN9@IE+pawKdXVSL)g%=+#duU30+a*W&j*8xSAQmz9X%`j+W~h(#lDE7RiE z#cy&r!)vvSLp&OzTDDvTWZsI)i+|JT%G<5m=NY#n6&@SzjLQDg}Ujtox6IAQDCUQOIxH` z6>4k7(wX$c<4SSV%)$ zd*vdMl$Af%<&N{8Ciixv3XcOpoJ!8UpRT==Iq@2iZIK zVI(wP6&_f!e0e>@hY73-ED?A}BNHO$*J)Rc|A243D;3h3)06BN(u=xHr#?P#E)yR) z@Jrs*u^8mCHafE7zMfqmZBr2_7u#{|jfZ+mT7#nodf^?|>>_Ydlu z+10?~FEQR#VQLuJ^T*#$Q^i)vPENf|+XUDm1`mm7{0RJvB+!i;s1N~CQZ`ZH;XN4M z?HHp87~q5}-aGfQ*0;RX+|$(8C^$(*Ro@gv?oq4l9>0pX4YGLfAlVSVi;WdwP4<0mDD)Mj&WPL-j9R{kj=p;Ryh4Rb!U~kOsFjXpb_cAs$~a z|A<-}$0GyaPAIiJXipfP;&?_DqxP5T-(Be-Aqg$P;Bt-+*zG?f7Q+%I|g`O zm?7B~+{1g@oXKk}1Aw?1*DDEtodkR`BEMk#Xf`?6!dkxb4=jaZ2Di8dGUpJ0Ijg5_ zY;0K8tcjCwnb4Toj(ksfJn>-JwI32|c#8Cu57n!Hl_{-neii9RXlnePVdB3Y>S?C_ zPepNlu6+Y&Y`6@?#{7Q(3=$o3AEPD2Q?cygrvIq;(Eo+t{j!Lb&2SxdaY*1Xmb!BZ zL!&i~U1B3FotQ$U^*cKZj|;PgoG~)WGXH=`0pO=faZ~U6_hBd^Vt|q?D=&?`Bsr3sOhQgPfVnFedj z4yjGn^&p;hJ+ek<-NSvL{vXT(7FG8LQKARM9P%%MW`3NMMcoDep$e6o558&mK=qhX=Q_A9DdUE=&LWi5?IFLOww;r;fCe z?&OLH(o%3{@FR6Wz{`YZCg1(GT-5G5`bMpqWGtBbKZ_8-LLxvm#0m^t*1{oHBGe>O zOW09_G3uJ>El2O1P#4rU0dodg7m;NtD-Tx(oTG;h0K;yeL6Ecuuui}b4+>*7_+ivw z?^ITLWp+vH2j>VmqXR3A*o(FT`?a(9HM%Te0Wnp&5;LPglkhjoUzVj8eEa+_nPGA_ z8igioK8w6Ad-iwf%@Yfb3OIw#l`8`tiDfR#5W9T*b#=8e-2s{+Nu7O#w~k@=iQUc> ztn-2FI-B9yu`ZI_P+z^L)wM7gN9K*Kisd(6g;!`$sE~2RGi&h=s1;%%J!ak`fGWIk{m`5ma{i5_@U&LyC7+++BKG;aiDLOmRVm(!{Y0bPOF zYc)(y@eII&?tIAwm_-e9hNXo9$MEQ%wAcq0D8+R_D*_t`t43AhE&&wRHm`s80zr;O zYDYf+J|jS-3Q0?|qXG3P&CYg=30t)`x9@J?rQsj}Mlm@U9Uvx_MsCOl>S2t)A+2X* ziFH8J&}JUZ`h#Qdc^&K~x40;p?=OytsxB<^?P#)+Odh;@}u z@sy+A+(?+bE>P>iW#2z~*V`Ln7Wk>ZamyFk@{;PdU*Cv=hw-DqV?W=3sDU8YDMy!R zP}kXNhgDT{^@XpEaX-0m{U1FO&poh1Su|U;x0Z?8*Tif@ixp?*H@oJJ3NzXlXQcFT zO!C&)UnRyIaV<%{Da~pc9ud)tcUO-g2EXS=(iDMzRv)Q>@mD;eFF5LVr%8$~k7tS` z^F(wD+Gui8O7?aIpX_nS&&E)K&6iM2Yt-J|0Ta9z+%QGD9Q_$`XcXzNh04=14*K1;&gk9aYBQn?fM87PGK7n{aH!IEmio$$^+L#gJ-L5r6oHW$YU7 z{v#Zn_K1fPD-k7QBF=MT&6CrwSI~#0F@LGFHJn{);7%Zfva!WFpNYPL7mH5@3>A*! zh}Hq2BPCg&eTLkTBNcFXI?;m)M4ceB70OPBK(UTm{Bcyp>xc8EmG1iI{y{EN6m)cU z?g5dP_)C^vZSyT*M@`6cyt~6BH3g2ew7?PN)&EFqy0pONHUJh)&hwu_N(=M|{K73? zD$NTl1>E0RApp2UK0q-8oUDqfYv*xOz$W=Bmunvz9m`@I!E=cQ&PZl9LgOUL(?SnI zGy~FkLeq^|ohW7z=jUb}aN4XeNAcgJi?y1f7>l7qH5|P+_^z`vg6?15>_lLU73L(< z(B|5rGNyvnW1}8G^Q$aIQSrqDOB?_A!w+Qbfe;~++{MckeC^s#AoeTZMyr9e96raA zOYe?EtC%^&!O1`toI0ZCLMh9_$w{O+%KJ1sGylSdW28NY^9c;uz$$k1(U^_^k92>j4{OG z5foH{TnRYYgQHnJ7^Yxsr+`4~uRA#f{Tn$Tc^oJ~bc!)552nE+U0nQC)dVe7C_zY_ zhAap?DUv9uAlXqw>m7H?XWG?}cK#$lGq6y$P|tMn;>Aqpj%!gGV3d6nH|Dst^&=2@ zs0Bn*YmD#-j}d*o)}gCRYqlIaCbEi$@o(`4z}u^~CP+Bi)noM{^_)sg8Fuc(NuA0x zBt#$ykEI_7z6w~dF?&Ju0k5Y9o#lsnL(pE=&_z&sr|S31#zV&7?GU{$W*g>ZNb)za zD>rOGA;Pi_3dvmED~^Bu`6rnxf7P~u!4rlL%q*IYBQ=d=yre}YPRI#r-Bd6ls}mi4 zNq9J?^<=kpvLP|^@5eg&%kariWH2?|!$T)>}|Qi^)KltWwtXhaog z#PV*$%mI#vT0-?5DOCx!q)}WDhq5NA{^aj$-;XCG#Ln-AE`TDdNGbU)Y7bPX-9YbY zhQgfU08^F&D47Z5SV*gGNqvM`-F(v7ZF;N{7sOIM9w0;o%xgIb zb{-sWjzBj@)F)^r`vw(d4?;jH>@s1F1Q*j_Ls$cR2zfsqso~8*5O#)rxJB!t_;Z~_ zB!|X*)E+=#O!8C|n5q3PdYLK>pRm9f3K+>-u)->RPm*;wCBNvJTmp6z`6nPJr}5_U zf)v*eEpR2;Hu`CpZr^!&%ofG zf8e+5v6mI5&Sz&d4ZE4$a>D-AwwKjJD@jpmf@1q2nk!9Ql4_8~&DokT>LoF70nf9n z;~2o7hs}!oJs}y8UFty>iq})eyGQEMA?CN#m37#6m{$Wk8#laat;c7sw>h@*A_5#E zr7WcLo3QY z{GkG^!e+Y37_6AVoE}mzX#+o8swwC#U|+&!=TEgk+!8{;vR{HEDZ4=r%amE>@?(Ga#XR{HYbnELP6uh+tb zfK>PJJL1BRCj!<^BkzLBNP;Zj-ncp{;XX9-WU*8cA{7}Li{d>NsETP-`0v$q83VYE zjhM>-@P%E+222~ktdT;rt%d#bhp}vmeVMQ_5Oo%)W*dU@1Kq*#6B>Qym|wPr+b#Sg%5;pOI*LC|1?!4%>*2F7vdYk2ue z?8LGnqoVpj!X?%%F_CcQU_lTKW;t&3Js|%eSV=@l&LwsTGv2UfU@%OPIk;bC@ZJW- zVa2Yep93S;MF^h#j)8|`p0Ba)AJmOkQ^ub!F3s5^sP{VN%FqH8b^;npLuzg1{qm~2 zJt8o=K8(fPNd<`p1l;2g4Mj#XG=y#F-l)Pin8?i&*y;73=^wYMs!-egc71DXkN7%Q~e+RnbzD_U^W_(Xt7{Czvtfcr)7099)Qn*hqQ`~#Z9N$7I_{ypz@U`%LQ`Ro`GyTzE9^Wk@Mba4OrH}2n)YVM!^Jo|^9 z_3OWX$MA2_9s`5*KO~`F|IGh>oWGyp|300+pT+;^>^y5~`Ho=%ZNrnE;@7XwN^QDQ zNJH;|0rOqb-!nu<|AT}4um2d$6<@ntGj1mjH^)?>4wLmI5dO&j*f&E z!|nKjzf7k8`k((t=l0_(3^g1aes-4tRslw8aUzr+pQZn9zvF9 z28uYkxW~@&ptp^qy@^AAUf?Z{FXx_B01sSL;bf+S77w0X^PaREN$?CL(!tewZl8<- z|H*|6ow_nzVHop^F*kwz42`PEH7Cs-8K8fqB6k6LJPsPkVg`RQR| z)}ZLsI;`}rCHqOV(Y#_}P3>oiS!!0Va7<#{4`gBW0Xvi|Xu|kFUsNJCsk8i%Bi9HC zpz;`Np%@P~^zi!I=^Evybb--B+Ws zzGo;3MN^MPrl_5>_rKQ$XY5dcO+%W~=o!Mn+NFZty*n}Af@78qdTSeT68cb<`%7H7 zy1(puhRMbZn<(@UYNsoI+v!)>+#c()z{N&b!~?HE(B3RE$yb)x z0)7}l^u^&g(-ai&QA5nd zA5W$TPsX$4?o^K~aH2X$iBH$x0pm9?X*1_{``$3Kv&RE-j{{^z{6i+OC7oSeWWY&< zA-xafIb5qT{Fi<(fm2PcgACJ8rvuZ?m?X?zh`L!DBK4#4Tj0Aw_5&JlQLL%i1=1w( zuAelY^O85ivX(>C)}%?mD3JPH2$_!i^QdmpZT!>j&r6Hww%fKnUnFzeGym{)wg~+T zv$dgjnp$vOST6F8RQjX03a46)J6T)m>qGud4AjzCD2qHy$FZ$P4a}b>&TfEQ>Bh~I z#dbmeL`=iY9J~zA(n@?H?}G&l+33)i-TagW;6$W7Mv^o+nSS)D8Rnm1fFSNQ?%%&( z3lo*z+fkQpj50i%B{c_q1AO4)crY+hBH;kpC2ds*ssJQ$BD3yh7(=mv<=I-qJ?VF` zuC|?(sWjn;JoaGFdZ2DT?5+mW6Mlz6pm>b~t%Td+6}<;&ykK=)tk}$_JIydxw0vsG z2pBu2cqWndU^vmQjw@W;h3O3F{M+NH9pZ;hzqR$s(A9JBc%q*Ks3el8`6__7(w%3i z-2;fn4N_3eB%L-;v-yN6^4#Sey*X8x3IwnoUR8=S@0RSx!}NlUh8SUn9v8xK3htu? zPnO9;xSW9a-1LwC3nV=_$kt{6Go9P6thB|%Di*^{1?@2LE>?A17?p*IxG)gexuo^SsDh zoJ#UVlupDw-z`-s1t^k{&-n&T>U*!O)Z0D=%w1j0M<&~s5@FF!^{$QTAl{e3k>tcx z1Sl8{VZ+jM>q8mBxYH^C0pvfRH^j4kdhpaj20yDMD+PquKf{(+4D+Yt3PE5GYj&&~44m^j^8$L(&vb|quLnmyBq`dp1JRj5Lp{i~gQsKT zvnkXA1CKyck@^f|WZOuRVN&*lEVxhGXQcTU7^G$7QEt*)vrl1ep?=pIBsPA z8d$}ufb>xMzH~IeNso6xkly{VPQfQnM}mPEEC)57XPH@6=jF?nnH^`rOj`N@Xta}y zOH+36#yrk9T7RsQ!D-&ke%%qyRQZ-k>gVX|#6RA}nXzK(Cu>P`gJSG^&b_D*=qovA z1BxD>EjDIO-GZGL5gZYNsMX&A5J`PuVZrz4V<{`jy3-AMrx;bNSFc`8oV$=DlHQbp3CSe&887SXZUMCV z#5jV4RSk?*kMnS?qAZIuLk0;^NVC-^}(WP2z{bKh-0nK=)-GTgr}|f7}Fe-Ffw3ZJ$8)8k0oyn3?7W@ zz3u56KHA7}A`GHqOveNNkFsN!!}a1G!#>^D4-FO2Cz{2O!$$6>cFLrzdmcEoKAK$V zk5SI*^yxAf`Qa`V*!}CK$*K_{6IL3)4TIoj9S+(EeZfW)hw}4Zuw4V=4%GdpNiVQ3 z#DLvxNTmE1z+`GkJKyHKa@9Fo#}ngvx}S~_uYzPs7wFb%UZlo&eTyc>R0DxiZ!@Q_<0RvAk=8jaTWB15acra-7q;)xMT(|C7Vj2Q2 zpZ&2%>09*6{R^CHcRRIa7X|RE_0gGzD&qFF0c+$rD5IfyYwv+zSA8wRu?Y(7xB~)!}`w z-x+H?JJj`i^zOoacYH#)a1A-B?#3t+uTm8-buEkrNPdTCL*OH3nW<0?L6cbjNV^r) z{y0hSQBS0y_KYvH2;Sv+%L_DRrah%v0`tw05}Kp9K{Q7@4oFGafjb4mD{mN=Bm+AR zArO_`Kse2a9wdlE?+nBl6DHxf!gacbkjF+~7kdn6EE~;=LEjQa#wu)A zAtuJ8CY9%PaGrb8BPTDPcBgRlp3tXL(c$=|CpwNuW>SetR%JvF#V@@{-eG8_VOXL> z1qSjlIn+YBc<<#V_@zO%NmiEl;=e8E-op9a=HCv8;~BBkf?;f5elqwc41U=?@r5#* zF?%IPXCigS`5ZoYkZZ$+19Uh!F3g-I7EmL+5_*S0u~Oc7rlbO6*#z%hd%M!Z&;9bx zSIp4;86~V8u})^UZ{EFI1G6UrhX-LGOL!Y0ecXkojf{u_0x$bw#up64B2WTa6fKPZe8WMMkU+)(>Y#Qp%l(#*yDtph+^?6sZHCI?Lva2K z=Vwo4Rdmof2z<&XehJP%%hH3wK@r6X(=6HZ!O^o;u*)gzzkJvJrYA|IVr)yq?qz~WgiAi?YP)nWntH%NLI(IkDUy8Z2LYy*G z;nI8|PTH{xr*90q@%kce>+KkWpod%`_^sKee&SjU*j9v`3PW^*7|linCxYGZ!S!cm zX2zhoC~EqAA&~h2FmY_yOLoq2YUNT8*fD3e$t>gAKcl4k=N2gF=B&oI+NS?KP;^Pm&0h3y=&-ko#fcIKhkvFOKg17>~!w>$WlPOy?Y}kOFgFj(b$bv zR-xW7beKXQ@XUr+;(O2saUqc=?kOpk?B*M~i5xjv<*Qx$j4Da2Jrc25NI&DuMpC``z^dO@^1(<&x*->vv{Re)=5^?Wxw$Vw; z(aD+6J9+ik-mBfR`qj*AGc+~)BHE)$GA+L{Jad|Q^-EVCXM%p79-_P&^)X-X0Ol$l z3-5xf4fY9GU1$bENJ0_y;s*w07|-DbBV?AZfyY;}*?m}{=5NzM=zzaa+Eed; zKG1!=6<8LL?{WbQ9&Zi_({U}r3iiSes2(Iw3&(QuS^nnES)7>hH6Sm_v4R;di)i9* zGk+Dyl<{DOhoLrSB+nhh1ZipBXgH+B6qx`1#ApIAZ3&p?k=d7?#gs-W3v{1lg)ol% zO#URsTQ_ae$QeYPE0S6|DyvkIl!QNDo44xUvCA19cz%UIj{^^V%5C4wJx~5vi9*l} zifq~{;39eWZC0s`?EXEWsDxnDE0PAP8)J#?qO+=BKkEh?dwf#^X7Rjq^d&CAfL39!_`$O8-91CTRre2VAB{Wk z%*TKN)ITtG+MZu&kKuVW=FCgPS(CWDa~)8ug;z`oKrX5T0g7ji8adY*7+7e{!z3)K zG94QaznT90%eOmXZwzHcNDj!MfrW_jYFm#53#E~&4hbNt0B<;pBw`k$AD(S9Yj_j_ zB<$!1;y#1CAd>VLSe8_icoNIRDnz!TC`w*Vl)V0&afp5H&5c%I-x~*#U(S5Y&xGzL zCJBRHkidN*RQ8mxf+y(G56CzyTFn+^s(G9kJjo%6McQNJd-3phnJD}ohH}Tac3gwV z9E73O(~Q$4GWe;RFCsWE!`~E6MHvE7l`1ZjWCSi~8N62mkUmOyui#OtgE1)M>FXchb zzLB{wVu9yiZnh^6-RIG8JSIE|}2pu1Sff{_~} zDxVJT|M$1F!{woc3l;Sk{T;xy!ViXFMHSr5;?cPVPGgu4gEr<`v}-2)%~(WArXFcz z3WI_lrZAw4qxuyZBX#K&Z%jW0nfVB(g1?&d%Snuv+3YVtonjwyp@uhO5QlMtwW=hK zH(Cc{WCM@f(DQq#+by&ja;N_O%%>kyQK)KVPw8`iVwx`bUFA+-e@HIG~!#1G)SXaWic?GXldk4L0`a7 zr?|dBuhz|gn8+%fOG2V0Q4n>GDp6p{LFGof%zKWH@H=N>Yo_ni*8{bKtHMClo$nYnn}HTjtORhv60qP;o}dLF%uL$O za#g^QQO5H8MYL;6#!>16KUakP)@gb41GHob=k4w^8C9t3yHQiNb5^?YpU~eQq=zPz zap0gAlGor9kPNWcKx=G>xWOQ`#psg%Jf^Q|-O&&rz-M0L9ox4~_2CAt*RH8BKO?m! zWU#bxE)>jEE>Y3O&X&Bs8Y|EPoC2IymJC8zrAdp1!6KSC)x5&GAZqPmg&s-J( zB;6$uO*?TCujtu;qKmB9iWx#*SP8H$5(bEDFX^+3Jos48pnecd& z37unRKK)bxOiLhBSOK<^j0d^5Z7UzUgWr%lGa}dGI$A1HFpnZ05P!Ie$g!wy&A>?T zIFAw@oC7%kfaIRn7QMf>O1~3fRg<(*y!ne5p1P;$Kf_KeRkXQq>mph(5&Yo$(RMq8 zREo61kq{}71k{OJ=Jl?emqF^~-Ld01kaJN;DB6-9Y>EMJNuCu;n=Y*Mpf^VZ&3vWh z1(oQ1=xblmQ~uVM@LcjOIedG`a0wVl@~CjAR7B@SOL#s#>y{-MIEjq{4c1c*gW07) zR4EpC3FZGdyGZk?b;vx#9afzG)fNmU2{cV&^?^25102?SrNbcG&zm9?$gDvJ0oN^B z%7;YkkNrT7;&8LZO6Cj1)@aHOphl^PSG_Z=7!0xv8#buGm;kX53udHgli91~z8xS6 z&}qelD18qQq<7+Q@MZpu9zHr^1d!qi0zIMSq(LHP0^sEnDNE@F0|N`0*VD`kIxF&+ zf_^7W>vBD)qQDZ%yU-w$1AOl6gf?tER!w8G068;|ECd4sM3{b5cTf7I*#8xLH)Cm@ z9yxEq%!+6#sK$wd3Idk7`Y*v`^TnJo(a?np z7aGH0ysskUw-93Pq5JS5^@q}!A{;iMu&+%F{qeOOdKs?O2#Ew)08&dtq|@YoPV$;? znOg%q&u?MUvlEW^?;g@h3hdcoEnK3<3RgFpz#J1FzD&Hb_8ta?M6mYRkWW>hVyFbL z&L??La3%g6v^VoF>+8hnJ#3!g5HR2E`cL}P6c*&c9x&y&Cq!4EU}!E-6>Ha3`!@e8 zio;O?XfTb@K^iVTw6t`5rBTtGccb;!BoFlxKlO-<>WP--B6X$;qtGQ;(OT@p#4Q{_$q9UqOmB#LuAqIGs%dFL0_Ml0 zuBa`c6)B{kzIp3bth0hY;(1aU;QZ3EHuR;UZn`M7AFji6l#I{OBE$kO#wQ~S8k(da zF16L95$Fcp0{QbHxu{|yh)y&dMumrP*A%o1{prL6qbvmarUU4bSa-D6h1>vfukcln zrc{7)sAilqj7pN1T;O^2zwlDt^$z}P;LX6mRs6rKlm9%D|6Aw(I%JPaNK;#0Rhf7z zv`iUd;VaZx^ArqQ&{oxuWPelwyl983ml;o?P-1;M1eDy`K_j9JSPfHoCH`;A+T(Zk zE5tMqIeS&^1h6YRha>dW6*pwJ{6(`GAa7r=b9?X?WEB+Dz!XS%{FwY2pFP`0u6-CK zs9_WabAjfy0_I~V=V-=Va~`vsAW>?8k*hiBh{Ebo4W(O3N(vdw5%7jf4$${H=IOmP zcHc3uG{HuJ%&1W79Q74~oe2dN@{A1px=^9}8!Jn(jXY}*>9>6x7BqNijM8~o(qjx9 zskU4sDfvxu+GeLH2^_T#1EM;rMbOA_3k#>c5=7TddU`UUBA^YZvKsF6lF%zT7(N*{ zT#QGGHH8E&e>5^8!UWrYXrB!r)No9zSodr}UL$cI$tU4=q>Pkczk3-&^fgprk!Ty) zrg3xi2d2p45H3k2?K$GOi?p`}h>}6iwmu^rGf30PkP`%MUf^nA#VTQ9X9>>{WG7}` zOEQGOd>1>>|JcNhl^^&9x$}0VrSpuH2$pXQJLZ$9LKV1Qd`48h|1%R$D3pFZ_|NrZ z!oY^%cNB7IAKo0%HpAr>>7nbglezr+DUu{$0BqXhf}PLo_jU>ktD;G$LD56A)U20V zwruGGAX$T|D+UuAZN#A(P>5qtF7IakRZ;2gN`t@F1FYG2K$Euk(7d$h)vN7e;NH+e z4F$2mU4S(a5>;AcSgI#4iUtVw&K^G)eS{3c=)K#oY-4%hYQ*vMEk3yUr%W;= zpbj^=TN`9z5~hG>{^#HZaT_48B!eLbjT~exj1Fv#B^lgj$qWklQj58bwrs#iLV@== z?@=ft2vhd{4R3682xR3c6-{^#%sSr3m&fVf`} zJcQY1HC4Wd^l?7wxHi-ZprvAFWsSrj1Oo<`IA{{w3;Z*c%tB82U?xM7BWi{>Y~1Lz zmXqO`B;mARe1swIN?m{g419rbs0x~d^#R+EGt#^Fz{JRs8wt@UIdT)FNPv#VVcam7 zJ*tpZhuY=|SmHLcf!TLnYYT%$*byb0anSqWO8AyJo_QjFud?^OC+3hy-i%JptX4Kt z(K?%CobDIwO*b+#21X>VMu4)fE)JUX-0klE&e&hH(7pP;# zQD!x+79JqdJg#h64Jp~Fn2FCI>6lWD!yEFg!<9RVolvT0VV7>`ch*Y6GAuFijFXs`6CiTzrr>R zv3c;R(s7U~G`?1d7=Y2by*MZbMRF|3=LJWu9}m@n}dpPW<%KPl_lX#-WkvL&t;P@}O-P^^hBWhJCpU4UNxL!jqrc`m67;Sp(<& zFM@0QM{uo^^m3NEb!9caq1AuFsbY40rzZtZMQZ?t2}AY0W*YO}aWI6TX^PgcnT8qx zAOZQe1^u!i=mfqY37TR)K$8o=uTi2L!Hd4T#u$K+S~42IQ&${V1r|s&JtaWf0u$K5 z(?qcybdpL8s`xpwh!qb9IFvq_LXiTxnLXeJr1a>6jZypFY>6_EBGOKII{dAJX z&vnZV1C&uab0#um8>dTC>U-! z17pGwa-3{d;D1q$hT$~Q6V0b^aA-Rm041)Qc1f78k^+oovOtk=i;qLw2lNT+AS}SM zFK)^jnA!OXLO1?tWY#v1BSnb-_NY;S${hnX6?ABrld&LdVW$0LNY)9dhSd5M*y?*M ztDAg63kHAp9ecUP3e%?0hGETW#E4V0wRGM}I#?nOUVYW|VL${C+3yy69-Tyu49z4r z9vvPpmDvbvRGbHTX~W@+nuWEyt@ojEiJZ(vz>5a!XfxXdyfIpI2GABYdNJ(qNNEO! z7O}lOTEAuI&%c=96CRev*S9TXXgf?jxs-5$q$1c&3yv`B9Sjlf#|aO&~_ji z;jIaset@(dhkQZey^uMS@Ai3DCwnTTh?#;9wMn<=7bLGXA5{t!eoltn`VZ&*rmTO% zHsDp>BSDzDLZ;PKScTtS-zz3d&k)SKN7m-^wO)A(94)Xxj$rtugdD@JSKW+|PCm2TS;9t-6h~TTua4)FU)!bx+~C@=fCgKSXTFxpQ+*Ju)MOE@Q0fLm9&JF%!3nQ?2mo<;y+j80%r2)rp>a{2rMRfOAI`4ra&k zdcR_W2;NF8hT!%r1>ijXx#7vtKoNO(oZQ}oNoXG+&pOJ^kjL101EeNf24`&4Z5g?j z8^0-UIp#YtWO-eoj@A}~hvGq(V3Z3a<9}p-OwOLpl+fT& z;H^D)LZF`XGm39Oi|s+5sTLRVxO%*^CQv<6%z`E0RR|-PJ^14#OiG$56JN}8e@o&g zhXSNHfb6epo?uboS5bhU6Rk|cKl|2~Ea`^WC=NAqlMorIk;fpDTiJ{|)+X$yI+Nt- zSXcR|g17|W=AMUJbj$hAALeIk{GQxJ$T8&kOj{o+!d_6%Ob!YTL#>p8lk0anK>9~O zC{%1&F!#(p01g4lZB$Ry&l2T^Bv*UF!X~ zl^OY--x6Rskux(=OlYmtP_jDUkpMzfVV1H|CyrIVIyk3#_i_MqZ=9@N9#)Lo7x#km;HAkk5})RzDO)W+*B>a#4NV z{*>rl<_n$z9nn7WmknwnFkl&={g7X8&QY(NMjGCIV3P%z)3$%!D=yyLE>T=d=D<|r6LYu4;MZS&9Y>BJryu^*M=x0kYlf>q9CC4^ zco(`I@0~E|>B;+UH}EX<&*0(a|($tls3blCMU{7zaY%$YH$#W-tLfCTT!6XlvMACY7tP>pLr zO!xx!3thk@(A&&}FQX#?XrGCi4l0Kw`ppmXpUVI0% zW_`$mAmcuu5S7o_iWTiiRPRBtn{2l9j4YJVK{595%OtTW$O}hqg^g3lyei5q;rMYM zCS#9!g8(9r_f+QB=qfnx@XWyEfw-oqkGJAZwdA;{lc3&yu-T-?nRVsLD0B_Hh%l%- z{97LUmPQ6tebdUZD%^qfhzLG06IF8CxD5`~&+4BivtcmKEPq-OD1e4py|R6JD(*m9>g%T^nO_|{&+CLJ}ajPtlAZkuvGxq5rl{Q4ZBs}bjudg zz5_5D*n>f!CXPxyhS;?6=#%0@6q-af0&}Ja6ES#IQ0&Hp^&!IU>bf@wGc<0Uyz`DE z=pa`P7b26YU}8b5L^@0ED&wzYx=y9wcaX}p)Y=k21o^3fLWB2Pm)Nh(n>Hkcs|vlP zJR~pfk7Imo)IFGO^bUg>6*V50s@fl7s+hM=q81Ubw)H9g5 zswSV3&c9O!v}isvUl%yGsvVO!Wz4iJ^a@$vrf2T>g$36BVA3mw9Jt~~hb!-bKD`KP zVw4M;QDm6l*bzk(7Kt7BfB28LdMEdQ9Y|y%9DlpYGQL1`o!m3CSX}&OR!k=5ctl56 z*BK2PjCN@Q5PRcRiil5F?Efm!^HoBjOAi7w_FH48FSlV5b!(|QWe?mlue}o^BRj5F zKPE;9vHPaOEbuC6?G6bzR`0m8<{buwDue~V3E!$`haK#0=->f(QJ84NkEljQIXaHY z-*~L261V+!uK`s{xG+TLZpn61#t5Mn^#1rM6?vF4g@D9y_kbf|LSV=Fi#b?&b>qUx zW9Ah_tET{>7t~`ULpcCFeoNwPcsNwz+~C=bxdrdNkV|$62n^VBVtUTO!J%?lsaCpq z3~q0u-5^3_4H52t-j*?_0zhEB+jWHwXX+-B5z@V}5JG zKqmr$sgb2fBi&rn^(pyqQ&t5z;%E}_y^-d^09mq4^uw~Pr8Dvk&Yj7yPz@x zb$J!`upMoSL@)AY?TbJ`gF~+FPjxcR(Z^$C;W_QBizh`5JMmq=xXC*2$h1LAHNQ^t zq?ya)-Nwn2SO!GXPL%0FxvVG=fwXL0{RmZh8uz9LyR7su(-wGBUd;+4v>H@2FeSn+ z(VtA~Vw4YK%|~)+f4WKa%b#D6yJG73S?8S5GBJ?^8dfS_ZA4@73f5&^5)tXRW-sPA zeg-^>3T`vo$2rIo;B(1U{ZlI<1PUCd#S!l;fAF@#usm2HmJaZZfbCz!YVN0>W@V8jrbi>{jawai zKv&qoj-g=vDaU-;@mh@+vQ!vxjW*4rn0U16`K{oEHxjn|h*- z?|y%by~t5#*Zs%HLf8kr_w|iafZ||W5Q=oTdVyGFWu?cm)7+a+GQ2D;m6!HpPByuY zJqn;aR;oOSdK~=N6{Vxcx;tZ=I>^DoYkhVU9dUa4cqNfOR5>Ray{!IB7maYh0(=SD zA_n&!!)UleMdNx7KPV^X20AU3-A^%TqT(C-kP8%-FIiFznS@1aUihbO3-IF8j4L<`3UtN2!m1yY(k!n1qf#MqW*akJ8pYGj? z(OD()b8_!Oou$L^9Gj=>aAa&@Qcc_Eajfg0vO1cy1`ZFUL%NGm=ayKzqG1ve7M?z2 z$1=fG4py%!S+Iz)2OzPG(9C4~fh&xfGaD1ri2ug8Zlb^b7{R`^W=}IROh7o}L8lP{ z@qkX&q`xn|Qv{GBiAtZh88(OM#C~@+abwFLtL;L#ImJn_zmO; zBV*4?Lq?{SwX_`*KQVBD@Mc-R3iO9eX{bYcfDWl8o%BJQxW;>ScGhCB1X2p&>TCOY zUtc?+{?zSrddT-UEPP@HFaOx|TjnuHVoX4Li&XT8uuA|XARM1SQ#kes>YAbe{=g7> z*geP`$Jhc5SO4jHYa1J7q!#({%jE*vpQffvfHtbx@u2K`fUs~ncAIv3$#&M-yE<;1 z%OFongE~NNCXnX6-_%GC;Lp%s2${fI zxafTs7bswpyd&Gg63iJ=lI(13szK#FI&LJ^5t)vd&z8AQ_Sly{pW%n8rW#i==Y7H7 zSIu@DJ~+p#8tVsCHXN>0xVf#i+qzK5!NSW{)^TUs-f%}WN1=K8gl6w^-uKsuSh#2r z7XRpZ?)AQYUHJMFmp%ZcJ7+EmLqbBWOuox*EEmJn-7=bvRjm7~$J3KTR*XSdBVJiy zArR78d^^yTJZR+KF9S_05rI`ZuhOUlBYA6`hx@*x!`o$tnxO_gq?83vNRyPnpuoUD zdUSTzc7D@IAvp?R9TwG6NQ;$d-ifHi+?wD<0xULFc8pR`TOP-x_4i;0Oy8@yN^rT~ z)Y^@}?qi3YTocGyrTq=fJxF81R#VC2wZTW_9#dW;A4p;}%p zfR)H)CwEykZ@;2@e?5Qm)z;QlOsVhfFe)>T_QC4Vk9M5Meh^riIhFzw2ti-an60jE zh7UlsldyJXJApLJM~-f5`55esr5P4|Uo^vy{8AnL{&L>2h{(%-HXz)Z!egWeXUxm~ z^nIj2V}wYWCF^d?=TBy?QTW8Mn36>A;%`+>Jp5ji^M}#K^4W*W?oLk!4t5S!ji08; zoj#@x^TIgMDhXZ?-e@uw!U~8Hik2TU=BVT79;8Zv<8F4(`3$wXwmX*qIn(pgT3vX^}gjj4KfN$amw~ zxZ_fIR;duFkme6l7ZJNxzTvFr|CzQoedYcQMOIEJTa9tz7w3%aU8lNMl)-{86H-Vu|b0G=%Ynw5#Fa5uYC+ zzD5p)(4KB`l_Rq!k4$7-pniQR6|p;ERP@q%=3|=_uEmx&ql97s^l4GVQN64BKCs&J z=-nN?$hE0c*#;mAlH{;2lA zQ5Upi)H#qZ|Ln%aE*j2rHno%UkV(+`*_mzT^xhbBO7PdHEs`I$^!A09R;;PUnhrtb(tw-Rz^N1*D%U8}|f*pkiRb_HrV zbo?tx(HNQhyo{hSe6nM>D#K}XbdY}u^7WP2yJgEuW*(AP>E6!|&UBefZ2N>{0Q*?` z9wR=%#fJ~b9=o(TU3MUdR2GTLT)cPF&L;LJr{{Ja*x``q8!Z07d@;w?r7aro-#kp) zS)XxXF1OU|$d2n(scP_NR|!417^XyfbL}BSlW_f1kysJ6*<@IfUBvtjFzaW?aJ$24@!cAfH?QSk&^W5X|9hfv*t_4YYhDeNhCKhsx?|% zl9^l6#w5Q6!bRT#p?L)Yq14Y-C{)2{ypwYJHF;t%-lo0(~dBqtp^&S$sC=B20) z=iYQDCd6rT^v_H8XG45K_D1~IZnF;MlTGVj!E_@h>C#zMx!+ z1d1J)`v4qVy%gP`V1KQU*OyQ3H%hLV-P+b;Xx343x4L~*BX&2uN!xZ7VXOc`0Y5SYBn4Avg#NcypmEs3c04;mE zi@e8@0gP5FqOYD&Hp3R#`S~M|7}owpjLg=r zS5^77cXk>&=UTxMahFxAP>u-3h1iC^y#@_GD4+h!EgOB+fSl1bbmr(k;EVx$dFk3a z)t=m01EzbIsHn+{xdTKyXF!*%LbuM|Xk-f2wJ$b6tYRqcg<5n~X{0!5u8jF6M7kb2&W zbsaia9<4VVzve=J?+%a@;8{RQ>$lXNmdG5Lfmvp{7%;*>Nlze0|D#3OO1 zk!aN19*uy_s$2%D-1^)1qD% zx&eNVVL%j?jLMnEQC}SucDWGsXza`Fj}j~BG*tb1$&vm)LqiCj=kMNS80jk_yxu=w zx>C>aPixolK2;!*)#%sJ%=O**6^VK{EkN`$4RR9uCC|@j5J$T=2(WLZ3PwH;bnEA$ zpbQhP1sbG0cF(4(M9J7VI;0Cui*)Kkl5O<#^iWe?4w?UgIqw*OGVNkNEG>QaP>I$? zhrwoA^B9whSxMI98K3{Jy>tKT`R@OCd~M%dIm~6w6&lT9Ipi=?TCAv~m5L6oiqTY* zOq3eA4KXuX#X3-n&QcDQl+-lmucXsQ5wn`~Q8^W*rR)Cu$gbOUyZ(Xehp!*`_>%ctjm%Hio;FQhFZn_ws59A>TmYSkJG zo9evxdCzH}MZ-KvDl53KIChVQk|7jxVXO4d+_w~n7&?)$`A!-h+UP& z8e38qvf^62MjiMnhw(kocKfjspe8u38Bx?9uSuqLuO9Nha)`&1Z{b?q$iBEn=oM@Z4=T!Ef z$;a;OgibpmuHeZGpmPWOxf-IqO@{1%8ATOGvWioi^p=}liL5=so{-T`s$yKo2dEtVS(+h7cNA;UKgD3 z(o~+Inbq6vm$bdsBkZU_Dp*@$HD%nIe!oIVTY>pZE2sP=wM#I$!Azv!`)$x(5W>-x ziv2OZ4^BwcU`GvM+(gbL!0z?cownjGnh4p{Zd2z(2rc1E=sSZRZ-K=X9?xenI$qv(2pLXMUu4!yhQF z=so?_5=Pl%dgTJ5*X5KzA4Yge^D_FF3Iz<;X{r8NAH`PSC1u-0*>Dr{%|@rm$8JMt z)%=pST@qov{_L%ZNoieaWFe^}rNN{2lHvk3tk5&_%#cTTK2nTEXo+adTpb@TbGW8g zK4$}N%$N!6P0RH#Pp)GTU97&8!g-3#B7T$$LA~@rlSvinc-aVB={cu|Mm-&i1%A#5cS?MdM--dDNNDww(c|OWR%URs!}kiv@G|F*59jTU$nC$N zlv<_&4U`N}Pv4-^0I9r${?$;e+Q`wS{mNdp^NQrh7awXD6#{&Utq+}eMmP0->*|Hi zrxJna;<$QtjgoHgDHTgI-L>C;e_!~m7>mb6D8r)ltEHoB@V48b(t9hT0<2G!FPf|~ zP=!jvBqnWN84EY2QS=n$pk$SZChhGHap1yev&}@pni({xLwe{2-U`hv# zvo3tl3KYEJQ}X%K)L)*DU&t#PW!W9N=jcB}tr698HaxQpoJ;1)E1@RF>v+sjvp1dO zC%#hGq#76T$^cxQO z-MtB4;tL?TQn8Ekgc3(|p_~+^z+zUXoLhNRnTXR#-X30`d9R!pdF<|LXx7RM*9?MZ zrk~Dub3K5Z;vF`N+{0nyFP>3EJ^*XksU1^e8RZF zzmyg`1`=|*{1e2JLy5v+mXz^m8rRImqXgR{xGDUf4{C{sdWcPqV4Pw zJJbS2>qv4%U?Xk89*S``@n)f;ALv{xO*G}c7fjzX6KN+aV)DF#U2z8n95PUqN?C5cttyp++E%ZN`$o#s9+rC$A41_`#idM4u_*Q( za8?pFQ(XG#y`yT5t`spLG3r>ZH))3uQDwJ&AufsDPIyk2fCe3z=E|m&K0~7EVSzjf zK0)*)x=I4>%IEcmrmgw{(%gaUNyX0&7s8gF9)N)rb7 zMmS0$iI5I>eR43uQuKsh^0ten^^Fcv_gpq*xk#ioW>mq3yA>aFME^SD9d9Xo(Ar&N z(17%J{P^L#aKpfja>=1BWOfZCtMZkQA!+3K)!%Gpn6C^!5H5fD?5CuO70lY90y>JR z&egE7`|!U|Nhjz_HSlZB{8V`y7B#W(ccUw4!$c4*P^5I}Apl7MKTC#T#^o-F%tb0Z zvA86so_Xjom;muB$v;Fd>v55!(s0DVQQ-N^f;(8ZYeR#1&N{9_{7HDM{as_l)7>ul zXR;orm*%%0k|nCd(Vg|=j502w4rv!%FyG%xVvkh&9zw;nw2!NW)#qV5_F0haR)Etux^e-Vr1pLtekV7NS%Pc~R=sCxrM zntj}T=7$uwb#$x-_m_i0^q57LfECtkxO|LSP&hD4=jPB-o*m0qa>?KTBs8J}V`u6F zq%)cBE0m2aVaLt++ZX&a=@?~WG9_NHT3E}NkkizWtkP@Et!3Moqvs9@C1LM+{St~| zlmf>a0-JZOGLCp*mVPbn4MP*p8us9a5}!D7q&3u!nFzJ_Bf^HkL1)=TGF~h0X{9vR z;yx+@k9A`ji4@YZS#{Q1WE5DUeeWC@BMoY@OR&z@`(ZrQM$U!82pz7p0>;_vZv8z$ zE~XPUq$#E}Y*7L0pqyAAW~hK5XWLnwSXOlkY1N*+du52t!nw8Jr$$xYK31$&5B9pa zn=D7G)ZxkR;Fh`ms!J@b1|od$1a`;I-2cg_E8aV^{gH@-e{4U=*1_VihD(4wBo!Td zC}1}xp126E$>>@N-8{Mts3t4apiJ{G9nVGOLRsJAx1>I1mf&h2T?b8pqlxjeKdUw7g{(s zl6j5&`~oI8=Vp48uXVB}F%y?d#=9J}t%R;npplTF>e1)cHq0fr7mW(FsXYavkNZRj z7tWu{mo8m0&$Fl&<4?}zwpuE6%8JeXGM45CY><9(!6WD&RhBq`A$dYdp$JPR8)Yb_OR94}57m(uopgE3hKd9gs?dez65Z;LzdWQ)K?TU&PTeN*(t+ftmD z5FrIk_r%u*fk5m4Ez=2x4K6km=yF;~;bp9725@1-&SK#N#G(N`+r)Fl2&-5%wrF|w z>sSolnckkJ>v+Ztff+x+R)r{0xykeJdR1)MM z%~N?HQ{AqHKa1`(LUka-9SzR6+oZ6PT4|>O&%;H$-U`@Nm017xO@l?F+{ilIy!6}vE(U>G|Nfbc#c6N4$GbY=_@4D+>+m}Rl5$EJ5u8$w<((OQ* zFXO=y0Ja&NVmjFMB_Zf28MhL=Javcp2Mexr_(;Fj-VD-g8FAzscU?S2I5KHPF!`p5 zqM;lxOpwlK#i{u;xUw}ez?J5Th)#|^IoZgkzT4vJ#iULAyB|kFwMvDqil6|gK-s-p8wk=No$1I9~>-|TaCiWWian@h~r4p$0 zbKPWS8dxshpEU2g?{@DlC35(- zKXViP7SxT*f0UD%yk=@eu9GMT`K2ko3u_Bae_@ zAi=0@S&h%vL(aC`EuFcT%p9XlL(Xm4Jq(z6vaf4X4aFfP=c;7EPo{gf^5TVm6g4>M z0_Iz`yz2?pKX2uHX)1B34G(c?E-DBkfUM>mKzulLrOK3rljDq!ePP!lb`a9T;X!v; z1bv52DcoV8a_z3ye(TMhBjQlf=Lc=Ih_zCn94FoRyG?Y~+}WeXlWHtsXZEcbE8+q^ zqx#O?y?cwQu-0HGCQ#ydhy}IZ(_(qig|lqxW8=F$^^Yer=`6VTM~o2y+MdMq_Ukpu zPzrR9UcTTF&Y2p8r~)=U)mB*tXlbkDf+9Lw`e(e2tCp`SzSO1uraegQ zAG%EBMMS&Dh~q9>oD+sLzc(kqhjl2_nD7nd&+D!nK?pLWNqvgwMHxD+6{LxqFG;K1 zgbVuxa6!&zN2_^U2etQw-88ql=s@?qGaziDf)_Z4-rAIW z!@|R;aFe07o?aqZOISLZuiRRo(~Ux^%^4noh>w4{UU6G3Bv?QW8u3?#W_SSbOM$t- zpl2v3*bLdVd_?~Dz)ME6-a5MfwpQeIVzYeov})598V%^~z~rN5JBf<%6lJMcS_|Pt zysT4BRDJNtzCRH34yjjK%9sA@Pl$`&e|W$5S9SIM>obKt{(AY{f9a#vO)LKOA%3prQ?uRdPmh#?cWYs31s2CDY`bQ4x_W zG))d70+Jtncxpe+f!FYi4}oPkVi98)Hig zp~FXy96rkTr;)9#m5ro;fcgLa#9>QoLjfDhm0rBc2CK7bHVh1h_mThq;us}o&+rQa zgZ#EyI53nyRz!Ouw-Wp5)5YNAV#8Vv#X!MR`Sv4e^R0NH zW2et9{fLP_!&`D~Vt(7gW+b`#)%U_+s6*$?YbO~PzA6|Q#b#M{CE+6ve0p_4(x&h6 zjT<*M&Dz=7Q66mPx{_t4=6C4wX?i^6az~yWg{s0oKR+)aZvFMQT>{#|2^oID&-v7p zS5{VPwygb_ouri?y=~uVquMYTd$rX{f#QZ2I__~_zv|^DY{lc~{qtUqe7qKe#+}nj zx@F#U#tYKdv&ECN3*+raS`Xo?WZ9_apM0-NkNP|`a;>9IKjGlNaN)xGQ@=7CYgFUg zNfvRkubTG3i#0t&;hB%m>&h1bLleD~t%WWQgE>?xHC`nV|5J}s3>GzMPT4c|x5ERm zE?1!@)z3jkuHRmm9_k-Ha?AD5o;`n+cy6YxEH93vt+eObOqcG`Y1TK#!~Myt8Olzc z^41b>`qzD?{5nO_v`D$n7L4rdi6W+rdN~&y9dks@nm@n1&%p38Z?eC3=)r-oPfz!p z$iR6CzH;%LynJ1`?*S2)88eyXDVj-ZMqEv(l;IttUl?**9y1FK`%gKnEIGMN)t#|d zW5qjtMHCzWg&(!saw3{z_`)!uc16Gb{6sX=fQ!v(R?lU(M1h-)=WhU-}D9 z=~EH8|t0ih=tCT)u>h148 zpxQK*sr-@xTLdZ@Hhec#X;CoL6Ta|>)pQ?icgwQDa!_pM?0(h|1uwMUDAkT69wf$IUXq1~}SAuh2py4nZ69WVD zV($wbLB)m1@82&5i<&n?$}>`uwYBi#FT%saH|{w2vbp){-Fx?VrKL6TF)0@>K1HC~ ze*L(OW}<){HXrLO^z15#;4y*Wd!&;Mf|7?h!?Ck7h5jJ`n z=G4bLzqrUcdO79VUrc;gFZNdWk$9r#J6Osq>*+<3b)r*Mhmwm|l#d_3O-W7CDejE# z>2|c~t4ekDLe9V`GWN6?YD~P`lBS<1yPl!#kBu7z*~Z#)(>oe1nvz1LrKJPN$VnP-618YIYEFwmq>0LGefr`m-%eV;`tri`=CTVR;;*pY z%>oA*7zD=$V#0Z3Wjn2sNT$oPjXV8#_w}Hu7te05`y>8Bxa`8hQ1Wz>j)!qW>?Iyb z{PWB`YZ)ePnKmUcd#lDNbEzh8#+&P{|5<0vK9rT6(aN`16f3eHQAg5i8J2#uOF&6% z=kDD`wD{Y{w9`$S4zF9kp0&n{Q%)NzC>#=DF3Rvm?XYIfOS_>)=9+cC{`##y+(RYm zoS&KXVGj?F&CG%)@pg24GwI#kKic%P7>quU zQ&7k-G-6=bt)6=0?m+vux(G$z#>DQ?(WKFi{5Ir_W24&`8Fj@+`}+K;O$1$~-T8TD zMCmyJ8~}h6@^^I@B8@p)O)dVv8{1<^zEBbqFVX~t0af9PM=6ww}ss`T{$;T zu!>n^T-IY?2xv>yz1N*nTwLrt^{x9e9^fO(qtY+K|G^tD$ZzjGLjG)i{^-%8g{grE zV_I|+a~J9mS+Y5hL`>sPd$BA`*2*QSvwoyDCaCFNwR=aWi-_EOjnI$R z%FpsR=G)yQBm(`i-~mY}FNB~Cf& z3J#ZuS@T7b(Q>VO*>>t&x$?X*NsEea48DKBxPbGpgOPC`>IG_4+>O$Q@f50mYo=)o zs)bacqP4AUMwWS7w2aHlH~jd)(nfnd zrc>3rBx>2Ii4T9FW0X#Pas5k|KflI~ojarVo_g5K|3Qk2o7-e|w1WVEEu69mPoMrr zE7$r|YHI2^B_;plv#{0hoR3{^FmM^aKf zDJf~=rcGCHPDRXHh3Dty^o(U5mA=Lg54`z%t)$yRMooxB#OKe~2;ku1IrrefgNca= z9~`T5{(NzW-&pNJXOoV+%!=oSbo;{_ubw@7p8$fj>$iLxZb{Fx9U!}`+_ld_&L2M= z=`xyoCeyS@1y4djGK+ct$Ku0Bk7!6>b|?+(QuYcStIOGY_w8dsxx}tIIXRUh1+3e+ z<6^lF7bRMO*^gIMX?l=OE1d1*#YZ(<{oQ^W6O(?B_$92=`ZGPd`)fik-?;I*q-NLd z-LY@p9HTaMOIGLl`1)pAcFB@ca^?vKeSWf^iGw4|*<1&|m1)tTZdo|3;@_lj_AFq` zJzG+yWL#7XYeFs=85s?_Q1|0O;?6$XOEOlxYI4%zX#NGPuJxR$GKvDpzsrlWLqGy~ zPLt7iFUrefzcBHuUjgKy_;M>YAO&lVx89uiTHauK>yKTBzX5bSeDL5B9<-pakdk9{ z-A_PA+itMoQo2EPLxNhmYZJ#zebo8Z0;hDGrWelaJJ{Jn7o-keiG5n(&riiMh?V!{ zMi5f`lmGB4nC}b5QC0Py9cxK9j9z>W&^6SQ+=TB6#&}heLhz!I9r+G1%sN?Sf!gl#`nfqdUyZaPzH)Ef`h;(pb2iI*pq{Hb zNaQ?V(}luA_A$U_01$`x_!Q1~v(;7j@%DcC^7^;UEJh!n?lI{qD(v|3=<(x*sR5dZ zWv6t>Mk{%Fd3@?R>|qA-w%h9REYIcW$DUi*Qn3JA9*fUz*s?`wRx>|QHCfv@%Vp}@D-`6b z<>lqZ9~c=KGhOGc35=TAC`8B7OfS!NnPSnRH*nS`@~~{%wv8OonX#^LN$rHINA13S z`s<1G#C?;dBy&4y07~_I`^3JQP%4&%my4^^wksv&$lbel2bSh1QBi#(H7H7WxhM`9 z=UCJS9?cvp{~D=lZx~8gpJ(N5$g$~H+RP??q{9(sK-jQ`Ek7aMec8D>;OL34Ovp%+6ZnMUp z-~2s@W9QxFlEwoxitTGaDop?aq%B(%pV36k1Y)7**$wTN9~~Xdo9%QVaAEpe-3bKK z5oveCkf;1qQBhHAn*Jjs8nel@%ayE_1+S2%EHS zzC2QKd-bLY`_}-lZkz0v&T~=lj zYQTwPq^QcSb#8SQwY1@a+;SwR$5P$YO<&+Z6rJ+QN?zKer>7?ghPVxCft0i76%?)@ zyRWP)T8^~mUY1*#i)ioYpr`7dky#v0NBn9>_h)=SHlJ!S3=b@d@%#z#VlIR?4$`U9 z-S;@-kzrYm-uQ=3=}YI8mDNVb{#ajH%!T05UDzm;U%(DiB;gmu%jAr-n#1Bo#(h~L&7`-VRm za!e5_2Re{M&t?@pShYm91x(b>8^=ydMYgISTc8e}??8@RnC}l4D)`&-{f$&3pit+P z`F;_cyHGig&c34-T}4{JhcxWUX5W>nfByN$Xt+7md7}IP6AO#UWX@yFVt1|N!kHlF z+0jHMUKKs6h_CI?>^y;GZ*KjCq02l6za5P;`V8 z7KC(DuaZz!3=zL%-kMQ|8k_L&kO0Y=+OFfL3ctVmgPD6-zZ5k>_{RI+GmYwwljj5_ z^E0m3IgLO~ezxz-AaY_zs<9v}QuYbz*%paz zi!;olP1t#SOui0B1%=1mi;Jh?EqANs>wx?luz$M);z~&N||8{AQhE_m01xeOA(p zk?4BBc%UKMQb#f1$lF1^Iy?heRwR{BZiRrC#VZTEZ635XfVm8CGnuJRC!Ck3n-ZPf zgcw;_srVo#YNaO?vN|vO`ua|{Sr*3u;suFWhE?|nrsJtmCFI8nXSMN+1_1g=h)r@_ z)zb~U*!N}>10N3t8iv&oMu~5m6^oU8^Q-s<^%CsTg8mL#Gl%q5 zgi`f5i_7dNUH6GhG#03t@9;jrFcqL;l6r#^W*5hbsUE8aiY>l7uN;c(iYX%focs8Q&g31DuP)@e>8k~>>vV?hC%Z9Bl;yf|dkLDkcZnUWE* zw13WQ-MUp~?(-c_8*Br$`bLg9=&fh@SFkn;e%Z`jc3+|Mv|z$nRyMW-V7=xgSAbF> zuYKti&u-ql>D+yH*A(bWTR{|6#)mC5?&7QC(Z#iQ)^C**XKDXn7c^;(*n1)~6Hx7L zxHvo3gk`gyT6ga;A2=xz`(@}r)r|!=dpyHjC*(_b($#>Aso>M9g!xu~5!}wnnS50D zgVFo@+w!b?AJT^i`w=K!O2az%N>4klVk6^l)LOI5gXyLKkb~6ZqWW9Eti=|Ju%0C8 z9<0_Y`aO zqfb8AZc_L9Zg)tc$13ogh~n>}@dmCjL_Gq@74Tcewp4xF5@rYqu0Rgiv5vPWE@v-eq8Zpc%avrv1ot zrxA2v)lHfAriYqLzkPZok@VHP4=CCB%Yy?63(7=_vC2L&7K1+-7*vo0b@EL1km3!* zm1aA+lm+a7oOkFaWgHkVHV=qK<)41{hk)Ky^Ab9p0`8~`_)39nhIFM+S68=j^JaQy zq05ijx<3zat8k{(lt(2Y09fsL#O|$N4Md+R`866)f{HjKob2H)fx|fFcRf7^fk+ns zdF+gGl-aIyh-)Z{w%{Nl5{r@r>|L)gFZ=M}M@q$c6l@px^Uq^QFIRd#cv0~2 z*ZuZeMM=qt?(Xi5TemimboTAjo^|Wi>GK{cf&xOgQMXGE4pscko)7x7X9P+4D+#Xy zGTJIL^;EIu8Kux=R#YKY1Nr-dH#;w$GB~6xp%o~vBZla0j>8}eLauIyuBNJ%3ZjG49P+zgU(NHR{7Gj^4H>K^IHS9O^gK3W)-50rD-n=OvheQpmeK9-qT$Uwn!jEYw!u_|f% z?IjK=?~x-H0lUe;2CSq{f; zVsi4bqoboq0n|EW(C_YXxz(j~2vsj*!rfb=Q`-m|gW&Y+x?LO5n*a}qetPct!B_a_ zAm|X3`8xcOsav*%cJ6t9ZFm#vq_D@zl0sKce^sEaIQXnx$vEQyCB2-^VnljvO641< z|C{6|_ zE5rD*+xNHYd31^jx?KTJrlDpIp)!h@Glm2N#NuF?pboVZZD2wEZ_;*AM4|JXyt|R9 z9=X`>y6HQxQWJvnCacA0`zeXqh3XKrDpaJIB|KJKJ;i*-a{D<7fzR<7sn?l!2UMc+ zcImiY0?qjJ&j!X#mVE1hRsjMRzC02z+v#G##K;%{$q*vy_cv>;ZES>OvVbx?A9xV# zj>yoUFaKIwI9Ve_M3(NOI7*Et zw#r0;#^@bNZ3g3qR!Tu(p(6@s01t81h%lij`AFdfp zeXC>UK0sJ+#Az?(7l*Y3T@TNI>eMIdJwf#`!rHb%O!IF&D!cG40-uubB}j4RJ_Y8D zk~yHm@fTm+rVkmOA?f$!vA=C8DG(ttAv%)vQ3>BCA)$uf5e^ZezIF~Sy-{Zv?q(p~ zKQfX?;OMh69OaE&y(r;zpfW&~gSNHVORt?K`=XO8Nzp--m>w_Vq@MHR@!nje)R?Se zIVqy!Hcg?GnX7PGYR2?#K_fsFq-8LRNOChHR8<`}3P6d7bTl*sQg+i^wXS3sT|%Ng z1zw>FP$Q(+Fof-n)bLw2s0w(6pJpD-2Ib_}E@;kRax>T|pq+r0LqJWoWtTRHvzX$S zp|{$L@vNdij0+f8=^PR2MJA4CCbw5psv~+Z6J&|3AMd6DS)UOCgx+&FZ zS-h+QMk83D4HR;L1SD;U$ME69hxIrU3dwFV($a*H59RiU2^B`Wqac!Q7Noc!l?oZO zy=0fZmq=g!WgBA0>NoXeqA#bgs;a7%u=Ywhj8>`Cd)J8#P$|@CNxQ+TOgcy+60ea( z-rBAJeKz2^t_4jw1joe0fHg_*Url)udMy3Fi zmjDEFM`X1Ga>ceQRfybpLd`}p0B#y}tH1&*muqx5oWQ5|gBUyG-I z{pUcK<8e?h6$B2r)}k1?es*J>S~zHaq>=%@@zQir3{B^xy&pf$kY}9-LZ<1xCM;-h zI=!;2?10EGy-Haov-x&IDnOq69XVKZFubtt)b(3Agk8I)CMN1bBy6Uz@`h5(>F9|P z_(QY})WoV$9Y-rqi;g_~xggT&!5f}OW1zvCUFvyA$ncwQ*2U1Ff@Lp^<&Vh{VT2}< zqf{xg5<1o2-Tg|SXzn=Lt49Lz-(a6~HvzJ@qkA_2j1d7@GP zC+li-Qv(=cU3Ql{6{s^{bQ0YcgR5HPi08CD`{4k1ll0g^S%c4?uPai{eJKa4;2&jY zK0v!5Cz6;mg+MX^%5TY2Lue^N6DpaCUd21x^;HG(CGXm{?Uh=(0doxjf&@HgwW>S0 zxDX95Z>(rB%~e5#Uo+=ZhV_^9T3IU89f3Cf;Es+Ck?Ze%g@{ybvMxMCwoqR4H@s@hJagDOuU zLH}4EXz5YG=h4{mPvsW#O z6{g2tI)RjxMIZVq3gGxr_?hsbL-NI|EBRs0gNJ^I3PlU?MAw5dVc2{_uvi1pRJ1V2 zTat@tGDS;7&6)p;B)`MLaC)sRWXd+Z#PuAG$4na&>QJYiU;pB!l7XZOc_PxqpQu9mc4h{ov4CRAT=Qd5islWx8xw&HNi2yQre0NG zoPWH8Og6w{(J`~KI7Y>5w0PIHwP_G}Ly^}XYC%Bfb0|uM17rKBvU8u;mONx3YA+IJ zqPmpWA6vGFF3$^6XI`|pqu@u=@1*S&6jbhVUrg){!Eqw13cc`f*--y`tgRyBHdf^2 zt+I1}R{FI(RYB*05Qa8084r(D1;&K52!Q73C%G z-t+1nhoC}HbFoJ;0J}N8^^cu=N7%;DBceR;YBXxkN$oau2aQlkxO$!5dg;=o=yE2c z-0CUE^m88qDI4D>{?n46o&C?fd!~4EXKd~?>R%KSrc0H%jKz$Tpw4o8z z>}Y0KsBcKXF$+4X>-liUA)f(Blxrn$`E<4Va9gT#Y@N#~rA+g-M&WVk{INuc1kv(( z2toSCXZzCG@e@9i&_?_tbgTKmop4YFK6JFV3jqG)KJ~*@X-q8^8Pf_uBOt0J3a}e_+eMI{ZuSr6O4S2z)JaTNIQ&eCSa5_tWlF zmBdZF;w=@(B8vT;PW|lE?f-DN3?Bu8sJ5~|YdGM$`tJg^E(>tGGfO*E1sKWd~%Woc)Y3KtS(J7n>2H;Pv<@6neQO=jxf#c5Ru}1 zAi$ukKV0W~Unp{}&X7`2a#Ke~hZqz@lYh4na{^`!_5anMf)pd<+OAdTOo5nFH6clk z3uVnCCf;a=PNxH9NBgdfe<`KEI1l4RM0P5-NUk?}6^X&W{3! znk09@oO=PdKV-(;haC`5$V`_56agt;s&XhnyRg-&fV9g1u)KSGEx4H4;s?91 zKAYt{a&vQyn^UffN+4I=3v>MPz_w@SBd#WC9UK>djsho|l?7SaY#+RF5e|y3cs3X@ zn@$rpj$xkpr%z$HrmIVbXu@I^Dq8)b5x?#QQXnE{^!RdHUBnrtojVQ04XHElpmbb> zmbJMbc_nOM+`#-kn`Fc}vG4Q7MP>M?U>u8gmd+b_V0W$Y8Gc3#<~E#>;1?i|nv<99pKqM^{L zsNS*Ok^c4X;VVl*E`0ET87$@+o`;fikq}HTeC}ZGG{gO9BZ1I~h1eKm7Po;@Ut5^1 zGNu=!7LBx|msuUA>WCgW-_Qao>wP1S6`OJ%$|x=3iL6Qbxdc#pB2lC0L_q@y*6!(D z_pe;4!0Q1D#;2j<-Hn23-M1)jA6U3ET+)u`d|6Cnq*0kSyQfW-iLV8V+TBquAW`35pI&CqtHJi&q)aN9&Yy?%!&590CH#W~&_!ck;)hhtE<&=r5>Ki@HF> zdxDRSXqdJ2Dts)BQOLUUW(=1T>+*jreNlJkbpH&{@t(SUrs?{_(Q034F zTnL_9Il~e~a+NCG+S}VnFHu73F&{4kvu;N#D=U9*IlIB<#?#^&ZliF*1u62-gSZM> zcv?oXUUCiA1SoqwZ8C>au7yNiAf{FDn7=eD0yXXFOhjgbJ9BqudTsD|vLDk4kqMNeG zx;9%C;M0pHZ&v|WFS(iS|IvwJW|m;QE*VPS*MsvP6Vj^CD@yB7sT%&x9SV|Jqu`PJ zDvRgpZL(V`tdC!@xQMka8HYBgKQM>GK|2?mrS!D?f&20TGk57&Yvy?r(b`6JgYw(Z z{nOM~9Zj)v)kplnqk>dQtM9AbEg8OYL5Ny!3kMg34IL2m+LVf;Kg=F0i(RWGh=K)h zX*y~QXyY(Z(1dEGeR~F<)=Yr(51}d?2{8pOAuQM|x!g{D^m5cWreLmo$=jJ@i3Z`u zfa(#jgnSiGl2Th_hP&`>#zR7$64e)#;Merr;D?T%Lss!qT~qY6qbZVJt+M^kv$L}Y z#zdt2f?$5Tm4CO#<%e4}hZh+w4pG0*7i?Mo*b<&I)g(>%7dwou&=ZuS&c!2*$&?5y zK8=NGPq9`vOB+%zvHd_%-d%Hmiz|>jJb>Mo5deYm_nLLYcF-eIWl?n{NmHWCH0Y>l z>Tc3Qw2`3UJSePkOPFsa?KN8QG+cfSkg52R?H~`8+|=mYROJn0DeatK&BH^*zr$wI z{q8QieGyb_c4^0ph96e+&1eR`pX4chnIY z4HOw2tdVl^*hsI;m{h<_CNY2(I?^^kiMk{<}7ZxIXO9sB5~41Ij$Kbhu)7zTj=bZesiz)h3EMk(n7o=82V zpErCTt_S37+ljC8@INXOGa&?Lw8G(Y2_1Ox3?H~~8e+X?PnJ?N^-_c|@K4s~WT*F50j58XnA%!1JC=O4S@fh(7>}pANDuG$=o| z4?J*a)Qenm!`xc5B+DD_nuWv2l&ClmRF?ZB-5ekuv@e6#t$(`m920ulBj&@i)2Muvaix>ZbZ zDg6{z0W3r=;k6Tys z^78s}UaQ&vbN4Q@ciY105ExdG&o}w5B?Qztq=j&=YTor~!Ogy`7FAzkvL5c)vnSdw zhr{vnFS+^sOZ(g*Cu9B4fy%V*JtqTUPffiaOY7NVkob9+KSIT3fAiG?2h5|=_aRn* zvg%)-dSrd2T!5;qteln+-l97&W9nq_DfZI74x3t;f!1x>a23FHq)PNxY1yMk>%K3m zR%p>zEU?9XC~E$P_e|NJpCZ+gCbE6|_D#O)qe9$TUIL9e_jrj-fqLoXS;FK%+WZK= z^Lcimm*J&^hN%E>bp;z{-f1Bs2W;|`fQ=wmMkb~x{MTKJbS&bXfHiJU*^mwPYsbNhZ<2=4E72S)UM-p#ZqaR;L=@78ZMs6rMgPhAqRL#El84x{aH zklKuqRP7ZPDz_kVB6v6r==+{X-w&y;)UTdx3DROPXtc+w|#cxo`S%Q3$N@z&<8e6(a97Ai+ZtqGxDHJO+vxz(zIT z@J~aljE60ic~lM!6wSc1+gVuRQ2|)A&%-%p1Pe1f^sgxWpGg+%cNv=P@<>Kpw8#ty zNU=@l^2)hJKhtZqXuednqKyMp_>-lfn#0Ij> zT5dGgq{2mP?>+1v8Mz--MwM1+^kYFwp~jp02CP)Kh6e@WX9}K$ZcBGW_KJ)2I}fOP=7i^_a=Q`EYVF!#tmS_>hfY|>yl*H`{GM6`@bmzVqjTCBsJg>4yL1I2+{zuW)ha1!1CFBYWdJJqcF zq?|?*I%7%)Z3?q3YzUtJOGea=;h?yT< zK{W~HE;Lx*WbE*SG@pqwYJOsrk6A0G#V51rRc>$Ymtlbu0d89|`rW5gIOmqy6Y%H)jcObARBt zu3y2|%?-ot&PR8@7He`NV&Fv0-)JMDilOg>Fp?vq=|?e@)ixa_-XA zb0c~KyR;qOPBkO<8ljC1HZhm>7gRP8i+1tCi3(oA`XRGK5w@Ct<1!5MAQ_SH{hB~c z62Rl99VKnoy#Ebo#|b(`%)(Ry1`->|&|B z(?a_vYhTS6wS?An@x^SI#?~Ek|DTi(%kzc2_r)k)7$DI^QoWGv0Zm~7Ru>Fn^HVW#Hb;Fif zIC@n|4OI@+G=`g+jR$_H`cnExXsOi6Bo!Uf1B|YE4Z|$F09& zJ4TQFTYybz(Ow{Pb`br9d(fA9b$uudx|<}AFw-IB_eY+UG(I>_ghqbLmJ4gBa_dz$9t=IS@wZ#BlZqt8FL%OGAkPzS7>mggdQos?75^zEy7 zAH{x)&Vs;X#?=XR)(nh<5ux8I2@ynQCn!a(^K8i;IOlAfyn%B57RCOC{yT=wf-YPJ z9Jc%V@tJTBpd7KMqUHY7Kw3hg<;bOrJ{(S8x8;`_^CEjSpzq|9w5}Uk3lYjX;3)7c z3(TBHD?hs<{_ll_g?MB;leVlx7+e##u!+CKzL=o=VubCgXW3X+v5t=GI5|}MFXkrF zVNeO?UO~I4`fc5ABH2!(#lc)dtRBF|>BhIWH5t!$>3A$hp{>5VhRhY=FB$Rrg_%tb z2H~c|I>AT|28*YO`eZJjBZ z;Rro)6e;!Lddp)a!>P|vClRR{nOQ$V!?OpbGSj?NU_4%7Vd0J(c=!q43NAA+h3N$- z+Yc@&>n?DS&Ab%U$mYmuOBEvUpw&b2od031c$9)c*ix%gCK^EqXl^&x1fugCG9aQ2 zWJG`PS0nKxb1Q`yiK|AQ-BukUaT)V-qA~}_8bc=7R0b6|9xmC2_(-|(g|de&Hue7D z#*rGy^NmOHi~L5D`X9A)oljdf)K531KE8pqWEfTXm#{xfP#GV>Aqd?kPetAIMAMiv zd%&qGejz6>FCLx8=(61Wd@8~jNj72XKWuDfc4=y0^P9>9G;^-e^BhuRrVh%}&jZI$Nz}(Y(TGGZaxT(D+A+I*n+}NgqZ+;JT<4!&!b-Pb|#&vg{cb`SB2z4 zWDO%k9_de?jaWl z%8JFVPuYQ3XlUZ-(pku~(1494e4i?bZf)>$nbmtX4$r5Vw~11lYR*^1*P+6w!J8;5 zQHDm!Cf`?432y(b-339es6a#6wv*YT<_bqP zDCI8aM*$>_div1w!&f6W8`SgF z+pQ4~jj?+Up9K-r>40%Q%wCoLm|BD#%Em|<$cVIvh(1*^PsUSlNOEOxWE!Hqrwx`q6GzL~ce2?>jb4m@QrfaD z#ax#l-|x=aP%|Qvo%6Q5wLq~}(-QCy8+6;X@J5fZOODd;C z&!=R>pfTE%p?no{Kf-|Y_ujun($=3Ta_;%CnHKpbVdEcvq^ofmrq=?3jHKl`--I); zy67vsSf+jlFTJy>8BW)7CxdXbvPLxi5?6dKz$QqX?&3|kHik~l&gz-6B*}38o66&U z+scuE<0{ZmjAjPmEJ_au>BZ^8XGXVJK_l6qlz2LkIGJngV7;!COINd|LyXEquZFG6 z0j}0yuJW_ltrEKqYc^Y1fH0BAY{{Jne!P8nICM@G<`&vR7Ia)xq1X?kLVZ?-qqDmm z@_`*>Le`T3G9ctf*q%T-gaOg4aj%qA)%I14(38dT<)Z z5gpQ^2vmW96fND#2k5mhdk1s9>^nuA>Bdw`jR&xMp%r5;*@cD84_j3tn{Av~O=kK4 z2Tyr2rJ6q&%2IL z8TpMc0#6(Gz%mBBe^LXhlc5VG+82;h`V!GRrL8oe@#`FTJjJBfFCaAa)EU16ZnB-08+XUqF({Y-Vs+tvdQvp8Qsr zYE#r;>?;*5&c;+qTZ;O?+dJz4swHUtRYaP|qZ6gYGX3OkdCZZDnxA(?=F)Qt{blWM zvFOivuHL?L$9#u*4RKQv6#_%`!#)fFD5BY&&gVfLJSWMF5(LNUTGKwfR1-v@&Heup zWO3nfe{6E~aN#tj+{?#<(2{IG4Y77z3Wa*EK&Ab*ZruP*RBc_J$I|#cioDTj*!pA9 z9bl=!CzB@wJBqajI`ZtZD1T^aIKkSe;OmQ~mJqrEN6ri>;nPo5vH(P=f<4$|943+3 z^)oUVej`LyRki1d0*2%p;gR%9oL0j4IT~X%!iQdh|F)d#Bl;k;ZWsc|K4E*J#d5vg zmzECrscNUH=_h!&AV3tUWh0%18l-PlZLu;6*$4A;1(Drdbyqfr^`Es1)#JKZ9?*mv3YYV_*CGV_>8YsKItoh*(MKm+@FB04CF=OgDN|D(%&QhE9j0HaMh-nKYAtkXUQn z;Jb)Uq%1k;$1EvIkMHiHh&{_vir&7o_SfAW0ZQ z7jIFoypj41_Ox`T3SO-O~nf>^zd$l*WDl2gNG; zrz47C69yDDFrp$H8ZPaWhI}4k?4wBL=jQuZ(Z%b^(84@^=@h(G22vjoKR@UWa$e}= zpOZ@y3L1LE*^bJj^g>S=?su~?z4z7Cis*pE4Qwt1C4j-+-FYZ6+ZLtMED=e{7S4Y+ z94!($a1v}Fvr_R{*U&z`5sIb;VS@MGUj%8(G;681LQb}Oc>n$pnMPzh@Zsk#UcBgD z0!W`mGjRw5unoX+zP$ltS{n#%5WKnx5f_IcE4}$FPfr_sLOP0xp!ua2=xagB_zRlG`N^en)5K#?nUdjD zVXnb*|AnP%z*L`*RzJ`(F=1eK{zz$AS&Vnv;Iu*>g_4ApYV;&tkBpT~!OCu!yKuwR zwE%k(ff5*pSrm21+0{H^@PA8GQml!uFgS!3Shd{*CDCY33Ya+>jt|_N0Qrn~?l5WM zg&S{-(XWwfOH{7Ka#BpIDMxM1xg)4OF5bH3g_7IYp=<*9co`mwsBw3EG%_ee)s$e`-uRL}z2 zM$V(T{ZjyyL8Fs61n2{vRw@1A`ZD~W(?Kd9!#B`Y`rm8UlWE|Rd1#nFW*pGD#6VR7 z;xHB^ob*wVaY&p3&glo_^uS$ac?&dn0m^J12r4W`M3(RfNtvKpxW zQBY1kVmbt+fQ)ImqxW3$kQesjXUWNy(S99iM9(93EAVW+fZcxRg#v41#^Y2T@^Ax; z_Vh#zRkUp{VF2svz(5?x3z<*BnU%zi0;I!6VmRQI|1P|!JSx9%h$%h-#x%N9t|A4; zq5ToXdf_MejV|MGshVnrGyGfe>T)s>ogDATadE-!&R-9fMTt>jhy9KeXJy>4NVbSK6>3?IDuqL1T5zx@C#WL z)JM|EW|wunib=j&;iCfk@G%=9CyLk&UMZO;Iyj;SGgj$jEQc%_`Av)VPdJKj>?x7^ zL9}k1!Mczkd?P4x65iEym_#PAM8tS2(t{(UkW8v#?va#dc(qh9b4qMZ$T3hJ6>&X; zPTt@x6n_>u_X2W^gG(3d&TtOk!$yBaA@pO-R&KTm}*g zenuvM$nrn}A|sFBB$r^rAPrs6ICYZC(f3jCeT@${4XD;C-P!)l{!1$&ZwGE+z{iTi zJT#epA=gIWwv3O+dAR3-Ob{UBT@Js1FsjV>;*T5%ZT@SDiHDEi;{nX-eZmyW^+}s8 zKihA$wsJ|d2{IK$u96`|w|fbr_-M3kBp(E1P6d-VxCH|(;e%iUio|5#xtVnnuPm~V z8fkE$BWS*T2qxZ09J0WyN?7d*L3a{B(&Awg<ntsoCVK?_I8RJBqq!BYYGAX%3Mwwing&Q*Pcv|p`s^ck%WvqJ_JK^F0 zYL#JfDCkI7O~GlW=9X{>>ekKkoi$y`D57ZXF{kRnhx<%0qL8+kfV*;ke( zFVKQ(v&d+vF|c)X@=+3Q=niEfLGdM$sTveKgZv5wi%(Qlfke&R`YB70iPvPuxGh*< zEUUv%QyTr83@;$3FmB2sX6uryNSyT_&7LGpW7?#lDjDXNL&b3weaJVKA@%HWTMW)*%>is8SYMHhL35TR5bRs7JWuQQWU!?$?<0TV!OU zna=vhm`TR12q~2NJ{DRR;NMh3ueA|6pFy4uTp@}&`PRg}ZH(>|Q6Ok;17EU`&rG26 zsN+avHIarI9#CKXFE$*3H~bk3e#w6@D!*{6+>HDTQkoAS9la4*+cQcnRlN7CHgp@S=z+{7I?2&d9lsdMNAfVX+t zK*Mba6fzXliU7p^(T0EwpmFcTK4c|gP#3=ThQaXO-hsxhY24d(1vZ65?MmD>hxBzB zmQ=I<1oq_S<&l2d4^vqq6c!pHaioz$3geWxrm8$;#L@!W_lmd!O58}ZV*M#y54FTE zO<t><0%2+3oaWZLF~Is{6vy~DMM)a|F5rDs8Vehgr+NalVhP{iR!d<0-gPAu_mGGB3c~h&%{hAsW7n%AomSr z`J_jMs924E|NaRcxgVaYvOCqN*C_*m?C2a z_*^Q9mtmiS8dy16ZieeWJ|Qm)qb3A%KSkr|B)TryEzb3cvm4TX9VfXJNJUg8T!>uS za^AcS=f^zVrZJvUX<)jn0mg`NNmp`ffxTK+%TB(lFUh7Xmn&aj^Dszwhv~K$^#+86!#VFUnU(QwUbmG z{K4>X4K|yMpd-6u{5L%V*Ak%5ZfNQS`0@>%mQ2Z4r3&c8!KK7QKwOZVN6~c`m3L4~{jn35VVqKn=P(4ZJcSxYZlxjD{784?31E7d@TL%4 z50ZE%A~yDA-ZHPcH2Oh%vp2;1@*6hzm(V)lL>vr+Fmo<*@JPrY}gu%^Pb>ZD8;TPFW}e$$v=ZR zk54%Cf~M)G7?OF9&KLY!oUrY87AiV z9nzk3{`~j)2Ba_;1U{X<)b9c8E=R_Thzq5|q01P%o`*3x|0gIGY1r3Dq=`>^lFvZM zAmcI(xZeZjH$$}|SsPqUiMl}I@2ZXm!N}=017MWO=~=U_RIK_VK@MJ|fUZ>r|u~W==s6VR7#~jLVHW zYRJU!?whH4{e#5U!tkg3zc*fGLh2!&ag=vFyC-h2_=;QM{^u$&w4iYJ-%F^J%~RZ` z4KR&LW~B!q6x9=NKJ-O2k}Gf|!OCI6c}-ve@&&G9G{DsdE3@ygBoTP|Z^%;w#giK| z0BS(tD#2or1fIeN0c@3t=yknlw9ZDu<1biV=wQ*8Iqwi3=aVNd&?&_*#-FgkL+!nUt@?2R0PK0e z*+;!GgAQ_nUK2N&2Sz&x(kNtYA9CLruJ|HD`d~IH81lxvzb&8!2j(Ui|ih-vYKIf*s)b=b)LE@GZ@s1oYRDi^)p;&gb zm$@_f7tn%Cgms?>5((NUxYX(yegw}?v>HfV@hH#aR!sB*{i7bx;>*GenC3g{^NlY%p!UYepI6-74Njk~=KGNqtQBkrS^$-K>(6J|| z5SZx-)(ilMgd|p29<7Q?5Ua2dG9?c~U|T$gFR{_VK@-|cHk6%uye6jBWJ7T!0{Lwy zE@%r9HJ;osN5C`SG6g#v94ZzALO_P(VY5F5f~^XniWpB}yyrS_AVz!r9PY@&(SZ~7 zA&+WO0=yq_7>gjClbI*iG9k1!?4JX1M+@V8T+?5`PDGT0lo^AMPA=}ky$E(iMPUTD z3_tkkRz+xpv!V&ElB^wSQGgRg;8xFCQho7t&2Opgz`uXL1)YrCmRgd#)YwO^F~e7m z#{XWs{8bkk$rbb$^2VWO#9<6u>HhCOf9h7|zgOB~Y#XD23WgI$iFikRD)_p#{_sw6z2l!h{)G!PYjILUtUmug#C>&Glxg@b#;R*BA|g@> z2m&Hf5<}<;0#Yh5D76BDNaui*O@p9FgObt$!qBK7Atjwd4I$m-z|47Gc6Ilh^ZVoc zcjmfK5g5Li?|q-R@B6vmkLFBjz(*p#04PdVe@86?JRV;8Hu>{?Q*?z9+rLvLd}V{` z?>Yy{O5ML;3Js;B+=}fVg5R?1-z$8$bquURppVDG%8Fw8=ZUEp{+9=6hQO*o&uep2=HF+A ze?`?AWSAzEwwe$;3k9DCNa?Wp(uwmxrPO`+NX)41`Q}Nq($-UC- z5S83u-kyhS^S5_>q;|^KF}Sa!gX+DAo(Yxc&MaXn#!vlO!hjZnukJaUrLxJ_@V^IL@f%oxTYDwRLK6uTJWOX3V^s)OHT(`f|nK{FK z2i5zRXxafB0ptnH;GqUde6Z3h$^`h!ROnt_uknG5hbjI)*Kx{f+jkiw59WMeR+0z+ zlEO`3jL|#{r`)InBF>-j~lm00#+XheDxrYqeJ;;GaOf{aqt; zXixlQh>ZDwRERE;1Q%)4lX?I5jd-}Zz3a`-0wxGHp07dCentTxlon98OphRv{paJ7 z`}V54xD4vtNf_t|W{1`QMmJs1-nP8{^V{I>Q~KMng`p6}fMNPSxJVKvx}os-@_+p1 z8Wbj|Ug-NVVKku*2u^?$hrFRw0?y))cn4Z52Vkk4ot(}>p9`Ob1_lP^UinX8IHmgc zZ_DS^vF!^p!#Vyho$-qIk=BA^_>w@5XpK>bhpKv(|) zw;k7ckc}*O4cbhuBA^ReFEReOK0uaRVF|MXE~J3^dFWQqJwnzJP%Ef-ZCeBX{T@6l z+4dk#Uxw*)Fhu?{SRIN4WIYA1%L*+xc&Zh!fZ!1q@97@;`)9WQd|}p%5(^I$1lOPk zFqvEh%7P1SF6Y%(E-=RX4n(D(c#KAM7N{29AuJJ^dZ;~+(H9~fpl?)GJ7f(D=tq+W zIewxw8S2#rZ|VQ6II2P#l%%wVUaCqdY|X(Nf-nvhKaRC~;7$nghPR-Vq;Cv8d*e@J z8wI;(1w^~|0e?kM>f|Q0HE00e415a$_R~{YdxA$9zzC}UOyvL|05&%YsO>;GHn-x} z-6}{!VB14lOZ<9><(V{8X!Rm-cLK%|5D!%EwJ(S%0^X5RVg+`!$ZQl@Lbkx9sakb8 z48kL{AE@!webiKoQ7{{YjIYqG0Pqw%XNQC`n(KhQgI-$OEe71e0Pj);fb9l=W;qJ@Wg2s2-dEY!31RXHD7tQ5X4?{{ZC$5_=+* z%j|eB7>t5X(p!*B8x;%y9lqS6$d>}83zE=+Z?oxI*Uw)-HBb55(*7Yk@)bsxEQktY zPT5^lg;$`3MR=Yk`xffifN0h!N|1*8jmAU4A0sF-Qab|8V@(1y8S=#-+r{BC{ z;1URIOpnnPz;_pwH9jG>68bbvfNxu-v9OF#ctM~tm`EBYXra)rbfh6$XR@ke#~#oh5~X(L#Q$7*xJ6VIL)Ah%7mZ63RUo z#O>eZTM|-1r=}PTT_QR+z@Jg9g@gasjyYwR89oP5V(=O7l_l0ez#*zJij-xS&7QefiHv6gmiiUm+ z)(~fd7GN>C_UV8oA%Nf59FlAPe&h=O_k;eQA4jOFjEu}=J~Un+b|zMOQJtb-fZc)k zuZD-`K$Py?jdg?ubW4E=QG>y+jr>pyXM*Uo#ZZK&!OaGKL*?}N7Cgqn0^V|bX@>uK8_+d9)SU)FH&9%m?7#}8f~5~P3>NF?>Voq|CfMF2 z0&0!P1YQv}vmkJv{{CV|GCHLK%}&Cy@0c&NNrqtN23R%1&OrQs$;^DD2EtgYxrxX^ z79eHFjS-sF1noc~ke*1DWz7F8Z=I6dz6=6bjiCCZ(Y_oKAvys8tjX;!sb88E0NFXX zKAj>IK=y4m7@ia@sV62h>I)R2-<#vkJ(i7&vxhFbh3>&D(4?t75?gK2F{TrKP2< z>?A@V$FEgk9*Anlztj+L0ZaCb0+3>ep#cTMJD<*dT zVC8oSya_Pk~W;0hX*1B>m+7hyrt(3&K7ug=fc zteyltfN4H)csSh$0aSlK!naGgE`NBN0rX1)yg(dt>{KVJKY*qPH-__=286*X2@g2k z6q*79(nPHq2oji-$QfU8dv#Dzae_&(al{OazTVyF!mRlt11qHh zm%i`>I>75Ph`h%Yi;O-2e5S?pPiqUW>F>ZwH7Emstx~R=$;t=6zHn>WKmPd3_k}eb zNG_Ffx1en|npy`r0~AJF4!vM@2m3!?!Tjf&LUrNqbD#!g5PF&GHdap$_r++U3kv1L z?#BDRe+}lN@uqH=%&^T5D7T{k=uroc$%0=`@q!<%GlcLSLkHx%(; zGG|uc0ellIraRu~+=xM*YNgzQDljN6!botGU=d_4$wlbEe2B)-8t% znjTDk8r{RQ4|041eVpXapLg7U{9&sEP`>DZ3eap_0lwo}@UdgZ5|FjJAwsYq>}hTz zM!G47eWK90M-i3fuw;z67OVh3gOedt2T}*43STuK?_7NPX8WkCc2Ln*4+D-yEutLmL0;fGA7?zMfN^! zbeWizWvQ&TjF{aC)c~i*&Sa88#I^E*xb$+yM}pe5E6CSeIx>OA(3fq>6w8K@C#~BCi`t2 z5*JS|dIG>#3hX2}V=GT;0qKE6Sx`o+KnwW_LL9>EAeowh5*p3aK#>Cz5Gx(pRuhoM zk)s)n$NsK5m~H~kzgSCfLL)-JBoaYva7C(ty%Acz>uK|nq*0K`~dNzW+Gl4JF63P!(O=dmG=GN}hee&S=&E7p_ zDZg`F(t~lw0+3fiWs2G}fOWHlNXX6?6_Ri@2rz}hP(b*!IS`IWp~?&;q-WJ(64)tp zf?s3sggZ*4;9X%T+6j#kGH^<&-UH|7K(o{dz_}WW8ceAmnd|7>TozQi+|U|=vR~8I z);7Wr@Ok+>cqRWl_QqqGsi-agpEgu!T)qP*o*<;m@C! zLM4yr`j5sJXMD4rZ)$5=^s}V-lMLE2A7!aE#)dOp&UUo$a24d1%~CCnTWF$H%M~B< z=DuW!2Abhb5Hf^7-L$v>U=eDhfsP`zWdnKj4lFsgqd%q2W3DsLe*k(5-h~f zG(8Z1;F$C$K+fDZ;+~?&1ijp+xBux8cu|6S|LD~*U*oKTiMA8Qd`Ga6Kcs9O8gyrl zABpnIHES8L@K$Ik7RW|6L}T4tm%pzCg;7G+O>UiU4g8#We*&F?JpCZm19IMFFAd-h z6l|)%Sv9MvN{)WqcgG6qcm!|e;=J9*$$)xje)-kaP@P({+eV#7_SRjL6T|FQXlYRn z3ZEM}1>}?3*fTCx@h@-3{k>G0Upe17ENP-*4rm2>ZfN&n?zF_R1DS*@dXeVfN!*io z@J>!(sI&Z1hFRkSK0x^NuNO&GvkO7cAFpLEaP?3ho0`7Bt^lEomSL_-1|t}``sH5T zj`2;si*tePRc`z$VmM7#=*p25D44wG2@!!KN5BNaP(ZDh0y+m3pFaYIL1+gZPa-{> z{3Ms(QD8>_{hRiGYN3aH{+i_gn@lW!*?nd_KnHUsS>EI^jYhIhs2WjTA^YB{Po#?f zoz+F_yp%aMES4_0$|e~R-B5{}RzZsuj}+v!X3BQu*%Rb+ z08EK0fegE%9jr&rCa=>8#$yP%L`+$ZI0#a9a1KC^JItcT9a~t~n8%hv(;xNzzN5)cXrh_^ zJeho6T$xCF3g$f)Q6W)$8XL`Va_d5%RNL^Li>N3TN&Ylf=WJVz4< z_78AEOl10~5@J9BH_ZdJQd>3}q(SGb0GSJ?f)RzvTY0Pq1k@CZ#$D6L64FDAf2i0GUTB*w0zYohse*{1}zv5&->FrAk1HIIB|ujWKE z1@6Ha6nI{Gy8PI$b%(mP$Xe{iZ>~C{Q!}jkR@jY=g0B_2n%H_DC>#RbXr*<$4}qWs zp9KYmI=2hS-2#XtqB0XKwTyWtj!XddiM%bs!SWV~4p4*+K+0+uQT>4EN0@_wSb&b$ z1IGW=7Xt-+)tk#t&{Uk@RPTSmD@Q&>fovsu;q3) z**D~1=qQTmal+RrR<<8m8vNtdqO0+q-G}=D>{63bGqGJ7ESRb9$X-SAE(uHye zIku?y)i@*V1r!WCz17h`3Im&`D%b(3U;9}I&nr++OK;9UL4s}=0lEbq?>DabI3KqF zJxM#V;{>#Y& z++uAlB~~8!&~aWR>LA?$?8{uYJ`e}An0Es1xUH?zDtr!_d+1=30G2{Wm%+Gc2Q)FX z^z`XY_s^G}fOz_OL z$BoBmiJL~1Z{EBS>ZPb?VE|A<4%Dz%CLmP9gxz(}F9VwN2949f6cI|*@mCt*jE0+F zWs)OgxRKElOD!!ejrveP*z6q79)|OzehBq~ED4ZSg{DOhz{>++L_HPauwpRuMoF+y zkYLQwTTsOJ|FzQJ;ITRO^K}kdZgVD@sha(*-KP_p(;Pl2Y4=LCHR~U7SPuPSaKj+@ z7*l9mSl2Px>RZQ{BICjev?)w9p>f|S{?(gS67d~Xh1tXU2Ej`&so}VaDC1(d8W2Bp z0LAnUkhjEMX&4Fq$KIoCefWUnN}C!|O92eeNNby!1JyQC;->UM@q+aAG;EJ0qu_8h zY!=xg%^C!zP|=@PtS$m&6yW6mK)FwL!Fo*r@kF)M5J`5D{tdi1IvZujc%Z?@aU*xG44_dXslJjSiT6}d8U0U=2b{+!fzCB<8h&NC~s;>jfb61w2lv{Eejs?5LXIS{K!f8|S&^`dF1OFnnb@-R{XL9Rx>E4`G*j!q2u;i(Ok!DcGCDW5&072~~ z8DLaw#Vicm1T*qMm8rW-mG4E_P}pXhn~Q zt}v9J;%o=0Y;pcYzQxOv!nTg;1-@cyDx#oLkeRz!7{6aTHvhM1rpKwq@xyP}`qUZ= zGs4)|*zRU0Sctg7DH{s-qammu1RCTvI+6$2pDb`KHUnA1Z8+rt2GG!e8g$o_@4neR zgFpgyPv;#la6knD5e;PChhlgdK<;8PwVsghfp!i`mt))2Yhm-Fmo_Jt$#)~!x3+r6 zwzAQ`nIz~#HyZ!GdMc_u3l61%kY!ED1iQiXD zu^))m@KeGFvaq0dfGLmude!L>>LVnjU}nO z)X6`=>cQ9TX^CB!G9eZkJ2OV>U>#d+W~zrJSr)tW^9q})xyCK+Vgq}G=N-Nl&W#X9 zQ;i*>ms|?e0DW3qu$>(Z$jVw67=_V<#+C)JVo*cFBYrRd*gILU_!w4pLN_Gsd>BWX zO}O`$75WY+G+O<(VCw3Y_(gH?+rX3|cUK!hzJCCm>6m4lwm~q0RtR48dUbby-ulHv zS>GIy!=l?tnl3NkF|JD7mU*_xNLsyJ)1<-1%sc$e&NvCjAdRZS$=3WgxmR9*jt$I$ zTKs6wUcUsb=0uj@D--{P!Xnhd3h-X zMnca4tFy&_JhW08;2^H0&(j_Kol4scZry`+*?+ICK-6^f8nKX;Ct=;Gx@y%0;sAZe`2l2q$pJ~XC)nDai z?JxAuik0jm-hTLrDfoXF8}K zU}onw6r^bS<radNFHfTzU|hK`tRi-uSSw zC7k7|WyRs>XqO!{+H;s8d#h>GIe)F@nR9Cz2LP`FM5G^J&Z8|G@LgDH=PQUvmct`f%`scJ)AakI1Q0AA4Td<{{d}bOzYK8_)+-c~gt&{~u`c9@P|K z3Q1q2Q(K{?w0Aw_vcsH?+73ZMkZt_{Q!8}#3KE9HICP`62aHO0=v^Xcxs*DkYOyQp3qp*{aS z2^Y(os!TEzc5yDy(1=9Y_@%BJ?RT51=hQu&GqE1aA9$|WU;4yNN0;K@#zGhnT2m*z zOn{tU3oHW{7d|Hsrnk^Rw4=MrJg^sDCIE8MEncZJ+IX=XFr8P$B!YAIeE@!7g8(cO zKGPZaKPG=29b1o`Z@?QI%GN`YFouAPNYPXiD3%ktt6>lWi0^VVTZy!_!N=e?8plG- ziQzUX_CjskscNjUa1Ps9O;|_HIX>(^m$2CD_KRh{$Dz{oEXK^e*-15c33BB9&W~7& zNzy$^trIWdSh(qz%w9|EG>T-9-EKm)6TqD3QJ=3~9)Yhq!j*(G(akekj7|3RtvbY& z%8^&kbMs48;@NK2jSbO@HfJE;!uZZNn3lg;jkE+v+!)Rr3B&+Yc1iSTGO)q0p7*?7 zN!ZvLJE7FVz2a91A+^Bszn2j2tS^f&$lUV);=UOw%(DvHN2h|j2dJe}!J-23FQ8>t zTRU{%K&!up8?h1I9QbA%r}}*R9|nKE?&o1VEhZ~Y6ZKA9qvT&*BUM09)H%Y9_n+H> z&$NWua~$T$1aOp#wP*F#xo4X?!n56RMfeEk7F6<$FMYNjF@M}of9%~! zTBgVnumuTBP`F2e0TYn3&k1=eUUlDE!GfK>utP7f(SR4^YezNaLzi{y9A%&i#=Lu= zxh$e#vkidUI=$%H4Y75vs&3=*MleIjxm!0O?FmJL0g+6^%t_(d%s`Fw&98p9WUBr&y&D?w}Ga} zwL}MirA}Q9u@rYsq+SAev(j&0?e>2{Av#h%l+pqo`x-rg-&#aIZF^gT^Mc< z+U7r^X#8k^fXXv_Rv&qT>w#Mjt-nWRSVa3mc9TNXUx25W=ELzP!~}WsaeM1H0G14! zpUX=&=e-!}qbu+Kw%BmP)*+~`PiJJ3yO2P(q9gP;ZVjwcs`|(xnnhv7{S3G3tqBgr z@p+cG4?vOUl;#KG)Ara42CVfZ?q(9FjUCg%VnZokmMN5(2QGwOLkdPenp^Mr91HBM zBKnX;icMmbolEHlv!6lKHak6kV{47fPX6?0yF`3GmR^+7Kr+l*xs?6@ztSowxpQPZ za*b!T``SNQy61zmW^Sk_Ed55o?Wprc4^9{TDAMZ2r=!wFw?rxb?cU9t<@Px18ENX| z=3ToqYMRIzpWu2|VD+G*>=ZKY;f-pKA`}jUIT}E6-9(J)wyP&tbDZVi;BY7bH1Q;; zO9+Mzuc1ieLTcoHlX?Jd&?t(~YoK`3Ab5GUo?S^7d?Dbhw4l7fL|SEAF;q+klU-y>oL*iz`o&q;NN@d4ad31SGw4D z|G8?PjJL;WlzP~=C^%ppS_paeoNI2nIwMi3OOmSGA!^a7s*+6+>&ssRiCzjF8+@Va z+_ZRtWAC7&tn8Qb)F%mT!k5Q3ErXcfM%jzAzVw#A%X)L7-VtxK$SmkIy$|PXtfAkx z6dDuFXNyrgxwMzU>|}1&G4=T#Vc|=m*xCTe8gRzWj@e~#?JLjV?An1cgQl=xwivFR|PtG1cwkB>cJ zJrX7TWn?9Z<@K?sJJlH^?qKilGc$oJk-TsEI#NOL>>2d{rayukEmV{py5$ zrN2nPY#4);-}>hG-u~Usj{dQ^>)}r42Y2;1=L3|f`TsCjU$7E4Fq9J~uWU}-%``Vq zU_WZp^7)6By^QWT-Fz|2B0IIdrR%r^N7jLxL5wFDHhX9y4Tiw^mv{80_De5kyVT(! z&fIF_et09aHoeD*Y!p%6!yb1QDpWye<+|A_y`{F<>9N&0SO&NUW)?ImplP^TA0f;G zQ4+#@C)1>F&_9K&-JjXbEmgOf(nNCb>1x7nt zoTw{edv*d>V9B~zM)q5^kx$-Bp6WgNqJAx>gYeQjIhKX=WhldW=L-hR%_q{ueqYAV zM~4fp<5PH;SPJg1sALLQ6zgaCdU*xvU653%r=C_#7PRR}Y?2WO^78TNYPn@Im4)le zUQqVvWb_TF-+J~)b*ri9`-JkiPBCkcmyxXb#JZ^K4BL3;7*i}c@{DdX;bs5PuYEbI zt2=6DRu4TD#uKdW+sW2PM35{Z{UdJ%U6a#%VLL^^&kDM4PyAF3^}DdexLDd(OOVVf z-PU9oaXL2lAD`Y$p?X6l5U%7pw0A0Z=l&2{YAcN7+TNLit{>gn9`}gezieS|rBY49 z^TVKfvEOMry#M?6YjXM?9I4zi&04X3bd4DS8!p)D5;2V%Siv7wHT4m<>0@06($}k0 zdxu@5tpe*E3;psK)E3B1SpoQ%{-ajzckR@VIWG@`W!nkp*%l^LJ;ZtX@Gz|cjwi~E zhN~d(SpSMGJId$u>448|Z87*JI7P_UOLQtd_p7?{#9e{#g2f*z&HcA}4qMGcPoPh1 zHir8QH94OEc2Nx$D`Ew@8XB}L>mT=i)w(gHuJS&>giV*(m-ZXOK+(nlAYb2wom|SH zrgqkUQl(}kLyo9kS`R3(w3$>kF;Em0r{P~eTC_BNf2xME*M9AZZgaC_ei2Wwcgd&n z1$$Acsf4P6kwa>B{j1Gcnf{(JT@u3!-j&}@ja>OoU;(AqEn=#L~N`vm0L~r zrJ}B~z~OK#jc0utSC1Gs&rzFC;cCNP8^Q~UYqvxc7bt zlS(X*X5HEvptwa@fBxMD2KcJ^+!uWB5VrEcSVv{ELVEK`6c{Ys(ACv#i}*S-E=_Un z&?16tx>8a9M~i@_`fc3#37-MNfbMHMilZrR(^#QX#lPYFGjL)!e_LBSKJz@T#?VDo zVnODdUWq7JK8qI2%~*N3OqWy0vgz;bBRIO=t;Zi9ne+P*X!4dpeW0j@1dN4 z&&(YSvlplIXs>DbeLE!>O|L(g5huT+)W_$u{n@?^hw41@{^~oMQ)5S-1dP9}!Ol5# zGFdqZzx4jD`sL%x2fh8@CmKAabIpDb7ffs^Iyr1|yz=9R$b=AR3`XjO1}STMF$dib~f^7BWis#1zMne>b97q3q~x9_Z+b}H!V}8P?R3^5;69;T;MKFA54a*n!0b${>XA}FdL@La*}0q?7DM9JCaG% z1!#RDlmP)&?n{xkK6S%5t3dzOEH1QYB(B>-MWat|mNnmQuxz8ETQEtz%8%=r^!N~) z-*u+IP$t43e3+uQgHvUjVb8VfjodU}T;QP!XS-M6pwG>8LpPcrGfk0vGCh6Qsk0=??i9ZvuHI>wc6h#}*Ao6Nt=6OAp2fApDORUW6bj3W z1-o{}88{sEJE4!SqTcl&#l}ALoMvc4PzRH0sjQ1DEHnuMM$U=x;@aJ~Tuz$!iL-?o z?faz5B=Gst?pw*3o4Bq=o#*a#<661{YDn{7+Z zfpwFqVYE*f*H^0h`6Ul`nXH>tKUYp!pAYRgDCS5~@%N_gbf1Y!>hhSK=lhayGkm=x z!=l%}gjtj$deXN&&1~<^SKeNw;Ezrtvr0Sii8Y?K0kiFyKtI0HfiT2YPYG5e26}z z)_PoQ>wWvK-52u`S*6?-{MP%MdWl7``F9=u=;;ayIO1-jT(U5#ys#>mEOR%;^6Ime zuC5b+XK_!8aTI|#=_1mXrMnfkh7FtvT=jE4X!JH+i@>57YQdZxug!&yRxaCUu&NR% z-)Ml!%S+5|Oa|um%==5k(CA(JkX0H?4G5KOj`GPVD=&z9zV6v9<0AgC&J(a)Uydrln+WW>T+!G#>$DzJepNi$%bsKS z8K1G;EH?$)whZc)Z8dmM2Rj+?k`VqA)xZ zZ5~onMnK0{+aQ1Zt>OnyZ3c)F9bs8&hBDL`mVo4b^rv%oP%$pRgb*aI7=W)c&Mta9 zmf|e8V!1`?6glyt{$R0WXhUhZ)AB@r^J}s1Pp?eb?xFlp3tt~=T6B15-ZR_DBsRA| z=@$@I!Mx=kx0oaKrGD?1$d@iZ&}iTQ;+o#yRc_I@vZ_mqXK9UQyXOSe zmMAe%S*&wwtf|Lfw1+%>$soph^xHx&Y4%pgn&R~%QvEbjy{*m_0ot97!tTXyFH#HM zw$tZxAqfOsGsy{Pzi||B?wpfm`0|-Rx=j!aP^kW5jM3|+lP)n->nMvqlI|bMe523O z#!p`$+)Jc9=L{5R7Mr9zGsBhV)AM6%9)(=YuC8`EHbcvCfn;RX*{U4WZ7DGZ(o9AW zz4IB$CORxx*?Fw%+!rAfntt9*$q&7jI6OgJrV%R7J{)D&=zYXvz2b(xG=CK>-B+?* z8e8}Y{Xdega|cr|jh)a}y~BQV7n@ufH_Z)Q`fTBIZ7pGbMMayY={`nr_ja@`>4jrn z3F@)9RQtuHlM2@we9Fjucd9?xw2SS0F<~!bW=F1G_s_Z)pcY_SbF#M74ObgA^fhBg zjpU*}+u1NbD#L5QHvy!?@Hcc;#$g( z6w>Ypk{jB|@cBiI$K~{wlC63!6m1UnmJ3gd3aN+noOeCJwpl>-A)Xw5PuF4WpUiwv%@WTS-T!0C zf^_w3e|@AHt(8=svtn}f=AG)dgmZYZv_4G0^cYP`C*N0ei`U0kU9w_~k7c{MpF6;; zyCm>R_T!LUW`W6Ocgejz?YaVaf)kx3Q)A^865$Qa0W*z8tUuKF=M(z#aa~(ULZh)~ z$bCIzr}>43_;&qgYcRi2cpYO+091OGvtx4C1q{|&{f4F$)h<}z&FUvq_DR0`# zk#Bi>D}ubC4OpGwJfGfFXt_3Kzd4a5dFyShtKlclJ?Eh`4eN>Wi(m}A!tv6ZtbULj zQ)&gx{RsHDQP;ipxAK=`@pl>t@_KUQypr+@&p{R{zvgJgB7@raZWh*(q0t6@-0J}O zm&$fmWL>A3T8Y)=6J8YZ!t?J_f$viN3Z`dT<5lLf-jSD+rN01Xw-=w5nmXK`yw@)bgqQo_}+Q5xY=e|4AsuSephl7snH?gO;nqI`Q297RfkYvocb@TPNo63A_v|wMlt87iu${_b9JxRUQ4dyOJOFYs;{sR6E}U>_=9HEl&Y!E+?H!= zz?_bZov~(B&=P0k($0r1?^2a2+g@+RzpYNqK2M(<{Y`7$Ve0-%X!3^G^kD#z7$g_N z&?oi%jilVx=pzat^NKddOTrCX(no{LOdnqV4VDVf7qf6m%0=CB!!6*Ou5C@tg4eMBP3G*S zA*aV7vipx|`n}j>z=bwQsOBxWH=osSATkNYWEGEyvOM3^z3iD@yfSAh!x3jS)xXI( z$NcudS}dg}chshzY%v__g@WQ%J zSrmRW*I{JYlvAjR)c=a~Uuj@{4jh`fbZH@K{X_ z+dWveJ$jtG&+MS`nGRNDEh7mDLi zZ5B6~3h%L@yWlZ5Sun=tBBQK97BS`gEUNB!D1PgGVi&WEvB7WDIJy*dj=8<5R^oYQ zEQ@jtE03J?o!RVEqR*Z>L^Z8))cer|MOlHk`v;lM;IZj^Iwj;+!>*@iC|g?}_?bdg zOs<-Lw4Nx;SO~~XI(UTh@b9#TXa0cfEYvYd5p?Rlv9j=3GSwCrT7Pn=)a{+^U;2uM zWRJNS;dp@nOoF4QE}vZnLG(|PTBUqKd;NYdpjg>=`BK1 z!GZ`A^m|$KAqyEitB}9(R%U@ymZrVO%^4ZrMq|_q+`O`3&0@=>adKfUEVBWT?zyJ# zc?`?)@Q#ldi&mv$nuC`%Rv~k&6DtU89U*2C>mAvH2lTGfXoOUB&dk(R{#b4MD}&8{ z_98$xC-UT&xp2SHJgI(!@V6T-f8%e{vx;)O@1QixHVcgEi*C~#_wbYm`C3`7Q_5ki zn&ze06n+2L1!7K$+2i^RLY(2__T03o3FYd**{)-F@>{{OA8#dX15TKyD^_8pM0v^_ zm#WqYTast8Y#=%Uh}XyRY6sP{ACudoH;LJ-xAzb17C78ne(`XxG>$WGL3A|iIr?~< z|KJeByH!OaWi%N@wqCd;5qU zuIH7HC@G=J!Y~)loVyh^%S+04$m`4J8wi~Uu6=a9y~E-8p39z@l0x>OSt$nhr&|N? zZ6VUvMPq6WHpGuz^~)LyD%Mo_Xc;CuxnI0xC0T35@{p#b8+mob%B=*qSs)@ZqQAc3 zuw^q>VMq}f+AtZJeYd_YSZXu6CgSHzK-mI#Hp<*YgUy5qc5Yd`7pI}b!B#f^2qX+K z6~(=oka<~t3{T#3}_31vo1J~DM zY1d*jLhvtdpAWBhjAj)KkBY8l-Q%9WH8z^->EPdYJhksQx6?5M;e^BV0HM)48$Q&qi^YVH@j|k;6XFTC16o)M)CtSkD9e^GK58A20g)LcK@Rs=96o zu!%r5!bI&%3*sMQ!CIMd7z9$}@bGb;Hx& z8#V^`i~ad5xx9dX&d_G%NJn)~zB)Ti_vNo}{(Q0Ae(d?KWR3ug(3)AJXd+f$7`h~JJ+2vQ{ z150f(>)$V9(8j&wdRF87h7^1J1t`?}fEI9Fsb(Nr@#I!Z zP`(E!FGR@t^BZ29^@z*6s8K1$7sgDnU77sOKr&&(WTXlVFCIveGi%)!JH3PIQuvvp z+Mmy2_FdCdXE$i9|6GoHsl+ktz$qdJ2Ivxt@@s?SCx`EQ6%{S~cAigP!mwm?blJbo zc$^7Wnn5%2F-z^r&gX0n3B`l;ukTICn>?d|_sx<*3EKGrg`%QOv~9wTuf(bAqAf*V=(i+d9?0ExfztZGlcbw8Z0|%}2@;>a z+PIh7Cd^Ncl_{Ce_L6sFJaP<=G*YTQ$C7&l$E-)geNQg!p=45IT_o1m$M`c`hClyU z|NdJmps?L@nSlf6XBwS*HN9mHPK=4pGh*x^0!>F3X5|eOX7JAHw1n6xt$mvf?!H{( z6`m1-P*Lch#wkqE9!b#YI|qYI^Thc;RML^;#wnwqTZ zAaCpNGMz}(fvZk5LAr`fWA<&G>~Xm!y$q&qThv%Lk1OZgK5$CSzcy`Fw_4`ISj9=| zpXAh%EDpX~=R)KWvGgK^j=H}r#!J(9xE65gtqgD4%?5<&GholfP_vX8E8nQ_XxH#A za9vmyb#)(-BLYr5nwOVmbhoUq#?byA^;I)DnG)k0vz8`AhoM^;Ht>Nd8R%H(?cIAu z&UUpfVt6EeYVVV$y|_@uBCGEwrh>}+aNkQJv^IOVDgx+>8o%YKP1JjpUeP}J(x!_n z+`IEt%A;n&gu40fS^*`FWe@wEFu#u-DDjt;59Ndq9Zul?vy^z~Qo#J0y^iihx!ZVo zVqJCato%@Wv@@eXIPd9kd&lcJ(3C&HW~qK5^88rrmkM@UOaIES=`xrdgWy!Cor5}( zjG$Js3U#b*mu4h&&FZ_E&Phx;elaP_J8wc|dk!93M@9)~h`=_vynt;E4C3BE2dQd5dgZ=G(X zquxDphff)hT{`=7_-EG*vHc{*yf+umOPGCCkt9O{Ocz_`WUS-f&~tC@+-BFn>nbB1 z_ebAYVBEd(`;%a`NFIaxc0-tCmiMa4jPF&42CNXc3l!gH59<=^%NCo{OLnXwKBqs` z)(@6tT&`GlB;C|rZMfI4wJ^%u%1w-?Q)1~*5Wv0=kYrB?Ym})sZ`d+XQw#CJG7nrx zHyin;61-9Mc${Ql!Xfxa$4O1Bac`EK!0`I`!tUj(fP3oF%AI^78RHvIe-9jRtY{@XtTOKZz&$IWwwaB9VhkD6cZrU)U)uUFf&aGZnRelLBcH+z)Ng}U#=lrX&%U_Z* z?U&a~;&KG2l~-!J0KcvuC>CFh)s9|b@KSOmM7AyzC+gbtvWVB|UVFXaa)3;G&BcVf z%ud^-&wf0qgs`#No5tO5)A34l>`k*$}tr6rs zBWFL(d_Za$QJu`yu2rqNIR;Ph(p5BP8M(TIG9OfTZ&;g8seH2xJHsqk7GHg5$}XQT zr}&y>`#>ydU0wXS@QD-tzmeK1hxqES7<-O- zI)?U@sf|oegk*oO>B|zMtl=9LHh;7QR0Q-oeC;c8v~XaBVhoei+8atg{jOMeIVFDN zY?Om$WwV@I$wmWpIY}2bc9g6yYuVO}SD{@UtbkYBD?meoV^}xK%pa)Ms^qf5^J!C> z;!HLT$_xl;TlnM=mfyM~!d{$4k$J{D(xaDpO`=V5IP#b_rc#4_Z;?lI;XD50%-1nv zZ%!u$)fx?Fc})3h&&_%PgvV12saZm08VosXa%i9&l?iyr2IdXwd>JXV1m*yVj? z&4NYTyuLMspLMvM&(x3Y$UA~%y~FDF+4L8~FKh-|wHM1-N+^AkjKq&}S}w)<_<(Q9 zA5sOV4>@?>VJpNL`>e>%Df`FYFq9dY;}9he>f2QLji=#C9({J5>kUj+Gpww6+py3U zB|nm7=1MrTB;DDAY0b_yG?!J44W`Uh#Zt03XEzj^!a5{DrU2xswtFWvK43v{3x!Mo zARQZf$>Sb~M{Z)?8zXOod%$?`F|40N7R(mijLLh(A(LWov-2<4!8rE9ihZQdym) zO$YV0*i^o>R11x-beVwEW?-w~(2fl`V`Jc`fuGfJQS5#91e0Q4se8n}8a|Hf#x>sa zrlIQ~?djUx-VqeAM(#|tDZin94uyXQ;abRQ3kwv}Kw*ZYFVrN90J?@b?_Ectv`&BV zo<=A8v?8mDvs!)9;0LKS`L+;NbT@JE2ZW9mH&_peEg=rHXSNFdeFjHU;_r} zhAOE0S243MiV7yTa&xZQS~0aoe>KX=b+BJs9Z&lznC#pHJ@6Rz;*klh!bBIN`^DLV z6B%zCE!c9@Qk2@pCeGg04e{C<*R;6BhAR*l*P7=YucJGAPV-WhR`d}z9}#k)6X6V$ z2K#g`Rtp|?OL$P7H~YQlv9Z9ertxX%R>n1kp{TTr3Bzws$KIJqpQL{50U%OUr==xB zYY{cI^wxA#)Ti=ti9#`{+ z;p4)cQQG;~gX+TLf8eZaM?-FR4-ae<-%sg1aC!*$W*TyMCU0YZY|J5ecY#gYr#ripU(HSJ$<{_Wo6S; zFXG`0-(u#oefK*4d@$p^%j&SyqPkVOR;(!7G zc2H#)m=dxOuR5E@`y#BC#j#%4-G$s=SZ#)dSV$?oJ2`)&N4p|m!Xo~Io&P|;OW-E) zww|ri)+Ld8>dBMGA1ax|Nr!mPx$u$#ljht9T{bsaBDd+3A$Q!mt;E<%xl~#O0z+SsgoN8ME1sXAYi$DvJ#f zp6DjAvWgc8+O)5UR6@kJnf~-;o%!@j4OszdE0>j5q6Y33uA4;;*_ph;PTCwa3!TXi zJWDfdDLFAn_H)bd@qr<{VlnYiwPw{QaKaVi<8wly;Yid%Y+A0$87)P~8|1(MGFeGo zlOqn~1t|I;Q44TUb<9S$%ToC?(2=0a4QPykpvwZ~W7%qiHu6LKsATtalmVkqUgq{AEMRJOHULhUlA4=AQn63^CIY=xCUZ*f-h*tyC3ntasqOo8 z?LmfG$rCw@r*#UOrZ?w`&x_|strBv%$3^F7svnPw4;&aD(?>Fj>0G(dONV*`Nz4K} zT}gR(6;pby|3%uDKvTJX|DUc~eVda?<|0&zWXxOios495^hx>v|Ngp84S zipxn~em^zY9VmoibsV=pBnD+juoul@%sfHD=r|qv>8L78TkL8Oqs`z`5 z-s64WPP!&QaLL8>-Y2%X%L2`~$W)UL#Nfnx49aSPEH1(ip4%yY@0UMqp2Dubq*t<6 z+NUG0XIWL+Cur>y?iM%Rg>oVYcWVzJ)NAQ?;jhP#X|qr4CUw2im#SqHhO0K`BZa=g z5=UM1>}ld#t?8H36B9XPb2E`%c;%|BjAJ|C@O9u`rqU?}(){);;xuUTx?c|#+6|oz zTS$Ajakrmb)Km4IpG|sr37>+C(C!Fm>ukvFN>zaT00!!S^Q?Pcyu<(z0o1l*AxG|} zdsB;{!Hdx%Fyjq7E?G^=Ia0;tjKwu%jK$U9wB;gs&UfNE2bk`OvR0lCH=mIiImQzE z+GXTgBuj5EB}Dn3sq+dPe{B-oW<9JJG_Irsiw4*-Jx*qLEWxMs^)Vj5IB@WSSqw@D z@;?`yv>qw$-c!MPfD-bpTq{I{PIdnN<(s~=T%7ido5A97;bfyUz447qj{64=0Ky1P z+G;Y`=i{qr6yJe7or3>F@G2Fuckr=To0UXBu7@+}efrh%IsUH2atlY=xz?CO@$N7U zbt>e)&~rNoEu$Q*)$>m^?v7~I_LJT&8G|oJ&_A?GD#gQCuc_V9@FINjlV@YJP8QJ5 z&1SLA{lH=7bl^arfu1tHBBP*0{*P=dJbbu~3%5 zWZm2$+y115OqYzMhDY6bI;lz43L^%e5)7`FOhWG2Aijg~b!DuBa!~btc80r5CaFb( zG0G#o(tx&&&Po$n4gyYAjK@E74cPKI_mNT&J{LC=%!8H+lO4%mMUxBK;OgYxc)Zn8 zN4>f9HP@1)?Tv?YF1EnUi7s3tqSZ>zx4-`kAtzN@BXK*+ATvpkxi{I}vsEtyr!tlZ zyY5Z-GLpBXgLOo==%*KeF(^*$=^E`y zqmZ_kk(wuZ$VcN-THkv@{M;N1C*h%<8m@WhvEHeL6SfysJA)iK5;d3z+4zMY>4#$H ziJf_QoQKc!JA$i_s!3QzE?7}+py42sP`97b?DA2A>}-}tV_d-yxEU42>57asl|3Fj zF*MWbp2EvU%j`aDZ3lC(-GV%X;41@>Ph4>!hnDE zI%4hteeN^e!s)yNh9gfXdxM#htQRvH89qfTuq5R2cYot4SEk7Rt2>p5v5}4WM@G}z z@9)YL_Iox=y(h@CQ7PXeSfAxpJhhqucy8&74tqNxj=gfZsm%7TthDLY@OHx`(E1eR z7R5Q2@u#SO8lFS!cMl(_*j0p1Blii>{ypKOb7>Q?Xyl zwrUL*D>mdo&JC>z-|yc}?GT#X$*9tDm!RH)lowyjUgL1%s!Q!s4EQ#%8S!}*CXjI9 zBsk(0Xdt{iQI?l6xsQSL#!^`OON2XxKMeWJ-UMfK+z|IhzlkYJvYH=4YPP7GMv7^> zIv8f<)Yo0VNONz?f>=eOwXAl|9IG>_&L|gosYL2&)8gVY3_AyP4;X3%_1+N*beL!C zcR8{JO8ZX?c3TwPxW`;YCY}k_qHN^5$4w!7KS9#oC*8DeY*;7^c%A!zLeSHTX`SQykdnuXYS z*+SV}gTxdfUALP#pH!w8JvV_rA^WMRn)%|~%y8{z6Gt`U2kJS~ZPCJ$^PMzG-VSE{ zl#`@dmH}ycy%&S+43v~f??o9pmwO^+mbe6pF3jI9iG>IDbcu1DYx(iA0G@fNXQ1Bw zO7Ajm34JPD`R>5$5plyM#+5b3Xpe<4d5`AU;t$%RH8t$@NVxO6?^m2vqImfEsi5#M zDx%T2fpD4nMM+77b?l&8D1UGcna*!&YxIwAB=6FIp@(1S&Px!4K+O0YhC;`)VAa+cR?Yt5#-QFm zqvyii=qgfA=PHsamaz20PSEhaReM%hBDST5dEFy!fd7jWpTapOynV z)lT7^c7@$iAmdfl#}0)OxB@BZx}sVge_{k=kU|vVkqKKxB=h;R{4=TS{6(KB9KZWL zdlYAIy$G@!i@sc+`jwL#DL|Fp`JD#-ofj0!jOM(X)>|^ALhDItP);qR;nH&|+xb#_ zML3&S+e}*}W)kSLvY7P=E1;K=wdqN4hxSu~mvg2;UtVX}5&{qGk`j)k!=y(RxKkgL zc7opuncqmdbmCb8D+^Q8Q@m5{N`m_77AEy@xSzY1q$E+S<(4;Z=>N@6F@f|PzGDgZ zEk|!2(wNC-Oj?))B{t$RGiwzHGC8f`h>kR@fX{R$C8fK)y+B|Ky}?}eug6gw%i61a zW(TYH2zV_ofb7|9V#zv6;^b@+3;R8?qDFXi&QJd@%9xa4zs|5{DYh<{@jk<8?MMEnAql58v-H z@#l_WeJ(0WX~r8I6RTzV+3za+S@bi*bNJexmrF44c@BPJWMeE4#}vn>rwatV_+4rS zSyI|S?NHO)OtZMSSOYndKvU*Gu~+aYa5YgMI&`RqlP?h$)J~gdcJq?jQIk#-_O8~h@)EZd3hjA+WhPSH#84uXoB|&+srMVL_*`Khh_C zFB?KRihriH>c2r{7Ep^$3(U6XMQp`yL&lk#M!PzlDCdEERUaN*^LPt6Hg>aTYBzs}TgOx`Mkth@Wg^Q)r-@l;U_M&V@zVC}}s$hGl zryrhJ6wqrq2-MwHZO^{!A-UjkSU7>>VMp^#E_azi6Xv&Kl0~VUM@c3)O8$)8A@dWDEJoD z@m+qUlHdrk&IoKde!xM{jPOn-l81_I#^;JOc(f=o&;T;%%B$|vuE?+7XyQXZ(79%k3*FR2;FDu&!++T$PaexFV_KQcVOX_jz0Pi}|SlmJlA! z+A(G)PzVGsw97ND%SV70ajZ)(c)qO{u>DHf!-r3&fwkzfINc)nm;eQWKO+Ku96#Z; z*sEAH+{39Q{3z!G_ugO)Ds@r6zM*THK1Ab1XdcSfhEX-Bl%UmV7n&1I8jhT0GdJvsD%W8nn~U1z<3rwy={|S z`S|q3_beUb#nFaZ1MN>q{zM7s|3YSCgcpp*)?xR5@bYam{vdF>D{@VFi>qfa{%IJ;DzbjpCV-EGC;= ztVS(a#1{MQ-yI81I&){gVU;K)(}HH9x3Y_Mdwnd+NEU}yO=wbmk^c3ueKsC`0tWZ! zp>GGt2QKoMM%I~2ojWq%0IBO0%j>1I=>g?^ zP7A;pR1?@+Ot*dD75A9zVGL_3@W#ar!%p=God1U*ds^tZ)?dj@CJ+foYGZ}_VXvQV z?@WI&#dN8pK+EDsn**Pt`Nrh8mR%g7xw)d?(DU;17c*K8QNCuhc>K+mJM3xd7AgfunSj4fU^|b!roWYJghv%% z#qqaqORD`YZjd={JRg<;p$s}?TmitT6MMh%TbbZ<>sf34Cf%hDDh?UGnt|r_t105H z4!2k5@9Z{V;a|`hjU{h7*IwI|VLtQJDQ2;m0(;MEj)J2(_K`s?nR70}`a``B(m_qW zT>R}raN@G+mm>kuOK(mt?D|Tv`Js%y&^KDp^o2Ec5Y-yJm~ZWLnIFmKf(PlCXE3h5 zUN;MFwt#KpN4r59Qyd>%JUInh#h-Kf6CsIx8(H;j;X={ z&Z2~qe)5I0P+>%{vQlr>6wW|7x@hCJN77{kYdCdtD|%&iMuI zTFULeio(H?a&q@8E!zw!<$NyZj0aLSYKZ@~LS;DOODq?^&|WT$>f8|pr@z?P%YB7X z)aqUW6V#M7_4S83m!{H*(5(QNBT24OiCBnl8xXw~-K21({&1z)14YkMxRux?euJABflF$bC6;NT$_6;AvBa38X7WO zy?PaxC>@(po_z1p1IB+>AciS1X;i0%r+IL5V4$zhKAo^QeEyX^@P#-xtNwZieC$HN z=;diL50u0723CWrMB&caYe0A!d17))58U*65it8~PoD?r1_1`iP0Ap;2zNuhHB(M} zOw1{z_8rSYy)-s*Yn7Y&W#x1}aIxI)(%({}iYZ`85nLa$@TxvF& z89ul>ho@4l4nT=&^^tSkU{rf&|M`4uP2KE#_(2~p&3OK7%d`!JBW_8Oxm(ZRjo{J@ zBzROXjb;C^dugG0@Xuv7-$bin?3aspsBP2FnQtF;0Zu`wLJ7e!7vT~6>tJ<|prxo3 zI1D(P8gx=2eGgvZefMtX^0A&r;`7b--xGjI=R9ZTPY=PqkXOl5;-o?ZPNhC$}eu^l;c>UV-Zhi%vTLU6qNWJqOP?6(%X1=T2k8$z_kUQ zoo%PAyejb(UNUUz+u4}OT3?gjpt2)~o247SEYSTa_zXYi(Am(c z+M?3L`k$q%M>XbK8bd#QGI}=etL@?dlHQxU46Kq6KwLI!$TN6Bq)P%q6WfN#K?p0} ziq>N}7kMp^cKJ8ga`G2q$7BMo2#jdE_^m^E`ni)0pcBWtD-5iSL>4E$ONn;|%4I_Z zV6*tw+!dX5TdAgM4+{!6qC#^B@(YSPrUF#=ow@?zOMV%FX8;h@NUQWm2?Cyn8+>}& zhUm!;bu=M^IW)_nt1&Y0Fe#scGSNcG9BWY@yAAy4l$XN;1NP-yTv%E8YqoeQNufX& zI)fZ;Y$w#+=X`NdMCI4?RueU^S_1K|P&cEsKujQyBIJ;)?Oh)A*9}y#Z9IsjXQqi%{b0XjFNg9r~}o53T>+ z?&-p{2$^W2pHi7So~szuRPG2fTuXY`x=-MYP%>x2Vq-H^^7qcE0}hf1z^JLc)50VT zSxBS~qsX@t0Zu_=dEF0pNwP30{M|!AG=5aYiIbv$12n3)Ka!;(jwXugvh0|F?HwRG zL-bG2EJxZh4Tq9SM(UD!ch8pNOBiqmQ_|oSH{2YS@t?i9qtF~-=PjzUr22-2l{1q) z(D>Gi1&9y_FZ^UTgdUK4JK)7gt!{iXB|V+GXCY9u->hJ0sM31WLLFOIZ`QBf{df(d z;LO&vfU>{5W&%1zQAr|7ONXuahteH2Rs3=hqh*fL>IMzwb=_oI+P{6fl9nK)Z#l|P z6KB3hn`QCrg*Nlvz`L#NP^P;#dr=SHIgI+l!0Dp&vE|*ncgbm%78a&+P4B1m^z_ci zT+ROpRGagKsg3vi5B=vJQ24x99Ms?{n~k_0?Q~s3goRT>MD*dcczcK}zSVnr-03*D zLkLfz^QmyD%6aqr z$Q_+K+@G!)@fbH%hq*@|S@3YfPifSgY8l^4Dxqp0n)f6kpO}R?G%=A2x(AWaVZHNK zD-dxfr%Cg?GwQS22h=OJb$`lVL#KrtXXbISg&+I&jbxLG>4;#UYTT@ZsxheHm_$LF zuusCDzQ5Ex@%sM`KBUSSCyA_WEh1#2T(*3a)isz7+Y53gcbQzhMShmE0bQMcl7KJu zp!nl~cP6YN5)PMs z)q7=od7Ot3Cqn*FojVC2rLC$sIO5SppzRbYHMd?hm?hFmJDDF+SAYLbg<9Y=`9DlJa0!706WmVz#h(kk6LnT@fV#e#Cj}vH(AC!)7>bei!llm1Rmv zp0kh6E_kYZXk)rfSVIaz!b;9UM+Lyei5muTr$Zmo;yH81KAXWd?2Z&)d?G0cDwM5K zbh=FtPD3KlSIQ1$_6E7bIs8~?*}Z?k zACu-%-5!&cW?IK2+0fYNn(@nw)w6V_YI&gwnbfGGEd(g$WWsNeVl@^|K~b|tkElL0 z111Gc=dim#uWQ=|9!2PsH8DL+JxMRD@I|II-=?y%@-Y@$-qKiIy}!MkNY|e6LJ9w3 zsAWoU*~w0Dq-#K(zxs#Dmyw?#R?K@Xu-X$(_3hb%2VGG*8CBJkw6rqY+%3PT7#T@z zE9PIrN-Htx#i=-_mUrMaBb!^#;lYu8tY}(Kj^ottBBknr4#rlIuz1F)po;FJ=Bd z9v;dN=;2F}N*GngRP0oM7PqE~TLqy(nQ}He`k|<|a^QJOTN^#BC5>`qEu5;c>8XWA z*jQp`BGz@Q5r2ta39fMBSK#9H;2~l|2V)xwGnZQT%JdN8TIWaZ$P)`}e#=?1EU?6T->%(YvRu=e2 z3l9P;2BL*`gSBuP_8S6n1YxHUfg+E~Of>)J_tsWAfwpIt8uCy{xko7}mtJ&6@v6vD zTiRgPa(tA7IA<(fiJ>JU25`{Xc|UY}eGwj~ zU-inNR6BFW(pAi!JmGSRi1GyCbC$A)mM zapOkX%!aWVbivRQp2(pwdqr~hx9X)x{9NP=$rUdW6H;A?s7V!Xzn$)H`~KZ?@(5r! z);CpERf`=%%utPx@}pNi)3}tv(vp?+X)1T#B;K&_houv?-JxtvDi4B)u1IA8yusf{6SDHg ziK)~G0zn+^d;8-gn@|B^hvs9M#K=f?uZ0pmM^z?>(FCV8?fWxq^o`$b1 z;mKg#Z!7kyf+Ojjzke7w6hgwn+CaEi)9jZ$-hnDtndYir7xVp^2Hzf3 zN%MOGoRY=mu6i`}e8%UDV1uDYK|7B8Y>pKsYj5ndil-^}sxOs?t@l_@&l%#aFn`S3 zg8qWWxNm?QcXWals5Hx3g821RF6hdEVgWJ?VQgo(&%Lbg7Xr~!8J3?(M^>4=J@{fc z^o+iumZld5DA-&;PeUK1qP?Sy04I+E2?g=0fyMWX&*tPH(-nhOltffYr;77Oxx*{3 zkCwES{;WGA($e?=S*VJ$0)o=$odo@g1&kqZXWHB=XH+D^2O+b7+tRSWI&;$vg zkpNfi)_(*6&hg-7HMbU<-?KxH#OV;VO7~w>*X)aniy1n^!F1TNoqj*)%w>AQOc7Ui z&UhsqPH?m`yglh>%@B9*YCMQ9DGN`g@;dkq_Ff@y`p|)uGSoE%021YE2Ggc%Ov{B- z*B|InpPCU!v4p*4rnpO{(XAGX4=8(wpSVxj6aEN9bsvMOLZ1p?Te51?J= z^3wFHR_F`l{Han18|ebxRgQ2Z5B-W9 zvT)(70z-DMzWDez9z$qs0~W6MT#ajT8mRA|w)J2JTI%SDL(^B z)Tz~;U4XuSI?seXOA84L<%Gi5ViWI?ePh?Y+#eYXuQh5Aw*HTti7J|5T z-edYWzmmQ-%<_q7%cB~aCPXc~NxYNKdXAKthzL9yP zg2iVF_G!T`b^;I*6oM2uBaaxARaIBie^_SbSYV=xiVC3Ui7r50EslLU>MYQ4M4-b= z8w@7=JYK{5CGN*2W7^_Bk>g%@oQtrACcD5 zvXy1?Tsi09xq?!~y{{BOvlc2>k>6iGR(E=xROkjHNtfQF?xs}iAo7vHiRXOu%m7+6 zAds&Fj>`a^2?49QiB*ax{A~G~+b|D)P=w|n8QQkaVC#jjLlrUg(M zdA~F<9GMh;83=}i;Xrg`F~qkR_KA#1pksdxPetklIJBKWf!s`-?+bHv$&3I+XV%)< zaoE7JwN(q500?45sAKkiet=h@-Ob9$32N2oTkjTo`@X>{Ngb)aAu^};M}`7|tY)y) zlmn0_M7HVd=7E+Ag1|)&@u#!0|J!`Tu!M&p$A(SB_1;Jawb74?rt?7tU)DDQ`QdCF zE&wXL>#3YLg*u59-nAjmcil|a z3>@r)6b9A=&!*iUf~s46Acwt@Ro!s-j9!wK$#Rs-)o_*(ix6S>XZcJ6GUJh%4Y}h7 zp_j<&%hVEr$_MM94t^yIp?$GkIB)z!&Rn>2(ln#eR&{dY2hDS}{5x!HGx2w?2P`Lf zZ`}tb-NJxtASpjN$To4;+SSfBL%iq4eiU6tg>8>V<*9WRrz+(a#_MB=L4<>1isar_ zXZ=uQNPn7Z&|xKCaPEy|P~MWgtF_71w#4!EV~~z&fkIQQAw9Aie7?h?6X{AC_`;sX zIOje7x5CdKTf1%kpDZ)m^L^Kd#-!**{jWntT0)Msm24HcQ{CB{=!Osf3-y)q-AZz! z$QuBzV4P$jeFkgrgaf+=(iOBneD_OkSi248hA#R-sfVGY06FgAoWybN5 zzu|>)Wwf7f&Y^hjL;mo_E%b90NDD?hdzt0H!;JDJM=JWC`;ZmLjdSQbEs*PaS=aW# z@U4D(NJj9^-o17W8xKfG)2xH=;2GSGyKE}!ZQhEG!wf`;iWLYAiB37eAXZ-==b;Q) zvyR{7s@r*js&AL+@R1mk4tN$~W zydgq-Q8+9$V$Namca2~HS@JL^*kpHLF6%9yS3-d<$ae6_M$|>6+FdU-#dFTT(4Yz@<$x-sJPDJcD(2CJK7ac2G4ACF&Y$tnrv<;$SNzchGAcn+_ zvqEf+hnnwg_Fwk)X2T9wdpOB+81i8yaQFB2x?*s6b>i0|Ay@BWSBHhcoZv$-^y91H z1+P@QaSa|;k5b8he_^Qb?@5%J0MPt8NWVhQ2iFM+Sc$o=W#^^vzMbm%5YA15QuY2V zbexdQO{#&?P9>cumC8yqhO=A0howe`^0Jd3*;f-?EFJ1@ix0hdbWn6b8B{t4X8`5v zs>CxR4&-68orPiV?9R9}*!`Wl%ITL~cTNgQ23$oLqdCgv$lvt*8$@8M(Hckx&+yr9 z9IO!P#-+ihflK6XF^7J=M6;!-J!P#J6`k`a5e`zDn8sDs(sT~6pNZqr{G0q6&s9YO zR6rll*&96AT6^QB z-8z>!n*bVWXfBKJjIy$)J-~N>?X3OCH)mxk(p(f9Oy6)5$k)bB?KknfH;>j2M0{wx1D zD)l74Jdvc4U-HZ__=D;~fhTd~(*Tq0RQ8-2lbfV(JXLH%Bx2TVst!7ZlO^B4^DW#>sl;~1l-Fy-6%fH^d&qns@B`FB=+p%>U( zK!~t=0M+z5F=S<``5R8zkf;`+Wa&lP@%1GatEI*qR8o~TEg`%uc08v`WK1`V+O}9d?#+_3OPLBlpOA6;pg^?hl(#T_&M{^nxgjwP~>-MFDDr8EUzPm(`}v z(YTso@&OUk?(Im-Y6Fs!)t5XvY!B9drqG2Ft<)Y)@{Kfo?ypY}2D7rZ?IoOqY!V%%VA6z0P~{yNDc9~1Jp z<@KM-DzqGBie#zGPXPWFn@}2|0i5H;ULmr*1j*RVFd4hC{xe80c)z^D-!mmYe6idg z6f3_?&nzfksX&2G^37y5F*gqS$ro?TJ~LXr6GGWM?v<5`H0xXZ2IjyK%t0wtY27BV z0`c{cdcsIgvE)mv+J^9uIzFoNPV4z9Dby_wM0@ zuF>CZffK5`F&)tRQ!PTZ+^ONA8w);k0BJKvtB1-(VxMBm)XCzR&sowYMSe<*uOxhn z{Q93%Jo$URlBdemp++D`QHbi%!gt5VG1o84X`h41@1`*Dqx}?N(M%S*BV0RnV|FHl zaWIJH`t|i+Eqdo1ZQu81r|3iSH+Ej!O<`k;9hBME+Ss;PRhx<;iB(gTK84NB;#TwMLK%bebmiGO`L;3k3m zR7ETfTO~dZ* z8>3a00OZ!zKpOd{>$;BAO!qWKlF1h_r9p$JYjKXg(+DI=l7;22Pfi%E3t9GIn1d5h zE9WX~TUzpCU-T%(z+(%2zuS6d&mo-{@~N)b2-dem!PAke(pA6Y8}be_tc&Q*E3`0$ zPnc?lxe(99>MNxB15C7Un#)j^#yQHGJH6rSOW?Np$uWlIcXS?rUY9A7y_5U|WUld#+eh%HXa>xb0Nj`!kK|a2B zaP!VQ+K{66NWq*1BVb@-<({qF>f=qqo_i0;Gr2QFXJIg!j@ooS zX48X0+4*bK1$%na2`s{Mge++Pqpe21-M>~pdgUCUMbzaldef#JKasf%%rA&>!@x>O zZsQDZ>Oq@g|6t3lSIbgxV&3-3Tvy%dp0J}1N?J+_VY9;vb*tcLdu@u&9jAk%NzTVI@Th8&+)=3SokAw@MZq%qG$F0p^lN2s@e8m z)$#FLG#Dq&qp&fggHhbwkiN&qdBEAY&#+8; zYV+BH?B9<@Z@DxW_leDDia`EHO=BZYvn4w-?b?QpxFQ8; z<~*dt&;Yr#Pd93pWNv9?WfcIh3Bu5dprh@Z+a;w?<_o~_(+dqkKnvcj5Im=Nq2UiU zJ5*n3Qt$A1P+rGcer~Yvs6{gMoYTi|tF|BuW~Ewkje6ME&gHv>B8Plp(6u zl7eEVyY7-z3npJ5&13V&`%1c^Dyh4)`G9EQ+=e>Zd%bhfug z`Gf#QXPH%5b|_S5xd;tJaWmk6SYJmk*sz%9=H31$WHSVF_V(q)YiIv=*)XB?8J~gx zY`Y)!x(e26;|POtNQl2m)b<;%5K7OZXr9dR11yZV1yV@~WWtJOv_s~6dWQw}rY^lR z%7eSxx}CxJ#_2mBL*(n%r*w!G^0M4e_AE3Y+n(NA8At~J^w2d1%gXb;5A-@=qPNED zrJ(z~7_YcHZ#@4>{rhhvE5pj|%7v}VRyqscp`-#pAO~Y1g-tsBE*w8LdLw`~#tl)Lffd_VB8xj`?Ib686VGKL9RLyul2!`xf_kaP!O zNT0j&PP2cjE3cXZNul!VzU&YqOqqR9P!NikBu`ZYiCQXRQGD}m>vd>;m@!EEM%5sf z4}@=fI&`*YLkQAMqn8L>Hjkz{ zH&k;IR>{I|zYRYeGUEijr&nJm&OC|R5gHrIfz5`%)B%UWsD`M-L?*+ETX*tam@mv$ z;VWB|9k~gjqM|jOof;G4Ls53_Y4?>=^Wp`tKxXV&Kk51T`F|UYbF_*-i8GC=L(dCA z`MBW~OqYAY_xYd8`Z=WHxM7G63GRhZLTE6qIaxO*of{}pb?dN-%F2)Qe1u*G1Cq)vJ}cXh zcguL5qAd0k`+WF^_xypqL1dvgXbXrpH*ZQ~W23+TpPk+Il3KoJBCtL|C}(Daa#a?K zxdIv3WEn_tnhQKiOG}%a2C-TZ_#vZ$hK6{;yUT+S{`zGt*3ISj4nstb_5Ae0?08sm za?bT$SogTYA0RtLqpqRhZ4&bd=b*e)N_Uzzu^F3OVu*SD>^@Dk%`sbYpi|2za5eJz zx0VJLf^6C_VOv!VLa87$WM?;FVPV1SSqczMQ$HUBIWDVx@`b=Eaiw8E-Yu6|7zV?4 zv!7Zq@$t^^Ie?T>^}%JRXaU>l^knj;vOv<3*htxbf9H!D*y3~dP0sNQ;A|nhTCsC> za&oc=nyg+VMm<#k5#2z5VSWkpM9(i_-C8mnfF(%f(0A;;Tf)9J1z7r1aB;fv*jA$qV^Y0V5t?HMl-UjnG_4)@B)5&gg1bA9qm+qAobctf0&2t^r? ztqZvX+*l`l&K31}9Y6QI%M?ZuVA}FTD%vn=Ro8=Ndk%56@Z-H?ixbnt0Mm8$AK^jl z!src%r#rerbnx!{N~IE*2+|@|5RrD9?5s3B+;$JLaoZrueRtk&8}+)4c;YmKd>=xh zIjItt$Aj&JPBZu-=u5{4SEFt7xfV%8r46X{1!?G0)!vcd^F|K?@Jq9-(UXvH?+V(a zV3^zm1J;B5q?$M-z@m=mL-WQYmVei=y*8a7D!6U_+7?9yu>tjV_|f8X|!tz znhv40sML;-_dBp+y+GWJHJXIPn4hu9SEFe$XHcO^`nm?&3L53>l%5yE`l}+E6L*(9 z+HBr1YxXD@&m?9&L*EC;s^n1n5A>2aDf0w#Ru=;HEw7!xryuhmd%8DvuK3KQ?13&b zua#3JRUZifE>hFr?)XGu(A?fg*Iu>TFx@nnC zKG}o0taGPiv&>vU7kDzryCGQtD_E3gxr1~=2~;(Q^qqsgY%BT@t^Ic+Jw zQ{%scJBoHaRQAq3P8R%j4|K&IDBeayLK_j`kF6U| z3>QI>EAs1KXb1oa{mEs+>&pPsx*TG=QkE5#0e>b8t|GZH_4iUPUbF*rdDkH zl|niVSn`zsm$WoaXh8SCX03|$gMCDrVxe%Q{uvw%dALvS-)15I|Nj=`ApdG@n>!2> z8{?h5vGZY>$7o=ulVYf7yQ>$mTcace}= zL|L)to)CGQWwI6&HaT|NmUXcQZYm7_>lU%`JmA5Gwr(u1>@$p;^1K^FA~!1*n|N4+ zuh_mQI`hJnsQ|%+LA;zjjjMrb9d#B49_kHpv#_j=h-Q=hl_B zX19A6=4j$n<$H$ZO$tAKbze<7Qu7tYOfJH??UGh${4L=(a$rcoL>*fn z8l-M1-rG?=6Tn3<>BK-175ON~U|2W9>sL0%O1<`P(k~~DZP;0u8y8PGLJXyU;`M8v zqTJ>0^n3VpYHp}9YD-T$xZ+dNnsmrAGhqQgi)&OJjdP&Z(C}7$bZ$crxcvcZ@$p`B zL_>~=m2)B)?6cu@>&9s2CRga058A0{tZ#!SM~k-PTj=-;ZCfsTvmPhI45A#BTv}l; zrp~Uf(a}R61Tl9uEn=;#BZbYi+ws@5%;h|A6&og-F^YhB7XNCv)(ElPH9?fwesV8H zsFc6Qb++OGv+n$C8CgPQC{{n|-M&09=PhM^H$r9|&HBg*^Ck4;X&KWbc0JfGVIlJz zQ!QHpNO@|H)Owh}#sy@w?*lQa(~eeyY-nPh94p--!G3o`_HM<7Hf_bYiCMY~QN`Y7 zch}Q>^VCSysp)-k(|T}pjDRlnGq||1P~183r0M#E#l3EJCXXAI48BEvh5WTCS}w6; z^I>sdbLgD)!^-VB6Du?h`7Ay+>8vqdXW(HUN%Z{cs-h)l*NmLUq^r zN&evt?{)H&83}j>0D3xa`JmmO1}qFXs8%^y5iv;?vZ7Qa6;w2Zt^u%y|YBZRf3Er;5CA1{_E96ACvUC0D{-#q2h9-+E_jdt_tK4-{~#-svP8zF;pa zXCA>%-HTUAJISl1nG2H! zUwC&rrRVP@W@cJltE=QW`QR+M9Rn0Fdb)$g@$b`e{A&JPd^j2Q=)D+b$YQuuLa?LNUbnJpp?RW>eV@pHatYZKvN84; zKtoQpe)6gp1A0hS@`B>k*)Z$Dt?L`$mTU~g%1v-Xn?pCWAR7BA2Wci%i5%nyJnH;G z2xD(w8D>qlNjz9rhf}kmM?AnKl91d`tT#@f-|@xEo>mQFT8I_ckVtQ&JN}C++ zz3fbTh(+4PDf!$nW|>&H3q9_c-UEM?u%zfSpg3y?l^Y}DJ+L5`IX_AeN6FX-G;Wxm zhCoLVyBNtq5JDK*UHLED)zk~yGL49+rmM|rx*hm#G79E(u~_ZTf9)`Ac@kOlLDn-X z>7u5QqOv!52FA-Yu4RkF<0(m6o87QaCsF_ERBZ1BrMv!tXx{`7X09Nan z$y6X8nQYWxLRbal?CN?>3-Iw3L3Z$d$SU5Xg_^e6;!gs$cNkTSi9ltld1HBbxi-`o zK#zkgv%&auEr2gG31^@uDFRSXYV;6b`|2v4kk-3WK!Z@Oz@^)ey8deWK9`o3mdE<~ zF0#wgWF+JEY!^c{v8Aj&g#f>T ziwm&NN{tl&aKO)OqJFy*(F9P>#X=WE$e=%SO@vf9Gxl1X9-RB>bSO+UgHmv!%S(y>c+g-|^lfExzb*%5*<2XoR8695#o zyi;wguP*{o%_*qvoa5!?J(#oUijpOSgHN#7Hz2~Iqb)F`^iopBcKT-$PE6ur4=V#` zz`CobKu<3Sl?}U8I#EF@^@*G=+g)0P_LN%}cZUe-XJMb@jLpS7jym~fuI0C2*B2}8 z;P#j|>n15?@I6t(5tUgdnUT8NEM~@jaNqy@SB1rtm%_DDRdHA&2oXWGp*f2+^mnI^ z47RqoAWm^22<(kR*Tp&yOp9lV=r5Nio6S}z6|H;KHhcCj$hjjH4FfBv4AxI>?aZ1^ z7zAblS7<~`9hWA)JX?i8z_vM5A@1elL;VyVk^u@DtP)xcGFX6l!rJW4%#|~CvBRP* z!_a?m$nDrAEeH>Oi&qA=)5M(LR|<6f0m$yKFcPNxBm7uv+q-oAsL4t4y13mwRK#gB zojW%WYd&~0?6O|Xc$l=S3viV53=5bJHQClp0fPA}9@nauZf}o@k`Qi*iigag-cK9q z{%+p9NlCGNuM^Lk4_5gHutjbP< zW`0j=7%#ovTcJvTLe^F_Wy!*1o$_wjqE+!|!@+Ynp}t=PsHiB0O3#M*Z%}Mb39J_e zKoxLkg$BccJ?M^`h0SM`R3V2$9G*GY$&H-C4{skxUqRJ=9zPemuIlLM?55>?{ALR6 zuMP`PXITCXYK*4sc#U(sL?s%mzDK*jRjP=+nrh^|CLq5XE>TLfw zinM9ogqFgga=d)Jp}xKz2;0*hyMk8JGp>rSZ));QuLLq~2ttXW+Bix|tNAHs)Fi9e zm5GUB+irUlaRlg_2G?$)427~kgR&9V!B@9qhJg4}e@HM%O-U(y$A{gSH~O~WV-nwo zdf_*}mkA1Q9ZpomIUV9i8`>ReDTuWh>5AKu_3G2MzP**SA;R!R!mog}H`J{f4hjp` zwZmRVJTC_A5R5z15k}_JtOmPt9K+egYal2zVAMDXSj>UXk+bUMQe)LbZB^ zpoj_~PVJR#-K^tNbYVNgL7*3ryP%7mhO$p;W5Puq!z zwQsl%#xtflZ5q=07lZ#H1j_^A5jP~m){NE-rlM?(n?B79a%S`n_S)(nu0($ z!!jo+^d+`KspCO`c4LLzj3RBjfSc$tl3{XBYD?Z*aC z0|nPC8S82=-lG=0XLua?4e~*ti+^q?|0M+xYL>rcn*v0wyKDE!+BOgI+VlvalegB< z-=}-StQA5dBG?Rap?q#-(iZ0?TO;1_r(IuOS|omDaczt1MRY7BNN>^6%1)ROvWzQmt?p1Ff*kC^eZt4=hZmaYXI z4E}FttGfOX)Qn)eA-urZWc`GF#^(UT7ZV_Xaz8E$bzpl$YMNKX5Z2XXH|u4|A*AI* zT{5l*i*dsShTe_R&l{H@hEL5q1HCkJm5A=yx8VGk7;a5((#dDzOH^}DXRN-_->JXD zumRIvaF@b(`=dS83;}!+xMvL*^@{UrZ|t;ccv|sS{jG;}23K|;IeV1rXS&7Yz@3!G zHHU|jp8fcoGZ}K>71ZRI;-%bTDvl!^^*(z&Da zRJ{72*}ARiIU?hZwAjOMzV521#1lopK+y-{IvkKfM6$}QTNhF*P}PT25>H{2Ln&)R7E1N6jK;7RgGw}#f$EV3SOK`2KoRlV+e_L#1& z?oK5YdMKtdA4Ie;a3wQ*$zEHscE&tqEFc`D5ztpd^PL_fjMEo^?r;8+LlCDLZ(w+3 z(K^ueYM+ak)!fepuH1=RIiN@2QzV<$wC&mDeQ$jIy?!x^J#ev;92|qZEz?lk)$yQ_ z0Gt0boRog5h-&~bh*h^hCImHN@#siJv=wl%dS#8kbQILost&oZHI|$Nh6xd%T#)mF zGhC8jz4&|(LYT}6gr&JX9R!dCRHpVj!3s6(8z*K9Emvl*yI zX6S@UxZep(zz<|NRYqdU0xfj4K3i$-TE=2q+T=-eJk(M**Z3j@PsCLuG`!~U; zGsvC14b)h_L{WEI;H{B@0&Cn|z1{$$Ya(FNX0~`7cR*BgB*f+dk;%xuP6E{DWbyv0 z3~cRhM%)U}I&swWu3r9I%Z1EC+>I?>wpHa#J6GL<~vZl;$PBia!EpEQGsBBWK&k-qU%6+&){HmGsb zLmnBFz-TBHEM}Ev)`@r~{IULmhFbCgg4`&w{OMtZBeJZ4_$dr{z|tT^>ctj&XwDr+%ut82cWZKhA2Z&tXOk5X z^w)L?u7;*0qK0!KSvYM{JjXD7MadN#uDKU&fw;}RZyTOZEz6HB)pD$|2bx{NtW7r1 z9bnD0xfhek>d>&zrcu{8qe7kw8Q~rK;1i;6=YKXZm@6;Q?dzNFe=|_hVT*}9C$*j} zZ&Lw~ZMB?^@Sn@Hx@F9s8!n8DFuKR7)&TK=#*JLw+M_)%Ad`U^Wz~Bh)&omT2fze` z)_zTf&!p(jC1^bGS7m9fJ1nd>%0X7KAqQp5F%!3#7G(%CebRFb|34s4 z_2Szz25&|?#_rWMdP!O7-Q}(GD(aVRkT&ra5nQ{OL<=~`6Bp&)rWPx3rTtVF9*?qP zUQcVze_P$MBZOM_scyOI^suKxOqsmtba@OE*)Xx z1#Hwwu1zMuNi=^TtjA_H!N#R-6PUiggp#~upX)Q6<$d1o*Xwyb&;8u@{h%M~q|~cS4$)cbD6a zboEWe>C%rsZj-3|b5MZMOaY1^OhFc$*)Zmw&4Qh|fx))A>ek6I`P5 zpN1OwaW_}Sae%6g$L^jr-?s8_1W@Z__KVegu|rP( z`xZRIq+8L;r1HmrL~)Q2DM|SdMmUE4?4T9U2ZL2b%!sP$2zvPNVd+DLZ;I(94)8Vx zdJVtU|DguLYS9{4w;wpw}S0;6dR(Yi^^IqWe`>+L>^f8>^j8NaLgAivW*j6%f{iDZsI+LsGw8}D6m z*OOEVm65fXHvDkxb>a@t-_}mv)VCQ$c-mgZQ-uko<>f-~X3}u_IMsl)b%w%PI;rSW zqtqtvxP#Crd|Hbw!~L;JlSB46?c2XU2Zf0+2g8B!o3#DcPr)G}WrhM76zPdOwC>ZD zt+jAWIRn&VcDBnz*P`dPjeQ5kE_hYvFBW=K&04s0`NJQ1SccBroEy@{vZWLM!0AHJ zKpzH^i{#F;+C>b{H$_GJS`RRmg<2+S=PKgg#*f#chFrf2Y8=oq;06sKhsY30g{Y__ zx0BtVJ(9-;yqs6jC!R#ke}OF~h7^FsLQYEH#=K4NqN*!3_J*~-{3`O%FiIPzr0LYQ z_q_Xv3W!k={7F~AQ$${t^yiojd8w{uxUI$rl}a^!`5cM;SxEcpI9@hqUMwe*C_3~! zhPZGk#)OpZRO~B>z%i)Ub+aG~&WiAvHFqaVn-}@{R(kAWUWT~pEUdShx*!ip^0!#W z`7$cz21mG3jHjm*#QWkShI)}#qnuPP9apOqOH9YS&jT|2on)V<@G~7a24;uz&wt;BN;HTff<6S$gDBeGc3F;fsW*UNRhjk7@q($yGC$RMS4P=eRbXqIYZl(+tc~}wo7$R1+Lad zq^JbsrFA}Pl4P9MyccJZk9WRQ`bIApABd&!X2dym zc58Qjc`_%lyK{2M81_Kme1SoKY2)pjtH$r!W@2LU*fNdJ$QcWWs6`e$LPY>VO1{qLF+Fd(*93J~+<{$=++(TH(n0x) z1;K%Uc(TLetA!}JRW?mXHXvFZEws-!PvpR)@)i2QWo0EiT&VWWE@$0?V&T zhn8^6&uXwK3FG14WxSUvzPPa!->RJ(`Zyk)v?2T8Z^;kj`SpbXu?>@lfm6=Dx^#~h z!6X2npXH@u4t(PcnVS3y3$25wUaGB*V-Ue(4w_^y)+f(7zlI}FiM;(8)n z_rVo$HXx`?VnJ4R={+W>*({4RRkAOXh?_~xeR*K=8bP?iA+yxlj6~s zQ1*FHGrd~|r|-{y9tIyh$COIzGa7^+i5G&F1SpD8Z`xh9UYzE}L0nd z*!nECzkh*er+VD_^eTgZ7rXWyK(6)kKKKUt{5p&@_J3Agb6i0h!Bz;QRXz5M3)ku3 zYU<&xD~+U`VtvE~BrYa>TNG}Y%|HVR$)2j=n~V!ZmPHn+W6rFd&R;reJ*2oRU~j7y zW9ReM>VsJfYw?j1qgNe%$&^WAn2npFu|BL{2X@*m5L8^9?PsLyxw?v-IBT z9+ABwWsl;X%f{x|4tb8U$+aox%2+xh%zMxL{RXY8xl3S~D{eIcIr<24c(wpi>fqN4 zd%C#yj<2!qX@mVZW6ys1(D!i$GvQS%w==;|I-rK11R09gWKk!Y!mO-}_KLax7A7B` ze0zd1Om}jy2IpX@z)^Y4>vfBO4;rw1xc8kAnD09$*;PFePAFJaRo}5t4qtHwar5Qj zMk%pcGSS)GGm^@01VEtHxhVC znMIy1k)J14F<}qg325w-b9LdptyBAdV`TR zuW5-4>OM8xto%eI+duE95zuvf(&Ia}FLVq1JO1K@_GQ1& z>!*vbPir}ULP94s@5~szFPx zOhVA1bmCkq?-lVo|Ix_3#l7`ll``2wK%I!by;$|I%lCTZI5FyulDcs#$)c$8F1kfM zHB5F&JCmWXE$-jon*LiwqC?yVZK~Y-PLw1V)ee9g$Ub|!np*z;wi2NDgm$FBK+V2n z4+3F$1mA*Jqh(CvA+3O6!A&kstvI9Y_1JgM*1B=BV>p9V2c=R7T-WsAsu2`W_Ep0; zPXbU`ZYtkq!O+-fqI316{@pFLOypB-1H ze#LeCPqjj^^CMV?rD5Pg4xqWJ?(FgWs&VK*C%GKc)W18X$Irh-HP(3pxfu$i_idvF zZKPw(=V9~^hj>L5H#k69T_o+m)Mci{)fj31EklQd0Bo zY}YF}`Kot{FXHbLh)YdQ!UXs2^Q{aUZyJRwh^o2Kj4-+_E>Y&K)=wxHdFKINpEONyCXx<4f~+~pzF^J!?s^-P;)UXMZ7x@Y zCzT%Ku0su_CBF^omNdS(Z~U$C4b=liej|aFp%;PXBKM^XhX1I@<^Qf!IlxCm*HA#J zz)&a{2#;2Rh)~NKIvvE+vyU3F*)S9)^gu)6Ky3E;HGU0x70iOP(KKO6#L@Fi?tHM7w>KH(I5=GN`DGaXxiuc33)oE=L<3OV7FixO7U)+BOxcKijCyxTbeSn3jet0X z`8qB!t}ce(a}xRVUhbRd@C1cki^{Q@0VaOWe#{=^Ie9D<Iay51(8xhrnF*&I zRCf3A4ZSa^6&#-%w9TUyj087-i?sFCXX`u>(-6$~VTHYW5DA|bzRlcuscU;-2#~r_ zR;|M3=DiEZpRz0GtCyg(mmnbj3m8RQ6t?2C-aXz^(9+ZEY2joXCjU))-@dGg0*7Z3qI{-A9}%{%`9Qi(@EIPh z`%ws|!=s7Yw_if055r%~@ zQS7jhPwUP&d+I!-!&s4w;ALA9ZB)ivJZJZ^hnR074bm%1Yy8cVPKBMGup{jCSlqGk zR~!iW==pWJT(Q6=YDtY$NGZV-lw(&Nsm-3{HX8*ZO&>yJs?2fcc?%d&y3en95f^%K zedXKC{~TJQu3~gC4|X^M^R?F-mR;H>z(*Ev^)41@$CJmMhslH;_ZO>f@a#7WR_*?q zo2h3UUlGE;!^WoDA+n^n_;WZ&09CKbExvrnv~QtWzh%n!9XGFEQ+=X;l{p5{y1Vdw zX1dp(X&?@CS0C8B_iDWUQ^U;TZ8gz%h-TFNK-iI2HEB;LBri}c?+EZ`Edjl|&1o4uA>C1;1GXslcimvBA zY%m{_3O0@lF=wwuCy#YDeNoND?VT=-TSZ?acL1lTcrtVXJ)`*cnsj!tFSpyxU{s0Y zx@S0j7_X_VeNDFjr$}lqI2ZbfHP{=E?>elw3r&z``w*J0)DFH`Qg7jha2t1yyJs1J z9uGHQu@UZU^RnOzx+nw5iSLHHW^wcTvSKrC8)o(0U|F1>G~P=v<1kon!hd{GtV z$=QJG&(yh41p$lX7Hf(bqL4;O8)mpxCZ*mt$PMV>oWuJ1^QljO&@;WNU!S4ZB*!$r zEINEzv+|FIw|!OPJv(1iYL6jfj8k>aMKMMVuTGT9^~J=9LQ~B;$)YG&)AF6VTsG-+ zBh&g%D=X`tNVmZqhjy@&JzT@~P`xT{qyCYx?Q37nfvh#`gEw^pdh>Xs9nNa=jnKFP zHBb!6Vex=t_33z3GBWxcYG);M7wgu+9GT-odS}A~%2zDWC(Jzo{O07zla1~^Jnkzh ze3|VsMUT=lCAeptf5_rnWJyFfCjKmR+~?poG*Yd656sTn&c8E-STJBI37IwtCia ziA#Zxci3R?JosbijQQyL`T6C>!_+t!`HGP?qv^WYY2-cCqlxVNMc4_{KqKioRXZ#e zXjdAIGYn@FX))r3vdtKTchBF=i+2D}P*%nf#m6^WeAlw$>lsV#8Rw3%cX7DB@A2jh zw!Oj|tWTn~vrGi_JD^sX5XENh_9@*Gvim%BPA#ewzY4hWwg4sl4bR zrfFBmv~l5Zw%l>_Ss7sME2nX79}LDI_nbO_kB_h*cXxLjWRy+zLG*dJ)rX^ zUUAqQgq6ito>5a)=Je^vH6RT;FX!ozf87s@C?y^K<8wxejpH99!jiiLS^#fV$twRl z9n0Mkle&}vLXmN+JBOdd9v;a3>(|*vDE+8H3C8wC?=if8<-#q2OJ5vaojqcN=Q@tc zd!Sft{5o(Ez#XFM7yg?<1oOx;cVkTu+s?n2`|uc?de$JTKX+f;B_7YGBkHn1x#eyj zYI1V+%{BV#;g<#6Ex~vgggtT2e&oNO?g!jKVIWG4vFx`s1_$}x1?Zp-1(>&Y?xKtP zbB0CRbz7skuU{63QlC2hMt%&9)%q^R+Lc`=t;`jUc%RPX)`YI}A5o&Iu@0S+6r2C_ z6a&L3M_f?$$SZSG?#7=VsdxgiO&W<+Jb|J!|#v0IRB31;Agb7HDSE z^@4GYQ$T*c6ESL!Q`q%DvCrVz2iEH3+| zu6r+R>jg&Dk_z9N&d3OZL%x3Ub=+I$a0>v@oDG2`+MBny8s*svcIz74AJs|hp+pa> zEUv#y#-vzT*5C7*#DUKdv6Fv+(A@}D6cwNQ8E=D#jIJ|!tM4wu>H~1{hkq|Q6cfzf zSy3}AO9={X7|>DIwI|foo|`JUOz9dUyQK6;k;Q)>iA1-%tp+?!XZ?V$GsoFOVa$)VhXz)@TvM?OoyeU6uiZtL3(iP&r$LvtdEq%u1|#pRfN z5HvMu`n=MIv4qUxF6}Yx?xJN+f4j_ZTSg98LRiz>B`MGtYqfx!odso058|(oQV=uO z$j|o#@vE*yIxV4r3cMFVr{?l#iE}`MENqQ0a6gB^zcrF~80acdbAMzeAjR-`dU|Hl zm_;yNYr#$646XXXo<%X}j!att<@49!IB+R%tUk6AK`2aKZKQMy^zVM5ncikwWm8hw zfnI_%$|vM!T6_{ZEyNs!*nL4qIsAj?6ZS9-U3;}@`B4rj4I^O7eAh`zUeX+`z1^YQ(9!y~!}#;2Cp`!0*b z;GrxgMy>`>{aaZ{=ex0DtA>lijsFkktMwsIrT&$NiiMzd&>ZY-Q>&HhmC1=w@ehiX z8PlV+{!_oI(*n-sV7GHfVCao4Kdk^HmkRg>J>&shXEL*R*MD#wZ#3A~NiZGYKf~Lw zjVB~lZ@ArN-46AkY&eV1F-Z^Z7}0qJmh2 zr_7bozpXn1m;&<0r-useqB~&Uf~OJ~7|TPa{wrO%BHwL?%5t{;%l$OpNBY8p$?y@V z1&{Y-avUf}{2{ku$w54&8_kh~JacACb#esog^gHm`cKPUt@CAL>%;$BE$W4rOk@Ls ztsSUgyBxN9C4&p2)LI%;Ua|diJMqjuh39$-$CnjM$GWhsw9KspJMBHEulhuGK^1g6 zLZ=<7I=SM8LK9B7vQ23ZY z9-<{WD34rQ&atxXGd7`^m_-3CGXiSPIp-9kjp&BM7ia_AcEB#hM|}=A06uFLVPZ^N z@3R=F78JfJ{oO(EuZ+O{<@7nghZRIwrl&Lc>D{ri!g%xE;BPMGfI71rH)KIf5**s5XcPyC>- zZaoknll^+SO+1|;p)CfE2@wFhOL08O#s@Q}Q{3aqz%i3G`#20P`Tb~eVu4{vaa zl=bxV$PgS`WgbzJkao#)7CXDjrRP~dHW1}nqT6Shj1#+c;IrMT@TPZhf68;yo@F+8 zPD5y{mOg5bSg|4q?lv$kr{^)TW!}M)H2y&s%~12s`BZ$jY>EGO@Z|}`*>ukEjGtuP zuZtYC2xPu5AOEcb?B-3-CCn)5=?rbZON~b&Y2(n<-Q0o;(EVBvcdPlI36Hqnzas!? z5Du|)Bfr8`8!qF)kki!QL66AmodRv#OhO z;4mLR0JF_4?yOQY?e7N#C9rSn>gascx#Bf%{pvZ!51PIseXWL$anZIin_(ws#)Q~&%w ziMSe#&yJf2g$TH0J1~n1EAXgHKs`@JjrA6q&Lm+P@%c*;?&@ z=L7bM!=vcvU6;!quCOgngWT!`$*rVzaCuxx1zMV|t7>h) z|GOH$TkT6^kQh7QkcIzaUOlst8T+!e*&Eizo10ZcOMe^*_16Iv4uSUWMG}vGP+O`W zNynjMp^pM#5y2zOd1sz4tk5#rOc1%f4f-%+NVa)XdG`Z31_(SwzpnT!-uJbbN?5HW zh4Q|Bqn*XVs}B|XdUJ#=vS_Gbr2}xhPLxhg{yk43BfSX_h&uTuh{akaCFM<>H(~^u zmD}lx;JYn{x=R|0>ESF^jXtzUUKHh8N;hg4@Vy^>kTLfpSjM8t@|zU*M=|^(k@K6r zpsB^^)cHIS(OXY+l+e)fM+%g{e*Kh}=nOt4lFasH%83<65sEp81a(XZ`nD*3hT#ye zbVYIGK`UaSK&k9!e~Zt0@;IQ~M{E@tN?_o8>9}`k{)?8gb~K^jXbokqVq)>VsnNZ0l%k;8I5Szljs*tRkM2emi! z*$0}Vfk5-|cuJ-YIqi^=z@9y@O}V;s#HNuEcNje|Ql>;y=%MPvnK##(jb7%zi9;3T z_*)9N7&1$p!XX-?@#923cWG*T4klO_p_OA_ zcgX?+Ir}h}M;MX{kDr1uLdrW5k^3gpx=RFM5|3Il1ZdjS6`&uaqO6RcMk)uqgfk-o zFjO}3xM$TTav>Ta`ViDqjcx7rG0U&7G|3N_8t}`MKC2Y!ZO6UPxXqzg7v^7I1^Q!0 zO?u#f+}gFD!k?9yZtktoK|JXMV7D#}gP#cRzLQ)HR+d%6YrT#&l&3)bvYL8u?JLM( z2BTCDU;KiuPY|zWRRnDmS9?$6lnyD!28iWVgfSOC&k~9F@tr_L?+8 z=2$E+miVpNW^cIs;o$pT?i`E_$=Z|NG*SUlxgnQI1z^lVGis89ClU2ucc==T#IItQIV%Z^uEb#>TvOO*nO(Fz1vEc z>J$4G5bUttw+MlQae6}oFVHFK`nRrjh3K>%4l)0Wgoc`I7uhhiHhS)y?jmqhvv+q%&qM#2s8BLA z&sFO!)$QlUv{>|;XNw^UpQha)Ry~6aMEu9%Es3(QA_*rY8o`Z?G0nn0%4Vrbatgd+D0K^;X1Ul+y(T{F4WQ0?fU0@8(ZP?4P!b+vYixM z!>_jieH;r5MFQ612+ng}l&Yec|D1QCh`_sh1V%}bx!9%@iL}=pF z#^ohxbL;Cj81p=oQ1uav+Ino7s1{$h%(1`ol-G^{t?I7546dF{)*9C=%a&b4D!P8A%6$ zvQaSFyLu z*!X1ksI{ZOj-lWhf@tZOr^&%aaQT!*#cDPM({frt6(k{3%>sOK*t|2 zWo*c%x7>&d`qN|Oc94TAJJ2bnxr66g9s8ReH}qU)C1AkT)MzOsyZ;9hyJ|VW6)2GV z0&w0QUKfd8|MU%wf#+I>-gvvL#SsT!MAhdk8XZ4B0rcx;6D{Wl+!IA(LC9`5;xR%A zF34vh-_?eTK!fSfl~f4{31gatv{+S4jCAQVyb$b{LJ^@+K3C&4tvj>q(Q5lz3Ohj)4?M3Xr2$}OdVME@#4jc zU@H}BN5e;^xa2|qI_{DWbk(}Ue+m`8cP&uB6H}Ae)Z0wyhI(ph5&}VnPe=oNgou!4T-4Ui!2UICKjQf@%lI@ciq_#yTFl-rXTHX==!N?HwOm|h%n8Conu_v^%r%k{tcq- z0@Q2q=2cvf(P{NkC_+XZ$yV0Ri^HfRw~JtwQ241>mPIZs?J)U z$h^6FT{TpAQp8cAN-A`yJb+2HLqvd0@u7-+OO@<|4jRk{;IGUsk6xCqTqHbVKl2j< zDudx?Eis4*Uld?Cp}$^710y-S@hETSl~RHU3vrFacqRCWC_0f9H2^+IDz7)R0`qNN zFCQ;vq@=7I6T9S1d0giJcMCPHN5$&F>H{i29|pPm&=IPPC3!m)<-`~i#H}|a+XYg{ zZG&Akgqd?Qf*N;8-T64#&I_RYGzER|<)#M1ej{ ze6iHtA!#tq`9u>00J&(py_?#4w}V$CvvzHkOv&Nd2m%&S`lBuHxPy5Uz&W zpgOPmWQ9W@iY|!qY*L(QEFXCr1A)gxIKmx2dHS?F zRyT?8Oo6i#S0NkrkFz0y%a#;2^iSPjph9?H&PnEXHSa7Rd@tRdc`UJ;C9+~n=Jz)c0!GI5JVG&rPtU98UTCUnoa}1;qTjuC7YVN!v6R_5CY4JhRL+uC$(E z8n+v?!?84)?82~fOq73?NHoadypGa77K_3ojuHN6Yh7PmH-KBS57!nhsMhel-=HVKmP!Zc&WHNM@tNQGQc4U;^>~PJ8cX$<2tae}v3Fs=- z-aK*Fjm7Kz)ht~RsOCCkS)3XW-Hm6CQztERtzV`3B(Gr1;E}?7Ur@0y^V%JOYZV=Q zG#`<}g&(My1a}7k11C$TZ}&w#znSf%MeHj1 zu-0@*lFJv>)b4@})H{G1C@_2J?$)$(JV`rprPHs?;d}4A;nLlaaFM8mg$5Q4roHCU z(9}JKgW8~v1dMZ?q zDVsX@c0B)kQ60Giz}I}?#c992O`Ql@qV~2dYysH6$dLVu24;HvT=Rt${4#yLr07J9 zoeOE~p0#pvDp~!>1F;4s82w4=5e{x9Z)@5sFiqp=rPjT(>0drRGc(mEI>xux|NJB+ zi@il3YKT^NbJy|Is-f~oVqO7wt%Jh7L>H&S(EU{9nsX1 zZnkr-8X}PaSuM{4%}e@^4;e<+MtLS7KKQ{|p1N z{HngrI&gHU+$y#mLZOmqg3{a*&4vx65+V1JIyl?vVM@T9XGbyp$3(5RIYh1Y^Qp4F zIs?D#f1h2?b-x}r`msuK63xLiT%H`czz@Ozz#FHCoLKQBMn&wUaWEB_L+~^)P)QWL z?&DvxIbyWv=pva_6B=is#IEf55S?NYufK6+|9<(&+`H*;HR$oS?Ux1lP{JIcv!r=1Z`nJ0zbtCU`0=t zbubFAU6;%kZPBe-I@>vPOkD8aC%%0WuMj`6E#NVqP5#ovJw|U~LrHgJ>eLTOcNhi^ zO%FL&N|F<&cB=r19tq6DA^xAid2=TBT2r-}_b#HxeHgFj@Sxx}EKDS;Ge^={y(&B^ zPueCVpf}wI<@c?r6UTky_f-Fm`4<0;+31KHBqP-)DPCQ%u7xM5OGrhf0*aMf`NXFR zGyCZ5C!7mtcBC;7yKHAZ*Kl7bUnFiW8cpI>88@zeESO+oN7$il7NAUPZk;dsgp{5ofvQD`p!_>>v$|X15VNA{Z zaQ-{V(~X7qh(w+PWtk}1CQ)Y@#b)dq%?v0$m{ESZD@&gr z`2lR#X*~`OHf-{y`NN8+z;e+{F#yd(HZ)eo?O6V3n$UP5Gu?*x*^+2XZ@%pWV##n- z7v2yo=F;CGj|Q~QV)&&fZ?k{&T${U%HKu{*u>??#vYElX5rRwgi`zT6Yn|~wri-In zit#@Vek3<#n3jvOlU7~_CmbGq$fR;FZQqw&xY_HEpP%Piz2o$RzzM{vN%@u&TG=mg zb#hMbCLP@@ckVYXn~TT2Q^}YkQY-G{T1^z{s(LYeT{#{iX*vJ>;|GDP zPsZL?&R`$kcNz7BYpi;p!qAE!*2;fGCPLr=J*a%^m6x9Wt>Pf(*@Hn9cy;^eCOD|_hEAYIf}*LK=a@=D zqeIg&lH6wvnjoi_-lVuk=sXM7cMvX02j5$T{4(m1O&j;txK@V+XQs#e)%KQOX+mQo z+xgT0>!9QQRTip2(PAPemU16Pwr0$SfTtqJV~?)Ze0QL61Rsf)*!iUcqSlo;xg!*O zr9257dEB=$GCsq_l>1+<{|{5gr$-7>DrXg>M6ZT(0eVp@!Ct$pw@E{L3?WMlN_2k5 z=7-l4>~)OI6)Zc_I`1q$?=doWn~{CINJ`25n1A`#V&4C##A22;d2tXGf_jN$OF%9O z4~UZiY-NexVXfA$jJQMaJhad=kcb>vX%*Lwe(9j8Hjo7>&UfkiNOSJ1Ye0d*pOci9 zB4GSoa8l-Bo`T+fsf^;&t)-o#f`h;kiI5KlAbgNgwG)PR%Rx~YjN4w5=3IxKj~8i_ zOwRvB&+eH2C}Od|ATP#?NJMp@*?19K9n6l1XJE9xvV5z$G@J59C_m3bJ>zx2z&TbT ze{$&xr0SzHv6NI7?;yniG1=?LLTl<^>|_Q~$@?izUCD+7`$^}{yILas1*D5c_qRN8 zI$$>t*vPyyCKD%>fMil*5Shn)9mgb>zkJE$mGhZ{oo7LnAoYcAOhYc*GFYs`eihbydVx2B4rl!H(S-G;@C$AR_15eWzt!2;Zkdx<690p*=AuV+vFVfVE>aItj zUi~JW$%YpdelT$o<2NY@k$J(G(TYn7JIOc>qA8HtNbjm9nRpa3y0#uDY%3FLAg{e4 zZ`Ur{@vFu%&sX2uhC^4Z(bQXVn~T~NR)9raf`$iCG9xMs0O1pSxuSF!d7w&lKUhB! zrPYiI5N$=t2;$wf5l4RO$!sEAlY1Z0cStEkm`G+1HJ-YPNqdmlGl_80?PCU3Dk;A> z&!qm8ZU7O*rmNW-5=)LgCi;A+QJ?F^Pwt-b5WOV;<#SOc%%#_A9{SsDGjF}-p(xubVEc=> zG0xSTn!K`)fPLDx^aSeP1KC(!cxa=mQU5n--p(dtA%JoRqgK1c#i?)N?p~z=KWGF2 zBQ2^O(o7*~@aEnC8I%3h)OLl?E^sEE>9?@g{G*;AT4L|57G0VldN;mZu&81#YSYf5 zy?g4nTtMv+1@_up(~)$F(KrP#mou33?kL#M=|rta9au^_fEJQ_4xo^~dk_6+HE`Dz zBZ+i$e0;!b3^^2G>I-7tlv&qZ65^Odrpn@~e&|~WiZH7d7=5cw^Lb`Kf6-$|Di@}5 z>O54;;nf|GKD!gc79^y*$;IedQO7ARasS9W8&89p(S{dWX7Q`myViGSGe zj|)@*zi_zZnG*&0>tY$QCx;zPY6W`NelB(%I9l5-$}45Gjr+qMY{Q<1rgbg?i;YwN zy8tibhV@C^sbt1;Uvy}hoq?m=69`i<&i-}9{UM9Cd+Cc+Ndwnu!0tBC+`IRky2ZGs z_CIlqBDs@XLSLZ2?=GLCNZ>i00_5PnE#)Qi8K&$*B}pYEsp&%&#H``i2)wzkB2Z_; zkX=zxbR7y5{f*_2f6g)_e!R?F|KeP6k zW5nUEZ0%Y1T}oofgMhq0DS!%_CoH7AmHfee087}-+0f2qm!d>UzNh6HUh*GtGJ_rV z=^V2SOiW=yCW+od0>-m|!t2N$^P!sGcK9KDgX)&6X}b&?2fAWvSOH>sW-ZjMYck@- z!Z5jJihK@1ndFg4eLM;~(aGbL8Fd|cdVTS)N>gNHVG-Mqz^zgZSER#33`Wx4L+}lmSFnlgL{wd} z%tOhK@E|Bx`NvjhPd2#$Su|VwO@L1m3Kl{dO(GJ-Ijk|XIVo|$b`hc2Rf~&ic_hbu z>&!2l&#RLO6r3WZEG z<{mY0HM4oASC-Ihr&e1lERcPG-BNYdIkWjc9|s!=PzbUJ5J03GLJI=j8aC8E9^9@F z@j>a}TorrTW|qVcJD|PJ`?$fj@RimbaeK7;aR_`&xno-%5;y=_t5a&gWQ~<&iKq+c1;k^0e9`wI&Ic4^$!>Joc5oi!SL*?>Q z;$maXT5Vk={n};@hJ`Kn_!>RNq-udD)F{Fm&;FsDQuDV3Xg&B%z#?@z8hH5C;+Ajv zVme~$&JcOHK{FZ#s-Il;_$(eqb0G(gX`t-je+e>tePN2c%X}s2qf}u0w{i1!1$uMj zr-n1roaFE1hnM_Lo<(je{j<;V+fhW`@6v2-3VuqhO;t9V?KS;;1}w)ei3Gv-UM(vrVd`v?dHS$ z?#CqE(st!f=Nt$oB&?U-yu;_{v))^%j_D5wjEL|;<`Nl*ywejOWinbPFEAi$ z9$#Ru(yuqM2NR%$TXZ$=(?86}^kE05P7j02ne0uDz4Jv+=zaEN-5IjzCHxWgcz#3nXA z7uihzy1ozR>n=z+9YGzxoI2iU_(TDe;?M{PGN<%C3QuK=#vcQxm_%l~|LobC`WpTP zMs-)T)5S+zIey<)HW{6k;g6!j3yUN4g#8R$>=zCS@cmuTU<@KZ5#2g^L@Fi^$Mt%% z`@G4-Wp4T@R|UiOBhSc%Kxrd7JHKwcdDTKjf;`^%^}Ew9m{d|FWh5q6;SZ`;V?8!Jt|U&%22iI(@wwaGAx5H7UsB9p%vrk@2nNf0ge#%)a@W#cHg%?!oJC^`_Wp^f#)`5gx42 z$4iONaw=Xr^e!wXX}yyrH*pGJJwtZWgxP}b6;m@hM*kKEpOvpmjB z7X%1VH>frT?6)Ef){QfD>p-aP%#llzb{VLsx&HLuI|F!{FXYZXoU`;H?{LPVA=T*!hg^7&$M3EAh}&<|9Bj&IuITF>*!-&X~Y{QAo{N@&T`H z#ehQ=VV9I_(vz+o9_a9n#NgOBZ{BG3?J_VhAT}PYaIN@x6>(-B*tk+>5)UhHOg<;b zJ#1ZT!&H<1OpUT_D^GwBo@1Fr9q8h4T>)WPQ&x3#HJK$)nFm5572cM(`#GRBkV$=8 zoZYFaBpW!fI4!d5K}U7naHl9++HyakaWG3uX+0+85uZ}O>J8fTe0(UISYZ)KD1L*;re5g(^6w1q3sVIYI~q`Y%n$hf@*wBHyFT?I_YN;pn-kkC=l?2) z2z_U}{A=csYt|zFSKAc>qy_=-$PbncHSL7mw>7VNqBgEoWZ3;ptmG32`r zlL)H?(0%bM7=rtd**qM(7n0)Rq_&Yp=m~6m*xxjI7waJ zChTx&0{d3z-ezt-;(BI3;+|PWTsHk6@-dk8XF6-gu7L_<|Hj~-Qjdl~<7K9zY<6{naLOj}2g{|%u3cz80k?In4bgLbp3NVLE3 z5^C$F`~7!*ziw8#@kX%jtrfMScOmQaTXVy89FVv++hg{^1SdsNkjgpRn3`gASlqvN z@5rSS1O5HAoYMi^EKW%VV$hXe*ffBENU|J15v}2!^4$PLmNdgNefmHdI*2MKPMol| zvDudO%;fI?qEum|>;9to@x77k{zw|B&Bq6t{K=H=a0`*xj&o6x0R_1i?}fRjkAQcE zOJBI$E}~zQ)Dlr~H}G?T>P+kLg4Y10=QI zr{=@~lI$~2{N=n`iEr131-1UJ=R+cRZ@q(3-0LZPKJkVzp(327m+zW3xnwn*}Py_HPlOa1&Y8?w1hWY14>Na;PXx zB{V&K6Q&W*J^?_!gH=sw&EjU_7e)@0-=qd!gJN&umZ1o{R0(}lqTVm;GS5m|zq0si z%u#i?EV6$Hb4N9Ayo9N(5nQS}(}zpgeCzEM7#DP^ z=V_Rb?XmZ_OoQ%f%>G-n)jLh`>RQz^C72)_fjPQ*m?E4!Y1u?O-rvhB*I<&ciK~`i zTe5gtt47GRAN+30A^x#W%e%TX7nGIZpp=234knX$;odOs1>bnjo;`$!LOrAB+v{C~ z=QPX4*?EX{pkcb6-NtWsvcJF$U@;VyUR#{eUZG0rP5Oxkh?KW%r^*Yy($2rE;H{vr zP)uh^cUDs7S?u<=CM@@l|GhqqDeXdrF^MN!wf^8-e3|^QRF$vL_*;D>N*Q`e2{(Q} zvPH960Yeo?&pB&vPaHc#%-{k1&!{K_#vSL9qU&|w8c=QkZrF>fA<`A>LZhCHuKsGt8a{XQN~4i!ZF-9x|M?e19`S(k&*>cnmQx^_l9IWS~i`gEb@9*~@Z zI|6VFDJvg&*bX9xd;jp?f!0{TlmFL`oI@SotR}5Nar?F7mdtnf>N0l7?mx5 z`t;kOhRT|n0Kv^0fK*{*^`59jEAoc+n0c|%wxo8%sDikZHI{wswa3-N+cjf~^!li@zsxl+y^r-sa3M>{aM>J|!shwxy#( z>dCtK5vz24GVd8pWJ@M~@@Z^u_hOL=iue{+B}>!N+iFFt)ZZ_+;r11j5+zzb)Li~; z%@k%qLl*~b+UD46)!`_)Pmu3T+0AO5S1{^c?2vc-SrnSCe5q8vxFrdO{p|-R9Myu} zJr^wbfWDfE%eIyJE**D6AvN*x^1?Xx6}N5d>{N7hE1uSnieFg)4>q;k1SgbR z-uZxm$_A2qRkCWVC__d8emHok`YnFY$*Wt24WA?!9&uDwHm$nu;hCCv;~?fr{tS2- zudmreKY*cvJ}^cV#Q<+~4!%1n!f|4NX$cK!+j~a=NX!iS{t=kc@$%?u@@EwnZ-4la zs*9lcO{eSb1xRg&usb~ISM4{755;c@z36w~p1=#X9Sc}_2+nH@uOOlYMMg>uHw6qY zkAORkfJ-t?h+Bpil{!kms^#Hh(5cUvcRY)%ScCu%&Gb_G1})n zDJn-Q0&n8MM-85w4;A0!krhIlFfPj6ML%f?=km`bY?ma)>uTkdAr0eRb-2ryffz_ zjIOKq^M$!wf*-`yS|S(`E1igC(0Wg64=qV&Kiou^3-9G~QT{hnxk zdC|K_=W~3PsF6Tm#cd33vf+4WsHmt=y+sgmX@aG3Z6fpmoZ=gXUJuQGE1fFrVC9zd zFeGSo8TZ-v9^5vGeYfkYU;0LUNWqrAmbIv!hpK`2(P*$Nw~4c(XO6Vflf&GA*eBr+ z#dYfhfqGUnts#dPYUAmDe{tY?sCwWIS=0Huie8O6J+%IFL(PxUW?D?(Ie*VO^lbE%ty|P@84Q!T#H+}fOu%P%ZKr0edln@Z|L>U3Yuy=|nNDRGLfKo> zdkYYrAb`GQE1a=z4e~{dd>;FWcx}U{uJ2XMUks;}C#+xJ8F|V`{B&skqM6)Yvy%M^ zj}Hdrd)X6a{25~^7~NcQ%Ygf9Z6B|Mmx*1*SsCm17HU^z#-JvLCa~|WK}x|XB-`5B zPQ{PYm{s;C%gyFyV@1CyqdaTVe?Fxkyua${k*$?~{L9N(n#7fr^H)TFFD;Z8{9f4}zzsr%PHGB$egzFv2_*XS&p$cteMoI+wOcs6^Cvx1C+I}$ zKvLLV0th8$&+eg}+!H2n+`fn3>q)m)i%D5-SmMtcy4+?O;v^%Oft)x9>_~yVp%+EK zD2!NHtIK^iICKw%206AHr0(N5@b1AlkxusmDPnvKoOc)ci5fXoGGPI6zln-ZO0cp28v8gf_3NkxoQL^TT7(x-KwQh5=&JW(`lq_<+x&wbhHTKe6^iM}EA(S({t6Cx{h*4= z_Fx=)VtSrgfe7hA!RRNt!=Zx_bE-7@n40q9t*!*KP}`IefOW{5>tf#R_8_Jy{H1Q! zS}>m8@AjWu*CH3O=XTZC@2^jqKiU0wA@>KZ*iwc?c89#(CDZz9Nf}bNCgA(7l&{w! zFFPp)9Gp0Kc!;=K^tT)t9)6K0Nm@_E&(L^kX(g$7;F#Dg@%@#t+?KtPo3`mcM{Bd( zIMe^opcf`C?QJmnNyLRb2vEVeN)+QnN$w<%Tgv}@rZr9gU zFAOZ^p6MvH`kt#Ol1{)qk~!2uPiZ^qNTVqWloHFH+W)Q@zt+=Df@|gBsww+OOB_gd zXHrS3WEy@=7A;$_=hTvyxHiPzvwNPE{;1h^19!&+`V>8=Qj#_+i(cX~SSOlGIxF^2 z4O@gy^G5$<4fBf;{br};?L9OS)wbu|_+^-?c#=#J%Z_p+oaf3}yGsVA@QkbfCv+qx z^eAUfVpA05xZ=aKW`1OE~GDu8sUAr9tjTqU;ytO zBHwcaT9gSS9yWjcZU|q9C7f%b-*t=A;X-iS9f8rLLA` zou^z5bzUKp*{ZyeZJkaw0~k|SM_V1jA8VmWf)_=^hh;|n%%3_Q1B^*kDdabUWoO@1FA_tce{>qM0k3O ziP@&TkOTOE(~t8LXvzSP%mAGNhU0yviDLBlyk~RA+=z?&&NInNs}ibUQoFE9Ew6Q0 zoj}`!vsCCYoPA}YKU-V-kr7YR3zRNIfrfLUF(6|?L#gNm6FQfejF;w}*-`ZVy+TJ9 z&VBjYv1^kmxOcoX6<%M%#b_majjQII5z5E;;ozC&i};+R~XTXely zvrY8p&vA{qk5jau3@H|^xh3psCq=2g$%Hn06dq z$D~%4vFO0T!)Sb-is6Q&3_-2^IMl`2Jihl|zkYqTz_EHZMPw?RzpWuGow^-lbVF@0 zI?^r#Q~|3bgexaZzdKZGB)Vk??!##U#b|Ty)Oq8QyZ)Tvw7?7109M66PZbT|Q9&~4 zIzs$_-Sl4QBBX3gvUV*rMi{4Q2%D$$4ssBO(tGI*w1Yu3zqW3mJCdpQGLHL91utpc z>9d2z`qB4p#{G6QN!5yA@a>J-E}{4D!=}Q|Rn&}aV%BPBUv7$(4q4c}a)iD$XTkdq z27nN68O->-8Pqx3brmtE_73LmnOs+p|LnrEuIlwN`pmP&%XPWsU*MMCq$d9EjwqG* zZy8zcZ|yLweUkXbX5=P**>Q_;IS2x%rOmjByn>d4ZEyA9Yf zVq&tUyC<=C4RBwLWKx~s-bzL;gGkDE-PXg>jY9JR1Nfdc#~&JzV!HBOk>yzyM2&p% z!OSWnF@ObW@{}uCVhJF&U5}<^3Ln8N2Sr~{*WSJF| z+kH{h6aUsFKtdvPFb7WmzzO>5{K)^oTw<9DaG z;ta<|@}pk~0cD(Nnbtaac+~!`(dM}9$AL*u6X>sZ}&m!`YSKGAVDSKbJ{D@)Asx!kBnNC#Y}_@60o z-;u)y4(yQxlstCpFn=?@r%{iPDO6t;7P?%J%5Y8<;)BeR634Pz*!3xZq>~VCQ zYNNK-MzebA&#TGk)4XOoo>7-~@zr^hr+G3XoBH{V+YH~ri?0%u&1$*Pm$3-L$uzbI zJKzBSyuIXi?oV2@$a0*<7Tk!RfABPZ@ovV>qlUkWrlKqxQ*T}N#ddHrt-M|F@#Sbu zvwdgngg|B4Z`0fVD6aeG%hl&0WEHyjO}_h}#7IeJItkn!U$NWxY+7^*q76!Uhz4E>W&LH>qE!a!yk{d+?? zTzu~BqFIr5DrVli%viv^m-2Yli(r zFJSQap27G$CilAsXW&8b=_FhJE}3A|9eio{?o|<1!Uy;FQReRqPo>TL`8wBV@a=ye zhm=q<)uk;syw_P#*wMDCvNwUNdF|SOx8vX# z%8)skRYF3gK?9|^G>S$_npC2Jk~$m_DH^0nnlzU*Y0i-%lxCF%CCw8}O7&g$cJ|(# z=l#Ct{a(M{a~}5a-~azTtb46%UF%xk8uN83*5qG0CC}AN53qkM!_Iu7!@a3F%T^** z`<4h6tFAv1cH+WN#5Hm{q74a+-J-BvZPJ`?g zFJEr`HcZhpgZ}1i@@A-&IX4-jK7RDdZn`-chJW|bk5C!6mQ4jbhmy}}FL@waW685- zD9ZSmX$H+UiOZ2ooW?S%u-p>*X@d6pV;l1NXSe-8hi%iy@b z;$|A4_t>Und(m&oP3$!qui}{fAKI}lUp^Eo!Cq7-R7=~T1($XR{>GzVB^0}}Z#72I zr&dWWo8}BqRJUU_C|q0`@42qhOttTHQEGsIjh${R-ALZ!CPp$gwxsZyw-!F|;*EEB zESI+#tzdx?A&)WmT~9b;i-(Yn0avqARVYhaXC_n371|w8+R;1i)bDUXgDy&$r}Fxa zPMkx+|6-}ho-TXZK39H(Ns%%siRd2xa?(OYTPAT@1bvGnE z)ZMg(``o6H!Dd1)8TafP`c^j*K6#Wjp6W|*-y*|gF!FP)w0IAClxoyhsIQu_vvbVp zj%1N;r_Yu;>B^Toc)M=Iy86dtk;={02ZQX%Q)q{Ltc?((UD1xGM4oF-QQl7P*fwwD zv{zv}oQ4uMC6d+MJCuD^AO9e;FnbXY1$8RJ%Ei~uAyPn>bp0_Q!_6@G;dO$we4GA z?V79nFl{VJ z&2o&_F>HXN}I9mQB!#-nN8EHv-?6vY_CA$2TN#C<0=J(hAL|0c*53u`4FGSG#kmrr9Om>a zj9G?1o$Vh4`!mE}cEFC@{6C@fsJ zh(0$U8qMVlOMLVvq!3pnAB$t$*(;2XvSg#gHRnl%1h?*P1-VAr^>|i;ioCM?LrVw) z>|7a0Ru_}*$S!(TOgx!BAicjYT@G z@hQ3dv!*Z(Q+WH#k9&Oi{tAV841YxV40-g5YVRe}X~z;h7N+_8WYNs>sd(aPdG+JR zJ?tu{Y4^@4O14l}_ZxPGR5V43>di0F9cif33uI)d-HnP==B#`Zn$i<~^$2^G!+e8R z0e^OyTzo~hGFMc0LQH=2VCu?g(T8u5`7<~``yuy}xVP}fSzO+Bv}HK;%~<)NJ={@+N9SOnKK8k?eo@6rv2c`5cNd`dh0j5E1v7z>G|T5 ze%aRzJlHb-yzioNx_WPco>rzM&+>^om+ZdL*P#1+Vz8U5yl^HVl5 zPbj^SWO-m;vHp8s^7E4@r4rXjP_xX(#=w+C>kCfmINbDQj%n!>KhuURCYw+USqV$ zq3~?{W7;>FU`ctSX-Ti3KmDvS1WIy+1l;RQDI;10Dm~%I7h7g^Jvotc$(lelVAiEI z7z+st85|{WvPm%!yE#8+xb2MC2aciQG*p-5j3U@T@!IozCTUUuysr7UhkNY|G0M+d#3r*ap?Ka^@EW285ED^OY~j4Sen01b;XRvH)|) zNi>i8gi>~Dpg1u(xp<0HDpKzYVIv<`?&0-K-`x65qT_Ctjs|p^B)O@1K3X}cV4FZQ z6+BrAKX+{-nPxJ6ZYe}Wk*aAc<+>XBF&D6WN_`ps@61TUsOBC z$}@-Vx0iE_Yf6!Rp`Cqwd#Z>OBjA9+%VJ{SaT5V6Z-HzGR~jPVJ=zx+8oGs4(=8W4 zialuj!%a~i0d1f;=Nhxp9wr<%%W|B*!j_!{$A>BX5O)`Sk-z^w5E>L>$^{Y1)Ex!( zl(!wz;41PnBUyB$v7v#L@J^&7i|s}`I5wyu&01bxA0V)6l=q0tTk6^W zgf6|Oy#AWA5s{;En}A;U$G+73KC$dvBtrHQG$gfYwCF>19#8=|3$LpAw!@VD>rgm| zZ?~e8jC>VH#B8G}WL;rn9tnPbwhc-hoLW|n-Gq0b7|6e>8;A`wKhW6) z8)uW<4}T=RsfrB55D-JxXN>Z?@QG;=73Q7?>)7&V-u`vVWM`E(J9Ck@v%~IO*R{3( z^|wFqIZ6*EEjcG9xVN>g;FAoK)7jMP&e>|v5h9WTZO$_TGa}ugVw`DwtZ^*1+84Pa zmFNe6XKaO~%PrW<9o?YWEYCND@PM08Uvf6G=wy>o6+1||51^;0`lTx?KeRMgo!v!G zm2k4L%#;*-_@Kuh$TlSG>bhX;j9H5e3JSzzs(>GPpirY2DZ7=ZXf`JpCK&TCUc4BG zP{^jGVn5Gc0gv1R6#yojW(#rmG?>H|f*DY2QD=gptg(?Ww^d zb{=42VsfmmlmVZO=s0aSUoeMsDW&%4BE=AffC~{ol7@1`yb=b8bo*paPtTZ%YO4t$ zWr0lgq;Y=usaFAMZVodZZqpg;eE-2)Ba1{T(2+`@R9^Hd&wTXEN39(x-5E=kFm;WL zjlt*IR4$B-`|Pd#gL*1fir)#3?M|90gesqYAyH5@&{WqBp)73Qpf>ISfL73tPq%m4`qJxg9G#SUOF762N@5!VA^LX?o7mt zVS?QpwtEkeZgDt#Z)8D)97mEyYSZnQCq;Iqw2!;wZh_$>;;fQRKroSN+fL?-Q*dDf#0K@vw?kVAKj8Wg zagu8+XkvZW-sbF-vuk=_6Oe`GbOIF__u zutw{QSEO}1$v?F{(6%IPFdd@2|H!atSWWtGQ)^>LdK1Nhi^ZTdG(@=IDsT&{rXTxc zIe1l0b@%Mw7g@(gJ08VNtAW1D5s)j~e{le329xg7|$KLQrSb9j>c( zZCvrQ=UkGTLJ=d5lY{#BJ9P*cKsa^%rpb@Rt>~X={rSrI^E{v}r&k)2CRl{1L#!zIR+gjJiy9ApO-|ZSM{=a8xal~mNjNR!s3$B;lEhB0jJeuCT9*<3jwEfU z`Df(v$n&sfb!VhBuA&cSmu!MhGU?V#8kUZuf&B_{5XS3d?nnDXk`czqZGgR@qN#bX zbxd@6yzS-mIZ!Z3BQ;V(ck31@L7;ZSA*4mHxKDRel?W>$WQjH`3Z>GYZZcFI>n4Z^ zB3{OUQug}{R{@stCL$4AZy_mJ2;Fn4p2BrzA+G4 zkq;fp96NR=QKPO?Ph^>{$Xx4!Sz-M>X53UGV6J_W^H>Z<7qdq+(&mJMR1a-AP|yRG z7Tr=P{|l;;ojlxSk(_ML!@zqtZ{11|md8OO7VlqWi=l7xR(3x1qX@5chL2g4i`I?M zuqtsf%pY&`Kl=0U=7Sb*&}qJI^?Rm7`gB!n%l+-?;>NfID{LFSbVmoa(BY)bA{DzR z*&hf(VVkZ!M7wt?R&94WlL5CF5!h)B6%`4G9L_(_=wbs1rT6a-8u@IMvqqcp2>F`9 zL+M7}%Tp|QW=F}UfHN;`+*QLY$sKYig%MV#;yQ;s`!(M1<$DLlhFOQ1(+(XM8`-B6 zyjA_CMgJxvkoTE`Ip`>_Ml{Tbg?;8yUu^Ua8n68qQZlHC50!+;HuEw-pbCyxzddEq@V_-M)m+-yji6d%Zh5Z5=Fvb)M#$equvwxx3Z6MI zFSZ4_Pr3W-Xw(0=fU&^;6FI}erTuw)4cRi$+-b_wsqdq| zeMGUIiQ*H;$2!05?_HW}y5A^j3?&@vW%cIJi26vc?K||gP|Rfu0L|^)d$hj;Fv+4L z=!ayUQI=rTFx{!uIP_+1r_BVwxJB@&QakN(+AVQz!pKQ1VVbsO+@`V=*?1pMS0~L{ zA6V zmBLDX81<+BUMEj4;%R3Ld(w4=E#7jJ3e_{r*W(ywi~{MrDoHH(uM8hEaR~1|F3c2BUY0cd&&CyUVgIs z0j?G1S@7*kR^q4Qq~CysE?bTr-U_^&qx9;}SL^mA>y6X*>9?)rzb#u%0BDiOOgVZb zr^~bL)p)&8WUgBlfi&qB<5VpM&7inNUpi2+leYY*d9qub^`~2B0fX&WHk-F%vH8y; z(2Dy5z$(i9^96Pm?(Clnh#LV0E6VjXpTE^l{t;s^#51X%4mH0T$bJ@;T0#tHmE4Dm zby6J1I&zXLGF;J*A}_>Fed-}6{KK>F_tI{$9pLTSF))66Ot3lsdG+xXSeG_E`(ykn z_Oqe#JaX+les84#0kh2Df&cl#X?V@K;CZ^KJU5{CFuUw{ePc%p2PWD)7Fez|pXY9l zO^*Z$8!!aJk%gMYslkun~W|hH_7T-Z8 zGa-@S*Q50e-l7Ykd=w?HU3Z=p!%vfuHvRrU=Ungm9i4C^-sY#=u!CXYx$OAA)~A9agjQ}z2R2=gVnt|9KikTh zfBAWm^1*}0U+oDAxz9+z@azW`+$L8W3mm#*NHOM}g&gj{-Y5C7LNa5t?P`2q1AUJi4LZs>?^;$W*= z3CkN6$HCfju)_dmzutnjC<<;7({rTZOTc)Gw)WzYf>WZ{tvl^#k3?}Siq$`*6C1O7 zf^Mz$Gu9M4 zM!Qmm&WxovZ{3PdGAv*82`mIdy|HfULikQ!2<^l`=k!xEr?b4j61aKpmvxb+n6=km zU~u;(Wpe~Z&)PjmgcUrjsSUYu^lfm2ETm^)dV{N)XPo@CkRA9}ju zYUUaF`aQJ8E3Sf_XsC)u3G4sY;mgU5ZLQF)C&D{!oI(>-rg9E>*lpnm)NY|$*@CtB zySw0zD|&Pr=dzESP#0^?t#wbR`&S%Tvm;Uvj z_nU|+`rxg^Im`34ciB(#S&Xb?7}T{FL0a!KSwr7Gr|_Y<1sv z#v9`pk>ROcvfzDCM%md%{J;kD*>?hk#nxZ{~FP zm(|vrJQPAZU0h0xTJ`-;W?1SXr`IeK3O$Kt&?PnS*HxrMHCw@FJlQp?oY+q*j` z3B?P9SFF-yLAuQi%uEkZI~z@+lNQm$WM-KLRNtm(<)HQnB_r0ax7^%*)egc}MQBkf z9eEInH{G%TSnAIN(k#eYM}Uv-{);Nf3S&Z@jn~ddG!dyri9x%c{zg)2O>KSt=8WB> z0!pc`pcLUQGF5-qk(ybOZ7iR-7K#urjlp~28AY=Bz7984)w{J99QS6+>vp6GGAlZ- zoCxjj>$^+35gqL@NAANK?P5H~Gl?+%&Zr=-Up)7qC#P;DG+amqpxPR*Hp^TAHE;(m zJC_s|AIT;9ekc?M#*FRvC>j86Y1n9bRQl5GQj*AdMO7^{)WuY=&2n>3?OuW8Dk_EK zs-WFo__U^5bgZrq$iEZGT8E9KM*-qw8G!g({To0Q+r2Ja+ z*O3;r|C!OtN4e{Y5x|@Gl(ykCk3+wsQaf{c?q_Wv!N>ngLhm4{A0;JKt-a_eAQ!`0 zl*Ps|&2VCP_+^WH+>n$3T)VdlbuC0=5lKO)nYcM1JAJgv;u!3W{vDE9?M9lYut#q! zOXWu*a&*wZ`8c&eTE*FUhTB}K_COpmSm|GNuwNppnA|u1S0RD&JoAcDX5RoLGCzuL zh7caq2%tD4IbdR9^08f5z6#l_2{Fq91bXG32-%MAep3cd7z2&rpDX0SEslQ zs_WAsK`>*SZs{Pj(aGkDZm0XP|C$5p56CsFw(>{bTCobWiEU7FFs@iMop3URohpCT z(sJr^?>z}-w~X9Ai=urV&?fm`87TOmSO@GNuK-EGr zxTv#{P#+*GOtLk5gZTLQiy%QvdUx&^xH)usr07e2f*Z?)a%Df~N5^Q(N8AV*DTO6W zeMTvD%kvFQE}cL2WPbl$Y!^}#K>AtTNC9w-q-@?YAi6WrSH~c<8~%j7(YX{!Q@7<2 zq<9_4qLsqy#h4%Z-|@@2#Pc9&oqK=v_4{Sg8*Dxdr#4(u`LBW9-&E6Sx{7MZ?`J7(mLu z$05BRC@|S6Ew&yFEVbS^&^#&%Ri&yBonlA_6tdf3ao3d#qb$WgI!Y;6%cse%1A2sK zNs?J1D46t3_pr|i-`-3Q>3AN&G?Aj!|MyIrT?g9Z-GvPCc56Ebs}(JPnv}|nCG7@W zhKTw3kDQyQ-QWO8$dEEtw-i$4CJGHE&+akWiAQla#sHt8X5TQoFR$7`#|_jPjc8UPCP}ebMq2y<4r5Yv_uY+BjepKI?yYD#dRvvE$9_^AZ z^e^!Q_@Afeb&+y*Nf8t+L0oIMgXi+)q%4wfNcIT`oDiVOEg%PXMP1{Km#S9&)u(&& z#zV}vZ4FDyxG5Gn`Urnu_<|9y~JbjL@^B1k-dEMO#~#t9fB|MXtl+!7+l;H5fCfWQKvTfiXDv zh$5QxC^Dmb$x8OdS21^mkWE@_3+2@y48+la0a6i+Mj4Ie&CU7(j<0s7w6*Pj zh!COS*0O%~#Ta>K_monhT@aI7Y)r(4kryorzH7AW<5lOq{`2(Pta2nXV8x!~zY!0D%9dp{8yIZW-Z)EcM?;FX`>Ua(n zrbWi&d?qE}kY!s=ghh!kI=|(ohnEsThk#Va-lHInsZ3r*H$wxgI=2+q^+IqxK0^(J z6ot5_Z?3T@Ioe$Fg{zmD5kswQi=Ws-S_)bdmx8rk6)2f}2T*YA^#*rm|;ZA(EXp{%UWLk)Q5rjO^v6GSX#AyLqC9T0{*Z z+pg0$@8$I)7-*uR%SN-%Wx1D1@AljO94am*$^)pt)+bJ=JM<`|Q1nV9JfKrT#5rIx zrG7Tuk8cP*X!U3$$0w4CNGJTDrG8IsxaSo^45~9x8vs?`DALh(KL|TtrD z=o1qEiJbU&v}{sN&bpa65qy?W2V)4}Rrx+YQanXXIj6 z!%I$n2`~xKVc8oJY)2=EDhvIKLHK_HD%5LZ&;2wy$`2PMJUoG&z3OZQT`q$nhg?&% z0I?F>`Ins}CC}_%o^<(DA(6MqQlz<-;%-Q_sRvPWUf+M*Dss@Im0DBUZl*3#wx;H) zQW^*8I=n?F8F}1lleAH$ifz{TY$MP3hWU$Ob^VLNlhTeB42(g%3tr4BBd}^;w|g5i zFb-nT=d6m1A!X;If^g-5oG3Td8F z^6_xuNuokGl{d49euMhk&$`?uRWeoTGigm3xkO2q0d9*g>V5q?S5ePWEBA2yx@96g z^MR9XzL1Gp5c&$t#Ceft{aa+|*sHV*i``YyIp++nOf>e*0@J#lVlVwc&2t)Of7(yGtu}9r z{_-r%9oL=z#hg7xW}cc`My8tf;k8k~ubyQf6U#r=4kjAOYtpgx3IJX{xrvXy1T;ed zs!MG)K=JE6f=3Zl-PU#%UcFftzf{M%9$AT`S#%m1vYST%Q>>=%ai0}} zSc84e>G-RDfB``kjFa0*+cTAUB4eMQ05w5E&zw^)Uh@E{wZJ!$z2*!X()JL)S_5{* zi~P|y)%!yEXO*|z6U7#ZXJYf~(LC>l3^5ZO+ zj<$J|Rg#luYFE=f*B1CYlX7~$bL!r!Pfad{iuPNrZ#5h+kx$-6`-Du0M!tAmcmFz> zD(ZaF;$sTQO)95nffi8Dw3BAFDHwy@OiR8Rwg(X217p8Z$jV5)&?mm+tCukp31|=P zf{Q%Lx*7k&BH*FhS1C>Uoyn9_j7&|a+zD*5S$2g~la;8}{+pY=422Tn{y^2vwCc|S zDJ8L!jm$`{!<1pQmH}1s2}L2} z6)gS*S?wi@lg^c4pS2v6^~e)fRw=Jax@4`Z5csXvC*P@oalW~9$W&5{I-(_5Tk${i zP^BhL-$#8~P8)e2VsqoG6{BxwErg>^d%683H8(y!Q;ErHa`A!wSWG*>2H;M$`!fRH&-MC*@ZsJ-~ZRUd2YA~(e}=rhOPR+ z-RBhOE;0F(&MorhHj%gS2fEHm=mxLfPG5r5i>%o?wA7_c!0h5XD;L>Vjl2JTo|Yr{ z_~1I}V_(;mlxxggwc^}2ReG>VzVBj1{k}|U-Oyh4fJS;r3iaCB)Gw!_p`#n~sOom= zYybSmWq|s37CjX<7Enj57Y0Vbr(2?pfD(9HgD0l-0UurYWMH9~2i;|(aCYq9 zAMxY+UEA*+^8Wr!Zb;7-c-|XdP{6?(%@(g0%*B}}8y&{A-~vNHUHo#!sXx&vF#hek zLz-A;E(Z5c&Mn}uabK)i{QSImX2H231I9?7&o-^Row$joAcd61jIXo95PAPLSD}fS zzC9@YUcr0b`>Tx`rWnf$3O>3^ZlVk~L3FGbr(J1O+J?S*J?Nv z7j1Zz%?ZujTDD5hUg`xGzkQ2nzPf8V;ABdvF0SZu@d9Axx1qN=JjNmkK!di>?K z&*UbP5{aO1M@Zu(t4zaCyZt`x|w>zLqZh^HA; zBdaD$~al#=jkznK;-DNYRDCo$2wcqh+?+E`BE^7^&%;lqD|_oNP@H{ZFB%E`&ei~bl)keCPfHayv|SnKW7j-l+qLkYpPL*3z4EnPbG8CI zZ=VR5aeD55oEO2(U1}`%{^5EdxLZMy{#fl5`p&W($As+q+*m4ZuTmZB@4wr%HQl&u z;}k@bwNg#)du$TZ>rF#dggPY8c~2EkZ2Rh~C6@n|2-$g?Tp+eLM4__FBLZrpQFk-{ zo8BYad4D^)40(!Wxv*f3zTBgUHv6)Y_L@WMyU7?=$#|i2nkb z$t%PvmOFN=78oS&nb*r2FTC9&CnGZ`9^o>Hp6*ur1EKpCa{qoPV$m#~t(5aiu-kIF ztGa$`U-x}_rP_7u5!#;;wv>|rqK%pSl~Ez)3;a%I*~Fj}haLJC`m66msym^8LSya% z<|^Rea*YdGcHuD-A#>}SH3iLLAAkR@zi&|r_MNGv48}?Z8eV-Vp%|-rKj;kY@-7#Q zN6fl9RXXaov&)&+$OH>zay+^74n;B}XkS&oqi5cN1#u`+$olNcS`~ltKy|c=#Fi~v zgsfZt^4K6428O5!IP*eI6RBx;>(14DOg6L~A3U9l*m}_)EeAx$lhz$L8;$Qrnh7`7 z{dJademR-IYL&pkeAsDJgY7*^3$rMcj2|Pl6&c%xlHPrNAE;?kp%3t87~>Up`1*W1 zi&*uTu#X>4jP%y2ty{Nly@*5V)t^JsFO#Fu*HTqd@~@^V-xck}<_Sa8@j3ceS$lf+ z#6u6)QTX?de=sv2S6BBLdDsKG@GcP%T`U8e*pR|PNr=bRXeH|B=P|PheW^Gx=P_r* zr@4c%;T+$WvXicR5=G=J2AXmm&^Wr!Yuc5WEf$34#19c- z+N-$KKLD|S;i8X%NZ|+t(+7wa76PQ>dt}l?U9W9t++9u`adU0R!iQNt()tbJ(zDCiT zcunr1Y1PT7$)2X%Y$?x;7WSzF=#>$LSp31x;|1OmV*^&4WkG_KF{7*R9K~oodjJ5$ z7NSmBTX`wx|DZ0u&YhEtzA_Z$QXjhvG0n96TV$cJTCCsz>N0{Bl@GGYkm5Ox6~|i@ z85wE%>A7`eKg(b$Q2#hotJHjhWVbEM!_9^y{rsl$@dM}@9sc^Yj9<|olvi6`&UdLj zv3vC-+f3{Mx<5+s*<~d7bu7oUGQz&;z5;t~q0RCi6Fo_N-RNJvXWl&DzKfY)HERK` zs(^BDylwu^Z+D1Iz%oxzaEgkG+O=iN;RQ=KR@J2#8}0XBxoTA;hPj^YK<}c=%uKBe z%it9(EWTb|VSp;C6LqywfpT0y!ToLV#d&vLg#oHHE%soOla*CbR=yXj5%&a(EDcpW z>}x*l5)>4y&v(ur9cWJS@mXnf<_zcd?UDc)jsp{~1~FG7{zUn_vLZ)I^ncp1eY=d% z*nwcdi%-bi-Koz5xNTA3i7_J$f|e>eK`Z-+UWO1C8$c z`bGkI@50`Z!$&V&dfr`=5Qp?ztiwn*H)|A+<5+(+9>^ysC_Xin_o$RqtX7)Y?K^kW zrY1%jh4@>_UO%1F!WUzD)~Mse60}XHA3@5c=Nj1insn1e?fSgZt^8VBbyzBowq7y# zc!N8;cYhk1o4j+9mXhj5KJf#zkxwVQegD4NDu3z;Dw&dA+W`R#JNxe8={;f)0doM@ zvO^Zlc50tnx22w|+mH6Ib!pI#GiP#hMq7b$+{3V>< zCQ!1{gI>mI4-5?qhH-+(d!Z4}Fz_ieu%Csl{=5|07aktYM=UHPY!@wDxRak>8=c5% zAf7q`J8Xtpxf|0POBes~hw_yxIRGd{kz$pHB#zSE_Qk}E-oskw(yG+z(R$ z0Pe(FKC>#)^&rN_$7g@By0Y?Pq@m1FzJX>8fxB1Bht_Jus2&w@9Ib*J6PYGohn$Fr z?RPhdXdy+Ze)jB>##u8{Z6~KCax#Hv zlof$x;dghb&w?`_DTC`946k0l9?`Aw(`p|*S=mynsv0rY|Nj9M*8VLD0!|HoOCkhQnIeD^+My)?&kdbyr19XB@8McOL|-J=dKb= z9`D(AYgesY`FwX?D+>0MVXI;*Dk^U0T0-e=y^u{b$o|~9sNCD=mcWUfQHf^pY1kzO zNy3-EMW8u%4EkMnLE1LyWpSAY9@)G$(N5K> zbxvZaQrU;tgluFWu~Q3Pzt*{ITxFft(aF)i9y#gJ{O4JC2g*Z>2goW5+E7tTO-`V+PzY|hDyY~$Z z{H?pIY)s`i>|g~Z$@kHte)a5}oI{XF(-gAlyodh3b8p&T4nmCpYE3Wuzdw635nUlB zP)_yMCg;4Alq>Y?O{ajMDrJb+^*$sUgsfrA)^6J+;+IMMl_Yz}R7a-Pjd}Ko^!)v3 zUz10{L7$Wm33z{Y{hv&u%|AX3;-0L-s+kcE^eTsecX=*sRu|89Y zF9&BJK-fNU_v$-nQXUK4av#C@#_b&)J$Qx;_9;G-58{CGqfooEhR963zz9`G$g;rR9K#8&eB#8z{Ra+UUZMeun;=0` z|J*t}P4~iuXVme+@VRdDchbdLTE)hefMZrp$Zst+Ow#Jh@x5?)QyoUk%mqb7_3)H? z)Rx?2W~)GDwSj$=Wn0l*Ta*-&AB|NBcg3$z?G%0@V4tDu>6`Dc#&>dYm4pWG%&=-s z#4al5?n*K&_Q(PapeoDOTq8kCW9QDD@FqW?vDi70#0e+^s^Ct7uX>zKIZ1q<>FG%; z38w_DG#hl->i+h2ujcjnOzLQCkK@Y(zBX}&A&6xuasd_G+GU5nyW?MpQg_!2vdvX) zB4Ly{clLILIZrN1Pj3|QPdYpD(|Cw+rdXl^JX3du+fKsulJIYSWPBU<1>ol{{1C9V zwzji%9PPCh7#jFl{_OMT&%{jwVS(#q+x`3ZW6>6YG)~xGY{nlrQnD-Qg!iq8i`kp= zzLo4+5A*-Io=k{RuuwM~88k|ZM#p+dKH1BjtS6tA)z9fy`AtfVyzPY_K5KCnlUo4(qN>N)mONF!}c7jRQK2XecWy$FfaQ4R}Qe z=%Og!j6nOBcl{$en9l0>lWMwIHsviZu8)8R)QSK1ig@=QQ7w@(4519Op~9un1-HPYGD2BuOepOPS!b{xD~|u z7zwpjtwM?Q91+q=u>VOdgaotMn!#oYXA`#b`8b2_o3U_lghmdLR$VYU^~z)L8*pA| zeq`sW-`MUL3XM^%8Rzro&);8o%>%V{F^xSJ3S8zmpi}K_k@O6Be*ps4VOtJY8YFjO z6YR9h!F-xzzh{oxn=^P#w<06~VM7-PAl#z?VH-po)Uo*vROMo=-C$3yhYR6`>aGYl zd|EvycaB9DJwLA1j}QF|hT=ZU?mayCvZ6jsbxU@JuX%!2uw&Cwu`B%@${s<27mE^0 ztBZfib=YlAv7Hz;jhg7hftzL1)f#r|HotARx`ZG<|8a>8pSqGIZZc=VdNnS8Ac0vP zIA2kXlPn2!(CfQbtXT1B`Gf5-(w-a5Pz|4!W6{9>lG|qbF>HZrBM2ipCp(i%q51jY z&$$cY+i^n1%K35`t#`ySalK$;ld5;Qebvo+l-zZz1V*&?HDs`Ql%1V7*Y~!Vp<#_gt)2;-Cs(%lu*7->fA`%mfNupI*0tT|oGlAp5%`M!r(kBs3z2WP z5Rth{Z}NrbF_!Z-w72(Mb{6sIJ=IR^KYiM8O|k#)k1I+_OKbF$<_sY4>;Pt~kZt*#dfBCFJ`q`x?5 z#L2O+%S=r=3a{`yka=43}x?^$QJ!8-z3)zTQz^#?8E5gqh3?+ z3P!;3QPM><9*cxvn$Oq;RaGyXgfWOJBN3Bq+a@t@-aNZnT;aWPQ-)PYV&>NX)w^AL zavjHNU=BX$M_QtFOr!pB75M$IXl_!=5Wr%er~Rg>*$mD#Jzj>yTpF5 zOt?2iJr!Ndn$2mwQAp1LE}QEGI6iW=lICzd4m}!QvtmUU?pe6H$j)Bc`05x&uL6KX z>ZupM?OfF^sAHQD?(OM2 zi`=j41%y}{5NL>+B!R=0AuAkmC2!vB>%GSziww4Rq!LoCulbM=iWZh3>icfNsvJ<8eeSj{n=%mZJKue8sp zITY$VGhI_C*7YgTxr1fqoac|efor-F&`>euEG{Z~5WA_t4r>P?X|nuQ1v$C>J{I<_ zHUQY(Z&3Ovd}aJ;XwH=%7x+NsP;aXz*o*wcoS&;OtGCmxPB}ouR2I)kAey%mQ=KXuvq?v!R>#;{^!fRRdF1O{#$LkTKi-U z!AaAyvxRB0{ULB;q)TDHKAdjdbxQZ)k?HJD>{D`hv~0zS*8A3ZQ={5@v{GO1a0(XV zu5Gp%Xwrp+PTP3*ka6jTT=Yo7)0AV_5^B>-%EJ_dYlDp^vvwH99>bR(@xM7uKGM`B*Im#k}li? ze9JF()3F_&FJobRhv)g*Z@*PV%CFJA-0qtN$y9Qh<3SVwdf7?8_E>j73Wwjwnb(%f zH*AQ9Cu;*7ZeUE;g&g9sD-;Zm$$8?h$LbktL=va|yXd}OE>(;Qsyd66a9H>;b z8-3XPJ;<#xI9n`W>N1B`!91)^WwYhWm)k9#E4||p@70&#O1zcJY1`A~Se%x|M7!Tb zHyfOAM#hf9VPQ9J%7-|yGp*a|uh8UCwCmcnYgH&j$Lg-rvTrGv1KX2reiy>5b=~lTqxR>X^sdf zG~4rXphc^`oSaApq6MYS4jf+=_OH3Hc*VW{GaL!8pp z+kWF&G-yYmT+xOn&1c`Q129Pm5kL*1&LjjDdi(b6i|qg2`Q}Qt&@3GNr;JWeszVy@ zmFF4T_Br(KGkw3_YkE2#GQmZOmKbL49%q1ru77dLW&u#qt;yeoP^Lf`>&rgIV_{>m z;mx=s-`3$S4*0m-tL$; ze?EbV>}ugER+2MFKc?s+d+B;Uv$Z80NSkeaaYJ8yx?P_Z{Ai!d zf#G2r$W$G3&ANAQ*$DiRcTU+7xOb*@c&9HdZ+X0a^Tzs3S!r#MkZp-_B8bImeJLp^ zX-<=N^ zkA8hjHeq<3y5Z z1obwR3^CR` z=s0>VYT`9~C4lpCy_#Oc6{;NtOU~Xb2Ut3%uyDiY9$}l#Q{(=KYR$pvQo6hF@p+P> z5oid%Y6xpV+cJYzwmpv;tjlgh$p~)W-16zUQopj@zD)dJRjkG?iN?}k;Smtz0NA3} zsu@&CT#45vf(A*E{go`|JWYZTBfOLj23M*ZzM`#!dXpxoa1uX&<1uHvhra+(sJ`xd zSN>)>b|@4CvZBFexRSa;Qi#We?0QY20}ow(h6t9ezl}sU4h~tN{Y9)+yNByLJ56-a zuhKOO;w<%S#yTs34dJgs8v?iAxN#%KexS)U3+fSqzK8z!^=!|7;qBG3vmVcJ@oJf~ zDaOUTfn|5^Y@PS}@0}oHrwNaK2hFguvphVwe*mFF#jWMr&ZPg)%|`+U5w(=Rfo%pj zlZ{WmpU~5LB;~#~6xvE_8cNUc_kg!v6Do1@(}qxcUK|0+(0odfD1NWCdvz{6^Y+n> z3XB`Ukp}eq%j+pW_aZ{YEF{pbkM1U^#f6zmriq|==)e)%vU70(pm?hL7?ep~6g z%jNCQiJn({iJMHz!)`QPowUfFAQ=Q)I-hxysE)xVe}8`m_`|$NP_=*kx_%?+ENk<2 zPsa1zdiF6IaSwp2T1GeII%c2&67v*n(T#M$^DQn&O_+&XO+&cQ&s^CC6(Kp81g*C~ zJRJbD_&j)U{7j&``x27!^%+T{>q=cjYQEwmqTTP?r{opag1w@j*{RbJ_-`GCXNz$Tn`{__#0jfXyl{^-bo ztWYf@hbl@J!M&Cf=ayNCu8c}JwN;G9W^PPg}^pyd35LPpXwr$Nh zkQeeC(Yfz~2Tu^**D6DqMXnJH$L@;AJ1CEEcvV!yg75YQs3j;d_Vz9g4rzEv)qv_^kfi7aa^O|U)=rW% z<^UF&92Q;O15hDc>aJ@3)u|=2SAbnr0qx*D-y#mGy(|D{Wx&QH(SWee6h}fy*+I*! z1BiZr{3U!G!ZAM#e6AY^SVlTPJQ4=;S~VRaEeCFUdTN5jNzw~|V2SC~N;!L%uZdeX z%jCzmb|sNAjz^b{peCUTK#FC8cD7vtFzZO1K2l(Is{tAZdt>Fsjft?&Na}Q9o7dyW zLEwp-tA>28oZMX`*MP%)5^;Ma!Um?17cbh|Y*LnQlQKcuKi4)jPvko9Z6h2{ z>k(yTOYE*C(+T@x3Op5A*o+#0L)jl1g%)1~+R}|ZY2R6oZA`F#f)srI*bgDTsMn2q z%N!@VqL5Q-w`nDC3yjPNK)v-|3X2ylO2tavqx1Yj%rxbE)n3X{VTZrR?_TFxHCKI0 zPz)WVFGx}hw6pdckS0s=eXy`5k#CQgG(qHz?j2#c^>K}g=F3PwR%J9_jU(Xp;ln$u zR4bk+vML4(X$%bwA*24ZC+^U#+qWxF2J{$*wZNw*M{X>d0FG=!a(4Tk-H|4VQ9#cP)8i)S%tB`8=iFZ*l%VC>`*K=|7CfMsi~>!)vepMiLhlgR3&I@qGZPdEBhb-*mvA-hH`-1jdWE? zqmM^4Hfj53&bJw$<4Y3c0KoebY&kQ8rO!TYj2WAuRrPgY_H?EeLes;@BI%*3)}Vb^d36#5L=}Soeh*d zH;UlSGA^Vvuq&@-msdIPdrLU-QK^@|gXn`jnkyP(Y-D7L+o-vKmA-1@#{O5gK3O5- zL>%9Q_J8!PwD@<<~t-lRYOFZJX&=&9Blm3$N7^SWCRdr1FVH)I0yx|Z{1S9yPgl$ zcN;N=sqprHH^+87dUepxoT8$JiAgl(jzxxhB6#|RG!XdZ6BLseDPm8(}j z!PBA7ml6o)BxMQAR0BCrtd&Tdzq<|`P(z4=1ily9nj}{Yx770PoJXJgZSN+1U75L9 z+hWdObYNn9^plYzHp7y6D~^4QQ%vEpx=H5&x;z{7HMEOT1U+C0uA<+q`;vP#0s<=j zm}XX8BK+d{$@Ax*5(rWkRR&GW?P13uccu$Ga^t#PhYo#unjOhOvZwNX+q1E@frzL*bydM#A6y5_}rDt@#TN9 zeIDCfok}~`w{2^L8%tzgL*zo1Qs3NlOSu=JibX|BE8t~q2V6Aby#S6~GJ@2*jV&}R z1l(ssbuQl*EsF3zAm5y4p>6tde%JKm4sTh9mN}+V4l#;>6=Q;iMVZfC44``|k7~X& z(Vv47eaKF}?m;SrJX|Ac9RuLKeojWKvrY(ZUa*g*P*(1I-7xDRDL+5lUR8m+G@tz9 zU9n)3OlWA)#Ogf}8gUV8^nFAp-~G6HEa=|!v^EmhHrAiR?&Gjt$ii-dYQ9*#+^p8t zR%$d2OMx{@@Ck(C5miS#o-xBNAxlR*FzJWxsLbX&ooc>2+xi z}UhcO-aDE+XwyJ`ah&$T~{OFxssK& z=PMqEb7S2>%Av2`J9lPT7cOs{z7QsL#VbPW;8_P@23yX@wQjd!NWV^CT+#!6D{j%Q zfg`z&@(UNLmOU!Hd%$TTbKGSsuX&9E7PL~@!bOWziOB$k2&=zT@%|i2ivVGZ?E{BT z-b*Q%`$J6Syzc6lYku2kbs`k;n0UQCJJ^NnEKWThE)}l$UM4?Bsb3Mv5!g~*GoRt^ zIMu_4-&lBTxL*^0U&!`?? z;ZS8E&j#qjLGS{FGQAXF%Avmvl25SAl*XwA@BD){oCSLY9o|`mOI6HFbJ+Htm`MI@ zZX{;XVfbEumi)w+esSxzp{1|>Sh}PZUX(fA%u5hgfg1#2QsZkE=c;u)Avf2(k`|hfpjo_Kx z5VfoG&5eA@kEQ(G0XcutN4-m^AoQQhlHT|PFSJrurS(A=dn%w$* zVS~jT@4qX6@JG=TCxO80cl%gNY-a~`#{>n7F4&~<+9wXb;ZQY+Ha1+yQM40ow6b;t)LyOGWF<_F}! z;LiHf(u@afv2)`Wp0185-PtzlEsD4)@Qi}K7014;E3plm6;6^5$=&H?rC1&u{>s&D zd-Nz9AVq|oRavGFGbHGHlYH*yYV4O!i4MM-HIi0DjK0rhqlvhYcPTA1vxu(LS1A8) zOl7dCo+}*pIO({w!)z>6r%%KyD#ib7dx!SQm1k7XNV){nFdaWPwTv%eP1vCFH;>t7 z)}>#hwoQgeDqB?>HNgJ`oZp15AWpJeV&*kn;O1Ka|q;@W?xJoaq|)Yj<_R@`wc!>c_`Mm+$wN zq0o02`MTVZ){qbZPzO*i91nkd7rb`BFsg74KtXc6;p*xjd`RbvYQ>`Ax~i2^X*=WI zIk5@ePs-rf9@pTiAR_oQAXaLA*5)I#@96Q*twUwSdrm%+)W7;862ay1&Nf)j^*pCs z2pfF3!qRG@UA7@bV&LQbv8dB(}JaBf+Bs<5_|hgf8)yFuyj zo*OXTJ5QJG%N2~ssxNfSOtt#g&mxsqCXH~JdUhgjtE2*uY+C~MIu&+NcuMz zkYp*Ln!vg1#>XsK7vzxv&)o;mFi5zr_Ox-udxxvN3v>B)YXxiF$Tp@aU{imspzQv5 z$Mtt-QwZ3Am~(wMKu40efU7|)wCk5_c)Uz(Lh8T>Q~_9hT2YJ6fFt<*=aE+9d5YO7 zjRC{h}s8TQfs#yI4akim~ezKr-%CsUrR=RX&XY!sl8 zOTr4z>yX|VDHR?#@fHx|1ftg5wfCJ#R(&?9YS2LPJfVv6+V!3=uUm602O{Qc_za7d znE!x^XeFps@L5~-Y@hz|*edTw5qFo>|HIyUM`e9>+oGUGV?kp@LBImi6e0>p6BP|2 zh)5Bn3U)fuJ2s3MMFAm769wrYAiY=+QBXj77e%Bu>HW?{{7kaW9zm^pmy@!|`Meq;CBn0|r=t@5zbe@cm)YPuf}h9kJY%p)mrfgf*2sS#Nr zm7bbUPF%zZDq}*7mUPQjLlph^xGJC|aro{`G38x`;8JNOp1PjAe&x#CrIsbcvjd4C zsyx&B444_f`UGw*a*Mt_+Ili)>?=s5HQx`V%GIiU>+mX*iPTQaE!v1LYWV+Y!VfRb^<{!u*L(6+w zfEZiYhUFgCa}w1G@k@3(jhZt7ZrbAg_UiJ7SR&Q>)iJH8@woe!5qAwwDGaEhUldV` zcTFwt)5kjb1=t?m4{HZ`sIFj^Q`fe*O5`0pPO$teq+F++h@2;IQ&2#lC~WG*$i4S# z4hJ~Dj^3^?+5I#lnMr*QgX`b)be{#s#m;m~1w=PoyO2C`FsSIv{ky?tN0n~N-C53P zs41$EFeFp{RQLCnGV-bNs~3r)R?7w~WRp4he@0Zs9`FIb2T)RKxr7I!Iq{Tz#QTdy zuKna@hI8YZarKkEAlg(?qjUZ4#Zz!WN!~Io*P0XdsRLa_Cy}m#N*t`ZH$T0(?qpIQ z_()#sioNjCA1lKrsK)q%yH3shp|cssOx`MAOm8zP=HOemc7wIYGWBPst1EKs*Rme) z`GBs|qQm2z<&oY5{1NOQcNj-5a@J_H`uWgCekAKz31SaV(%6j4MU+$OR~M~Dju@XY zCH8zuGsQR(uv-L7Di$qUHe$1j=PGEfpqSDs_X_=g<2(B>@s8|11(3-70$MC=jVo$I zBpgw)8mD>)`Qy@4Wo~o6*VY|3dHo|mHA#U*>>5*C;%vrIHgHn0qxZ^Z?`Z+m6TZ`m zZ%XMOa#B6pJ%`rW$QhZxLknXFOQ>#Y66^Q}PrB86B4@mVAMcEnonT}fzul#OGWy)Y z=nde5u`Mw%TY==GyHA_cE@t;Qk zMgUsGrY1_4+No2a6hIL*`6cT|zCQFf%OQGzS5bG9DBdW|Jzkm&3zrNXy*OV`uYs(h z#m_G+tOj0%2dElgUjuaI_iJ<|K0jFID9<0`Uanrd7LAJ{a4SkZz9-RQQ4+cbbccke z$jhtXn~4bl2(ltx?_=yq<~%T%kSWxrTZY5nBm{^&uAe$3D2bxb9;53-PbL1%M*nEh*TEKAz$fj;N?G-S z%j;zLqpiz+8Cm)@AHg7mwq1un_Mo!Pg|}QbvNPiR0Byn4{*`mhnX|J52b)Yr-8Oet z(-H*bn3n$L{LaKe0ZYR!YA6(d^Qfkvppalfpc&A6;+@iCqYg*c5D9aDu%Xf#sR_(c z_X2)9%P~%_2PjtO_H1VozMPsX|o{HN8+NZd6 zM=0F74x+Ik7uj5!c>2ccTWryYWswh_Pe=3*3-EM2hys~LsCEM!bOC~bI^ydxHKg8M zosfH*+cJa-c(DCJ!ajFzh5iw&h3zL_pF^MV>g#nNQDK2~e30c(Lyi(^X__lpY)EqPu;J1_-0B4uk0Ur$|))X7Yt zKuvNEolKj%Z%o{l+7kZ@iYRp1#b!X3f_@rj^T=A2kkcsR0O&^MK7& z+HmZgGM8LVQf^~H=uVT5J)@Pm&+}e>Y-M4X{ug!`^c+jA!O1>I%>Q($Y*`eq;78}o zP#qpYz478#s#3P{9(?Z1L6R2|CVZFewRpbaqb|Mm&z)Zga94zW=MFt9>ZA@%rG0U&3?mgHNDDOfc3&R8=05>ZG(YJ|D zMhMU7%1Jss;rK*jYh?l&M&TeE%X?9uiZYKsf5|Y&TQr;U;fO2+I%@?!VWv@Fy6ZA_ z$p{EBUWRPGb|iQ=sBveG_dWwP`hENQ`{-N9VnQ#^a1PPBTZ3Jn8dmTTO4I?J#+{M) z%_vLIh-F4ItJpM-{~b_cz-7UPL@NKGl3ghS4UkF6|6zgJYaF3kKEPGLs;heY z`yeST^z16BQE~g1D(>2eZyB#S?9Sv}U7@q<{2{&yo1_#Ifyb|;({wMUcipRv^XWa= z|06^+&1h^b9lU#|;9Y;0Y{@+_#`_6ErH@XId!x!?DL{(Z-Z12$^5{1vs31y|QW2>3 z*=`tk91swoj7^)Mu@kNGn`{y(3foEH#^Ka=QAJJ^;)F}V~<8U6l15RGMs#6cJdr_G&)EZk8-sAl-wcsK9 ziroS(+m3A7h6gy`*x1;8Q1ZaUXf9VY1x%ER-QU^g?7I7{B|cO!&z9Ja&UkXPabdd*@c5cS8CksE9%>S%-=Cs+DS5fllL+Ohd3i z4?&)p0l+tqeE=Fi>M6y%-Ge5JDv{Zda)P17FDgo(IF2rIG8U!G!y0g&E6^<2=P4AY z9v_6>p6(psYA7qCYSh4Ux>MvlbE=)H4ot`gR@n@o60U zuM?|F9Z&)qG+dDWA-HOy$x?!90=f9PY!}oaq<`3H)mE~iSqlm|->t_DnDuaJ)^O<~ zVmKODDu#wpgicUqi%@QFZ_grO6N8iUOPlA*SP&{6;qMx@om$xr$@7=7Ykw&+LELo@ zY(`R~{rHhhm}Pz=goF7uVq4L8{XqIOD*urA5Qml6`xKjS9=U%ULYP(sCj$FC?N$HM z^}8ORD_pM+$)qb4aFMdU-IDqwvaBaId{SEW`=L93>WXA>|>$fw*LhuIQJ6;!B$ z1hEJaw^70qB@?;X(=+c`=<6!4yhe^gB!gM*H!&Yi@*DztfKn+Lp@+zfAtbPZ=8)u& zQOaQ+XbD5)@(64jY6C%X84uXR3J2CTZ@o|UNR)rBldGud(tEqx{>jeF`QyRrZYI>!ZLl znU!{}TQNg9)XZe7G?(;;nPQtbF~MEC(%yV5zS=C&jGp}mLW1n2|bxv(E)YjkrG9`x%rGF835_%d&+TFT!ER(xE20`l%hcz8XLy54Ps4&9b-7K}G<%27kqtGb#1iac`l8Kp57k z436Intgbr9KFGV->E&G$R&`gETtB41>8CDPggtrkYp1Bp72l1s&R?tJ=g`&}!&ou>5~#9L5tcE5Iw1dZy)j`^?uNs)W$O z@bIK}C@`rgu#T?|6KSz?W*HRGShumxt9=91N~dVe5Q9`n6oMIwtOru=gvtwMs}fCx zmKW-Axz=0FC;?*PP-bqbLx()SC!z(im%YFP%@Uf4j9-BFiS1!Lq5txXz#!iz6jhHiC^s1`zFIMs!<3Za{If>s{>CPS^&|iR=5>#{@AP7s3GTd; z#zVbo?B}n2Lq!*cG9K?_jU7vJ^AfzsUA?89IDgq{kGpHWFspp#&=yQ_`J^@Ba3enN z2h!zcd1mTfPxmjJay$Hjhirb{-SYCJVR1C1Hih}TT?flvdM%x*pdL974D4c5r^qvv zYs*yNS;v5O5J8vZ^G*=#%Ct^sKRT9`8912EO^)^-z>lDiebR|TxfI;DHYLxw0?*Fy#MO6-?IPl3i#Ut%9v00ad&GqJj8W=H=xbFNCzC9JIKuxVk6$ zml0h~Y=fhtidvK^Z&@|cRuLbZd8CrsRW1S<2~i(HOi|6EX41K1;xgXOEt8HScPZPl zt#UH%OL!~d{s7D%#F=Q*+t?5S+!e}>uCMFrg0+rU_mo#tsXD~eOZyCqtKxQGu%BNz z%GL03_+Kc>p`yJYXPmZ+`Vo6L?roeiH*|}&vytrI6y1YB=3;BTTDpJbltcN?%b&0P z?JD!ax<|rXyh1{yEzPTZ6*TUz>~T`VWh^PSz|p8^_Ia}$vBq+%uraD{M{JP;0Di$i zLGQxXck6(OgO^Q&a$#tBDZ_YUL-3ZVXgdGd84VRuluqaa+{L2RV(6}J~Kv7EA< zBFrs&801cyW+}`wwaNTrO;{kJAQx`RAp-o&;!}7!@ zoBcmM+tpDedj-Wg(vd?73QsF3_#zzHrg?%HzODda)#kWU+US*Q^CQrwnO5wZ<}eKW zoV%L6WApLfe`I}6Y8`i}|Fql7Nd1KGFxy*|=q({!dQNxvdLlIRI?7g}v`coKae>lA zi{yR)H;x@Uc3sYyDj8(!YDk=~<$K(^bqx4OfJZ#iUibA3u8jw_BYC5hf{k@HmWV-M zbIMPq$LMC)Dhc%b-uM~0)e9wEa5+M%h)o+8xZ|0T9A>-v42Z}9Z+-BQkpK&8X{+c$(|CJ7Cc?kb3h)`kl0^>^OlgiFj30Q>wY%Cc)V_qSd*=_$d{S01k? zP2v5WbM6E{{f#&gg*c}X--;s@h8EA<@i{mtQ!~_g>;w0T8PlGgaWnQG(By+I8;*i) zW1E)MI`jCwdNw2Ymw@GX6~{Ggjo_YL%GGM5jsyyH7-oN&iHV0sj-LaZr1JIzN+er{ zC3Ow!%F3LZ51O0>0z)w_w$8!4`fOOVvz#L`B`96Z~(3GJBM9X`3(`i0s`V|wL!Zq zUf$lh77_+3AtZm()~*#@rqaN&SNy^zD3u#RO>b^UzR}|O!x*1I@9D_zMz=Ou-IcoL z%)k7DKXM#n_14H&&laubOLGcHBsvF?r%_A9ymJPNP|TVL+yU&lBKmLjJdcp!3u@wX z5solWU0*x4jf*SqiT{00N=F2)cS7-fwK5o2rDR(BG_uTDJwoY4&nsCy(mNY{4z@C_ zdNy#~H6?#i{C>1@z+z8p-_YvnYUQDmb#X|EutjX-u0T)ie&M|385Cz<%|8d5%xOoR zCx5q1>(7U}kBX4X`}RDWaiMCyG6NXfO%CZshjJSv)#Yey5_t(PWTY-oTkyAlz;+pj z!8U!Kc&NQUE$PEzsZ;6!t>TEl<0id1a}*pNcusN53mV+>kqw}jwPt$jV)@@}_Un_rra7hG*tTx#Em7S^Vf`>IZ%3IWFqnYr z>A-1O2JDj@DP{?AumpX2>g|f~R&hIal(4sPl0>680uk)4mB0==^ahZ_sa!X41#Tr% zQ)5|h@u8I&M~Eq_&`|4d#T;XGu{voEPd)oa(|(+F<_a!3z3We-SlhkEQ#9|@D>_%7 zsMOm(8O*y_h4D3I&o@==}kZ6^)+L#SkV{4R= zh%TbDBHEAA+G`W$r$2jdOG@wK`~(`SjF_Zkmg$(xu*f*cTruF`aMSmz(kb@kw^QLqf-4b6h=YqeI)^?eK$rMJgNsJMXk|!6gr$2pVAluD5kU13hz)tB zj|hKQTf`Kv6mp4(kEyRcZd^kS;XOB+`q+VTBlV)8eCkU|@DKLJe?tVj1bN=1Dw-}D zPO!`31?Y-*tOT$-xd%l6#Rk%3i4*~4UDERW`EzBCg!ZL`UNkIpNUgtcgL;G4Ryrjn zN*_&~p)$rjJt99Jx_pipjEEESGOKa0ZHOY%spm~ncC(~W4Dov$c6#75PH zK7)U794bE2@49CIa{=Rdb?~pJ9UqS(!HCDl`)<78b5?Eh+@aUEI~?@87Phoxx@I+P zXn()4LQPnxWa{$YVWND~=JiKD_h0eAdQ2s)w)-n-^f3V`WE#uHqfV*jnx^%4bxTXy zA*3TJRe~B%o-3Jt%*iGwIebM)efog5Ja&%0h~F%a-2|Y5mBcL$3AfH`Fk*9vDc88j5=ecfhHS zM0CYuY=F$E=%J| zfsiy-J3X;v2GEjm8l^`EbhT6;|LUYwSN&_Y@J`Jari#o<7mBpU>VGg?sg+^!w^?A5 z*x}Ckeol852uCx2?*7H80EIH-E}+Hv4M~GuklDN`9%Bm(>Z;ivbsBHd1BRngrDx|5 z#7WIzMXo7g;*X87SF?q!KZuhI@1IG|3}jLkX&0xE>zZ8G(Qr|^-9OjRwv`ne*IcDW zK)_|rr%s(}LxvN#=xvLD!enx`>;FmzwI*X7dG;{1I8O}UHIzL2`KfdEsL^f(P?phz zk;X$fgagfw_IW1T(fpgNt)v-N4+QVlwPL4pxLd`I!W_Rx6KXRSP^TO8lFT@NUZ;TItZ@ z!RTOl(Aw*7AHT`{#?BuPJsn84%i4yuf{k7R1SQrQ_$U!-0dJ{1&M7M^o0WHW?30nH zfKP-$T@Cw=uCAhUlw5a=gT1@105@wHg+!n;Fr!gRVM{N&WgzN90KhCO8e!8B0eZ)8 zq*d$K0Y@W%)Uy^BruYS}Eq=aNyX}~J{%nr`Ry%HWNfj9jC?Fh>4<0;Mg2TaTKQsi&9V>4lzp9_&ssoBtL!7lkNT@!eGcptBc?W{f zF)UGd2OK%x>Fwm}AyI;!ZR4;6(y=wH?C|T~us3wNK&4)X$@|4K#wqCmA_WjZ7 zrB`yALawn3eOG%83H2I?LLwL_XjJMdmK8hr1(lq4yZvKpOqk6O3KJZSH^CwAYu z%msTgJ$jt`_WdCjkC@BODuHx6_u4X1&eQW3EHHwdmmvnl-Wvz`BPk>cih;~4!s^rr z49PRpo8;4>uj-|nm9{! zR&D$d#U(dN?%WgjStnC}|9Rpt*zs^&tRpPBdxZh%-cd9>DR+kEL>2QbwwE8+zrPI{ z4}pYOlTFpgOxV~(w{1HNm7(RRgPe`*JAhr!mZnajqxTeOe)#KwHFbfj0;N`@KLwA5 z06o+P1)67t?vd=JmaF^jYlw!7clC_mY*2hQKi~rrY?(yD{4f=w&3ppOFx(h1a zpb|K_pBy#oYkDETwi#!ufahs+JPO{uvr6;ia2ef;PLX>Ct65e;37oATSp!mK?ZAhe zvkkB~3anb?nNfTF+W_eFMar@9iz2`5)my!GZN!sbMNGe0uOI4cCiM(PX_HU}PAp0g z{-dXfWyvLczH~n-6{bex<<-I=OMLB&IevQ z&zHV3uP5zX6a+wzU)dmSCV(b@rO@Blbr|+p$50Uwo?dAo4G{?eJxU`u-JuZDAUP&WMqPpiXae0 zt`vKD_y&+nG1Ze4PO+#?HFtwyM6`7J5v~+8b>nkJKQETifo8X%KZBWa6N1W((As@Z zNGaPP!vK)Dh)(#~I)&Z-%W`rDs?+irgK!>>-6&s748jaVc zm|FMD^%-;vORSOg+sG-Hv*q+Oaf2)O05)reNV$peMhIUUbRRrwr5sI%7#X*andXc= zkLELHZS`Pj6&25hV`|yrY9)7LbFJ+Qf7PiG*QWn@GF7djwYa?8jH9Z;mEEHnRTs0tfVJyLS6epo46M=+Ox`C$8Z;_wGd!*ABUl z3X+gd2_$17dn1_ytIo>90E)JklfMc|ul;vSph6u)JIA-<=l5VAtSbQgLJ;*0lO!m0 zKm~3b<^(hQb;2`_VJ%tqehP^E6@(q5ZmEC3E45$jB*fy`_`vrD%MfLe)1T)bAZ z2z?Q(bm7wltHN(hHNXOGHXX)cQ_WVx?$EX|H_nyXFe1i(&UVuM(O;l6O_5`pRwHHX z0(%F5CkMlh>av07qee93sSwNLEWkIcl4!)KYGxbt73V=bp!oD^8=M~>AP4Zse$0au zC)M%2AR6_siLyCoD%A^6Z5+RWxTlvn5w(?^9vhHCQX3#wV)^6H&^Cl;(eeYbvW}d` zR~6~!OEU3nz>{zKG60=sV;!(_ND!i>VRBB0O`LrxO8(`cqi*;*yU==gptrfr%w#<##5Q z_*GhEF-pQ(>`=nFfqjQP=(&ne%O4fke?squQ6{8 zYHDg6;3GAN!#4s4Ku1Z)W!fm%>Toja#LEC>!UtNeFaQ|sxJ;{2+qElKJ|e?LI;oNc zP;t>yAcsU!a8cI@v5I&upnS9eEiQj?c>$LkAQNT$AF!Zd<*D@r-oQ&KDMLcCgR>uH z)KUIpF(oK>aI$fest|1=a%LnZFX)F_wj~l~AVk_+&r10}Q%Y9q0Gpp%0mlcZLhB=2 z$KZu?4hX&bt704uv*ZBytWfiq#7}&Dhk&*tlBi;Vpf?)Qr8k@S{BL(Vux#f4og z5Wq04EE>Phhi40N1%Z^aoxeyGS%4zS!0t=S$_U__LT>^74tiZ*Cy<-*ZE%}vaU$=F zAAj70+8Yr#L{4=S-wcxema3I$K6H-b=(npS=qbelkZ!xmtg8eox8&V_D=Y&#DEK*G zb9b*OI0VLuCpqT>s1urLx;f9lVgm2CpYx_fuXbwnR*T3Bl?&dx!4div00(%pOa&igHC`{VQH z^Hp(yXivn0;CcxCmdbIgbeR>A(Mwo%9;99=AcR68;tc9zz)Y$qDNjEPlJxP+vWlPA;blO<;Zu-oO29LRF6o-S)Fo3dg>|8 z!T`m|9rqN-evASixD0igdhl_CZN+=}w_3nzpw=x%ZY^-sK0r!;^Z(;hl& z>4Kh#D)JmQ)3S8Sv*gBtg>L1LMT%iikuCWu(Qk&EpsOkng+TUVEovj9?@U!-T}WEq zYIW@pEa_;-)WUjlp_HYrIc%`5SK)y6cWAn}V0~jt3@QsWv;#nyQR)~ihz1x<9%JSm zL4HMC%Jg!_!EGTym3bzDS_gb8FWBY$3^p`$faFOW{yCF;?now@jU3J<|DMDn@`}h` z?RRx^{LsUBKmBwbo>5fR$WQhDRF9ne$C_k-tV38x$!tkv9P{fSC0&=dReoybw+Fx8 z?ucSp*Eap4;2u7z9e^@*_lEHQjUdD(3bBj{>?VpwOg;)@5b|S-zEU zeS4^Rf@u%BKXNa|x&(yg9YoHc*f^@q)no%nz${6CF$(7c(2OM#%ho(bvXb%HgTMTd z>@vUru?lY;QbP%{`19mJBeIKI_f$~!C~^XI;!2+bs^ z2#Lc-2n3EE+RV={Plc2(y$Ym{g1^msAZY*=;KKi*kLo$_E^6Cxhm(_Xsas~Q&hsDq zTGG)`UXbd#X8H?~l-i`Tp19b@;2=P&@fK7ZkY{XU^JoELs%5yghz$~SqH7?V*7Qyz zojEgeILezenSWWlxOQ!1(e3{3JrvzijIh)K9TzI`?RJI<&T{?^Oy|Jk?#XL(4&Z! zY#3CRE`kRO2cRm%v%6?J5sgz}iyG99=w_%J8^>T(x0MDz>mKb1Fme(Of1^|Vw}}yC zMM7v2k^E!u>!`}1LLL{tN2L+k+xM6)jf@jX&==^PFgOMq&3(4}IvX-md$I-;bK?vt zOE4^t2!S%7j_c$C_`M+72-I0bbHdUF9zTAvuP-^`D&Q5RO&yL24O~kVAeYu*3xPHC z_X>5r?mI{bbHN-E_59;BzmQO(LcU6-CKyBzY~pRTb}Kc_>5(h`hfqlSY3*zG^QE21 z6|sRvwo9HGzp1DGc3YQ2S;uVY&0`gB_Anp#S(a=YDINS2u^-SJDfrM68a6nE84FqeP`WWN zq+JCy#&dZ2`0!9I%g}x%otiD$7niymVq3d`{`x2=BBZx5B9^^-^C8oDsqMAN(T&a{ zI(R5XI>@Rqx9TXAuw^$O-88r0tE=Ms$1%sVcaNK#U&_yANaB6&o~+E-Y>&>8y5rJT zKB=;pETUH;(A(7sh#()$m0%;%T%$u@S9LzQF&si8Awq*i8Nb5Pm`SVj$S zQ}$Xm$c35zVGhK=!2Tmam5WG~*~<%y&C3pbFBW98K}p9fmGgIpYxd&)zs|}ar|*CL z86`LNfBiw$`tR`&3{A5CdfNEu*;xz!`mO(aK|d%5v(M%KKA|5~*6j26-&;cqAxLmb zLh`Jm1AZg(Cf?odATS}W*z>Y5w5nHlO zp1pQ~_peAdVzc&NtJO&ZwK3T%!mcv&E zgk^i)P5=6)MmUVYJ^Vz(VkRcFJ$uILSv~(Dm7e|4$%A7GXa8}u;vXLbK*j#A&-ot( zrvL4e{(s)yoa7bIl7}*eEHT)mU9^#TkmmyhX><|!(e$hP#Av=9Qct3SA*fSINU;@! zC1g%=h~8A;>V2FbSs;)dtIw|%l9U60FA8R|nq9T()i*|-_zTdB12yda_)HJZA&Wp} z0$NxO6BUHC;;@qmHglR5#++xEQD?8>4sudt@bJU54WuB3;5>;#DTCi%1)*U?1P^M? zLr9E^(1wf8VX#3t&Lw1Zb?GgC`oq2!1ap^KQ|AaV3rJyHqj2^8wi({qi^&C2+ zbX^0D?EF}H9>Kn=4eUSoUDqvgmPFkLWkd;5Bsew;FOyyH{4UzCvp+->rQnYXB@2Sn z9?SQ9Le52#R(vy@aeG6+#w04Xpv*(du>wwIB$j9shBfmns`XyD%12z}dh*Jq#kx-Y z2i{`>1(!1#m~F_f1P8ZQ?%Xp*jcFtcG*y8NuF$2ud*_b6b5@%Di*+p)&Y$15&Ks4m zEfR)WhV+c6GC5HEA3l?m{>BJS{bXrG9CXNg5>=Xgtltk+pY&{p*uyrX0oB|P;29(M zeHRoKCOOulyn#fdj4Z|q1u|pG`x#pD^#Qbkg6udNbT(}?Xn|^xk+;_w z_PnK;669NRb^4^97ioUtvxo1KZ+Xd3iNp}66!n1xpFpLeTQ7RhdVuQy%)i{naq{q79}e=nCpUWV z!cZ5ka*X9)F;mby{z|2IVc*%FAR`jipcd2y?rI~R0+kQSaYy)P_~)8r^)rs4!wl0= zL4JPz=vPKyqQJ=KA-vdN+7kIxe~wGON+-(^?rE$`ryH5AEb83T)T!wJi|USN68$5$ zbZXA+@E-XiIr&=bU+*(uM$qVHzi5Z;3FaN-*$5u@7ojYd^?5LM@Vw7(Z`$=ysbEr<*P!?C=jc^7! zS`rU|;L+~JcZ^NqWN!t7rcZrCcu3}L87Q9GBEy4}(P2s!KrMGCJcd z?Ia&$UC7to99TEi3(AF6)L~SJxmAgAjFUI`zuw2*LS-DOY9b9Nfw*s)J$M&ovaYmI zu5s^99sc6n9ywxHSf(xWnWKq3UCGMaJ%jce7VeI6G9d)4s)kaWOs$B|P?|1nM>gUx zSbKSL`&{#z@IfMvMQlOOmoHx~%HD!v6(C_bkrcoOF6{gI`sLNdh&p_^1}~PQ!;K*! zmiG(<3xLuLA_T1MAhZp57i-79efwxm6}hLzW%eioapWX-DUzs|rnjs~eYIc@S>Hoe zuG82HcJPvqyRZ-9fDjls%Zz3b1cP^YjL;7>IE|(-O(2AE?tG1z623)7+|NhI1+gdB zL^cMEHYHQ+N0sYuXM<+QzMrsBctL2ReT9fjK?!(E71xyCUt3TqD9ti%A;zkJxC;T# z69dnSAS2xeS6_dq?Sl-k`bt1pT%^t*-$L>#+a+a#iw_h}DO(rpJbZ8C#SQrUk1i9j z4gESOp)09RDcWe4+ZP0Q_YqlK|MXM;o#g`TJ-Sue5#WBBPH6p(P*7JdTy@3W-Pcf8 z3|4(4Qjf6wDj(R2Gcc>zJ6OxHBWLi7V^+)gxK9y!&*eTk4cyePD?@NmfFt9!Z{uKx zbzs>Dmpem7U{m*CZlB2!$^I+E*M_Pp_Dx>dRUpDcaI%a5&f@M+m*ium(wuf6JEFr%%$E#~r*_Kfq-QY zp_O28l|Pry8|TkCAc2*M;5^ZoX@g8+_V(qU2at?DOS|t{#BD zs(TG{Kd6P>GeFG+7__R!J$a>)3+AvWlH^cO8|G6q-uQwM9~uUqyU_S^X|>F1J%&E4XqYIAH?SR z-kjmnYR`2f6XN<;QI_$oBK-`x^AdB@$sjdqK%lTXQ+;v9T|n9z|H_8U z`k;dexh2NbCzvu4(=8sxgWW5%{*(E)FLF4tBHwf#M|`~2&6+FaFsOu6Bx}{p8yHgN9HzF9OwEV%uUO5h=(;3l!BHDWvrCCa} z1eQ1Rri8N+;nwY?d7n~JETNk%)LyZYVWjZQn-b&~ORUv(?ZaeDkiRrc%^=%ZWiMsK z{lMuUIPzdMEU||5$*&0ZGk5=5>ZOgMrPa~RawsN*j5j)?`p8X{XB>?~<-jK> zSgaX`;}wt~o2gmmbV8uKhvOf}ql0O}6M(2|F?hE9`(h;Q*3(nW@o9Z zbOEQSO8yW;Rns@EnHXeI-Jr55#N*fN@WI6gHU0OCN1I3{J=8MC1WWsA^)!Qzbjrso ze_X%5eXC@E1t3epwGooaASNmp46%amEh6Hn2+K2yix)10^U@HLHBMfBYe|$r$QbY# z&I5;{5i&q3<(-Ywy0Z;4ck^EF);?OFU0l16hl85?JR|L8`H`YB#tDxZPejvR8Vg`Z z^UE{%0N9zy8uiCkH9hLW0Rkq~6<$Ic%AJDu@3&bSzY}(I6$2xf25SJKrm;)ZrM@?Q zQfKb-qcpE*Rw0g4Y6u+y1!s!Uo=JZn-WGAZQxZeZ4{Z5g+Y`8%p&Yy)QV-ZNd_n^U z4CZb;L>Hk}Y7P320Hw())waWb88I4wCnT?jOCi!&vDNB$y-PmMLDuAIU31z`tYU$i z7s;f=;jE9saLLf#y?ZIJVip7OWyGA8)x}90S8;PC=**Cy5(I6`m=G>cvYAtGjiwhN zIdIQFWc7&>tlY`qp-fqjgCfJM_an{6Nj4U`SDtL79zJ3J<&NxAywBX)171YlLd8n+ z3~34&)gb1q;Q@TiO%YxBezZ{&XqigP>&HWUOvIW@xa0&gY^CUDEPb^^m3NjP<1C^DS+6f4SwHCS7EK zBoPgXLn8xj+V+iD58b=h`-Ku4@p#g2q;>-pI|Mz;7oT<)idR(^oyWZ?CNF6E6Nf4D z{Xy=)2?^pfk(>>q4&#AhX&G<|5FULvH<&BaQe&{ zmI8DhK+sVfLOl(gJ41mdKDZM}v}n1G<$Gc3KGnU}hVLE?QcOL^uYhiA$a>&MgLd!E zyY-TtH)YP`%+oWSa@sLo+;PTVVN0gjDQ1x^NVH~-|K$y$q+TiN&i3N|{It>Ul?=nk z{a^JjLA4pvLV^|$;Y?X)2@b`s)6_!GC|Oo!Qd1@Y#Xa!0|#nf5D1&)gnai(Oac1rrnVfrQW^$zWM3yfVvjcD2jyD zT&hoD;^1Ly@rLM+*tanH(&_}SfZT4yD~@1$SXHR06C0co9qKQjO++eJxbA;ISAnRx zpyO57eg$oxPzCx23ZQRtOj!Hn;u~n>6(st?{J{5^ zNcn`d3HjI{dTpJ^eN|7KI1%EU`FVQT;>9~+ZZ684LA0AT14Yn1a0EK)3ivpOPv{?> z`+$>hh{)D?&zzFKw^(RD`E7r@ah zVA1$(R~3eB?Rq03FS=`2b^C5(v*E6;E}^`6&qb+kK>BMYYcM!caC&wtO`y_6nyg5V zbdTHA*DPF^8lDVVSn*)a=uuCVm?pSQIVu%`zygELCH9S(eJwj{LBRacTm11^%7|pg z@IV$hXW=}c{wodVk^=XGx^)DpbvCt)rFckDn|HH=dZMB#z4~#pcs%b3TUGMz|ocV2SO36-lXka-16I zc7v$uDVaRr()S*j%x1*AP_TtqI}TaipNp*4^=^x$(UAtfAZ;U`|1AE-=O{=NNAxGI zX`C0j%Q%`s7K$XAE2jnxs*gvx&fmusZXKL^K@0Qa$R~jYpR#nMn$$gpP1)+2BAaP_ z#ko$h2&y*}#*^?OwoxrX{lX9z3`BKrW)=7nIT4K9;3H=8JhkgLkO@pOTaxscu_*!v zpT5hSNh%iz%R!N8qywBu7&95eZ7kA&JKUHwuRlgaZu@ViW~V?%qk22O)pt|fUF$fg z7Wr)Q7_}dvuwMG{2u=P)K4m;wN47Q~ah<$lf-J)PO1GbQ^XJbr7z7&zM?rYv_oKk* z=J$0M0Z(bjWfE;n>UKHm?qc{T0>=e{FJ?no8>WOn<#>cIlZh&k$3f!|t2+;P6{~)%j<&fR{Eeo&@qU z+RZAk(OF;D;W1kdx_QCJCDT51XXe!1`FQIS+Wr6ah_6v(0EsEjg+Juil-8>Q*O-)C zwrZs)&~Q_I-869N;lbLw%6?~HG&zI1e*-qVM7C7>jSZu6dC`fy*;fq_XV)z`WElrS zs%jgfiyCJDHTEpyk)2jL**$NRxz6kgrAxO@bSVN4xpBl^JJ_y6jL|$0QHG1$nsHNva9=rD4Ru9rXA-Rb^F!!1g&>xGv#oK*ZC|SA_-)7O0C4(C4smgdqW0hf^e=4L36D8j(r341Ae}Qwu7v1x91;hvn zsj6v=M$u(!7(g8JubBv1K-DUG#DNgaQ2K<^_-w>Lx#&x-%AL>iBL1qt7}9=2PD*qK z8tkRX4AmKIZQ3yZb?DsIThk`ocb(%B0?Yn9%g}3x*&d&AQZ%-@vmF$Cl`(&hobj`A zdmKFWlZ{9n?SlBFQ-{l)+us7FX`Y2?9zYz9^Ce%&cChVe`1me3Qios7?Iok!^+QjUPI%E1Ij(~`_#z?jVTCP)7)WB3S{MiZIz z2*(VFW5E2*)?QK934=D3w$yvbXQqt+SGt>Behn-UWK?$6U|}Zne%|i|*lDOM$XXAU z?~n_C#YPXg15M}rW{W{HiO4R?o89Z*i2vM|1AJy(!GZUT2n(yYQ9h%B5h}O;_7{{P zSy=JUY~%kJ>nI^EvI-VAP~b?}R#2@lnC(qKpdr9@WMt>2TRF2zTj>_@az zi`SKsX#kSM#?B3zI?`Z~^6lY_jV*0cX2?-2d*zE_&(i(mgJD6pL@BJD&|g1B`KQ?l2LY15U{@FNZx_p0>Q%72stXoqs7dUCc33hX=Q?m4Jj_o?(Z~{_ zL4{=Zyo|g{tmkhC)zcF6Hn)|;@{qBIiganJ6zT+|p0R{kAc=TIHCYVV3|w5mUV{2A z#+o=*z_-w`X}|j?c<+>2$^>>-zG3Do3`nu=JO-0b%|c*l>u)TutHG98((gt?5NIk^l4ygbSZk@+@`(Q;ThO!;Ex!` z;sM41TU71h*w&K*Q{&v1oX~zzg7?j#PVBu+5ML2^^-MGoP`rMPn`4aLvqq&9DVDFZ zb4`KtxQo|0X7JESRSWOts9Eq}I^QPs8GeIi2(sV2_+#nr=4J>RK=AHBG9g+ng&`6d z;9O*_`XH9#3VF#L+Ynp|ahfVGfc}!pal1y>Na$YI*Mkf}){~b{^^_uGN9HqcYX$tdZZ@kYlJP5+az`#79`w{g2T+u8bX(v;eF6g5lOGRr$CM@s* z|5)S3Ps7QHZkRU1<}eI63j`DCRA#U*^)ruefsy!{{-qco_q8 z_wq*ro?`T`}DhDE>=L zT?_{S02yqM52q>`^svMl{Whp^KDa7Bv6(Yjh}OUoGwuDdveBs6zONv@?}uN}J#p(O z;MceeEFMbh9eE#GqR%miTAbBpcO06RXnvF$)HPsGBWkY7Z$SHK4!J?ymoHz)Tj8&9 zORJ8~HNQ(h1&qzyGrXqPpqzQ`3!glR_xf;#{p(n93BvCB-kCA8Wa8(4E{7*0JZXXC zi6xVDa^H7l!xC#`HSy}6bAM{e`p(6fiO-(672iKSBMs^2!kW2?|!%ii`)ya+OCqqtSWr9n5_!8Li&YGk)4Z$)HO;1bHkkVsVh%C$(+sj~RdKt&=a`c1` z2mc1e(bdVRsg;sNRaI1-2$hpy4ey4_?i~%Q4K5iR98?7b(JNqce4yLA&C}eQ0lS;z zhHo`_VZ_3a;=rO89NJPf@3}ZNXW(M2A3-t}Jj%l#1{A=&25yz)Far%P)7oG6&{T}_ zSbJyXhx-@GoZtrJMddqM9b0=i;2(v+&a-RRt~g(5R~NulkYies~0eMQ}+=oTBMxJPa$^5Oa2Bp>;rZ*jW&lvgqW$ctE(%v;V}#^Ixl{f;VpXT ztTeV$i4^lVHO~%cpc?%)Je)FGO=EbVLTPz-PX&)(1B zNL@IHs`}~j!UGACrs*e@csXP&YDGEt2Q2mGE4e-H(q;C|LID}@j z#?Vk-#{4&bmVTa5>IWzGP2Y3|`)_Z`%2b#Ib$4z}=aw43Qi;p-Ha@vzLo@I3#8VzONrIQV z*qvL-#al85z21VlIxSOEQyR2`fx=Ak{Ze0>njUPFai^(9$BMa;d7`H#V!h7N#^zX# z)7Y2KpC7{2?$07WDMuT!XXJzHZAI&x+q>jvj$2w-9L3Z9(%#N1D=Q1k7L;%up(`iZ z2L=Ypa1LYU&c^7XRH%@x;p#EC05g^Z@vTQ}d+I+Rzg^Oh%1L8(h+`kJ+QDFUWnd%h znB2H)!-nVOj3sNb9y12*MpYoRHPFBly;OBTK}W2D!~2KiG@TDWFWVs8D@@`PoM_&{ z!zYP#i$9k+8St_6jarwhUqI_0-2AuT2L$+K@e@Mh=W&Bap1NY(=oxg)d4# zSs>Uytds3fF=z+WRynJA{c49XLIGc`H6 z6GKb=8#nlc8rLMA2XTjJOd;&>xs0Ct+hF}Gw@Bjc-1hnYE*OMT0K$P`L6bDWFgSO~?A9|tjyMAE9X7iquZ$9P5Zx_a zG#A~+fmB(e9@0s_kT>XFK}HFh-&XGFKwaccTxgW_9guh9BH7v5$@9@<(Ucrc+`c!2 z?T1L?51|@rMR}bpO*P)fut}z|Nz!LG$(N3fD5S-j#MlQ$72M>41@8dW8gaR!y-FE^ zOi1Gb4hI2c>6w|_>CYgugd+k86wz!tN|YO&)*-wEGEguq=UKf~i8O~xPfyRk_&BWj=!~cK4`?DQ>U$xDAqN>E z`$zkp`rVTrXtHguZtjY$5V65cLO=2K7hxv1FLo63DyrsfIJp)LHxgi6`f0J|YODU? z;bYh#R43nrJxEm55ns&QQ=&;cILunQx&oS9-~kv#8Y3*uUtTdPYg}K!HHdSPMjAaf z*WTx`iuWPxC5-SfKu+)Iv{HB*<>+uiCL62SBg9M3SwmCD@BEl(WB4cCT;*qb7Kyn| zXAyvfu+58*im1h>`7}Zoz82{j8IMN>8BXnkN{}2rt)?gKv60khkK;9d`TBJW?fRlX zEdn$oB_)+7>oMDt7)-IC)uDM%n4d2T28}uj(v{91=5A=&4`nWZTO8nCpcv5HH;@(p zjJ+)^l!udq3T`N7(a)NlxC_{xx)E;;Lt5S-G=prSN*^;-d{+vmiKK+x;kg@rgp7l( z0Mcm>3Fzg-(0A|O|K`Puy+J`i*l$M>1l2+h-dW{3K>T`OXDVn-0087xS68RY$HAqJ zuTmM*W>{g< z-4@OZ?BzOpIuHdi)=63zapdj(td?}|o*EL!wD*o;{4AX@n&$G$6S zrc3b^|03Vp{_+r5tg84^KMc2JWvfXjL$O#Dsdl5B2<->>qAB1yX z8v7R3X3xk_oPuMFoT0_B^EuDs>kQG}N8We4Xa}udw|6)HS~gAhZ2LbSfIGXyi+tEp zgrf@QoRGw4MYB^5! z0EKk0ixn={ygY`(M%YRt8pWzEhFzcXWW`B9mLfRmsHxl2nC<^%J0dfk9Aq9sR_ovT z`VJ0DGBh2hNnUvPZDx#3QHLH6XgLU#w{c#CZoR#xC+`r~Nw z*>P48q2UnT;!$MJUz(dwR%HbS22x*#w4q+a$wjeXNFt(}vpdV~Kf6ax16S`ckDQ@> z=On#IItQ4AWMVinPL^3fu0uLhifu@I4mqsifpw^Zp~6ZVYVQy?DjBY5JjYMMHslCt zz}5)r#y|vBXJw4(cEmA65IKiA9%Q#p#TjUW+(wGellWXlXU#iNYn562_T~>t(}A9J z;B0iyK=Fp!-rJy%J0G4#IMs0eWjG8)(MgVs)DRtzC`|R*4OkxOLe*CbkU`^7^1ROW zt$`v7K7Fx^R`Z3v$s)FV)A28VHvT0+-0-LlPo%!|)G+0d2+1nvezWsMB`<^8BvEY8 z@AhcmwcFEhv6am&4ny2=_;i)Ii@g^OZFPW|#N4Z0KYpVZ7fHAP&D=w3(ur>WTb5-E zCo;()9V_T@i5@agv?o5VT0F(I1xp>hIu+y*BI}OxrKZ=#+5rNB@t}{93BXi*zQ7zSolxz?Q6u*c_<>%(c#>OZxh&|S9i&`&s zfd{Qe@JcHv8el)rCjf`pc~zbiWvf<&V(0VXZfuHifBuMeux&kxYHfSDybn(Z7W|u! zA3r|sN6xDHV9&*Q9Im5%Az0r;JTDXD0`Rd9ofK8v3=GlXS{rj=+_7g7BUGX?}qB5jeU)s*;4NT&IU`=s$a)LxZ_KU*uBk7<+QG)l_ z0lR&O5(Qi<8u5p${y?FKvPT7M+j3-q#^ZsVAS4n%*c_uDjpxh5$;oM&iT6WwRX2+f zz>vqkd^(A)p9%;S=%}W1x|%_WMtpnF)6Rn-VDtVbI~M#sY-E+twjhdS+?oA-r>s$+fWL+FcZE9g z%-+AkpQJu_00(BYx1HLy@rDmsQ2(@e&00ewu&G8dL`F4e zD=scRLds4Y&18qEG34mIO-qDaO2=U^Lde2ho}(}0#26X6R^s=ejI1|ki$@#ezNlG{ zPKdPDsY2hwSdEo92k2-*D#5~zx}^&6hzWZtXl3rL50OyN42HKsf^>J1H@-*z6BnbS zqh~9Kyx!WgvB25arQmfN4kQ}erD*>@?VXEX&v*a-U9RmKuCQ6mVKP%%lo4qnZL`r? zDpBNA(a}UYI?Xk?HisxHl}hN-0ZEh;VkAi=9hH=YPC6h&4!`@e+4cJ)e!tyr*Z13}DDUkp5u>iIF2iHh zs#UZE*B*LGK_#oIn-L?IliOrEoz<|AYE~8#i#WT+p;xbCcnlur{mA-YMJ^{Xo>{OB zrM8P+Je=7C=BA2QBJlT|R(It-1r(FgNu^lq?LYQX;>pERzr8O!`Z|+ZmIqLfGPp}~ z*~uiJIs4t4pAOacevCzTP0EpIRT9i1UXgM9u+chK27W4hsN@0WJpV)i3=&>;bvbi< zuTzkvKK#mP!h{JTFP1uc+Vtt_0W*4SaoW3gZ!^L~n_~-?`*V?3MttLW2nVcN%U4>` z_?s5}LwEI^n;Z%c6+sFDTY-59nVPmwd(z#id7+)rJ?E;|u=(NIPS&Z8Mp55*ejhAr zK4=PTQ5dB8?-Y^|s&LP0NlOGnFXFFq%uifg*(|%`v#-ZZnPLsg`ghXp+WXgHnQ zxfXBSOnO)dCi8(EobrPG-YTu7KD9dT)pVvpf_k8EqsuA2j7u@|IAlFpVbTc(_?t@`rt((S(fch31)$@&!zB<;Wipsxql z_Riv~&*y8G1o+$Z9XN0S6WM3Xn)j=KQ5}W~6Eon{D+Bt+an=cYNW4x7+kg3`a>KyQ z05q~mN`FI_#jV2)|K*iGz1JhaN}2cYH@~Jv|8~R9 zcG8s?Ec9?6FKW;9@$nJNKwvBcFFDFFbBwe6o+=V4B+{ouU6ytc_R6eQ&pzcuBLb=+nrq-M=9py8ACOhNB|PUc#nSf0Q~Yh z@1%lA%|EtqUa;4_KRz^znQ5Q>`pFKGgy!zO>T^|yK!%iUMq#y0xt34$7Ng(k*&RPv z!}15b`Ods_<8r3`OKIq`1VK0mb-`g_VL1*wlf!V*ay?`q!9R*O6PBDy0OnEmZR69r z;{I(^`1rBDE>)1^CtqLR;D+=Z)@+%Y97|q;F;4Ge=`-VJgqFV8K<*L_JDySDb-|~k z;{?`{3Bjt2HIEzw?*wrM(HdRiAj=e_up4kn`;^z_-Les-xs!h~Z zuSm(fub*5x8;gGpToatS>{4$i?H0H*n|isVQz4jzYyU{JD#fh-(afbi*edU<6W>)A z@Zz4I!<4lO6K9CyWoY%eYU();gNJLbSIHvh>D^F$+Ql*GgoP_34%sDgX!#f;`C>wS z;J+KiZ+&>dlXnsvQtXc{ob>Y5tEwqid9<=<+v+^keqO{P<1X;4XZ&JOlE{v~kaM*M z5T$cD%J8#_MT2&va)#s=4yg-kcl!puJu)XYk`yO4AE$hei${|9xnNs)?t@vIZyml^ zfzONVwRWs=h>;B4^WANZ8BXj}*Uy|IMJM=aN>{+%A(q{G?hG3epWY|FJ>v^iO(_yZ z3GRfGOAkav2?LCu*_3zr@+_{ib}0pJ)Umcp#5HQv-(z8TpS5nc3%7)7rh{*VFvM_H z4cHoMU?i}CkoVwi4*w%$SPlb3k@HzK7Ewx2K^0EqUlP`3S?a2y)fEea{!KWq#|Dj5XhJ^-F<+-P=wN zBE1|u_yreoW?srcHL*Jff&aAs!7Dx#s?t0D_{U~KBh<8mQ{5|iW6bKRngMUgy@H(X&`!VX;ku;cFOMrIhkuzgmM=uCgUoxM<`OetAhu zD@-f0313aozn3GGQHU!Du`Bgu<;|NGve<~PZ9e6i!!CffBw{ft$MjeGdDV$B+Wqz^ zcs_6@#@dGS#J($VSptBoZrgFTF@P$>oUzZ!_x2&Pb5sW$Z zIoMqb@%(i2VqOsSMVLmfsmm^IQL6cbk$SnJ3O~1HFMOp*+*Y@UnfD7{mnP~Fk@JZ8 zc;xQtlMdVUeA*7gMw`4t19+afwdA1KwnvYS(FL%Bd}7qfl|u#%TH)UchMh>Xx~;S1 zb=^{W=FDxOQlxxwYQ=kSCio`ShAai1xjFzsv{VS5chp9IPt_XJjAd(*O8@ePhPxO zfU|)FFJ4N{`S6i6y+T7Hpr&swepd_Z2-vNz@7rbaXbiU({e}j_krP^d>bewCki1t+1YyA$2a-doOFK>Ck-kbZE z%hvV8qw}cZJycc^Ochn~AvJApwa?uo9ypxrm3{OLo>SKdi**4x{CDVEoJi5!R`J#n zr!OHxBENHQyZ^kBPg2Hx%UFZg;3=_ggBp-mTf21k?%jeB;_2nsoVuP8LVQ|Ch5X7a zP|=i(j}OJi$I}KRhb{3px^Urw^xB}@B5D(8U}7QRwa4i-%zh??4bX-1nJ6`rA;Re+ zve^)*2GjBL=maelY`%Z)Y%In_Khm!s{GjuW6)%tfUS1K)Y(U(}Xk2f6{9icOrzMrE zw$B2A;cdk$rQ!Zwa=LWw+Ha;$AMwzWKIHN(db7LNqo$uRbD-H@%;;jGW8=E5U?6Dg5nWsPh{BtD-n$1N&oqIex z^H@+S|Ii6=awy8LH5Btd64lUm;{1^Hi&+6plWW|HNt)I}?AU2G+ zt6E4c0HgFUA>(>+@twNO_|-*dJN<@&$gS~^p#Gv-8$QE#O>o0|<&m>6Ql;0jBm$cT z3DhDz=c<^E3jVv1Z)}(8m8i2c$q4={B0sl&Z)5^2RMY4gewr#3aM#}uE{0E9@e6{h zPZqE}qQ?;qvRKx`kO-!K>WmCZiu~wRd@z9WM`5uE97gu7s%D!ny3ZJzj(T@>GPBjuL+!xXWEAnx6P|`g zpSM!R6O+r3%@Z7v{-ftf@E!j1Eb3>r`B?=7)A z4(dm(_zSPPYMI?r%&T4^M~mA_Y&s$Shag)Xl(nBtPnJ&&~9MzQxblrmM2}?HT zW=!W-Lo2g4Z{Em)6Gg80!k3LW9)m1U!%H+=LJeQh*e<2tS5Te^Ey0c@!N1StRHwwQ z3&JW^G^8Zg372lxI(*nqS+D_Nna|pY+(n3p_D_w>82L0Kq|V7DC&bgF9p#3Cg~gyI zJwh0Z)KfSO5dkJ{mOaknVI0NcWjDBHf}ln0ritAp|Gx8A+9siz5G6|`CHCoqo8&OP zV{xHfKaYSvLyd7mF-ctcXiThXq6>f4cp&724~nR~l0>#3--NW~BHx~gP?KyizP-N4 zcY{8TfJ@P+rw@G<@Cah_d=6ayG<2#W-Sb@9!!4kD8|ypD$J4Wz1N{v3>9A(>$zpw1 z@H9->C;K?eF(I>0>U^<~qN|ewoDbGzVSp+NmGJbe!k>0^o*RJ2omo)3tvBG>%6sI)AaY6h(97^AQ~Xf+G9Jg4U#L zWLKI}nsU#A0Y|U*)0dR*Utg@G=8xq9*xk{EFDuPU>`FJ?=wEKI!_K+|wxMhuD0@tD z*FAq$C?_wUHmLjGq2Msh|BWYM0c+;Rt;;W~)6!h|GxBP=90!e#O8g>4JSdS2~KWTacFo z>6)l83{Q_J!A9S$aY+;1D#zxwa-GKfq1dGi)=QgPU0rP< z1(BK&7XYU2@!-!dGiC$$)h?^A&2qm---x7VQQ5CrygX{26QS%a2R zQCCdsW_C$N$^=al3c$cuY%4sZ?R0&iensa)s1LMDBV36uClgJos1VY;TkU4G;$LS4 z4rJxH+vT3;GDM^2jM`dwo@fQao9BA>GIt~KPx3muPi5n`%V~C*-ug1rrR*37_OSJx zaoB|8)UA|;7Q(Bu-vQ=yi?z6xs+z;!{bvN9qwj?acpmlYwf}uJf3Y9ij&D)m3_3HC zMZb0vI!=N(=X3<}(ENz(agIgzWOR?_KGp_K($U@;bLG-%)TLs%JWKa{mn@M>+V~_- zeX7rsC9t>6tJAa{P_GhNR`9m^2+Jb{omec<(k(N_EUTM3@L~7SfEH zIWGX|UgZ4l%#4f#Dhx#?F%TBG$Fpe&THN~S+1Ul(wv&WSUwr&-Htv9m0nU(}6>B_< zul1>jNe+S%F$PqoR|I2J46lBV5zH-hc%AgdX$Bspc$^79EgunBH2KR{t8e z%=dMJp}fm)|M(kCjic)sp1vS?vCGMNo7YZTBB!`~`O!z)9b?{cpmocHT01}Yyt?39 z9H~G%9=$Y?b(0=Xw_!V@tx}$9PV^eOkb#1E&uS%TntAojyCRnGQ{M8ww+dM=SK3{j31BF) z9I8#}tE?)nF?q9`II86YY`2~>>w47gshAVXHsO-kYKaE zLfmqn^TQ9$0(PmK5tGT88>@sI5LX=hnY-U!T;_@0VIRF4lq8!C}Eim+pVV30&^CF7Iu? zFOF?D)bukAZV&R>J?hEHt09-#_I<9-N~edDRKr8ZriJqTDCy$3JXgyE^nxCi^}Qn0 z@k+}Ys6KKixSPWkoGR5>gLhKit2a0Lh_O8F#L(z7VVbswC``xtFMh4|^C`!?6$@UR z>)Z!Kn$=bix;2_n?vNARrBm6KCu+RFFE%k`pxrpQfB$|*`#I%b(b>TQI#%^UFht&} ztkk&t(INq9;kVi|vp6e`wOI`-G&J3t{07MzTsG`I^TS=xj#(W)QLV}lo7uQB(;kZR z@aJ>;%8J(YEupbCr=90z<*xJbS-`U)H^pVxeShx^IU>Rp6d}F)j{IMZE+6m+t5zbp zcT8ecpVLuv>-?B$FVszP ztA-bvHFk##HL)+UTycOFu4+c$zH{B~d%yfq=~6Z`6^TO&JH8&XWV_rEdiBHPfrzaM zL5LYdZfcyTp@`(Sx?$n$SuH!xXom+WS;!`OSxga2nWF_ick=v(@LP}0j#bOA@UdL} zvh)f3bR4D(&jN1fJ0FM4suW1KKqQwYfe>EEO;HJ7fJL; zLteZggFtmmn-WzkP$ycjlA=@mSR?O5e@nYj2;zmC(EbE zdfmEpCguAdPdBjDo8x+*x_q~l#xNVd(0$N>nIeccjA;;~5mz#i%ha$epY|jw-Aqu+ z*t;2?4g%FEPFiLjUTAm9tF`h|Z7)yHlNmcR;^NL)EwZ~aW>BVqenIe4{nK9V#+wFC zezM*d%Z44#;PNT*QO%F4>THrH~1n42xH(gk&cL90_L^DiM`H-El2<5rxB8z)H7 zYn7?#PBANKoESCFtF@}kE9frFQjh#*sZ*JiuyRe}qQCq~e3>WlCwogsR0|~A5@zMPy zO@`&)s(XwAxuFxr+NQCLUh0oy#rTXEkT0vuRI^ zu}V*BP7a{u(Sb#nvHK#PFG3@Qf9YEJ6ZNm4ez8&tMz&`g`oWVI+>3@`RpXIiFr;Zo z$HBd(J8IIswnq0*-)6Wq{>78qvg`Hh*W&Rs z>p0mWP_5HAR5Ot`5MMb>f5r^>6R&@IO{p8Av+}jMKiuqnH%xk)1cj=khaG>4PheJJ z=-w~j*rjXZe`^!lY1+JZS#g}L zJZP^yWAC3{(R6q3f$osF2{C~FirTaoI+yZ@5s`H>WgI|J zS+d$PQIlRrgh;W^xx-gK{Ku$nxCcr-@LXGtp#h|WbJB)qCa-XCV1zQ!>de(n8~E8) ztx$)&cR4k^{CaNm4DVfXae5Vf`5ykO9KA_5o9V%bbgNhW*MlaMjQHd6^o-kI()#jA zCY5S_I89Z9^sTU4`@KWDN;hPhaM#CSJAeH1`aTVZBnhmq{NU0Y6=7+h-Os&06eK4r zD~JK^<EcHvv3Ndkx67@=g@@*nxl=Qit}M@7?{@h)Px~~bzz1j4 zWPP0Cfz#d#l91`h7b(4y%~;BJP3JP`R79LVp`oe&E@$)Z9;-{$o$sj$-U%dxttNZv zIgZLEvQ35J=bo~Wlvb1Bc{%wcV|~}=KFS||yv%c{Nz}iC5WiITjheY3fmc)MbwkRn zB*6IGgw^<`qao`O5vD5`Rq#c%(J^%R8}^hxwv*I%E;CWLvGEY3hG}C zX+fbDa9k#%&}nX4FQuQUS$Ap(8tDZQg@yI8a z3O5OYc-)oKs!r!x)-Z3A3mt2N_)6xqWTvyRn;0WWo-Hoi5^e#8Ud-lf- z*uqrCH0121seGRJXYwYoA;qk$TDMasu=cK%mG zJleA`;{-#aA=8(sEufD!O(R@Z>)5=W;2tcVfs5``@K5PRC*HK;i=TDGX^?(Da(5#2 zBK_rx1drRPIVq>L2fZM(M7W0PX(;xQtp1YL2&DzC4E5<3x9f!tV$GJ?S*f{Z<3sf( zf(qYCKFL0he_FNDOr><+T{ci%UES(i7TESIgs`u-jmV1Yt}R&&!s@N{qFaaqp|AMD z?#5>0&FOt~@dO8D9Og=QA`Em^M<*bY=vm$|ax!sgN~FVU3v1&Exvg~KbceOlnMXnt zI|6NrA9SOmlB(+jqX&(g!k~Tg>HTTRZz}H*8WT(&%&`u6McjTj4InIWWs%!&Jlm4( z-)ZU_^wiaZX1^!uPS07|rkm)$mg1|xnvLa&1^+ll9&%+06&Uf?KxBX2B(XJdXa9vg z-{54^Ij+L2bhwZfQh}!l0g41RHR#zfsRYf^XyD?npOv8=v2wU8KxD)WzqP-ek6ntg z*vf;j<=@q@{I{JkRhrvUc8@Y(pvh>%nhx6RnV4Ce{=jc7TIsQuoPMqUI&qv4@Z-ss zp9|G!+ZX&fJn6f#oy`QMSM8hMxjpp^Z9Db2{hr3?F^ji{X1>6lMn=D$*^@~WP}_rD z{2qgjiNL`{yQr%nU8h&fK4vjPGgn{5_mekMN^fdrKeXw2*yF*BN=VE@+5?1|#i1-& zZWDCp!p23o?&+2RMz}s*C6gNm#U}|-#60U(IPn`J-d7T->EZzEU@mTx)TyZ z*46w*VfOlbta*V{W~;QU?3nH3AFpn{MbZ;F?5vJlN?sbu^r4H>7RXavev@ufX6+i@ zyGwr0_?%;vU&y(A>ZYS`RPAZ0>e2#lb;Baw$SdO{VL@}UO75Q~W~j_M7N{bitAHU-7Olt;3tVsfcW zB6*k1(p&6$S$FB5EVR9H`Ul6^YanNwe_A+QoZ@6z;EQi)m&C>nJ%Q4CYF?rF1Qm1*r(%Vs;x&b44?;0=MW@`j8!Hb9JNM?+AN{%XHNOM$gAW9_J-=sKr@WhFq zw&o`p{99a>I3h>CF9);e@ybX#gKZvHGI7#*uk!;~V85)n@&&-UtS5eceYmxg*klqLA#TtP79t=CF^4Ro8dKz^7_DDP+HHnJiz}4fBv~5K`fC(2)5?sT%(>fNOX!B9ky@|LuQ1j38s4f z*M-mRX!t~jx@f?`wLJpkql zJ2OZg(0W%s&5(_sh<;;3hesLpjLuxb{--){pS=3cHxdzU=4es$Nz~qxs zlw!8>xIQ<{vwk+!Uc}XYxNc%Yc}(vo&WmipD$(9eFcCt%RMxV13yXvj5SjJFPC;YE z)8ozs(e4m;PeX5t%x>d%xH3iV*-dzKF{qm00hmG068ui)x#(v>VVj_kXQECOPNHxU zxNk-wP9v?VxD>+v6h;6KQHY3A%JU#ZZ3M`~cD@&MQ98n=gp;spYfY+%43r1f^Cj$* z)WqES^y?#9s4AWT;;MD|a=C?LAXH=v#QkTW48;k36DS)%YCmKTF2Er&b2Ip)-nxf7 zh4IM|KVo$A>kDGTNh-EvP0nHuK$RZCw8|;!*6X2Kkt93EeqGF@=5t!McbLpccP+cFyk|q`26#D=ctMV3$CKPHp*sK@{*D5I@gZ1_iLeZ%y4Aazlk+1N z*W_89qutW&K%%#RVU#Fj)p@$3i`81<<}AN1N`L;7iI{CMzJ$MyTYBM~U|B5}oJR zV9K9t@_R$oWHeJ3gj1-Ozg}2*Jy>mrcuL8Lvw59?cSqfKR=Sn<&n=O>|9`uG?P19A zWCNP`+*14Z4?=={yV=5?O#DnHshM4BijCdRTvKn|b!E3(o@2 z$Q@-3J5HE}YYQ1cSnz#Jje>e_L2xbw#UmAi$$fa*60vaaEPLp{OL3R)kM@4T#2b4MzT}!uxeI~zBGq2 zWaPopm!CH66nhlLV<%gVsv*WuIF)%kXlRJ1rD}o!bf%??Ofxi{d4qxppQ@X=yuc34 zzqwc1vAsX+=S)K+OScL}kLIJpe47oaECe2PK|>o8a?m3Y!`f~%g+oFR*{bYkbp{Ty zxEhFi^&@i|WIdC#q7Hmg$^tp6=MrH(eOWIp7_;68{eW~cgEKcSqDNxEp2%+n0e9T> z0A?5|2%TvB%}0aCTkUzbZ%8*sBOTA`0 zc=&O&8BFyZ%Le`VnDLu15=$6Id}^Qi%(j>{le<*(s}uqD)ZLWXnpyvx_T2DjO9zf~ zvcIoCwN5}m^TiSe;CBnYbpJGAB=P(ebt{bhXyinmV0}It&?ZqzR)3*(LsPY${`IZd zbljppK`6doB@)UzE+o;->#h-1WSONffW2!SBoIJ~nx*yjSs!`yDFfbb)4Fy8oCVspv z6~=td^*)|-Y0RT{g1~ZioFN5!rhykE5!3Tjsu2XqnnfZ0B1M=B1X97QgCTm-qwCQ{`J8J;-(~P@^BO}aKSy|x1Bpp*SsTyi~WNuYq{zDJ!aOHXfjw9 zeJ*c7q--K#9r7X{5*P)|F@k)&t*_37(sKi3dA-$~MHI{%34h+(evsr(87cM)o@sCk zM0Fv%4h!mS$M7@xSrz2+PU-_@y;dM)5lk_{>Wa#2LVKT)cXG=7grPmbuY#UQ90(c- z@qxKAbCu-^aJ-G5`@xZYaPQt|==HSK--4?Nkr|-Rwa>9?2fEw9xD}rmbX^aNWkas8gTh54xZ^e&L zGBY21WO_V{^a2zc z&y}bPP1S!H1rIcy|9;J_X>EE{x=xz8PQl?gPwrh*zE? zBN+d6a=WirROm*n>Y+P?TUBkiuhR3Ldu{nqGKJSwrGEWb>->XWVV`eT%H$v-v~)Gs zNUz{u6C?ThiyP+#lfq3Jdj!Y9Kfj06dhOXQLQ|$5IUd^s16`>#n!Xv+E8L7CPY}uk z#P$|amB$bJ$86A<5}`+nU=1Jd?VXW57}Jao-}m$k9dVV~#5)P9j;0U5=jE2?>|WX- z&>LE$6{wO1rEzS(Bk>H>QOk~7odx+$!t~!yEce|jd2|#EUJr={D*FCcJZjOKpu)88 z`D$x8F|q?e)LOC8NNgeKD@u;_I!p$4W{Bun%}tTL+Wgz{bD{^>-U{f!aQJ_YKwM}9 z3Gp1cm!J_^IJx(pVkNvBIplkBP3$1Bh@9|rEtoD|8^Prz|J2M}``|ZT@Q^e1RN0yH zX6uMk)^`V0bU>6pGh5(04G!VDs)AAXX|^| Pb4EX!|B(FsvaSCIaHZ;& literal 0 HcmV?d00001 diff --git a/src/stage/flex_main.py b/src/stage/flex_main.py new file mode 100755 index 0000000..7a11a8d --- /dev/null +++ b/src/stage/flex_main.py @@ -0,0 +1,195 @@ +#!/usr/bin/env python3 + +from functools import partial +from pathlib import Path + +import tensorflow as tf +from functions import FUNCTION_MAP + +from stage import Stage + +# --- Configuration for All 7 Pipeline Stages --- +# This list defines the blueprint for our pipeline. Each dictionary +# will be used to initialize a Stage object. + + +stages_hyperparams = [ + # Stage 0: Model creation + { + "name": "model_creation", + "seed": 12345, + "function": "model_create", + "kwargs": { + "dataset": "cifar10", + "input_shape": [None, 32, 32, 3], + "categories": 10, + "model_name": "lenet5_custom", + }, + }, + # Stage 1: Initial training + { + "name": "initial_training", + "seed": 12345, + "function": "model_train", + "kwargs": { + "dataset": "cifar10", + "input_shape": [None, 32, 32, 3], + "categories": 10, + "epochs": 50, + "batch_size": 1024, + "learning_rate": 0.001, + "validation_split": 0.1, + }, + }, + # Stage 2: BN folding + { + "name": "bnf", + "seed": 12345, + "function": "model_transform_bnf", + "kwargs": { + "merge_activation": True, + }, + }, + # Stage 3: Post BN folding training + { + "name": "pbnf_training", + "seed": 12345, + "function": "model_train", + "kwargs": { + "dataset": "cifar10", + "input_shape": [None, 32, 32, 3], + "categories": 10, + "epochs": 1, + "batch_size": 32, + "learning_rate": 0.0005, + "validation_split": 0.1, + }, + }, + # Stage 4: Model quantization + { + "name": "quantization", + "seed": 12345, + "function": "model_quantize", + "kwargs": { + "input_shape": [None, 32, 32, 3], + # 'kernel' is set to None because it will be dynamically + # updated inside the experimental loop below. + "kernel": None, + "bias": [ + {"type": "uniform", "bits": 8}, + {"type": "uniform", "bits": 8}, + {"type": "uniform", "bits": 8}, + {"type": "uniform", "bits": 8}, + {"type": "uniform", "bits": 8}, + ], + "activations": [ + {"type": "uniform", "bits": 8}, + {"type": "uniform", "bits": 8}, + {"type": "uniform", "bits": 8}, + {"type": "uniform", "bits": 8}, + {"type": "uniform", "bits": 8}, + ], + }, + }, + # Stage 5: Alpha initialization + { + "name": "alpha_initialization", # Fixed typo from original "initialiation" + "seed": 12345, + "function": "model_initialize_parameters", + "kwargs": { + "dataset": "cifar10", + "input_shape": [None, 32, 32, 3], + "categories": 10, + "type": "alpha", + }, + }, + # Stage 6: QAT + { + "name": "qat", + "seed": 12345, + "function": "model_train", + "kwargs": { + "dataset": "cifar10", + "input_shape": [None, 32, 32, 3], + "categories": 10, + "epochs": 10, + "batch_size": 32, + "learning_rate": 0.0001, + "validation_split": 0.1, + }, + }, + { + "name": "final_evaluation", + "seed": 12345, + "function": "model_evaluate", + "kwargs": { + "dataset": "cifar10", + "input_shape": [None, 32, 32, 3], + "categories": 10, + }, + }, +] + +if __name__ == "__main__": + + # This is the main experimental loop from your coworker's script. + # It runs the entire 7-stage pipeline multiple times. + # bits = range(8, 11) + bits = range(1, 11) + n_levels = [2, 3, 4, 5, 6, 7, 8, 12, 16, 20] + combinations = [(b, n) for b in bits for n in n_levels if n <= 2**b] + + for bits, n_levels in combinations: + print( + f"\n{'='*20} STARTING EXPERIMENT: FLEX BITS = {bits}, N_LEVELS = {n_levels} {'='*20}\n" + ) + + # --- Configure the Experiment --- + # Dynamically set the 'kernel' quantization parameter for this specific run. + kernel_config = [ + {"type": "flexible", "bits": bits, "n_levels": n_levels} + for _ in range(5) + ] + stages_hyperparams[4]["kwargs"]["kernel"] = kernel_config + + # Create the list of Stage objects from the (now updated) configurations + dataset = stages_hyperparams[0]["kwargs"].get("dataset") + model_name = stages_hyperparams[0]["kwargs"].get("model_name") + pipeline = [ + Stage( + function=FUNCTION_MAP[config["function"]], + initial_config=config, + checkpoint_path=Path("checkpoints") + / f"flex_{model_name}-{dataset}", + metadata_path=Path(f"{bits}_bit-{n_levels}_levels"), + ) + for config in stages_hyperparams + ] + + # --- The Orchestrator --- + # It tracks both the model object and the hash of the last operation + model: tf.keras.Model | None = None + previous_hash: str | None = None + + # The loop's responsibility is to pass the state (model & hash) between stages + for stage in pipeline: + # We need to set the ref model + if stage.initial_config["name"] == "alpha_initialization": + assert ( + ref_model is not None + ), "Reference model for alpha initialization is not set." + stage.function = partial(stage.function, ref_model=ref_model) + model, previous_hash = stage.run( + input_model=model, previous_hash=previous_hash + ) + + # Save the ref model after the last stage we dont quantize + if stage.initial_config["name"] == "pbnf_training": + ref_model = tf.keras.models.clone_model(model) + + print( + f"\n{'='*20} FINISHED EXPERIMENT: FLEX BITS = {bits}, N_LEVELS = {n_levels} {'='*20}\n" + ) + print( + f"Final model for {bits}-bit experiment corresponds to hash: {previous_hash}" + ) diff --git a/src/stage/functions.py b/src/stage/functions.py index 3e06394..6f66316 100644 --- a/src/stage/functions.py +++ b/src/stage/functions.py @@ -1,6 +1,5 @@ # functions.py -import sys import numpy as np import tensorflow as tf @@ -8,7 +7,6 @@ from tensorflow.keras.datasets import mnist from tensorflow.keras.optimizers import Adam from tensorflow.keras.utils import to_categorical -from tqdm import tqdm from configs.qmodel import apply_quantization from quantizers.flex_quantizer import FlexQuantizer @@ -30,6 +28,63 @@ def load_data(dataset_name: str) -> dict: y_train = to_categorical(y_train, 10) y_test = to_categorical(y_test, 10) + return { + "x_train": x_train, + "y_train": y_train, + "x_test": x_test, + "y_test": y_test, + } + if dataset_name == "fashion_mnist": + (x_train, y_train), (x_test, y_test) = ( + tf.keras.datasets.fashion_mnist.load_data() + ) + + # Reshape and normalize images + x_train = x_train.reshape(-1, 28, 28, 1).astype("float32") / 255.0 + x_test = x_test.reshape(-1, 28, 28, 1).astype("float32") / 255.0 + + # One-hot encode labels + y_train = to_categorical(y_train, 10) + y_test = to_categorical(y_test, 10) + + return { + "x_train": x_train, + "y_train": y_train, + "x_test": x_test, + "y_test": y_test, + } + if dataset_name == "cifar10": + (x_train, y_train), (x_test, y_test) = ( + tf.keras.datasets.cifar10.load_data() + ) + + # Normalize images + x_train = x_train.astype("float32") / 255.0 + x_test = x_test.astype("float32") / 255.0 + + # One-hot encode labels + y_train = to_categorical(y_train, 10) + y_test = to_categorical(y_test, 10) + + return { + "x_train": x_train, + "y_train": y_train, + "x_test": x_test, + "y_test": y_test, + } + if dataset_name == "cifar100": + (x_train, y_train), (x_test, y_test) = ( + tf.keras.datasets.cifar100.load_data() + ) + + # Normalize images + x_train = x_train.astype("float32") / 255.0 + x_test = x_test.astype("float32") / 255.0 + + # One-hot encode labels + y_train = to_categorical(y_train, 100) + y_test = to_categorical(y_test, 100) + return { "x_train": x_train, "y_train": y_train, @@ -48,7 +103,6 @@ def model_create(model, **params: dict) -> tf.keras.Model: model_name = params["model_name"] input_shape = params["input_shape"] categories = params["categories"] - if model_name == "lenet5_custom": new_model = models.Sequential( [ @@ -76,6 +130,49 @@ def model_create(model, **params: dict) -> tf.keras.Model: metrics=["accuracy"], ) return new_model + + if model_name == "lenet5_custom_v2": + new_model = models.Sequential( + [ + layers.Conv2D( + 32, + kernel_size=5, + activation="relu", + padding="same", + input_shape=input_shape[1:], + ), + layers.AveragePooling2D(), + layers.Conv2D(64, kernel_size=5, activation="relu"), + layers.AveragePooling2D(), + layers.Conv2D(64, kernel_size=5, activation="relu"), + layers.AveragePooling2D(), + layers.Flatten(), + layers.Dense(128, activation="relu"), + layers.Dense(256, activation="relu"), + layers.Dense(categories, activation="softmax"), + ], + name=model_name, + ) + + new_model.compile( + optimizer=Adam(), + loss="categorical_crossentropy", + metrics=["accuracy"], + ) + return new_model + if model_name == "vgg16": + new_model = tf.keras.applications.VGG16( + include_top=True, + weights=None, + input_shape=input_shape[1:], + classes=categories, + ) + new_model.compile( + optimizer=Adam(), + loss="categorical_crossentropy", + metrics=["accuracy"], + ) + return new_model else: raise ValueError(f"Unknown model_name: {model_name!r}") @@ -278,61 +375,61 @@ def model_quantize(model: tf.keras.Model, **params) -> tf.keras.Model: # --- Alpha Initialization for QAT --- -def compute_alpha_dict(model, x_train, batch_size=128): - """Computes alpha values for weights and activations.""" - alpha_dict = {} - # Compute weight alphas - for layer in tqdm( - model.layers, - desc="Computing weight alphas", - file=sys.stdout, - leave=False, - ): - if layer.get_weights(): - alpha_dict[layer.name] = {} - # Simplified alpha calculation for weights - weights = layer.get_weights()[0] - alpha_dict[layer.name]["kernel"] = np.max(np.abs(weights)) - - # Compute activation alphas +def get_activations_output(model, x_train, batch_size=128): + """Gets the activations of the model for the training data.""" intermediate_model = models.Model( inputs=model.input, outputs=[layer.output for layer in model.layers] ) activations = intermediate_model.predict( x_train, batch_size=batch_size, verbose=0 ) + return activations + - for layer, activation_data in tqdm( - zip(model.layers, activations), - total=len(model.layers), - desc="Computing activation alphas", - file=sys.stdout, - leave=False, - ): - if layer.name not in alpha_dict: - alpha_dict[layer.name] = {} - alpha_dict[layer.name]["activation"] = np.max(np.abs(activation_data)) +def compute_alpha_dict(model, x_train, batch_size=128): + """Computes alpha values for weights and activations in a single + comprehension.""" + activations = get_activations_output(model, x_train, batch_size) + + alpha_dict = { + layer.name: { + **{ + weight.name: np.max(np.abs(weight.numpy())) + for weight in layer.weights + }, + "activation": np.max(np.abs(activation_data)), + } + for layer, activation_data in zip(model.layers, activations) + } return alpha_dict -def apply_alpha_dict(q_model, alpha_dict): +# def compute_flex_dict(model, x_train, batch_size=128): + + +def apply_alpha_dict(model, alpha_dict): """Applies pre-computed alpha values to a quantized model.""" - for layer in q_model.layers: - original_name = layer.name.replace("quant_", "") - if original_name in alpha_dict: - for alpha_type in ["kernel", "activation"]: - if new_alpha := alpha_dict[original_name].get(alpha_type): - for weight_var in layer.weights: - if ( - alpha_type in weight_var.name - and "alpha" in weight_var.name - ): - weight_var.assign(new_alpha) - print( - f"Updated {weight_var.name} with alpha: {new_alpha:.4f}" - ) - return q_model + for layer in model.layers: + original_layer_name = layer.name.replace("quant_", "") + + if original_layer_name not in alpha_dict: + continue + + for weight in layer.weights: + if ( + not weight.name.endswith("_alpha") + or weight.name not in alpha_dict[original_layer_name] + ): + continue + + # See the quantizers weight naming convention + # No name_suffix for now + weight.assign(alpha_dict[original_layer_name][weight.name]) + print( + f"Updated {weight.name} with alpha: {alpha_dict[original_layer_name][weight.name]:.4f}" + ) + return model def model_initialize_parameters(model, ref_model, **params) -> tf.keras.Model: diff --git a/src/stage/main.py b/src/stage/main.py index aa9c3a3..fad5e64 100755 --- a/src/stage/main.py +++ b/src/stage/main.py @@ -1,6 +1,7 @@ #!/usr/bin/env python3 from functools import partial +from pathlib import Path import tensorflow as tf from functions import FUNCTION_MAP @@ -18,10 +19,10 @@ "seed": 12345, "function": "model_create", "kwargs": { - "dataset": "mnist", - "input_shape": [None, 28, 28, 1], + "dataset": "cifar10", + "input_shape": [None, 32, 32, 3], "categories": 10, - "model_name": "lenet5_custom", + "model_name": "lenet5_custom_v2", }, }, # Stage 1: Initial training @@ -30,10 +31,10 @@ "seed": 12345, "function": "model_train", "kwargs": { - "dataset": "mnist", - "input_shape": [None, 28, 28, 1], + "dataset": "cifar10", + "input_shape": [None, 32, 32, 3], "categories": 10, - "epochs": 2, + "epochs": 200, "batch_size": 1024, "learning_rate": 0.001, "validation_split": 0.1, @@ -54,8 +55,8 @@ "seed": 12345, "function": "model_train", "kwargs": { - "dataset": "mnist", - "input_shape": [None, 28, 28, 1], + "dataset": "cifar10", + "input_shape": [None, 32, 32, 3], "categories": 10, "epochs": 1, "batch_size": 32, @@ -69,7 +70,7 @@ "seed": 12345, "function": "model_quantize", "kwargs": { - "input_shape": [None, 28, 28, 1], + "input_shape": [None, 32, 32, 3], # 'kernel' is set to None because it will be dynamically # updated inside the experimental loop below. "kernel": None, @@ -95,8 +96,8 @@ "seed": 12345, "function": "model_initialize_parameters", "kwargs": { - "dataset": "mnist", - "input_shape": [None, 28, 28, 1], + "dataset": "cifar10", + "input_shape": [None, 32, 32, 3], "categories": 10, "type": "alpha", }, @@ -107,10 +108,10 @@ "seed": 12345, "function": "model_train", "kwargs": { - "dataset": "mnist", - "input_shape": [None, 28, 28, 1], + "dataset": "cifar10", + "input_shape": [None, 32, 32, 3], "categories": 10, - "epochs": 2, + "epochs": 10, "batch_size": 32, "learning_rate": 0.0001, "validation_split": 0.1, @@ -121,18 +122,157 @@ "seed": 12345, "function": "model_evaluate", "kwargs": { - "dataset": "mnist", - "input_shape": [None, 28, 28, 1], + "dataset": "cifar10", + "input_shape": [None, 32, 32, 3], "categories": 10, }, }, ] +vgg_stages_hyperparams = [ + # Stage 0: Model creation + { + "name": "model_creation", + "seed": 12345, + "function": "model_create", + "kwargs": { + "dataset": "cifar100", + "input_shape": [None, 32, 32, 3], + "categories": 100, + "model_name": "vgg16", + }, + }, + # Stage 1: Initial training + { + "name": "initial_training", + "seed": 12345, + "function": "model_train", + "kwargs": { + "dataset": "cifar100", + "input_shape": [None, 32, 32, 3], + "categories": 100, + "epochs": 20, + "batch_size": 1024, + "learning_rate": 0.001, + "validation_split": 0.1, + }, + }, + # Stage 2: BN folding + { + "name": "bnf", + "seed": 12345, + "function": "model_transform_bnf", + "kwargs": { + "merge_activation": True, + }, + }, + # Stage 3: Post BN folding training + { + "name": "pbnf_training", + "seed": 12345, + "function": "model_train", + "kwargs": { + "dataset": "cifar100", + "input_shape": [None, 32, 32, 3], + "categories": 100, + "epochs": 1, + "batch_size": 128, + "learning_rate": 0.0005, + "validation_split": 0.1, + }, + }, + # Stage 4: Model quantization + { + "name": "quantization", + "seed": 12345, + "function": "model_quantize", + "kwargs": { + "input_shape": [None, 32, 32, 3], + # 'kernel' is set to None because it will be dynamically + # updated inside the experimental loop below. + "kernel": None, + "bias": [ + {"type": None}, + {"type": None}, + {"type": None}, + {"type": None}, + {"type": None}, + {"type": None}, + {"type": None}, + {"type": None}, + {"type": None}, + {"type": None}, + {"type": None}, + {"type": None}, + {"type": None}, + {"type": None}, + {"type": None}, + {"type": None}, + ], + "activations": [ + {"type": "uniform", "bits": 8}, + {"type": "uniform", "bits": 8}, + {"type": "uniform", "bits": 8}, + {"type": "uniform", "bits": 8}, + {"type": "uniform", "bits": 8}, + {"type": "uniform", "bits": 8}, + {"type": "uniform", "bits": 8}, + {"type": "uniform", "bits": 8}, + {"type": "uniform", "bits": 8}, + {"type": "uniform", "bits": 8}, + {"type": "uniform", "bits": 8}, + {"type": "uniform", "bits": 8}, + {"type": "uniform", "bits": 8}, + {"type": "uniform", "bits": 8}, + {"type": "uniform", "bits": 8}, + {"type": "uniform", "bits": 8}, + ], + }, + }, + # Stage 5: Alpha initialization + { + "name": "alpha_initialization", # Fixed typo from original "initialiation" + "seed": 12345, + "function": "model_initialize_parameters", + "kwargs": { + "dataset": "cifar100", + "input_shape": [None, 32, 32, 3], + "categories": 100, + "type": "alpha", + }, + }, + # Stage 6: QAT + { + "name": "qat", + "seed": 12345, + "function": "model_train", + "kwargs": { + "dataset": "cifar100", + "input_shape": [None, 32, 32, 3], + "categories": 100, + "epochs": 10, + "batch_size": 32, + "learning_rate": 0.0001, + "validation_split": 0.1, + }, + }, + { + "name": "final_evaluation", + "seed": 12345, + "function": "model_evaluate", + "kwargs": { + "dataset": "cifar100", + "input_shape": [None, 32, 32, 3], + "categories": 100, + }, + }, +] + if __name__ == "__main__": # This is the main experimental loop from your coworker's script. # It runs the entire 7-stage pipeline multiple times. - for bits in [8, 16]: + for bits in range(1, 11): print( f"\n{'='*20} STARTING EXPERIMENT: UNIFORM BITS = {bits} {'='*20}\n" ) @@ -143,10 +283,15 @@ stages_hyperparams[4]["kwargs"]["kernel"] = kernel_config # Create the list of Stage objects from the (now updated) configurations + dataset = stages_hyperparams[0]["kwargs"].get("dataset") + model_name = stages_hyperparams[0]["kwargs"].get("model_name") pipeline = [ Stage( function=FUNCTION_MAP[config["function"]], initial_config=config, + checkpoint_path=Path("checkpoints") + / f"{model_name}-{dataset}", + metadata_path=Path(f"{bits}_bit"), ) for config in stages_hyperparams ] @@ -172,9 +317,6 @@ if stage.initial_config["name"] == "pbnf_training": ref_model = tf.keras.models.clone_model(model) - stage.evaluate(model) - stage.compute_complexity(model) - print( f"\n{'='*20} FINISHED EXPERIMENT: UNIFORM BITS = {bits} {'='*20}\n" ) diff --git a/src/stage/model_accuracy_vs_size.png b/src/stage/model_accuracy_vs_size.png new file mode 100644 index 0000000000000000000000000000000000000000..4439c292217f4dee599e3f62702e43792bf413dd GIT binary patch literal 350687 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

FJ3nUyi%5 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�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

M2I=a!%Xg3c^%n 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 AhyVZp literal 0 HcmV?d00001 diff --git a/src/stage/plot.py b/src/stage/plot.py new file mode 100644 index 0000000..1f5cc3c --- /dev/null +++ b/src/stage/plot.py @@ -0,0 +1,136 @@ +from pathlib import Path + +import matplotlib.pyplot as plt +import pandas as pd + +# path = Path("checkpoints/lenet5_custom-fashion_mnist") +path = Path("checkpoints/flex_lenet5_custom-cifar10") + +experiment_paths = [ + experiment_path + for experiment_path in path.iterdir() + if experiment_path.is_dir() and experiment_path.name != "artifacts" +] + +df = pd.DataFrame() +for experiment_path in experiment_paths: + if not experiment_path.exists(): + print(f"Metadata path '{experiment_path}' does not exist. Skipping.") + continue + for metadata_file in experiment_path.glob("*.json"): + with metadata_file.open("r") as f: + metadata = pd.read_json(f, orient="index").T + metadata["experiment"] = experiment_path.name + # Select only the desired columns + selected_columns = [ + "experiment", + "name", + "loss", + "accuracy", + "complexity", + ] + metadata = metadata[ + [col for col in selected_columns if col in metadata.columns] + ] + df = pd.concat([df, metadata], ignore_index=True) + +simple_df = df[df["name"].isin(["pbnf_training", "final_evaluation"])].copy() + +simple_df["name"] = simple_df["name"].replace( + { + "pbnf_training": "Original", + "final_evaluation": "Quantized", + } +) + +# Convert complexity from bits to Kbits +simple_df["complexity"] = simple_df["complexity"] / 1024 + +pivoted_df = simple_df.pivot_table( + index="experiment", columns="name", values=["accuracy", "complexity"] +) + + +# The accuracy of the common points doesn't match, fix that. + +df = pivoted_df.copy() +# Sort the DataFrame by this new column +df = df.sort_values(by=("complexity", "Quantized"), ascending=True) +pd.set_option("display.max_rows", None) +print(df) + +# df.sort_index(inplace=True, sort_by=['complexity']) +# --- 2. Create the Plot (using tuple access) --- + +# Get the data for the original model from the first row +# Note the use of tuples to access the columns +original_accuracy = df[("accuracy", "Original")].iloc[0] +original_size = df[("complexity", "Original")].iloc[0] + +# Set up the plot size and style +plt.style.use("seaborn-v0_8-whitegrid") +fig, ax = plt.subplots(figsize=(10, 7)) + +# --- 3. Plot Each Point --- + +# Plot the single point for the Original Model +ax.scatter( + x=original_size, + y=original_accuracy, + marker="*", + s=250, + color="red", + label="Original Model", + zorder=5, +) + +# Plot the points for ALL of your Quantized Models +# We use tuples to get the correct columns for the X and Y axes +ax.scatter( + x=df[("complexity", "Quantized")], + y=df[("accuracy", "Quantized")], + s=60, + color="royalblue", + label="Quantized Models", +) + +# Plot the line connecting quantized models and the original model as the final item +quantized_sizes = df[("complexity", "Quantized")].tolist() +quantized_accuracies = df[("accuracy", "Quantized")].tolist() + +# Append the original model as the final item +quantized_sizes.append(original_size) +quantized_accuracies.append(original_accuracy) + +ax.plot( + quantized_sizes, + quantized_accuracies, + color="royalblue", + linestyle="--", + linewidth=1, + zorder=1, +) + +# --- 4. Add Labels to make the plot readable --- + +# Loop through the DataFrame index (e.g., '1_bit', '2_bit') +for experiment_name in df.index: + ax.annotate( + experiment_name.rstrip("_bit"), + ( + df.loc[experiment_name, ("complexity", "Quantized")], + df.loc[experiment_name, ("accuracy", "Quantized")], + ), + textcoords="offset points", + xytext=(-5, 15), # Shift right and down + ha="left", + va="top", + ) + +# Add titles and labels for the axes +ax.set_title("Model Accuracy vs. Size Trade-off", fontsize=16) +ax.set_xlabel("Model Size (Complexity in KB)", fontsize=12) +ax.set_ylabel("Model Accuracy", fontsize=12) +ax.legend(fontsize=11) + +plt.savefig("model_accuracy_vs_size.png", dpi=300, bbox_inches="tight") diff --git a/src/stage/stage.py b/src/stage/stage.py index e4ff1cc..f307838 100644 --- a/src/stage/stage.py +++ b/src/stage/stage.py @@ -11,36 +11,12 @@ from typing import Any, Callable, Dict, Optional, Tuple import tensorflow as tf - -# This shouldnt be here. -from tensorflow.keras.datasets import mnist -from tensorflow.keras.utils import to_categorical +from functions import load_data from configs.serialization.serialization import load_qmodel, save_qmodel from utils.metrics import compute_space_complexity_model - -def load_data(dataset_name: str) -> dict: - """Loads and preprocesses the specified dataset.""" - if dataset_name == "mnist": - (x_train, y_train), (x_test, y_test) = mnist.load_data() - - # Reshape and normalize images - x_train = x_train.reshape(-1, 28, 28, 1).astype("float32") / 255.0 - x_test = x_test.reshape(-1, 28, 28, 1).astype("float32") / 255.0 - - # One-hot encode labels - y_train = to_categorical(y_train, 10) - y_test = to_categorical(y_test, 10) - - return { - "x_train": x_train, - "y_train": y_train, - "x_test": x_test, - "y_test": y_test, - } - else: - raise ValueError(f"Unknown dataset: {dataset_name!r}") +# This shouldnt be here. @dataclass(frozen=True) @@ -69,14 +45,23 @@ def __init__( self, function: Callable, initial_config: Dict[str, Any], # We'll start with a dict + checkpoint_path: Optional[Path] = None, + metadata_path: str = "metadata", ): self.function = function self.initial_config = initial_config self.config: StageConfig = None # Will be set at runtime - self.hash: str = None - self.checkpoint_dir = Path("checkpoints") - self.checkpoint_dir.mkdir(parents=True, exist_ok=True) - self.is_quantized = initial_config.get("is_quantized", False) + self.hash: str = None # Will be set at runtime + self.loss = None # The loss after running the stage + self.accuracy = None # The accuracy after running the stage + self.complexity = None # The complexity after running the stage + checkpoint_path = checkpoint_path or Path("checkpoints") + checkpoint_path.mkdir(parents=True, exist_ok=True) + self.artifacts_path = checkpoint_path / "artifacts" + self.artifacts_path.mkdir(parents=True, exist_ok=True) + self.config_path = checkpoint_path / metadata_path + self.config_path.mkdir(parents=True, exist_ok=True) + self.model = None # The model after running the stage def _save_metadata(self): """Saves the current stage configuration to a JSON file. @@ -86,12 +71,17 @@ def _save_metadata(self): if self.config is None: raise ValueError("StageConfig is not set. Run the stage first.") - metadata_path = self.checkpoint_dir / f"{self.hash}.json" + metadata_path = self.config_path / f"{self.config.name}.json" + config_dict = asdict(self.config) + config_dict["accuracy"] = self.accuracy + config_dict["loss"] = self.loss + config_dict["complexity"] = self.complexity + config_dict["hash"] = self.hash with metadata_path.open("w") as f: - json.dump(asdict(self.config), f, indent=2) + json.dump(config_dict, f, indent=2) print(f"Configuration saved to '{metadata_path}'") - def _save_model(self, model: tf.keras.Model): + def _save_model(self): """Saves the model to a file using the unique hash as the filename. This is useful for traceability and caching. @@ -99,19 +89,11 @@ def _save_model(self, model: tf.keras.Model): if self.hash is None: raise ValueError("Hash is not set. Run the stage first.") - # if self.is_quantized: - # model_path = self.checkpoint_dir / f"{self.hash}" - # save_qmodel(model, model_path) - # print(f"Quantized model saved to '{model_path}'") - # else: - # model_path = self.checkpoint_dir / f"{self.hash}.keras" - # model.save(model_path) - # print(f"Model saved to '{model_path}'") - model_path = self.checkpoint_dir / f"{self.hash}" - save_qmodel(model, model_path) + model_path = self.artifacts_path / f"{self.hash}" + save_qmodel(self.model, model_path) print(f"Model saved to '{model_path}'") - def save(self, model: tf.keras.Model): + def save(self): """Saves the model and its configuration to disk. This is useful for traceability and caching. @@ -120,7 +102,15 @@ def save(self, model: tf.keras.Model): raise ValueError("StageConfig is not set. Run the stage first.") self._save_metadata() - self._save_model(model) + self._save_model() + + def load(self, hash: str): + """Loads the model and its configuration from disk.""" + model_path = self.artifacts_path / hash + if not model_path.exists(): + raise FileNotFoundError(f"Model file not found: {model_path}") + + self.model = load_qmodel(model_path) def run( self, @@ -153,42 +143,75 @@ def run( print(f" Hash: {self.hash}") print(f" Depends on: {self.config.previous_hash}") - model_path = self.checkpoint_dir / f"{self.hash}" - # 3. Checkpoint logic: If a model with this exact history exists, load it. - if model_path.exists(): - print(f" Checkpoint FOUND. Loading model from '{model_path}'") - output_model = load_qmodel(model_path) - else: - print(" Checkpoint NOT FOUND. Executing function...") - output_model = self.function( + try: + self.load(self.hash) + except FileNotFoundError as e: + print(f" Checkpoint NOT FOUND. {e} Executing function...") + self.model = self.function( model=input_model, **self.config.parameters ) + self._save_model() + # Evaluate the model if a dataset is provided in the parameters + dataset = self.config.parameters.get("dataset", None) + if dataset is not None: + self.loss, self.accuracy = self.evaluate(load_data(dataset)) + # Compute the complexity of the model + self.complexity = self.compute_complexity() - self.save(output_model) + self._save_metadata() print(f"--- Stage finished in {time.time() - start_time:.2f}s ---\n") # 5. Return both the model and its hash to the orchestrator - return output_model, self.hash + return self.model, self.hash - def evaluate(self, model): - if model is None: - raise ValueError("No model to evaluate. Run the stage first.") - # After loading it is not compiled I think.... - model.compile( + def evaluate(self, data): + # After loading it is not compiled I think... + self.model.compile( optimizer="adam", loss="categorical_crossentropy", metrics=["accuracy"], ) - if "dataset" in self.config.parameters.keys(): - data = load_data(self.config.parameters["dataset"]) - loss, accuracy = model.evaluate( - data["x_test"], data["y_test"], verbose=0 - ) - print("Evaluation results:") - print(f"Loss: {loss:.4f}, Accuracy: {accuracy:.4f}") + loss, accuracy = self.model.evaluate( + data["x_test"], data["y_test"], verbose=0 + ) + print("Evaluation results:") + print(f"Loss: {loss:.4f}, Accuracy: {accuracy:.4f}") + return loss, accuracy - def compute_complexity(self, model): - complexity = compute_space_complexity_model(model) + def compute_complexity(self): + complexity = compute_space_complexity_model(self.model) print("Space complexity of the model:") print(complexity) + return complexity + + +class Pipeline: + def __init__(self, stages: list[Stage]): + self.stages = stages + + def add(self, stage: Stage): + """Adds a new stage to the pipeline.""" + self.stages.append(stage) + + def remove(self, stages_names: list[str] | str): + """Removes stages by their names.""" + if isinstance(stages_names, str): + stages_names = [stages_names] + self.stages = [ + stage + for stage in self.stages + if stage.config.name not in stages_names + ] + + def run(self, input_model: Optional[tf.keras.Model] = None): + """Runs the entire pipeline, passing the model from one stage to the + next.""" + previous_hash = None + + for stage in self.stages: + current_model, previous_hash = stage.run( + input_model=input_model, previous_hash=previous_hash + ) + + return current_model diff --git a/src/utils/metrics.py b/src/utils/metrics.py index f7ebcbd..a5ac6d6 100644 --- a/src/utils/metrics.py +++ b/src/utils/metrics.py @@ -30,8 +30,7 @@ def compute_space_complexity_quantize(qlayer: QuantizeWrapperV2) -> float: if isinstance(quantizer, UniformQuantizer): weight_size = weight.shape.num_elements() * quantizer.bits elif isinstance(quantizer, FlexQuantizer): - qweight = quantizer.quantize_op(weight) - weight_size = compute_huffman_nominal_complexity(qweight) + weight_size = compute_huffman_nominal_complexity(weight) weight_size += quantizer.n_levels * quantizer.bits else: raise ValueError(f"Unknown quantizer type: {type(quantizer)}") @@ -42,7 +41,7 @@ def compute_space_complexity_quantize(qlayer: QuantizeWrapperV2) -> float: def compute_space_complexity(layer): """Compute the space complexity for a normal layer.""" - total_layer_size = 0 + total_layer_size = 0.0 for weight in layer.weights: weight_size = ( 8 * weight.dtype.size * weight.shape.num_elements() @@ -55,7 +54,10 @@ def compute_space_complexity(layer): def compute_space_complexity_model(model: tf.keras.Model) -> float: """Compute the uniform space complexity of a model based on its quantization configuration.""" - total_space_complexity = 0 + total_space_complexity = 0.0 + + # Make an inference to ensure the model is built + model(tf.random.normal((1,) + model.input_shape[1:])) for layer in model.layers: if isinstance(layer, QuantizeWrapperV2): diff --git a/src/utils/metrics_integration_test.py b/src/utils/metrics_integration_test.py index a631980..53719d8 100755 --- a/src/utils/metrics_integration_test.py +++ b/src/utils/metrics_integration_test.py @@ -9,6 +9,7 @@ from configs.qmodel import apply_quantization from configs.serialization.serialization import load_qmodel, save_qmodel +from quantizers.flex_quantizer import FlexQuantizer from quantizers.uniform_quantizer import UniformQuantizer from utils.metrics import compute_space_complexity_model @@ -75,6 +76,67 @@ def test_save_and_load_model(self): compute_space_complexity_model(loaded_model), ) + def test_save_and_load_model_flex(self): + """Test saving and loading a model with metrics.""" + model = tf.keras.Sequential( + [ + tf.keras.layers.Dense(10, input_shape=(5,), name="dense_1"), + tf.keras.layers.Dense(5, name="dense_2"), + ] + ) + + qconfig = { + "dense_1": { + "weights": { + "kernel": FlexQuantizer(bits=4, n_levels=5, signed=True), + "bias": FlexQuantizer(bits=4, n_levels=4, signed=True), + }, + }, + "dense_2": { + "weights": { + "kernel": FlexQuantizer(bits=4, n_levels=5, signed=True), + "bias": FlexQuantizer(bits=4, n_levels=4, signed=True), + }, + }, + } + qmodel = apply_quantization(model, qconfig) + qmodel.build((None, 5)) + + tmpdir = tempfile.mkdtemp() + save_qmodel(qmodel, tmpdir) + loaded_model = load_qmodel(tmpdir) + # make an inference to ensure the model is loaded correctly + loaded_model(tf.random.normal((1, 5))) + + original_weights = {w.name: w.numpy() for w in qmodel.weights} + loaded_weights = {w.name: w.numpy() for w in loaded_model.weights} + + # First, check that the set of weight names is identical + self.assertEqual( + set(original_weights.keys()), + set(loaded_weights.keys()), + "Models have different sets of weight names.", + ) + + # Now, compare each weight tensor by name + for name, orig_w in original_weights.items(): + loaded_w = loaded_weights[name] + # print(f"Comparing weight tensor: {name}") + # print(f"Weights: {orig_w}") + # print(f"Loaded: {loaded_w}") + np.testing.assert_allclose( + orig_w, + loaded_w, + rtol=1e-6, + atol=1e-6, + err_msg=f"Weight tensor '{name}' differs.", + ) + + self.assertEqual( + compute_space_complexity_model(qmodel), + compute_space_complexity_model(loaded_model), + ) + if __name__ == "__main__": unittest.main() From 908c0bbb71861dcdcf9e45a8bccb206c6ddafe6d Mon Sep 17 00:00:00 2001 From: Francisco Rossi Date: Fri, 27 Jun 2025 23:14:07 -0300 Subject: [PATCH 07/26] V2 --- src/stage/functions.py | 92 +++++++++++++++++++-- src/stage/mainv2.py | 112 +++++++++++++++++++++++++ src/stage/stagev2.py | 182 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 377 insertions(+), 9 deletions(-) create mode 100755 src/stage/mainv2.py create mode 100644 src/stage/stagev2.py diff --git a/src/stage/functions.py b/src/stage/functions.py index 6f66316..74b64a3 100644 --- a/src/stage/functions.py +++ b/src/stage/functions.py @@ -103,6 +103,32 @@ def model_create(model, **params: dict) -> tf.keras.Model: model_name = params["model_name"] input_shape = params["input_shape"] categories = params["categories"] + if model_name == "custom_cnn1_for_cifar10": + new_model = models.Sequential( + [ + layers.Conv2D( + 64, + (3, 3), + padding="same", + activation="relu", + input_shape=input_shape[1:], + ), + layers.MaxPooling2D((2, 2)), + layers.Conv2D(128, (3, 3), padding="same", activation="relu"), + layers.MaxPooling2D((2, 2)), + layers.Flatten(), + layers.Dense(256, activation="relu"), + layers.Dropout(0.5), + layers.Dense(categories, activation="softmax"), + ], + name=model_name, + ) + new_model.compile( + optimizer=Adam(), + loss="categorical_crossentropy", + metrics=["accuracy"], + ) + return new_model if model_name == "lenet5_custom": new_model = models.Sequential( [ @@ -375,21 +401,40 @@ def model_quantize(model: tf.keras.Model, **params) -> tf.keras.Model: # --- Alpha Initialization for QAT --- -def get_activations_output(model, x_train, batch_size=128): - """Gets the activations of the model for the training data.""" +def activation_output_generator(model, x_train, batch_size=128): + """Generator to yield activations of the model for the training data.""" intermediate_model = models.Model( inputs=model.input, outputs=[layer.output for layer in model.layers] ) - activations = intermediate_model.predict( - x_train, batch_size=batch_size, verbose=0 - ) - return activations + num_samples = x_train.shape[0] + for start in range(0, num_samples, batch_size): + end = min(start + batch_size, num_samples) + yield intermediate_model.predict_on_batch( + x_train[start:end], + ) + + +def compute_max_abs_activations(model, x_train, batch_size=128): + """Computes the maximum absolute activations for each layer.""" + activations = activation_output_generator(model, x_train, batch_size) + max_abs_activations = {} + + for layer_outputs in activations: + for layer, output in zip(model.layers, layer_outputs): + if layer.name not in max_abs_activations: + max_abs_activations[layer.name] = np.max(np.abs(output)) + else: + max_abs_activations[layer.name] = max( + max_abs_activations[layer.name], np.max(np.abs(output)) + ) + + return max_abs_activations def compute_alpha_dict(model, x_train, batch_size=128): """Computes alpha values for weights and activations in a single comprehension.""" - activations = get_activations_output(model, x_train, batch_size) + max_activations = compute_max_abs_activations(model, x_train, batch_size) alpha_dict = { layer.name: { @@ -397,14 +442,43 @@ def compute_alpha_dict(model, x_train, batch_size=128): weight.name: np.max(np.abs(weight.numpy())) for weight in layer.weights }, - "activation": np.max(np.abs(activation_data)), + "activation": activation_data, } - for layer, activation_data in zip(model.layers, activations) + for layer, activation_data in zip(model.layers, max_activations) } return alpha_dict +# def get_activations_output(model, x_train, batch_size=128): +# """Gets the activations of the model for the training data.""" +# intermediate_model = models.Model( +# inputs=model.input, outputs=[layer.output for layer in model.layers] +# ) +# activations = intermediate_model.predict( +# x_train, batch_size=batch_size, verbose=0 +# ) +# return activations + +# def compute_alpha_dict(model, x_train, batch_size=128): +# """Computes alpha values for weights and activations in a single +# comprehension.""" +# activations = get_activations_output(model, x_train, batch_size) + +# alpha_dict = { +# layer.name: { +# **{ +# weight.name: np.max(np.abs(weight.numpy())) +# for weight in layer.weights +# }, +# "activation": np.max(np.abs(activation_data)), +# } +# for layer, activation_data in zip(model.layers, activations) +# } + +# return alpha_dict + + # def compute_flex_dict(model, x_train, batch_size=128): diff --git a/src/stage/mainv2.py b/src/stage/mainv2.py new file mode 100755 index 0000000..2106788 --- /dev/null +++ b/src/stage/mainv2.py @@ -0,0 +1,112 @@ +#!/usr/bin/env python3 + +from functions import ( + model_create, + model_initialize_parameters, + model_quantize, + model_train, +) +from stagev2 import Pipeline, StageMetadata + +# --- Configuration for All 7 Pipeline Stages --- +# This list defines the blueprint for our pipeline. Each dictionary +# will be used to initialize a Stage object. + +stages_hyperparams = [ + # Stage 0: Model creation + { + "name": "model_creation", + "seed": 12345, + "function": model_create, + "parameters": { + "dataset": "cifar10", + "input_shape": [None, 32, 32, 3], + "categories": 10, + "model_name": "custom_cnn1_for_cifar10", + }, + }, + # Stage 1: Initial training + { + "name": "initial_training", + "seed": 12345, + "function": model_train, + "parameters": { + "dataset": "cifar10", + "input_shape": [None, 32, 32, 3], + "categories": 10, + "epochs": 100, + "batch_size": 512, + "learning_rate": 0.001, + "validation_split": 0.1, + }, + }, + # Stage 2: Model quantization + { + "name": "quantization", + "seed": 12345, + "function": model_quantize, + "parameters": { + "input_shape": [None, 32, 32, 3], + # 'kernel' is set to None because it will be dynamically + # updated inside the experimental loop below. + "kernel": None, + "bias": [ + {"type": "uniform", "bits": 8}, + {"type": "uniform", "bits": 8}, + {"type": "uniform", "bits": 8}, + {"type": "uniform", "bits": 8}, + ], + "activations": [ + {"type": "uniform", "bits": 16}, + {"type": "uniform", "bits": 16}, + {"type": "uniform", "bits": 16}, + {"type": "uniform", "bits": 16}, + ], + }, + }, + # Stage 5: Alpha initialization + { + "name": "alpha_initialization", # Fixed typo from original "initialiation" + "seed": 12345, + "function": model_initialize_parameters, + "parameters": { + "dataset": "cifar10", + "input_shape": [None, 32, 32, 3], + "categories": 10, + "type": "alpha", + }, + }, + # Stage 6: QAT + { + "name": "qat", + "seed": 12345, + "function": model_train, + "parameters": { + "dataset": "cifar10", + "input_shape": [None, 32, 32, 3], + "categories": 10, + "epochs": 25, + "batch_size": 512, + "learning_rate": 0.0001, + "validation_split": 0.1, + }, + }, +] + + +if __name__ == "__main__": + for bits in reversed([1, 2, 3, 4, 5, 6, 8, 10, 16, 24]): + print( + f"\n{'='*20} STARTING EXPERIMENT: UNIFORM BITS = {bits} {'='*20}\n" + ) + + # --- Configure the Experiment --- + # Dynamically set the 'kernel' quantization parameter for this specific run. + kernel_config = [{"type": "uniform", "bits": bits} for _ in range(4)] + stages_hyperparams[2]["parameters"]["kernel"] = kernel_config + stages_metadata = [ + StageMetadata.from_dict(stage_dict) + for stage_dict in stages_hyperparams + ] + pipeline = Pipeline(stage_definitions=stages_metadata) + pipeline.run() diff --git a/src/stage/stagev2.py b/src/stage/stagev2.py new file mode 100644 index 0000000..9210798 --- /dev/null +++ b/src/stage/stagev2.py @@ -0,0 +1,182 @@ +from __future__ import annotations + +import hashlib +import json +from dataclasses import asdict, dataclass +from functools import partial +from pathlib import Path +from typing import Any, Callable, Dict, List, Optional, Tuple + +import tensorflow as tf +from functions import load_data + +from configs.serialization.serialization import load_qmodel, save_qmodel +from utils.metrics import compute_space_complexity_model + + +@dataclass +class StageMetadata: + name: str + seed: int + function: Callable + parameters: Dict[str, Any] + previous_hash: Optional[str] = None + + def to_hash(self) -> str: + stage_metadata_dict = asdict(self) + stage_metadata_dict["function"] = ( + self.function.__name__ + if not isinstance(self.function, partial) + else self.function.func.__name__ + ) + config_str = json.dumps(stage_metadata_dict, sort_keys=True) + return hashlib.md5(config_str.encode()).hexdigest() + + def save(self, directory_path: Path): + file_path = directory_path / f"{self.to_hash()}.json" + stage_metadata_dict = asdict(self) + stage_metadata_dict["function"] = ( + self.function.__name__ + if not isinstance(self.function, partial) + else self.function.func.__name__ + ) + with open(file_path, "w") as f: + json.dump(stage_metadata_dict, f, indent=4) + + @classmethod + def from_dict(cls, data: Dict[str, Any]) -> StageMetadata: + return cls( + name=data["name"], + seed=data["seed"], + function=data["function"], + parameters=data["parameters"], + previous_hash=data.get("previous_hash"), + ) + + +class Stage: + def __init__( + self, metadata: StageMetadata, store_path: Optional[Path] = None + ): + self.metadata = metadata + self.hash = metadata.to_hash() + + self.store_path = store_path + self.artifacts_path = store_path / "artifacts" + self.model_path = self.artifacts_path / self.hash + self.metadata_directory_path = store_path / "metadata" + self.results_path = store_path / f"results/{self.hash}.json" + self.artifacts_path.mkdir(parents=True, exist_ok=True) + self.metadata_directory_path.mkdir(parents=True, exist_ok=True) + self.results_path.parent.mkdir(parents=True, exist_ok=True) + + def is_model_stored(self) -> bool: + """Check if the model for this stage is already stored.""" + return self.model_path.exists() + + def load_model(self) -> tf.keras.Model: + return load_qmodel(self.model_path) + + def save_model(self, model: tf.keras.Model) -> None: + """Saves the model to the artifacts path.""" + save_qmodel(model, self.model_path) + + def evaluate_model( + self, model: tf.keras.Model, dataset: str + ) -> Tuple[float, float]: + """Evaluates the model on the given dataset.""" + data = load_data(dataset) + loss, accuracy = model.evaluate( + data["x_test"], data["y_test"], verbose=0 + ) + return loss, accuracy + + def compute_complexity(self, model: tf.keras.Model) -> Dict[str, Any]: + return compute_space_complexity_model(model) + + def generate_results( + self, model: tf.keras.Model, dataset: Optional[str] + ) -> Dict[str, Any]: + """Generates results for the model, including loss, accuracy, and + complexity.""" + results = {} + if dataset is not None: + loss, accuracy = self.evaluate_model(model, dataset) + results["loss"] = loss + results["accuracy"] = accuracy + complexity = self.compute_complexity(model) + results["complexity"] = complexity + return results + + def run( + self, input_model: Optional[tf.keras.Model] = None + ) -> Tuple[tf.keras.Model, str]: + if self.metadata.seed is not None: + tf.random.set_seed(self.metadata.seed) + self.metadata.save(self.metadata_directory_path) + + if self.is_model_stored(): + print(f"Loading model from {self.model_path}") + model = self.load_model() + else: + print( + f"Model not found at {self.model_path}, running stage function." + ) + model = self.metadata.function( + model=input_model, **self.metadata.parameters + ) + self.save_model(model) + + # Save results if they don't already exist + if not (self.results_path).exists(): + results = self.generate_results( + model, self.metadata.parameters.get("dataset") + ) + with (self.results_path).open("w") as f: + json.dump(results, f, indent=4) + + return model, self.hash + + +class Pipeline: + def __init__( + self, + stage_definitions: List[StageMetadata], + store_path: Optional[Path] = None, + ): + self.stage_definitions = stage_definitions + self.store_path = store_path or Path("checkpoints") + + def run(self) -> Tuple[tf.keras.Model, str]: + previous_stage_hash: Optional[str] = None + current_model: Optional[tf.keras.Model] = None + + for i, stage_def in enumerate(self.stage_definitions): + # Workaround for a particular case + print("--- Running stage:", stage_def.name, "----") + if stage_def.name == "alpha_initialization": + assert ( + ref_model is not None + ), "Reference model for alpha initialization is not set." + stage_def.function = partial( + stage_def.function, ref_model=ref_model + ) + final_metadata = StageMetadata( + name=stage_def.name, + seed=stage_def.seed, + function=stage_def.function, + parameters=stage_def.parameters, + previous_hash=previous_stage_hash, + ) + current_stage = Stage( + metadata=final_metadata, store_path=self.store_path + ) + + current_model, stage_hash = current_stage.run( + input_model=current_model + ) + # Workaround for a particular case + if stage_def.name == "initial_training": + pass + + previous_stage_hash = stage_hash From 9b38d990d22bded5fabf2dd43232627268679abc Mon Sep 17 00:00:00 2001 From: Francisco Rossi Date: Sat, 28 Jun 2025 10:09:39 -0300 Subject: [PATCH 08/26] Add plot --- src/stage/mainv2.py | 5 ++- src/stage/plotv2.py | 104 +++++++++++++++++++++++++++++++++++++++++++ src/stage/stagev2.py | 9 ++++ 3 files changed, 117 insertions(+), 1 deletion(-) create mode 100755 src/stage/plotv2.py diff --git a/src/stage/mainv2.py b/src/stage/mainv2.py index 2106788..bc69ba4 100755 --- a/src/stage/mainv2.py +++ b/src/stage/mainv2.py @@ -108,5 +108,8 @@ StageMetadata.from_dict(stage_dict) for stage_dict in stages_hyperparams ] - pipeline = Pipeline(stage_definitions=stages_metadata) + pipeline = Pipeline( + name=f"experiment_uniform_bits_{bits}", + stage_definitions=stages_metadata, + ) pipeline.run() diff --git a/src/stage/plotv2.py b/src/stage/plotv2.py new file mode 100755 index 0000000..1481e9b --- /dev/null +++ b/src/stage/plotv2.py @@ -0,0 +1,104 @@ +#!/usr/bin/env python3 + +import json +from pathlib import Path + +import matplotlib.pyplot as plt +import pandas as pd + + +def load_pipeline(pipeline_metadata_file, results_path, metadata_path): + df = pd.DataFrame() + stages_results = [] + stages_names = [] + with open(pipeline_metadata_file, "r") as f: + pipeline_metadata = json.load(f) + for stage_hash in pipeline_metadata["history"]: + with open(results_path / f"{stage_hash}.json", "r") as stage_file: + stage_results = json.load(stage_file) + stages_results.append(stage_results) + with open( + metadata_path / f"{stage_hash}.json", "r" + ) as metadata_file: + stage_metadata = json.load(metadata_file) + stages_names.append(stage_metadata["name"]) + df = pd.DataFrame(stages_results) + df["stage"] = stages_names + return df + + +if __name__ == "__main__": + checkpoint_path = Path("checkpoints") + pipeline_path = checkpoint_path / "pipelines" + metadata_path = checkpoint_path / "metadata" + results_path = checkpoint_path / "results" + + combined_df = pd.DataFrame() + + for pipeline_metadata_file in pipeline_path.glob("*.json"): + print(f"Loading pipeline metadata from {pipeline_metadata_file}") + df = load_pipeline(pipeline_metadata_file, results_path, metadata_path) + # expermient_[TYPE]_bits_[NBITS]_n_levels_[NLEVELS] + pipeline_name = pipeline_metadata_file.stem + pipeline_name_parts = pipeline_name.split("_") + pipeline_quantizer_type = pipeline_name_parts[1] + pipeline_bits = pipeline_name_parts[3] + pipeline_levels = ( + pipeline_name_parts[5] if len(pipeline_name_parts) > 5 else None + ) + df["pipeline_name"] = pipeline_name + df["quantizer_type"] = pipeline_quantizer_type + df["bits"] = pipeline_bits + df["levels"] = pipeline_levels + combined_df = pd.concat([combined_df, df], ignore_index=True) + pd.set_option("display.max_rows", None) + pd.set_option("display.max_columns", None) + + combined_df["complexity"] = ( + combined_df["complexity"] / 1024 + ) # Convert to Kbits + original_accuracy = combined_df[ + combined_df["stage"] == "initial_training" + ]["accuracy"].mean() + original_complexity = combined_df[ + combined_df["stage"] == "initial_training" + ]["complexity"].mean() + combined_df = combined_df[combined_df["stage"] == "qat"] + combined_df.sort_values(by=["complexity"], inplace=True) + all_accuracies = combined_df["accuracy"].tolist() + all_complexities = combined_df["complexity"].tolist() + all_accuracies.append(original_accuracy) + all_complexities.append(original_complexity) + print(combined_df) + plt.figure() + combined_df.plot( + x="complexity", + y=["accuracy"], + kind="scatter", + title="Complexity vs Accuracy", + xlabel="Complexity (Kbits)", + ylabel="Accuracy", + zorder=3, + color="blue", + label="Quantized Model", + ) + plt.scatter( + original_complexity, + original_accuracy, + color="red", + label="Original Model", + zorder=3, + ) + plt.axhline( + original_accuracy, color="red", linestyle=":", alpha=0.3, zorder=1 + ) + plt.plot( + all_complexities, + all_accuracies, + color="gray", + linestyle="--", + zorder=1, + ) + plt.grid(which="both", linestyle="--", linewidth=0.5) + plt.legend() + plt.savefig("complexity_vs_quantized.png") diff --git a/src/stage/stagev2.py b/src/stage/stagev2.py index 9210798..dfc473a 100644 --- a/src/stage/stagev2.py +++ b/src/stage/stagev2.py @@ -141,11 +141,16 @@ def run( class Pipeline: def __init__( self, + name: str, stage_definitions: List[StageMetadata], store_path: Optional[Path] = None, ): + self.name = name self.stage_definitions = stage_definitions self.store_path = store_path or Path("checkpoints") + self.pipeline_metadata_path = self.store_path / "pipelines" + self.pipeline_metadata_path.mkdir(parents=True, exist_ok=True) + self.hash_history = [] def run(self) -> Tuple[tf.keras.Model, str]: previous_stage_hash: Optional[str] = None @@ -175,8 +180,12 @@ def run(self) -> Tuple[tf.keras.Model, str]: current_model, stage_hash = current_stage.run( input_model=current_model ) + self.hash_history.append(stage_hash) # Workaround for a particular case if stage_def.name == "initial_training": pass previous_stage_hash = stage_hash + + with open(self.pipeline_metadata_path / f"{self.name}.json", "w") as f: + json.dump({"history": self.hash_history}, f) From 1da136e20824c7629819fe621bc5dbe065b8b3c6 Mon Sep 17 00:00:00 2001 From: Francisco Rossi Date: Sat, 28 Jun 2025 10:21:05 -0300 Subject: [PATCH 09/26] Fix ref_model --- src/stage/stagev2.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/stage/stagev2.py b/src/stage/stagev2.py index dfc473a..7de564e 100644 --- a/src/stage/stagev2.py +++ b/src/stage/stagev2.py @@ -183,7 +183,9 @@ def run(self) -> Tuple[tf.keras.Model, str]: self.hash_history.append(stage_hash) # Workaround for a particular case if stage_def.name == "initial_training": - pass + ref_model = ( + current_model # pyright: ignore[reportUnboundVariable] + ) previous_stage_hash = stage_hash From 78f2c20763aedc4a59e7d31200133d39b0c5d74b Mon Sep 17 00:00:00 2001 From: Francisco Rossi Date: Fri, 11 Jul 2025 21:31:34 -0300 Subject: [PATCH 10/26] WIP new flex init --- src/quantizers/uniform_quantizer.py | 1 - src/stage/flex_mainv2.py | 125 +++++++++++++++ src/stage/functions.py | 237 ++++++++++++++++++---------- src/stage/plotv2.py | 4 +- src/stage/stagev2.py | 12 -- 5 files changed, 283 insertions(+), 96 deletions(-) create mode 100755 src/stage/flex_mainv2.py diff --git a/src/quantizers/uniform_quantizer.py b/src/quantizers/uniform_quantizer.py index 2a3f7cd..9cd2e3b 100755 --- a/src/quantizers/uniform_quantizer.py +++ b/src/quantizers/uniform_quantizer.py @@ -66,7 +66,6 @@ def __call__(self, w): # Use epsilon to avoid dividing by zero during backpropagation. return tf.clip_by_value(w, tf.keras.backend.epsilon(), np.inf) - print(f"name is {name}") alpha = layer.add_weight( name=f"{name}{self.name_suffix}_alpha", initializer=self.initializer, diff --git a/src/stage/flex_mainv2.py b/src/stage/flex_mainv2.py new file mode 100755 index 0000000..3d1fad0 --- /dev/null +++ b/src/stage/flex_mainv2.py @@ -0,0 +1,125 @@ +#!/usr/bin/env python3 + +from functions import ( + initialize_quantizer_weights, + model_create, + model_quantize, + model_train, +) +from stagev2 import Pipeline, StageMetadata + +# --- Configuration for All 7 Pipeline Stages --- +# This list defines the blueprint for our pipeline. Each dictionary +# will be used to initialize a Stage object. + +stages_hyperparams = [ + # Stage 0: Model creation + { + "name": "model_creation", + "seed": 12345, + "function": model_create, + "parameters": { + "dataset": "cifar10", + "input_shape": [None, 32, 32, 3], + "categories": 10, + "model_name": "custom_cnn1_for_cifar10", + }, + }, + # Stage 1: Initial training + { + "name": "initial_training", + "seed": 12345, + "function": model_train, + "parameters": { + "dataset": "cifar10", + "input_shape": [None, 32, 32, 3], + "categories": 10, + "epochs": 100, + "batch_size": 512, + "learning_rate": 0.001, + "validation_split": 0.1, + }, + }, + # Stage 2: Model quantization + { + "name": "quantization", + "seed": 12345, + "function": model_quantize, + "parameters": { + "input_shape": [None, 32, 32, 3], + # 'kernel' is set to None because it will be dynamically + # updated inside the experimental loop below. + "kernel": None, + "bias": [ + {"type": "uniform", "bits": 8}, + {"type": "uniform", "bits": 8}, + {"type": "uniform", "bits": 8}, + {"type": "uniform", "bits": 8}, + ], + "activations": [ + {"type": "uniform", "bits": 16}, + {"type": "uniform", "bits": 16}, + {"type": "uniform", "bits": 16}, + {"type": "uniform", "bits": 16}, + ], + }, + }, + # Stage 5: Alpha initialization + { + "name": "alpha_initialization", + "seed": 12345, + "function": initialize_quantizer_weights, + "parameters": { + "dataset": "cifar10", + "batch_size": 512, + "input_shape": [None, 32, 32, 3], + "categories": 10, + "type": "alpha", + }, + }, + # Stage 6: QAT + { + "name": "qat", + "seed": 12345, + "function": model_train, + "parameters": { + "dataset": "cifar10", + "input_shape": [None, 32, 32, 3], + "categories": 10, + "epochs": 75, + "batch_size": 128, + "learning_rate": 0.00001, + "validation_split": 0.1, + }, + }, +] + + +if __name__ == "__main__": + bits = [4, 6, 8, 10] + # n_levels = [2, 3, 4, 5, 6, 7, 8, 12, 16, 20] + n_levels = [8, 10, 12, 14, 16] + combinations = [ + (b, n) for b in reversed(bits) for n in reversed(n_levels) if n <= 2**b + ] + for bits, n_levels in combinations: + print( + f"\n{'='*20} STARTING EXPERIMENT: FLEX BITS = {bits}, N_LEVELS = {n_levels} {'='*20}\n" + ) + + # --- Configure the Experiment --- + # Dynamically set the 'kernel' quantization parameter for this specific run. + kernel_config = [ + {"type": "flexible", "bits": bits, "n_levels": n_levels} + for _ in range(4) + ] + stages_hyperparams[2]["parameters"]["kernel"] = kernel_config + stages_metadata = [ + StageMetadata.from_dict(stage_dict) + for stage_dict in stages_hyperparams + ] + pipeline = Pipeline( + name=f"experiment_flex_bits_{bits}_nlevels_{n_levels}", + stage_definitions=stages_metadata, + ) + pipeline.run() diff --git a/src/stage/functions.py b/src/stage/functions.py index 74b64a3..952e6fc 100644 --- a/src/stage/functions.py +++ b/src/stage/functions.py @@ -8,6 +8,7 @@ from tensorflow.keras.optimizers import Adam from tensorflow.keras.utils import to_categorical +from configs.generate_config import GenerateConfig from configs.qmodel import apply_quantization from quantizers.flex_quantizer import FlexQuantizer from quantizers.uniform_quantizer import UniformQuantizer @@ -398,13 +399,19 @@ def model_quantize(model: tf.keras.Model, **params) -> tf.keras.Model: return quantized_model -# --- Alpha Initialization for QAT --- +# --- Quantizer Weight Initialization for QAT --- def activation_output_generator(model, x_train, batch_size=128): """Generator to yield activations of the model for the training data.""" + # run an inference + model(x_train[:1]) # Ensure the model is built + layers_to_inspect = [ + layer for layer in model.layers if hasattr(layer, "quantize_config") + ] intermediate_model = models.Model( - inputs=model.input, outputs=[layer.output for layer in model.layers] + inputs=model.input, + outputs=[layer.output for layer in layers_to_inspect], ) num_samples = x_train.shape[0] for start in range(0, num_samples, batch_size): @@ -431,98 +438,166 @@ def compute_max_abs_activations(model, x_train, batch_size=128): return max_abs_activations -def compute_alpha_dict(model, x_train, batch_size=128): - """Computes alpha values for weights and activations in a single - comprehension.""" - max_activations = compute_max_abs_activations(model, x_train, batch_size) - - alpha_dict = { - layer.name: { - **{ - weight.name: np.max(np.abs(weight.numpy())) - for weight in layer.weights - }, - "activation": activation_data, - } - for layer, activation_data in zip(model.layers, max_activations) - } +from quantizers.common import max_value, min_value - return alpha_dict +def get_max_alpha(weight): + max_value = np.max(np.abs(weight)) + return max_value if max_value != 0 else 0.1 -# def get_activations_output(model, x_train, batch_size=128): -# """Gets the activations of the model for the training data.""" -# intermediate_model = models.Model( -# inputs=model.input, outputs=[layer.output for layer in model.layers] -# ) -# activations = intermediate_model.predict( -# x_train, batch_size=batch_size, verbose=0 -# ) -# return activations -# def compute_alpha_dict(model, x_train, batch_size=128): -# """Computes alpha values for weights and activations in a single -# comprehension.""" -# activations = get_activations_output(model, x_train, batch_size) +def get_uniform_levels(alpha, signed, n_levels): + start = min_value(alpha, signed) + end = max_value(alpha, n_levels, signed) + return np.linspace(start, end, n_levels) -# alpha_dict = { -# layer.name: { -# **{ -# weight.name: np.max(np.abs(weight.numpy())) -# for weight in layer.weights -# }, -# "activation": np.max(np.abs(activation_data)), -# } -# for layer, activation_data in zip(model.layers, activations) -# } -# return alpha_dict +def get_uniform_thresholds(alpha, signed, n_levels): + # Thresholds include the start and end points by design. + start = min_value(alpha, signed) + end = alpha + return np.linspace(start, end, n_levels + 1) -# def compute_flex_dict(model, x_train, batch_size=128): +def initialize_quantizer_weights(model, **params): + """Initializes quantizer weights for the model.""" + data = load_data(params["dataset"]) + x_train = data["x_train"] + model.compile( + optimizer=Adam(), loss="categorical_crossentropy", metrics=["accuracy"] + ) + model.predict(x_train[:1], verbose=0) -def apply_alpha_dict(model, alpha_dict): - """Applies pre-computed alpha values to a quantized model.""" + batch_size = params.get("batch_size", 128) + max_activations = compute_max_abs_activations(model, x_train, batch_size) + print("Max absolute activations:", max_activations) for layer in model.layers: - original_layer_name = layer.name.replace("quant_", "") - - if original_layer_name not in alpha_dict: - continue - - for weight in layer.weights: - if ( - not weight.name.endswith("_alpha") - or weight.name not in alpha_dict[original_layer_name] - ): - continue - - # See the quantizers weight naming convention - # No name_suffix for now - weight.assign(alpha_dict[original_layer_name][weight.name]) - print( - f"Updated {weight.name} with alpha: {alpha_dict[original_layer_name][weight.name]:.4f}" - ) + print(f"Layer: {layer.name}") + if hasattr(layer, "quantize_config") and isinstance( + layer.quantize_config, (GenerateConfig) + ): + layer_config = layer.quantize_config + print(f"layer weights: {[w.name for w in layer.weights]}s") + weights_dict = layer_config.weights + activations_dict = layer_config.activations + for weight_name, quantize_config in weights_dict.items(): + + # Get layer and weight info + print("layer name:", layer.name) + original_layer_name = layer.name.replace("quant_", "") + original_weight_name = f"{original_layer_name}/{weight_name}:0" + filtered_weights = [ + w for w in layer.weights if w.name == original_weight_name + ] + if not filtered_weights: + print( + f"Warning: No weight found for {original_weight_name} in layer {layer.name}" + ) + continue + weight = filtered_weights[0] + + # Compute and assign alpha + alpha = get_max_alpha(weight) + alpha_weight = [ + w + for w in layer.weights + if w.name == f"{layer.name}/{weight_name}_alpha:0" + ] + if not alpha_weight: + print( + f"Warning: No alpha weight found for {weight_name} in layer {layer.name}" + ) + continue + alpha_weight = alpha_weight[0] + alpha_weight.assign(alpha) + + # If flex, we need to do the same with levels and thresholds + if isinstance(quantize_config, FlexQuantizer): + + # Compute and assign levels + levels = get_uniform_levels( + alpha, quantize_config.signed, quantize_config.n_levels + ) + levels_weight = [ + w + for w in layer.weights + if w.name == f"{layer.name}/{weight_name}_levels:0" + ] + if not levels_weight: + print( + f"Warning: No levels weight found for {weight_name} in layer {layer.name}" + ) + continue + levels_weight = levels_weight[0] + levels_weight.assign(levels) + + # Compute and assign thresholds + thresholds = get_uniform_thresholds( + alpha, quantize_config.signed, quantize_config.n_levels + ) + thresholds_weight = [ + w + for w in layer.weights + if w.name == f"{layer.name}/{weight_name}_thresholds:0" + ] + if not thresholds_weight: + print( + f"Warning: No thresholds weight found for {weight_name} in layer {layer.name}" + ) + continue + thresholds_weight = thresholds_weight[0] + thresholds_weight.assign(thresholds) + + for activation_name, quantize_config in activations_dict.items(): + alpha = max_activations.get(layer.name, 0) + alpha_weight = [ + w + for w in layer.weights + if w.name == f"{layer.name}/post_activation_alpha:0" + ] + if not alpha_weight: + print( + f"Warning: No alpha weight found for activation {activation_name} in layer {layer.name}" + ) + continue + alpha_weight = alpha_weight[0] + alpha_weight.assign(alpha) + if isinstance(quantize_config, FlexQuantizer): + levels = get_uniform_levels( + alpha, quantize_config.signed, quantize_config.n_levels + ) + thresholds = get_uniform_thresholds( + alpha, quantize_config.signed, quantize_config.n_levels + ) + levels_weight = [ + w + for w in layer.weights + if w.name == f"{layer.name}/post_activation_levels:0" + ] + if not levels_weight: + print( + f"Warning: No levels weight found for activation {activation_name} in layer {layer.name}" + ) + continue + levels_weight = levels_weight[0] + levels_weight.assign(levels) + thresholds_weight = [ + w + for w in layer.weights + if w.name + == f"{layer.name}/post_activation_thresholds:0" + ] + if not thresholds_weight: + print( + f"Warning: No thresholds weight found for activation {activation_name} in layer {layer.name}" + ) + continue + thresholds_weight = thresholds_weight[0] + thresholds_weight.assign(thresholds) return model -def model_initialize_parameters(model, ref_model, **params) -> tf.keras.Model: - """Initializes quantization parameters (alphas) using a reference model.""" - print("Function: model_initialize_parameters called") - if ref_model is None: - raise ValueError( - "model_initialize_parameters requires a ref_model, but none was provided." - ) - if params["type"] == "alpha": - data = load_data(params["dataset"]) - alpha_dict = compute_alpha_dict(ref_model, data["x_train"]) - model = apply_alpha_dict(model, alpha_dict) - return model - raise ValueError( - f"Unknown parameter initialization type: {params['type']!r}" - ) - - def model_evaluate(model, **params): """Evaluates the model on the test dataset.""" if model is None: @@ -540,5 +615,5 @@ def model_evaluate(model, **params): "model_train": model_train, "model_transform_bnf": model_transform_bnf, # Assuming you will add this "model_quantize": model_quantize, - "model_initialize_parameters": model_initialize_parameters, + "initialize_quantizer_weights": initialize_quantizer_weights, } diff --git a/src/stage/plotv2.py b/src/stage/plotv2.py index 1481e9b..ff37977 100755 --- a/src/stage/plotv2.py +++ b/src/stage/plotv2.py @@ -35,7 +35,7 @@ def load_pipeline(pipeline_metadata_file, results_path, metadata_path): combined_df = pd.DataFrame() - for pipeline_metadata_file in pipeline_path.glob("*.json"): + for pipeline_metadata_file in pipeline_path.glob("experiment_flex*.json"): print(f"Loading pipeline metadata from {pipeline_metadata_file}") df = load_pipeline(pipeline_metadata_file, results_path, metadata_path) # expermient_[TYPE]_bits_[NBITS]_n_levels_[NLEVELS] @@ -101,4 +101,4 @@ def load_pipeline(pipeline_metadata_file, results_path, metadata_path): ) plt.grid(which="both", linestyle="--", linewidth=0.5) plt.legend() - plt.savefig("complexity_vs_quantized.png") + plt.savefig("complexity_vs_quantized_flex.png") diff --git a/src/stage/stagev2.py b/src/stage/stagev2.py index 7de564e..cf7bfde 100644 --- a/src/stage/stagev2.py +++ b/src/stage/stagev2.py @@ -159,13 +159,6 @@ def run(self) -> Tuple[tf.keras.Model, str]: for i, stage_def in enumerate(self.stage_definitions): # Workaround for a particular case print("--- Running stage:", stage_def.name, "----") - if stage_def.name == "alpha_initialization": - assert ( - ref_model is not None - ), "Reference model for alpha initialization is not set." - stage_def.function = partial( - stage_def.function, ref_model=ref_model - ) final_metadata = StageMetadata( name=stage_def.name, seed=stage_def.seed, @@ -181,11 +174,6 @@ def run(self) -> Tuple[tf.keras.Model, str]: input_model=current_model ) self.hash_history.append(stage_hash) - # Workaround for a particular case - if stage_def.name == "initial_training": - ref_model = ( - current_model # pyright: ignore[reportUnboundVariable] - ) previous_stage_hash = stage_hash From e9ca5103f6658aee882338ce75d99636bc4ec006 Mon Sep 17 00:00:00 2001 From: Francisco Rossi Date: Sun, 13 Jul 2025 19:32:42 -0300 Subject: [PATCH 11/26] Removed init and trim plot --- src/stage/flex_mainv2.py | 63 +++++++++++++++++++++++++--------------- src/stage/functions.py | 9 ++++-- src/stage/plotv2.py | 22 +++++++------- 3 files changed, 58 insertions(+), 36 deletions(-) diff --git a/src/stage/flex_mainv2.py b/src/stage/flex_mainv2.py index 3d1fad0..1c260a1 100755 --- a/src/stage/flex_mainv2.py +++ b/src/stage/flex_mainv2.py @@ -1,11 +1,6 @@ #!/usr/bin/env python3 -from functions import ( - initialize_quantizer_weights, - model_create, - model_quantize, - model_train, -) +from functions import model_create, model_quantize, model_train from stagev2 import Pipeline, StageMetadata # --- Configuration for All 7 Pipeline Stages --- @@ -34,8 +29,8 @@ "dataset": "cifar10", "input_shape": [None, 32, 32, 3], "categories": 10, - "epochs": 100, - "batch_size": 512, + "epochs": 10, + "batch_size": 128, "learning_rate": 0.001, "validation_split": 0.1, }, @@ -57,6 +52,10 @@ {"type": "uniform", "bits": 8}, ], "activations": [ + # {"type": "none"}, + # {"type": "none"}, + # {"type": "none"}, + # {"type": "none"}, {"type": "uniform", "bits": 16}, {"type": "uniform", "bits": 16}, {"type": "uniform", "bits": 16}, @@ -65,18 +64,33 @@ }, }, # Stage 5: Alpha initialization - { - "name": "alpha_initialization", - "seed": 12345, - "function": initialize_quantizer_weights, - "parameters": { - "dataset": "cifar10", - "batch_size": 512, - "input_shape": [None, 32, 32, 3], - "categories": 10, - "type": "alpha", - }, - }, + # { + # "name": "alpha_initialization", + # "seed": 12345, + # "function": initialize_quantizer_weights, + # "parameters": { + # "dataset": "cifar10", + # "batch_size": 512, + # "input_shape": [None, 32, 32, 3], + # "categories": 10, + # "type": "alpha", + # }, + # }, + # Stage 6: QAT + # { + # "name": "qat_fast", + # "seed": 12345, + # "function": model_train, + # "parameters": { + # "dataset": "cifar10", + # "input_shape": [None, 32, 32, 3], + # "categories": 10, + # "epochs": 15, + # "batch_size": 128, + # "learning_rate": 0.0001, + # "validation_split": 0.2, + # }, + # }, # Stage 6: QAT { "name": "qat", @@ -86,10 +100,10 @@ "dataset": "cifar10", "input_shape": [None, 32, 32, 3], "categories": 10, - "epochs": 75, + "epochs": 35, "batch_size": 128, - "learning_rate": 0.00001, - "validation_split": 0.1, + "learning_rate": 0.001 / 10, + "validation_split": 0.2, }, }, ] @@ -98,7 +112,8 @@ if __name__ == "__main__": bits = [4, 6, 8, 10] # n_levels = [2, 3, 4, 5, 6, 7, 8, 12, 16, 20] - n_levels = [8, 10, 12, 14, 16] + # n_levels = [4, 6, 8, 10] + n_levels = range(4, 13) combinations = [ (b, n) for b in reversed(bits) for n in reversed(n_levels) if n <= 2**b ] diff --git a/src/stage/functions.py b/src/stage/functions.py index 952e6fc..33918a3 100644 --- a/src/stage/functions.py +++ b/src/stage/functions.py @@ -441,7 +441,7 @@ def compute_max_abs_activations(model, x_train, batch_size=128): from quantizers.common import max_value, min_value -def get_max_alpha(weight): +def get_max_weight_value(weight): max_value = np.max(np.abs(weight)) return max_value if max_value != 0 else 0.1 @@ -498,7 +498,7 @@ def initialize_quantizer_weights(model, **params): weight = filtered_weights[0] # Compute and assign alpha - alpha = get_max_alpha(weight) + alpha = get_max_weight_value(weight) alpha_weight = [ w for w in layer.weights @@ -511,6 +511,7 @@ def initialize_quantizer_weights(model, **params): continue alpha_weight = alpha_weight[0] alpha_weight.assign(alpha) + print(f"Alpha: {alpha_weight}") # If flex, we need to do the same with levels and thresholds if isinstance(quantize_config, FlexQuantizer): @@ -531,6 +532,7 @@ def initialize_quantizer_weights(model, **params): continue levels_weight = levels_weight[0] levels_weight.assign(levels) + print(f"Levels: {levels_weight}") # Compute and assign thresholds thresholds = get_uniform_thresholds( @@ -548,6 +550,7 @@ def initialize_quantizer_weights(model, **params): continue thresholds_weight = thresholds_weight[0] thresholds_weight.assign(thresholds) + print(f"Thresholds: {thresholds_weight}") for activation_name, quantize_config in activations_dict.items(): alpha = max_activations.get(layer.name, 0) @@ -563,6 +566,7 @@ def initialize_quantizer_weights(model, **params): continue alpha_weight = alpha_weight[0] alpha_weight.assign(alpha) + print(f"Activation Alpha: {alpha_weight}") if isinstance(quantize_config, FlexQuantizer): levels = get_uniform_levels( alpha, quantize_config.signed, quantize_config.n_levels @@ -582,6 +586,7 @@ def initialize_quantizer_weights(model, **params): continue levels_weight = levels_weight[0] levels_weight.assign(levels) + # print thresholds_weight = [ w for w in layer.weights diff --git a/src/stage/plotv2.py b/src/stage/plotv2.py index ff37977..36e1364 100755 --- a/src/stage/plotv2.py +++ b/src/stage/plotv2.py @@ -67,9 +67,11 @@ def load_pipeline(pipeline_metadata_file, results_path, metadata_path): combined_df.sort_values(by=["complexity"], inplace=True) all_accuracies = combined_df["accuracy"].tolist() all_complexities = combined_df["complexity"].tolist() - all_accuracies.append(original_accuracy) - all_complexities.append(original_complexity) - print(combined_df) + # all_accuracies.append(original_accuracy) + # all_complexities.append(original_complexity) + print( + combined_df.sort_values(by=["accuracy", "complexity"], ascending=False) + ) plt.figure() combined_df.plot( x="complexity", @@ -82,13 +84,13 @@ def load_pipeline(pipeline_metadata_file, results_path, metadata_path): color="blue", label="Quantized Model", ) - plt.scatter( - original_complexity, - original_accuracy, - color="red", - label="Original Model", - zorder=3, - ) + # plt.scatter( + # original_complexity, + # original_accuracy, + # color="red", + # label="Original Model", + # zorder=3, + # ) plt.axhline( original_accuracy, color="red", linestyle=":", alpha=0.3, zorder=1 ) From 32100ab636ddebd62f8b9f9de7c6c3b4aac427f2 Mon Sep 17 00:00:00 2001 From: Francisco Rossi Date: Sun, 13 Jul 2025 19:43:01 -0300 Subject: [PATCH 12/26] Support new model in original run script --- src/examples/data_analysis/plot.py | 7 +-- src/examples/datasets/cifar-10.py | 33 ++++++++++++++ src/examples/models/lenet_custom.py | 71 +++++++++++++++++++++++++++++ src/examples/run.py | 1 + src/stage/plot.py | 2 +- 5 files changed, 110 insertions(+), 4 deletions(-) create mode 100644 src/examples/datasets/cifar-10.py create mode 100644 src/examples/models/lenet_custom.py diff --git a/src/examples/data_analysis/plot.py b/src/examples/data_analysis/plot.py index 62cbe0f..8f59230 100644 --- a/src/examples/data_analysis/plot.py +++ b/src/examples/data_analysis/plot.py @@ -16,9 +16,10 @@ def plot_flex_snapshot( # NOTE(Fran): Big assumption here that the keys are always the same # TODO(Fran): Also it seems activations aren't being stored as model weights # ... - alpha_history = layer_history[f"{layer_name}/alpha:0"] - level_history = layer_history[f"{layer_name}/levels:0"] - threshold_history = layer_history[f"{layer_name}/thresholds:0"] + print(layer_history.keys()) + alpha_history = layer_history[f"{layer_name}/kernel_alpha:0"] + level_history = layer_history[f"{layer_name}/kernel_levels:0"] + threshold_history = layer_history[f"{layer_name}/kernel_thresholds:0"] bits = quantizer.bits signed = quantizer.signed diff --git a/src/examples/datasets/cifar-10.py b/src/examples/datasets/cifar-10.py new file mode 100644 index 0000000..836bf0c --- /dev/null +++ b/src/examples/datasets/cifar-10.py @@ -0,0 +1,33 @@ +import tensorflow as tf +from tensorflow.keras.utils import to_categorical + + +def to_tf_dataset(x, y, batch_size, shuffle=True): + dataset = tf.data.Dataset.from_tensor_slices((x, y)) + if shuffle: + dataset = dataset.shuffle(buffer_size=len(x)) + return dataset.batch(batch_size).prefetch(tf.data.AUTOTUNE) + + +def generate_dataset(batch_size): + """Generate the CIFAR-10 dataset with a validation split.""" + (x_train, y_train), (x_test, y_test) = ( + tf.keras.datasets.cifar10.load_data() + ) + + x_train = x_train.astype("float32") / 255.0 + x_test = x_test.astype("float32") / 255.0 + + y_train = to_categorical(y_train, 10) + y_test = to_categorical(y_test, 10) + + # Split train data into train and validation sets + val_size = len(y_test) + x_val, y_val = x_train[:val_size], y_train[:val_size] + x_train, y_train = x_train[val_size:], y_train[val_size:] + + train_dataset = to_tf_dataset(x_train, y_train, batch_size) + val_dataset = to_tf_dataset(x_val, y_val, batch_size) + test_dataset = to_tf_dataset(x_test, y_test, batch_size) + + return train_dataset, val_dataset, test_dataset diff --git a/src/examples/models/lenet_custom.py b/src/examples/models/lenet_custom.py new file mode 100644 index 0000000..4a8f65e --- /dev/null +++ b/src/examples/models/lenet_custom.py @@ -0,0 +1,71 @@ +from tensorflow.keras.layers import ( + Conv2D, + Dense, + Dropout, + Flatten, + MaxPooling2D, +) +from tensorflow.keras.models import Sequential + +categories = 10 # Number of classes (digits 0-9) +input_shape = [None, 32, 32, 3] # Input shape for CIFAR-10 dataset +model = Sequential( + [ + Conv2D( + 64, + (3, 3), + padding="same", + activation="relu", + input_shape=input_shape[1:], + name="conv2d", + ), + MaxPooling2D((2, 2)), + Conv2D( + 128, (3, 3), padding="same", activation="relu", name="conv2d_1" + ), + MaxPooling2D((2, 2)), + Flatten(), + Dense(256, activation="relu", name="dense"), + Dropout(0.5), + Dense(categories, activation="softmax", name="dense_1"), + ], +) + +from quantizers.flex_quantizer import FlexQuantizer +from quantizers.uniform_quantizer import UniformQuantizer + +n_levels = 10 # Number of quantization levels +bits = 8 # Number of bits for quantization + +qconfig = { + "conv2d": { + "weights": { + "kernel": FlexQuantizer(bits=bits, n_levels=n_levels, signed=True), + "bias": UniformQuantizer(bits=8, signed=True), + }, + "activations": {"activation": UniformQuantizer(bits=16, signed=False)}, + }, + "conv2d_1": { + "weights": { + "kernel": FlexQuantizer(bits=bits, n_levels=n_levels, signed=True), + "bias": UniformQuantizer(bits=8, signed=True), + }, + "activations": {"activation": UniformQuantizer(bits=16, signed=False)}, + }, + "dense": { + "weights": { + "kernel": FlexQuantizer(bits=bits, n_levels=n_levels, signed=True), + "bias": UniformQuantizer(bits=8, signed=True), + }, + "activations": {"activation": UniformQuantizer(bits=16, signed=False)}, + }, + "dense_1": { + "weights": { + "kernel": FlexQuantizer(bits=bits, n_levels=n_levels, signed=True), + "bias": UniformQuantizer(bits=8, signed=True), + }, + "activations": {"activation": UniformQuantizer(bits=16, signed=False)}, + }, +} + +qconfigs = {"qconfig": qconfig} diff --git a/src/examples/run.py b/src/examples/run.py index 93f18f8..61be2d3 100755 --- a/src/examples/run.py +++ b/src/examples/run.py @@ -50,6 +50,7 @@ def main(args): loss="categorical_crossentropy", metrics=["accuracy"], ) + # initialize_quantizer_weights(qmodel, qconfig) callback_tuples = [ (CaptureWeightCallback(qlayer), qconfig[layer.name]) diff --git a/src/stage/plot.py b/src/stage/plot.py index 1f5cc3c..c28e9e1 100644 --- a/src/stage/plot.py +++ b/src/stage/plot.py @@ -4,7 +4,7 @@ import pandas as pd # path = Path("checkpoints/lenet5_custom-fashion_mnist") -path = Path("checkpoints/flex_lenet5_custom-cifar10") +path = Path("checkpoints/lenet5_custom_v2-cifar10") experiment_paths = [ experiment_path From f6b921421f992f5674638fbb819435b491341af9 Mon Sep 17 00:00:00 2001 From: colorete87 Date: Tue, 15 Jul 2025 01:55:40 -0300 Subject: [PATCH 13/26] Early stopping added to in model train functions --- src/stage/functions.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/stage/functions.py b/src/stage/functions.py index 33918a3..cc5b8f1 100644 --- a/src/stage/functions.py +++ b/src/stage/functions.py @@ -4,6 +4,7 @@ import numpy as np import tensorflow as tf from tensorflow.keras import layers, models +from tensorflow.keras.callbacks import EarlyStopping from tensorflow.keras.datasets import mnist from tensorflow.keras.optimizers import Adam from tensorflow.keras.utils import to_categorical @@ -217,6 +218,16 @@ def model_train(model: tf.keras.Model, **params: dict) -> tf.keras.Model: metrics=["accuracy"], ) + callbacks = [] + if params.get("early_stopping", False): + callbacks.append( + EarlyStopping( + monitor=params.get("monitor", "val_loss"), + patience=params.get("patience", 3), + restore_best_weights=True, + ) + ) + if params.get("epochs", 0) > 0: model.fit( data["x_train"], @@ -225,6 +236,7 @@ def model_train(model: tf.keras.Model, **params: dict) -> tf.keras.Model: epochs=params["epochs"], validation_split=params["validation_split"], verbose=1, # Set to 1 to see progress + callbacks=callbacks if callbacks else None, ) return model From c2b5f52669f26ed84e6c58ba94b1eb50fe20bd44 Mon Sep 17 00:00:00 2001 From: colorete87 Date: Tue, 15 Jul 2025 01:58:34 -0300 Subject: [PATCH 14/26] Plot with different colors for each bitwidth --- src/stage/plotv2.py | 65 +++++++++++++++++++++++++++++---------------- 1 file changed, 42 insertions(+), 23 deletions(-) diff --git a/src/stage/plotv2.py b/src/stage/plotv2.py index 36e1364..66bcf05 100755 --- a/src/stage/plotv2.py +++ b/src/stage/plotv2.py @@ -3,6 +3,7 @@ import json from pathlib import Path +import matplotlib as mpl import matplotlib.pyplot as plt import pandas as pd @@ -64,43 +65,61 @@ def load_pipeline(pipeline_metadata_file, results_path, metadata_path): combined_df["stage"] == "initial_training" ]["complexity"].mean() combined_df = combined_df[combined_df["stage"] == "qat"] + # combined_df = combined_df[combined_df["stage"] == "activation_quantization"] combined_df.sort_values(by=["complexity"], inplace=True) all_accuracies = combined_df["accuracy"].tolist() all_complexities = combined_df["complexity"].tolist() # all_accuracies.append(original_accuracy) # all_complexities.append(original_complexity) + pd.set_option("display.width", 200) print( combined_df.sort_values(by=["accuracy", "complexity"], ascending=False) ) + print(combined_df.sort_values(by=["complexity"], ascending=False)) plt.figure() - combined_df.plot( - x="complexity", - y=["accuracy"], - kind="scatter", - title="Complexity vs Accuracy", - xlabel="Complexity (Kbits)", - ylabel="Accuracy", - zorder=3, - color="blue", - label="Quantized Model", - ) - # plt.scatter( - # original_complexity, - # original_accuracy, - # color="red", - # label="Original Model", + # combined_df.plot( + # x="complexity", + # y=["accuracy"], + # kind="scatter", + # title="Complexity vs Accuracy", + # xlabel="Complexity (Kbits)", + # ylabel="Accuracy", # zorder=3, + # color="blue", + # label="Quantized Model", # ) + plt.scatter( + original_complexity, + original_accuracy, + color="red", + label="Original Model", + zorder=3, + ) plt.axhline( original_accuracy, color="red", linestyle=":", alpha=0.3, zorder=1 ) - plt.plot( - all_complexities, - all_accuracies, - color="gray", - linestyle="--", - zorder=1, - ) + bits_values = combined_df["bits"].unique() + cmap = mpl.colormaps["tab10"] + for i, bits in enumerate(sorted(bits_values)): + subset = combined_df[combined_df["bits"] == bits].sort_values( + "complexity" + ) + plt.semilogx( + subset["complexity"], + subset["accuracy"], + label=f"{bits} bits", + color=cmap(i % 10), + zorder=3, + marker="o", + linestyle="--", + ) + # plt.semilogx( + # all_complexities, + # all_accuracies, + # color="gray", + # linestyle="--", + # zorder=1, + # ) plt.grid(which="both", linestyle="--", linewidth=0.5) plt.legend() plt.savefig("complexity_vs_quantized_flex.png") From c835971d83d6da6f4d178a3a519e50d96318dada Mon Sep 17 00:00:00 2001 From: colorete87 Date: Tue, 15 Jul 2025 02:01:09 -0300 Subject: [PATCH 15/26] image no longer tracking --- src/stage/model_accuracy_vs_size.png | Bin 350687 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 src/stage/model_accuracy_vs_size.png diff --git a/src/stage/model_accuracy_vs_size.png b/src/stage/model_accuracy_vs_size.png deleted file mode 100644 index 4439c292217f4dee599e3f62702e43792bf413dd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 350687 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

FJ3nUyi%5 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�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

M2I=a!%Xg3c^%n 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 AhyVZp From 345253b0677dc3a3825dbe80153bb114d7a51362 Mon Sep 17 00:00:00 2001 From: colorete87 Date: Tue, 15 Jul 2025 02:03:30 -0300 Subject: [PATCH 16/26] New stages with good results --- src/stage/flex_mainv3.py | 130 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 130 insertions(+) create mode 100755 src/stage/flex_mainv3.py diff --git a/src/stage/flex_mainv3.py b/src/stage/flex_mainv3.py new file mode 100755 index 0000000..20b53d7 --- /dev/null +++ b/src/stage/flex_mainv3.py @@ -0,0 +1,130 @@ +#!/usr/bin/env python3 + +from functions import model_create, model_quantize, model_train +from stagev2 import Pipeline, StageMetadata + +# --- Configuration for All 7 Pipeline Stages --- +# This list defines the blueprint for our pipeline. Each dictionary +# will be used to initialize a Stage object. + +stages_hyperparams = [ + # Stage 0: Model creation + { + "name": "model_creation", + "seed": 12345, + "function": model_create, + "parameters": { + "dataset": "cifar10", + "input_shape": [None, 32, 32, 3], + "categories": 10, + "model_name": "custom_cnn1_for_cifar10", + }, + }, + # Stage 1: Initial training + { + "name": "initial_training", + "seed": 12345, + "function": model_train, + "parameters": { + "dataset": "cifar10", + "input_shape": [None, 32, 32, 3], + "categories": 10, + "epochs": 20, + "batch_size": 128, + "learning_rate": 0.001, + "validation_split": 0.1, + }, + }, + # Stage 2: Model quantization + { + "name": "quantization", + "seed": 12345, + "function": model_quantize, + "parameters": { + "input_shape": [None, 32, 32, 3], + # 'kernel' is set to None because it will be dynamically + # updated inside the experimental loop below. + "kernel": None, + "bias": [ + {"type": "uniform", "bits": 8}, + {"type": "uniform", "bits": 8}, + {"type": "uniform", "bits": 8}, + {"type": "uniform", "bits": 8}, + ], + "activations": [ + {"type": "uniform", "bits": 16}, + {"type": "uniform", "bits": 16}, + {"type": "uniform", "bits": 16}, + {"type": None}, # "uniform", "bits": 16}, + ], + }, + }, + # Stage 5: Alpha initialization + # { + # "name": "alpha_initialization", + # "seed": 12345, + # "function": initialize_quantizer_weights, + # "parameters": { + # "dataset": "cifar10", + # "batch_size": 512, + # "input_shape": [None, 32, 32, 3], + # "categories": 10, + # "type": "alpha", + # }, + # }, + # Stage 6: QAT + { + "name": "qat", + "seed": 12345, + "function": model_train, + "parameters": { + "dataset": "cifar10", + "input_shape": [None, 32, 32, 3], + "categories": 10, + "epochs": 200, + "batch_size": 16, + "learning_rate": 0.001 / 100, + "validation_split": 0.2, + "early_stopping": True, + }, + }, +] + + +if __name__ == "__main__": + bits = [4, 6, 8] + n_levels = [2, 3, 4, 6, 8, 10, 16] + combinations = [ + (b, n) + for b in reversed(bits) + for n in reversed(n_levels) + if n <= 2**b + # (b, n) for b in bits for n in n_levels if n <= 2**b + ] + for bits, n_levels in combinations: + print( + f"\n{'='*20} STARTING EXPERIMENT: FLEX BITS = {bits}, N_LEVELS = {n_levels} {'='*20}\n" + ) + + # --- Configure the Experiment --- + # Dynamically set the 'kernel' quantization parameter for this specific run. + # kernel_config = [ + # {"type": "flexible", "bits": bits, "n_levels": n_levels} + # for _ in range(4) + # ] + kernel_config = [ + {"type": "flexible", "bits": 8, "n_levels": 16}, + {"type": "flexible", "bits": bits, "n_levels": n_levels}, + {"type": "flexible", "bits": bits, "n_levels": n_levels}, + {"type": "flexible", "bits": 8, "n_levels": 16}, + ] + stages_hyperparams[2]["parameters"]["kernel"] = kernel_config + stages_metadata = [ + StageMetadata.from_dict(stage_dict) + for stage_dict in stages_hyperparams + ] + pipeline = Pipeline( + name=f"experiment_flex_bits_{bits}_nlevels_{n_levels}", + stage_definitions=stages_metadata, + ) + pipeline.run() From 5c8d32a628aa0dc89dcb56627b91abe6f8636ef3 Mon Sep 17 00:00:00 2001 From: colorete87 Date: Tue, 15 Jul 2025 13:26:35 -0300 Subject: [PATCH 17/26] More runs for each experiment using different seeds --- src/stage/flex_mainv3.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/stage/flex_mainv3.py b/src/stage/flex_mainv3.py index 20b53d7..c8d67ca 100755 --- a/src/stage/flex_mainv3.py +++ b/src/stage/flex_mainv3.py @@ -92,20 +92,25 @@ if __name__ == "__main__": + seeds = [12345, 123456, 1234567, 12345678, 123456789] bits = [4, 6, 8] n_levels = [2, 3, 4, 6, 8, 10, 16] combinations = [ - (b, n) + (seed, b, n) + for seed in seeds for b in reversed(bits) for n in reversed(n_levels) - if n <= 2**b + if n < 2**b # (b, n) for b in bits for n in n_levels if n <= 2**b ] - for bits, n_levels in combinations: + for seed, bits, n_levels in combinations: print( - f"\n{'='*20} STARTING EXPERIMENT: FLEX BITS = {bits}, N_LEVELS = {n_levels} {'='*20}\n" + f"\n{'='*20} STARTING EXPERIMENT: SEED = {seed}, FLEX BITS = {bits}, N_LEVELS = {n_levels} {'='*20}\n" ) + for i in range(len(stages_hyperparams)): + stages_hyperparams[i]["seed"] = seed + # --- Configure the Experiment --- # Dynamically set the 'kernel' quantization parameter for this specific run. # kernel_config = [ From 5fb543fb9f6081325c92d4edf4b8019464f6136a Mon Sep 17 00:00:00 2001 From: colorete87 Date: Tue, 15 Jul 2025 13:36:57 -0300 Subject: [PATCH 18/26] Function to freeze model parameters added --- src/stage/functions.py | 51 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/src/stage/functions.py b/src/stage/functions.py index cc5b8f1..14265bc 100644 --- a/src/stage/functions.py +++ b/src/stage/functions.py @@ -1,6 +1,8 @@ # functions.py +import re + import numpy as np import tensorflow as tf from tensorflow.keras import layers, models @@ -615,6 +617,54 @@ def initialize_quantizer_weights(model, **params): return model +def model_freeze(model: tf.keras.Model, **params: dict) -> tf.keras.Model: + """Freeze subsets of weights in the model according to the four flags in + params, and skip any weights related to optimizer state.""" + print("Function: model_freeze called") + if model is None: + raise ValueError("model_freeze received an empty model.") + + # read the four flags (defaults to False) + freeze_conv_params = params.get("conv_parqameters", False) + freeze_conv_qparams = params.get("conv_qparqameters", False) + freeze_dense_params = params.get("dense_parqameters", False) + freeze_dense_qparams = params.get("dense_qparqameters", False) + + # regex to detect quantization variables + qparam_pattern = re.compile(r"(alpha|levels|thresholds)") + + for weight in model.weights: + name = weight.name + + # **new**: skip any optimizer-related variables entirely + if "optimizer" in name: + print(f" → skipping optimizer var: {name}") + continue + + is_qparam = bool(qparam_pattern.search(name)) + is_conv = "conv2d" in name + is_dense = "dense" in name + + # DEBUG: + # print(f"{name}: is_qparam={is_qparam}, is_conv={is_conv}, is_dense={is_dense}") + + # decide whether this weight belongs to a group the user asked to freeze + should_freeze = ( + (is_conv and not is_qparam and freeze_conv_params) + or (is_conv and is_qparam and freeze_conv_qparams) + or (is_dense and not is_qparam and freeze_dense_params) + or (is_dense and is_qparam and freeze_dense_qparams) + ) + + if should_freeze: + weight._trainable = False + print(f" → freezing: {name}") + else: + print(f" → not freezing: {name}") + + return model + + def model_evaluate(model, **params): """Evaluates the model on the test dataset.""" if model is None: @@ -633,4 +683,5 @@ def model_evaluate(model, **params): "model_transform_bnf": model_transform_bnf, # Assuming you will add this "model_quantize": model_quantize, "initialize_quantizer_weights": initialize_quantizer_weights, + "model_freeze": model_freeze, } From d1261558bd8b7427274666178b8783c5f6bd8067 Mon Sep 17 00:00:00 2001 From: colorete87 Date: Tue, 15 Jul 2025 17:03:27 -0300 Subject: [PATCH 19/26] new plot script that plots mean and se --- src/stage/plotv3.py | 346 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 346 insertions(+) create mode 100755 src/stage/plotv3.py diff --git a/src/stage/plotv3.py b/src/stage/plotv3.py new file mode 100755 index 0000000..8b06d5b --- /dev/null +++ b/src/stage/plotv3.py @@ -0,0 +1,346 @@ +#!/usr/bin/env python3 + +import fnmatch +import json +import re +from collections import defaultdict +from pathlib import Path + +import matplotlib as mpl +import matplotlib.pyplot as plt +import numpy as np +import pandas as pd + +pd.set_option("display.max_rows", None) +pd.set_option("display.max_columns", None) +pd.set_option("display.width", 220) + + +def load_pipeline(pipeline_metadata_file, results_path, metadata_path): + df = pd.DataFrame() + stages_results = [] + stages_names = [] + with open(pipeline_metadata_file, "r") as f: + pipeline_metadata = json.load(f) + for stage_hash in pipeline_metadata["history"]: + with open(results_path / f"{stage_hash}.json", "r") as stage_file: + stage_results = json.load(stage_file) + stages_results.append(stage_results) + with open( + metadata_path / f"{stage_hash}.json", "r" + ) as metadata_file: + stage_metadata = json.load(metadata_file) + stages_names.append(stage_metadata["name"]) + df = pd.DataFrame(stages_results) + df["stage"] = stages_names + return df + + +def load_file(hash_, results_path: Path, metadata_path: Path) -> dict: + """Lee los dos JSON correspondientes a `hash_` y devuelve un dict unificado + con todas las claves de ambos.""" + # Cargar resultados + with open(results_path / f"{hash_}.json", "r") as f_res: + res = json.load(f_res) + # Cargar metadata + with open(metadata_path / f"{hash_}.json", "r") as f_meta: + meta = json.load(f_meta) + # Combinar, dándole preferencia a `res` en caso de colisión de claves + combined = {**meta, **res} + # Añadimos el hash como columna + combined["hash"] = hash_ + return combined + + +def flatten_json(obj, parent_key: str = "", sep: str = "_"): + """Recursively flattens dicts and lists into a single dict mapping + flattened_key -> value. + + List items get their index injected into the key. + """ + items = {} + if isinstance(obj, dict): + for k, v in obj.items(): + new_key = f"{parent_key}{sep}{k}" if parent_key else k + items.update(flatten_json(v, new_key, sep=sep)) + elif isinstance(obj, list): + for i, v in enumerate(obj): + new_key = f"{parent_key}{sep}{i}" if parent_key else str(i) + items.update(flatten_json(v, new_key, sep=sep)) + else: + # reached a leaf + items[parent_key] = obj + return items + + +if __name__ == "__main__": + checkpoint_path = Path("checkpoints") + # pipeline_path = checkpoint_path / "pipelines" + metadata_path = checkpoint_path / "metadata" + results_path = checkpoint_path / "results" + + # Patrón: sólo caracteres hexadecimales en el nombre del fichero + hash_pattern = re.compile(r"^[0-9a-fA-F]+$") + + # Listado de hashes (sin la extensión .json) + hashes = [ + p.stem + for p in results_path.glob("*.json") + if hash_pattern.match(p.stem) + ] + flat_records = [] + for h in hashes: + with open(results_path / f"{h}.json", "r") as fres: + res = json.load(fres) + with open(metadata_path / f"{h}.json", "r") as fmeta: + meta = json.load(fmeta) + + merged = {**meta, **res, "hash": h} + flat = flatten_json(merged) + flat_records.append(flat) + combined_df = pd.DataFrame(flat_records) + + # 1) Build adjacency list: parent_hash → [child_hashes] + tree = defaultdict(list) + for _, row in combined_df.iterrows(): + h = row["hash"] + prev = row.get("previous_hash") + if pd.notna(prev): + tree[prev].append(h) + + # 2) Find root nodes: those with no valid previous_hash + all_hashes = set(combined_df["hash"]) + roots = [ + h + for _, row in combined_df.iterrows() + for h in [row["hash"]] + if pd.isna(row.get("previous_hash")) + or row["previous_hash"] not in all_hashes + ] + + # 3) DFS to collect every root→leaf path + experiments = [] + + def _collect_paths(node, path): + children = tree.get(node, []) + if not children: + experiments.append(path) + else: + for child in children: + _collect_paths(child, path + [child]) + + for root in roots: + _collect_paths(root, [root]) + + print("Found", len(experiments), "experiments:") + for exp in experiments: + print(" → ".join(exp)) + + # 1) build a lookup: hash → flat dict + rec_map = {rec["hash"]: rec for rec in flat_records} + + # 2) for each experiment, merge the stages side-by-side, prefixing with the stage name + experiments_data = [] + for exp in experiments: + combined = {} + for h in exp: + rec = rec_map[h] + stage = rec["name"] + # prefix every field (including hash, loss, accuracy, nested flattened keys…) + for col, val in rec.items(): + combined[f"{stage}_{col}"] = val + experiments_data.append(combined) + + # 3) make a DataFrame + experiments_df = pd.DataFrame(experiments_data) + + print(experiments_df.head()) + + to_drop = [ + "model_creation*", + "freeze*", + "*function", + "*activations_*", + "*bias*", + "*input_shape*", + "*_0_*", + "*_2_*", + "*_3_*", + "*_name", + "*_hash", + "model_creation_seed", + "quantization_seed", + "qat_seed", + "*dataset", + "*_categories", + "*_epochs", + "*_batch_size", + "*_learning_rate", + "*_validation_split", + "quantization_complexity", + "qat_parameters_early_stopping", + ] + # find all columns matching any pattern + cols_to_drop = [ + col + for col in experiments_df.columns + if any(fnmatch.fnmatch(col, pat) for pat in to_drop) + ] + # print(cols_to_drop) + experiments_df = experiments_df.drop(columns=cols_to_drop) + + rename_map = { + "name": "stage", + "quantization_parameters_kernel_1_type": "type", + "quantization_parameters_kernel_1_bits": "bits", + "quantization_parameters_kernel_1_n_levels": "n_levels", + "initial_training_seed": "seed", + } + experiments_df = experiments_df.rename(columns=rename_map) + print(experiments_df) + # for k in experiments_df.columns: + # print(k) + # print(experiments_df.head()) + experiments_df = experiments_df.dropna() + print(experiments_df) + + experiments_df["qat_complexity"] = ( + experiments_df["qat_complexity"] / 1024 + ) # Convert to Kbits + # print( + # experiments_df.sort_values(by=["qat_accuracy_mean", "qat_complexity_mean"], ascending=False) + # ) + # print(experiments_df.sort_values(by=["qat_complexity_mean"], ascending=False)) + + original_accuracy_mean = experiments_df["initial_training_accuracy"].mean() + original_complexity_mean = ( + experiments_df["initial_training_complexity"].mean() / 1024 + ) # in Kbits + original_accuracy_var = experiments_df["initial_training_accuracy"].var() + original_complexity_var = experiments_df[ + "initial_training_complexity" + ].var() + original_accuracy_sd = np.sqrt(original_accuracy_var) + original_complexity_var_kbits = original_complexity_var / (1024**2) + original_complexity_sd = np.sqrt(original_complexity_var_kbits) + n = experiments_df["initial_training_accuracy"].count() + original_accuracy_se = original_accuracy_sd / np.sqrt(n) + original_complexity_se = original_complexity_sd / np.sqrt(n) + + # 1) Identify the metrics and the hyperparam columns to group by + metrics = ["qat_loss", "qat_accuracy", "qat_complexity"] + hyperparam_cols = [ + col + for col in experiments_df.columns + if col in ("type", "bits", "n_levels") + ] + print("Hyperparameter columns:", hyperparam_cols) + print("All columns in df:", experiments_df.columns.tolist()) + + # 2) Group by those hyperparams, compute mean & var of the metrics + stats = ( + experiments_df.groupby(hyperparam_cols)[metrics] + .agg(["mean", "var"]) + .reset_index() + ) + + # 3) Flatten the resulting MultiIndex columns + stats.columns = [ + f"{lvl0}_{lvl1}" if lvl1 else lvl0 for lvl0, lvl1 in stats.columns + ] + counts = ( + experiments_df.groupby(hyperparam_cols)[metrics].count().reset_index() + ) + # rename columns back to match stats + counts.columns = hyperparam_cols + [f"{m}_count" for m in metrics] + + # 2) Merge counts into stats + stats = stats.merge(counts, on=hyperparam_cols) + + # 3) Compute standard deviations and errors + stats["se_accuracy"] = np.sqrt(stats["qat_accuracy_var"]) / np.sqrt( + stats["qat_accuracy_count"] + ) + stats["se_complexity"] = np.sqrt(stats["qat_complexity_var"]) / np.sqrt( + stats["qat_complexity_count"] + ) + stats["sd_accuracy"] = np.sqrt(stats["qat_accuracy_var"]) + stats["sd_complexity"] = np.sqrt(stats["qat_complexity_var"]) + + print( + stats.sort_values( + by=["qat_accuracy_mean", "qat_complexity_mean"], ascending=False + ) + ) + print(stats.sort_values(by=["qat_complexity_mean"], ascending=False)) + + cmap = mpl.colormaps["tab10"] + + plt.figure(figsize=(6, 4)) + plt.scatter( + original_complexity_mean, + original_accuracy_mean, + color="red", + label="Original Model", + zorder=3, + ) + plt.axhline( + original_accuracy_mean, color="red", linestyle=":", alpha=0.3, zorder=1 + ) + bits_values = experiments_df["bits"].unique() + for i, bits in enumerate(sorted(bits_values)): + subset = experiments_df[experiments_df["bits"] == bits].sort_values( + "qat_complexity" + ) + plt.semilogx( + subset["qat_complexity"], + subset["qat_accuracy"], + label=f"{bits} bits", + color=cmap(i % 10), + zorder=3, + marker=".", + linestyle="--", + ) + plt.xlabel("Quantized Complexity (Kbits)") + plt.ylabel("Quantized Accuracy") + plt.ylim([0.6, 0.75]) + plt.grid(which="both", linestyle="--", linewidth=0.5, alpha=0.6) + plt.legend() + plt.tight_layout() + plt.savefig("complexity_vs_quantized_flex.png", dpi=150) + + # 2) sort bits for consistent coloring + plt.figure(figsize=(6, 4)) + plt.scatter( + original_complexity_mean, + original_accuracy_mean, + color="red", + label="Original Model", + zorder=3, + ) + plt.axhline( + original_accuracy_mean, color="red", linestyle=":", alpha=0.3, zorder=1 + ) + bits_list = sorted(stats["bits"].unique()) + for i, bits in enumerate(bits_list): + grp = stats[stats["bits"] == bits].sort_values("qat_complexity_mean") + + plt.errorbar( + grp["qat_complexity_mean"], + grp["qat_accuracy_mean"], + xerr=grp["se_complexity"], + yerr=grp["se_accuracy"], + label=f"{bits} bits", + color=cmap(i % 10), + zorder=3, + marker=".", + linestyle="--", + ) + plt.xscale("log") + plt.xlabel("Quantized Complexity (Kbits)") + plt.ylabel("Quantized Accuracy") + plt.ylim([0.6, 0.75]) + plt.grid(which="both", linestyle="--", linewidth=0.5, alpha=0.6) + plt.legend() + plt.tight_layout() + plt.savefig("complexity_vs_quantized_flex_stats.png", dpi=150) From 3cb1262b54d50371056aa938d1d42a4ae02a020f Mon Sep 17 00:00:00 2001 From: colorete87 Date: Tue, 15 Jul 2025 17:05:28 -0300 Subject: [PATCH 20/26] Check uniqueness of names in stages --- src/stage/flex_mainv3.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/stage/flex_mainv3.py b/src/stage/flex_mainv3.py index c8d67ca..eeb20d0 100755 --- a/src/stage/flex_mainv3.py +++ b/src/stage/flex_mainv3.py @@ -92,6 +92,12 @@ if __name__ == "__main__": + # Check that there are no repeated names. + names = [stage["name"] for stage in stages_hyperparams] + cnt = Counter(names) + dups = [name for name, c in cnt.items() if c > 1] + assert not dups, f"Duplicate stage names detected: {dups}" + seeds = [12345, 123456, 1234567, 12345678, 123456789] bits = [4, 6, 8] n_levels = [2, 3, 4, 6, 8, 10, 16] From c5e47a57bbe4cd81e2aa19aff37f39fbd4fa077d Mon Sep 17 00:00:00 2001 From: colorete87 Date: Tue, 15 Jul 2025 17:36:09 -0300 Subject: [PATCH 21/26] Plot v3 improved --- src/stage/plotv3.py | 112 +++++++++++++++++++++++++++++++++++++++----- 1 file changed, 99 insertions(+), 13 deletions(-) diff --git a/src/stage/plotv3.py b/src/stage/plotv3.py index 8b06d5b..e965bc9 100755 --- a/src/stage/plotv3.py +++ b/src/stage/plotv3.py @@ -73,6 +73,60 @@ def flatten_json(obj, parent_key: str = "", sep: str = "_"): return items +def add_horizontal_se_band( + ax, + mean, + se, + *, + color="red", + label="Original Model", + alpha_line=0.8, + alpha_band=0.2, + z_mean=3, + z_line=2, + z_band=1, +): + """On ax, draw a dotted line at `mean`, dashed lines at ±se, and fill + between them.""" + # mean line + ax.axhline( + mean, + color=color, + linestyle=":", + linewidth=0.3, + alpha=alpha_line, + zorder=z_mean, + # label=f"{label}" + ) + # ±1 SE lines + ax.axhline( + mean + se, + color=color, + linestyle="-", + linewidth=0.3, + alpha=0.6, + zorder=z_line, + ) + ax.axhline( + mean - se, + color=color, + linestyle="-", + linewidth=0.3, + alpha=0.6, + zorder=z_line, + ) + # filled band + x0, x1 = ax.get_xlim() + ax.fill_between( + [x0, x1], + [mean - se, mean - se], + [mean + se, mean + se], + color=color, + alpha=alpha_band, + zorder=z_band, + ) + + if __name__ == "__main__": checkpoint_path = Path("checkpoints") # pipeline_path = checkpoint_path / "pipelines" @@ -275,6 +329,9 @@ def _collect_paths(node, path): print(stats.sort_values(by=["qat_complexity_mean"], ascending=False)) cmap = mpl.colormaps["tab10"] + xmin = stats["qat_complexity_mean"].min() * 0.9 + xmax = stats["qat_complexity_mean"].max() * 1.1 + xmax = original_complexity_mean * 1.1 plt.figure(figsize=(6, 4)) plt.scatter( @@ -284,26 +341,40 @@ def _collect_paths(node, path): label="Original Model", zorder=3, ) - plt.axhline( - original_accuracy_mean, color="red", linestyle=":", alpha=0.3, zorder=1 - ) bits_values = experiments_df["bits"].unique() for i, bits in enumerate(sorted(bits_values)): subset = experiments_df[experiments_df["bits"] == bits].sort_values( "qat_complexity" ) + # 1) dashed line only, semi-transparent plt.semilogx( subset["qat_complexity"], subset["qat_accuracy"], - label=f"{bits} bits", + linestyle="--", color=cmap(i % 10), - zorder=3, + alpha=0.3, + zorder=2, + label=None, # we’ll label in the marker call + ) + # 2) opaque markers on top, with label + plt.scatter( + subset["qat_complexity"], + subset["qat_accuracy"], marker=".", - linestyle="--", + color=cmap(i % 10), + zorder=3, + label=f"{bits} bits", ) + add_horizontal_se_band( + plt.gca(), + original_accuracy_mean, + original_accuracy_se, + color="red", + ) plt.xlabel("Quantized Complexity (Kbits)") plt.ylabel("Quantized Accuracy") plt.ylim([0.6, 0.75]) + plt.xlim([xmin, xmax]) plt.grid(which="both", linestyle="--", linewidth=0.5, alpha=0.6) plt.legend() plt.tight_layout() @@ -318,28 +389,43 @@ def _collect_paths(node, path): label="Original Model", zorder=3, ) - plt.axhline( - original_accuracy_mean, color="red", linestyle=":", alpha=0.3, zorder=1 - ) bits_list = sorted(stats["bits"].unique()) for i, bits in enumerate(bits_list): grp = stats[stats["bits"] == bits].sort_values("qat_complexity_mean") - + # 1) draw only the dashed line + errorbars (no markers) plt.errorbar( grp["qat_complexity_mean"], grp["qat_accuracy_mean"], xerr=grp["se_complexity"], yerr=grp["se_accuracy"], - label=f"{bits} bits", + fmt="--", # just the line color=cmap(i % 10), - zorder=3, + ecolor=cmap(i % 10), + alpha=0.3, + capsize=3, + zorder=2, + ) + # 2) draw the opaque markers on top + plt.scatter( + grp["qat_complexity_mean"], + grp["qat_accuracy_mean"], marker=".", - linestyle="--", + s=30, + color=cmap(i % 10), + label=f"{bits} bits", + zorder=3, ) + add_horizontal_se_band( + plt.gca(), + original_accuracy_mean, + original_accuracy_se, + color="red", + ) plt.xscale("log") plt.xlabel("Quantized Complexity (Kbits)") plt.ylabel("Quantized Accuracy") plt.ylim([0.6, 0.75]) + plt.xlim([xmin, xmax]) plt.grid(which="both", linestyle="--", linewidth=0.5, alpha=0.6) plt.legend() plt.tight_layout() From 44847502acda7b093962973ec19a1471f1a8e184 Mon Sep 17 00:00:00 2001 From: colorete87 Date: Tue, 15 Jul 2025 17:54:33 -0300 Subject: [PATCH 22/26] WIP: minor change --- src/stage/flex_mainv3.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/stage/flex_mainv3.py b/src/stage/flex_mainv3.py index eeb20d0..697ef82 100755 --- a/src/stage/flex_mainv3.py +++ b/src/stage/flex_mainv3.py @@ -1,5 +1,7 @@ #!/usr/bin/env python3 +from collections import Counter + from functions import model_create, model_quantize, model_train from stagev2 import Pipeline, StageMetadata From 7a880606244281d4316564bbde1e1226e18b96e6 Mon Sep 17 00:00:00 2001 From: colorete87 Date: Tue, 15 Jul 2025 17:55:43 -0300 Subject: [PATCH 23/26] WIP: early stopping patience increased --- src/stage/functions.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/stage/functions.py b/src/stage/functions.py index 14265bc..249cdf0 100644 --- a/src/stage/functions.py +++ b/src/stage/functions.py @@ -225,7 +225,7 @@ def model_train(model: tf.keras.Model, **params: dict) -> tf.keras.Model: callbacks.append( EarlyStopping( monitor=params.get("monitor", "val_loss"), - patience=params.get("patience", 3), + patience=params.get("patience", 8), restore_best_weights=True, ) ) From 97acac30a4494991c72066f724df66c8abb2eb6d Mon Sep 17 00:00:00 2001 From: colorete87 Date: Tue, 15 Jul 2025 20:03:42 -0300 Subject: [PATCH 24/26] WIP: plotv3 -> blacklist added --- src/stage/plotv3.py | 32 ++++++++++++++++++++------------ 1 file changed, 20 insertions(+), 12 deletions(-) diff --git a/src/stage/plotv3.py b/src/stage/plotv3.py index e965bc9..80f5d0d 100755 --- a/src/stage/plotv3.py +++ b/src/stage/plotv3.py @@ -13,7 +13,7 @@ pd.set_option("display.max_rows", None) pd.set_option("display.max_columns", None) -pd.set_option("display.width", 220) +pd.set_option("display.width", None) def load_pipeline(pipeline_metadata_file, results_path, metadata_path): @@ -186,7 +186,16 @@ def _collect_paths(node, path): for root in roots: _collect_paths(root, [root]) - print("Found", len(experiments), "experiments:") + blacklist = { + "fe398b8e7dfdc1cb8c71d2183a84de07", + "c8a4f191f560ea10931775d0a8320c08", + "04ccc689dc66e77aa8ecd339281c5ff0", + } + experiments = [ + exp for exp in experiments if not any(h in blacklist for h in exp) + ] + + print("After blacklisting, keeping", len(experiments), "experiments:") for exp in experiments: print(" → ".join(exp)) @@ -207,8 +216,15 @@ def _collect_paths(node, path): # 3) make a DataFrame experiments_df = pd.DataFrame(experiments_data) - - print(experiments_df.head()) + print( + experiments_df[ + [ + "qat_accuracy", + "qat_complexity", + "qat_hash", + ] + ].sort_values(by=["qat_accuracy"], ascending=False) + ) to_drop = [ "model_creation*", @@ -240,7 +256,6 @@ def _collect_paths(node, path): for col in experiments_df.columns if any(fnmatch.fnmatch(col, pat) for pat in to_drop) ] - # print(cols_to_drop) experiments_df = experiments_df.drop(columns=cols_to_drop) rename_map = { @@ -251,12 +266,7 @@ def _collect_paths(node, path): "initial_training_seed": "seed", } experiments_df = experiments_df.rename(columns=rename_map) - print(experiments_df) - # for k in experiments_df.columns: - # print(k) - # print(experiments_df.head()) experiments_df = experiments_df.dropna() - print(experiments_df) experiments_df["qat_complexity"] = ( experiments_df["qat_complexity"] / 1024 @@ -288,8 +298,6 @@ def _collect_paths(node, path): for col in experiments_df.columns if col in ("type", "bits", "n_levels") ] - print("Hyperparameter columns:", hyperparam_cols) - print("All columns in df:", experiments_df.columns.tolist()) # 2) Group by those hyperparams, compute mean & var of the metrics stats = ( From 269b1660ae80d05291a280e417f79c8b17b9e554 Mon Sep 17 00:00:00 2001 From: colorete87 Date: Tue, 15 Jul 2025 22:34:28 -0300 Subject: [PATCH 25/26] WIP: plotv3 -> count column improved --- src/stage/plotv3.py | 31 +++++++++++++++++++++---------- 1 file changed, 21 insertions(+), 10 deletions(-) diff --git a/src/stage/plotv3.py b/src/stage/plotv3.py index 80f5d0d..fecb65a 100755 --- a/src/stage/plotv3.py +++ b/src/stage/plotv3.py @@ -290,6 +290,14 @@ def _collect_paths(node, path): n = experiments_df["initial_training_accuracy"].count() original_accuracy_se = original_accuracy_sd / np.sqrt(n) original_complexity_se = original_complexity_sd / np.sqrt(n) + original_accuracy_min = experiments_df["initial_training_accuracy"].min() + original_complexity_min = experiments_df[ + "initial_training_complexity" + ].min() + original_accuracy_max = experiments_df["initial_training_accuracy"].max() + original_complexity_max = experiments_df[ + "initial_training_complexity" + ].max() # 1) Identify the metrics and the hyperparam columns to group by metrics = ["qat_loss", "qat_accuracy", "qat_complexity"] @@ -302,7 +310,7 @@ def _collect_paths(node, path): # 2) Group by those hyperparams, compute mean & var of the metrics stats = ( experiments_df.groupby(hyperparam_cols)[metrics] - .agg(["mean", "var"]) + .agg(["mean", "var", "max", "min"]) .reset_index() ) @@ -310,24 +318,27 @@ def _collect_paths(node, path): stats.columns = [ f"{lvl0}_{lvl1}" if lvl1 else lvl0 for lvl0, lvl1 in stats.columns ] + counts = ( experiments_df.groupby(hyperparam_cols)[metrics].count().reset_index() ) - # rename columns back to match stats - counts.columns = hyperparam_cols + [f"{m}_count" for m in metrics] - - # 2) Merge counts into stats - stats = stats.merge(counts, on=hyperparam_cols) + count_cols = [f"{m}_count" for m in metrics] + counts.columns = hyperparam_cols + count_cols + row_uniques = counts[count_cols].nunique(axis=1) + assert ( + row_uniques == 1 + ).all(), "❌ Not all metric‐counts agree per group!" + counts["count"] = counts[count_cols[0]] + counts = counts[hyperparam_cols + ["count"]] + stats = stats.merge(counts, on=hyperparam_cols, how="left") # 3) Compute standard deviations and errors stats["se_accuracy"] = np.sqrt(stats["qat_accuracy_var"]) / np.sqrt( - stats["qat_accuracy_count"] + stats["count"] ) stats["se_complexity"] = np.sqrt(stats["qat_complexity_var"]) / np.sqrt( - stats["qat_complexity_count"] + stats["count"] ) - stats["sd_accuracy"] = np.sqrt(stats["qat_accuracy_var"]) - stats["sd_complexity"] = np.sqrt(stats["qat_complexity_var"]) print( stats.sort_values( From 283d06ee4d97959a9eb5ddae90b53f5c41d27a7b Mon Sep 17 00:00:00 2001 From: colorete87 Date: Thu, 2 Oct 2025 08:00:39 -0300 Subject: [PATCH 26/26] WIP --- src/stage/flex_mainv3.py | 22 +- src/stage/plotv3-es.py | 766 +++++++++++++++++++++++++++++++++++++++ src/stage/plotv3.py | 327 ++++++++++++++++- 3 files changed, 1107 insertions(+), 8 deletions(-) create mode 100755 src/stage/plotv3-es.py diff --git a/src/stage/flex_mainv3.py b/src/stage/flex_mainv3.py index 697ef82..8d69649 100755 --- a/src/stage/flex_mainv3.py +++ b/src/stage/flex_mainv3.py @@ -100,9 +100,23 @@ dups = [name for name, c in cnt.items() if c > 1] assert not dups, f"Duplicate stage names detected: {dups}" - seeds = [12345, 123456, 1234567, 12345678, 123456789] + seeds = [ + # 12345, 123456, + # 1234567, 12345678, + # 123456789, 12346, + # 12347, 12348, + # 12349, 12350, + # 12351, 12352, + # 12353, 12354, + # 12355, + # 12356, 12357, 12358, + # 12359, + 12360, + 12361, + 12362, + ] bits = [4, 6, 8] - n_levels = [2, 3, 4, 6, 8, 10, 16] + n_levels = [2, 3, 4, 6, 8, 10, 16, 5, 7, 20, 25, 30] combinations = [ (seed, b, n) for seed in seeds @@ -141,3 +155,7 @@ stage_definitions=stages_metadata, ) pipeline.run() + + print( + f"\n{'='*20} END OF EXPERIMENT: SEED = {seed}, FLEX BITS = {bits}, N_LEVELS = {n_levels} {'='*20}\n" + ) diff --git a/src/stage/plotv3-es.py b/src/stage/plotv3-es.py new file mode 100755 index 0000000..a72399c --- /dev/null +++ b/src/stage/plotv3-es.py @@ -0,0 +1,766 @@ +#!/usr/bin/env python3 + +import fnmatch +import json +import re +from collections import defaultdict +from pathlib import Path + +import matplotlib as mpl +import matplotlib.pyplot as plt +import numpy as np +import pandas as pd + +pd.set_option("display.max_rows", None) +pd.set_option("display.max_columns", None) +pd.set_option("display.width", None) + + +def load_pipeline(pipeline_metadata_file, results_path, metadata_path): + df = pd.DataFrame() + stages_results = [] + stages_names = [] + with open(pipeline_metadata_file, "r") as f: + pipeline_metadata = json.load(f) + for stage_hash in pipeline_metadata["history"]: + with open(results_path / f"{stage_hash}.json", "r") as stage_file: + stage_results = json.load(stage_file) + stages_results.append(stage_results) + with open( + metadata_path / f"{stage_hash}.json", "r" + ) as metadata_file: + stage_metadata = json.load(metadata_file) + stages_names.append(stage_metadata["name"]) + df = pd.DataFrame(stages_results) + df["stage"] = stages_names + return df + + +def load_file(hash_, results_path: Path, metadata_path: Path) -> dict: + """Lee los dos JSON correspondientes a `hash_` y devuelve un dict unificado + con todas las claves de ambos.""" + # Cargar resultados + with open(results_path / f"{hash_}.json", "r") as f_res: + res = json.load(f_res) + # Cargar metadata + with open(metadata_path / f"{hash_}.json", "r") as f_meta: + meta = json.load(f_meta) + # Combinar, dándole preferencia a `res` en caso de colisión de claves + combined = {**meta, **res} + # Añadimos el hash como columna + combined["hash"] = hash_ + return combined + + +def flatten_json(obj, parent_key: str = "", sep: str = "_"): + """Recursively flattens dicts and lists into a single dict mapping + flattened_key -> value. + + List items get their index injected into the key. + """ + items = {} + if isinstance(obj, dict): + for k, v in obj.items(): + new_key = f"{parent_key}{sep}{k}" if parent_key else k + items.update(flatten_json(v, new_key, sep=sep)) + elif isinstance(obj, list): + for i, v in enumerate(obj): + new_key = f"{parent_key}{sep}{i}" if parent_key else str(i) + items.update(flatten_json(v, new_key, sep=sep)) + else: + # reached a leaf + items[parent_key] = obj + return items + + +def add_horizontal_se_band( + ax, + mean, + se, + *, + color="red", + label="Original Model", + alpha_line=0.8, + alpha_band=0.2, + z_mean=3, + z_line=2, + z_band=1, +): + """On ax, draw a dotted line at `mean`, dashed lines at ±se, and fill + between them.""" + # mean line + ax.axhline( + mean, + color=color, + linestyle=":", + linewidth=0.3, + alpha=alpha_line, + zorder=z_mean, + # label=f"{label}" + ) + # ±1 SE lines + ax.axhline( + mean + se, + color=color, + linestyle="-", + linewidth=0.3, + alpha=0.6, + zorder=z_line, + ) + ax.axhline( + mean - se, + color=color, + linestyle="-", + linewidth=0.3, + alpha=0.6, + zorder=z_line, + ) + # filled band + x0, x1 = ax.get_xlim() + ax.fill_between( + [x0, x1], + [mean - se, mean - se], + [mean + se, mean + se], + color=color, + alpha=alpha_band, + zorder=z_band, + ) + + +if __name__ == "__main__": + checkpoint_path = Path("checkpoints") + # pipeline_path = checkpoint_path / "pipelines" + metadata_path = checkpoint_path / "metadata" + results_path = checkpoint_path / "results" + + # Patrón: sólo caracteres hexadecimales en el nombre del fichero + hash_pattern = re.compile(r"^[0-9a-fA-F]+$") + + # Listado de hashes (sin la extensión .json) + hashes = [ + p.stem + for p in results_path.glob("*.json") + if hash_pattern.match(p.stem) + ] + flat_records = [] + for h in hashes: + with open(results_path / f"{h}.json", "r") as fres: + res = json.load(fres) + with open(metadata_path / f"{h}.json", "r") as fmeta: + meta = json.load(fmeta) + + merged = {**meta, **res, "hash": h} + flat = flatten_json(merged) + flat_records.append(flat) + combined_df = pd.DataFrame(flat_records) + + # 1) Build adjacency list: parent_hash → [child_hashes] + tree = defaultdict(list) + for _, row in combined_df.iterrows(): + h = row["hash"] + prev = row.get("previous_hash") + if pd.notna(prev): + tree[prev].append(h) + + # 2) Find root nodes: those with no valid previous_hash + all_hashes = set(combined_df["hash"]) + roots = [ + h + for _, row in combined_df.iterrows() + for h in [row["hash"]] + if pd.isna(row.get("previous_hash")) + or row["previous_hash"] not in all_hashes + ] + + # 3) DFS to collect every root→leaf path + experiments = [] + + def _collect_paths(node, path): + children = tree.get(node, []) + if not children: + experiments.append(path) + else: + for child in children: + _collect_paths(child, path + [child]) + + for root in roots: + _collect_paths(root, [root]) + + blacklist = { + # ) hash # -> acc, complexity, type, bits, n_levels + "82bcde2ecc786b41e6d2b33425c5295a", # -> 0.6825, 2.522522e+06, flex, 8, 2 + "2d1d7bb39ddb4bce584d824a41b8aaa2", # -> 0.6820, 2.346810e+06, flex, 8, 2 + "deb62ff4fda51063fb9094744ffc0051", # -> 0.6803, 2.562207e+06, flex, 8, 2 + "8920925440a17cd21177b04319f4dde7", # -> 0.6762, 2.629205e+06, flex, 8, 2 + "9eefaec10856b78c5b1b04cbbb2138ce", # -> 0.6834, 5.739940e+06, flex, 4, 10 + "c6d6425d11b008bea5ae624601cf69f9", # -> 0.6869, 8.300487e+06, flex, 6, 25 + "c24d8367f7eea4fe40c6b11d37a2ef64", # -> 0.6829, 7.521903e+06, flex, 6, 30 + "f1a01952db947ca2a5dcf6932bc4dd9d", # -> 0.6870, 7.761222e+06, flex, 6, 20 + "f76e8a717ae8f27c07edabd45a697813", # -> 0.6803, 2.657772e+06, flex, 6, 2 + "318464ddf0bb2feb2249b20e4b2b0c35", # -> 0.6802, 2.654884e+06, flex, 6, 3 + "a14dc019e8c2e2b8e4929ad2edae4d80", # -> 0.6739, 2.905927e+06, flex, 6, 3 + "fe88a2a970c6d4fe95e1c5efb867de67", # -> 0.6719, 4.990952e+06, flex, 6, 6 + "2d48e19bced1b6e3b15eab632a40cf44", # -> 0.6682 2.476079e+06, flex, 4, 2 + "4965cf50af85c54e65044dc0b5717bcf", # -> 0.6647 4.679128e+06, flex, 8, 5 + "cf82eb531d5c718017874750453af75e", # -> 0.6622 5.459853e+06, flex, 4, 10 + "df2c27c6c58a72ce19f2bec69ba6fa22", # -> 0.6602 4.127570e+06, flex, 4, 4 + "081eea60c304ff553e0ec04fcbfe17f8", # -> 0.6566 8.184740e+06, flex, 6, 25 + "f8138453a8c78c1598af911967b22ef7", # -> 0.6399 4.328394e+06, flex, 6, 5 + "0942ca5ce86afde3e272b8d3bb1c79cf", # -> 0.6365 5.416113e+06, flex, 6, 7 + "57a410c7713212ae7e7874174a00ec28", # -> 0.6358 5.352943e+06, flex, 4, 8 + "1ef38adee955e86d29015639c772708c", # -> 0.6351 8.514102e+06, flex, 6, 30 + "ca9710fb7d998d349dc0fabffe3e7487", # -> 0.6336 4.092541e+06, flex, 4, 5 + "f361e46f3f1a62d15f6ffe924f341e4b", # -> 0.6294 5.502136e+06, flex, 6, 7 + "dcdc5e38399aa6b1f4aec6dd0f4a0011", # -> 0.6228 5.499287e+06, flex, 6, 7 + "62293d44559425797da8b3cf5c03949d", # -> 0.6226 5.282950e+06, flex, 8, 7 + "d3e21e49f4a6737a99c64ae7bd962ed9", # -> 0.6173 8.716123e+06, flex, 6, 30 + "4b847613419cf65b6933ac7df186b5e1", # -> 0.6172 4.120780e+06, flex, 6, 4 + "40c151e376a2a746a618bdea64acb645", # -> 0.6118 8.659160e+06, flex, 8, 25 + "a1d029ad31e8d0e78a2727cb817238cd", # -> 0.6100 9.312237e+06, flex, 8, 30 + "257185fcc8615ad18afa388080e0b42a", # -> 0.6096 9.424802e+06, flex, 8, 30 + "cc7ee437a88cd218050280f5e1687d7b", # -> 0.6091 4.411632e+06, flex, 4, 5 + "1c2b3e12e0e008acc93ad000dc46860c", # -> 0.6085 8.087628e+06, flex, 8, 20 + "ad7f438d121a818e11559c02cf40e875", # -> 0.6078 8.815668e+06, flex, 8, 25 + "bf3715b86ac5cece775d945518828380", # -> 0.6075 8.649432e+06, flex, 6, 30 + "c671e4816625f3fcef3ae19735e588cb", # -> 0.6065 8.057870e+06, flex, 6, 20 + "f77e1ff54c1e8548b16d78166e583a20", # -> 0.6061 4.340742e+06, flex, 6, 5 + "f88ec612d8ea1bdcc25d3dc257d9078b", # -> 0.6045 6.116025e+06, flex, 4, 10 + "cacd708264fa9f8700b9f4fb32b87494", # -> 0.6013 5.497829e+06, flex, 4, 8 + "740a1562cfbc1d391c4f3a1cdbddd879", # -> 0.5990 9.368490e+06, flex, 8, 30 + "18c96f0fc4d4aad8cef826c6cc048846", # -> 0.5981 2.913844e+06, flex, 8, 3 + "6767ffdfcd17bf848370ba70b057aad9", # -> 0.5969 8.600187e+06, flex, 6, 30 + "d8e9e5b7f38c90b8e4aa509d9b5ced31", # -> 0.5961 5.227277e+06, flex, 4, 6 + "419c90ed7c09a63c3fc90a54661617b3", # -> 0.5936 3.709586e+06, flex, 4, 5 + "5a9b0e4a09037ec75430ad220ccdde6d", # -> 0.5930 8.775996e+06, flex, 8, 25 + "5d070cbf206198f489173a5f1ec74f91", # -> 0.5927 4.441964e+06, flex, 8, 5 + "d36592e5b6e1894fba94f2264136580b", # -> 0.5906 4.023145e+06, flex, 6, 4 + "6d9130bcab5126da553138f680ad5343", # -> 0.5901 5.501902e+06, flex, 6, 7 + "228c22a86a8e5db74626432a4fa7ebf0", # -> 0.5899 8.682319e+06, flex, 8, 25 + "ce99dd6e073611df6d56d0b035f2c380", # -> 0.5894 5.523196e+06, flex, 8, 7 + "e4f9b423a715a006966cafd108626582", # -> 0.5894 8.710177e+06, flex, 8, 25 + "dd44e1d79606bbf821f776b550fd5708", # -> 0.5850 8.223336e+06, flex, 6, 20 + "553230a79d1600e5e96e4e55bced5562", # -> 0.5847 4.876093e+06, flex, 4, 7 + "5b6c1d077fff399487198d0934d2f801", # -> 0.5833 6.564747e+06, flex, 8, 10 + "a79306498306fd871b72f91886050764", # -> 0.5833 4.978046e+06, flex, 4, 7 + "116279bfe5331dce42f5214acff1b8b8", # -> 0.5827 4.314205e+06, flex, 6, 5 + "2eb0a2ba00ac93326abf3351bd1d9883", # -> 0.5826 5.430122e+06, flex, 8, 7 + "f48060242ed1e5845835ec38f86f90e4", # -> 0.5826 7.373076e+06, flex, 8, 16 + "a2a0c3db77ffc9e87502fce7370eb6a0", # -> 0.5823 8.731863e+06, flex, 6, 25 + "ddc474f0d54a8cc5731b000baf77756d", # -> 0.5809 9.161021e+06, flex, 8, 30 + "4126ec5dbf996778dcb49af8c4563a0e", # -> 0.5790 4.420320e+06, flex, 8, 5 + "1dc469302d509868b5807c2c582781da", # -> 0.5787 6.152794e+06, flex, 6, 10 + "a914f36d1b76973a6f5213a6cdb90e76", # -> 0.5776 2.440996e+06, flex, 8, 3 + "07c097bac4abda58859eb5055fbb3443", # -> 0.5759 5.499702e+06, flex, 4, 8 + "6351c9acd3391e61432ecfa4060a092a", # -> 0.5756 4.607602e+06, flex, 8, 5 + "0828459655a6999d7d9af066c8632f60", # -> 0.5751 5.512189e+06, flex, 8, 7 + "cfa18e91c2f434e01e9fa4d928bab7e4", # -> 0.5749 2.745346e+06, flex, 6, 3 + "741cecf1ee1bbce01c1a2d3f5521c491", # -> 0.5741 9.617448e+06, flex, 8, 30 + "81038213fd8189ba707569fb2b4da11c", # -> 0.5734 5.008818e+06, flex, 8, 6 + "e913f582950807f522d9c802b6ef3f3e", # -> 0.5719 4.106683e+06, flex, 8, 4 + "a47756b976c51cc11b50e1d8238c5200", # -> 0.5716 4.141123e+06, flex, 6, 5 + "ed3fbf80c1e7546321a2dbd6ada1354d", # -> 0.5715 7.853356e+06, flex, 8, 16 + "49befbd5aea7ec47387bd96665c38982", # -> 0.5702 8.188566e+06, flex, 8, 20 + "253e6448f7f43101cbf863974d331d0a", # -> 0.5685 8.324831e+06, flex, 8, 20 + "324fe5d7f47770902d73752a8e01d62d", # -> 0.5663 4.599661e+06, flex, 4, 5 + "387929c287656e1418ecaca896f443ad", # -> 0.5658 5.366461e+06, flex, 6, 7 + "724f9a6abede93b72c8fc7df30b8d9db", # -> 0.5644 4.705492e+06, flex, 6, 6 + "446a454fc94b2789cd943578ed0bc074", # -> 0.5640 4.995121e+06, flex, 4, 5 + "a7f630a537c947ccaf46387051efeef7", # -> 0.5603 8.207445e+06, flex, 6, 20 + "2f23ee58330ffbafc3acb0b87a0699a4", # -> 0.5593 9.103208e+06, flex, 8, 25 + "dbdc28ebce1b0a85029fce6714e49c9f", # -> 0.5587 4.413465e+06, flex, 8, 5 + "b5358693b4337fc31be52a52df800328", # -> 0.5583 5.549624e+06, flex, 6, 8 + "3feade8d67883ae66e406c0f6ac4cd57", # -> 0.5579 4.478236e+06, flex, 4, 5 + "08b23ddf3b656f041d36152a88fba87e", # -> 0.5574 5.441997e+06, flex, 6, 7 + "1b8cc4ea0c23fb930d198c9bace1c01f", # -> 0.5565 4.984122e+06, flex, 4, 5 + "6982f70c319ed9df4e958de3b91baf23", # -> 0.5564 2.965374e+06, flex, 6, 3 + "04ab8c630f0ac8a0935ccaa7297a19dd", # -> 0.5536 8.794149e+06, flex, 6, 30 + "8412d76b73a091f1f075e3768f8c4485", # -> 0.5526 8.143381e+06, flex, 8, 20 + "806a48aa4aead784c9dc93e64c4d694a", # -> 0.5508 9.106848e+06, flex, 8, 25 + "f56b97ee2b9eb3673dde75b73acefa24", # -> 0.5496 8.110230e+06, flex, 6, 20 + "f1a3c121b4c6331eee397599a8d98475", # -> 0.5491 8.585863e+06, flex, 6, 25 + "53317e1a72893a4e61c5f07e1611a087", # -> 0.5479 4.988744e+06, flex, 6, 6 + "18b39edfb145e5db5ce268793593fa55", # -> 0.5478 8.271977e+06, flex, 8, 20 + "5dc8eb9e93379b1108d847486faec2b7", # -> 0.5478 8.807598e+06, flex, 8, 30 + "30fc1daf89f19e980b5e1c69ea3eeddb", # -> 0.5475 8.494731e+06, flex, 8, 20 + "efa5082ce34a54c5450944408dda3341", # -> 0.5469 4.049373e+06, flex, 6, 5 + "2a57ca0c402c493d39a4fda0f722ef5f", # -> 0.5464 3.183237e+06, flex, 4, 3 + "d878cba4575aa5c22fcd40084d9a3384", # -> 0.5424 8.451002e+06, flex, 6, 25 + "30e350f38eebb57f58f88b01eb427b36", # -> 0.5404 8.581810e+06, flex, 6, 25 + "12b856434f33147f95343017850b88f6", # -> 0.5400 9.347335e+06, flex, 8, 30 + "91a5c093e1213c00cbf92e423795c04c", # -> 0.5369 4.752921e+06, flex, 8, 6 + "a0ebf35a5577ba037ad4436360a8d631", # -> 0.5336 8.461936e+06, flex, 6, 25 + "ed4e4713c7bcde4911563de5e51a6b1c", # -> 0.5317 5.609182e+06, flex, 6, 7 + "d64d58115a0c16a93b46a26541ea940c", # -> 0.5237 4.856726e+06, flex, 6, 6 + "33cc5a71d1e46710e53d58ae9e3fa7ec", # -> 0.5228 8.773018e+06, flex, 8, 25 + "4751c5518326351fc7d5a2d1e20ae00b", # -> 0.5224 9.387617e+06, flex, 8, 30 + "335513c169a9f64243badde924a39a8b", # -> 0.5224 2.997398e+06, flex, 4, 3 + "2d07af1c3560853dfc51e2e95e76b42f", # -> 0.5171 5.592623e+06, flex, 8, 8 + "37311b19ce9060557ab3c6fe57d2cb43", # -> 0.5166 2.736840e+06, flex, 6, 2 + "f13028523f1d5bd0c69d624f1ee6c85d", # -> 0.5116 3.993213e+06, flex, 6, 4 + "da98bfc8ea3478bb291828a5764d160c", # -> 0.5106 4.432343e+06, flex, 8, 5 + "473516dffe62ea86713392c3cbc2fab9", # -> 0.5092 5.323287e+06, flex, 8, 7 + "d5b85c422d79220101ba5f432ae51875", # -> 0.5078 5.704372e+06, flex, 6, 8 + "b24210b8f23f81d5041f2ec4bf47741c", # -> 0.5071 5.473601e+06, flex, 8, 7 + "1e1cc4492f0d9c28ba25c858687b311d", # -> 0.5062 8.548573e+06, flex, 6, 25 + "a18788d22bdc7da6982159ae318ea1f9", # -> 0.5056 2.637835e+06, flex, 4, 2 + "540fb846638db408db0a586efceec840", # -> 0.5044 2.465916e+06, flex, 4, 2 + "1b8efa9a01c3246c1e4642e8aa65da03", # -> 0.5031 6.534875e+06, flex, 6, 10 + "52fe89bc1409acc79ad0172460f6c46a", # -> 0.5011 8.336156e+06, flex, 6, 25 + "c27ebd89aa6f73f30849fa1c190e6458", # -> 0.5011 4.334441e+06, flex, 6, 5 + "adc2f6d7005c50c6237dc93869905211", # -> 0.4982 8.812724e+06, flex, 6, 25 + "8ff65102493822dc4fd81ab19d25e033", # -> 0.4962 6.517767e+06, flex, 8, 10 + "a45928491146a61ad7392180d03abf55", # -> 0.4955 8.809505e+06, flex, 6, 30 + "e54464fe08d22fd6bc218ad716299cd0", # -> 0.4940 8.181487e+06, flex, 6, 20 + "3ceb795754e7335c2a1f7a7d44eadd35", # -> 0.4912 6.295182e+06, flex, 8, 10 + "6c2880840091d1caac5cd166141f2327", # -> 0.4875 5.364793e+06, flex, 6, 7 + "98022e1420cb937e351850b1f56e96e6", # -> 0.4868 4.514491e+06, flex, 8, 5 + "2cce305ea6540c328c79447cb79a39bd", # -> 0.4805 2.725834e+06, flex, 8, 2 + "73cbba672e49d36f96fe434c00f5f3ab", # -> 0.4789 5.761759e+06, flex, 8, 8 + "c2fe04aec32d0290c6c2a3b0bc7f1bbb", # -> 0.4750 5.853028e+06, flex, 6, 8 + "3a1d5257cd243e9a896cfa0858b60450", # -> 0.4721 4.908726e+06, flex, 8, 6 + "c3e8bd05639786207a3e49041c5dd5a1", # -> 0.4717 5.403705e+06, flex, 6, 7 + "042c9b6b898e732c2531f960df4cc6b7", # -> 0.4584 8.971624e+06, flex, 8, 25 + "d40576261b8f2060ad2f904f8380e4ed", # -> 0.4571 8.335715e+06, flex, 8, 20 + "a498850d6b8debfcf5ae51d7d92aa488", # -> 0.4567 5.613264e+06, flex, 4, 7 + "fe356e97e433dfa1a4a6daa0cb533d34", # -> 0.4556 9.482259e+06, flex, 8, 30 + "09c8dd4e7f9645630608d2b335f4fd42", # -> 0.4534 4.556333e+06, flex, 8, 5 + "4faa5b579f938a5a9a9ef2c287f54434", # -> 0.4522 4.559044e+06, flex, 8, 5 + "00ae517067cbcd92ebfc024d843e480b", # -> 0.4504 7.803484e+06, flex, 8, 16 + "96214e322683ecb99c0033cac1a86ed2", # -> 0.4491 5.825073e+06, flex, 8, 8 + "7169526b3557e7f4567445ea2e1947a3", # -> 0.4452 6.415053e+06, flex, 8, 10 + "47c7e524532935287485da7a54b9bbd0", # -> 0.4451 8.338298e+06, flex, 6, 20 + "19bf11089cd1b489ad86b75937df27ec", # -> 0.4447 7.706494e+06, flex, 8, 16 + "1f9c17051e51383b24ecb81a4bef1329", # -> 0.4441 9.278590e+06, flex, 6, 30 + "e8ff6a262d0e6730fd6f55b141d9cfe4", # -> 0.4364 5.390991e+06, flex, 8, 7 + "b7a9ae280c031ad7088b16bf178d809c", # -> 0.4351 4.098193e+06, flex, 8, 4 + "fe0fd30a17fd52dba450c853536f5b27", # -> 0.4318 2.739286e+06, flex, 6, 2 + "130b771d9ee96b22a28f67bd3f6651fe", # -> 0.4305 5.336351e+06, flex, 8, 7 + "f2e3e46d510051393098cf95cd716f88", # -> 0.4247 5.679510e+06, flex, 4, 7 + "41f7646a8bb31efbb89764cdadca2eb2", # -> 0.4237 2.265290e+06, flex, 6, 3 + "cafe07776a80e8c84d020f0de156a195", # -> 0.4188 5.431191e+06, flex, 8, 7 + "6784e09e4909dff9b28d740415f1ec50", # -> 0.4179 4.478756e+06, flex, 8, 5 + "169a426b053dc7b9ece944dd1d83b578", # -> 0.4148 9.194707e+06, flex, 6, 30 + "0abf9d5e11b9f3898898bae71bcf6e57", # -> 0.4094 7.744605e+06, flex, 6, 16 + "e2498db25591d5e52723470a0953a725", # -> 0.3957 9.452671e+06, flex, 8, 30 + "d92c79c0a81190c5cc6cfc4791cf70b0", # -> 0.3940 5.638742e+06, flex, 4, 7 + "815f8290d3818251e4bd5a5bcb8acbd6", # -> 0.3918 2.825758e+06, flex, 8, 3 + "416b6139ca6b68d874851170c7e349ac", # -> 0.3868 4.204707e+06, flex, 4, 4 + "c9dc0f5cbde20b03fefe4aec336b2aa2", # -> 0.3783 8.269713e+06, flex, 8, 20 + "0401977b495423cf305d2aa624340d36", # -> 0.3770 6.460710e+06, flex, 6, 10 + "5c2ee969c48668d31e31d11cc78a491e", # -> 0.3744 2.824383e+06, flex, 8, 2 + "f98adfa7a6daf49060b19966c4600e71", # -> 0.3645 4.571965e+06, flex, 6, 5 + "3d96cfd6bb9ddb14f72a763a86ab8ca8", # -> 0.3631 8.342203e+06, flex, 6, 20 + "54a35622869c5c9990669c443c529344", # -> 0.3543 4.503398e+06, flex, 6, 5 + "77f800cbafb0f25cda2a0355d419b6d0", # -> 0.3541 4.583585e+06, flex, 6, 5 + "176307c4bddce3f26248e089354bba0d", # -> 0.3512 5.600199e+06, flex, 4, 7 + "37575e50ef4c718b4c7baab7a41f4735", # -> 0.3509 4.371062e+06, flex, 8, 5 + "7889fe17fa9e15fbe7c872dc30c80d81", # -> 0.3495 8.984966e+06, flex, 8, 25 + "1c0972c2b3b622621ff7ae3b223ee164", # -> 0.3464 8.355320e+06, flex, 8, 20 + "25cce8bbc45c7f187800a9ce1220ed3a", # -> 0.3413 5.552800e+06, flex, 8, 7 + "6a45374e3aeb7df392fd36e22cee190a", # -> 0.3377 2.857394e+06, flex, 8, 2 + "217c00c772cb2980409890dede2b9a41", # -> 0.3345 5.447785e+06, flex, 4, 7 + "42d8a1cc1266731836e3b2742469d8d8", # -> 0.3250 7.750992e+06, flex, 6, 16 + "c7eb6de3357c58485a4111f365becb22", # -> 0.3134 6.044683e+06, flex, 4, 10 + "71aa4790a9cdc70c8d86c511fe730540", # -> 0.3071 8.114960e+06, flex, 8, 20 + "3bccd919a7bd3faeecb8f6165f0cb554", # -> 0.3049 2.827845e+06, flex, 6, 2 + "00ad8a02b539bbcb40b4f9556d385d21", # -> 0.2639 9.342941e+06, flex, 6, 30 + "48f8c6c676af256d5ac71f5124956b4a", # -> 0.2589 5.430239e+06, flex, 8, 7 + "1e0e97bf6f7283f8822111174bf44875", # -> 0.2543 4.367211e+06, flex, 6, 5 + "13b4e28a3c2adb02ebd26c6553322b77", # -> 0.2511 4.777519e+06, flex, 4, 5 + "1dfb5b20677ca85df1e6e0029ed5ead3", # -> 0.2366 8.310871e+06, flex, 6, 20 + "665f50e233c5e1ebfb99483684ee38b7", # -> 0.2264 5.563939e+06, flex, 6, 7 + "cb80d372e2df52f2541a75f3e3ab6fa3", # -> 0.1000 4.206023e+06, flex, 4, 6 + "4a38650f02cc8de4cbd89d3e3e811ff1", # -> 0.1000 4.080933e+06, flex, 4, 6 + "9948a9597f24813d95a0bc76c153d0f8", # -> 0.1000 3.957814e+06, flex, 4, 4 + "03d1bf347fc86923a4cd10126996565c", # -> 0.1000 3.934121e+06, flex, 4, 6 + "342438e8ee1a31ea6a21f1d03c93c0e7", # -> 0.1000 5.201594e+06, flex, 4, 7 + "3e797beb9ac8298f7826f65453fa3a2f", # -> 0.1000 2.953513e+06, flex, 4, 2 + "367fb3948c6f69886ec3028a8360dc65", # -> 0.6659, 4.209346e+06, flex, 6, 4 + "2e2ccc15724987b696acfdc21bf47a51", # -> 0.6503, 7.269416e+06, flex, 6, 16 + "bc15239e6d2c175a0334f61af9848739", # -> 0.6494, 5.148289e+06, flex, 4, 6 + "716f7759cf91aa844d7000045b1eb600", # -> 0.6476, 2.741280e+06, flex, 8, 3 + "3c5f7b70f075fe8462c635153dada47d", # -> 0.6303, 5.007099e+06, flex, 6, 6 + "8f0f60a3e18b7a24642cd76ed327b9a1", # -> 0.6295, 5.785277e+06, flex, 6, 8 + "531d8b20ad7953e37f974f7d5b45e01c", # -> 0.6267, 5.382755e+06, flex, 4, 8 + "57d1dc4ee01cee3cf0385670e1741322", # -> 0.6211, 2.991667e+06, flex, 4, 3 + "05f70440f96aaf900cc613fb6a38610c", # -> 0.6092, 6.469393e+06, flex, 6, 10 + "9b86d4910bd95fb6d262c5e5983c14ad", # -> 0.6061, 4.349474e+06, flex, 4, 4 + "17b5fc2623904c1c66093c08e1b79f27", # -> 0.6027, 6.106181e+06, flex, 4, 10 + "e67bd735524454b8a261787dcf2a47eb", # -> 0.6000, 3.895603e+06, flex, 6, 4 + "fbe458505010a51dfc97863cfa4725ca", # -> 0.5971, 6.166594e+06, flex, 4, 10 + "56c8a5c06806146647506acf32634294", # -> 0.5963, 6.381624e+06, flex, 6, 10 + "0e8ab6e96cf978db32c2d7b7699cfe7f", # -> 0.5901, 2.823915e+06, flex, 8, 3 + "f0cd6ddce67c86d57bf5661a26b5bde2", # -> 0.5823, 4.080290e+06, flex, 8, 4 + "9e9f38b272165d42a0528ebdf9027f1c", # -> 0.5815, 3.174854e+06, flex, 4, 3 + "4cc609a2bb8c5efa6791c32ea349850a", # -> 0.5778, 5.486881e+06, flex, 4, 8 + "33eeff2627c8868d784639522b1eb4f1", # -> 0.5747, 2.619111e+06, flex, 8, 3 + "7aec249371301c815c3eead824c6f7b1", # -> 0.5738, 7.557755e+06, flex, 6, 16 + "abc9e0d7b65f1070bea9dfafa919f90f", # -> 0.5725, 5.817821e+06, flex, 6, 8 + "90a9560d3a79b5ae23440476b04d9561", # -> 0.5704, 6.553902e+06, flex, 8, 10 + "83973c46451c905ae0352fea31cd0df8", # -> 0.5676, 7.421917e+06, flex, 8, 16 + "6a405a2cf4eb6ece8241296f29b52aad", # -> 0.5637, 2.873761e+06, flex, 6, 3 + "bcaf7d4fe4b1a83c3d16efe2f6e4d967", # -> 0.5615, 5.767932e+06, flex, 8, 8 + "d86af65d32bbb56f2eca4d54a8bdaeeb", # -> 0.5529, 7.608056e+06, flex, 8, 16 + "a782864f124987e758d7911279c2b7cb", # -> 0.5522, 2.935374e+06, flex, 6, 3 + "57a7e8afe58c32f72af8ea86cd18ddbb", # -> 0.5511, 4.148061e+06, flex, 6, 4 + "0dbadd053f8161566f8bfd04e29f167b", # -> 0.5500, 3.121372e+06, flex, 4, 3 + "03b75598bd4a4799823c4ac80dad72d1", # -> 0.5483, 7.589383e+06, flex, 6, 16 + "77093fa86e3ac8b23d13065d8645d019", # -> 0.5458, 6.490005e+06, flex, 8, 10 + "71d583b85d081e1e93bd75b836c83de6", # -> 0.5402, 2.819020e+06, flex, 8, 2 + "36d5275416ed73b04c6952c4276c083d", # -> 0.5292, 4.092483e+06, flex, 8, 4 + "b5bceb9302a3df3a2771deb7d0edd4c8", # -> 0.5222, 7.549662e+06, flex, 8, 16 + "36d35f39f535e4aaa9cb5da438c8d903", # -> 0.5154, 2.768778e+06, flex, 6, 2 + "a519ef258d54600ea6920c4788a6280b", # -> 0.5086, 2.802222e+06, flex, 8, 2 + "513a1c16282dec9f124b9257bbb28177", # -> 0.5075, 5.524247e+06, flex, 4, 8 + "8894cc71801b352192f5759cf887d6e4", # -> 0.5066, 2.754725e+06, flex, 6, 2 + "1940550b5b9a07ce68968093723ef697", # -> 0.5053, 6.330552e+06, flex, 8, 10 + "85444b910411afd5676269013fce39e6", # -> 0.4950, 2.536435e+06, flex, 4, 2 + "1a704da76414aa5c50b9316544f50364", # -> 0.4802, 2.524790e+06, flex, 4, 2 + "4b746c04189fe0077f7938802ac24dd4", # -> 0.4729, 3.983884e+06, flex, 8, 4 + "7567c93fa1089f5cedc348292372ceb1", # -> 0.4702, 2.734160e+06, flex, 8, 2 + "644bad7c98a5b9cb6985cb97d011c8f3", # -> 0.4542, 4.932631e+06, flex, 8, 6 + "d38eaafd8b59ce694bd77c959b2c1e68", # -> 0.4036, 5.795405e+06, flex, 8, 8 + "f99a35d5bbf685c7089d7519291b5c0f", # -> 0.3773, 2.633205e+06, flex, 4, 2 + "ff48b26827e51e5a9e98b5e73ced1c98", # -> 0.3749, 4.967528e+06, flex, 8, 6 + "b9815d8e206f5e7e7651761c998283e2", # -> 0.3673, 5.903986e+06, flex, 6, 8 + "2e2c5d82931665495de2f92f4af6a095", # -> 0.3622, 2.794733e+06, flex, 6, 2 + "dbdb4f07f3f92b592762aec1a402b14f", # -> 0.3552, 2.728159e+06, flex, 6, 3 + "f33fc387a8c608886559ac95b3e4f7ce", # -> 0.3458, 4.753085e+06, flex, 6, 6 + "66f7bfa092d65404f9a704e02c6e6f77", # -> 0.3375, 4.760287e+06, flex, 8, 6 + "1af4b0115d6a08698fbfb4114a770489", # -> 0.3331, 6.535710e+06, flex, 6, 10 + "0f3f929d0d9b0328f5e93ce11ea73b76", # -> 0.1000, 3.965023e+06, flex, 4, 4 + "049dca947754753b7be1882fa3e5f0df", # -> 0.1000, 3.978452e+06, flex, 4, 6 + "a8facc8acb1e1e2af5009a2d107a1c74", # -> 0.1000, 4.142553e+06, flex, 4, 6 + "14ec0f67754688eb30f47f432595d4fa", # -> 0.1000, 4.130849e+06, flex, 4, 4 + "478535a7bbb120ca3eee26c64c1a6fd6", # -> 0.6697, 2.715756e+06, flex, 6, 2 + "9d3cdf362377b77f2769cddfc2f06cf2", # -> 0.6670, 2.802477e+06, flex, 8, 3 + "8f70e90c6769dd3c9f44402acfec3606", # -> 0.1000, 3.948141e+06, flex, 4, 6 + "58756c3729dcedfeeab0fea628634e05", # -> 0.1000, 4.042809e+06, flex, 4, 4 + "ec39ccf1998a61cf388b6c64cf53e534", # -> 0.1000, 4.040190e+06, flex, 4, 6 + "7c93ffb859c056bb8d58a57ea731a5b6", # -> 0.1000, 3.956951e+06, flex, 4, 6 + "5c58106ae695dc7842cee914198213ce", # -> 0.1000, 3.999102e+06, flex, 4, 4 + "66eb61bd460185ebb3a0e7e0903998d8", # -> 0.1000, 3.915104e+06, flex, 4, 4 + "c26c75797cc5698524c128b2c03d71ad", # -> 0.6699, 4.936011e+06, flex, 6, 6 + "1b5f11c64a41bebe6ecf86c89aec78e7", # -> 0.6521, 2.760852e+06, flex, 6, 2 + "e8e38b72f113ae04a4b26c4c262d7fd2", # -> 0.6504, 4.038943e+06, flex, 6, 4 + "936c04b9a6f211742285c459cc366134", # -> 0.6487, 2.625230e+06, flex, 8, 2 + "654b17e55ed66715c84161e8f7dbec28", # -> 0.1000, 4.271655e+06, flex, 4, 4 + "e5509196455a82fed7f194fd53f0e4c3", # -> 0.1000, 3.883347e+06, flex, 4, 6 + "739b8f45159088a1cbfff30f92e29a59", # -> 0.5141, 2.406360e+06, flex, 6, 3 + "fe398b8e7dfdc1cb8c71d2183a84de07", # -> 0.1000, 3.996849e+06, flex, 4, 4 + "c8a4f191f560ea10931775d0a8320c08", # -> 0.1000, 3.959836e+06, flex, 4, 6 + "04ccc689dc66e77aa8ecd339281c5ff0", # -> 0.1000, 4.092232e+06, flex, 4, 6 + "bab2a48cbef368310b076926701822a3", # -> 0.1000, 4.103027e+06, flex, 4, 4 + } + experiments = [ + exp for exp in experiments if not any(h in blacklist for h in exp) + ] + + print("After blacklisting, keeping", len(experiments), "experiments:") + for exp in experiments: + print(" → ".join(exp)) + + # 1) build a lookup: hash → flat dict + rec_map = {rec["hash"]: rec for rec in flat_records} + + # 2) for each experiment, merge the stages side-by-side, prefixing with the stage name + experiments_data = [] + for exp in experiments: + combined = {} + for h in exp: + rec = rec_map[h] + stage = rec["name"] + # prefix every field (including hash, loss, accuracy, nested flattened keys…) + for col, val in rec.items(): + combined[f"{stage}_{col}"] = val + experiments_data.append(combined) + + # 3) make a DataFrame + experiments_df = pd.DataFrame(experiments_data) + print(experiments_df.columns) + print( + experiments_df[ + [ + "qat_accuracy", + "qat_complexity", + "qat_hash", + "quantization_parameters_kernel_1_type", + "quantization_parameters_kernel_1_bits", + "quantization_parameters_kernel_1_n_levels", + ] + ].sort_values(by=["qat_accuracy"], ascending=False) + ) + + to_drop = [ + "model_creation*", + "freeze*", + "*function", + "*activations_*", + "*bias*", + "*input_shape*", + "*_0_*", + "*_2_*", + "*_3_*", + "*_name", + "*_hash", + "model_creation_seed", + "quantization_seed", + "qat_seed", + "*dataset", + "*_categories", + "*_epochs", + "*_batch_size", + "*_learning_rate", + "*_validation_split", + "quantization_complexity", + "qat_parameters_early_stopping", + ] + # find all columns matching any pattern + cols_to_drop = [ + col + for col in experiments_df.columns + if any(fnmatch.fnmatch(col, pat) for pat in to_drop) + ] + experiments_df = experiments_df.drop(columns=cols_to_drop) + + rename_map = { + "name": "stage", + "quantization_parameters_kernel_1_type": "type", + "quantization_parameters_kernel_1_bits": "bits", + "quantization_parameters_kernel_1_n_levels": "n_levels", + "initial_training_seed": "seed", + } + experiments_df = experiments_df.rename(columns=rename_map) + experiments_df = experiments_df.dropna() + + experiments_df["qat_complexity"] = experiments_df[ + "qat_complexity" + ] # Convert to Kbits + # print( + # experiments_df.sort_values(by=["qat_accuracy_mean", "qat_complexity_mean"], ascending=False) + # ) + # print(experiments_df.sort_values(by=["qat_complexity_mean"], ascending=False)) + + original_accuracy_mean = experiments_df["initial_training_accuracy"].mean() + original_complexity_mean = experiments_df[ + "initial_training_complexity" + ].mean() # in Kbits + original_accuracy_var = experiments_df["initial_training_accuracy"].var() + original_complexity_var = experiments_df[ + "initial_training_complexity" + ].var() + original_accuracy_sd = np.sqrt(original_accuracy_var) + original_complexity_var_kbits = original_complexity_var + original_complexity_sd = np.sqrt(original_complexity_var_kbits) + n = experiments_df["initial_training_accuracy"].count() + original_accuracy_se = original_accuracy_sd / np.sqrt(n) + original_complexity_se = original_complexity_sd / np.sqrt(n) + original_accuracy_min = experiments_df["initial_training_accuracy"].min() + original_complexity_min = experiments_df[ + "initial_training_complexity" + ].min() + original_accuracy_max = experiments_df["initial_training_accuracy"].max() + original_complexity_max = experiments_df[ + "initial_training_complexity" + ].max() + + # 1) Identify the metrics and the hyperparam columns to group by + metrics = ["qat_loss", "qat_accuracy", "qat_complexity"] + hyperparam_cols = [ + col + for col in experiments_df.columns + if col in ("type", "bits", "n_levels") + ] + + # 2) Group by those hyperparams, compute mean & var of the metrics + stats = ( + experiments_df.groupby(hyperparam_cols)[metrics] + .agg(["mean", "var", "max", "min"]) + .reset_index() + ) + + # 3) Flatten the resulting MultiIndex columns + stats.columns = [ + f"{lvl0}_{lvl1}" if lvl1 else lvl0 for lvl0, lvl1 in stats.columns + ] + + counts = ( + experiments_df.groupby(hyperparam_cols)[metrics].count().reset_index() + ) + count_cols = [f"{m}_count" for m in metrics] + counts.columns = hyperparam_cols + count_cols + row_uniques = counts[count_cols].nunique(axis=1) + assert (row_uniques == 1).all(), "Not all metric‐counts agree per group!" + counts["count"] = counts[count_cols[0]] + counts = counts[hyperparam_cols + ["count"]] + stats = stats.merge(counts, on=hyperparam_cols, how="left") + + # 3) Compute standard deviations and errors + stats["se_accuracy"] = np.sqrt(stats["qat_accuracy_var"]) / np.sqrt( + stats["count"] + ) + stats["se_complexity"] = np.sqrt(stats["qat_complexity_var"]) / np.sqrt( + stats["count"] + ) + + print( + stats.sort_values( + by=["qat_accuracy_mean", "qat_complexity_mean"], ascending=False + ) + ) + print(stats.sort_values(by=["qat_complexity_mean"], ascending=False)) + + cmap = mpl.colormaps["tab10"] + xmin = stats["qat_complexity_mean"].min() * 0.9 + xmax = stats["qat_complexity_mean"].max() * 1.1 + xmax = original_complexity_mean * 1.1 + + plt.figure(figsize=(6, 4)) + plt.scatter( + original_complexity_mean, + original_accuracy_mean, + color="red", + label="Original Model", + zorder=3, + ) + bits_values = experiments_df["bits"].unique() + for i, bits in enumerate(sorted(bits_values)): + subset = experiments_df[experiments_df["bits"] == bits].sort_values( + "qat_complexity" + ) + # 1) dashed line only, semi-transparent + plt.semilogx( + subset["qat_complexity"], + subset["qat_accuracy"], + linestyle="--", + color=cmap(i % 10), + alpha=0.3, + zorder=2, + label=None, # we’ll label in the marker call + ) + # 2) opaque markers on top, with label + plt.scatter( + subset["qat_complexity"], + subset["qat_accuracy"], + marker=".", + color=cmap(i % 10), + zorder=3, + label=f"{bits} bits", + ) + add_horizontal_se_band( + plt.gca(), + original_accuracy_mean, + original_accuracy_se, + color="red", + ) + plt.xlabel("BWC") + plt.ylabel("Precisión") + plt.ylim([0.6, 0.75]) + plt.xlim([xmin, xmax]) + plt.grid(which="both", linestyle="--", linewidth=0.5, alpha=0.6) + plt.legend() + plt.tight_layout() + plt.savefig("complexity_vs_quantized_flex-es.png", dpi=150) + + # 2) sort bits for consistent coloring + plt.figure(figsize=(6, 4)) + plt.scatter( + original_complexity_mean, + original_accuracy_mean, + color="red", + label="Original Model", + zorder=3, + ) + bits_list = sorted(stats["bits"].unique()) + for i, bits in enumerate(bits_list): + grp = stats[stats["bits"] == bits].sort_values("qat_complexity_mean") + # 1) draw only the dashed line + errorbars (no markers) + plt.errorbar( + grp["qat_complexity_mean"], + grp["qat_accuracy_mean"], + xerr=grp["se_complexity"], + yerr=grp["se_accuracy"], + fmt="--", # just the line + color=cmap(i % 10), + ecolor=cmap(i % 10), + alpha=0.3, + capsize=3, + zorder=2, + ) + # 2) draw the opaque markers on top + plt.scatter( + grp["qat_complexity_mean"], + grp["qat_accuracy_mean"], + marker=".", + s=30, + color=cmap(i % 10), + label=f"{bits} bits", + zorder=3, + ) + add_horizontal_se_band( + plt.gca(), + original_accuracy_mean, + original_accuracy_se, + color="red", + ) + plt.xscale("log") + plt.xlabel("BWC") + plt.ylabel("Precisión") + plt.ylim([0.6, 0.75]) + plt.xlim([xmin, xmax]) + plt.grid(which="both", linestyle="--", linewidth=0.5, alpha=0.6) + plt.legend() + plt.tight_layout() + plt.savefig("complexity_vs_quantized_flex_stats-es.png", dpi=150) + + plt.figure(figsize=(6, 4)) + plt.scatter( + original_complexity_mean, + original_accuracy_mean, + color="red", + label="Original Model", + zorder=3, + ) + bits_list = sorted(stats["bits"].unique()) + for i, bits in enumerate(bits_list): + grp = stats[stats["bits"] == bits].sort_values("qat_complexity_mean") + plt.plot( + grp["qat_complexity_mean"], + grp["qat_accuracy_mean"], + marker=".", + linestyle="--", + color=cmap(i % 10), + label=f"{bits} bits", + zorder=3, + ) + plt.plot( + grp["qat_complexity_mean"], + grp["qat_accuracy_max"], + linestyle="-", + color=cmap(i % 10), + alpha=0.5, + zorder=2, + ) + plt.plot( + grp["qat_complexity_mean"], + grp["qat_accuracy_min"], + linestyle=":", + color=cmap(i % 10), + alpha=0.5, + zorder=2, + ) + add_horizontal_se_band( + plt.gca(), + original_accuracy_mean, + original_accuracy_se, + color="red", + ) + plt.xscale("log") + plt.xlabel("BWC") + plt.ylabel("Precisión") + plt.ylim([0.6, 0.75]) + plt.xlim([xmin, xmax]) + plt.grid(which="both", linestyle="--", linewidth=0.5, alpha=0.6) + plt.legend() + plt.tight_layout() + plt.savefig("complexity_vs_quantized_flex_stats2-es.png", dpi=150) diff --git a/src/stage/plotv3.py b/src/stage/plotv3.py index fecb65a..03fd252 100755 --- a/src/stage/plotv3.py +++ b/src/stage/plotv3.py @@ -187,9 +187,270 @@ def _collect_paths(node, path): _collect_paths(root, [root]) blacklist = { - "fe398b8e7dfdc1cb8c71d2183a84de07", - "c8a4f191f560ea10931775d0a8320c08", - "04ccc689dc66e77aa8ecd339281c5ff0", + # ) hash # -> acc, complexity, type, bits, n_levels + "82bcde2ecc786b41e6d2b33425c5295a", # -> 0.6825, 2.522522e+06, flex, 8, 2 + "2d1d7bb39ddb4bce584d824a41b8aaa2", # -> 0.6820, 2.346810e+06, flex, 8, 2 + "deb62ff4fda51063fb9094744ffc0051", # -> 0.6803, 2.562207e+06, flex, 8, 2 + "8920925440a17cd21177b04319f4dde7", # -> 0.6762, 2.629205e+06, flex, 8, 2 + "9eefaec10856b78c5b1b04cbbb2138ce", # -> 0.6834, 5.739940e+06, flex, 4, 10 + "c6d6425d11b008bea5ae624601cf69f9", # -> 0.6869, 8.300487e+06, flex, 6, 25 + "c24d8367f7eea4fe40c6b11d37a2ef64", # -> 0.6829, 7.521903e+06, flex, 6, 30 + "f1a01952db947ca2a5dcf6932bc4dd9d", # -> 0.6870, 7.761222e+06, flex, 6, 20 + "f76e8a717ae8f27c07edabd45a697813", # -> 0.6803, 2.657772e+06, flex, 6, 2 + "318464ddf0bb2feb2249b20e4b2b0c35", # -> 0.6802, 2.654884e+06, flex, 6, 3 + "a14dc019e8c2e2b8e4929ad2edae4d80", # -> 0.6739, 2.905927e+06, flex, 6, 3 + "fe88a2a970c6d4fe95e1c5efb867de67", # -> 0.6719, 4.990952e+06, flex, 6, 6 + "2d48e19bced1b6e3b15eab632a40cf44", # -> 0.6682 2.476079e+06, flex, 4, 2 + "4965cf50af85c54e65044dc0b5717bcf", # -> 0.6647 4.679128e+06, flex, 8, 5 + "cf82eb531d5c718017874750453af75e", # -> 0.6622 5.459853e+06, flex, 4, 10 + "df2c27c6c58a72ce19f2bec69ba6fa22", # -> 0.6602 4.127570e+06, flex, 4, 4 + "081eea60c304ff553e0ec04fcbfe17f8", # -> 0.6566 8.184740e+06, flex, 6, 25 + "f8138453a8c78c1598af911967b22ef7", # -> 0.6399 4.328394e+06, flex, 6, 5 + "0942ca5ce86afde3e272b8d3bb1c79cf", # -> 0.6365 5.416113e+06, flex, 6, 7 + "57a410c7713212ae7e7874174a00ec28", # -> 0.6358 5.352943e+06, flex, 4, 8 + "1ef38adee955e86d29015639c772708c", # -> 0.6351 8.514102e+06, flex, 6, 30 + "ca9710fb7d998d349dc0fabffe3e7487", # -> 0.6336 4.092541e+06, flex, 4, 5 + "f361e46f3f1a62d15f6ffe924f341e4b", # -> 0.6294 5.502136e+06, flex, 6, 7 + "dcdc5e38399aa6b1f4aec6dd0f4a0011", # -> 0.6228 5.499287e+06, flex, 6, 7 + "62293d44559425797da8b3cf5c03949d", # -> 0.6226 5.282950e+06, flex, 8, 7 + "d3e21e49f4a6737a99c64ae7bd962ed9", # -> 0.6173 8.716123e+06, flex, 6, 30 + "4b847613419cf65b6933ac7df186b5e1", # -> 0.6172 4.120780e+06, flex, 6, 4 + "40c151e376a2a746a618bdea64acb645", # -> 0.6118 8.659160e+06, flex, 8, 25 + "a1d029ad31e8d0e78a2727cb817238cd", # -> 0.6100 9.312237e+06, flex, 8, 30 + "257185fcc8615ad18afa388080e0b42a", # -> 0.6096 9.424802e+06, flex, 8, 30 + "cc7ee437a88cd218050280f5e1687d7b", # -> 0.6091 4.411632e+06, flex, 4, 5 + "1c2b3e12e0e008acc93ad000dc46860c", # -> 0.6085 8.087628e+06, flex, 8, 20 + "ad7f438d121a818e11559c02cf40e875", # -> 0.6078 8.815668e+06, flex, 8, 25 + "bf3715b86ac5cece775d945518828380", # -> 0.6075 8.649432e+06, flex, 6, 30 + "c671e4816625f3fcef3ae19735e588cb", # -> 0.6065 8.057870e+06, flex, 6, 20 + "f77e1ff54c1e8548b16d78166e583a20", # -> 0.6061 4.340742e+06, flex, 6, 5 + "f88ec612d8ea1bdcc25d3dc257d9078b", # -> 0.6045 6.116025e+06, flex, 4, 10 + "cacd708264fa9f8700b9f4fb32b87494", # -> 0.6013 5.497829e+06, flex, 4, 8 + "740a1562cfbc1d391c4f3a1cdbddd879", # -> 0.5990 9.368490e+06, flex, 8, 30 + "18c96f0fc4d4aad8cef826c6cc048846", # -> 0.5981 2.913844e+06, flex, 8, 3 + "6767ffdfcd17bf848370ba70b057aad9", # -> 0.5969 8.600187e+06, flex, 6, 30 + "d8e9e5b7f38c90b8e4aa509d9b5ced31", # -> 0.5961 5.227277e+06, flex, 4, 6 + "419c90ed7c09a63c3fc90a54661617b3", # -> 0.5936 3.709586e+06, flex, 4, 5 + "5a9b0e4a09037ec75430ad220ccdde6d", # -> 0.5930 8.775996e+06, flex, 8, 25 + "5d070cbf206198f489173a5f1ec74f91", # -> 0.5927 4.441964e+06, flex, 8, 5 + "d36592e5b6e1894fba94f2264136580b", # -> 0.5906 4.023145e+06, flex, 6, 4 + "6d9130bcab5126da553138f680ad5343", # -> 0.5901 5.501902e+06, flex, 6, 7 + "228c22a86a8e5db74626432a4fa7ebf0", # -> 0.5899 8.682319e+06, flex, 8, 25 + "ce99dd6e073611df6d56d0b035f2c380", # -> 0.5894 5.523196e+06, flex, 8, 7 + "e4f9b423a715a006966cafd108626582", # -> 0.5894 8.710177e+06, flex, 8, 25 + "dd44e1d79606bbf821f776b550fd5708", # -> 0.5850 8.223336e+06, flex, 6, 20 + "553230a79d1600e5e96e4e55bced5562", # -> 0.5847 4.876093e+06, flex, 4, 7 + "5b6c1d077fff399487198d0934d2f801", # -> 0.5833 6.564747e+06, flex, 8, 10 + "a79306498306fd871b72f91886050764", # -> 0.5833 4.978046e+06, flex, 4, 7 + "116279bfe5331dce42f5214acff1b8b8", # -> 0.5827 4.314205e+06, flex, 6, 5 + "2eb0a2ba00ac93326abf3351bd1d9883", # -> 0.5826 5.430122e+06, flex, 8, 7 + "f48060242ed1e5845835ec38f86f90e4", # -> 0.5826 7.373076e+06, flex, 8, 16 + "a2a0c3db77ffc9e87502fce7370eb6a0", # -> 0.5823 8.731863e+06, flex, 6, 25 + "ddc474f0d54a8cc5731b000baf77756d", # -> 0.5809 9.161021e+06, flex, 8, 30 + "4126ec5dbf996778dcb49af8c4563a0e", # -> 0.5790 4.420320e+06, flex, 8, 5 + "1dc469302d509868b5807c2c582781da", # -> 0.5787 6.152794e+06, flex, 6, 10 + "a914f36d1b76973a6f5213a6cdb90e76", # -> 0.5776 2.440996e+06, flex, 8, 3 + "07c097bac4abda58859eb5055fbb3443", # -> 0.5759 5.499702e+06, flex, 4, 8 + "6351c9acd3391e61432ecfa4060a092a", # -> 0.5756 4.607602e+06, flex, 8, 5 + "0828459655a6999d7d9af066c8632f60", # -> 0.5751 5.512189e+06, flex, 8, 7 + "cfa18e91c2f434e01e9fa4d928bab7e4", # -> 0.5749 2.745346e+06, flex, 6, 3 + "741cecf1ee1bbce01c1a2d3f5521c491", # -> 0.5741 9.617448e+06, flex, 8, 30 + "81038213fd8189ba707569fb2b4da11c", # -> 0.5734 5.008818e+06, flex, 8, 6 + "e913f582950807f522d9c802b6ef3f3e", # -> 0.5719 4.106683e+06, flex, 8, 4 + "a47756b976c51cc11b50e1d8238c5200", # -> 0.5716 4.141123e+06, flex, 6, 5 + "ed3fbf80c1e7546321a2dbd6ada1354d", # -> 0.5715 7.853356e+06, flex, 8, 16 + "49befbd5aea7ec47387bd96665c38982", # -> 0.5702 8.188566e+06, flex, 8, 20 + "253e6448f7f43101cbf863974d331d0a", # -> 0.5685 8.324831e+06, flex, 8, 20 + "324fe5d7f47770902d73752a8e01d62d", # -> 0.5663 4.599661e+06, flex, 4, 5 + "387929c287656e1418ecaca896f443ad", # -> 0.5658 5.366461e+06, flex, 6, 7 + "724f9a6abede93b72c8fc7df30b8d9db", # -> 0.5644 4.705492e+06, flex, 6, 6 + "446a454fc94b2789cd943578ed0bc074", # -> 0.5640 4.995121e+06, flex, 4, 5 + "a7f630a537c947ccaf46387051efeef7", # -> 0.5603 8.207445e+06, flex, 6, 20 + "2f23ee58330ffbafc3acb0b87a0699a4", # -> 0.5593 9.103208e+06, flex, 8, 25 + "dbdc28ebce1b0a85029fce6714e49c9f", # -> 0.5587 4.413465e+06, flex, 8, 5 + "b5358693b4337fc31be52a52df800328", # -> 0.5583 5.549624e+06, flex, 6, 8 + "3feade8d67883ae66e406c0f6ac4cd57", # -> 0.5579 4.478236e+06, flex, 4, 5 + "08b23ddf3b656f041d36152a88fba87e", # -> 0.5574 5.441997e+06, flex, 6, 7 + "1b8cc4ea0c23fb930d198c9bace1c01f", # -> 0.5565 4.984122e+06, flex, 4, 5 + "6982f70c319ed9df4e958de3b91baf23", # -> 0.5564 2.965374e+06, flex, 6, 3 + "04ab8c630f0ac8a0935ccaa7297a19dd", # -> 0.5536 8.794149e+06, flex, 6, 30 + "8412d76b73a091f1f075e3768f8c4485", # -> 0.5526 8.143381e+06, flex, 8, 20 + "806a48aa4aead784c9dc93e64c4d694a", # -> 0.5508 9.106848e+06, flex, 8, 25 + "f56b97ee2b9eb3673dde75b73acefa24", # -> 0.5496 8.110230e+06, flex, 6, 20 + "f1a3c121b4c6331eee397599a8d98475", # -> 0.5491 8.585863e+06, flex, 6, 25 + "53317e1a72893a4e61c5f07e1611a087", # -> 0.5479 4.988744e+06, flex, 6, 6 + "18b39edfb145e5db5ce268793593fa55", # -> 0.5478 8.271977e+06, flex, 8, 20 + "5dc8eb9e93379b1108d847486faec2b7", # -> 0.5478 8.807598e+06, flex, 8, 30 + "30fc1daf89f19e980b5e1c69ea3eeddb", # -> 0.5475 8.494731e+06, flex, 8, 20 + "efa5082ce34a54c5450944408dda3341", # -> 0.5469 4.049373e+06, flex, 6, 5 + "2a57ca0c402c493d39a4fda0f722ef5f", # -> 0.5464 3.183237e+06, flex, 4, 3 + "d878cba4575aa5c22fcd40084d9a3384", # -> 0.5424 8.451002e+06, flex, 6, 25 + "30e350f38eebb57f58f88b01eb427b36", # -> 0.5404 8.581810e+06, flex, 6, 25 + "12b856434f33147f95343017850b88f6", # -> 0.5400 9.347335e+06, flex, 8, 30 + "91a5c093e1213c00cbf92e423795c04c", # -> 0.5369 4.752921e+06, flex, 8, 6 + "a0ebf35a5577ba037ad4436360a8d631", # -> 0.5336 8.461936e+06, flex, 6, 25 + "ed4e4713c7bcde4911563de5e51a6b1c", # -> 0.5317 5.609182e+06, flex, 6, 7 + "d64d58115a0c16a93b46a26541ea940c", # -> 0.5237 4.856726e+06, flex, 6, 6 + "33cc5a71d1e46710e53d58ae9e3fa7ec", # -> 0.5228 8.773018e+06, flex, 8, 25 + "4751c5518326351fc7d5a2d1e20ae00b", # -> 0.5224 9.387617e+06, flex, 8, 30 + "335513c169a9f64243badde924a39a8b", # -> 0.5224 2.997398e+06, flex, 4, 3 + "2d07af1c3560853dfc51e2e95e76b42f", # -> 0.5171 5.592623e+06, flex, 8, 8 + "37311b19ce9060557ab3c6fe57d2cb43", # -> 0.5166 2.736840e+06, flex, 6, 2 + "f13028523f1d5bd0c69d624f1ee6c85d", # -> 0.5116 3.993213e+06, flex, 6, 4 + "da98bfc8ea3478bb291828a5764d160c", # -> 0.5106 4.432343e+06, flex, 8, 5 + "473516dffe62ea86713392c3cbc2fab9", # -> 0.5092 5.323287e+06, flex, 8, 7 + "d5b85c422d79220101ba5f432ae51875", # -> 0.5078 5.704372e+06, flex, 6, 8 + "b24210b8f23f81d5041f2ec4bf47741c", # -> 0.5071 5.473601e+06, flex, 8, 7 + "1e1cc4492f0d9c28ba25c858687b311d", # -> 0.5062 8.548573e+06, flex, 6, 25 + "a18788d22bdc7da6982159ae318ea1f9", # -> 0.5056 2.637835e+06, flex, 4, 2 + "540fb846638db408db0a586efceec840", # -> 0.5044 2.465916e+06, flex, 4, 2 + "1b8efa9a01c3246c1e4642e8aa65da03", # -> 0.5031 6.534875e+06, flex, 6, 10 + "52fe89bc1409acc79ad0172460f6c46a", # -> 0.5011 8.336156e+06, flex, 6, 25 + "c27ebd89aa6f73f30849fa1c190e6458", # -> 0.5011 4.334441e+06, flex, 6, 5 + "adc2f6d7005c50c6237dc93869905211", # -> 0.4982 8.812724e+06, flex, 6, 25 + "8ff65102493822dc4fd81ab19d25e033", # -> 0.4962 6.517767e+06, flex, 8, 10 + "a45928491146a61ad7392180d03abf55", # -> 0.4955 8.809505e+06, flex, 6, 30 + "e54464fe08d22fd6bc218ad716299cd0", # -> 0.4940 8.181487e+06, flex, 6, 20 + "3ceb795754e7335c2a1f7a7d44eadd35", # -> 0.4912 6.295182e+06, flex, 8, 10 + "6c2880840091d1caac5cd166141f2327", # -> 0.4875 5.364793e+06, flex, 6, 7 + "98022e1420cb937e351850b1f56e96e6", # -> 0.4868 4.514491e+06, flex, 8, 5 + "2cce305ea6540c328c79447cb79a39bd", # -> 0.4805 2.725834e+06, flex, 8, 2 + "73cbba672e49d36f96fe434c00f5f3ab", # -> 0.4789 5.761759e+06, flex, 8, 8 + "c2fe04aec32d0290c6c2a3b0bc7f1bbb", # -> 0.4750 5.853028e+06, flex, 6, 8 + "3a1d5257cd243e9a896cfa0858b60450", # -> 0.4721 4.908726e+06, flex, 8, 6 + "c3e8bd05639786207a3e49041c5dd5a1", # -> 0.4717 5.403705e+06, flex, 6, 7 + "042c9b6b898e732c2531f960df4cc6b7", # -> 0.4584 8.971624e+06, flex, 8, 25 + "d40576261b8f2060ad2f904f8380e4ed", # -> 0.4571 8.335715e+06, flex, 8, 20 + "a498850d6b8debfcf5ae51d7d92aa488", # -> 0.4567 5.613264e+06, flex, 4, 7 + "fe356e97e433dfa1a4a6daa0cb533d34", # -> 0.4556 9.482259e+06, flex, 8, 30 + "09c8dd4e7f9645630608d2b335f4fd42", # -> 0.4534 4.556333e+06, flex, 8, 5 + "4faa5b579f938a5a9a9ef2c287f54434", # -> 0.4522 4.559044e+06, flex, 8, 5 + "00ae517067cbcd92ebfc024d843e480b", # -> 0.4504 7.803484e+06, flex, 8, 16 + "96214e322683ecb99c0033cac1a86ed2", # -> 0.4491 5.825073e+06, flex, 8, 8 + "7169526b3557e7f4567445ea2e1947a3", # -> 0.4452 6.415053e+06, flex, 8, 10 + "47c7e524532935287485da7a54b9bbd0", # -> 0.4451 8.338298e+06, flex, 6, 20 + "19bf11089cd1b489ad86b75937df27ec", # -> 0.4447 7.706494e+06, flex, 8, 16 + "1f9c17051e51383b24ecb81a4bef1329", # -> 0.4441 9.278590e+06, flex, 6, 30 + "e8ff6a262d0e6730fd6f55b141d9cfe4", # -> 0.4364 5.390991e+06, flex, 8, 7 + "b7a9ae280c031ad7088b16bf178d809c", # -> 0.4351 4.098193e+06, flex, 8, 4 + "fe0fd30a17fd52dba450c853536f5b27", # -> 0.4318 2.739286e+06, flex, 6, 2 + "130b771d9ee96b22a28f67bd3f6651fe", # -> 0.4305 5.336351e+06, flex, 8, 7 + "f2e3e46d510051393098cf95cd716f88", # -> 0.4247 5.679510e+06, flex, 4, 7 + "41f7646a8bb31efbb89764cdadca2eb2", # -> 0.4237 2.265290e+06, flex, 6, 3 + "cafe07776a80e8c84d020f0de156a195", # -> 0.4188 5.431191e+06, flex, 8, 7 + "6784e09e4909dff9b28d740415f1ec50", # -> 0.4179 4.478756e+06, flex, 8, 5 + "169a426b053dc7b9ece944dd1d83b578", # -> 0.4148 9.194707e+06, flex, 6, 30 + "0abf9d5e11b9f3898898bae71bcf6e57", # -> 0.4094 7.744605e+06, flex, 6, 16 + "e2498db25591d5e52723470a0953a725", # -> 0.3957 9.452671e+06, flex, 8, 30 + "d92c79c0a81190c5cc6cfc4791cf70b0", # -> 0.3940 5.638742e+06, flex, 4, 7 + "815f8290d3818251e4bd5a5bcb8acbd6", # -> 0.3918 2.825758e+06, flex, 8, 3 + "416b6139ca6b68d874851170c7e349ac", # -> 0.3868 4.204707e+06, flex, 4, 4 + "c9dc0f5cbde20b03fefe4aec336b2aa2", # -> 0.3783 8.269713e+06, flex, 8, 20 + "0401977b495423cf305d2aa624340d36", # -> 0.3770 6.460710e+06, flex, 6, 10 + "5c2ee969c48668d31e31d11cc78a491e", # -> 0.3744 2.824383e+06, flex, 8, 2 + "f98adfa7a6daf49060b19966c4600e71", # -> 0.3645 4.571965e+06, flex, 6, 5 + "3d96cfd6bb9ddb14f72a763a86ab8ca8", # -> 0.3631 8.342203e+06, flex, 6, 20 + "54a35622869c5c9990669c443c529344", # -> 0.3543 4.503398e+06, flex, 6, 5 + "77f800cbafb0f25cda2a0355d419b6d0", # -> 0.3541 4.583585e+06, flex, 6, 5 + "176307c4bddce3f26248e089354bba0d", # -> 0.3512 5.600199e+06, flex, 4, 7 + "37575e50ef4c718b4c7baab7a41f4735", # -> 0.3509 4.371062e+06, flex, 8, 5 + "7889fe17fa9e15fbe7c872dc30c80d81", # -> 0.3495 8.984966e+06, flex, 8, 25 + "1c0972c2b3b622621ff7ae3b223ee164", # -> 0.3464 8.355320e+06, flex, 8, 20 + "25cce8bbc45c7f187800a9ce1220ed3a", # -> 0.3413 5.552800e+06, flex, 8, 7 + "6a45374e3aeb7df392fd36e22cee190a", # -> 0.3377 2.857394e+06, flex, 8, 2 + "217c00c772cb2980409890dede2b9a41", # -> 0.3345 5.447785e+06, flex, 4, 7 + "42d8a1cc1266731836e3b2742469d8d8", # -> 0.3250 7.750992e+06, flex, 6, 16 + "c7eb6de3357c58485a4111f365becb22", # -> 0.3134 6.044683e+06, flex, 4, 10 + "71aa4790a9cdc70c8d86c511fe730540", # -> 0.3071 8.114960e+06, flex, 8, 20 + "3bccd919a7bd3faeecb8f6165f0cb554", # -> 0.3049 2.827845e+06, flex, 6, 2 + "00ad8a02b539bbcb40b4f9556d385d21", # -> 0.2639 9.342941e+06, flex, 6, 30 + "48f8c6c676af256d5ac71f5124956b4a", # -> 0.2589 5.430239e+06, flex, 8, 7 + "1e0e97bf6f7283f8822111174bf44875", # -> 0.2543 4.367211e+06, flex, 6, 5 + "13b4e28a3c2adb02ebd26c6553322b77", # -> 0.2511 4.777519e+06, flex, 4, 5 + "1dfb5b20677ca85df1e6e0029ed5ead3", # -> 0.2366 8.310871e+06, flex, 6, 20 + "665f50e233c5e1ebfb99483684ee38b7", # -> 0.2264 5.563939e+06, flex, 6, 7 + "cb80d372e2df52f2541a75f3e3ab6fa3", # -> 0.1000 4.206023e+06, flex, 4, 6 + "4a38650f02cc8de4cbd89d3e3e811ff1", # -> 0.1000 4.080933e+06, flex, 4, 6 + "9948a9597f24813d95a0bc76c153d0f8", # -> 0.1000 3.957814e+06, flex, 4, 4 + "03d1bf347fc86923a4cd10126996565c", # -> 0.1000 3.934121e+06, flex, 4, 6 + "342438e8ee1a31ea6a21f1d03c93c0e7", # -> 0.1000 5.201594e+06, flex, 4, 7 + "3e797beb9ac8298f7826f65453fa3a2f", # -> 0.1000 2.953513e+06, flex, 4, 2 + "367fb3948c6f69886ec3028a8360dc65", # -> 0.6659, 4.209346e+06, flex, 6, 4 + "2e2ccc15724987b696acfdc21bf47a51", # -> 0.6503, 7.269416e+06, flex, 6, 16 + "bc15239e6d2c175a0334f61af9848739", # -> 0.6494, 5.148289e+06, flex, 4, 6 + "716f7759cf91aa844d7000045b1eb600", # -> 0.6476, 2.741280e+06, flex, 8, 3 + "3c5f7b70f075fe8462c635153dada47d", # -> 0.6303, 5.007099e+06, flex, 6, 6 + "8f0f60a3e18b7a24642cd76ed327b9a1", # -> 0.6295, 5.785277e+06, flex, 6, 8 + "531d8b20ad7953e37f974f7d5b45e01c", # -> 0.6267, 5.382755e+06, flex, 4, 8 + "57d1dc4ee01cee3cf0385670e1741322", # -> 0.6211, 2.991667e+06, flex, 4, 3 + "05f70440f96aaf900cc613fb6a38610c", # -> 0.6092, 6.469393e+06, flex, 6, 10 + "9b86d4910bd95fb6d262c5e5983c14ad", # -> 0.6061, 4.349474e+06, flex, 4, 4 + "17b5fc2623904c1c66093c08e1b79f27", # -> 0.6027, 6.106181e+06, flex, 4, 10 + "e67bd735524454b8a261787dcf2a47eb", # -> 0.6000, 3.895603e+06, flex, 6, 4 + "fbe458505010a51dfc97863cfa4725ca", # -> 0.5971, 6.166594e+06, flex, 4, 10 + "56c8a5c06806146647506acf32634294", # -> 0.5963, 6.381624e+06, flex, 6, 10 + "0e8ab6e96cf978db32c2d7b7699cfe7f", # -> 0.5901, 2.823915e+06, flex, 8, 3 + "f0cd6ddce67c86d57bf5661a26b5bde2", # -> 0.5823, 4.080290e+06, flex, 8, 4 + "9e9f38b272165d42a0528ebdf9027f1c", # -> 0.5815, 3.174854e+06, flex, 4, 3 + "4cc609a2bb8c5efa6791c32ea349850a", # -> 0.5778, 5.486881e+06, flex, 4, 8 + "33eeff2627c8868d784639522b1eb4f1", # -> 0.5747, 2.619111e+06, flex, 8, 3 + "7aec249371301c815c3eead824c6f7b1", # -> 0.5738, 7.557755e+06, flex, 6, 16 + "abc9e0d7b65f1070bea9dfafa919f90f", # -> 0.5725, 5.817821e+06, flex, 6, 8 + "90a9560d3a79b5ae23440476b04d9561", # -> 0.5704, 6.553902e+06, flex, 8, 10 + "83973c46451c905ae0352fea31cd0df8", # -> 0.5676, 7.421917e+06, flex, 8, 16 + "6a405a2cf4eb6ece8241296f29b52aad", # -> 0.5637, 2.873761e+06, flex, 6, 3 + "bcaf7d4fe4b1a83c3d16efe2f6e4d967", # -> 0.5615, 5.767932e+06, flex, 8, 8 + "d86af65d32bbb56f2eca4d54a8bdaeeb", # -> 0.5529, 7.608056e+06, flex, 8, 16 + "a782864f124987e758d7911279c2b7cb", # -> 0.5522, 2.935374e+06, flex, 6, 3 + "57a7e8afe58c32f72af8ea86cd18ddbb", # -> 0.5511, 4.148061e+06, flex, 6, 4 + "0dbadd053f8161566f8bfd04e29f167b", # -> 0.5500, 3.121372e+06, flex, 4, 3 + "03b75598bd4a4799823c4ac80dad72d1", # -> 0.5483, 7.589383e+06, flex, 6, 16 + "77093fa86e3ac8b23d13065d8645d019", # -> 0.5458, 6.490005e+06, flex, 8, 10 + "71d583b85d081e1e93bd75b836c83de6", # -> 0.5402, 2.819020e+06, flex, 8, 2 + "36d5275416ed73b04c6952c4276c083d", # -> 0.5292, 4.092483e+06, flex, 8, 4 + "b5bceb9302a3df3a2771deb7d0edd4c8", # -> 0.5222, 7.549662e+06, flex, 8, 16 + "36d35f39f535e4aaa9cb5da438c8d903", # -> 0.5154, 2.768778e+06, flex, 6, 2 + "a519ef258d54600ea6920c4788a6280b", # -> 0.5086, 2.802222e+06, flex, 8, 2 + "513a1c16282dec9f124b9257bbb28177", # -> 0.5075, 5.524247e+06, flex, 4, 8 + "8894cc71801b352192f5759cf887d6e4", # -> 0.5066, 2.754725e+06, flex, 6, 2 + "1940550b5b9a07ce68968093723ef697", # -> 0.5053, 6.330552e+06, flex, 8, 10 + "85444b910411afd5676269013fce39e6", # -> 0.4950, 2.536435e+06, flex, 4, 2 + "1a704da76414aa5c50b9316544f50364", # -> 0.4802, 2.524790e+06, flex, 4, 2 + "4b746c04189fe0077f7938802ac24dd4", # -> 0.4729, 3.983884e+06, flex, 8, 4 + "7567c93fa1089f5cedc348292372ceb1", # -> 0.4702, 2.734160e+06, flex, 8, 2 + "644bad7c98a5b9cb6985cb97d011c8f3", # -> 0.4542, 4.932631e+06, flex, 8, 6 + "d38eaafd8b59ce694bd77c959b2c1e68", # -> 0.4036, 5.795405e+06, flex, 8, 8 + "f99a35d5bbf685c7089d7519291b5c0f", # -> 0.3773, 2.633205e+06, flex, 4, 2 + "ff48b26827e51e5a9e98b5e73ced1c98", # -> 0.3749, 4.967528e+06, flex, 8, 6 + "b9815d8e206f5e7e7651761c998283e2", # -> 0.3673, 5.903986e+06, flex, 6, 8 + "2e2c5d82931665495de2f92f4af6a095", # -> 0.3622, 2.794733e+06, flex, 6, 2 + "dbdb4f07f3f92b592762aec1a402b14f", # -> 0.3552, 2.728159e+06, flex, 6, 3 + "f33fc387a8c608886559ac95b3e4f7ce", # -> 0.3458, 4.753085e+06, flex, 6, 6 + "66f7bfa092d65404f9a704e02c6e6f77", # -> 0.3375, 4.760287e+06, flex, 8, 6 + "1af4b0115d6a08698fbfb4114a770489", # -> 0.3331, 6.535710e+06, flex, 6, 10 + "0f3f929d0d9b0328f5e93ce11ea73b76", # -> 0.1000, 3.965023e+06, flex, 4, 4 + "049dca947754753b7be1882fa3e5f0df", # -> 0.1000, 3.978452e+06, flex, 4, 6 + "a8facc8acb1e1e2af5009a2d107a1c74", # -> 0.1000, 4.142553e+06, flex, 4, 6 + "14ec0f67754688eb30f47f432595d4fa", # -> 0.1000, 4.130849e+06, flex, 4, 4 + "478535a7bbb120ca3eee26c64c1a6fd6", # -> 0.6697, 2.715756e+06, flex, 6, 2 + "9d3cdf362377b77f2769cddfc2f06cf2", # -> 0.6670, 2.802477e+06, flex, 8, 3 + "8f70e90c6769dd3c9f44402acfec3606", # -> 0.1000, 3.948141e+06, flex, 4, 6 + "58756c3729dcedfeeab0fea628634e05", # -> 0.1000, 4.042809e+06, flex, 4, 4 + "ec39ccf1998a61cf388b6c64cf53e534", # -> 0.1000, 4.040190e+06, flex, 4, 6 + "7c93ffb859c056bb8d58a57ea731a5b6", # -> 0.1000, 3.956951e+06, flex, 4, 6 + "5c58106ae695dc7842cee914198213ce", # -> 0.1000, 3.999102e+06, flex, 4, 4 + "66eb61bd460185ebb3a0e7e0903998d8", # -> 0.1000, 3.915104e+06, flex, 4, 4 + "c26c75797cc5698524c128b2c03d71ad", # -> 0.6699, 4.936011e+06, flex, 6, 6 + "1b5f11c64a41bebe6ecf86c89aec78e7", # -> 0.6521, 2.760852e+06, flex, 6, 2 + "e8e38b72f113ae04a4b26c4c262d7fd2", # -> 0.6504, 4.038943e+06, flex, 6, 4 + "936c04b9a6f211742285c459cc366134", # -> 0.6487, 2.625230e+06, flex, 8, 2 + "654b17e55ed66715c84161e8f7dbec28", # -> 0.1000, 4.271655e+06, flex, 4, 4 + "e5509196455a82fed7f194fd53f0e4c3", # -> 0.1000, 3.883347e+06, flex, 4, 6 + "739b8f45159088a1cbfff30f92e29a59", # -> 0.5141, 2.406360e+06, flex, 6, 3 + "fe398b8e7dfdc1cb8c71d2183a84de07", # -> 0.1000, 3.996849e+06, flex, 4, 4 + "c8a4f191f560ea10931775d0a8320c08", # -> 0.1000, 3.959836e+06, flex, 4, 6 + "04ccc689dc66e77aa8ecd339281c5ff0", # -> 0.1000, 4.092232e+06, flex, 4, 6 + "bab2a48cbef368310b076926701822a3", # -> 0.1000, 4.103027e+06, flex, 4, 4 } experiments = [ exp for exp in experiments if not any(h in blacklist for h in exp) @@ -216,12 +477,16 @@ def _collect_paths(node, path): # 3) make a DataFrame experiments_df = pd.DataFrame(experiments_data) + print(experiments_df.columns) print( experiments_df[ [ "qat_accuracy", "qat_complexity", "qat_hash", + "quantization_parameters_kernel_1_type", + "quantization_parameters_kernel_1_bits", + "quantization_parameters_kernel_1_n_levels", ] ].sort_values(by=["qat_accuracy"], ascending=False) ) @@ -325,9 +590,7 @@ def _collect_paths(node, path): count_cols = [f"{m}_count" for m in metrics] counts.columns = hyperparam_cols + count_cols row_uniques = counts[count_cols].nunique(axis=1) - assert ( - row_uniques == 1 - ).all(), "❌ Not all metric‐counts agree per group!" + assert (row_uniques == 1).all(), "Not all metric‐counts agree per group!" counts["count"] = counts[count_cols[0]] counts = counts[hyperparam_cols + ["count"]] stats = stats.merge(counts, on=hyperparam_cols, how="left") @@ -449,3 +712,55 @@ def _collect_paths(node, path): plt.legend() plt.tight_layout() plt.savefig("complexity_vs_quantized_flex_stats.png", dpi=150) + + plt.figure(figsize=(6, 4)) + plt.scatter( + original_complexity_mean, + original_accuracy_mean, + color="red", + label="Original Model", + zorder=3, + ) + bits_list = sorted(stats["bits"].unique()) + for i, bits in enumerate(bits_list): + grp = stats[stats["bits"] == bits].sort_values("qat_complexity_mean") + plt.plot( + grp["qat_complexity_mean"], + grp["qat_accuracy_mean"], + marker=".", + linestyle="--", + color=cmap(i % 10), + label=f"{bits} bits", + zorder=3, + ) + plt.plot( + grp["qat_complexity_mean"], + grp["qat_accuracy_max"], + linestyle="-", + color=cmap(i % 10), + alpha=0.5, + zorder=2, + ) + plt.plot( + grp["qat_complexity_mean"], + grp["qat_accuracy_min"], + linestyle=":", + color=cmap(i % 10), + alpha=0.5, + zorder=2, + ) + add_horizontal_se_band( + plt.gca(), + original_accuracy_mean, + original_accuracy_se, + color="red", + ) + plt.xscale("log") + plt.xlabel("Quantized Complexity (Kbits)") + plt.ylabel("Quantized Accuracy") + plt.ylim([0.6, 0.75]) + plt.xlim([xmin, xmax]) + plt.grid(which="both", linestyle="--", linewidth=0.5, alpha=0.6) + plt.legend() + plt.tight_layout() + plt.savefig("complexity_vs_quantized_flex_stats2.png", dpi=150)