From 5a583ac7639e7f5775588801f350691483537ae0 Mon Sep 17 00:00:00 2001 From: Omkar Date: Wed, 7 Jan 2026 13:50:02 +0000 Subject: [PATCH] Add an example for running ARC-AGI-2 tasks using OpenEvolve and "event-based" early stopping functionality --- examples/arc_benchmark/README.md | 186 ++++++++++++++ examples/arc_benchmark/base_config.yaml | 74 ++++++ examples/arc_benchmark/config.yaml | 228 ++++++++++++++++++ examples/arc_benchmark/evaluator.py | 220 +++++++++++++++++ examples/arc_benchmark/generate_config.py | 62 +++++ .../arc_benchmark/images/Evolved task.png | Bin 0 -> 198868 bytes examples/arc_benchmark/images/example.png | Bin 0 -> 265602 bytes examples/arc_benchmark/initial_program.py | 42 ++++ .../evaluation_task_0/best/best_program.py | 107 ++++++++ .../best/best_program_info.json | 25 ++ .../post_evolution_evaluation_result.json | 10 + .../checkpoint_100/best_program.py | 107 ++++++++ .../checkpoint_100/best_program_info.json | 25 ++ .../checkpoints/checkpoint_100/metadata.json | 1 + .../90c2a0c2-e3bd-4aa4-9bdc-1ab1b9326f97.json | 1 + .../ce48590c-4448-45b9-83f4-9e0a85424033.json | 1 + examples/arc_benchmark/post_evolution_eval.py | 119 +++++++++ examples/arc_benchmark/run_evolution.sh | 17 ++ openevolve/process_parallel.py | 76 +++--- 19 files changed, 1272 insertions(+), 29 deletions(-) create mode 100644 examples/arc_benchmark/README.md create mode 100644 examples/arc_benchmark/base_config.yaml create mode 100644 examples/arc_benchmark/config.yaml create mode 100644 examples/arc_benchmark/evaluator.py create mode 100644 examples/arc_benchmark/generate_config.py create mode 100644 examples/arc_benchmark/images/Evolved task.png create mode 100644 examples/arc_benchmark/images/example.png create mode 100644 examples/arc_benchmark/initial_program.py create mode 100644 examples/arc_benchmark/outputs/evaluation_task_0/best/best_program.py create mode 100644 examples/arc_benchmark/outputs/evaluation_task_0/best/best_program_info.json create mode 100644 examples/arc_benchmark/outputs/evaluation_task_0/best/post_evolution_evaluation_result.json create mode 100644 examples/arc_benchmark/outputs/evaluation_task_0/checkpoints/checkpoint_100/best_program.py create mode 100644 examples/arc_benchmark/outputs/evaluation_task_0/checkpoints/checkpoint_100/best_program_info.json create mode 100644 examples/arc_benchmark/outputs/evaluation_task_0/checkpoints/checkpoint_100/metadata.json create mode 100644 examples/arc_benchmark/outputs/evaluation_task_0/checkpoints/checkpoint_100/programs/90c2a0c2-e3bd-4aa4-9bdc-1ab1b9326f97.json create mode 100644 examples/arc_benchmark/outputs/evaluation_task_0/checkpoints/checkpoint_100/programs/ce48590c-4448-45b9-83f4-9e0a85424033.json create mode 100644 examples/arc_benchmark/post_evolution_eval.py create mode 100755 examples/arc_benchmark/run_evolution.sh diff --git a/examples/arc_benchmark/README.md b/examples/arc_benchmark/README.md new file mode 100644 index 000000000..d663f7a11 --- /dev/null +++ b/examples/arc_benchmark/README.md @@ -0,0 +1,186 @@ +# ARC Benchmark example + +This example demonstrates how one can use OpenEvolve to solve tasks from the [ARC-AGI benchmark](https://arcprize.org/) + +## Problem Description + +At the core of ARC-AGI benchmark design is the principle of "Easy for Humans, Hard for AI." + +In each task, you are provided with a few "train" examples consisting of input-output grid pairs. These pairs have a common underlying transformation that maps the inputs to the outputs. Your objective is to learn this underlying transformation and successfully apply it to the test input(s). You are allowed to make 2 attempts and is any one of them is 100% matching the expected output, you have "passed". This metric is also known as "pass@2 accuracy". Below is an example of such a task ([Task 00576224](https://arcprize.org/tasks/00576224/)). For more examples and information, refer to the [ARC-AGI benchmark](https://arcprize.org/) website. + + +![ARC example task (Task 00576224)](./images/example.png) + +## Getting Started + +Download the arc-prize-2025 dataset from [Kaggle](https://www.kaggle.com/competitions/arc-prize-2025/data). + +Set the correct dataset root and API key in `examples/arc_benchmark/run_evolution.sh` by editing the lines: +```bash +export OPENAI_API_KEY="your-gemini-api-key" +export DATA_ROOT="../../data/arc-prize-2025" +``` + +If you want to use the 'training' or 'test' ARC tasks instead of the default 'evaluation' tasks, edit the following lines in `examples/arc_benchmark/run_evolution.sh` +```bash +TASK_FILE="evaluation" # Options: training, evaluation, test (default: evaluation) +... +export ARC_TASK_FILE=$TASK_FILE +``` + +To run this example, with default task (Task 0 from arc-agi_evaluation_challenges.json): + +```bash +cd examples/arc_benchmark +chmod +x ./run_evolution.sh +./run_evolution.sh 0 # Replace the 0 with your favorite task number +``` +The order of Task IDs is the same as the order on [this link](https://arcprize.org/tasks/). ('evaluation' set Task 0 = Task ID 0934a4d8) + +## Example Task 0934a4d8 + +![ARC example task (Task 00576224)](./images/Evolved%20task.png) + +Base Gemini-3-Pro fails to solve this task (https://arcprize.org/tasks/0934a4d8/) + +After just 2 iterations of OpenEvolve using `examples/arc_benchmark/initial_program.py` as a seed program, it manages to discover the solution in the following python program: + +```python +# EVOLVE-BLOCK-START + +import numpy as np + +def transform_grid_attempt_1(grid): + """ + Transformation logic: + 1. Identify the bounding box of the '8' values (mask) in the grid. + 2. The output grid has the same dimensions as this bounding box. + 3. For each cell (r, c) in the bounding box: + a. Calculate the vertically symmetric row: target_r = (Height + 1) - r. + If target_r is valid and grid[target_r, c] is not 8, use it. + b. Otherwise, use the diagonally transposed position: grid[c, r]. + """ + arr = _validate_grid(grid) + rows, cols = np.where(arr == 8) + + if len(rows) == 0: + return arr + + min_r, max_r = np.min(rows), np.max(rows) + min_c, max_c = np.min(cols), np.max(cols) + + height = max_r - min_r + 1 + width = max_c - min_c + 1 + + out = np.zeros((height, width), dtype=np.int32) + + N = arr.shape[0] + # Reflection constant determined to be N + 1 (31 for 30x30) + reflection_constant = N + 1 + + for r in range(min_r, max_r + 1): + for c in range(min_c, max_c + 1): + target_r = reflection_constant - r + + val = 8 + if 0 <= target_r < N: + val = arr[target_r, c] + + if val == 8: + # Fallback to diagonal transpose + # Ensure indices are within bounds (though for square grids they should be) + if 0 <= c < N and 0 <= r < arr.shape[1]: + val = arr[c, r] + + out[r - min_r, c - min_c] = val + + return out + +def transform_grid_attempt_2(grid): + """ + Similar to attempt 1 but with an additional fallback strategy. + Strategies: + 1. Vertical reflection: grid[31-r, c] + 2. Diagonal transpose: grid[c, r] + 3. Horizontal reflection: grid[r, 31-c] + """ + arr = _validate_grid(grid) + rows, cols = np.where(arr == 8) + + if len(rows) == 0: + return arr + + min_r, max_r = np.min(rows), np.max(rows) + min_c, max_c = np.min(cols), np.max(cols) + + out = np.zeros((max_r - min_r + 1, max_c - min_c + 1), dtype=np.int32) + N = arr.shape[0] + M = arr.shape[1] + + for r in range(min_r, max_r + 1): + for c in range(min_c, max_c + 1): + val = 8 + + # 1. Vertical reflection + tr = (N + 1) - r + if 0 <= tr < N: + val = arr[tr, c] + + # 2. Diagonal transpose + if val == 8: + if 0 <= c < N and 0 <= r < M: + val = arr[c, r] + + # 3. Horizontal reflection + if val == 8: + tc = (M + 1) - c + if 0 <= tc < M: + val = arr[r, tc] + + out[r - min_r, c - min_c] = val + + return out + +# EVOLVE-BLOCK-END +``` + +Both the attempts of the solution successfully solve all the train examples as well as the test example. The relevant output files are `examples/arc_benchmark/outputs/evaluation_task_0/best/best_program_info.json` and `examples/arc_benchmark/outputs/evaluation_task_0/best/post_evolution_evaluation_result.json`. + +```json +{ + "id": "ce48590c-4448-45b9-83f4-9e0a85424033", + "generation": 1, + "iteration": 2, + "timestamp": 1767790991.5850093, + "parent_id": "90c2a0c2-e3bd-4aa4-9bdc-1ab1b9326f97", + "metrics": { + "runs_successfully": 1.0, + "combined_score": 1.0, + "train_example_0_pass_at_2": 1, + "train_example_0_attempt_0": true, + "train_example_0_attempt_1": true, + "train_example_1_pass_at_2": 1, + "train_example_1_attempt_0": true, + "train_example_1_attempt_1": true, + "train_example_2_pass_at_2": 1, + "train_example_2_attempt_0": true, + "train_example_2_attempt_1": true, + "train_example_3_pass_at_2": 1, + "train_example_3_attempt_0": true, + "train_example_3_attempt_1": true + }, + "language": "python", + "saved_at": 1767791374.6249106 +} + +{ + "metrics": { + "runs_successfully": 1.0, + "combined_score": 1.0, + "test_example_0_pass_at_2": 1, + "test_example_0_attempt_0": true, + "test_example_0_attempt_1": true + }, + "artifacts": {} +} +``` diff --git a/examples/arc_benchmark/base_config.yaml b/examples/arc_benchmark/base_config.yaml new file mode 100644 index 000000000..cda8033dd --- /dev/null +++ b/examples/arc_benchmark/base_config.yaml @@ -0,0 +1,74 @@ +# Configuration for HuggingFace prompt optimization +# Based on optimized settings from config2.yaml + +# General settings +max_iterations: 100 +checkpoint_interval: 10 + +# LLM configuration +llm: + api_base: "https://generativelanguage.googleapis.com/v1beta/openai/" + models: + - name: "gemini-3-pro-preview" + timeout: 3000 + # optional knobs (names depend on the example config) + temperature: 0.7 + max_tokens: 32768 + top_p: 0.95 + +# Prompt Configuration - Optimal settings discovered +prompt: + # System message for prompt evolution + system_message: | + You are participating in a puzzle solving competition. You are an expert at solving puzzles. + + Find the common pattern that transforms each input grid into its corresponding output grid... + + Your task is to write a python function that transforms each input grid into its corresponding output grid. This function must: + - Apply consistently to ALL training examples + - Be general enough to work on new test cases + - Be intuitive and easy to understand + - Apply the pattern without referencing specific example numbers + + You are provided the following training example grids: + In 0 - [[3, 5, 3, 3, 6, 6, 5, 4, 1, 4, 9, 9, 4, 3, 9, 9, 9, 9, 3, 4, 9, 9, 4, 1, 4, 5, 6, 6, 3, 3], [5, 3, 3, 3, 6, 6, 4, 5, 4, 1, 9, 9, 3, 4, 9, 1, 1, 9, 4, 3, 9, 9, 1, 4, 5, 4, 6, 6, 3, 3], [1, 1, 3, 5, 5, 4, 6, 6, 9, 1, 1, 4, 9, 9, 4, 5, 5, 4, 9, 9, 4, 1, 1, 9, 6, 6, 4, 5, 5, 3], [1, 1, 5, 3, 4, 5, 6, 6, 1, 9, 4, 1, 9, 1, 4, 4, 4, 4, 1, 9, 1, 4, 9, 1, 6, 6, 5, 4, 3, 5], [6, 9, 9, 9, 3, 5, 3, 3, 4, 3, 9, 9, 9, 2, 6, 9, 9, 6, 2, 9, 9, 9, 3, 4, 3, 3, 5, 3, 9, 9], [9, 6, 9, 9, 5, 3, 3, 3, 3, 4, 9, 1, 9, 9, 9, 6, 6, 9, 9, 9, 1, 9, 4, 3, 3, 3, 3, 5, 9, 9], [9, 9, 6, 9, 1, 1, 3, 5, 9, 9, 4, 4, 6, 9, 9, 2, 2, 9, 9, 6, 4, 4, 9, 9, 5, 3, 1, 1, 9, 6], [9, 9, 9, 6, 1, 1, 5, 3, 9, 1, 5, 4, 9, 6, 9, 9, 9, 9, 6, 9, 4, 5, 1, 9, 3, 5, 1, 1, 6, 9], [1, 4, 9, 1, 4, 3, 9, 9, 5, 5, 7, 2, 4, 3, 2, 4, 4, 2, 3, 4, 2, 7, 5, 5, 9, 9, 3, 4, 1, 9], [4, 1, 1, 9, 3, 4, 9, 1, 4, 5, 2, 7, 3, 4, 4, 2, 2, 4, 4, 3, 7, 2, 5, 4, 1, 9, 4, 3, 9, 1], [9, 9, 1, 4, 9, 9, 4, 5, 6, 4, 5, 5, 2, 4, 4, 3, 3, 4, 4, 2, 5, 5, 4, 6, 5, 4, 9, 9, 4, 1], [9, 9, 4, 1, 9, 1, 4, 4, 4, 5, 4, 5, 4, 2, 3, 4, 4, 3, 2, 4, 5, 4, 5, 4, 4, 4, 1, 9, 1, 4], [4, 3, 9, 9, 9, 9, 6, 9, 5, 9, 7, 7, 5, 5, 7, 2, 2, 7, 5, 5, 7, 7, 9, 5, 9, 6, 9, 9, 9, 9], [3, 4, 9, 1, 2, 9, 9, 6, 9, 5, 7, 7, 4, 5, 2, 7, 7, 2, 5, 4, 7, 7, 5, 9, 6, 9, 9, 2, 1, 9], [9, 9, 4, 4, 6, 9, 9, 9, 7, 7, 5, 9, 5, 4, 5, 5, 5, 5, 4, 5, 9, 5, 7, 7, 9, 8, 8, 8, 8, 4], [9, 1, 5, 4, 9, 6, 2, 9, 7, 7, 9, 5, 4, 6, 4, 5, 5, 4, 6, 4, 5, 9, 7, 7, 9, 8, 8, 8, 8, 5], [9, 1, 5, 4, 9, 6, 2, 9, 7, 7, 9, 5, 4, 6, 4, 5, 5, 4, 6, 4, 5, 9, 7, 7, 9, 8, 8, 8, 8, 5], [9, 9, 4, 4, 6, 9, 9, 9, 7, 7, 5, 9, 5, 4, 5, 5, 5, 5, 4, 5, 9, 5, 7, 7, 9, 8, 8, 8, 8, 4], [3, 4, 9, 1, 2, 9, 9, 6, 9, 5, 7, 7, 4, 5, 2, 7, 7, 2, 5, 4, 7, 7, 5, 9, 6, 8, 8, 8, 8, 9], [4, 3, 9, 9, 9, 9, 6, 9, 5, 9, 7, 7, 5, 5, 7, 2, 2, 7, 5, 5, 7, 7, 9, 5, 9, 8, 8, 8, 8, 9], [9, 9, 4, 1, 9, 1, 4, 4, 4, 5, 4, 5, 4, 2, 3, 4, 4, 3, 2, 4, 5, 4, 5, 4, 4, 8, 8, 8, 8, 4], [9, 9, 1, 4, 9, 9, 4, 5, 6, 4, 5, 5, 2, 4, 4, 3, 3, 4, 4, 2, 5, 5, 4, 6, 5, 8, 8, 8, 8, 1], [4, 1, 1, 9, 3, 4, 9, 1, 4, 5, 2, 7, 3, 4, 4, 2, 2, 4, 4, 3, 7, 2, 5, 4, 1, 8, 8, 8, 8, 1], [1, 4, 9, 1, 4, 3, 9, 9, 5, 5, 7, 2, 4, 3, 2, 4, 4, 2, 3, 4, 2, 7, 5, 5, 9, 9, 3, 4, 1, 9], [9, 9, 9, 6, 1, 1, 5, 3, 9, 1, 5, 4, 9, 6, 9, 9, 9, 9, 6, 9, 4, 5, 1, 9, 3, 5, 1, 1, 6, 9], [9, 9, 6, 9, 1, 1, 3, 5, 9, 9, 4, 4, 6, 9, 9, 2, 2, 9, 9, 6, 4, 4, 9, 9, 5, 3, 1, 1, 9, 6], [9, 6, 9, 9, 5, 3, 3, 3, 3, 4, 9, 1, 9, 9, 9, 6, 6, 9, 9, 9, 1, 9, 4, 3, 3, 3, 3, 5, 9, 9], [6, 9, 9, 9, 3, 5, 3, 3, 4, 3, 9, 9, 9, 2, 6, 9, 9, 6, 2, 9, 9, 9, 3, 4, 3, 3, 5, 3, 9, 9], [1, 1, 5, 3, 4, 5, 6, 6, 1, 9, 4, 1, 9, 1, 4, 4, 4, 4, 1, 9, 1, 4, 9, 1, 6, 6, 5, 4, 3, 5], [1, 1, 3, 5, 5, 4, 6, 6, 9, 1, 1, 4, 9, 9, 4, 5, 5, 4, 9, 9, 4, 1, 1, 9, 6, 6, 4, 5, 5, 3]] + Out 0 - [[9, 9, 6, 4], [2, 6, 9, 4], [2, 6, 9, 4], [9, 9, 6, 4], [9, 9, 2, 1], [6, 9, 9, 9], [4, 1, 9, 1], [4, 9, 9, 4], [9, 4, 3, 9]] + In 1 - [[9, 9, 2, 3, 4, 4, 7, 5, 3, 3, 6, 6, 3, 5, 6, 4, 4, 6, 5, 3, 6, 6, 3, 3, 5, 7, 4, 4, 3, 2], [7, 9, 3, 5, 4, 4, 5, 7, 3, 3, 6, 6, 6, 3, 4, 6, 6, 4, 3, 6, 6, 6, 3, 3, 7, 5, 4, 4, 5, 3], [3, 2, 9, 9, 7, 5, 4, 4, 4, 1, 3, 3, 6, 4, 4, 7, 7, 4, 4, 6, 3, 8, 8, 8, 8, 8, 5, 7, 9, 9], [2, 3, 7, 9, 5, 7, 4, 4, 1, 4, 3, 3, 4, 6, 7, 4, 4, 7, 6, 4, 3, 8, 8, 8, 8, 8, 7, 5, 9, 7], [7, 7, 9, 3, 9, 9, 5, 3, 3, 6, 6, 4, 6, 7, 9, 9, 9, 9, 7, 6, 4, 8, 8, 8, 8, 8, 9, 9, 3, 9], [7, 7, 3, 9, 7, 9, 3, 2, 5, 3, 4, 6, 2, 6, 9, 9, 9, 9, 6, 2, 6, 8, 8, 8, 8, 8, 9, 7, 9, 3], [9, 3, 7, 7, 3, 2, 9, 9, 6, 4, 4, 7, 9, 2, 6, 7, 7, 6, 2, 9, 7, 4, 4, 6, 9, 9, 2, 3, 7, 7], [3, 9, 7, 7, 2, 3, 7, 9, 4, 6, 7, 4, 2, 9, 2, 6, 6, 2, 9, 2, 4, 7, 6, 4, 9, 7, 3, 2, 7, 7], [3, 3, 4, 1, 3, 5, 6, 4, 2, 4, 7, 7, 1, 6, 7, 2, 2, 7, 6, 1, 7, 7, 4, 2, 4, 6, 5, 3, 1, 4], [3, 3, 1, 4, 6, 3, 4, 6, 2, 2, 7, 1, 6, 1, 2, 7, 7, 2, 1, 6, 1, 7, 2, 2, 6, 4, 3, 6, 4, 1], [6, 6, 3, 3, 6, 4, 4, 7, 1, 1, 2, 4, 7, 2, 1, 6, 6, 1, 2, 7, 4, 2, 1, 1, 7, 4, 4, 6, 3, 3], [6, 6, 3, 3, 4, 6, 7, 4, 1, 3, 2, 2, 2, 7, 6, 1, 1, 6, 7, 2, 2, 2, 3, 1, 4, 7, 6, 4, 3, 3], [3, 6, 6, 4, 6, 2, 9, 2, 9, 9, 9, 7, 2, 4, 1, 7, 7, 1, 4, 2, 7, 9, 9, 9, 2, 9, 2, 6, 4, 6], [5, 3, 4, 6, 7, 6, 2, 9, 9, 9, 7, 9, 2, 2, 7, 7, 7, 7, 2, 2, 9, 7, 9, 9, 9, 2, 6, 7, 6, 4], [6, 4, 4, 7, 9, 9, 6, 2, 9, 7, 9, 9, 3, 1, 2, 4, 4, 2, 1, 3, 9, 9, 7, 9, 2, 6, 9, 9, 7, 4], [4, 6, 7, 4, 9, 9, 7, 6, 7, 9, 9, 9, 1, 1, 2, 2, 2, 2, 1, 1, 9, 9, 9, 7, 6, 7, 9, 9, 4, 7], [4, 6, 7, 4, 9, 9, 7, 6, 7, 9, 9, 9, 1, 1, 2, 2, 2, 2, 1, 1, 9, 9, 9, 7, 6, 7, 9, 9, 4, 7], [6, 4, 4, 7, 9, 9, 6, 2, 9, 7, 9, 9, 3, 1, 2, 4, 4, 2, 1, 3, 9, 9, 7, 9, 2, 6, 9, 9, 7, 4], [5, 3, 4, 6, 7, 6, 2, 9, 9, 9, 7, 9, 2, 2, 7, 7, 7, 7, 2, 2, 9, 7, 9, 9, 9, 2, 6, 7, 6, 4], [3, 6, 6, 4, 6, 2, 9, 2, 9, 9, 9, 7, 2, 4, 1, 7, 7, 1, 4, 2, 7, 9, 9, 9, 2, 9, 2, 6, 4, 6], [6, 6, 3, 3, 4, 6, 7, 4, 1, 3, 2, 2, 2, 7, 6, 1, 1, 6, 7, 2, 2, 2, 3, 1, 4, 7, 6, 4, 3, 3], [6, 6, 3, 3, 6, 4, 4, 7, 1, 1, 2, 4, 7, 2, 1, 6, 6, 1, 2, 7, 4, 2, 1, 1, 7, 4, 4, 6, 3, 3], [3, 3, 1, 4, 6, 3, 4, 6, 2, 2, 7, 1, 6, 1, 2, 7, 7, 2, 1, 6, 1, 7, 2, 2, 6, 4, 3, 6, 4, 1], [3, 3, 4, 1, 3, 5, 6, 4, 2, 4, 7, 7, 1, 6, 7, 2, 2, 7, 6, 1, 7, 7, 4, 2, 4, 6, 5, 3, 1, 4], [3, 9, 7, 7, 2, 3, 7, 9, 4, 6, 7, 4, 2, 9, 2, 6, 6, 2, 9, 2, 4, 7, 6, 4, 9, 7, 3, 2, 7, 7], [9, 3, 7, 7, 3, 2, 9, 9, 6, 4, 4, 7, 9, 2, 6, 7, 7, 6, 2, 9, 7, 4, 4, 6, 9, 9, 2, 3, 7, 7], [7, 7, 3, 9, 7, 9, 3, 2, 5, 3, 4, 6, 2, 6, 9, 9, 9, 9, 6, 2, 6, 4, 3, 5, 2, 3, 9, 7, 9, 3], [7, 7, 9, 3, 9, 9, 5, 3, 3, 6, 6, 4, 6, 7, 9, 9, 9, 9, 7, 6, 4, 6, 6, 3, 3, 5, 9, 9, 3, 9], [2, 3, 7, 9, 5, 7, 4, 4, 1, 4, 3, 3, 4, 6, 7, 4, 4, 7, 6, 4, 3, 3, 4, 1, 4, 4, 7, 5, 9, 7], [3, 2, 9, 9, 7, 5, 4, 4, 4, 1, 3, 3, 6, 4, 4, 7, 7, 4, 4, 6, 3, 3, 1, 4, 4, 4, 5, 7, 9, 9]] + Out 1 - [[3, 1, 4, 4, 4], [3, 4, 1, 4, 4], [6, 6, 3, 3, 5], [4, 3, 5, 2, 3]] + In 2 - [[1, 9, 4, 4, 9, 9, 2, 7, 6, 6, 9, 9, 7, 6, 7, 2, 2, 7, 6, 7, 9, 9, 6, 6, 7, 2, 9, 9, 4, 4], [7, 1, 4, 4, 9, 9, 7, 2, 6, 6, 9, 9, 6, 7, 2, 7, 7, 2, 7, 6, 9, 9, 6, 6, 2, 7, 9, 9, 4, 4], [2, 7, 1, 9, 2, 7, 9, 9, 4, 4, 6, 6, 7, 2, 5, 1, 1, 5, 2, 7, 6, 6, 4, 4, 9, 9, 7, 2, 9, 1], [7, 2, 7, 1, 7, 2, 9, 9, 4, 4, 6, 6, 2, 7, 5, 5, 5, 5, 7, 2, 6, 6, 4, 4, 9, 9, 2, 7, 1, 7], [9, 6, 7, 2, 1, 9, 4, 4, 7, 6, 7, 2, 9, 2, 6, 4, 4, 6, 2, 9, 2, 7, 6, 7, 4, 4, 9, 1, 2, 7], [6, 9, 2, 7, 7, 1, 4, 4, 6, 7, 2, 7, 9, 9, 4, 6, 6, 4, 9, 9, 7, 2, 7, 6, 4, 4, 1, 7, 7, 2], [7, 2, 9, 6, 2, 7, 1, 9, 7, 2, 5, 5, 4, 5, 9, 2, 2, 9, 5, 4, 5, 5, 2, 7, 9, 1, 7, 2, 6, 9], [2, 7, 6, 9, 7, 2, 7, 1, 2, 7, 1, 5, 5, 4, 9, 9, 9, 9, 4, 5, 5, 1, 7, 2, 1, 7, 2, 7, 9, 6], [6, 6, 4, 4, 7, 6, 7, 2, 3, 7, 1, 4, 9, 7, 7, 6, 6, 7, 7, 9, 4, 1, 7, 3, 2, 7, 6, 7, 4, 4], [6, 6, 4, 4, 6, 7, 2, 7, 4, 3, 4, 4, 7, 9, 6, 7, 7, 6, 9, 7, 4, 4, 3, 4, 7, 2, 7, 6, 4, 4], [9, 9, 6, 6, 7, 2, 5, 1, 3, 7, 3, 7, 7, 6, 9, 7, 7, 9, 6, 7, 7, 3, 7, 3, 1, 5, 2, 7, 6, 6], [9, 9, 6, 6, 2, 7, 5, 5, 7, 7, 4, 3, 6, 7, 7, 9, 9, 7, 7, 6, 3, 4, 7, 7, 5, 5, 7, 2, 6, 6], [7, 6, 7, 2, 9, 9, 4, 5, 6, 6, 5, 9, 3, 7, 4, 4, 4, 4, 7, 3, 9, 5, 6, 6, 5, 4, 9, 9, 2, 7], [6, 7, 2, 7, 2, 9, 5, 4, 6, 6, 9, 5, 4, 3, 4, 1, 1, 4, 3, 4, 5, 9, 6, 6, 4, 5, 9, 2, 7, 2], [7, 2, 5, 5, 6, 4, 9, 9, 5, 9, 6, 6, 7, 7, 3, 7, 7, 3, 7, 7, 6, 6, 9, 5, 9, 9, 4, 6, 5, 5], [2, 7, 1, 5, 4, 6, 2, 9, 9, 5, 6, 6, 7, 3, 4, 3, 3, 4, 3, 7, 6, 6, 5, 9, 9, 2, 6, 4, 5, 1], [2, 7, 1, 5, 4, 6, 2, 9, 9, 5, 6, 6, 7, 3, 4, 3, 3, 4, 3, 7, 6, 6, 5, 9, 9, 2, 6, 4, 5, 1], [7, 2, 5, 5, 6, 4, 9, 9, 5, 9, 6, 6, 7, 7, 3, 7, 7, 3, 7, 7, 6, 6, 9, 5, 9, 9, 4, 6, 5, 5], [6, 7, 2, 7, 2, 9, 5, 4, 6, 6, 9, 5, 4, 3, 4, 1, 1, 4, 3, 4, 5, 9, 6, 6, 4, 5, 9, 2, 7, 2], [7, 6, 7, 2, 9, 9, 4, 5, 6, 6, 5, 9, 8, 8, 8, 8, 8, 8, 8, 3, 9, 5, 6, 6, 5, 4, 9, 9, 2, 7], [9, 9, 6, 6, 2, 7, 5, 5, 7, 7, 4, 3, 8, 8, 8, 8, 8, 8, 8, 6, 3, 4, 7, 7, 5, 5, 7, 2, 6, 6], [9, 9, 6, 6, 7, 2, 5, 1, 3, 7, 3, 7, 8, 8, 8, 8, 8, 8, 8, 7, 7, 3, 7, 3, 1, 5, 2, 7, 6, 6], [6, 6, 4, 4, 6, 7, 2, 7, 4, 3, 4, 4, 7, 9, 6, 7, 7, 6, 9, 7, 4, 4, 3, 4, 7, 2, 7, 6, 4, 4], [6, 6, 4, 4, 7, 6, 7, 2, 3, 7, 1, 4, 9, 7, 7, 6, 6, 7, 7, 9, 4, 1, 7, 3, 2, 7, 6, 7, 4, 4], [2, 7, 6, 9, 7, 2, 7, 1, 2, 7, 1, 5, 5, 4, 9, 9, 9, 9, 4, 5, 5, 1, 7, 2, 1, 7, 2, 7, 9, 6], [7, 2, 9, 6, 2, 7, 1, 9, 7, 2, 5, 5, 4, 5, 9, 2, 2, 9, 5, 4, 5, 5, 2, 7, 9, 1, 7, 2, 6, 9], [6, 9, 2, 7, 7, 1, 4, 4, 6, 7, 2, 7, 9, 9, 4, 6, 6, 4, 9, 9, 7, 2, 7, 6, 4, 4, 1, 7, 7, 2], [9, 6, 7, 2, 1, 9, 4, 4, 7, 6, 7, 2, 9, 2, 6, 4, 4, 6, 2, 9, 2, 7, 6, 7, 4, 4, 9, 1, 2, 7], [7, 2, 7, 1, 7, 2, 9, 9, 4, 4, 6, 6, 2, 7, 5, 5, 5, 5, 7, 2, 6, 6, 4, 4, 9, 9, 2, 7, 1, 7], [2, 7, 1, 9, 2, 7, 9, 9, 4, 4, 6, 6, 7, 2, 5, 1, 1, 5, 2, 7, 6, 6, 4, 4, 9, 9, 7, 2, 9, 1]] + Out 2 - [[3, 7, 4, 4, 4, 4, 7], [6, 7, 7, 9, 9, 7, 7], [7, 6, 9, 7, 7, 9, 6]] + In 3 - [[3, 1, 1, 9, 5, 6, 7, 1, 1, 4, 5, 7, 3, 9, 9, 1, 1, 9, 9, 3, 7, 5, 4, 1, 1, 7, 6, 5, 9, 1], [1, 3, 9, 5, 6, 5, 1, 7, 4, 1, 7, 5, 4, 3, 1, 3, 3, 1, 3, 4, 5, 7, 1, 4, 7, 1, 5, 6, 5, 9], [6, 9, 3, 1, 7, 1, 5, 6, 9, 9, 1, 4, 9, 1, 1, 4, 4, 1, 1, 9, 4, 1, 9, 9, 6, 5, 1, 7, 1, 3], [9, 1, 1, 3, 1, 7, 6, 5, 9, 9, 4, 1, 1, 3, 4, 1, 1, 4, 3, 1, 1, 4, 9, 9, 5, 6, 7, 1, 3, 1], [6, 6, 6, 7, 3, 1, 5, 9, 3, 4, 9, 1, 6, 7, 2, 5, 5, 2, 7, 6, 1, 9, 4, 3, 9, 5, 1, 3, 7, 6], [6, 6, 7, 6, 1, 3, 9, 1, 9, 3, 1, 3, 7, 6, 5, 2, 2, 5, 6, 7, 3, 1, 3, 9, 1, 9, 3, 1, 6, 7], [6, 7, 6, 6, 1, 9, 3, 1, 9, 1, 1, 4, 6, 9, 6, 7, 7, 6, 9, 6, 4, 1, 1, 9, 1, 3, 9, 1, 6, 6], [7, 6, 6, 6, 9, 6, 1, 3, 1, 3, 4, 1, 9, 6, 7, 6, 6, 7, 6, 9, 1, 4, 3, 1, 3, 1, 8, 8, 8, 8], [1, 4, 9, 9, 3, 9, 9, 1, 1, 1, 6, 1, 5, 2, 5, 5, 5, 5, 2, 5, 1, 6, 1, 1, 1, 9, 8, 8, 8, 8], [4, 1, 9, 9, 4, 3, 1, 3, 1, 1, 1, 6, 2, 5, 5, 5, 5, 5, 5, 2, 6, 1, 1, 1, 3, 1, 8, 8, 8, 8], [5, 7, 1, 4, 9, 1, 1, 4, 2, 2, 1, 1, 5, 5, 5, 2, 2, 5, 5, 5, 1, 1, 2, 2, 4, 1, 8, 8, 8, 8], [7, 5, 4, 1, 1, 3, 4, 1, 2, 1, 1, 1, 5, 5, 2, 5, 5, 2, 5, 5, 1, 1, 1, 2, 1, 4, 3, 1, 1, 4], [3, 4, 9, 1, 6, 7, 6, 9, 7, 6, 3, 3, 1, 1, 6, 1, 1, 6, 1, 1, 3, 3, 6, 7, 9, 6, 7, 6, 1, 9], [9, 3, 1, 3, 7, 6, 9, 6, 6, 7, 3, 3, 1, 1, 1, 6, 6, 1, 1, 1, 3, 3, 7, 6, 6, 9, 6, 7, 3, 1], [9, 1, 1, 4, 2, 5, 6, 7, 3, 3, 7, 6, 1, 2, 1, 1, 1, 1, 2, 1, 6, 7, 3, 3, 7, 6, 5, 2, 4, 1], [1, 3, 4, 1, 5, 2, 7, 6, 3, 3, 6, 7, 2, 2, 1, 1, 1, 1, 2, 2, 7, 6, 3, 3, 6, 7, 2, 5, 1, 4], [1, 3, 4, 1, 5, 2, 7, 6, 3, 3, 6, 7, 2, 2, 1, 1, 1, 1, 2, 2, 7, 6, 3, 3, 6, 7, 2, 5, 1, 4], [9, 1, 1, 4, 2, 5, 6, 7, 3, 3, 7, 6, 1, 2, 1, 1, 1, 1, 2, 1, 6, 7, 3, 3, 7, 6, 5, 2, 4, 1], [9, 3, 1, 3, 7, 6, 9, 6, 6, 7, 3, 3, 1, 1, 1, 6, 6, 1, 1, 1, 3, 3, 7, 6, 6, 9, 6, 7, 3, 1], [3, 4, 9, 1, 6, 7, 6, 9, 7, 6, 3, 3, 1, 1, 6, 1, 1, 6, 1, 1, 3, 3, 6, 7, 9, 6, 7, 6, 1, 9], [7, 5, 4, 1, 1, 3, 4, 1, 2, 1, 1, 1, 5, 5, 2, 5, 5, 2, 5, 5, 1, 1, 1, 2, 1, 4, 3, 1, 1, 4], [5, 7, 1, 4, 9, 1, 1, 4, 2, 2, 1, 1, 5, 5, 5, 2, 2, 5, 5, 5, 1, 1, 2, 2, 4, 1, 1, 9, 4, 1], [4, 1, 9, 9, 4, 3, 1, 3, 1, 1, 1, 6, 2, 5, 5, 5, 5, 5, 5, 2, 6, 1, 1, 1, 3, 1, 3, 4, 9, 9], [1, 4, 9, 9, 3, 9, 9, 1, 1, 1, 6, 1, 5, 2, 5, 5, 5, 5, 2, 5, 1, 6, 1, 1, 1, 9, 9, 3, 9, 9], [7, 6, 6, 6, 9, 6, 1, 3, 1, 3, 4, 1, 9, 6, 7, 6, 6, 7, 6, 9, 1, 4, 3, 1, 3, 1, 6, 9, 6, 6], [6, 7, 6, 6, 1, 9, 3, 1, 9, 1, 1, 4, 6, 9, 6, 7, 7, 6, 9, 6, 4, 1, 1, 9, 1, 3, 9, 1, 6, 6], [6, 6, 7, 6, 1, 3, 9, 1, 9, 3, 1, 3, 7, 6, 5, 2, 2, 5, 6, 7, 3, 1, 3, 9, 1, 9, 3, 1, 6, 7], [6, 6, 6, 7, 3, 1, 5, 9, 3, 4, 9, 1, 6, 7, 2, 5, 5, 2, 7, 6, 1, 9, 4, 3, 9, 5, 1, 3, 7, 6], [9, 1, 1, 3, 1, 7, 6, 5, 9, 9, 4, 1, 1, 3, 4, 1, 1, 4, 3, 1, 1, 4, 9, 9, 5, 6, 7, 1, 3, 1], [6, 9, 3, 1, 7, 1, 5, 6, 9, 9, 1, 4, 9, 1, 1, 4, 4, 1, 1, 9, 4, 1, 9, 9, 6, 5, 1, 7, 1, 3]] + Out 3 - [[6, 9, 6, 6], [9, 3, 9, 9], [3, 4, 9, 9], [1, 9, 4, 1]] + + You are also provided the test input that you have to succesfully transform into the output using your python code: + In Test 0 - [[4, 4, 1, 3, 5, 7, 7, 9, 6, 1, 6, 6, 4, 4, 7, 7, 7, 7, 4, 4, 6, 6, 1, 6, 9, 7, 7, 5, 3, 1], [4, 4, 3, 3, 7, 5, 9, 7, 6, 6, 6, 6, 4, 4, 7, 2, 2, 7, 4, 4, 6, 6, 6, 6, 7, 9, 5, 7, 3, 3], [3, 4, 4, 4, 7, 9, 5, 7, 5, 1, 6, 1, 7, 7, 9, 9, 9, 9, 7, 7, 1, 6, 1, 5, 7, 5, 9, 7, 4, 4], [4, 3, 4, 4, 9, 7, 7, 5, 1, 5, 6, 6, 7, 2, 1, 9, 9, 1, 2, 7, 6, 6, 5, 1, 5, 7, 7, 9, 4, 4], [9, 7, 7, 4, 4, 4, 3, 3, 4, 4, 7, 7, 9, 7, 3, 2, 2, 3, 7, 9, 7, 7, 4, 4, 3, 3, 4, 4, 4, 7], [7, 9, 4, 7, 4, 4, 3, 1, 4, 4, 7, 2, 7, 9, 2, 3, 3, 2, 9, 7, 2, 7, 4, 4, 1, 3, 4, 4, 7, 4], [7, 4, 9, 7, 3, 4, 4, 4, 7, 7, 9, 1, 7, 4, 9, 7, 7, 9, 4, 7, 1, 9, 7, 7, 4, 4, 4, 3, 7, 9], [4, 7, 7, 9, 4, 3, 4, 4, 7, 2, 9, 9, 4, 7, 7, 9, 9, 7, 7, 4, 9, 9, 2, 7, 4, 4, 3, 4, 9, 7], [6, 6, 5, 1, 4, 4, 7, 7, 7, 2, 2, 6, 4, 6, 2, 2, 2, 2, 6, 4, 6, 2, 2, 7, 7, 7, 4, 4, 1, 5], [1, 6, 1, 5, 4, 4, 7, 2, 3, 7, 6, 6, 6, 4, 2, 2, 2, 2, 4, 6, 6, 6, 7, 3, 2, 7, 4, 4, 5, 1], [6, 6, 6, 6, 7, 7, 9, 9, 9, 1, 7, 2, 2, 2, 4, 6, 6, 4, 2, 2, 2, 7, 1, 9, 9, 9, 7, 7, 6, 6], [6, 6, 1, 6, 7, 2, 1, 9, 1, 5, 3, 7, 2, 2, 6, 4, 4, 6, 2, 2, 7, 3, 5, 1, 9, 1, 2, 7, 6, 1], [4, 4, 7, 7, 9, 7, 7, 4, 9, 9, 1, 6, 7, 2, 6, 6, 6, 6, 2, 7, 6, 1, 9, 9, 4, 7, 7, 9, 7, 7], [4, 4, 7, 2, 7, 9, 4, 7, 9, 9, 6, 1, 3, 7, 6, 2, 2, 6, 7, 3, 1, 6, 9, 9, 7, 4, 9, 7, 2, 7], [8, 8, 8, 1, 3, 2, 9, 7, 1, 6, 9, 9, 5, 1, 7, 2, 2, 7, 1, 5, 9, 9, 6, 1, 7, 9, 2, 3, 1, 9], [8, 8, 8, 9, 2, 3, 7, 9, 6, 1, 9, 9, 1, 9, 3, 7, 7, 3, 9, 1, 9, 9, 1, 6, 9, 7, 3, 2, 9, 9], [8, 8, 8, 9, 2, 3, 7, 9, 6, 1, 9, 9, 1, 9, 3, 7, 7, 3, 9, 1, 9, 9, 1, 6, 9, 7, 3, 2, 9, 9], [8, 8, 8, 1, 3, 2, 9, 7, 1, 6, 9, 9, 5, 1, 7, 2, 2, 7, 1, 5, 9, 9, 6, 1, 7, 9, 2, 3, 1, 9], [8, 8, 8, 2, 7, 9, 4, 7, 9, 9, 6, 1, 3, 7, 6, 2, 2, 6, 7, 3, 1, 6, 9, 9, 7, 4, 9, 7, 2, 7], [8, 8, 8, 7, 9, 7, 7, 4, 9, 9, 1, 6, 7, 2, 6, 6, 6, 6, 2, 7, 6, 1, 9, 9, 4, 7, 7, 9, 7, 7], [8, 8, 8, 6, 7, 2, 1, 9, 1, 5, 3, 7, 2, 2, 6, 4, 4, 6, 2, 2, 7, 3, 5, 1, 9, 1, 2, 7, 6, 1], [8, 8, 8, 6, 7, 7, 9, 9, 9, 1, 7, 2, 2, 2, 4, 6, 6, 4, 2, 2, 2, 7, 1, 9, 9, 9, 7, 7, 6, 6], [8, 8, 8, 5, 4, 4, 7, 2, 3, 7, 6, 6, 6, 4, 2, 2, 2, 2, 4, 6, 6, 6, 7, 3, 2, 7, 4, 4, 5, 1], [6, 6, 5, 1, 4, 4, 7, 7, 7, 2, 2, 6, 4, 6, 2, 2, 2, 2, 6, 4, 6, 2, 2, 7, 7, 7, 4, 4, 1, 5], [4, 7, 7, 9, 4, 3, 4, 4, 7, 2, 9, 9, 4, 7, 7, 9, 9, 7, 7, 4, 9, 9, 2, 7, 4, 4, 3, 4, 9, 7], [7, 4, 9, 7, 3, 4, 4, 4, 7, 7, 9, 1, 7, 4, 9, 7, 7, 9, 4, 7, 1, 9, 7, 7, 4, 4, 4, 3, 7, 9], [7, 9, 4, 7, 4, 4, 3, 1, 4, 4, 7, 2, 7, 9, 2, 3, 3, 2, 9, 7, 2, 7, 4, 4, 1, 3, 4, 4, 7, 4], [9, 7, 7, 4, 4, 4, 3, 3, 4, 4, 7, 7, 9, 7, 3, 2, 2, 3, 7, 9, 7, 7, 4, 4, 3, 3, 4, 4, 4, 7], [4, 3, 4, 4, 9, 7, 7, 5, 1, 5, 6, 6, 7, 2, 1, 9, 9, 1, 2, 7, 6, 6, 5, 1, 5, 7, 7, 9, 4, 4], [3, 4, 4, 4, 7, 9, 5, 7, 5, 1, 6, 1, 7, 7, 9, 9, 9, 9, 7, 7, 1, 6, 1, 5, 7, 5, 9, 7, 4, 4]] + + Looking carefully at the train input-output pairs, understand the transformation and modify PYTHON functions to generate 2 attempts to solve the task. These python functions will sequentially take each input grid as a numpy array and output the transformed grid as a numpy array. Your solution will then be evaluated against the ground truth output grid. + Remember to only output the modified python functions as your solution. + +# Database configuration +database: + population_size: 50 + archive_size: 20 + num_islands: 3 + elite_selection_ratio: 0.2 + exploitation_ratio: 0.7 + + # embedding_model: "text-embedding-3-small" + similarity_threshold: 0.99 + +# Evaluator Configuration +evaluator: + timeout: 180000 + max_retries: 3 + parallel_evaluations: 4 + cascade_evaluation: false + +# Evolution settings +diff_based_evolution: true +max_code_length: 50000 + +# Early stopping settings +early_stopping_patience: -1 # Stop after N iterations without improvement (null = disabled) +convergence_threshold: 1.0 # Minimum improvement required to reset patience counter +early_stopping_metric: "combined_score" # Metric to track for early stopping diff --git a/examples/arc_benchmark/config.yaml b/examples/arc_benchmark/config.yaml new file mode 100644 index 000000000..ddc05bf98 --- /dev/null +++ b/examples/arc_benchmark/config.yaml @@ -0,0 +1,228 @@ +checkpoint_interval: 10 +convergence_threshold: 1.0 +database: + archive_size: 20 + elite_selection_ratio: 0.2 + exploitation_ratio: 0.7 + num_islands: 3 + population_size: 50 + similarity_threshold: 0.99 +diff_based_evolution: true +early_stopping_metric: combined_score +early_stopping_patience: -1 +evaluator: + cascade_evaluation: false + max_retries: 3 + parallel_evaluations: 4 + timeout: 180000 +llm: + api_base: https://generativelanguage.googleapis.com/v1beta/openai/ + max_tokens: 32768 + models: + - name: gemini-3-pro-preview + temperature: 0.7 + timeout: 3000 + top_p: 0.95 +max_code_length: 50000 +max_iterations: 100 +prompt: + system_message: "You are participating in a puzzle solving competition. You are\ + \ an expert at solving puzzles.\nFind the common pattern that transforms each\ + \ input grid into its corresponding output grid...\n\nYour task is to write a\ + \ python function that transforms each input grid into its corresponding output\ + \ grid. This function must:\n- Apply consistently to ALL training examples\n-\ + \ Be general enough to work on new test cases \n- Be intuitive and easy to understand\n\ + - Apply the pattern without referencing specific example numbers\n\nYou are provided\ + \ the following training example grids:\nIn 0 - [[3, 5, 3, 3, 6, 6, 5, 4, 1, 4,\ + \ 9, 9, 4, 3, 9, 9, 9, 9, 3, 4, 9, 9, 4, 1, 4, 5, 6, 6, 3, 3], [5, 3, 3, 3, 6,\ + \ 6, 4, 5, 4, 1, 9, 9, 3, 4, 9, 1, 1, 9, 4, 3, 9, 9, 1, 4, 5, 4, 6, 6, 3, 3],\ + \ [1, 1, 3, 5, 5, 4, 6, 6, 9, 1, 1, 4, 9, 9, 4, 5, 5, 4, 9, 9, 4, 1, 1, 9, 6,\ + \ 6, 4, 5, 5, 3], [1, 1, 5, 3, 4, 5, 6, 6, 1, 9, 4, 1, 9, 1, 4, 4, 4, 4, 1, 9,\ + \ 1, 4, 9, 1, 6, 6, 5, 4, 3, 5], [6, 9, 9, 9, 3, 5, 3, 3, 4, 3, 9, 9, 9, 2, 6,\ + \ 9, 9, 6, 2, 9, 9, 9, 3, 4, 3, 3, 5, 3, 9, 9], [9, 6, 9, 9, 5, 3, 3, 3, 3, 4,\ + \ 9, 1, 9, 9, 9, 6, 6, 9, 9, 9, 1, 9, 4, 3, 3, 3, 3, 5, 9, 9], [9, 9, 6, 9, 1,\ + \ 1, 3, 5, 9, 9, 4, 4, 6, 9, 9, 2, 2, 9, 9, 6, 4, 4, 9, 9, 5, 3, 1, 1, 9, 6],\ + \ [9, 9, 9, 6, 1, 1, 5, 3, 9, 1, 5, 4, 9, 6, 9, 9, 9, 9, 6, 9, 4, 5, 1, 9, 3,\ + \ 5, 1, 1, 6, 9], [1, 4, 9, 1, 4, 3, 9, 9, 5, 5, 7, 2, 4, 3, 2, 4, 4, 2, 3, 4,\ + \ 2, 7, 5, 5, 9, 9, 3, 4, 1, 9], [4, 1, 1, 9, 3, 4, 9, 1, 4, 5, 2, 7, 3, 4, 4,\ + \ 2, 2, 4, 4, 3, 7, 2, 5, 4, 1, 9, 4, 3, 9, 1], [9, 9, 1, 4, 9, 9, 4, 5, 6, 4,\ + \ 5, 5, 2, 4, 4, 3, 3, 4, 4, 2, 5, 5, 4, 6, 5, 4, 9, 9, 4, 1], [9, 9, 4, 1, 9,\ + \ 1, 4, 4, 4, 5, 4, 5, 4, 2, 3, 4, 4, 3, 2, 4, 5, 4, 5, 4, 4, 4, 1, 9, 1, 4],\ + \ [4, 3, 9, 9, 9, 9, 6, 9, 5, 9, 7, 7, 5, 5, 7, 2, 2, 7, 5, 5, 7, 7, 9, 5, 9,\ + \ 6, 9, 9, 9, 9], [3, 4, 9, 1, 2, 9, 9, 6, 9, 5, 7, 7, 4, 5, 2, 7, 7, 2, 5, 4,\ + \ 7, 7, 5, 9, 6, 9, 9, 2, 1, 9], [9, 9, 4, 4, 6, 9, 9, 9, 7, 7, 5, 9, 5, 4, 5,\ + \ 5, 5, 5, 4, 5, 9, 5, 7, 7, 9, 8, 8, 8, 8, 4], [9, 1, 5, 4, 9, 6, 2, 9, 7, 7,\ + \ 9, 5, 4, 6, 4, 5, 5, 4, 6, 4, 5, 9, 7, 7, 9, 8, 8, 8, 8, 5], [9, 1, 5, 4, 9,\ + \ 6, 2, 9, 7, 7, 9, 5, 4, 6, 4, 5, 5, 4, 6, 4, 5, 9, 7, 7, 9, 8, 8, 8, 8, 5],\ + \ [9, 9, 4, 4, 6, 9, 9, 9, 7, 7, 5, 9, 5, 4, 5, 5, 5, 5, 4, 5, 9, 5, 7, 7, 9,\ + \ 8, 8, 8, 8, 4], [3, 4, 9, 1, 2, 9, 9, 6, 9, 5, 7, 7, 4, 5, 2, 7, 7, 2, 5, 4,\ + \ 7, 7, 5, 9, 6, 8, 8, 8, 8, 9], [4, 3, 9, 9, 9, 9, 6, 9, 5, 9, 7, 7, 5, 5, 7,\ + \ 2, 2, 7, 5, 5, 7, 7, 9, 5, 9, 8, 8, 8, 8, 9], [9, 9, 4, 1, 9, 1, 4, 4, 4, 5,\ + \ 4, 5, 4, 2, 3, 4, 4, 3, 2, 4, 5, 4, 5, 4, 4, 8, 8, 8, 8, 4], [9, 9, 1, 4, 9,\ + \ 9, 4, 5, 6, 4, 5, 5, 2, 4, 4, 3, 3, 4, 4, 2, 5, 5, 4, 6, 5, 8, 8, 8, 8, 1],\ + \ [4, 1, 1, 9, 3, 4, 9, 1, 4, 5, 2, 7, 3, 4, 4, 2, 2, 4, 4, 3, 7, 2, 5, 4, 1,\ + \ 8, 8, 8, 8, 1], [1, 4, 9, 1, 4, 3, 9, 9, 5, 5, 7, 2, 4, 3, 2, 4, 4, 2, 3, 4,\ + \ 2, 7, 5, 5, 9, 9, 3, 4, 1, 9], [9, 9, 9, 6, 1, 1, 5, 3, 9, 1, 5, 4, 9, 6, 9,\ + \ 9, 9, 9, 6, 9, 4, 5, 1, 9, 3, 5, 1, 1, 6, 9], [9, 9, 6, 9, 1, 1, 3, 5, 9, 9,\ + \ 4, 4, 6, 9, 9, 2, 2, 9, 9, 6, 4, 4, 9, 9, 5, 3, 1, 1, 9, 6], [9, 6, 9, 9, 5,\ + \ 3, 3, 3, 3, 4, 9, 1, 9, 9, 9, 6, 6, 9, 9, 9, 1, 9, 4, 3, 3, 3, 3, 5, 9, 9],\ + \ [6, 9, 9, 9, 3, 5, 3, 3, 4, 3, 9, 9, 9, 2, 6, 9, 9, 6, 2, 9, 9, 9, 3, 4, 3,\ + \ 3, 5, 3, 9, 9], [1, 1, 5, 3, 4, 5, 6, 6, 1, 9, 4, 1, 9, 1, 4, 4, 4, 4, 1, 9,\ + \ 1, 4, 9, 1, 6, 6, 5, 4, 3, 5], [1, 1, 3, 5, 5, 4, 6, 6, 9, 1, 1, 4, 9, 9, 4,\ + \ 5, 5, 4, 9, 9, 4, 1, 1, 9, 6, 6, 4, 5, 5, 3]]\nOut 0 - [[9, 9, 6, 4], [2, 6,\ + \ 9, 4], [2, 6, 9, 4], [9, 9, 6, 4], [9, 9, 2, 1], [6, 9, 9, 9], [4, 1, 9, 1],\ + \ [4, 9, 9, 4], [9, 4, 3, 9]]\nIn 1 - [[9, 9, 2, 3, 4, 4, 7, 5, 3, 3, 6, 6, 3,\ + \ 5, 6, 4, 4, 6, 5, 3, 6, 6, 3, 3, 5, 7, 4, 4, 3, 2], [7, 9, 3, 5, 4, 4, 5, 7,\ + \ 3, 3, 6, 6, 6, 3, 4, 6, 6, 4, 3, 6, 6, 6, 3, 3, 7, 5, 4, 4, 5, 3], [3, 2, 9,\ + \ 9, 7, 5, 4, 4, 4, 1, 3, 3, 6, 4, 4, 7, 7, 4, 4, 6, 3, 8, 8, 8, 8, 8, 5, 7, 9,\ + \ 9], [2, 3, 7, 9, 5, 7, 4, 4, 1, 4, 3, 3, 4, 6, 7, 4, 4, 7, 6, 4, 3, 8, 8, 8,\ + \ 8, 8, 7, 5, 9, 7], [7, 7, 9, 3, 9, 9, 5, 3, 3, 6, 6, 4, 6, 7, 9, 9, 9, 9, 7,\ + \ 6, 4, 8, 8, 8, 8, 8, 9, 9, 3, 9], [7, 7, 3, 9, 7, 9, 3, 2, 5, 3, 4, 6, 2, 6,\ + \ 9, 9, 9, 9, 6, 2, 6, 8, 8, 8, 8, 8, 9, 7, 9, 3], [9, 3, 7, 7, 3, 2, 9, 9, 6,\ + \ 4, 4, 7, 9, 2, 6, 7, 7, 6, 2, 9, 7, 4, 4, 6, 9, 9, 2, 3, 7, 7], [3, 9, 7, 7,\ + \ 2, 3, 7, 9, 4, 6, 7, 4, 2, 9, 2, 6, 6, 2, 9, 2, 4, 7, 6, 4, 9, 7, 3, 2, 7, 7],\ + \ [3, 3, 4, 1, 3, 5, 6, 4, 2, 4, 7, 7, 1, 6, 7, 2, 2, 7, 6, 1, 7, 7, 4, 2, 4,\ + \ 6, 5, 3, 1, 4], [3, 3, 1, 4, 6, 3, 4, 6, 2, 2, 7, 1, 6, 1, 2, 7, 7, 2, 1, 6,\ + \ 1, 7, 2, 2, 6, 4, 3, 6, 4, 1], [6, 6, 3, 3, 6, 4, 4, 7, 1, 1, 2, 4, 7, 2, 1,\ + \ 6, 6, 1, 2, 7, 4, 2, 1, 1, 7, 4, 4, 6, 3, 3], [6, 6, 3, 3, 4, 6, 7, 4, 1, 3,\ + \ 2, 2, 2, 7, 6, 1, 1, 6, 7, 2, 2, 2, 3, 1, 4, 7, 6, 4, 3, 3], [3, 6, 6, 4, 6,\ + \ 2, 9, 2, 9, 9, 9, 7, 2, 4, 1, 7, 7, 1, 4, 2, 7, 9, 9, 9, 2, 9, 2, 6, 4, 6],\ + \ [5, 3, 4, 6, 7, 6, 2, 9, 9, 9, 7, 9, 2, 2, 7, 7, 7, 7, 2, 2, 9, 7, 9, 9, 9,\ + \ 2, 6, 7, 6, 4], [6, 4, 4, 7, 9, 9, 6, 2, 9, 7, 9, 9, 3, 1, 2, 4, 4, 2, 1, 3,\ + \ 9, 9, 7, 9, 2, 6, 9, 9, 7, 4], [4, 6, 7, 4, 9, 9, 7, 6, 7, 9, 9, 9, 1, 1, 2,\ + \ 2, 2, 2, 1, 1, 9, 9, 9, 7, 6, 7, 9, 9, 4, 7], [4, 6, 7, 4, 9, 9, 7, 6, 7, 9,\ + \ 9, 9, 1, 1, 2, 2, 2, 2, 1, 1, 9, 9, 9, 7, 6, 7, 9, 9, 4, 7], [6, 4, 4, 7, 9,\ + \ 9, 6, 2, 9, 7, 9, 9, 3, 1, 2, 4, 4, 2, 1, 3, 9, 9, 7, 9, 2, 6, 9, 9, 7, 4],\ + \ [5, 3, 4, 6, 7, 6, 2, 9, 9, 9, 7, 9, 2, 2, 7, 7, 7, 7, 2, 2, 9, 7, 9, 9, 9,\ + \ 2, 6, 7, 6, 4], [3, 6, 6, 4, 6, 2, 9, 2, 9, 9, 9, 7, 2, 4, 1, 7, 7, 1, 4, 2,\ + \ 7, 9, 9, 9, 2, 9, 2, 6, 4, 6], [6, 6, 3, 3, 4, 6, 7, 4, 1, 3, 2, 2, 2, 7, 6,\ + \ 1, 1, 6, 7, 2, 2, 2, 3, 1, 4, 7, 6, 4, 3, 3], [6, 6, 3, 3, 6, 4, 4, 7, 1, 1,\ + \ 2, 4, 7, 2, 1, 6, 6, 1, 2, 7, 4, 2, 1, 1, 7, 4, 4, 6, 3, 3], [3, 3, 1, 4, 6,\ + \ 3, 4, 6, 2, 2, 7, 1, 6, 1, 2, 7, 7, 2, 1, 6, 1, 7, 2, 2, 6, 4, 3, 6, 4, 1],\ + \ [3, 3, 4, 1, 3, 5, 6, 4, 2, 4, 7, 7, 1, 6, 7, 2, 2, 7, 6, 1, 7, 7, 4, 2, 4,\ + \ 6, 5, 3, 1, 4], [3, 9, 7, 7, 2, 3, 7, 9, 4, 6, 7, 4, 2, 9, 2, 6, 6, 2, 9, 2,\ + \ 4, 7, 6, 4, 9, 7, 3, 2, 7, 7], [9, 3, 7, 7, 3, 2, 9, 9, 6, 4, 4, 7, 9, 2, 6,\ + \ 7, 7, 6, 2, 9, 7, 4, 4, 6, 9, 9, 2, 3, 7, 7], [7, 7, 3, 9, 7, 9, 3, 2, 5, 3,\ + \ 4, 6, 2, 6, 9, 9, 9, 9, 6, 2, 6, 4, 3, 5, 2, 3, 9, 7, 9, 3], [7, 7, 9, 3, 9,\ + \ 9, 5, 3, 3, 6, 6, 4, 6, 7, 9, 9, 9, 9, 7, 6, 4, 6, 6, 3, 3, 5, 9, 9, 3, 9],\ + \ [2, 3, 7, 9, 5, 7, 4, 4, 1, 4, 3, 3, 4, 6, 7, 4, 4, 7, 6, 4, 3, 3, 4, 1, 4,\ + \ 4, 7, 5, 9, 7], [3, 2, 9, 9, 7, 5, 4, 4, 4, 1, 3, 3, 6, 4, 4, 7, 7, 4, 4, 6,\ + \ 3, 3, 1, 4, 4, 4, 5, 7, 9, 9]]\nOut 1 - [[3, 1, 4, 4, 4], [3, 4, 1, 4, 4], [6,\ + \ 6, 3, 3, 5], [4, 3, 5, 2, 3]]\nIn 2 - [[1, 9, 4, 4, 9, 9, 2, 7, 6, 6, 9, 9,\ + \ 7, 6, 7, 2, 2, 7, 6, 7, 9, 9, 6, 6, 7, 2, 9, 9, 4, 4], [7, 1, 4, 4, 9, 9, 7,\ + \ 2, 6, 6, 9, 9, 6, 7, 2, 7, 7, 2, 7, 6, 9, 9, 6, 6, 2, 7, 9, 9, 4, 4], [2, 7,\ + \ 1, 9, 2, 7, 9, 9, 4, 4, 6, 6, 7, 2, 5, 1, 1, 5, 2, 7, 6, 6, 4, 4, 9, 9, 7, 2,\ + \ 9, 1], [7, 2, 7, 1, 7, 2, 9, 9, 4, 4, 6, 6, 2, 7, 5, 5, 5, 5, 7, 2, 6, 6, 4,\ + \ 4, 9, 9, 2, 7, 1, 7], [9, 6, 7, 2, 1, 9, 4, 4, 7, 6, 7, 2, 9, 2, 6, 4, 4, 6,\ + \ 2, 9, 2, 7, 6, 7, 4, 4, 9, 1, 2, 7], [6, 9, 2, 7, 7, 1, 4, 4, 6, 7, 2, 7, 9,\ + \ 9, 4, 6, 6, 4, 9, 9, 7, 2, 7, 6, 4, 4, 1, 7, 7, 2], [7, 2, 9, 6, 2, 7, 1, 9,\ + \ 7, 2, 5, 5, 4, 5, 9, 2, 2, 9, 5, 4, 5, 5, 2, 7, 9, 1, 7, 2, 6, 9], [2, 7, 6,\ + \ 9, 7, 2, 7, 1, 2, 7, 1, 5, 5, 4, 9, 9, 9, 9, 4, 5, 5, 1, 7, 2, 1, 7, 2, 7, 9,\ + \ 6], [6, 6, 4, 4, 7, 6, 7, 2, 3, 7, 1, 4, 9, 7, 7, 6, 6, 7, 7, 9, 4, 1, 7, 3,\ + \ 2, 7, 6, 7, 4, 4], [6, 6, 4, 4, 6, 7, 2, 7, 4, 3, 4, 4, 7, 9, 6, 7, 7, 6, 9,\ + \ 7, 4, 4, 3, 4, 7, 2, 7, 6, 4, 4], [9, 9, 6, 6, 7, 2, 5, 1, 3, 7, 3, 7, 7, 6,\ + \ 9, 7, 7, 9, 6, 7, 7, 3, 7, 3, 1, 5, 2, 7, 6, 6], [9, 9, 6, 6, 2, 7, 5, 5, 7,\ + \ 7, 4, 3, 6, 7, 7, 9, 9, 7, 7, 6, 3, 4, 7, 7, 5, 5, 7, 2, 6, 6], [7, 6, 7, 2,\ + \ 9, 9, 4, 5, 6, 6, 5, 9, 3, 7, 4, 4, 4, 4, 7, 3, 9, 5, 6, 6, 5, 4, 9, 9, 2, 7],\ + \ [6, 7, 2, 7, 2, 9, 5, 4, 6, 6, 9, 5, 4, 3, 4, 1, 1, 4, 3, 4, 5, 9, 6, 6, 4,\ + \ 5, 9, 2, 7, 2], [7, 2, 5, 5, 6, 4, 9, 9, 5, 9, 6, 6, 7, 7, 3, 7, 7, 3, 7, 7,\ + \ 6, 6, 9, 5, 9, 9, 4, 6, 5, 5], [2, 7, 1, 5, 4, 6, 2, 9, 9, 5, 6, 6, 7, 3, 4,\ + \ 3, 3, 4, 3, 7, 6, 6, 5, 9, 9, 2, 6, 4, 5, 1], [2, 7, 1, 5, 4, 6, 2, 9, 9, 5,\ + \ 6, 6, 7, 3, 4, 3, 3, 4, 3, 7, 6, 6, 5, 9, 9, 2, 6, 4, 5, 1], [7, 2, 5, 5, 6,\ + \ 4, 9, 9, 5, 9, 6, 6, 7, 7, 3, 7, 7, 3, 7, 7, 6, 6, 9, 5, 9, 9, 4, 6, 5, 5],\ + \ [6, 7, 2, 7, 2, 9, 5, 4, 6, 6, 9, 5, 4, 3, 4, 1, 1, 4, 3, 4, 5, 9, 6, 6, 4,\ + \ 5, 9, 2, 7, 2], [7, 6, 7, 2, 9, 9, 4, 5, 6, 6, 5, 9, 8, 8, 8, 8, 8, 8, 8, 3,\ + \ 9, 5, 6, 6, 5, 4, 9, 9, 2, 7], [9, 9, 6, 6, 2, 7, 5, 5, 7, 7, 4, 3, 8, 8, 8,\ + \ 8, 8, 8, 8, 6, 3, 4, 7, 7, 5, 5, 7, 2, 6, 6], [9, 9, 6, 6, 7, 2, 5, 1, 3, 7,\ + \ 3, 7, 8, 8, 8, 8, 8, 8, 8, 7, 7, 3, 7, 3, 1, 5, 2, 7, 6, 6], [6, 6, 4, 4, 6,\ + \ 7, 2, 7, 4, 3, 4, 4, 7, 9, 6, 7, 7, 6, 9, 7, 4, 4, 3, 4, 7, 2, 7, 6, 4, 4],\ + \ [6, 6, 4, 4, 7, 6, 7, 2, 3, 7, 1, 4, 9, 7, 7, 6, 6, 7, 7, 9, 4, 1, 7, 3, 2,\ + \ 7, 6, 7, 4, 4], [2, 7, 6, 9, 7, 2, 7, 1, 2, 7, 1, 5, 5, 4, 9, 9, 9, 9, 4, 5,\ + \ 5, 1, 7, 2, 1, 7, 2, 7, 9, 6], [7, 2, 9, 6, 2, 7, 1, 9, 7, 2, 5, 5, 4, 5, 9,\ + \ 2, 2, 9, 5, 4, 5, 5, 2, 7, 9, 1, 7, 2, 6, 9], [6, 9, 2, 7, 7, 1, 4, 4, 6, 7,\ + \ 2, 7, 9, 9, 4, 6, 6, 4, 9, 9, 7, 2, 7, 6, 4, 4, 1, 7, 7, 2], [9, 6, 7, 2, 1,\ + \ 9, 4, 4, 7, 6, 7, 2, 9, 2, 6, 4, 4, 6, 2, 9, 2, 7, 6, 7, 4, 4, 9, 1, 2, 7],\ + \ [7, 2, 7, 1, 7, 2, 9, 9, 4, 4, 6, 6, 2, 7, 5, 5, 5, 5, 7, 2, 6, 6, 4, 4, 9,\ + \ 9, 2, 7, 1, 7], [2, 7, 1, 9, 2, 7, 9, 9, 4, 4, 6, 6, 7, 2, 5, 1, 1, 5, 2, 7,\ + \ 6, 6, 4, 4, 9, 9, 7, 2, 9, 1]]\nOut 2 - [[3, 7, 4, 4, 4, 4, 7], [6, 7, 7, 9,\ + \ 9, 7, 7], [7, 6, 9, 7, 7, 9, 6]]\nIn 3 - [[3, 1, 1, 9, 5, 6, 7, 1, 1, 4, 5,\ + \ 7, 3, 9, 9, 1, 1, 9, 9, 3, 7, 5, 4, 1, 1, 7, 6, 5, 9, 1], [1, 3, 9, 5, 6, 5,\ + \ 1, 7, 4, 1, 7, 5, 4, 3, 1, 3, 3, 1, 3, 4, 5, 7, 1, 4, 7, 1, 5, 6, 5, 9], [6,\ + \ 9, 3, 1, 7, 1, 5, 6, 9, 9, 1, 4, 9, 1, 1, 4, 4, 1, 1, 9, 4, 1, 9, 9, 6, 5, 1,\ + \ 7, 1, 3], [9, 1, 1, 3, 1, 7, 6, 5, 9, 9, 4, 1, 1, 3, 4, 1, 1, 4, 3, 1, 1, 4,\ + \ 9, 9, 5, 6, 7, 1, 3, 1], [6, 6, 6, 7, 3, 1, 5, 9, 3, 4, 9, 1, 6, 7, 2, 5, 5,\ + \ 2, 7, 6, 1, 9, 4, 3, 9, 5, 1, 3, 7, 6], [6, 6, 7, 6, 1, 3, 9, 1, 9, 3, 1, 3,\ + \ 7, 6, 5, 2, 2, 5, 6, 7, 3, 1, 3, 9, 1, 9, 3, 1, 6, 7], [6, 7, 6, 6, 1, 9, 3,\ + \ 1, 9, 1, 1, 4, 6, 9, 6, 7, 7, 6, 9, 6, 4, 1, 1, 9, 1, 3, 9, 1, 6, 6], [7, 6,\ + \ 6, 6, 9, 6, 1, 3, 1, 3, 4, 1, 9, 6, 7, 6, 6, 7, 6, 9, 1, 4, 3, 1, 3, 1, 8, 8,\ + \ 8, 8], [1, 4, 9, 9, 3, 9, 9, 1, 1, 1, 6, 1, 5, 2, 5, 5, 5, 5, 2, 5, 1, 6, 1,\ + \ 1, 1, 9, 8, 8, 8, 8], [4, 1, 9, 9, 4, 3, 1, 3, 1, 1, 1, 6, 2, 5, 5, 5, 5, 5,\ + \ 5, 2, 6, 1, 1, 1, 3, 1, 8, 8, 8, 8], [5, 7, 1, 4, 9, 1, 1, 4, 2, 2, 1, 1, 5,\ + \ 5, 5, 2, 2, 5, 5, 5, 1, 1, 2, 2, 4, 1, 8, 8, 8, 8], [7, 5, 4, 1, 1, 3, 4, 1,\ + \ 2, 1, 1, 1, 5, 5, 2, 5, 5, 2, 5, 5, 1, 1, 1, 2, 1, 4, 3, 1, 1, 4], [3, 4, 9,\ + \ 1, 6, 7, 6, 9, 7, 6, 3, 3, 1, 1, 6, 1, 1, 6, 1, 1, 3, 3, 6, 7, 9, 6, 7, 6, 1,\ + \ 9], [9, 3, 1, 3, 7, 6, 9, 6, 6, 7, 3, 3, 1, 1, 1, 6, 6, 1, 1, 1, 3, 3, 7, 6,\ + \ 6, 9, 6, 7, 3, 1], [9, 1, 1, 4, 2, 5, 6, 7, 3, 3, 7, 6, 1, 2, 1, 1, 1, 1, 2,\ + \ 1, 6, 7, 3, 3, 7, 6, 5, 2, 4, 1], [1, 3, 4, 1, 5, 2, 7, 6, 3, 3, 6, 7, 2, 2,\ + \ 1, 1, 1, 1, 2, 2, 7, 6, 3, 3, 6, 7, 2, 5, 1, 4], [1, 3, 4, 1, 5, 2, 7, 6, 3,\ + \ 3, 6, 7, 2, 2, 1, 1, 1, 1, 2, 2, 7, 6, 3, 3, 6, 7, 2, 5, 1, 4], [9, 1, 1, 4,\ + \ 2, 5, 6, 7, 3, 3, 7, 6, 1, 2, 1, 1, 1, 1, 2, 1, 6, 7, 3, 3, 7, 6, 5, 2, 4, 1],\ + \ [9, 3, 1, 3, 7, 6, 9, 6, 6, 7, 3, 3, 1, 1, 1, 6, 6, 1, 1, 1, 3, 3, 7, 6, 6,\ + \ 9, 6, 7, 3, 1], [3, 4, 9, 1, 6, 7, 6, 9, 7, 6, 3, 3, 1, 1, 6, 1, 1, 6, 1, 1,\ + \ 3, 3, 6, 7, 9, 6, 7, 6, 1, 9], [7, 5, 4, 1, 1, 3, 4, 1, 2, 1, 1, 1, 5, 5, 2,\ + \ 5, 5, 2, 5, 5, 1, 1, 1, 2, 1, 4, 3, 1, 1, 4], [5, 7, 1, 4, 9, 1, 1, 4, 2, 2,\ + \ 1, 1, 5, 5, 5, 2, 2, 5, 5, 5, 1, 1, 2, 2, 4, 1, 1, 9, 4, 1], [4, 1, 9, 9, 4,\ + \ 3, 1, 3, 1, 1, 1, 6, 2, 5, 5, 5, 5, 5, 5, 2, 6, 1, 1, 1, 3, 1, 3, 4, 9, 9],\ + \ [1, 4, 9, 9, 3, 9, 9, 1, 1, 1, 6, 1, 5, 2, 5, 5, 5, 5, 2, 5, 1, 6, 1, 1, 1,\ + \ 9, 9, 3, 9, 9], [7, 6, 6, 6, 9, 6, 1, 3, 1, 3, 4, 1, 9, 6, 7, 6, 6, 7, 6, 9,\ + \ 1, 4, 3, 1, 3, 1, 6, 9, 6, 6], [6, 7, 6, 6, 1, 9, 3, 1, 9, 1, 1, 4, 6, 9, 6,\ + \ 7, 7, 6, 9, 6, 4, 1, 1, 9, 1, 3, 9, 1, 6, 6], [6, 6, 7, 6, 1, 3, 9, 1, 9, 3,\ + \ 1, 3, 7, 6, 5, 2, 2, 5, 6, 7, 3, 1, 3, 9, 1, 9, 3, 1, 6, 7], [6, 6, 6, 7, 3,\ + \ 1, 5, 9, 3, 4, 9, 1, 6, 7, 2, 5, 5, 2, 7, 6, 1, 9, 4, 3, 9, 5, 1, 3, 7, 6],\ + \ [9, 1, 1, 3, 1, 7, 6, 5, 9, 9, 4, 1, 1, 3, 4, 1, 1, 4, 3, 1, 1, 4, 9, 9, 5,\ + \ 6, 7, 1, 3, 1], [6, 9, 3, 1, 7, 1, 5, 6, 9, 9, 1, 4, 9, 1, 1, 4, 4, 1, 1, 9,\ + \ 4, 1, 9, 9, 6, 5, 1, 7, 1, 3]]\nOut 3 - [[6, 9, 6, 6], [9, 3, 9, 9], [3, 4,\ + \ 9, 9], [1, 9, 4, 1]]\n\n\nYou are also provided the test input that you have\ + \ to succesfully transform into the output using your python code:\nIn Test 0\ + \ - [[4, 4, 1, 3, 5, 7, 7, 9, 6, 1, 6, 6, 4, 4, 7, 7, 7, 7, 4, 4, 6, 6, 1, 6,\ + \ 9, 7, 7, 5, 3, 1], [4, 4, 3, 3, 7, 5, 9, 7, 6, 6, 6, 6, 4, 4, 7, 2, 2, 7, 4,\ + \ 4, 6, 6, 6, 6, 7, 9, 5, 7, 3, 3], [3, 4, 4, 4, 7, 9, 5, 7, 5, 1, 6, 1, 7, 7,\ + \ 9, 9, 9, 9, 7, 7, 1, 6, 1, 5, 7, 5, 9, 7, 4, 4], [4, 3, 4, 4, 9, 7, 7, 5, 1,\ + \ 5, 6, 6, 7, 2, 1, 9, 9, 1, 2, 7, 6, 6, 5, 1, 5, 7, 7, 9, 4, 4], [9, 7, 7, 4,\ + \ 4, 4, 3, 3, 4, 4, 7, 7, 9, 7, 3, 2, 2, 3, 7, 9, 7, 7, 4, 4, 3, 3, 4, 4, 4, 7],\ + \ [7, 9, 4, 7, 4, 4, 3, 1, 4, 4, 7, 2, 7, 9, 2, 3, 3, 2, 9, 7, 2, 7, 4, 4, 1,\ + \ 3, 4, 4, 7, 4], [7, 4, 9, 7, 3, 4, 4, 4, 7, 7, 9, 1, 7, 4, 9, 7, 7, 9, 4, 7,\ + \ 1, 9, 7, 7, 4, 4, 4, 3, 7, 9], [4, 7, 7, 9, 4, 3, 4, 4, 7, 2, 9, 9, 4, 7, 7,\ + \ 9, 9, 7, 7, 4, 9, 9, 2, 7, 4, 4, 3, 4, 9, 7], [6, 6, 5, 1, 4, 4, 7, 7, 7, 2,\ + \ 2, 6, 4, 6, 2, 2, 2, 2, 6, 4, 6, 2, 2, 7, 7, 7, 4, 4, 1, 5], [1, 6, 1, 5, 4,\ + \ 4, 7, 2, 3, 7, 6, 6, 6, 4, 2, 2, 2, 2, 4, 6, 6, 6, 7, 3, 2, 7, 4, 4, 5, 1],\ + \ [6, 6, 6, 6, 7, 7, 9, 9, 9, 1, 7, 2, 2, 2, 4, 6, 6, 4, 2, 2, 2, 7, 1, 9, 9,\ + \ 9, 7, 7, 6, 6], [6, 6, 1, 6, 7, 2, 1, 9, 1, 5, 3, 7, 2, 2, 6, 4, 4, 6, 2, 2,\ + \ 7, 3, 5, 1, 9, 1, 2, 7, 6, 1], [4, 4, 7, 7, 9, 7, 7, 4, 9, 9, 1, 6, 7, 2, 6,\ + \ 6, 6, 6, 2, 7, 6, 1, 9, 9, 4, 7, 7, 9, 7, 7], [4, 4, 7, 2, 7, 9, 4, 7, 9, 9,\ + \ 6, 1, 3, 7, 6, 2, 2, 6, 7, 3, 1, 6, 9, 9, 7, 4, 9, 7, 2, 7], [8, 8, 8, 1, 3,\ + \ 2, 9, 7, 1, 6, 9, 9, 5, 1, 7, 2, 2, 7, 1, 5, 9, 9, 6, 1, 7, 9, 2, 3, 1, 9],\ + \ [8, 8, 8, 9, 2, 3, 7, 9, 6, 1, 9, 9, 1, 9, 3, 7, 7, 3, 9, 1, 9, 9, 1, 6, 9,\ + \ 7, 3, 2, 9, 9], [8, 8, 8, 9, 2, 3, 7, 9, 6, 1, 9, 9, 1, 9, 3, 7, 7, 3, 9, 1,\ + \ 9, 9, 1, 6, 9, 7, 3, 2, 9, 9], [8, 8, 8, 1, 3, 2, 9, 7, 1, 6, 9, 9, 5, 1, 7,\ + \ 2, 2, 7, 1, 5, 9, 9, 6, 1, 7, 9, 2, 3, 1, 9], [8, 8, 8, 2, 7, 9, 4, 7, 9, 9,\ + \ 6, 1, 3, 7, 6, 2, 2, 6, 7, 3, 1, 6, 9, 9, 7, 4, 9, 7, 2, 7], [8, 8, 8, 7, 9,\ + \ 7, 7, 4, 9, 9, 1, 6, 7, 2, 6, 6, 6, 6, 2, 7, 6, 1, 9, 9, 4, 7, 7, 9, 7, 7],\ + \ [8, 8, 8, 6, 7, 2, 1, 9, 1, 5, 3, 7, 2, 2, 6, 4, 4, 6, 2, 2, 7, 3, 5, 1, 9,\ + \ 1, 2, 7, 6, 1], [8, 8, 8, 6, 7, 7, 9, 9, 9, 1, 7, 2, 2, 2, 4, 6, 6, 4, 2, 2,\ + \ 2, 7, 1, 9, 9, 9, 7, 7, 6, 6], [8, 8, 8, 5, 4, 4, 7, 2, 3, 7, 6, 6, 6, 4, 2,\ + \ 2, 2, 2, 4, 6, 6, 6, 7, 3, 2, 7, 4, 4, 5, 1], [6, 6, 5, 1, 4, 4, 7, 7, 7, 2,\ + \ 2, 6, 4, 6, 2, 2, 2, 2, 6, 4, 6, 2, 2, 7, 7, 7, 4, 4, 1, 5], [4, 7, 7, 9, 4,\ + \ 3, 4, 4, 7, 2, 9, 9, 4, 7, 7, 9, 9, 7, 7, 4, 9, 9, 2, 7, 4, 4, 3, 4, 9, 7],\ + \ [7, 4, 9, 7, 3, 4, 4, 4, 7, 7, 9, 1, 7, 4, 9, 7, 7, 9, 4, 7, 1, 9, 7, 7, 4,\ + \ 4, 4, 3, 7, 9], [7, 9, 4, 7, 4, 4, 3, 1, 4, 4, 7, 2, 7, 9, 2, 3, 3, 2, 9, 7,\ + \ 2, 7, 4, 4, 1, 3, 4, 4, 7, 4], [9, 7, 7, 4, 4, 4, 3, 3, 4, 4, 7, 7, 9, 7, 3,\ + \ 2, 2, 3, 7, 9, 7, 7, 4, 4, 3, 3, 4, 4, 4, 7], [4, 3, 4, 4, 9, 7, 7, 5, 1, 5,\ + \ 6, 6, 7, 2, 1, 9, 9, 1, 2, 7, 6, 6, 5, 1, 5, 7, 7, 9, 4, 4], [3, 4, 4, 4, 7,\ + \ 9, 5, 7, 5, 1, 6, 1, 7, 7, 9, 9, 9, 9, 7, 7, 1, 6, 1, 5, 7, 5, 9, 7, 4, 4]]\n\ + \n\nLooking carefully at the train input-output pairs, understand the transformation\ + \ and modify PYTHON functions to generate 2 attempts to solve the task. These\ + \ python functions will sequentially take each input grid as a numpy array and\ + \ output the transformed grid as a numpy array. Your solution will then be evaluated\ + \ against the ground truth output grid.\nRemember to only output the modified\ + \ python functions as your solution." diff --git a/examples/arc_benchmark/evaluator.py b/examples/arc_benchmark/evaluator.py new file mode 100644 index 000000000..74c5f7922 --- /dev/null +++ b/examples/arc_benchmark/evaluator.py @@ -0,0 +1,220 @@ +import numpy as np +from typing import List, Tuple, Dict, Any +import json +import os + +from openevolve.evaluation_result import EvaluationResult +import importlib.util + +TASK_FILE = os.getenv("ARC_TASK_FILE", "training") +TASK_NUM = os.getenv("TASK_NUM", 0) +DATA_ROOT = os.getenv("DATA_ROOT", "/workspaces/ARC-Evolve/data/arc-prize-2025") + + +def pass_at_2_accuracy_single( + attempts: List[np.ndarray], + gt: np.ndarray +) -> Tuple[int, Dict[int, Any]]: + """ + Compute pass@2 accuracy for a single ARC test case. + + Args: + attempts: List of 2 numpy arrays representing model attempts. + gt: Ground-truth output as a 2D numpy array. + + Returns: + pass_at_2: int (1 if any attempt is perfectly correct, else 0) + diagnostics: dict mapping attempt index -> diagnostic info. + If sizes match, includes indices of incorrect cells. + """ + assert len(attempts) == 2, "Expected exactly 2 attempts for pass@2 evaluation." + + diagnostics = {} + passed = False + + for i, pred in enumerate(attempts): + attempt_info = {} + + # Size check + if pred.shape != gt.shape: + attempt_info["size_match"] = False + attempt_info["pred_shape"] = pred.shape + attempt_info["gt_shape"] = gt.shape + attempt_info["incorrect_indices"] = None + attempt_passed = False + else: + attempt_info["size_match"] = True + + # Find incorrect cells + incorrect_mask = pred != gt + incorrect_indices = np.argwhere(incorrect_mask) + + attempt_info["incorrect_indices"] = incorrect_indices.tolist() + attempt_info["num_incorrect"] = int(incorrect_mask.sum()) + + # Perfect match + if incorrect_mask.sum() == 0: + attempt_passed = True + else: + attempt_passed = False + + attempt_info["perfect_match"] = attempt_passed + passed = attempt_passed or passed + + diagnostics[i] = attempt_info + + pass_at_2 = 1 if passed else 0 + + return pass_at_2, diagnostics + +def pass_at_2_accuracy_multi_test( + all_attempts: List[List[np.ndarray]], + all_gt: List[np.ndarray] +) -> Tuple[List[int], List[Dict[int, Any]]]: + """ + Compute pass@2 accuracy across multiple ARC test cases. + + Args: + all_attempts: List of lists of 2 numpy arrays for each test case. + all_gt: List of ground-truth outputs as 2D numpy arrays. + """ + assert len(all_attempts) == len(all_gt), "Mismatched number of test cases." + + all_diagnostics = [] + all_pass = [] + + for attempts, gt in zip(all_attempts, all_gt): + pass_at_2, diagnostics = pass_at_2_accuracy_single(attempts, gt) + all_pass.append(pass_at_2) + all_diagnostics.append(diagnostics) + + return all_pass, all_diagnostics + +def extract_failure_artifacts(diagnostics): + """ + Extract failure artifacts from diagnostics for a given example. + + Args: + diagnostics: Diagnostics dictionary from pass_at_2_accuracy_single. + ex_name: Name of the example (for artifact labeling). + """ + artifacts = {} + if not diagnostics["size_match"]: + artifacts["error_type"] = "SizeMismatch" + artifacts["error_message"] = f"Size mismatch found in attempt output." + artifacts["suggestion"] = "Review your output size determination." + else: + artifacts["error_type"] = "IncorrectCells" + artifacts["error_message"] = f"{diagnostics['num_incorrect']} incorrect cells found at indices {diagnostics['incorrect_indices']}." + artifacts["suggestion"] = "Review your logic to ensure correct cell values." + + return artifacts + +def evaluate(program_path): + """ + Evaluate the program by running it multiple times and checking how close + it gets to the known global minimum. + + Args: + program_path: Path to the program file + + Returns: + Dictionary of metrics + """ + spec = importlib.util.spec_from_file_location("program_module", program_path) + program_module = importlib.util.module_from_spec(spec) + spec.loader.exec_module(program_module) + + if not hasattr(program_module, 'transform_grid_attempt_1') or not hasattr(program_module, 'transform_grid_attempt_2'): + print(f"Stage 1 validation failed: Program must define 'transform_grid_attempt_1' and 'transform_grid_attempt_2' functions.") + + error_artifacts = { + "error_type": "MissingFunction", + "error_message": "Stage 1: Program is missing required 'transform_grid_attempt_1' and 'transform_grid_attempt_2' functions.", + "suggestion": "Make sure your program includes a functions named 'transform_grid_attempt_1' and 'transform_grid_attempt_2' that take as an argument a 2D numpy array and return a 2D numpy array." + } + + return EvaluationResult( + metrics={ + "runs_successfully": 0.0, + "combined_score": 0.0, + "error": "Missing transform_grid_attempt_1 and transform_grid_attempt_2 functions" + }, + artifacts=error_artifacts + ) + + # Load ARC tasks + challenge_path = os.path.join(DATA_ROOT, f"arc-agi_{TASK_FILE}_challenges.json") + + with open(challenge_path, 'r') as f: + tasks = json.load(f) + + task_id = list(tasks.keys())[int(TASK_NUM)] + task = tasks[task_id] + + train_inputs = [np.array(inp["input"]) for inp in task['train']] + train_gts = [np.array(gt["output"]) for gt in task['train']] + + train_attempts = [] + + # Generate attempts for training data + for inp in train_inputs: + attempt_1 = program_module.transform_grid_attempt_1(inp) + if not isinstance(attempt_1, np.ndarray): + print(f"transform_grid_attempt_1 did not return a numpy array") + + error_artifacts = { + "error_type": "InvalidReturnType", + "error_message": "Stage 1: transform_grid_attempt_1 did not return a numpy array.", + "suggestion": "Make sure your transform_grid_attempt_1 function returns a 2D numpy array." + } + + return EvaluationResult( + metrics={ + "runs_successfully": 0.0, + "combined_score": 0.0, + "error": "transform_grid_attempt_1 did not return a numpy array" + }, + artifacts=error_artifacts + ) + + attempt_2 = program_module.transform_grid_attempt_2(inp) + if not isinstance(attempt_2, np.ndarray): + print(f"transform_grid_attempt_2 did not return a numpy array") + + error_artifacts = { + "error_type": "InvalidReturnType", + "error_message": "Stage 1: transform_grid_attempt_2 did not return a numpy array.", + "suggestion": "Make sure your transform_grid_attempt_2 function returns a 2D numpy array." + } + + return EvaluationResult( + metrics={ + "runs_successfully": 0.0, + "combined_score": 0.0, + "error": "transform_grid_attempt_2 did not return a numpy array" + }, + artifacts=error_artifacts + ) + train_attempts.append([attempt_1, attempt_2]) + + pass_at_2_train, train_diagnostics_list = pass_at_2_accuracy_multi_test(train_attempts, train_gts) + + metrics = { + "runs_successfully": 1.0, + "combined_score": sum(pass_at_2_train) / len(pass_at_2_train), + } + error_artifacts = {} + for i, (train_pass, train_diagnostics) in enumerate(zip(pass_at_2_train, train_diagnostics_list)): + example_name = f"train_example_{i}" + metrics[f"{example_name}_pass_at_2"] = train_pass + for attempt in train_diagnostics: + attempt_pass = train_diagnostics[attempt]["perfect_match"] + metrics[f"{example_name}_attempt_{attempt}"] = attempt_pass + if not attempt_pass: + error_artifacts[f"{example_name}_attempt_{attempt}_diagnostics"] = extract_failure_artifacts(train_diagnostics[attempt]) + + return EvaluationResult( + metrics=metrics, + artifacts=error_artifacts + ) \ No newline at end of file diff --git a/examples/arc_benchmark/generate_config.py b/examples/arc_benchmark/generate_config.py new file mode 100644 index 000000000..737c22ffc --- /dev/null +++ b/examples/arc_benchmark/generate_config.py @@ -0,0 +1,62 @@ +import os +import yaml +import json + + +def load_task_as_prompt(task_json, task_num): + with open(task_json, 'r') as f: + tasks = json.load(f) + + task_id = list(tasks.keys())[int(task_num)] + task = tasks[task_id] + train_inputs = [inp["input"] for inp in task['train']] + train_outputs = [gt["output"] for gt in task['train']] + test_inputs = [inp["input"] for inp in task['test']] + + train_pairs = "" + for i, (inp, out) in enumerate(zip(train_inputs, train_outputs)): + train_pairs += f"In {i} - {inp}\nOut {i} - {out}\n" + + test_input = "" + for i, inp in enumerate(test_inputs): + test_input += f"In Test {i} - {inp}\n" + + prompt = f"""You are participating in a puzzle solving competition. You are an expert at solving puzzles. +Find the common pattern that transforms each input grid into its corresponding output grid... + +Your task is to write a python function that transforms each input grid into its corresponding output grid. This function must: +- Apply consistently to ALL training examples +- Be general enough to work on new test cases +- Be intuitive and easy to understand +- Apply the pattern without referencing specific example numbers + +You are provided the following training example grids: +{train_pairs} + +You are also provided the test input that you have to succesfully transform into the output using your python code: +{test_input} + +Looking carefully at the train input-output pairs, understand the transformation and modify PYTHON functions to generate 2 attempts to solve the task. These python functions will sequentially take each input grid as a numpy array and output the transformed grid as a numpy array. Your solution will then be evaluated against the ground truth output grid. +Remember to only output the modified python functions as your solution.""" + + return prompt + +def generate_config(task_num, task_file, dataset_root="/workspaces/ARC-Evolve/data/arc-prize-2025"): + task_json = os.path.join(dataset_root, f"arc-agi_{task_file}_challenges.json") + prompt = load_task_as_prompt(task_json, task_num) + + cfg_file = "./base_config.yaml" + with open(cfg_file, 'r') as file: + config = yaml.safe_load(file) + + config['prompt']['system_message'] = prompt + + with open('./config.yaml', 'w') as file: + yaml.dump(config, file) + +if __name__ == "__main__": + TASK_FILE = os.getenv("ARC_TASK_FILE", "training") + TASK_NUM = os.getenv("TASK_NUM", 0) + + generate_config(TASK_NUM, TASK_FILE) + \ No newline at end of file diff --git a/examples/arc_benchmark/images/Evolved task.png b/examples/arc_benchmark/images/Evolved task.png new file mode 100644 index 0000000000000000000000000000000000000000..cf46e9293fc800a97eeac54f514d4a45bc1a9fd2 GIT binary patch literal 198868 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 ecH^8&-TcHw_~JQ!%(1%XsLTKc2WUsIxK{ ze0ZdMI;`|}m~`n+?oy{2oz+<#>Be}!S?lkQy?-mhH5TFH-jIOHEz3>l!JSE59dmr< zLFtl3pY+u#VMiLoiI+*e_|@_4*X)odoBx-OSGZV6Z3@9W$fsj5JQoo#JFx?aZ4O~? zL75-Ycedyx{%nx${Z{H;JCo_>nlO;>JGCq?q4;|&xv$%A1w6)H-@uUb$?r#=if$J! zqNnWT?4bx|wf^C$7h~%pTy^_wc7op9Y4(P-2bVte4zRGpBl1EM8{Ti;$}g|!ZoGe>wLT?p^mKhrAb=|%wuibuPeJ~KfVuHdXknd3DV6{ zSy~z;sn_iKo7Nj!1m3nou#&7)sWgi?A0PJ(9Nkh`G`lyR5G z%qiD(^x|I&@uf`W+yV!|_spIU2eSU}FZczgBj!O@O!wP8U1)_0_=n=YKf@Nwi%jpZ zt^&;#TIp88N^p+z<((Iy&9i6Yg>X6Vn2EO+DnnTuf_Mb)9R<{Mo|l#(mc|8(Ny&+0 zoP%ci@72}v7;0WNxBRDxws1b7ld?naq?mUKb+Zy1Yn!`K4T!$;9Y55hiK5<9l%=Z< z=7Su*{T%ZlSC@zVR(4+`-@)P&r%bMcu}QDMDQ6p$!t@*FMw#8!AS149={3;03@=dr z(jGwPVhEFAln88#8Y1)4%Hy+~<&eJd2`Ti$o!2gD8tJO!!bdu|q^|JazS8tS;SIJ< z#k?S#?2Z?6zTy?to<8nr-vo&f8kc>;@vE#Ir2)od|7NB*Th%?^hu8KP6@x{_Z=!K zbILaG*F*vmN{oaQMb7Lwt7w-I_yEKn9liubPYuF>bmO-{_N{~vEp3T0~=N!;VVna~oVbmyh2Vg`$V z*^>{)#&zRGr-8|OdRVg9hhdL|#?>1*aOg6fVbo2fuo2&<5arfQf^z{LHLP)`vgTjq}D@GnV ztK6gxBr0Ux_D}mCAm!f^dw#zfgxltU{QGrsR*bX-Qk9%F>xw{8f!Gc`k;3^zgV9yj zg@umN?8!n~(%7M(@*P3>y>B@BhbK#mSG(<79erG#lUI33X1O0!mtCfr&EzuEMbI(^ z&;E}!t7suq{<$otR>~-P{`|^xmwPzzQU;+Bf@WsHJ0&5a2oJYpbIeUrdw#}dhx6q2 z@pL<}=Db_!vv&obtWmY=w~YphKwc6Tti}zsCjBA&eBg_DHeEN(6nFdCwYQ9nvld(# zSb=(yX)I@w3-OaaSQ|3f5pB>Y@|P3En8}MdBDNchqlGK79_%L%${MlpuldxSLn!5+ z7T|pIwTd4%3#GV;wLMs5=giIM<*~94r3^S4&A@e`X`j7%=R3^&mK`f$)m5{FVwq0E zb*o9_6}Y`~kBjhCrT|-Y1jJI;>V&|Cc!LQ}u$?EBEc zQiEP?0I5VJt(?rZ{5tL9qSTyd9>VOe;=4Mv)vn-N?t7%milHTJkz;~K5zchWns^aP zIks;KDEk1aN7rV8GsongF@l{*WDCfjWtp{%CoRZWWhC6a+z+-LSZ5P#c~yjDFrC{9 zTVc}cGPCAo(5B$A(k@|V41{}dbtC)iEDzFedn#9vrzc-L0w(^j-FIF=P&fxQN!{-) zPQ({c$5KPcz+^|^Z?i%p39OdWE)`mYRP`@}4kq<%7;P<7kujlzRz-Zrl_tua6ADi1oze-JX-#4D;8S$LR_IN9s!OjPSXuzLyyRJ*5~W+Hbf ze6LExTBpC|Tq^FZ9k7Kr;I)O{X`cN|M?gjWrg9W87z#gS-`#@D31=8>K(fUaXh595 zEmh`)T!;ZngYQimNnV!;b#KOzP}Kkd9MyfH@3|A2Wc>U0gtn2YK&kqp9rc+T6`h&t*3ZLntC&L~sHdEPa=j|Vb7pr{1|M9(5GoJx*s})v=ivoV=|LCC} z&r{H<%o&Bd*gq`S?*48xrWxHnFm_p$Rs`oakk?{%@(+vrFw5pfME~P z$_-|0r*{_L&b#(jfw6k?HC%rhC0QpPjxKP>%5CAiQ2*2J{=*QLOTX5t2>vcwK@yYv zazhEq0}W{yN$1?Zpy7WTc)S-i=sxQoS#5#RD@@bNK%kH`r_6CvR=mu-2n2Il*P zzdruUEQEZVP?S>ZcL;Bc%L3*0+ z7s@9Q{2>_iUyB^9!r~K}HR0R};lGn31ZRsY?cB1D55+;vhp{b4lLEk5U!|opFcX>J z{4^NKucq|N(&Fg(?+D8p%Ad?qg5&4mL%XLo^34D3xcYsgfuq0n%q4a5RM1T*vVFCo zeWd3T52FLy)#yl3>P%N;=BHuAWtZMzzdWy3F5rb2`v^V|A__BkKLShG9H6Mmk@tY zOSWU!0(WI>ytDsD3J%M7QBau(1;`mZDf^s}0vrJ--ta)O^9HoMWmV`0T2xY7&6skt z8-Wg0+%YAwBf0j4sCn63Gh~Jd^XGg*U<>loFs#DfCdWC^|3XNqzEyv*)bu3$kt;Y3 zYPjn@Jt;K)@ZHj=I8A?zuQh2`N;ewb$PQf0VNX{9h(%EFId%K|3-+(5d(kyImj~Aj z+}bgQ=j-kBTCC-_teu+YKcL}xtW`YFN_MHBW9DXOGVfqFkwturz@z_x!uvNq=JKgO z4SZ_;y&$%3+<$ZP85@Bkfb{TQkj}!k@GyHHC~$xy0D9i=XA`TjP@-A^&iI0hqs=;3f1P!M>z4VX?~@eAx8+yjEeMGlPj27pGskoEvnVTHK$47Up(rMq+-X2~c9 z+W!jQj-M}Go5p6LB8^5~Uwh%a>&AcLF=9}v0X6#$N|$@6So|9{0Er8}d@`pW-#TMh z5wvM34wXm`*CH`gkl5Q38S``nfZfxm@0yoGDZbuWw|4?3$o#ovcIzJ4AOiYOq%Eb| zl=NMa@dOPi@WW<`!q>a7;gP+Gm>qXy-g&%<6-#1?Zz&Cr$FYF+8TTOtZ}; zJQz+-quIj$OJke){L-G3!jVEO@|ktM;9%Tnfl=8uh|zgTd$nZPN(`--L65; z?A#bJWb0J+UzsyobxR$3GOUV0P@7+#6to(~BPi37Sp#r?FhP==kqZy?qsT*e`32~0 zLx(CbnYr8WHO@8)XZ2Hl&{_p;Fb`6)K2wYOr5c%6IGp-jxxANJwe<8|> zIq~H6&lu=wA-_4UyMJJi-Ishn(`QJ2@$mraSAs-Vzzon)>kUD|z)x>=JAe3RC>iw{ zmi`T{n=Q%{ChrNhp2O#4Y828}+lu6ld_G!|26-*h%o23an>1*7c+XH!`68y2>s9#B zw}bEjs<{NuGZRh=-fQ$y7od0k&i++BlUbp+Lmn3;!AX~1$Jjw+mT-i*|zy4Cye z&CDgJAEyT3IDMD5-x@UV{bm57&)ZZ7Z@1`?z#)<6?0dh!u5eEZ0%e%sV3GKLFUmo` zDrh%#EbQ5nfk2F7e08)9R1>otBx3Ffz<6cXotNxu4D8~s;Vu}5=Y1el z$r@-SVP;m#S(S={MD;s{9#l0vu+LmyD=L3_z|=e`#j$UAb--^4{9f|sD;bVDx~RCY zf4sTf@sEZmx;XOC&Q%Ty$UwYCVQ(=uvIloRwKT==W@P1mX|n}r$7eD5x*MEo&|P%3 z3A#rW9AGFXQ^4PPGRf>#q3OVu+3Sx>$A%7?-f^4c@xDI;+4NP`y+T`chr^VkAP9Gc zxJ+f{&hIuPDVZ%iHKRWLTv3ghKtqHHugdbj)j#&{li4i&dE|dw12ote6H91esWX+j zA^dzuFY`)c7OEuJglU47(_StQw0g9$O^3LE=sCJ$qqsw8Zg{Y*@8KU67q)#kOY%RM zmHOf$_WYw);XopqXn?7DOHwH27MXk9(DjO+$F?kqLLcMgi`($1+bn$X0~!DMix>TW zesQS7MzuB+@>(s@@`u#+O+yQ)vsj+Bh}?d%zXVY$)9-t32TKL!;^+-_2#<5W%OZ}> zq^czRN?`xG?X-HxONo3zjeEmU!q7NnzV~k1=9}w-D>NJ1<4^99hb z%^P-~u~TgCNVssq%0)F7lDZq5SlZrEotLoSZWLz`2A-j5!sXc$jOT)V?EtPJPdxW>kV{KrxJB zLG|ot9+)*3#Z0UO7fU?EEll4n1xuzVe%ErhB%%PBZ-c^$?8R^*{?#SyuV5;`U~yy0 zl^NO_ZAJHZFdqH8_f?aojT|P2=)aFmiz3~7mE?CFeC4%XT5Q!#7B_Q=iqt#AFEQuV zy}H2`cwglF>4bqioPyWa!jFD zV3WFm2zWVShQnjrDnehvOMaH+7CN_}ki zEM$KIS!mBGloao>T@G4j0RDAUZMcFe68cY8A{d>qfqrOtx6(q5Pdlb-1WI&d;dTKi zMm*?zSg}tPT;xc#KU7hDwOyNi_TVWaOIMnSCwu2mZQQc<>e;;YGH<}glbliML3?4X zO4J-B!qvXxw9*5b|N7}ZHcnksgmp)CWy$l%3l2h=8)RDB5t1MLGX&&-bL@qd8r4ul z1WH%Oz-0O?RMIrGGGjoA+;KqSyvbV-B(Fg8411E(bgeJ7_h!L!nyW+7;KzhJwFh+= zX@MfghSW(d#fxe*C&iyF{HI)QKPsN67%t-DSt;t1N)9?kRp#38}n{b?a_J4`xmPCGjR3SH!JeeLEmJ+T{ z|86Y0 z|1>WA0h+W{CvGDG2ZK-*%(_!hSBtqVpjog>#wbLGWC^WX>4%CR9WU>%L%pB22jCW< zo9>mgT5oZT$#%q{aeTMrg6i6YjgX@}czg9EXrAk~8!WD^@N=4GH5n}`0>DvS(?d z#g@I0gd$qVb`UCCNzD|cXk?cxY13kBArxBFC_;%gOIh;!T=$WwrswrMuiyMPGp{*w zb>G*0UEk&Nd4EOe-I8qb>4+H&E4h)hwZf^#R%hk`|@JW&+29=XH zBaE0Qv>W~DcJI7fEMW&X(kSF$_B~(1Md@ij-!xJ6-$zRHPy7>pXv0&Q*2JqqEnoCo z{Gy?cfJOy*Be~aHP=l_rbw9oBIE#$(m*g{Nb!>1di?)Dj-hN(*Q2(0}3x0Z=_=naz zad4xRp3l>_)o`9w+97;&L%%hN;3cw7s?6|KE9O!mn4N5Y1S?oeh-qnPX9%(~?XD}Z zK_bW^^e+5cF|O;1)$NZ-t7Cd5ZdgKCg#RPJ|KVMQEG5cF%U|c;@zRYQXp>uUc87hm zp;34#1cg>$*+KD|DeP?}XtpLA5od3$*@^oj$IcrxuBTR#@!OSb_zx@Lk`EqThlqbt~VfOxdTjGPKuIx7L2P&(`Q39Bfl>kK{gW6gTdVoO}I^ zkKq$tn)7ycHAf=wIYy+);R?+qQ3jOqBDZS(K^Z_yKN0x1*zB%K;S0dB)UdBX$~D7+b+dSu*E8;%@nG)jQLw9i#psgA_CTC7 z?|h$CxQQ<;){`JZT@l6&Aqxv2m<>7dwLJY(8ved}L0)CJ233+P!vA_np=e^1K=G31 zy3^vhdPFM3KmFfQq2kHv#9Qxnjwy_v%$yTt3$LUk5l?#fGjhjc7f$4Z&m|$8cR%mT z#SI}x#cLMhUQXjwWSopE%SXF)Ub1%11N`Y5RSB{+aVH92?0b!s|xEV{T z@kA{>myxf-rW4voZZ~yRbPauS2;&7py@?+?Hqyx9U{U0~ar2&HU>pt#V z6?ehM=~q3B>+Krmqe&D=jB3hacC2f>D9u zA#ah-&o2A6X4U&z@p;(ZzIqnEL z8x}HpqHdr(-Ori(me)){Z+SGtOb%!x^>kHaSXr&eV(tiVbS8*IdGzKr77rJzBzOXp@&>JpwQ^%?bO(K)~WD5 z_W^LcBgSMfN4^A7Utu^~DE$7Hju6ZtDT#%-GU_@%j}-JEqO6W%`Ne;F9zy@&d1O1e z7-^!NLdui@VxkYnMI3%9NO~=7TQ9}WcIl}A$(zo^!=LJcQj3~63ZHPW(d4HDdnbN- z9$ZhlXOrbWwFP7vOG}?$uz7QOv{^4ayjS{P`;Tl*h;a&CyMx%``wNs`FLsJFp+B0I zsNVQ>XwT{QRT+!kKj}*=oVVB|vh-y7l?vYzd#nT>e$gWGZyZZ4hKbHo$zizHZ=s;n ze8dC>NAwq(?3_ev3}@>M!awJcI4i3J^4H3^UCjf2fwJnX-C+GZ=VN_T)^=Ju*{w}Z zx+-<{^V4oRZq;*JO)dzE<3x;J5gD4(-L?T=O6t8Z%I911q9Z}VYawR`hXT7!w0EAdKiL=#Jx%jtLxU zLBDhmo}DYBHXHzhN)g&+82-0I`gbh%p?HU*n^5x&$Ds=S^4LWl%IS^!PU?N+PSeVs&MwV4G zo;WH9J^W)EbFQ|_hOz+>x zkdKb(*=mvMFiJ)k6K!WV46*2YlQP=AQD;C&Cv_PIik;dffptENRVOf$a~4opKcvn? z)Rjl#l|TkZ@ja$%zc>kqmyT~}LJ?@``vQi5Ae|*E9<$)q?D?15R6~Dd(8aiL0rqn+ z8BU6~YkU~jB8$@DGBelVzsh&P+~WJe`^r}*fz62aQ4ZLqelzwvE;f4x`zd`Xs4Aa1 zFOOa{BC-6aDluEXSFvz?K$NpHHn)}q3>is_oL}&2libIbKntzwQ{9Ymxyn~STn5=6 zHJ^5jRAjs0#V?_+wrB0Q&pP-!PpA2Nry%c~Y;Q{BR!kh(xmmNRcdoC6H{~P?6WGuU z5Pf30u629nmcQ7K+A3ad1mE+@aMCla-f!I^Cn(jveE6!nlT4M()r;|M$ZSSJ?GEfJ zXVC9}^2>%cA>~iZp2^-obBfYBs_@?DFbJWFj?s=wt9HeNDD}zV;6NW&CvvV9>4vu^ za21!^L>%@y8}OnK74@>ER7?5W1jIoCd}MfAv$J93EdPM67tzDo_QLGd!a`f3V&~lw zx`6;j!Ju48Pl#Sk;VaO3{O4C!<^Jwh?_}WIm&drCi&5iYU^T{_)d&w?|89IPEqL!} z%(`N>TAu#$gC14Bi=v%U+KE@Z(&tKi1Ci|0mbs<6BFz!|<{O{RqBTH}j?@Hne>*6_((#+4C({;zQwO4u|Pg{GBpTIZ=^{(xSP!QM_b zGX;Zyp%yVQ1UnDZ#Di1*wk^%e!olL$?)m(D3`Zz8_l$fw5k+%m=#`HRYqs$#iai6E zg6*Wk0j_XQ7LPfRN2Gk!;NvIlA2J4FVxoILTg;?H*chm{{w39IxK#WkE-TBeRwc8| z67JgCmWFoQcWy4>#0`O(%7NXQmvPm^Coyzz*UUu=GSu!Mb+~Rv){mWFwdJT1`asKx zrm0hu%k?d`X=0Igvc`1YSC8gfJY3UUhoX_;rI|aPm~&KB^p!};-e|J`D9^gUGcy2C zE8XyqbsD?-REN^PKfNCv23v*Ays~!S=&#Otkm~xbBrdjO+|rl}P*YM%0_;&W0TeS7maw!LtfejZe?PiWzRej=i>d8q-?I>)_dQjB3%@Zqg-bEgo0-JTsW$zkmjw#*cR?2CnHGXa*GIcb!XlXg&a?_a= zZ!rx(!&_ismxJ@^+c|GFHPjj&IJmRYW)_(!ynK^VBSlPV8t}VZ{>`;xhtViaVZ(x1 zt1#Ju5hlI@8soIjXpnrRjXt#mB_dL{a<X4;?eH5hW`svf)KAutM%|5~%@YJNks~4r<1}eXmFN7qqn9tryq%;CkWG+oUz}FCQRNTXbNFyT8wU4{? zNOszz;it~mZ@(@tcv(2lBJ)mDOvOV{gO#CxoH#6RbT=Q!l>L5JH-vFT2 z=e`;vQhoP%7-tkyk$h@z(TPFoYiT$^N$g8_QZ2p!&44{gLV8=|Ango9)#7)2Xd8Hq z62&37vEYOk23kDS^}J!Uc;skfaXK)k>J={Z7%G*N+nTlAFQy)bSs(tb9p!$&9@$^{ zX5O2&Ph9kcZ_LPxd1_MF=}Y(Iz8ptjzX>tv@(OOrpOXDlNLamZsnW~a;BIPJZA2Si z#_KWNtKgI=`IaXnWhYH!k5$lrY?KW3TFM=s1BVml?A{Z%Mkb4M)A4 zROx@juXT)V_FwR8tf~>mUH`X4yt8t_`p_<@pJtVCvx-;8bei8hOy%53uQLG^0`b4w zMXS5xYWH!I3?N#5_TR)Qw}bKzA$$7OKUA!t&MT$a@1lJe2?x^%`=qWx9?8J!q~9k4 zX8lyPDF{X9Sa}^bC}CC1#Yx!NC9XAI@EP%+gn@R@%eI-mKGc2p6QhfXp0!rS4_N2P z!8miPMdvdNZmNkKe_Eb&vUL8JbxF;I>+Tnn-1=ZKbV_~S_@@42KT~=FKF=ixzNKPU zG~}WH-vsASvp(QPqe=onTsC#~On~CXk+xMP<7{vC(}u#lZVRu1_zNcn&2COCNn-8L z%$hWV6WoGl$65IBNaz$Y%!9?ykA_lDoZ-fa;44or|6JIqi<6;Lj&r%x=K128;EZd% ziU@6`Mt5k&OgmusYz7J3&2Svp;VB#;mZdln1`kMZgj9#GisFOywPR@65~FmA?#%jp zb-g6u{tY@6-u{NG;C*>X&IBxh?=>$W3iYSxWU+DX=N4rccd1m5!6IW7*yh_JP%?OIM>M zqeIkKcLs7(=A6AkNMVx&pO@|z_*!?ZWqHhHl0>9T^zIf>nX17puYd&66m$oL@HLCf z12+&ebtQeR`TG4gFr}-<@r1dZ|E?XXuw(I(I_rw&i&Ij|?~|igp@N_%8aNy1P`N`a z5Tx|XMTjY?G>1f`oX5AnBFa(EXJ;DJ^ey-mt8KQ_SZrCx-;t32HqsBE5Qd7mB<%Up z(ZX-SM&BIm#a%r>K@Ms`8ja&Oo32KI)2^P$v9CW@XrUjw6oqY@txl+7q<^p%&N z+lPi{JNxJ;E$f=M!7t`-H61ifN}B0PR{8y-wfJwGWHCk?$Qk$U(bY?OQ6`4V+ipaU5l=>?9^iFM3lJk6uD!y zupnw9WWEZIdM`i~)iYUTwg&Pn*Zu_OUaR*1fpZg-^Kl`9a+WO2DBkCZ(@CpEt+bNX zoUL`PS^)OC+T?3xYN4hnh7pJPRTO5AXYS_>T7--PkQma>kw{+99=V`3=)5cm6GHUa z9d@;(pInA$`lI-p2;%M*lhFs%wBe)>vU}5-sYgqzGjokwx8r9#@{r$WJ zoF(*wk`J9NI43m2M&QX~Mi!#|ZB0#O^)AENZQW%UZN?VW$t%SbbcGflD*;nyBwt|- zmA{Qf5Np1Rv@xfP(U`C}uS&jFHwQ+?t4To@E_>FmImKm}(X5Y;K0keU{@R+T0_ZpQ zq%c8pstaZ=_@4mmTiw(C!F99Vv1Q4x?^xOqUJ=71C_CL(N!Hm5oD&%{3@H(*>9%Sy^>hI_h~30Ezng-nLeof#In=Z>C6^B z`!#sw@m;$!C&WrxZ48~oE2zSUqH@OA*pW6% zN^$Ml__)dK;d)I=YP11y$6MZ-5-_2`40Dv=X^ht*7n^;V^fKN=%7Pa#wAYx(=n8bu zhs7kN-0e`TlSkngo;Nm!iZv%9hc;nPOV&42<+dYB>&|RD&3t+{jGFBMgc#aha0dY^ zWu3-yOiGgvx)wSEPAg zrT0#*OPfh=h+=c*JuFLuP~eNBkUE7Jk+UkwY256OxFU5lF#%?nqY83MlFJWgY`-tP zCq=hjBjj5AB$j^(7OY<;S=3$#$o5`a@*C2KOBOY^Kz41nc?Ak|zLf$JUZEqdGLr-) zNxVz%@2s$xPCus4HU&}SR{tPzpRWmr9goX)MRgE13y}b z|7G@v2Iucw)2U;Lik*mK1i_03i(yQ_QCM?Ssj7n842VV!OJ(vCD2zgrQQW({uIR&F zeX#LPcE=Dm)~E*x%#?I(;=y{&IeXZ>>NUohmF{Wv$mzQYRVoxr+f1`#; zw-jFpb7zT~xRy7WOW+)h_eK-LC!s+_r8C$Y7@|+^?G|d71R1i=)gtuamOt+nP<4KQ zBc`TdO#&HL0Acvm;0LyBY~%N>SgvhC+NVE_x3SmzAIIB_>Se#9hgsWd`rQ7EaZ^I= z4V)vfILBB?Ndtx-RgsXREqgI@J%}-IduM{;g?6J1Y7%=A5;EG+*)i-S?bI;^Jx7=6 z+RSgN#aw@6^a*B4%304G1;qoeV>4K7K>E6r+GqH-fe@z`!MBgiw)`%-vveJWFAO%Y zlPdC!@UyxW6MP{oZl)N+yZM^AC2>|w{L1b*ej z(a^Vq+46^piImK=_pO8#23i=OO2Qx2DUx@Hun=?I>6HS=2w*Aya-mD{?sPuwJol8k z!E@xERJ>IyM$abjS@*;=02dU03tR{gyDXu5R7t0t%y7}4>vkGL9f1iP;+F}&A z#VZeudK{`9j`4_bcFvM!EFh!Z_=@zBCUSdEwK+F3uKMT{aX+od4G3 z&I{N6_QC$BJ?}+io`yjaTCWi`QL2c)jGCZ<0cor`WG6Yv95QnUVKJ1C-Q_NxGD0`? z$Ehev*G?RwrlME|;#SGK#cxvMOVxbMnoIwjjXZ_T%y0_!pQ;B`XjCVlFp6!Xq$KJe zw}sAhDaNMWChDfVt_ykI@3Aj=HI~2&IXXM2KB{254wX7ngVGFR3T{5JAc~Og0TpU$ z8FkwA0%KUWYKzsdP-Fcim!F95n2I;+u7773;mDF1xi_~33o{@#T9NdyXrY4*h&${J zoD9B1C7s=Zogr{b!qb4-?zw9h+=sCXLA6DHar&jCD-baQ3BH##N$J!48{Rkns7x*% zuo(p6N;hi=8d_;Zb14t6kK5D+{uc3cy;snC{M*)R0DwikP|r3VqQRpj!;G<|t3d6E z*~^H$(x5-{A+v#H#-Wax*q!!VM|nZYJ2&2hT8dsv!+5?kFp;U&WOQ5YOy=R( zw0^cfV!#hYrsP2W7bNvl+_=uz1ZL^GifZeg&%Z9Z*^z(y38$3uU3w`P`mymt_E`mB zlAo-ipm&WgHj!;^dPz}#JX4P^NCo#%rUd#Pqvdx!n+qt?9q&kYtJDF*ITJ)Mx@6cLNaCKly3H_}2-CH#Hd6Oa#CU z>z!bdyqIAiCL-wMG~o z)lmH-Kb>B?kC#IuaFv?AjYEX|j|8pv)lDRkf3Z#^H;?^( zULrcU$y%I3RZpdDcC6TK0Pb)h1N&NjZwex!jkNj>ZW>uX`K@l^e4?lW7(Sb&xa|6I z9BXz=y~q!%JV>uzn~i=H$jDt_%`8lmmkgd2!ND9Ie%%9W_vm7zq3poWzmAVW_tv|NPHC#D>$AzBzQklnB0w#(yBA yrH}pA6u~V~TA{i6pi8VTBm)YS9sW|HjcBUu?O(Y@eAt%_f346nTArXH6r?Cty3#{eDT;KEUMzG12!u{(3My4mklv()-b<(=p!AY} zbOdPu0@5Ocz+F+_^E=~S-usR7@5dNG*vVdd@3o#XpE;k!D-AUzT51+*5)u;Hd&+mU zNJyx8Nk}MTj#GgnjJMftf&R2METYG*kd}{Us>80Cby!Z zKUzh3|PzB1W~E6?RLig`kLs+sP7%;l-&PM=0F7|=X!e*L(mfipC) zmY+$3blYV5)VS|Lz5Aql@Az)g8hkUwalR{Y(}d*9$-=vD>9k3|oLW$BA=IBMdG_<< zxC#mB1x}KyAG+r(RKBI9HItMq9ju8u)4x(&scd~d)aZ9ul=YeU=_ZN)?bB*AR-3m@ z$wZWECf|)GC&3(_5z|lPikp@^o~QhV;xzk*>328SQ>H)OQ`Elp{P z8zfQrr)9ZfV*?kXuFjV-Z7Mu|u6J=I`OTZJO4YQF&R$jwTz@XZvm}}HuF>Y|SCN`= z1_|{7i-C2Sbo+Y{v9-hTh(qZ4rP3vd56WC8GD*KHt1IoSM3#4PN`ywwzj#pgQue&; z*V_hiDB;c0`q^v=N$EhLZl6N+DC29srt8AjLic~%OuwM^Lzt%2mn+L4{ycw*m;t6c z*|N~}>M;YucjE#KPCxc`KYjUN)5ECH8@&+2bXxfAEFVtA;`>I$@y`dQLYsSEaTmGp z$cj+$jS`7ZUr2UkoUAsOUycaHkCbeT|03gimE_(92q(;-vh3!sJ$wipo>-qe+PUwoKmgZ~0kY+`P zME~Z~o4i&+_61Nj(ht>*+U>Kxzkbv|U(B}hiSvH*L^^Ohj!&rJqZUa#4XK8=_^i^GbefAPx&^1%ZV~sxh;T`;%=aL@u_wHQ%^~5 z=%0)UK&PH!2!34f49X|JrdsqF=A7dW;7*&+;M?MHC4 z(-06oULU0Rh~Yt?t~vDExynETK~}mzuJ4pi)QOY}EtKnu)fWl_=$lp74SsR^Fk=JE znp>{>YsvL%dR?bspqUG&mT%2?tEq*e);WzhsT+h)sz`@uRB1}*4CnM(^Tr2Trtxp8qJ}+D6XUHS+;%DDD{04GthUh2I*G#)C3Z$jvG5LWeLbGEJE1M3Aaga-By~H_T=xU_h4(t|AHQ$m zPU60U=s@fs`VlHRc{=L3JAIn2Paq-5YEyS*?>8!OBxOp6N~;Lk5%Tv8sw{nV26Z-d z&gL-YisVe_vg%sp;1Sumj+%}S{n7)51P6}~>gShe&jz;HsWPhSsU};#nb+(NF)WUW zdsscBRUmCRTpnBjD<@Q38D$(@C^uW~gGs@(VE18a%O^1dt`jhY+RR!jSF>9>=j|0C z8Hvx5Z+^_qWKO*{I94#6E0)!ZiX1S@m`XkT>~Gz4OIh@~h_%?cTPTr4yXvmup7pfT z%`Yu33y(UW9&Po1u(|N0uBUp$!#}s}hu~%$tgHR%)3fx^ywNPtl3DuNF*fl_bb|?& z#c@G#efb?L!4mdZYyMkPk0wP}g~mK9J>0ri9BAHBj$Il~?@1qi>u}z_rmb{jBm8}u zZXKE_k1nrhh;C?U$h&}J=Xq*ZYGZZ}nU@RRMV?Uw+@zr{YIxk8~gPwm?6{zHq~*9)((Gjp&t3cx)Y*7l*B__G(zP@l!}ne*$HPH)@} zf3ZZP&X>+R!w-phc`xjq)Cch%+V4Y7A<^RZ(D&|0IZnDw@-$p)d?$O|>Fm4Xrk9ad zVlUHwtj@GoJwsI{(}M8|!BM{Up7ED3`Hl!oPPuUIH|-i`kB$Zz z9uq@1!%AzL@0tf)xF#K!>Yv1nj{ZuRbHuA-lJX&$UbcfaGfRPkQ$0UY&O1bx*UKb0 zR~Gqd;xk-I7O;u*l2e`+7e8f&!kK$v#gaY7&Pdmd($2ZFdir|tMG#YH?YvXL&)Syl zHnsMiELJr!LkGx|{c8LmY%iw0psdQ*!K|*O#$_8@hcv;ZV<*Ugyyl3 z8v1tj0kdbPPUw2C_a2xz zR?*rtkN#`}Q1-Qj{yj@oRT6IS`Zx&%DGLcDctr}nWk^~7^IDPgItlsj<76ZxAvPow ze?OxJeiOfz}i$^!ykLM>b$ae6@Q9b6zD(wBaJ0s>wW4+~u4{QVJEJLyaMsv4Yk9GxvVMfnB! z1uw}^b8>P@IX|_8Xx&x(dph__`jWM)s}n>(z}?-Q-(85`(b-Diri6rqfZ#2GTetYY zC-_`E9b6xI@Hx0}{Tbw+aqe2UJaM*haWrRr=B;;)VY6_2)htf-2#}NuH>MHYp3-gDV!@aM( zLKn4_zkay!_QodflY`0SsfF^!h2*u#sj^}AAzc12TnbA_UX$?F$JaD0KN~V#E*pw( zlfVs)9ez6{M?y;RKl}(7rO5KccTw;TwROHa{lA?oM@GTB;qFgDcAWEn_)$S~s#st0 zCiDMxEfP{Prd`(m@tlBB%H#U^Ngrtbm-{0=3~A^-?f-a=+$xxjA+;{b|6%fpE0wzA z-}*KB8nTty%;)n!c9L7X_j>a&!a-RNBya3lI~!s7TC&HdB-ep^H4D2xuE{PjnR-0J zt@#~}vH9))#O^MntkoPc8QFiIkF!edu_|iVL*Rc#`i<|_<69SGa1vshT|(}Y@cp0d z69Rs_ojq$_Hy09JYN1sVZeP5?0kiSBSTpQYbO5gx)UjbV3pp2KG>+CYTb=Zn4L3#p z!aX$eg;lMTcJ2+|FB+IwV|vRmG0YRo_81y?%C7*n~5F^Igq%FG^CE}x&FX8WI{cYj1D)uZ{dcWU0)+e%8U6t@IV z=&m~E6;#GMh9vkM>`r7v%3vJoekxA&WQ*3B8tLNtm&fZujxxO_&J!s1Vvmj++10IJ zUOrn+?G06pgUMOK`L#<CA3rBH|T&-1# zuN%Ubks`OL2@3^xupu8bv9^qpJ>2b8vnf#}4ek_ZtRrCjxb>Yo-rcw}sl7faI%YpR zH3p`1d}qv2_Q$4a>jC&vDn^7>78#quxqOE!XGs&y{Epz>AyyMrxFm!%N8!db-%*YHyou_ivqG&YYGTCwW$mLHno zeET(Bw>lqGL`KN&EoMv%s0c`-t#;Z}1nPf?PPh*C_}h6mBJjnVKhGW&83N=PUqZ|^ z7bRDUgT`RPCiRV$raI>4MXNa(5zZXDUzGNhVvU_&;XCvi2JFN*o@Sd%LLpORG`!Ph zW=_qNGEF^)1KTN-yxhlo$(Z#FEEuz??vL$^+6h#RSSIY6K^t$8hC-T+9P8(ZbK{P! zSr}a+^y-r_MM}(n$W?6Uyd7RUs4h#066Ww)Ov8RYtA1gF{m5zH@L8-xQt*P?0?$=CcWkMdryyOAg`rc9y9V90@OQ=V@ zh0Upn6#h`9UII7ng5-*na{iJZpWxU~gPe_!gtV`d9krOGC%VLE!y2S>jb`gMdo~?y zntrNDuA&Gf-YX^TK9Y&P=0dy;>z`=gRCm4os#EA?_t&E$>12MHR}C53?c#vT)8dlW ze6q`^!zNK-VIdrFk8J3A#jvRhPf?w7wrV~Cf9~ydxcpIWZB9Z7rgNnN)uH^LVyn3O zbxzx7tehkb6RKvz^1jY`M$Eg1f@z9Mc8ZE3@E)-#ADQ!ZMfH{5ATnj&e@n?b>32wQ zNPEGwk&+j%Q9T>6yplI^Y9YlB&hblp%)V@nir02&5m-vSi~UY32xTf9bvd{O{KQ)A z)c(9!Qe+;TK5sM!wIXWe?I?I?VUGN7_sr*8BmMTDh{5+g4kO4U8K=Jn9~m-~DaxH+ zRpPP8UTF3A;1?nKO^+v2f7C@AKWk-78eyy&bCAs5X~L@Jg&KQ&f8kJAGrz&X<}n?h z7L>7B318z{Gxj-pV9w)Vul*I|%|NVlh%vDIId6E$u#DeUyErY7QY7y?SkI-0M$n3j zDkAu#gUzXr_oBxyhFqBOE90y!f^X-k36a=plcbZKMvBqs>lDut!)+0)Ux8VIj~qG% z)@9i$pl-PkIsS=8z!+lwY90vou--G>|_j+!PC6S@|`D&|oA zw5G^+)h_A$gIN{7Gby%py+4S-mafNHlQLzbWU0zK%v(AWeld2vgWuj>Bp{ z->rTnB%_{jf1?aYO5K-RXsIg-dd1CBH`f9kM! ze}!G1D0NcbQMV~ycU)B?p_{N%)wtbg=hmvLXM(QZ-{?HRnI77--KJzkeAg5@e*mt$ zgB)22_wpmg6|UT}b}MqGDf}dE&wwojzGuVnA%{@TP;Tjo%DNKmK5COaKpI*b!a-P6 zIxwCn6K^|JT-`z^Dc(Y;2`)YAgNfPfBA>87|(dct44%XRCh>tFMIN;h}q$f+d1 zA&4Mj5*xMVs+xl1cf|qw&f=yM))pGdPSZL*lq9by` zZLAyGNZ2{pes@EAd?`BxYi4!m{Tl&rFf!yqL1K0SsKwJN7FdYLz&>!Ht$>smK~GzT zJ+KOMAc)Jt$mCaD;FpdQ_z|;)-EPO)?P0U2M%ehX_L>%Y*}Bc2O0s*JxFC-GrbGB6VO8I4n%(oP zBIF+{0etIT+83qyI7v)Q_VDY!HlLqWb9&MirdgUbn(VW2&(Z1gX{BnbWKT;(uP6CY zxhOy?08UQeHP>9=wcXSjn+35gt9E}r!4Zq<$(C=ONElsY_gR;h{iY9f9T7!heajkg z-W(%OJj0Ll8%}CrmSXWUO#q?{OKR&BvN{4L?Jv%Y|TrK^;sC$4COZ`NDqeH_ zAGnhklR2a{=p`Uve$yLkTEv*2lNp0la?oQd{hw{k->pcYe6kg@7gp&gp=5MoN4w5C*$*xdR?~SbMYK84MYT*z#ZiZ9^@Gf zZ?V7ckIj3{vF;Nvy#?u`Z9eK+pJOTjjEH&-^61S{Hr&6B=J>ib(?DL-yVg))@A^FFYD8sgpH>9v?N1hWYi4{Neo~*&wN7lLg zJbz@Y4dN8E1(7Y?AmF(ua)t;kgnFfBK?Ikr2CLn_&`JcdWooU$kizB#dek0v<$D?AKqXj*K{@r_PCxhK8_v6#e#NnhLqVY%1uU{g*0`Dl6KMz+lMjl1O2c2>)GfJI zhy8jj#TCG^_bE1-k_VvZ{&`3xVy-E~i>+NQocxhr*0Z6ahc^q}Rp0$6r``Rfdfd5_ zwv5@4>!?H_sPp&n&Z>zw^VM$+$dDSE%z;Vbi2u;#2#|}3)mNJeHU#ZW$7P(%Mo+8N z(Euv2Dd)Jp&w}LCl9d38H`q|dARsi}L^FZxbW#0|q3moLe9AHbnkYhnaTj4>2gQTe zQmmj1NZW*E(?j2xvnh+hYPKWufH}a!tFZnG2}|oBk+_?I!bvg%;XVcxlg*n>rQ+qU zKxtu_8-KkJ^8|)Ffypbv2A%dcz(`ZRMx55m7!ZLZ(H=SbZ;tEZiSxZ6I_}i+>CSC3 zCfq+|pxvTW3Sq@6q&_(&;vq7vvhiTMC}}oWGIa`n4l7j`d1S;-C1U4R09(3L6UF-z ztgQ6PAAGaPPD(tmK^`99C#YEM%{giSF)&(CJ@fj&y?fvTb8$5&g{xBz_ZQ$(N*ul@ z-~Cw*ToIC-iSeVgkOU&Y86-#?{)Yb=0F`XtuB5@D8xIL<6Bk^%zOU&OHU4T9*c+ZW zTt%)mUcIstDNwk8HQjx`HYE7fI%ni$@yDaUvK<20-eCW#b;YXdDmh-me9V=@$j#`*)k8~Gk z+%H|G(;v6a2p@;zR~OWOHj&f+QtVhMZCC9o_5jGM#*eUU)-s{E;G3y!Q?~j}TkTmW zU*(6xiU;rq$x<~!86VX)05+;78VVMqZ#RL4U+G4m^q(NIPQ=;*`7!0i#<)xG>V6N+ zk->R`m;uW~r7MC=zRPfB$P*8DqLPc$#lJuADeVin;QUf@>0@*j zwZ2YM3fWc6s(Eag4%< zcoNVYupZ4r!gWWcwnJ6RL&U* z@V%uZII%>41Hy2u+h$$~YRK<-xr}u$N$8Lb&m)Ev?z;H zi!WRnWLV27Y~9dGq+uW)rLDeN*M78lC|*i+lPIWm27tMSR&2a@{Zz%pi1R{OPO@WZ zdQIsvV~;}E#sSisvjo)K80b7WKsIFlo7{w%e; zIxd$2P^9b}cO~3b^bg}KtLgxek_az7+80?UnM_|dGhmx})Wt=6T1 z&yOrHj*2tCj|o--x|+^m()s9Y^RI*5<&tZ9ENmcu`+vL3bH;$bKPKi_BXp!o{Oe%p zr#a1U#^-ZhJTfQ#>s_8K1ZxnKP&IxuGWyrS`j4L~KBxLH>eT;smsEOS4Vt@+uqTf) z!GAp#U`=scKkO=x^6?|_+rQpr5RY8b%=A2;`;nZ}QL*v&F*#wdWTib61+iDuM}hxHfrNyNi_rrRZ%VaxW_UD9@i(^& zE3-2zVMnco+$Ay=`*F81Hqy{n`z6m3jwN1D$sqLB-zE1y2n$Zwti z9;fXP#dM^{DV6{~&Jf>Jh8%e^EpXRwB)4LZG(t{FV1L?QEU>4KysZu33^7%+%12)J z)E6-Fhvw;{Nvz`!t^fzrxmWN4xW=?@%8R5gpc;tmYbAt=#OWdhFGT5H80P_)1dXlT=$diS6 z!O1Pt#&kzr8AwPVLTI?e;BOz5-cpHyAn(}^-Xll8EC5E{@FOERGMGn!Q1_Uhp5w^L z@^4Zm=FD6M{E?v|Dhte(&Ag=hk%W@m9C+Y|Y8@wz6ur+~C*~_|$(r*=F2v|rPV*9J z@4_Q}rpX$t!!zL@XKaov@XZ;3ZHZIgdUg58hw4iQcg;8BVsqq$sqO(^lkZT)QXaVw z7^2=i`A+CRBTG{f!D`iXAWbb%h+0@sZIF02b62dBx2$@zSGMtMr}KaK6i$Nx9ZVnv z?^XP@p76iWMvjsUu<9SZ*Sx2e`2i0>-NWSenn>7p3lBcPcJLIPlsv8Ue=sOanKQH2 zyp%L_&7)m%9Ms8}1Hzgg-misV0VqhGniP6><9>YY4vc~U9!+Hl`vh4I3}PwepRo{E3ECP8nM9XNy%a6R>8$Rq1|D0W6FJJ>CV#)z084JBw3rn*orv-#q*7d;&g|g7O3? z%4xYEtNr7`bhX^zC#ME2i?70^aOEWU8{Yree% z&`#jm&hBl$Q2V4k0+xawUl>PDZWs1=7d0N#N`fcMwtcs2-|>Vt;7=v z!wB)2<3t{O#K-}31?<40iR=T`(GPF5KwvNptE^3(`wFzWAE4Nil#Obg9GvPRsy%e# z(1P{q+{?*wjI#ukqf(txn$AArp6#Dbj*eB(UVCUmi@s(3Hpc%r(g)4uJfH1cXJE zt0~Gel}aH`-T-!6^snEYt0%K%9RUn7u?(Ll5~@An)|IW{Vw2x;)oc=|w2X;5QdHmM zGA`TlkXUpjkugEF$GQM_w8HMSc+tBvoI`f9>LNmQlQ`#fDFZZ=uIxZGbeQy9fKeNw zc7QEPP@V)Fs|*&jA}E~-p(@LZtmv2ydUIKM7`0R6N3gq$ETjLM`cT&ejZHLszohJT zS!E$;4i0dQxFF+>tM{5;VtCkuEFUZ|AkHQ_cig~&N%mf-2bTMlir1mInabgifO97n zd&rsBJdke_0zg?voTg4^NhIR_h| z3+_K}YQgUi=jTf@OVlA*+41#hx(^LnZJJtvWVX~Jxh6FgRlS%V3PJno&}+`dTN;Q4QkP8mAV@=AdyY z)QEb()etEO&G~h$_Qf^rG9SzV9T2#+7N$A>tm$K>MP26dEku$PAZ@qVlJ^{jal2sb zn;)aU?XWGW!_q+r$Z`PT1V>KhYD#O^?>~+W$bz9LkKHua3nT%9hn4$16^Yl(uFtxF1P z%{NFxiJde1yov-%b6I>|;O+|npJw-iWRICwYAU~cLFQxSV;V7P110JL%f1!yKV7Zw-`oBW%w-X zl+&=WOSrc0=Sq6t#XD+@-A^JU+ImTB*68=tY4k7f!Q@3Q*=1b`FV&N?#k~~*7InA~ zbOyc=ogz-)LEbRe44+D{FTFRSz2$p>G}Jfx*>5P@bo~qn4mn1B%9a(((g(k0v3+;w zx7pfs$43ECI=@UA&!{2v{hNQB=|W)!zjD)Kfu+4k?WT0g?Om`cW>X5{LjSlPw;-_z z!^C|8Er86Qi-nE>Dvdz0Kx`m_JC)WK>Gn2kWeV)Z{X|_wt!260>CXC?TpaHAQPWD1X%M}=Bi7KE^ zptHxS6W?jKu9`g2fHgw z*-{S>&ATDUSo_l<&{bH@_}oO_^Z27B2Hd3()=p9!L-gMqGsthcEh4v#P_`W*Ha`uC zokC#KYJ+1sRx9kw6lLv}@ zS<=v(D9WN*40q$*$QXPj#6na+XIQ&l6{gmW`q;=Sos$F4>7R;!R^~m}6&BB@+^L3e z$T1&T1C%>l)R9uj_UZe=Jm{zACmIU9K_J{41}!nAW)MTJS}X{i7qf?Q_|ZZl9gRqA zJ|r&!{mc-ew4^;<$YSZ(NN{UhiNa)4cRl@6LYtqW2+pIyOlCcZo3U#9+Vg2*Ia$e& z8C7B%G{DWq@=SW5)&vb}mZ#T8os5Y`E5lNi*gZcFkF|%hE-ddM++o8{P;Ux?tqMvv z0_c63hF_F-MN+-aAv}Ox8WVPTlgy^0q>VShWm&N5t_}NNL-*=TX>*k&Gro%?a<@p} zv9jE$!|Jh5P;^R%ZQm1ti_?D)F=y$%Nc;Afd zEMv=OxWdbcsZL&7TGp-VfP`_|MhOLzw4F0~PG zfQM5ydHgw4_e9Pi_+zV3DV9IRL6fI1TOXOeK;8OnS?c@ryb}qKPr9+X(pqfu7|vdY z%DV8$!LCHm;ghdz{_&uvG=W7~BqNgYnyqm4ftyIG0%^pED$J77YH>|B;MKJxSFN2V zhlWB@h_skLDp7#^DUfwhzBYZ?WQ-z)2IRLlE8h%J>N=vd`lz$C*))?9!F(3d(0Mhb zv$&xz7WimK`9l)R5+DZ^s7k0Uhc-M9o0&;omJoQx9mo|uoYpWyyOAW&9?@>omVi~= z_CeP(d`OLBtPpj}H4FRou`gD>&dl16zlN)KlH$G1r8hEMQMp zExXBI+(g#EpVrJ%Ig$Kx>^OC5Njcu_LX%G4Lb`K4j;1hgOjo z-!QSShB(bsr81h^M&RaXJcD=?8*j$!*2z?h&q%RuhTH|pZ8p0$HA*!%M_bkgQ0UZ7 z&Hv-1IR>eECK|D*un>g%4NhRpgr~WgF&I#?m-FYqWoYv?e2esw)XF^UQm`IH5Mmh@ z!D+5}zNp7kM9!hCTeKlSb1k`v_V7&+%fu!SZ)$$`%hYcV zHE89^vOt-NbB5y^wEdpaOK(N7%EIf^8!b^I4#-uX>E}D=ZJN>#G%A*SSmZydIn%r? zSF>v*Km1dKN2U6cb?c-_;#bPNBea$j($$pEd?-(wfEV%dnzT=CUutEfaYyaZ$$+i{ zNtL$@Fy*{vt&CCuV#f?<`8iorZrP%(l&iS-l(i;!McBM?>uhn3kz*NuPXD0oWf@RL zB~j&{tg>ml+Z~nDNHbT0DdeKnFNY*iRpn@o#XPUvOC)33cK-z=t6yFzJK8N-RP~FF zDk{lF?fc3=2P8o(Bc2h60{*rQZCJnMFdNp?ljD#3^>aq)F{9iIsNxs#+DXAIr&62A zSr*gJ8w+bRSHdxYnBpPN@{M4K>_WU9|6x6XN)Ao$1#{CgVSaGMTyr<0&15bu<`}9= z0l|8sQJC}Ys^jRERBD_{xz2Pid`C#OT3J4lWj$?#0bNrNVGSiv@FH3a54ZBuL}iT5 z#CyHV{vrD(C@Y5hL&6&O=LGPglC=74U$e{=VfK0IePlGcjeTd}wz8;H3xWZ%yag^Uv_S|@C^r;7IUKwBz-w^gSIU6=`}-u@aP zY~GJ?VUhc2m*e}8+=o#=$B+7MvDXY}L0_>N)gfqa`%qr_riEg%7aZ_cKo(Mc$)Q6| zdM)pIr?X4w4sB5ViLVtj?{aAn1Z8rD@_}Fs+bAN3#&$ze^?LdVci|7BNVF#N0~vEo zMp;<(&M4}JeMTtibRLx)Y{2$oEz5h|?~MSj`$m}-&4zdvVf+_fpyZ zVIp=~zS}FmBir)R;Kn6elEE*dfD}c$+cGB^Ck?Y`76f-ooB?K&@Xqvtf{~xKt~2{8<*GC6$#(UxMR7d z(^3_aKBUgKogdr{Cu4#gfF^R(F)7Pc_omjsZyz_0+ig}GBw zf7^Kz>GRnaVC8eAms3aSD^`-J-n$;VnA20_CXvvcl>!zj%W`YCUG|_K+%s-`J#bAR(B?hCgo$-BwSQ8p(w_gO1W&gZR*%dVmjW-RqZ4 z;M14|8@)G?3WM8kI4Qu@RKb`0p#&b3%8bPLv z?{X@+faL_xVElRttA`y;oIs7bRVIwd?#Zhbr_FlECcn_@04lL)dVPj`;E=RyiC^6DV>tn_A{*L z#+PmXw2-K0vu(Q{&lZ1(4f@-;+w_HEi><&P-d&sCRGr>!S=G-Qf~i}XWGK(-=L1n| zb~cD!M*L~+5|*&)j+WMWgC5|hCz}-JHc|=L$GSIe20U>a=R7R;SD1LR0+UC}>e6@j z1W)idZV9Hz^RR4xjM(5NXDU#$hjp%OSB%$SVnv-^__yZM75ye4wV1x-(Wu4UY89g( zHt98-?!$1!LygKF+qJa<&DKgeV^$dxXiGnkH4>>?Ri-M$XM6rpcSAZUZ+uB>C1N=+ zmx9-JC>=W&i+0MNCNZisXp4WQ6kbcsyErM_r@x!N4*?YrKK@aEk3v)Wy}v6E(0?Pf zlBv5eJMIIA=Z`m^5{gHl!kuYkOh_@x5+Y!eQPw04#T>7MJjOMQOz9T&bDl4FnMPVL zk$?#!0uUtVh}nP5K9NE{vu68b5Fsks`P~VZgLZyec%`mFm$5j8u`Z+uJlWpl6d;O1#-pfO5xv8s467|5-Wt|)Uu`a%74hE# zR6)6!r0jAI%~h~TVx3^hH(e*br9+u5~JD}ioqxtz49};M+J?V6J%JV}ld%lj9?+3FGOud$_Oi2(% z?TS<@@F#`3reoi+3R#8~`4g!-_`5Y7Ny|xni}$+wFO6WqcI9hM35uQLKAYWe;T|Xa z$pJiI3Ry6LqSlH+hIW;i-$l_hy0SWQd6r%F+~&`St(bmgfJLa{uuyNBagz9q|6R!C z68Xo1L46ghMbI&ek8jYn&xy^6zSln1Frq1Sm5AG6_OW|1*h$oh0(q)>szDut-w7wF z#jvu-dob0U?{qb;p;C2I^OAr9#@@UzV16X6~f4#4W)K z3>tJnY$!zT`!8U7SKVo&&@%C~w_d0c+B?o}FV8~}V|H1$69lsmpb?J;;ZQKwh;|sO z&!yGyBPVWLIDF~f>TvPzo*+(m09atelucBbW#5qbiGmMqGq0}E)qK4LlP~B=uMHb5 z6ds#-!ECyCEcc|u&#^`w6Xwh2CB6O%-ETkkJPuD!7JL-AoP4HUvc-#Fs@pWvuf(xR zO@h_S+L0*J{R-Ixwws(dP_1@QKr@+0wh30B% zsqERbDZ)e-prHZ{)f_pgb0mx(hNU~Mdgnv#Rv3p_8a{Z$!&>}J(L_T&n_3i2a+bjA zpq-JUXuQ03yKGAs*tz^IgbISxm|hXc>alnJv@}J<%bA+=kuiBwGIiVoK-_7-M65H9 z#;_?J@@Bh!ynf^idanVSoR-;9YtBs?Y8a3i>jGeU2iIzmS9J`%-YGKD&TILe|rczdOBWHnNFGF+4k+JDJNUUt0y@4h8Sd>EfI#(E_!Lm&AZ7Ag=13 zd!ru^cI{Xx?tSSt|5hTIqrP28avTa;j^hnoK{Q+IYRe%oe$J)yF{0L3EBT8YYyB0g z?EzMmwko;F+KosbS=ZSeROj228m|N#VXc7gk_!AszT%e)V00|8%diHi_{mz-I-G2% zw@#i(SAhJRko=o^gRABx1+}S)q9(rEXqn=s7>}jaT%Q9}w#*#Z52Y<@f>#Cz5f@GS zPJ{4}t8_~+dSV0M#@Yh*$HEEjrcLSHOt}Ub<)5QO2_`&ET7JF6Z7@5fb&7xJEgc%* zuIQ$0i$HYpfZZ~qocPe z|KKGVxW~b+p~{lW<^L6d1qUoh(Af0aAV}sW#2pA9@>A@&uk;x1y0@LT`V}Bp?>b4q zy5rq0bbrecjRT$F6~hh(^^h3S3p#XVu{E~z*Fjg z!@SO^Y*<+tvlSQvU0^<@*7NpbuPya;Cb>(;S4P%pFMPsc9)Bxm34toWq?O$v}-hgP))7$iImvdUdG)Z*2+#$Y-9?tWFqJ_;!H^VAU%~p4R^6&sB z31i6H$eEV0c*#PAAIaC&V;o-LP@9y1gH2cvg&_=m3;Vf_uHu}Ny$=;v<1xk$o1U`_ zR^+}#498P7cnj+m(bUQi6J23@I0beeqIGU~2TNu;1n zROJf*(c#r=(X{QJ=9Nh`ln(^0hJ&o!?~GA7Qmb^qeJ3Ay<$yj!o^jx8lV69xwl@}E zS+Mb_3XosOb`HOBu^Dd8{+O58#Qjxf+x?-iNeW&|U60@5q+kx2Ct&h;h>eU`9<$vJ zovBrp%W3DM%T#Vhf(p+dQkSFe_Q@xC58@4j6&Xjd5tfwp+)mmFmwcgR zajwKpI^rhS(XstM0x+iyX}5B|+AQcTuUa5E#y49^+`tsA2Kfpat#xZ2vIwT-)-zsk z1HGy4mS6f8O=#3mCs1#46>p+-w+_G_k3?@%-<&s}_UHtt<9Vg}uaBlp`L|Xs2ikJ# zw&cW2Xqs#Qc*2_QOWcxi;_TI5^4BUqe{`z`TBUCj2J8;$zli54(gPQ}xGlSy%BjeA zFBw{g!h@PAnjWq}5FGO;Y;&g6&f&Ko?rVvF%p=LKh#<_C`oTt<@;FWr7Lzj7zcCt= zG@h_#u<3Y;J`jz=0Ler2M@&IP4k>q})W*w0`;Wkie_C&cVgs)4u@9Yu@8vdAk2L50 z35bxE8RF))82!g5veBvxi`EHbDixo;8oPAQS$%;6)s&z_EvM5Y=dM(Cz}^P7yXpc; z=z}ivU>Eiu%3E-cLU=5hD#5zgwkY5;=H|so$Z3YCP6C}y+U&4rK9}rF{sh0|2Zh}%iyD!2sf6};m?rcsQR;Q1 z?=m%p+S$_RjFnLe+3u)HTV40RCF$>*1RMJ4`{_Z=nScHlz&JIePXaplAZpKh$>CUe z?|%xlZDL*#=`$cSV8~Y@?v;6^P$lP>sVCIO0#4%j)%bG@Kv~@KeGQ5z%Z00q>p5DRl`hfSc#l$xTV&Ud{Gf@9u{3vpOGHp z!|#3vc9Q0r?{x?PzpIT5!%iy18A3^c|-ijRIZNnVJ zmG({Pm+V2CtNzrh1LAfg8(R%n&fi)$s@9(czEz(?*S3;X8`PkOHn--oD@$3fP?P~% z7JPdV&osB0D0xS-AR&RDQ9nIFuEJO0ru_V5-&awcvVIONQe~SOnNx5BJ7D~1!x31z z=gY8t&N?g5@RG@Y-6et4C}{-jlS!k$gdz{bd_*8^_T2bRBuzv}Z79p?D`e!UiGQb< zYAS#vky%uj^oz8lvoxZMbElQ1ujgERNJ_hx3n^hY7Jh6D{-sojv0tq1_`}pRGCJs> zr^tYjUxKaEFz@&HfM>~`^FNV5Q{N6A$gZtqe~a>nhbC6IZ2YNM1Nwi9u((pf&KRDg zoY*@KC-KKTLU3Tb4TC82wQEv9wLgUMHcmny=xs%1x|1^^?sboUtG`e_pb0Ypn;gK7 zG0fe{+SrXdLR&fC_1L~5T5hBOAs{_}J;Ai7_!ISkgj}bB-7Ajn)B?I^&adP0I?n(_LwpM%$`u1< zI;WT3SyL`>qm_)QqA~eADmZ^Hne3#lnNC6(*;)It^B1=p0-4b%dBV1q?zAyWlV;Fn zh~ffzYM7i}s_%qH@jtUnN`YY}Dt9O5gcHhUDs_f6eC1YsYKy|#86 zR6Yl5Lfk_1FN+$5$5^2Zzk{;rIEJ3z^`5nf(fbFwuaROvWsd9$q~2D_?0F31k7Sb^ z;sYFU(jDQkbe3!+IWHqcS{#$^i7M6ix`Yzj5n0J98SS9zES6yw%;;8B%NGarX20JF z^%adZLpirce6GaUhwKPtnn{)jWk!YYd|jm~vR2`@^TdC$u;Rcru$QbiaVO}E{W}M% zY<2;i6wUT5XgpeJYAqgi?R_^HQz%v}rZzRx1&B^=ESUwI@?%?KY0V;tNH<58I2hPI zji0`ae?TvaD6@U{4ihqRB~3(J$ynU|gD9JT=SyO3d#8<3XFvPXZFzJ>7wGnkkg*&e;^I^-K0*bALjOCsyR~DaML#uRvq1Cw2>dF z_zX<*CT>b*s97ofvztt=oD6Z6n?zM;rMg3h6jJpm#4Rd;g^ef;; z-!|KFX|YD^9L|e1#<|}=903j7kf(0e1z)n_&Ot|JKb<|)TL5>*Tcj36R8nLwh75(UX3 z8Jf&jziv>^y}mPN<~jGf?>&cq=6Tei*}Zq|s#U92)$X&%+!Eb)no(eHV~R;(Z_CC< z@qHa8RrTHWUdBTSzD%HI+H$|4=JEXf`358fx$UjREby^a_nER$cdg|0&z$3Dm@@@a zq3_tOSMlziaUEvQnzMhW>CI+ z73B0*^zs>YNtbKvn|6P_di0PLmdiFlI{C%*zSH)FKq}_fuU@x|>6CRy*_9(WT~dCYcBlB~o}{;WIQ;I~5lz zwZtzASXL0Do2v?czu{97iyweXoTN<&O-o2;@EIbLqNEWdYDmjJW zz$Tdh^Kz=E6%C6~o?Pnva>G_Y-=t^SQxn->JF^ymozL|mMW;TPf%YlB5A%Q&a>DO6 zQuqgv*xZxv9m38YD12o3=@Z<@p%PB{yr-xh$LLepj6miQ?*7Gxp8bWx2~KKJ$OVn` zqaw}G*-&%5Kdy<$x)Ax}#!b)etV&!<3v$ILn6n$B?K$!`V9g*}K|cdTpm`rnS{A&7(Y zHSsMAyWejG;b*`)w4+6YF^e~1NvTNPteW+pjP9vW-2Hpa?H>5yO(O5k{)Zo0`XKI; zh~{>iU$*jZzY_|ytxV{SlfV5(+~fj$^hor-Xb*6Of9&cV`WM|GA*NtjY3(Yn81^>@(Kf4ZZ*k4jqo2jjpIE#u&B@+bFq9R2Mb>x@m$#=2{`O}v9mo%tm;8Q4$e&BWjgY>o4@#$h-zl)t z7=EwXJF|h`cYy_h@f_p6RZe9Z{}(HPK|oiSO!t%Fkx@Upbdq<(1?}u>VBc4CiNW+S&E-9d zCRkX=xEGKCjD5*o|B9(!kX{j@ZlcbYs+sR!R?T>^E)4eQZCtNKNKb_}=?+wGU^UB-62v zrw@5Bnwo)^G*oJArs<85XM-^x#G9xy6`2pJGTDd(2_s{%vlF-E^6yD=>pU5ntM^nf zz22Rj+?*RHnei?45iF@{#a-_|s^Ra=FyAlkJ}5E9AJ2=H3}igL4TUKc1;21?v$`8j z7ikVVGkRyM;hw^V+D6Zp`g>w?!t}iVz(L!~wM}%7C1D=k1}>(EutzH3|nS+)`?sO+KJaCdBn!WC{>(F?szP2KO zD_)X={X@QAR6upux(}J^RcvlgmshjAH_LXje5aQE&9X0Ejtt9Da~V-Aqpf8mx{QmL zbB5)7YB|?j&cl~Eie<)RnN3<|+Ll?!WrlW{FJ9)-m+K76HJIi4)N<`^xsteCWnHd7 zFIVT6l?%%{ivRaCCiAKjmG^X>b%@uS-LKSf=6iE3KoxgqgC%B_s7)Y_edSudRtZm< zwf@|)b_ac8TneuW(v0{skk{;2KkAKBx2Cc7o}|4a6z_NZ5`Kj6&4!Prte*KUIjup1%3~```?Oy>h85i<;%#-RrRnL&W`-Wg zym950TVrNt4bj!=hMz5^r5JRv-1ty498sWxhqjg(g~Nyx`ehs4Li^F6`OygiySLsm zx+{@s$yvcg-$riL(k$cC9c|*`)XCdILozMf)47I}>^s#?ux(qD(9WDhH|UqV*TMCW z3siOY+WmSTp27)Zz+-=pWlhvqVMPtt|;bV(!7c`qk7M#7=3+I zEh}p3cI2ig7^ng3wKMIwdojpk}8@|%}2`=oOi^3 zifCz$;>LHsQ*=&l@>FmO;cj+$YZ5~i;1QQEOT|LdfP1=_jK$d z*~O{W=7TaD5vzQ}FFQk+AZ2N~@u(V&tE>%LR}n)bT%}>{Qa{DcguC@je<`D^A0xVB2`cu3*2ofZ&TkiV^r+)`Z#n zkd*e;k_knNA=035-ZbcQ+J%cru=(MCoO;Sh@-FfM-d1vp**N6UEG}mPXwZ=AfbN#3UfZ=fM)dRNk7{MifB zxPu}sao*m3g~tNRROiA|H`~^H&?nA(UzmThFdCRpaJg_{UUlKyGcl4Zim5LU?@QcL z97ji=TlmCQ2zO8JYQ`52TvTOqu3U(|(z%i}7tJCphG>a{te;*_xZJyt1~>_p2+eCW zK1`?)m8YAbUf35{nKF6X zF$o=F{FjSKq1yv#x7C5-biTl{wT$MJEh|h@(p_V=61|cD{EWBoA85>BT(y}S>`%!0 zIu4W;Y|t80h8G%CUStG~D}l$ysB8o`USp91h}dO0Rzm;5HztGsrbyhQ3HW@Pn3uQ> z_u}Z*7RH^h6@vGDm`EoJvHd}KlohXr9=3%fi_ju3Mfh{9Ot&R`p+gg7F>s)M!dH$E zEoqP~(p{tPO5lvc)W4rDY$p?0lD_(sH<7#xcJ~o67+2U%>F?jrl*b zG3xb!WnzYRnyy;TWTtw&^XOR*`IG+Pi!o4el?F7QU1|$;#;a=xiG@8ESRc~K*+n(z zHMS$kO4G|nni4#Fs?`}@G#*L_`2Ki%rY838>#i~_tZVM}jBEJZOv{Iv^V6vdFG@KS zU(LeXQw7=IvjYudRr2!2+UEvi9g3@jAo1I~*4rwb*M6lh4O$vknC3!@ix!gQhP1(b za20(?@o71^u4bgKKSq4}Y{NE$7sV7uWKi;Jj>Ry8+|B9%xs zNXfK~gjb>oI5na+tz!zOT=W&Wy;$p7alNV2$G$5v1xK4j*&}JzIxUy|2Qtz^_q;K& zjTdhIo?cUY&g3p>JAzc(`zv#_RsN#(Ol}dY)C)Hbhl+2=)g2$(g$Pob-1t~!_pa-2 zKj(Afs}kB!klXs?z?xb*i=1Iox1u&MhImfKS@TAkI*5ZI3wjJU^3Eo^*|@r7#nZFhbCVlBU^gBPC(EPM3mQHf%~)DCj|eVP%5V5uy* zL$FC}ysdT#PcqVCGDLr#Y-aPR21jmuW2f3nj*Mz)db`6J)z`duS4(A7sokI@*~Ze_ z7465~BbD=&=&vYAh$hSl(fG7rEKU2R)>hD?Mj_u;avU(5x`jS-tz}xkap&~o7h)*e z`1{9XqpzWp0@gDHze$?xsY%qBo*wBeFL9jv=$Or_OouD6EJ?r@@?uyXbS(%o! z`_Z$qunMZ=9+~a?@TlabqGMR@S{7ts?Q9Yf1Lu{}kV9NsIS>}PA-^!q7OevX z__+PBz?>b-tNaSjz=!XQK8@eDnQHQ4uU?PP6TI;&A$`VxMKK*Q&CSoxS6JWD)YRm8 z#d_MUwcw(LA#G`zi=dS!5FPJD;r?to^%6M8O17VgeC2olEvofkUZxkw9*M7GeDMQ` zdj@T6;|0Dst&IUVC?p1`*@HI~6Pt~5xvQD^A=3<_L{`we$U`tt zwz-h4W+@H3-2GPZQ2^B#BK!+m7~%r*Y$B#~*dp-TdGOJr2i%w=TTgx~cw~4WT(Ng8 zpYoGeGb@9sr%z_OLtha4b*)r}K zi0?~RQDi46>D(Krs!>1KLJk#`a&aiS_%vsxD|%F(DR^^+EgVh152#?24`14>ZpnhI z^0oXUe{W2WWV3s0vdj5^LUUxHN5fooRz=|Lx$)6XhFU%T3|x=bNYe%Q6GA z>(@}OzO}SR18k)TY^9`H6vRXC0Phe~qM%ALzBK8`XOUAL8F20|<=%w~LnwJI!qq4s zRXUQPse#4Y4|`OrZ>wv%xOnX4w`c6!nS$?YP70uKpSHqIB9?fePzkIwEK=VD<+FJ5 zO&jpXk*&_Cb~+cce+Q~o{dh_H>CpQ6`U_*d!HzAtn{!=;tzCO36ave#B8FBVoGEz~ zgiKW~PjKe%#i-6){GOcMht@;oY=~t_KX~sU1uIN0pF6V=vB`O`NtMwVZA~nB*Mk}P zA3iOtTvqEGAF%|kWCGEM{Hl0rFR7&xGrCdq8_~>uZuESkjT|=`| zqmBBotNt#`z~)*8z*%rA9e}9*aPh`)*2QEzJdv8UvJSk`B>slID&o@jYIqJ3ZQINx zjlDp5)vmIYo1_$cuYvC8!fgM+!rb8Inr(9#`Z6>*{B;Ff3{K=?;7o z=yl3Ail#hl{FYLLoM(Q(y$069;L1Nlv~I1@{^ps(tt@b6~YDgq8L@mxr@P;8cw0 z$e-1!i_JEEkd6zmPu@qbj(z0v@W53n!pfD)#lHOeaWCGXq+QHQZ2BHL$?^PGz5$3R zvt^ERW|!8puL9Peh=;|QJ-20|#c&A!#0Z>C27Kxc2>PRWWV8xFe?oDrF^Yh!uR7!{(ZYlAnh203nYK1)Mh3d~YCU^hP2Ti5tV2Hr;4E+MT32a>D-j&*e< z3zmF0S2SSk;+6^)M zeZybF6kK&jS>g{4reLi!b`BJd`!d)&+tar<2x*4DV7x|;hjW2e=?4W6qxyb2LR%Yq zeCmEpjrt6K5>H&fge$1&5S$FBxKUQpjiFW$h3g50k80Uae4ZdH17B{m>rPaa9?_;Z zWpKDFsp_Ho8gIPY+m%jsdPEZ7i3(qu5wZCHz2@=LTXlYtq&>D8d;1cMl9g`z1lGq!hd>`S@PGWmmnB!ARsc3vBC?yI&>O&| zf&kR~h}-nvw+FAx_Ayb}YglU}@}g zz9K;ES-Bse|M-I}wXbavCS(in4}Ke0WK^rLE~4tuzs&Z5Kk80;^-u@mrS@A95Y$$5V90q*I07lcU3VY4Z;cOhzVpE^hW*s;M2R1T}S-$4d8faG~9S_U{& z9TGuzJTzN}J^?Khkd$C{V)}1G9__yJx)%pf5!@y1i8|pdy#-F9Wg^e1N&a);atFw5 zIpG9TUdv0P2`9Jz+^j9lv}X$_Iezra>5ULgi?3{-t4HvC9a~ND`pcVI69YCuvbRWS zo!Bf>?!Xj`w;%HXl#kE`-TktPm>=R3$hB^6(mW?NFy_CSXc)+h`-e^ zJQ4Z)w#l??iK1hR=8oZ$<1Oxk&5yNm^7B=a7HZ?(BtIW--B&RE!H>+9Kx1v%wEgxu z004TBgX!0bY(f(vG$>SDl>E`)X9$Uy8MhEAhai%9f4%Sf5b~>`V=(Ljeqh9Qcs0pZ zZSK2VO>v`v{emVHluX|&n7Y|eS0LYFqdN0>YwP}e*Xgm|<5^sTUahsaRS=PiI&3r3 zVs8c5)e3=wLTMUQ964~Z*MJA*3_^&lN|Q&esb8sJVWz-QPX#iBkE$+CPEIa!)8j%O z$v!HOYt0Hz4 z?svE@X7nHtVXLCNV|frxsGWz%=_!fiT{P}TFd1p6`?Vq&Mhs&CR@KFHL{4e_C6e*L zKPDL`KJKlxu-VyC+#zv(YUFNjBv*J~878v*bRgS>I{?E@>0PUbQ;>kQ?!Rnv05a{X zKcUar7c2TaQxRw?P42WsPCz7TI<-dKqwD_Kgn&J3j_2!Ok3W~up#b^P&&{XJuhnzo zrQY|ffVL9@!0c6@txn)#f&r0bkG!)NihFuy&|{6TP?|H!)@qRF@cb@d{B{SHb#6Oi zZV>w-X8!c(M^!$L8L{}fR~tRYYIMq72I{HnthvpCf<%@UZXXrW6xo3ZCQaIJ_h7kYAInA53c?9{zI?HSvaLZm5E%7Oj7> zo|~{9^uNiGQQPB&xC+K?USg02IRZ`xE;PUX8c4`he)5Ia91C3Bkz9Z5N(MO^(#B6b z+GCnnHVzNDYTs~+y^a|;ty%${rL-|EwY~1npQ`r$tTSy{A-60YT$TG!I^jY43`$m@MYnl%-rh)LVByE80AFVa{pCLe>NT!mW0h8vqCzN;$ciCZz|qzeI%1kAyqR(-D|&e$@D301{m} z+K!*9Dc-bGWPg0Xl`~ndw6Tp)j9*%vhUl3l790 z*}wo4qg|ruTOp!-UnC!c>IHJxF$GfV5dh zulx%v`LBE60n#s1pv&Cwe~L7>;-%^j!UdGKY&$NjEZhuuzz!BuR<~5OyTx zd*DbtLV{hh@i>7-Se?!4XFbF4eJ9QN=%gOkJaA@~dVk2{gfLPf)xOny`{vh=v4?Si@P5Sp@#LzFrpx8Of|5P0#N#&cKhrDsX^j`+X>Cnd*Cx)Ng&N${?!3+MW z!M;dKMF-l*&BHZ`I$2&5o0;c_UkRovsG2Vp?{yyMf^+2s=lTh!q5%a}=U*y2&b1bE zd`Rv7LyaK)Rmd0kFK=}9!QZefkY7i7?w9yk(KeoE`fK4Lf46n#+esA2q4|+sloJR^ zwn@Q&2~~%PAr8JZ8|t8{A#U-nEf@5rA#oEfNecN>6<|fIo+rnc?-k_VnrC#HcBp9a zBJ<)?pFBCi9MoIK(VFY(a-%_5G2dwvzp$)+3y6b6s*{rrN`-hNq{ehbp%YHf<5Ai#@+{ z!EAwQA6gFh9(stZu+iLlk)|L%xbTy@>HI7;pO0AZoMZ|cLPwhT%FR`)GwB$@;^VpM zxuiPbx z+$tEI?A3^*i<>0vrKSm`ppj|y#95DUiLN+Q35t&Sj?o>{!ewLkWA}8A*#)sJEXpPR zFViFl)zoyQRn}v~dV@^g9)-HhnTP%2GbDGj4;Hr5Soxa>b zX2}(Z)ByGo{*TpcOKQRP;@@q}QF)LH+L^HY=zgqR)l&ovVKayXPrM86tgwtW1Ply_IdxhF6pATm`lRkHWa|TE409ajdXC6A^S>z-$V` z_I{=Zl9{SBbJ}$%b1gf#)uT}gW>mKdVvq~h)*tA18VA?9Ca^5kYwjDQGwt_j(S$TH zl-oN0Q%4QW4n4tfM=p_mT^?EARTfpZ?+M>O$>?Zf^?8q*BZU$}9WCsA%|0&~sy4&} z9#%~$@GiTEBvSa+&*s*q8K)AtAZ`c3&D?O{5@@bEKz4FY)o z{uP+>+rf`Qk)uaPRopj9mEj;-LJcZHYz#f|xR=-2o|c1HL}rPzy+Lk%HnWGCoEZ6K z94g@Fk&=WrtwZq*CskK-g81>lLf#KO@WHvN*@`L`4Sre47i{ccau{K#IN?O&p_P^k zY)$(7nZUvUs!*e4pir)@4bHZ0_gmi(;FK{X?N4p0LY|rq23noE&AJbvk@=~MTFY(@ z1|0e$XKHcgJD#z?WAdL~moj8cllOD4EX@M=hvT8bmb!)GE~stWn^(n%FEnA z-c5RzT;CP#M~KPSna7@Ye+vdLzCeX74pLxE9K2v#bqT(rR&xw4ec#_v`nj zP85@*?PyD0>fuFfT$Dqi2+n=Q&ztzfDiVFJ#xqfr)&B-h5U=nm)A%mic-*IuG+Ut+ zCPnvb;|Wcn@zkp*q+Y{&WCK5B!7p#Uai^$?bdi^F7Q^j;gFu!mC7B*FzLd| zy!DRgfsT(#CQIz;U`Id15wXUy@~>IIDM0u48+M|=viU5V&$9U}dmoV0Vwb(oa`5_p zBY5rM!3%D4Iq5PxIozh``BkwAbR4fsYF783yNB^%z)+wE!BW z*4Cu7l>KNHbZtGJS*NmkAHbsAg96EF4e1tPA^2+>8*)Je{X8}-2%1jbFPJZZw4o;g z|3Ff2#T*Qhw=B`J!zQ4D=}g%*JpQdds{#>k0BT$6ccY+4O@Ac8kXWj4N06IMwtlZW zl?kw{{bMP1zo5oG&kX!bX?iRw(N;YdTx z+&5;2r_ov-H`;-(OxY!OowM#+XMv;V=*@uz{r#|wFP21JNM2PZz5?kpy12ynba?E$ z?l@|U>>~5RMsWq*trO*!Yl^RE-vp%>Gr4XTqV$?>r6`I%ki5qCc^P}b>+1!xoiZ}{ zPxHFjwFI8L@DL3w+;{*2)`1rg13dzwk|5APP7?tqr{;4!+^`beT~Yt zRV~a`t>I5?@gO(n>@1NlLAokFCQl+{R%H95eW@%+V@loh$;okxg|h%^dnurHEiLk0 zp1$grv%!QcNoEX2^Bd1CAX>U((e(Ba=lY}9CI*OvZUW&E-@yGuM0hk_5WUztK+YTd zU{PpYTIDg|6g+rLMozNfc@0pd>yVZKo+p|hGZ}%eQemUbis`>j%@N&?7B&e*VB+W| zXwfPnlvXbb=t@KAKsB#Zn}dcwi1}3V;_L3OSMi*k{Fof0q9(Uv4IIohFKQntTsNsw zI}kZt6{XnB_DE3`P_tZu!)PIWt5r%#eT47u$T}{HfZ6|))p)Tt{OJJW-#3wZ4fzT3 zt4zt3mW+>&r`QZ7hO3MieE&o?FR`BHC_B8@z#>vlZZ2!WF6fnQFc%`Ef|b*mnnOF? zJF25Ny57$$B_WAPWDn(;zGMwGSfm7rJdlm_eI{_>i%nE8&UDm&ynLJk3em=b%> z#o`OX$aS>!c=%88Kw5p1l07`wac3A{|Buc!xTlLPeEl#h0ZL22S z;HgDvsaU$Ff7vPfyQM=L)2N<6i8B-xCj4*~d2VMXhe}wZqZRY=r%UHtB13}K!|I&| z?yqlA++B+F(w-bsDV~L-Gvg9GI?$!g&D^0cwv zKRFzxH25a`s5V0DpbzkGQA8*6|+F9rp3&zRwKAVYLdroZ5*9UQOvxp zP++21&?23?2iMYn`#565`}@S`|_jn$hGzC32qx_u-?;Rx;oDGxF0jRI7qU-*Z~;b<-=P{ znMwtn+p=?84?@RvQIR4X$ zoE?65Q!#4?^!w=zL%*tbAtTlQqAnrAK+a!CCh^9;eu|>9YK^!jL_MYU9WZWuM@-Nr zb*$F#36?PYrbO|NMn9smH2Xh@${z!@IU8ydV_ipsW&1xKq!kY)H-RX zAC)aOdI#CHI0rjE_&|%4y`ET$yItl@TG#TfsHXVn-ZI{V0BhT)sKfxt16sU`VGahe z)BS^i?A5^_#8Z!bfv95x7P(dmtm4$AbSf?~Oq_MOgC?I%Z0KvCQ_%&#YZ&{UP{!uS zOCxoxcy9(9X@DA9?}j%l|<9HfC$e!NnB3rf46+8*@=TH#QEDO>+F` z=5%e9%D-zuUkz({9`v9`%RVB(MUh?ydvh13!$o{h{5!@F{2wPd?IeG+v~fWb)}IEQ z-%Jaj$^w^}u4SfcnJ8T*N~z-@mwEPOo}KcX$TH9V_sTR#;_nnY)3k%(TEU1!LAweC z;$C}=lY{!-0SW>VjpqLjf3W?9j_6r^mCFz*B8Bfi>|h_Edt<`Xwy0A2p&04nn%-bP ziYR3%%_lp1amk4|g*dl*)Hm&0O)2+|K)JU*93f$daXe5|dRHwk3&|@Y`+$5tpzsS- zQp3-`s{AHMYGMd)Bu}lP_SM(u2p;E^&#L(#wmOI#U)P>jfJ69`Y`ePvd5wH2iP?I! zXqbZmiV=#)voc1i;USU>)6K<(APm&}D$z`fU4HLHJr`VT+dQQeyn^udwJNH3l2X;Z zkDN=XWqpO%-_IbZ70YdVHaBuDm8l3PqbaM(E)N(4P(Hm_j4RtXm@`iPbXpTpBI%2t zwbR5*}eFq|cblyw+gZT+avpW`&?p$r{n|% z>r8y%4=aD3>A@0FhW-TD9RZAjJcoj=Xqx)F8g-#G9;+Jlm5+UQ)TpaH=hOHBYWeP; zf5sD7_SE({lw|v_LYeutXqcUbB@s&D^akSkzJTi~^K|!LUlUC*3ZQ}hnd@rjh?GeH z2G<}heZQnUMd+7RK~c#3W1pW?Qhk~pD#x~9S0ugqJ0>mWD-4f~oHC3s$Fxl|B4{63 z?#VF14ZN&g0<|w+u8%zq%{r32(g07lA}>JQzjUYp#~lGHqm6ufg^;FB9ZXKlRq;CX5@VsC)}|0{hcs*B-M8 zy%LJwrwWt)5Qc6j>Y$RS^`{w7#!&MXkKs8?k4~av3VwN*0VE7dgA%GWghJ%wO_A{g z+`mvH%r}M8f+zSCTnXWU-p3{1N0qHhhZHFI^YXw7`&r&bmeDS>Z}B_W%F4!pMPdP zNVj*%1y@6!f9*$NZ+Y#osZECdpLOApwe@uSvPtiAT<3D(% z6VzwbL6qoc7e)ILh;YrHQj13wSyK;@f>59rZ`A*Zq6Q*szRn@2>Un;~CKj0Ve7EsF zsl)_tigcA#M=J`cvglJV&b=deZax%F_ZOkeaWae`Q*h1M_NN*r7?+p(=+*D^dB05a z`;BxFX;zsmVy$#rq3o0ko!sw8-t?>jP4l0-DN_gvJUtLzH{5H&HN}ET^$lk`ECv*1yE_t57 z6nvw6iRBgY@PN|ccMH3nchrMZhd!pc@XBTjfoYRa_E)I2m0i0!L10>ag?j0((;@RK z*nc6>8$D8yJNFkw*o#lM4)*;60^Jq_!#i78HFKx?ZB*SOnS#NwTD{iUWPkeKVRcsm zwcZUPlRgfcpC9^CB;-MCAMLJEoXhTcgcOc*-NxUJ+XdYy9dTH^a!Z2=5F+@V@k(wk z6b|=uFQ05^?SdC56kPe{?e_j@kr3qV&f|ZmZmF1?7XOCYlW8*;a0MZS^Z-}coqYEP-UT6HVZUwDf ze3aF$Js)F(cfN##!Zck&u(H4#*(?c(<7r046mh`&VI4S+- z*MRoK|Gip|e2vD|`H41ti|N|7{jJj`Y;_hrqB}pdJ zAnJF1!siZr?)*r!V->4@3|>yMGUt`q)Iq9N)Y;kOJU!&W)iA^(=Nznd>qJNs7pztXrU4Bz{L5Mh@qJs# z;B4g}f2~*c!X0EF#*6Kp9rqU!b_63<&e^uf0%cZ5T z*tE&=g4uGUb+4n%_H*d=GaxnQqgLTUxl#aQoCedlxaIt0iRx^LU!U~gl#qRo^lflq ze(>Gs#h#dXdhS70_3wMC5gHMPSekB1_6Ij+dlh?ZS{P-ga=IhO> z^Iug3<~t1Mg@v!#t2rL$-@xNbj1vMcZ$}-27zt!sO7Kh1t{nWW-%uXq{_r zRrVb8h_}8$J}9GS;f44im9RT4?+F5Kr#x!Z`Sl%yGb~|xDl27r>JLsva@1m?Z52Lx zBjW8sh`?ZB%nmc-xc!LGn0Vi7`aY{F*-15;xtr{@KxPG|tvhUP9t0@kLpok#I3) zCBh9I|Y&X=(FYXNAq@UNaU5OR%d?u?ND66S(VHu2?3;}s_?Z-Mb}%gozEn= z@mZ%5H~~Wof(s-^N*rbMsbLtiHk}Qym<%WZ*HXY)5^9ysO+pQZP!;vxnfU5fM?ilg z&_%Gn$VAU#a-`~tKW7$^>-1m6Eat(KuEer5(;KqG`$M&P|Ug|5()$9=2Qeh@h zURPJO+1)XxabBcw1k?H~T52YB?zU-Tzl5{0t6K6_jb62Ls7D)b;l+KL*{NB^??Ua}}I^Qb6P;6qX&@;nI??`4@7c(xY2u zRu66uk`}7=r;*xNbnFTP#vjj(XT?jjII*-8RaTD%EY-*7=8jy+vkI# zU;@`zw)+>M^)C9`9Nk8Ijhq8({rb@+c1luvQ8{ZRrTV>%Ppy;M3vBZlTcIp2gFKTH zA))In_+O^Eu!UkV1ljepfn|DFvEyjGF!ZBX?vi5gkw9C^2V?#YV01m=F&3O zK^H&3beH}!!{geMq-69t9aGXL+DGk1q-5xd>8VyfArs@4(!|ZTCtoSVYIqGV7mjGT z8^shHiQn0Pk<^=6*!tbeRBz1s#e z>-xjeGSXIc~8i=}NZv5RN_wA#wfivDqshF$y` z=wZ^pX6IS6Kl`(p==&+*B@S!jq zBDf3cA@W-3jIdSo82??CzL4vYPbzJKdhtD8567-f~@#lQh@-ib7!wwu1%N7VGi((7~}uo9@+D|HA0= zNq=xI%vnS$8fUBS4O0X*y+NbZu}s1A!JIU#Ed!g-I3f)#{KwJ`xlcWG(Vpj}SdhPf zzumyF__Z%*`{!H8{EqFG2c}4yoad4&pFAC4w};Gy*xAy9b%%3pG1(|ig=bW->0ha zBRZ7D(D>Xyg8{I+J7<48WLhE82Z&;N|*6^8mcZfH&C9XQ5E>MgZ8B@2d%?5d z2IADNPh>Ze+d{z%T2fiuB0T#AD-E!$c4JfWQe$oNE+!-wgQU6EA9tkVNq&;maJ}ln z@e^AHkQM*IFx$8==#>)=*?n_CRhS5}OA#7h7Ul}(!)F@x`FD4B?3ytTENk#Di(NF4 zn*q_=>P3jyZy!ItonXUAUG1Uc!IRSgxuS9Fb`n?uxNU+GIdQb;bL^PJ!oHiVH3lWhCDvAOV;~az@cuXOn|vQ`3&D%8Xu+xchy;OWQdz7_bAw)KK_oz2ioaIm z22?N-2{O{I1%Qf>8VS_h@XkR&*BLB6h7gV$r;0PFEw^-dICV3pkh`3Ka>eq^)g zy}3id`Pgz^W<_;F)O2ZS*gv(Ifr_)7YO`QeE6~axBJ>SW@d0(*_{d#I?ZcTeFwJu~ z*y6CG+e(P#%7TZS)_N0hlvqw^mq200*8GH}jov)0Mo>3c8Ps!Zy2 zK~gl*dfKAFXcnrHgZWckH*;DS=E<$RoNLQ7CY!u)D*%_q^&$2mOaWfXk1S81p`Kd2 zE~3#Pbf-K5Og$tx5!_|5dhAcvk6@BVWQlkuh8KdgXzjHC0ZCdNeub{E`FFA=Ogwi| z*X**>%_NVVmSpXofgbX8i-3tb$-`XqPlJhw&#vn-W{7_MIPV8$JGBB5|9^)VO zk+sXl#vd$fKSnWjL$(QJG|Y6TxGPemq96*hP4uT3%}g@b&XAF;=Xkd2tsSf*5!wZ+ zb?T}Ua`IB>OZgUd@iGe=Db_BT?i{V}XC)UM2WDxx5s-7Dv8D>5b3GN|O&dI8~El%mpZr4nqugA+6@Y@ zLM`eF*%Vn(m;=AuNB3Sm+tE473SCqcf(1I(i+?YG_vWsv-nk5ZqIc98F^;y!NG6n4 z+R|K-8#a60Y8azHhD7K!AZnc_VNEzCE-(hC4~_P0kOno8HHFz?Zo^wP=4w;XYjC7> zR;C65MID?53ldYUWwB{7Awf{#$z8Y<^yb!N8J9)Vf@WDtWb~&oCcxfVyA=W1+EY`3 z8&}J;Y2d}EpQ%9BHqP;vNM@4yYSQGe@@pye<4@|;`6}y=#s@f@X*ie|aPG0pI}QYU z>-RSwe0%B}nFpVBWdnTXQ6Vq`{kt8P3a4S+^{MHcYlb2q6X?ztQwiy<0{H2TKl=E_ zEeFVIugXe#PWRq-h8EE0?l3JqYeC}jD48i3(V#R#pVxUZhzOe(ILfM2X8NV)90$Eb zHYp{*vb@8|qA@Bi^t4X*2IG)<2^5HlNBciXObylaUs% zdrmIHD0Vo7M;*!YF6HIy&u)29ndTB4@eOivKG@>V;-VJlkKmi1pE#bvbXU1J)ob&j_4BjqxKUOiURmx8lAw~l5iwD95U z4EGo;%(St3xeNx)cHMLw@Va4rT1Q|mwe+41lFw%_4nP`qh5Ai|jng4x#r*P3)*9+% zyCWHE^r07uR|F2rq;L6Z7td0!yvxptHO1|aUA#bJ%4G@~hi{Uy*@E{~n#-k-!L{Cn zk74_5Qf}q4nTCUPyD4O@K|i4yPN{>_^T0wT@a2KxZ_?>}s@2z*Sa-~}T@Y-UVXQMe zFgyJ%wP5a2@Ee=w z9e09zrtnK@UVkTWx*pm0dK(YBmCCP0HXJW7#2$B5Rp67_rge9YY#XmU`bs_!apT|y z!<`yuoCC}9N<-j7Yry@5nF~z`ofH5E)BPYbYE1;ygx1_Zz7+mwYTT?oq&e?5NNV31 z^we#KYAm!h4etNizR$vgQ$yO*gM2eCHg6`X)=`E<$u0ih%2tk-SU>K(O&%KPERQC4 zm5n(hsxHiq=D<4+O$#zFx6M!YH!Hr);cTUoLXz9nVJgx$3jnFGQaGYIzx>T?#4kd> znD~Vcjtkw0YyAHCRft;zp@u9WHP#t>^nSp+f-XP{Oo+aW`XD2^!&FHx!$TJD}%Z66mIVTO-Cb!P#vU|Nk%t{qIr@_*15_Y>k_kNkazClFX>N`|LH2E5v>H%NO< zbw-m5q_@nyFPoIAW(rn&yARU+FDoekDx3E05i~A&=TESaHNE!iSznhHZhWfsL$_V5 zyE&l*jC7G@`eYa}e}7V#k%rwDRrG^kJI(ca5n{;lf}^VuUn7XF)Q3mXax=3=oY<-C zT6dBo3>$>^0v-xQ-+|z#%p9CPf7sLj&Uzdi!~DnRuhY2w&uan9Izh#sd~pXLfb=Z} zkd1XJ&W}`g?-RS&9cnc!e(xdIIKdd&0Cz%rnK7R(_CxgmqX9POq%jZw5_z-M*#}+* zMmGbclE?-Ep_DZvYF~1}fmQ8ymrxa3WNvm&BhM_5xF7JI?$sk?$og8zDS=C(cNX** ztI0bhH+NMlu#E5(unpm)ALUS+XgW8bFnh%ou>x=#`{ypd*rJBuvwd>LdCBw-kiI+8 zr;vvYL{f6#xqX(TPXUkKe);805C8o$z04F`^mUHhTHro4A_DJ{4RZpK@tg_{PFy~{ z8Y1tipF~E=oaVuBK_D{P&+b%6?NhU_Z5FtRfA;jD!WF#zxgV6a_Q3RC zTmyv9zBQKOCX9k7DHJ+tBZ;cO{>9|Sb^7|y z!@0ntmF*o*5J(b-j!8R^6xgq@i|1`P=woNa^+eq7C;KBE@fTnU=+R2OR(LT7rmPuj zNGk(i1!~^w=`Gjv{(rCOEjymyJ07Ovrn8Bv(}`IM zrt^=y##8@Lq>w7Sob0P;(GyfoD6a!aWov)og!EO_VEQj`Lanb-I&777^=`a6R8xHF z+}#0qmQ8rHy;@zMfZchC*z8`Ijnz*&qx2G(Vb)eYMbD8pVq~w`@hUIA))52__W;wJ z&gZrYn2NQKCWm`ZN}z&QQHZV5GC8vr1|V7(f{tCfiBwJD%`xayu&d1TyE8ZWO10$( z@<7Mudzy&w&gd1>)F6rRplmC!bM7RaezTaej3hXYMe|nZMLB{+fbX|Lv6Or@~_SEHpXuoD6rS;{x1bNln8IxsA8izFx5U z!vA2=oAf6b@Oa?!1Mlg|!8 z9eX)7`psX&Ts7BqQGD7EZo_g^07Q93HGZeW-l(1LkcK!`8{{25QyXVy30a@voPV+eb6{G)x z7JyBx$7ANa`#d)m+E0v%xlZT60Hn3n@aj`lycO%SQ$f7tg(dTpRP@yxTLsN$O%P+X^` zVtzn@g|JzkS%9F`4HwnNo#PWh!4{lwt^gCD$f$N|1pQJk$qTNJZD@ThxON9;guFk}x}adf!LE8IgXEoM_nq)dm3B zUK8;WVepaKiHnW#U*3n<_)qdX^|Jcu@&H0`RnwJysk=LaUyMQBF3?#EYIrxFuQKSS z-di3b*gD_dx=VH>#yX|=AE0dd_#U7juCa#lp=uGxZ+xh`D{EsglvQ$}Z7=P|Pne1B1w;rA#bsOu2>L5R8;2BmwlsE}na>Q3!fNkn24v z?ikPe%s{WT#mgimD+`_U8%^|Os*)PnVH*7ATsX1grL!Ud1mIM5`dzDX))(%LtsubA6_|Bsi#{ zZ)eBm+`)_adyQ0Zh&oyy+8cPN&p1wXYGs247urAN`s~EW!g-N<&m>t@b`k$Tb$l;x zlZv{hBmoM$W<(Y1WhVI6^ga%Yf%6Zq_&8AG6TJ8{ z7GqP&uLR@Bm@irw#`M4)4&zW8Q2XcDnv40;q4V}va zf z(gM58F7oNPvNg=5a*4slTxVyi9KI#`cSx&@F?r9g8s9!l=IuM(JO2o2?-H)sEc=Kc z?7T@;bL>W>qY}zR$+`8bTD~zs6Q+kFg>GR$>Z;Ec5C^l^zp1z2k*Rvs=Id-%nf+Z8 zenliIVkQH$P{JMu&|h*sCQXh$uZyCIi8wSG~|}A;)Fqndj_^hCdn+dCsRC zk%;-BU9n2_c2JgK6MCRpD6v5LQ57qE!qe)1(l*n~v`CB5U&nx}b#`7YUihTu>!a%4 zs{?k`n;)`Vf}=~|77+}$sJ=Xa#y7xmS`u*FjS|?ZbVO2rI1H4d#dZ^}`+|)DkKMUq z%|N&Oj22mJOTTvQm51h`9v2wdTyN6fmP9w{7jC1qA4 zR?sU}t1iv$eiUp(f95}#Zhbe&U-!~dRkFWlsdX^6hYt+4L;KQ{NX55Xg&1yL&O1g# zv3E7G-T*KGo*W}kP6(7U9o#8xOtXbPue-q-2%S>7SMh`G;_u-I{+ysrrns!h9W#IJ-gcH(qNwwW{`TtbY<#s0c z|3fC&1@D30R>LZu@Ap62Q;8#gQGt66D_@5*a>JPsb&vF{MgT_H(A;rB`H-dnVEw)^ zp$G+`QKo}1*9v?uHW2&hJ0wUW4fY9-*zem2U((UvB+r(DNL>o_!;WiOP%{h#eHQ<2 zFdEkf3&6tX;Oob4wvrn_ZjmBxo4tAHeHZjVacquZ=vc_m>=WunCp_Koe}E& zfqL|=BZr_DpN-7ZJwSHst&(6NzuTLhzC!62&yXFrKh8DEocnY`UCIZ|#_@1}G!i+F z?1VKe=U9iKPo_MB`~zkTOuKA2M(DsnokbM5GGuD5x<5i21!-rr zoigP~E3t9#LDG5GNO3gdU>BUWbd{Ubgs~q1EGhVyWN(DAPz!hb&Z)a0VD`QnqC{02`&hr2uZM5QS|L2L6^vmv%+m?Ju2%? zyyzEglC4KHmAKnPXF}Ug5IS=I87EDe*!WwFoS~a2_dlK80AyGKRN<)bR{9fay&@azt+j&zLUg{p@NG@R;F;Jz zf2B);(gI&4=9O&=+hN)suqMg}#R)^tSI{IyVw-$Ua?fW<*Z81U+Zl83yOULAbyPe$ z2EM@p(m8WB&;<4@cDtB3d-d4M^AOz$ebdwRB0cy^%*M1KMo;S z-6sYj8crk|kyUv10{1RoPGCK?3;9-|_x4`7RprGROm`EI1$&!6~Xl%{3PqX=L+T!ojW*vYkMel zP|Km8Qf~;j(Hdq3(44J`c>s1@j`u^>@voE&76fEEfk^t2i|5?=AZcS|_$94Jm%Ea% z%xFaP^k4DfLG)U?<}P>xI$+@iYinpeS7umUgsydF0r1<3L>+9D7=k$=m%;5Qd;lc` zBNX<&Fs)aF7O}(wmvmxgi0*?haN&d@;z(K*10Ny`oVCK2o3r24!HeH)@`L5hY0^=U zz@1gk`Jd90yETA8Y&dto8~o7$W6ruIjnt5&$4TS+u%4xNk4{7rLqCya!me}t7Lc0f zXd*twRliK|0pf#4OwcF?lfT11o02_-&b+}evuNSbjsbHJ!pae8c*)NUb8c{XP^U)n{_@@6%{U|Mz4kQxsibs z2q_A*$QW%}U56+8h2et`%33lmF$9`qdvlwCz8(imzkcSk^EaU>X-f(1_}?b}AO+jv zzb*dT;=e8a+t&a8Z`R-R!u6S-vjDa|fo)G<+Y{LK1paq>0_O#|HfQKDGu<>-yOB|)YT^zuWby>5g6=mWbgphoBatz{~ z8Xtea71iNf=Q7vkeLJ2W_%wOkf?=mF-TNXcEs3_fQ%5LI_b)GG=V9SV%RyE zGJFT(+8HZ}jB*v?3`L{3+b}J~%GDpO+wA4`5{WI&b`>I{O>0xwt>$|vXyfb^AskD! zd?t9b+HrcD>#R;yW_-o2)ZJ8sf$t#1yp5H{{twg~Va(Q{BBI@_ z*odnfv$+OX9&`b^uWSx2ag=TWnS6t6ou)?b_T)?U$3s=)ViA5X1e5Oo530@HKPv2t z1Y@OjFWT-P;g}71A36e^Z~x*1vMuUoFYPfTArLOi<2@JM->U4W)f2xtpA!AvfOh}w zR+6B0jv^>nWI&oApXo9kwpkY&rxpy2xr$@+O2agt?n)6swg9e8u<9|CL_X<@7e(M= z#my<_ildQT1=&yz(c*tQc$?nKWof3GzMu8&VEp>Wc$jk$)JYG4I2PEDRVX8rf$v)c zsf2oiiq2Od*i=Gz(7#G0DAPt1@jFa>XOErZtn zDP&T84z8U=pr$&C{9p)HJnw1KQZrr^1}?WqbLn4r57G(KZT@v0tz7SK=h3vAew{}f zxO%JVlICg2bNm}LBglk@sTOs~vbDh=-l_8S+1e62n9uWaYq-Oy6&(T8S6rw+W6jJ= zP!A0_FskiX93jkH3H}Yas!KW^z_n$tynJ;Sa9S0sV`v*UxvvnT$vJ~Rf;{7*f}JWYutGLK|CJG0iQM!-T7lVgN1?h*k_yI9A$U%a zBhTWq3WqCj7{3v^+4oF7Qry@)wN6l0A^0WXkf=Pb`97S1jJC&ZmO?P33Tx62R%kjm z$#6cb{@Mt=d#uw*{tw}!JzHFJGXF+J1#GmKzOYOQX-jDk%e$hwJ5fh*re)!S*k6hz zKqhNT=KV-pyhlX@*uM@Ml77)5ncf@pG3K#XqUkX%WDrYV(qlHIP%nTns`on2xo@GS zq6_zeJ==v%_GjbUYJrJ32O3*@rcmcGmi3AKddYbZ)<4{Mge2L24@_K6^8d$_+PzyZ z(fwdCRF-@L?>Q0Y zQEmC*^`!{~7{=GV|2Q=jG$lGt-#Tp+dV&AvRamOA_P{_mT+Y;#GjR~!LId7H;bYM> zA^0h6q4WvbLve_;to9$^f*(NO+M5;-{QLz^wAW0@nVQ8qV*u z%_W^+Otal(Sd)S^JRq@4l9y+eDlneEnT!eX+%u1cn=Es$hUpir0XP^d5)Rr` zznC|(RRYku^s@xuLG|krfQO|H2^v|aHof^qa(VZXx2hx=|3=gZZ}~D4kKO9(gu(rS z(P#Sy5OKcN@<@7%k+|R81vj({$4J6fGca%n4P2miQ=eA}tMXZ&PX%GEl*E-}g%%mB z#I>(Ym0spTQ%L<|sS5CnSRLB^Z@4SJuAwZ4neg+wVm6khAHsN=)~b1k|e(Yw=kw-p+3@S~x|@t#dE|im!ZFMI;v7co$}~+<`%WjQ1;TnXpodn!Zfu_ zcAjSy-T*mAq%x;LBB-|C3+O}pOCkmCb_AG-%maD}YTXmm#{zZqmuV0^sI2!3SZ$;r z`a>@iGv$%{!+=hF^Axdos<*eA?y^K^TR#!PzWiMIFJo4Kok-v^8qS#6$Qke3vi+`A ze_8u+-y0Orj)aV=L6YlVNT+AYT<3=R3YTF~k)8c92xclFn8EWM$BNjDD7!YmawR~- zR)gz)EMbGlnd!*fO)bP_&G_i;ETOy16GG?x)Ss@kLXw@^BVK8I8m4-YCc;~2*L%Rc zrd^0{p886NiEsDM3bE-Q9@XPtSBT#*->NcRL~yQ{s1an{-KO3sJNGjqs*TUuM!o!8 zyI27(i~w7a^6|_rjtHPq6sR1#qx!=KEQ$b^girHw2vR~6-i5Ig1=FAO7N$k+m}h^M zDzdy6b5i>0*~pjptOG4Lt^uvI_!64%uhf^3GCYHqdfqtZ@e%W z$jS~g9g^eaOmNW!xOkRZ^Ce)JFT)w+5d~rH<7i82UTi>U%m2RVB8(fmZ3R>3Qp}V5 zQ&Mv`47X^z-1`Ya*I|UVd!l-*D1o1}jhp=yZCoZgB)5?5hEv|>=G~{us1n>@JRk zVe|FiLd+a;%2y^ZXV@~o?X^FHyx&!xb(*sda(S$!&~V(GqB`)H>Vc#k&Or$iHGPi|6YIctJ6R z*bE9^YC>Ek^xMK8xQyRbg4_7G*q$}?ZA@R@TexLn{xmBA#{O;1N`S2=lvL9+SSxSz z^z4!@!v0Pt`UBO73kW|~s1Ywv+eP}K^Uu6E$@YhpPnKNkY;ch6sbXBn^xo{A&_N*z zpa{+!H|h?cGDyYP>3NLxy8uJJ0+E*wq8}6H0*YjhuBB41J~PD=fATb@6uO_F2|6l4 zb^!SRha**c37^3bXjbtDJ91zmB~}nywiQQhm(91!=G$fSZPd&*YGxZXvkjWt2F?A^ z)4L6t+Xl^TV`l$f#muIg>#QRyCCW4Kmy9-RyLNKIkPyzWyOQ-JFm;(*K%F*A@_ zih_{9Dsj+&8Jk+N2^%xS79e?s^_r}{pc7Wxtr8@@atkz8qLrPh0TDV;vJruqH5y}c zXI@>KuJFG2ZnD;1aRXrai;Kq0NIIYff|jE@&~*3&!j!l&&XCecl3*lgnYv%hNe=sF zJg9Qdz?wKp2wI4O*uEdZ1}$%(&;FJ2y@t(?k}K?xoPh1`Yr-GB7aKOI-wqZCuETz@ z^9@hkGMAhs89#e_6?c!g^4}a?nfS)sO0455>Ka4h{3C z`yp$!2ZC2FJPp7FaLC}YdGZu5_OoEi)0%FTOvvzZEz1OI2g<$5&|J+OoEwEJ^`T#cFIB^bt4pL3<01}Gwe57VT62xsODXxH! zsy=76V4!O$zd9?Hdo@zE_GoV7!^IXyeC5a+*|YKO*~sQ(f!oeJs?=jI4os+WCNIa zbr{s1lDgdY2WZ>E<3>7w)^Fk99kSu_#|UE(&^l*r-{mGOXg-7BwC+Zuw}rXx^1gdK z-T_`Qt_8%KcI?Uib{f~#ej>N^h*Xi?a4_spzp(Jpt=E^f3Z1jff1={om04=^-$Skg z8QaM9?Z%b=Q;jPY0?@g`qVz`(TsRRnPkx@~{trk%BaJO7TqW|%d@P`~7;Bk030{!n znlthUcAk1d4$D{xx&+^XMnziO&f(3s=spem2aIB?b5{M_BJU|jCs)yL2YK{& zL7No;5Wo(-a^%N}fT+;@UB}2_4a=9bk&SyP421J+Qp9CPjW;!L%W==M;E6syxwRbE z$FC^yII>QZ1eLt+xqzmnLz-b0(NJ{g^3pV0;@A$ExxSzmPs>H|f7Ra&#eZbk>NlQ8 zzi3cg0Ce31n^*-E`hzYwr8*78UK#5sZxf4vOZIZ^9&sKGpq; z!IK5v3)-Jr1$)`M*^dbfo)u#~tXE}^&*I{lO0PXen=DGB=0}~_P#rRC zml;%8@N;%jptY^v;88r*Bf4)&<|CzzA{Z(jOgcs=^;-Ig_Wdr#%CN+VohimwgezCu zOhP*TN7dXu3BZF>vZMd$B!SUnw~0@+$N=;f}}`)VQk#4 z`>*xe81LzmrONxf*5~$Y(IdRX)_7DgwkYJ`-7@2Sd$TvI#^2b+IclWyWcllCS|8TC z)9%ai8a=pRoIkKv&MNbJ##1pn6hM_(y%}*O# zghpG&PZMPMpYD=+q=+&nW~D$+_m&i>pD*=XTT}}Os#yJ;*`ubuL(!PW;b4m}0fR9C zA+&n;0TWoF%5JnaZCK_t7-q>^)_b;9oQR3g<&PfL&y}-U7q>ML`+As1v)g(R>oHz{chC zBLaQ$Mazd#IYh?9IRPz(=Yc?l*en+}w_^3PrQVoL35}VJwWShv^|%Qy%vyiRf8)U^ zL}x93WRIT+rLyZQEmA*^Y?_#Yy?1?O?n_se09jOoBkmjDv&+E!gk;dLUkX>#MBujb z`O~!~>-aKbBs?3MxoVK``?=kgB|?}e*wG*T$X3%8FuNIya2qa5?* zRqYt>M@nTfI1NcC3oqU{A^2|fK;~{lT(gT`qfJ-RoNO5lcR$1fKJ@FnAwu@~t@CiQ z^j|29K1WkkxB1n_gvP|xNvf-ZjK=v_1&M-0uJm-U9~ld!Qdd)3w4DzKRF9X~;L&LE z*`n)IxHHK9LpD^k3jLBt^v5)XA6o-K_R_hfL`{ z7W{lNAQvR|#qH_(zm$x!;dfE6 zHT83?DM!b&sCdiWj*IVQ@GT0uwsIInc85XAnCFJ*Wf>TmLk_f+r%#>6R2%Z$7S_Rl zgu>-=oIlVZ!{wcKkNe%Y6ooPIj2j0O1B6`f*>#mlr6k+72Zjpz)3E8`?W#UrOeh8BCf~?$3fQ7Y5aD-aU3w&G@YZgkqh{@%M2w!p90!)6DAIexn!xIJ!_f> z+OadoBFG5i5y`i8|7JH=BnhR!0HGW~q0+%2Q~4T7kEM+@%wiDPx$z$(I8kEaj1tl+ z)ZsZ-C$jcVKE(F?V#!T;R!#}Gc}r(RrJp}5t9<_K#r73B`LxD9cdS62cv^$lW+kwK zES`wH-bVxnOy3qcV*yGixAH%ugc_MmG#q-0ooq09jWw(u3uB)pteVz@n%E2M`Zu4* zRh2kTPf=1Wkl#~2>#;KXUBUasAY(cm)=W;_=aK|I&;T$;u;Ad6xTZNXp5I*LfSJd%XogbY7p;}9lXXQB( zeUL;osOPIh8jV+p<&JKb{dc9`ZfODUOyC7#iXI>| zH>ZGk8n};$o=GgVw>j@)*`w*+pq{|4?@uGPWqeejTa6xcVj#-$cM->$ba4-7LmCz? zHzG|s6xoMUpsH+Xr0ED-S*0pX4SHMVqQLi=5@&BqQpgMem+b24t|VSMFy-PDXnIMn zQcS)%EBDx2vhdv0h;laF`21A6D~5AcLF`D^&21>ZO~;A3zJh7;cTfH&Ou)CXJ16n* z1Syr|q|g4&QTl~BNYJiK{Fn&*%M<4vJttwW;d*N|SH5hVHg*9&pxrZ8%wze7-z&O> zfWSWWb7Ho+xPv~)QriHkb3e$R#y6`2D6r7rb*`G0b$VIANi+Y4PP&W|&DwI8R%B5r zNLgP@T)ejzT2SJ1Q{TyZb|q3A$ea_!2#e9$`@ar=Nr`mTij`+Oa&s3TZZUthl%5ac}7)5*>=W|Oes8?gGwf|WbJoNe`6 zY2s#Q;BfdNP9HzJf_SEiU_+Qj5pVS>_IR`EgC%ngd`h5ds{od*bL0v9yfdGy)+pm5 z@r>ww0`L#$kSHgWuKXnLUJ7&>0VgRw;U#8ZU*Wq9qy%FW3?|txr$${>Q9~+Aag;XA zPur{I@br$eU2Z-=il5{E0E*J_5>_*B{C2M;Rp}L6nKUf-C{owYRo5#WlijbRBX|Rm zFEUFq2EKN@cOYQKG>B5LLS@>15N=_y${^@?esJ7~{r)}cPea)|cfZ>wpY6YoEcTo+ zv6@e8;6>tCDbW}FKOMg>Bk#*Oh=L4ngx$s?cty@&!XJI={%({LxP3a>OY@~{_;bk$ z@iW%VDeaNqSw-ghaywL|HwY<%gubmjYOf^ZAaNG_Ah434A$- z^d5l@0~=T7GGm(J?5R4xwlqE2beJfpKVe`up%fmf7Bm+3+!t^b_(BkkB^J=0cPZNH zVQ$;Z__@G^%mW`679Q7KBp#<;+jedyC!IdM~dVP&W;dJQhxdAe^i^nhJYVKydL-t%0p zr)q8-n34T1(s1*IyFlXGecmyH%e5bIxwLLN37R659wIxr-)v(Xujzt+r&#^~!6?@~ z?&J8^Iqq>^^XW*~W1Fx;&VuR>LSqcRP@>E55dKU;_)`=b^$2PZ{!AYmbiAH=r(w4D-+`DCx3osHxBRH)u@$Ym4 ziGm1;Ed++0_b)$FYStyn(&BHcP-8g!897XZ3rvX*Gl-_WMsA-9Zr}IX*^7UKolSQ= zH6;G+vy{11nYilh;P6Ua7m4gPThQw2>dvc4Rl^POb3{Q8cHGPd$-Yd^z*oTS$;eG` z4;zeJKb0TJrgZeYR=PL1tHp4FWLO&|nNQZx58-gITu({H&s#3t|L^l7S!|Xi$(7#X zJog_1Z`8mx#rIcuSDb_fKd;$0bR#R9-Tj+wlUQ}>W__!e0naxNcrt@k;RK=76A?su z`WzNshLjoGC613>+|aAeu;4_3Ch_N99tIti)dJ%ND7_KYYX+Vjm7-U~RU&aQ@&=&# zCpo(m+LJ3@EtVr)-=0*MY46Q;Ju1k*;1ePt-pDD%onTAY!41ETQW7HTAOyL0ZwR0r z7bu!2XUaXBb3bvB!CX6bQ{q?qq>=~F@n9jxPmF+`hC3oAF_1o=OeIG zRzVo*ywmmT`@69e2h=5C0|X;cP{msBw4%<$i(^OpAaWss$fXT$613?lB!4tkyLttY zB2ysd zaY(y~lFp&TV@Ldd9afbf0u=a}WZVdXy(_{Y-0#LvdUw9VzjGo)Sv#4@m#&OMw47Yl z7LQpUF1#00u)Z=JU-G|B-sV?&%)!c;Z>4QO-dL%#G-Anbjl?M<=9@*zc#7F~<~Zof zU_@W?;h#MB$uNsj(LyNQTg~TiU^E!VF}xOyo%sVk?aw*#8;O!~Xl&mQWy#v-_|tib zK=N%08747zKAZWk4iK_%c8&vN%OhZe6jC%rb3tPQD^^v9&}W9379AuCs`V%&#s_cn zBrsmN>>EwNS{6dQO5j6MQpyk+vydf;QqjLYJx>H&H*pGfDx_(@L^ivl8ehQ9->t*W=2#5

M%QI4K7n>6cQm4~ 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

FaOzki8wFw*{Nd(iW<$m#s@7UTu)p0Wh(* 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 literal 0 HcmV?d00001 diff --git a/examples/arc_benchmark/initial_program.py b/examples/arc_benchmark/initial_program.py new file mode 100644 index 000000000..39f75f7c2 --- /dev/null +++ b/examples/arc_benchmark/initial_program.py @@ -0,0 +1,42 @@ +# EVOLVE-BLOCK-START + +import numpy as np + +def transform_grid_attempt_1(grid): + """ + Example transformation: + - Validate input (2D, integer values 0-9). + - Rotate the grid 90 degrees clockwise. + - Increment every cell by 1 modulo 10 (keeps values 0-9). + Returns a new numpy int array. + """ + arr = _validate_grid(grid) + out = np.rot90(arr, k=-1) # 90 degrees clockwise + out = (out + 1) % 10 + return out.astype(np.int32) + +def transform_grid_attempt_2(grid): + """ + Example transformation: + - Validate input (2D, integer values 0-9). + - Upsample each cell to a 2x2 block (doubling both dimensions). + - Invert colors by mapping v -> 9 - v (keeps values 0-9). + Returns a new numpy int array. + """ + arr = _validate_grid(grid) + out = np.repeat(np.repeat(arr, 2, axis=0), 2, axis=1) + out = 9 - out + return out.astype(np.int32) + +# EVOLVE-BLOCK-END + +def _validate_grid(grid): + arr = np.asarray(grid) + if arr.ndim != 2: + raise ValueError("Input must be a 2D array.") + # cast to integer type for value checks + if not np.issubdtype(arr.dtype, np.integer): + arr = arr.astype(int) + if arr.size and (arr.min() < 0 or arr.max() > 9): + raise ValueError("Array values must be integers in the range 0-9.") + return arr \ No newline at end of file diff --git a/examples/arc_benchmark/outputs/evaluation_task_0/best/best_program.py b/examples/arc_benchmark/outputs/evaluation_task_0/best/best_program.py new file mode 100644 index 000000000..f6c6b8efd --- /dev/null +++ b/examples/arc_benchmark/outputs/evaluation_task_0/best/best_program.py @@ -0,0 +1,107 @@ +# EVOLVE-BLOCK-START + +import numpy as np + +def transform_grid_attempt_1(grid): + """ + Transformation logic: + 1. Identify the bounding box of the '8' values (mask) in the grid. + 2. The output grid has the same dimensions as this bounding box. + 3. For each cell (r, c) in the bounding box: + a. Calculate the vertically symmetric row: target_r = (Height + 1) - r. + If target_r is valid and grid[target_r, c] is not 8, use it. + b. Otherwise, use the diagonally transposed position: grid[c, r]. + """ + arr = _validate_grid(grid) + rows, cols = np.where(arr == 8) + + if len(rows) == 0: + return arr + + min_r, max_r = np.min(rows), np.max(rows) + min_c, max_c = np.min(cols), np.max(cols) + + height = max_r - min_r + 1 + width = max_c - min_c + 1 + + out = np.zeros((height, width), dtype=np.int32) + + N = arr.shape[0] + # Reflection constant determined to be N + 1 (31 for 30x30) + reflection_constant = N + 1 + + for r in range(min_r, max_r + 1): + for c in range(min_c, max_c + 1): + target_r = reflection_constant - r + + val = 8 + if 0 <= target_r < N: + val = arr[target_r, c] + + if val == 8: + # Fallback to diagonal transpose + # Ensure indices are within bounds (though for square grids they should be) + if 0 <= c < N and 0 <= r < arr.shape[1]: + val = arr[c, r] + + out[r - min_r, c - min_c] = val + + return out + +def transform_grid_attempt_2(grid): + """ + Similar to attempt 1 but with an additional fallback strategy. + Strategies: + 1. Vertical reflection: grid[31-r, c] + 2. Diagonal transpose: grid[c, r] + 3. Horizontal reflection: grid[r, 31-c] + """ + arr = _validate_grid(grid) + rows, cols = np.where(arr == 8) + + if len(rows) == 0: + return arr + + min_r, max_r = np.min(rows), np.max(rows) + min_c, max_c = np.min(cols), np.max(cols) + + out = np.zeros((max_r - min_r + 1, max_c - min_c + 1), dtype=np.int32) + N = arr.shape[0] + M = arr.shape[1] + + for r in range(min_r, max_r + 1): + for c in range(min_c, max_c + 1): + val = 8 + + # 1. Vertical reflection + tr = (N + 1) - r + if 0 <= tr < N: + val = arr[tr, c] + + # 2. Diagonal transpose + if val == 8: + if 0 <= c < N and 0 <= r < M: + val = arr[c, r] + + # 3. Horizontal reflection + if val == 8: + tc = (M + 1) - c + if 0 <= tc < M: + val = arr[r, tc] + + out[r - min_r, c - min_c] = val + + return out + +# EVOLVE-BLOCK-END + +def _validate_grid(grid): + arr = np.asarray(grid) + if arr.ndim != 2: + raise ValueError("Input must be a 2D array.") + # cast to integer type for value checks + if not np.issubdtype(arr.dtype, np.integer): + arr = arr.astype(int) + if arr.size and (arr.min() < 0 or arr.max() > 9): + raise ValueError("Array values must be integers in the range 0-9.") + return arr \ No newline at end of file diff --git a/examples/arc_benchmark/outputs/evaluation_task_0/best/best_program_info.json b/examples/arc_benchmark/outputs/evaluation_task_0/best/best_program_info.json new file mode 100644 index 000000000..0aec19c37 --- /dev/null +++ b/examples/arc_benchmark/outputs/evaluation_task_0/best/best_program_info.json @@ -0,0 +1,25 @@ +{ + "id": "ce48590c-4448-45b9-83f4-9e0a85424033", + "generation": 1, + "iteration": 2, + "timestamp": 1767790991.5850093, + "parent_id": "90c2a0c2-e3bd-4aa4-9bdc-1ab1b9326f97", + "metrics": { + "runs_successfully": 1.0, + "combined_score": 1.0, + "train_example_0_pass_at_2": 1, + "train_example_0_attempt_0": true, + "train_example_0_attempt_1": true, + "train_example_1_pass_at_2": 1, + "train_example_1_attempt_0": true, + "train_example_1_attempt_1": true, + "train_example_2_pass_at_2": 1, + "train_example_2_attempt_0": true, + "train_example_2_attempt_1": true, + "train_example_3_pass_at_2": 1, + "train_example_3_attempt_0": true, + "train_example_3_attempt_1": true + }, + "language": "python", + "saved_at": 1767791374.6249106 +} \ No newline at end of file diff --git a/examples/arc_benchmark/outputs/evaluation_task_0/best/post_evolution_evaluation_result.json b/examples/arc_benchmark/outputs/evaluation_task_0/best/post_evolution_evaluation_result.json new file mode 100644 index 000000000..fc30deac8 --- /dev/null +++ b/examples/arc_benchmark/outputs/evaluation_task_0/best/post_evolution_evaluation_result.json @@ -0,0 +1,10 @@ +{ + "metrics": { + "runs_successfully": 1.0, + "combined_score": 1.0, + "test_example_0_pass_at_2": 1, + "test_example_0_attempt_0": true, + "test_example_0_attempt_1": true + }, + "artifacts": {} +} \ No newline at end of file diff --git a/examples/arc_benchmark/outputs/evaluation_task_0/checkpoints/checkpoint_100/best_program.py b/examples/arc_benchmark/outputs/evaluation_task_0/checkpoints/checkpoint_100/best_program.py new file mode 100644 index 000000000..f6c6b8efd --- /dev/null +++ b/examples/arc_benchmark/outputs/evaluation_task_0/checkpoints/checkpoint_100/best_program.py @@ -0,0 +1,107 @@ +# EVOLVE-BLOCK-START + +import numpy as np + +def transform_grid_attempt_1(grid): + """ + Transformation logic: + 1. Identify the bounding box of the '8' values (mask) in the grid. + 2. The output grid has the same dimensions as this bounding box. + 3. For each cell (r, c) in the bounding box: + a. Calculate the vertically symmetric row: target_r = (Height + 1) - r. + If target_r is valid and grid[target_r, c] is not 8, use it. + b. Otherwise, use the diagonally transposed position: grid[c, r]. + """ + arr = _validate_grid(grid) + rows, cols = np.where(arr == 8) + + if len(rows) == 0: + return arr + + min_r, max_r = np.min(rows), np.max(rows) + min_c, max_c = np.min(cols), np.max(cols) + + height = max_r - min_r + 1 + width = max_c - min_c + 1 + + out = np.zeros((height, width), dtype=np.int32) + + N = arr.shape[0] + # Reflection constant determined to be N + 1 (31 for 30x30) + reflection_constant = N + 1 + + for r in range(min_r, max_r + 1): + for c in range(min_c, max_c + 1): + target_r = reflection_constant - r + + val = 8 + if 0 <= target_r < N: + val = arr[target_r, c] + + if val == 8: + # Fallback to diagonal transpose + # Ensure indices are within bounds (though for square grids they should be) + if 0 <= c < N and 0 <= r < arr.shape[1]: + val = arr[c, r] + + out[r - min_r, c - min_c] = val + + return out + +def transform_grid_attempt_2(grid): + """ + Similar to attempt 1 but with an additional fallback strategy. + Strategies: + 1. Vertical reflection: grid[31-r, c] + 2. Diagonal transpose: grid[c, r] + 3. Horizontal reflection: grid[r, 31-c] + """ + arr = _validate_grid(grid) + rows, cols = np.where(arr == 8) + + if len(rows) == 0: + return arr + + min_r, max_r = np.min(rows), np.max(rows) + min_c, max_c = np.min(cols), np.max(cols) + + out = np.zeros((max_r - min_r + 1, max_c - min_c + 1), dtype=np.int32) + N = arr.shape[0] + M = arr.shape[1] + + for r in range(min_r, max_r + 1): + for c in range(min_c, max_c + 1): + val = 8 + + # 1. Vertical reflection + tr = (N + 1) - r + if 0 <= tr < N: + val = arr[tr, c] + + # 2. Diagonal transpose + if val == 8: + if 0 <= c < N and 0 <= r < M: + val = arr[c, r] + + # 3. Horizontal reflection + if val == 8: + tc = (M + 1) - c + if 0 <= tc < M: + val = arr[r, tc] + + out[r - min_r, c - min_c] = val + + return out + +# EVOLVE-BLOCK-END + +def _validate_grid(grid): + arr = np.asarray(grid) + if arr.ndim != 2: + raise ValueError("Input must be a 2D array.") + # cast to integer type for value checks + if not np.issubdtype(arr.dtype, np.integer): + arr = arr.astype(int) + if arr.size and (arr.min() < 0 or arr.max() > 9): + raise ValueError("Array values must be integers in the range 0-9.") + return arr \ No newline at end of file diff --git a/examples/arc_benchmark/outputs/evaluation_task_0/checkpoints/checkpoint_100/best_program_info.json b/examples/arc_benchmark/outputs/evaluation_task_0/checkpoints/checkpoint_100/best_program_info.json new file mode 100644 index 000000000..c71ebcdbf --- /dev/null +++ b/examples/arc_benchmark/outputs/evaluation_task_0/checkpoints/checkpoint_100/best_program_info.json @@ -0,0 +1,25 @@ +{ + "id": "ce48590c-4448-45b9-83f4-9e0a85424033", + "generation": 1, + "iteration": 2, + "current_iteration": 100, + "metrics": { + "runs_successfully": 1.0, + "combined_score": 1.0, + "train_example_0_pass_at_2": 1, + "train_example_0_attempt_0": true, + "train_example_0_attempt_1": true, + "train_example_1_pass_at_2": 1, + "train_example_1_attempt_0": true, + "train_example_1_attempt_1": true, + "train_example_2_pass_at_2": 1, + "train_example_2_attempt_0": true, + "train_example_2_attempt_1": true, + "train_example_3_pass_at_2": 1, + "train_example_3_attempt_0": true, + "train_example_3_attempt_1": true + }, + "language": "python", + "timestamp": 1767790991.5850093, + "saved_at": 1767790991.5910103 +} \ No newline at end of file diff --git a/examples/arc_benchmark/outputs/evaluation_task_0/checkpoints/checkpoint_100/metadata.json b/examples/arc_benchmark/outputs/evaluation_task_0/checkpoints/checkpoint_100/metadata.json new file mode 100644 index 000000000..16c76d04a --- /dev/null +++ b/examples/arc_benchmark/outputs/evaluation_task_0/checkpoints/checkpoint_100/metadata.json @@ -0,0 +1 @@ +{"island_feature_maps": [{"5-0": "90c2a0c2-e3bd-4aa4-9bdc-1ab1b9326f97", "9-5": "ce48590c-4448-45b9-83f4-9e0a85424033"}, {}, {}], "islands": [["90c2a0c2-e3bd-4aa4-9bdc-1ab1b9326f97", "ce48590c-4448-45b9-83f4-9e0a85424033"], [], []], "archive": ["90c2a0c2-e3bd-4aa4-9bdc-1ab1b9326f97", "ce48590c-4448-45b9-83f4-9e0a85424033"], "best_program_id": "ce48590c-4448-45b9-83f4-9e0a85424033", "island_best_programs": ["ce48590c-4448-45b9-83f4-9e0a85424033", null, null], "last_iteration": 100, "current_island": 0, "island_generations": [1, 0, 0], "last_migration_generation": 0, "feature_stats": {"complexity": {"min": 1301.0, "max": 3274.0, "values": [1301.0, 3274.0]}, "diversity": {"min": 852.3, "max": 852.3, "values": [852.3]}}} \ No newline at end of file diff --git a/examples/arc_benchmark/outputs/evaluation_task_0/checkpoints/checkpoint_100/programs/90c2a0c2-e3bd-4aa4-9bdc-1ab1b9326f97.json b/examples/arc_benchmark/outputs/evaluation_task_0/checkpoints/checkpoint_100/programs/90c2a0c2-e3bd-4aa4-9bdc-1ab1b9326f97.json new file mode 100644 index 000000000..b029819a0 --- /dev/null +++ b/examples/arc_benchmark/outputs/evaluation_task_0/checkpoints/checkpoint_100/programs/90c2a0c2-e3bd-4aa4-9bdc-1ab1b9326f97.json @@ -0,0 +1 @@ +{"id": "90c2a0c2-e3bd-4aa4-9bdc-1ab1b9326f97", "code": "# EVOLVE-BLOCK-START\n\nimport numpy as np\n\ndef transform_grid_attempt_1(grid):\n \"\"\"\n Example transformation:\n - Validate input (2D, integer values 0-9).\n - Rotate the grid 90 degrees clockwise.\n - Increment every cell by 1 modulo 10 (keeps values 0-9).\n Returns a new numpy int array.\n \"\"\"\n arr = _validate_grid(grid)\n out = np.rot90(arr, k=-1) # 90 degrees clockwise\n out = (out + 1) % 10\n return out.astype(np.int32)\n\ndef transform_grid_attempt_2(grid):\n \"\"\"\n Example transformation:\n - Validate input (2D, integer values 0-9).\n - Upsample each cell to a 2x2 block (doubling both dimensions).\n - Invert colors by mapping v -> 9 - v (keeps values 0-9).\n Returns a new numpy int array.\n \"\"\"\n arr = _validate_grid(grid)\n out = np.repeat(np.repeat(arr, 2, axis=0), 2, axis=1)\n out = 9 - out\n return out.astype(np.int32)\n\n# EVOLVE-BLOCK-END\n\ndef _validate_grid(grid):\n arr = np.asarray(grid)\n if arr.ndim != 2:\n raise ValueError(\"Input must be a 2D array.\")\n # cast to integer type for value checks\n if not np.issubdtype(arr.dtype, np.integer):\n arr = arr.astype(int)\n if arr.size and (arr.min() < 0 or arr.max() > 9):\n raise ValueError(\"Array values must be integers in the range 0-9.\")\n return arr", "language": "python", "parent_id": null, "generation": 0, "timestamp": 1767790721.002828, "iteration_found": 0, "metrics": {"runs_successfully": 1.0, "combined_score": 0.0, "train_example_0_pass_at_2": 0, "train_example_0_attempt_0": false, "train_example_0_attempt_1": false, "train_example_1_pass_at_2": 0, "train_example_1_attempt_0": false, "train_example_1_attempt_1": false, "train_example_2_pass_at_2": 0, "train_example_2_attempt_0": false, "train_example_2_attempt_1": false, "train_example_3_pass_at_2": 0, "train_example_3_attempt_0": false, "train_example_3_attempt_1": false}, "complexity": 0.0, "diversity": 0.0, "metadata": {"island": 0}, "prompts": null, "artifacts_json": null, "artifact_dir": null, "embedding": null} \ No newline at end of file diff --git a/examples/arc_benchmark/outputs/evaluation_task_0/checkpoints/checkpoint_100/programs/ce48590c-4448-45b9-83f4-9e0a85424033.json b/examples/arc_benchmark/outputs/evaluation_task_0/checkpoints/checkpoint_100/programs/ce48590c-4448-45b9-83f4-9e0a85424033.json new file mode 100644 index 000000000..726dd9e08 --- /dev/null +++ b/examples/arc_benchmark/outputs/evaluation_task_0/checkpoints/checkpoint_100/programs/ce48590c-4448-45b9-83f4-9e0a85424033.json @@ -0,0 +1 @@ +{"id": "ce48590c-4448-45b9-83f4-9e0a85424033", "code": "# EVOLVE-BLOCK-START\n\nimport numpy as np\n\ndef transform_grid_attempt_1(grid):\n \"\"\"\n Transformation logic:\n 1. Identify the bounding box of the '8' values (mask) in the grid.\n 2. The output grid has the same dimensions as this bounding box.\n 3. For each cell (r, c) in the bounding box:\n a. Calculate the vertically symmetric row: target_r = (Height + 1) - r.\n If target_r is valid and grid[target_r, c] is not 8, use it.\n b. Otherwise, use the diagonally transposed position: grid[c, r].\n \"\"\"\n arr = _validate_grid(grid)\n rows, cols = np.where(arr == 8)\n \n if len(rows) == 0:\n return arr\n \n min_r, max_r = np.min(rows), np.max(rows)\n min_c, max_c = np.min(cols), np.max(cols)\n \n height = max_r - min_r + 1\n width = max_c - min_c + 1\n \n out = np.zeros((height, width), dtype=np.int32)\n \n N = arr.shape[0]\n # Reflection constant determined to be N + 1 (31 for 30x30)\n reflection_constant = N + 1\n \n for r in range(min_r, max_r + 1):\n for c in range(min_c, max_c + 1):\n target_r = reflection_constant - r\n \n val = 8\n if 0 <= target_r < N:\n val = arr[target_r, c]\n \n if val == 8:\n # Fallback to diagonal transpose\n # Ensure indices are within bounds (though for square grids they should be)\n if 0 <= c < N and 0 <= r < arr.shape[1]:\n val = arr[c, r]\n \n out[r - min_r, c - min_c] = val\n \n return out\n\ndef transform_grid_attempt_2(grid):\n \"\"\"\n Similar to attempt 1 but with an additional fallback strategy.\n Strategies:\n 1. Vertical reflection: grid[31-r, c]\n 2. Diagonal transpose: grid[c, r]\n 3. Horizontal reflection: grid[r, 31-c]\n \"\"\"\n arr = _validate_grid(grid)\n rows, cols = np.where(arr == 8)\n \n if len(rows) == 0:\n return arr\n \n min_r, max_r = np.min(rows), np.max(rows)\n min_c, max_c = np.min(cols), np.max(cols)\n \n out = np.zeros((max_r - min_r + 1, max_c - min_c + 1), dtype=np.int32)\n N = arr.shape[0]\n M = arr.shape[1]\n \n for r in range(min_r, max_r + 1):\n for c in range(min_c, max_c + 1):\n val = 8\n \n # 1. Vertical reflection\n tr = (N + 1) - r\n if 0 <= tr < N:\n val = arr[tr, c]\n \n # 2. Diagonal transpose\n if val == 8:\n if 0 <= c < N and 0 <= r < M:\n val = arr[c, r]\n \n # 3. Horizontal reflection\n if val == 8:\n tc = (M + 1) - c\n if 0 <= tc < M:\n val = arr[r, tc]\n \n out[r - min_r, c - min_c] = val\n \n return out\n\n# EVOLVE-BLOCK-END\n\ndef _validate_grid(grid):\n arr = np.asarray(grid)\n if arr.ndim != 2:\n raise ValueError(\"Input must be a 2D array.\")\n # cast to integer type for value checks\n if not np.issubdtype(arr.dtype, np.integer):\n arr = arr.astype(int)\n if arr.size and (arr.min() < 0 or arr.max() > 9):\n raise ValueError(\"Array values must be integers in the range 0-9.\")\n return arr", "language": "python", "parent_id": "90c2a0c2-e3bd-4aa4-9bdc-1ab1b9326f97", "generation": 1, "timestamp": 1767790991.5850093, "iteration_found": 2, "metrics": {"runs_successfully": 1.0, "combined_score": 1.0, "train_example_0_pass_at_2": 1, "train_example_0_attempt_0": true, "train_example_0_attempt_1": true, "train_example_1_pass_at_2": 1, "train_example_1_attempt_0": true, "train_example_1_attempt_1": true, "train_example_2_pass_at_2": 1, "train_example_2_attempt_0": true, "train_example_2_attempt_1": true, "train_example_3_pass_at_2": 1, "train_example_3_attempt_0": true, "train_example_3_attempt_1": true}, "complexity": 0.0, "diversity": 0.0, "metadata": {"changes": "Change 1: Replace 31 lines with 96 lines", "parent_metrics": {"runs_successfully": 1.0, "combined_score": 0.0, "train_example_0_pass_at_2": 0, "train_example_0_attempt_0": false, "train_example_0_attempt_1": false, "train_example_1_pass_at_2": 0, "train_example_1_attempt_0": false, "train_example_1_attempt_1": false, "train_example_2_pass_at_2": 0, "train_example_2_attempt_0": false, "train_example_2_attempt_1": false, "train_example_3_pass_at_2": 0, "train_example_3_attempt_0": false, "train_example_3_attempt_1": false}, "island": 0}, "prompts": {"diff_user": {"system": "You are participating in a puzzle solving competition. You are an expert at solving puzzles.\nFind the common pattern that transforms each input grid into its corresponding output grid...\n\nYour task is to write a python function that transforms each input grid into its corresponding output grid. This function must:\n- Apply consistently to ALL training examples\n- Be general enough to work on new test cases \n- Be intuitive and easy to understand\n- Apply the pattern without referencing specific example numbers\n\nYou are provided the following training example grids:\nIn 0 - [[3, 5, 3, 3, 6, 6, 5, 4, 1, 4, 9, 9, 4, 3, 9, 9, 9, 9, 3, 4, 9, 9, 4, 1, 4, 5, 6, 6, 3, 3], [5, 3, 3, 3, 6, 6, 4, 5, 4, 1, 9, 9, 3, 4, 9, 1, 1, 9, 4, 3, 9, 9, 1, 4, 5, 4, 6, 6, 3, 3], [1, 1, 3, 5, 5, 4, 6, 6, 9, 1, 1, 4, 9, 9, 4, 5, 5, 4, 9, 9, 4, 1, 1, 9, 6, 6, 4, 5, 5, 3], [1, 1, 5, 3, 4, 5, 6, 6, 1, 9, 4, 1, 9, 1, 4, 4, 4, 4, 1, 9, 1, 4, 9, 1, 6, 6, 5, 4, 3, 5], [6, 9, 9, 9, 3, 5, 3, 3, 4, 3, 9, 9, 9, 2, 6, 9, 9, 6, 2, 9, 9, 9, 3, 4, 3, 3, 5, 3, 9, 9], [9, 6, 9, 9, 5, 3, 3, 3, 3, 4, 9, 1, 9, 9, 9, 6, 6, 9, 9, 9, 1, 9, 4, 3, 3, 3, 3, 5, 9, 9], [9, 9, 6, 9, 1, 1, 3, 5, 9, 9, 4, 4, 6, 9, 9, 2, 2, 9, 9, 6, 4, 4, 9, 9, 5, 3, 1, 1, 9, 6], [9, 9, 9, 6, 1, 1, 5, 3, 9, 1, 5, 4, 9, 6, 9, 9, 9, 9, 6, 9, 4, 5, 1, 9, 3, 5, 1, 1, 6, 9], [1, 4, 9, 1, 4, 3, 9, 9, 5, 5, 7, 2, 4, 3, 2, 4, 4, 2, 3, 4, 2, 7, 5, 5, 9, 9, 3, 4, 1, 9], [4, 1, 1, 9, 3, 4, 9, 1, 4, 5, 2, 7, 3, 4, 4, 2, 2, 4, 4, 3, 7, 2, 5, 4, 1, 9, 4, 3, 9, 1], [9, 9, 1, 4, 9, 9, 4, 5, 6, 4, 5, 5, 2, 4, 4, 3, 3, 4, 4, 2, 5, 5, 4, 6, 5, 4, 9, 9, 4, 1], [9, 9, 4, 1, 9, 1, 4, 4, 4, 5, 4, 5, 4, 2, 3, 4, 4, 3, 2, 4, 5, 4, 5, 4, 4, 4, 1, 9, 1, 4], [4, 3, 9, 9, 9, 9, 6, 9, 5, 9, 7, 7, 5, 5, 7, 2, 2, 7, 5, 5, 7, 7, 9, 5, 9, 6, 9, 9, 9, 9], [3, 4, 9, 1, 2, 9, 9, 6, 9, 5, 7, 7, 4, 5, 2, 7, 7, 2, 5, 4, 7, 7, 5, 9, 6, 9, 9, 2, 1, 9], [9, 9, 4, 4, 6, 9, 9, 9, 7, 7, 5, 9, 5, 4, 5, 5, 5, 5, 4, 5, 9, 5, 7, 7, 9, 8, 8, 8, 8, 4], [9, 1, 5, 4, 9, 6, 2, 9, 7, 7, 9, 5, 4, 6, 4, 5, 5, 4, 6, 4, 5, 9, 7, 7, 9, 8, 8, 8, 8, 5], [9, 1, 5, 4, 9, 6, 2, 9, 7, 7, 9, 5, 4, 6, 4, 5, 5, 4, 6, 4, 5, 9, 7, 7, 9, 8, 8, 8, 8, 5], [9, 9, 4, 4, 6, 9, 9, 9, 7, 7, 5, 9, 5, 4, 5, 5, 5, 5, 4, 5, 9, 5, 7, 7, 9, 8, 8, 8, 8, 4], [3, 4, 9, 1, 2, 9, 9, 6, 9, 5, 7, 7, 4, 5, 2, 7, 7, 2, 5, 4, 7, 7, 5, 9, 6, 8, 8, 8, 8, 9], [4, 3, 9, 9, 9, 9, 6, 9, 5, 9, 7, 7, 5, 5, 7, 2, 2, 7, 5, 5, 7, 7, 9, 5, 9, 8, 8, 8, 8, 9], [9, 9, 4, 1, 9, 1, 4, 4, 4, 5, 4, 5, 4, 2, 3, 4, 4, 3, 2, 4, 5, 4, 5, 4, 4, 8, 8, 8, 8, 4], [9, 9, 1, 4, 9, 9, 4, 5, 6, 4, 5, 5, 2, 4, 4, 3, 3, 4, 4, 2, 5, 5, 4, 6, 5, 8, 8, 8, 8, 1], [4, 1, 1, 9, 3, 4, 9, 1, 4, 5, 2, 7, 3, 4, 4, 2, 2, 4, 4, 3, 7, 2, 5, 4, 1, 8, 8, 8, 8, 1], [1, 4, 9, 1, 4, 3, 9, 9, 5, 5, 7, 2, 4, 3, 2, 4, 4, 2, 3, 4, 2, 7, 5, 5, 9, 9, 3, 4, 1, 9], [9, 9, 9, 6, 1, 1, 5, 3, 9, 1, 5, 4, 9, 6, 9, 9, 9, 9, 6, 9, 4, 5, 1, 9, 3, 5, 1, 1, 6, 9], [9, 9, 6, 9, 1, 1, 3, 5, 9, 9, 4, 4, 6, 9, 9, 2, 2, 9, 9, 6, 4, 4, 9, 9, 5, 3, 1, 1, 9, 6], [9, 6, 9, 9, 5, 3, 3, 3, 3, 4, 9, 1, 9, 9, 9, 6, 6, 9, 9, 9, 1, 9, 4, 3, 3, 3, 3, 5, 9, 9], [6, 9, 9, 9, 3, 5, 3, 3, 4, 3, 9, 9, 9, 2, 6, 9, 9, 6, 2, 9, 9, 9, 3, 4, 3, 3, 5, 3, 9, 9], [1, 1, 5, 3, 4, 5, 6, 6, 1, 9, 4, 1, 9, 1, 4, 4, 4, 4, 1, 9, 1, 4, 9, 1, 6, 6, 5, 4, 3, 5], [1, 1, 3, 5, 5, 4, 6, 6, 9, 1, 1, 4, 9, 9, 4, 5, 5, 4, 9, 9, 4, 1, 1, 9, 6, 6, 4, 5, 5, 3]]\nOut 0 - [[9, 9, 6, 4], [2, 6, 9, 4], [2, 6, 9, 4], [9, 9, 6, 4], [9, 9, 2, 1], [6, 9, 9, 9], [4, 1, 9, 1], [4, 9, 9, 4], [9, 4, 3, 9]]\nIn 1 - [[9, 9, 2, 3, 4, 4, 7, 5, 3, 3, 6, 6, 3, 5, 6, 4, 4, 6, 5, 3, 6, 6, 3, 3, 5, 7, 4, 4, 3, 2], [7, 9, 3, 5, 4, 4, 5, 7, 3, 3, 6, 6, 6, 3, 4, 6, 6, 4, 3, 6, 6, 6, 3, 3, 7, 5, 4, 4, 5, 3], [3, 2, 9, 9, 7, 5, 4, 4, 4, 1, 3, 3, 6, 4, 4, 7, 7, 4, 4, 6, 3, 8, 8, 8, 8, 8, 5, 7, 9, 9], [2, 3, 7, 9, 5, 7, 4, 4, 1, 4, 3, 3, 4, 6, 7, 4, 4, 7, 6, 4, 3, 8, 8, 8, 8, 8, 7, 5, 9, 7], [7, 7, 9, 3, 9, 9, 5, 3, 3, 6, 6, 4, 6, 7, 9, 9, 9, 9, 7, 6, 4, 8, 8, 8, 8, 8, 9, 9, 3, 9], [7, 7, 3, 9, 7, 9, 3, 2, 5, 3, 4, 6, 2, 6, 9, 9, 9, 9, 6, 2, 6, 8, 8, 8, 8, 8, 9, 7, 9, 3], [9, 3, 7, 7, 3, 2, 9, 9, 6, 4, 4, 7, 9, 2, 6, 7, 7, 6, 2, 9, 7, 4, 4, 6, 9, 9, 2, 3, 7, 7], [3, 9, 7, 7, 2, 3, 7, 9, 4, 6, 7, 4, 2, 9, 2, 6, 6, 2, 9, 2, 4, 7, 6, 4, 9, 7, 3, 2, 7, 7], [3, 3, 4, 1, 3, 5, 6, 4, 2, 4, 7, 7, 1, 6, 7, 2, 2, 7, 6, 1, 7, 7, 4, 2, 4, 6, 5, 3, 1, 4], [3, 3, 1, 4, 6, 3, 4, 6, 2, 2, 7, 1, 6, 1, 2, 7, 7, 2, 1, 6, 1, 7, 2, 2, 6, 4, 3, 6, 4, 1], [6, 6, 3, 3, 6, 4, 4, 7, 1, 1, 2, 4, 7, 2, 1, 6, 6, 1, 2, 7, 4, 2, 1, 1, 7, 4, 4, 6, 3, 3], [6, 6, 3, 3, 4, 6, 7, 4, 1, 3, 2, 2, 2, 7, 6, 1, 1, 6, 7, 2, 2, 2, 3, 1, 4, 7, 6, 4, 3, 3], [3, 6, 6, 4, 6, 2, 9, 2, 9, 9, 9, 7, 2, 4, 1, 7, 7, 1, 4, 2, 7, 9, 9, 9, 2, 9, 2, 6, 4, 6], [5, 3, 4, 6, 7, 6, 2, 9, 9, 9, 7, 9, 2, 2, 7, 7, 7, 7, 2, 2, 9, 7, 9, 9, 9, 2, 6, 7, 6, 4], [6, 4, 4, 7, 9, 9, 6, 2, 9, 7, 9, 9, 3, 1, 2, 4, 4, 2, 1, 3, 9, 9, 7, 9, 2, 6, 9, 9, 7, 4], [4, 6, 7, 4, 9, 9, 7, 6, 7, 9, 9, 9, 1, 1, 2, 2, 2, 2, 1, 1, 9, 9, 9, 7, 6, 7, 9, 9, 4, 7], [4, 6, 7, 4, 9, 9, 7, 6, 7, 9, 9, 9, 1, 1, 2, 2, 2, 2, 1, 1, 9, 9, 9, 7, 6, 7, 9, 9, 4, 7], [6, 4, 4, 7, 9, 9, 6, 2, 9, 7, 9, 9, 3, 1, 2, 4, 4, 2, 1, 3, 9, 9, 7, 9, 2, 6, 9, 9, 7, 4], [5, 3, 4, 6, 7, 6, 2, 9, 9, 9, 7, 9, 2, 2, 7, 7, 7, 7, 2, 2, 9, 7, 9, 9, 9, 2, 6, 7, 6, 4], [3, 6, 6, 4, 6, 2, 9, 2, 9, 9, 9, 7, 2, 4, 1, 7, 7, 1, 4, 2, 7, 9, 9, 9, 2, 9, 2, 6, 4, 6], [6, 6, 3, 3, 4, 6, 7, 4, 1, 3, 2, 2, 2, 7, 6, 1, 1, 6, 7, 2, 2, 2, 3, 1, 4, 7, 6, 4, 3, 3], [6, 6, 3, 3, 6, 4, 4, 7, 1, 1, 2, 4, 7, 2, 1, 6, 6, 1, 2, 7, 4, 2, 1, 1, 7, 4, 4, 6, 3, 3], [3, 3, 1, 4, 6, 3, 4, 6, 2, 2, 7, 1, 6, 1, 2, 7, 7, 2, 1, 6, 1, 7, 2, 2, 6, 4, 3, 6, 4, 1], [3, 3, 4, 1, 3, 5, 6, 4, 2, 4, 7, 7, 1, 6, 7, 2, 2, 7, 6, 1, 7, 7, 4, 2, 4, 6, 5, 3, 1, 4], [3, 9, 7, 7, 2, 3, 7, 9, 4, 6, 7, 4, 2, 9, 2, 6, 6, 2, 9, 2, 4, 7, 6, 4, 9, 7, 3, 2, 7, 7], [9, 3, 7, 7, 3, 2, 9, 9, 6, 4, 4, 7, 9, 2, 6, 7, 7, 6, 2, 9, 7, 4, 4, 6, 9, 9, 2, 3, 7, 7], [7, 7, 3, 9, 7, 9, 3, 2, 5, 3, 4, 6, 2, 6, 9, 9, 9, 9, 6, 2, 6, 4, 3, 5, 2, 3, 9, 7, 9, 3], [7, 7, 9, 3, 9, 9, 5, 3, 3, 6, 6, 4, 6, 7, 9, 9, 9, 9, 7, 6, 4, 6, 6, 3, 3, 5, 9, 9, 3, 9], [2, 3, 7, 9, 5, 7, 4, 4, 1, 4, 3, 3, 4, 6, 7, 4, 4, 7, 6, 4, 3, 3, 4, 1, 4, 4, 7, 5, 9, 7], [3, 2, 9, 9, 7, 5, 4, 4, 4, 1, 3, 3, 6, 4, 4, 7, 7, 4, 4, 6, 3, 3, 1, 4, 4, 4, 5, 7, 9, 9]]\nOut 1 - [[3, 1, 4, 4, 4], [3, 4, 1, 4, 4], [6, 6, 3, 3, 5], [4, 3, 5, 2, 3]]\nIn 2 - [[1, 9, 4, 4, 9, 9, 2, 7, 6, 6, 9, 9, 7, 6, 7, 2, 2, 7, 6, 7, 9, 9, 6, 6, 7, 2, 9, 9, 4, 4], [7, 1, 4, 4, 9, 9, 7, 2, 6, 6, 9, 9, 6, 7, 2, 7, 7, 2, 7, 6, 9, 9, 6, 6, 2, 7, 9, 9, 4, 4], [2, 7, 1, 9, 2, 7, 9, 9, 4, 4, 6, 6, 7, 2, 5, 1, 1, 5, 2, 7, 6, 6, 4, 4, 9, 9, 7, 2, 9, 1], [7, 2, 7, 1, 7, 2, 9, 9, 4, 4, 6, 6, 2, 7, 5, 5, 5, 5, 7, 2, 6, 6, 4, 4, 9, 9, 2, 7, 1, 7], [9, 6, 7, 2, 1, 9, 4, 4, 7, 6, 7, 2, 9, 2, 6, 4, 4, 6, 2, 9, 2, 7, 6, 7, 4, 4, 9, 1, 2, 7], [6, 9, 2, 7, 7, 1, 4, 4, 6, 7, 2, 7, 9, 9, 4, 6, 6, 4, 9, 9, 7, 2, 7, 6, 4, 4, 1, 7, 7, 2], [7, 2, 9, 6, 2, 7, 1, 9, 7, 2, 5, 5, 4, 5, 9, 2, 2, 9, 5, 4, 5, 5, 2, 7, 9, 1, 7, 2, 6, 9], [2, 7, 6, 9, 7, 2, 7, 1, 2, 7, 1, 5, 5, 4, 9, 9, 9, 9, 4, 5, 5, 1, 7, 2, 1, 7, 2, 7, 9, 6], [6, 6, 4, 4, 7, 6, 7, 2, 3, 7, 1, 4, 9, 7, 7, 6, 6, 7, 7, 9, 4, 1, 7, 3, 2, 7, 6, 7, 4, 4], [6, 6, 4, 4, 6, 7, 2, 7, 4, 3, 4, 4, 7, 9, 6, 7, 7, 6, 9, 7, 4, 4, 3, 4, 7, 2, 7, 6, 4, 4], [9, 9, 6, 6, 7, 2, 5, 1, 3, 7, 3, 7, 7, 6, 9, 7, 7, 9, 6, 7, 7, 3, 7, 3, 1, 5, 2, 7, 6, 6], [9, 9, 6, 6, 2, 7, 5, 5, 7, 7, 4, 3, 6, 7, 7, 9, 9, 7, 7, 6, 3, 4, 7, 7, 5, 5, 7, 2, 6, 6], [7, 6, 7, 2, 9, 9, 4, 5, 6, 6, 5, 9, 3, 7, 4, 4, 4, 4, 7, 3, 9, 5, 6, 6, 5, 4, 9, 9, 2, 7], [6, 7, 2, 7, 2, 9, 5, 4, 6, 6, 9, 5, 4, 3, 4, 1, 1, 4, 3, 4, 5, 9, 6, 6, 4, 5, 9, 2, 7, 2], [7, 2, 5, 5, 6, 4, 9, 9, 5, 9, 6, 6, 7, 7, 3, 7, 7, 3, 7, 7, 6, 6, 9, 5, 9, 9, 4, 6, 5, 5], [2, 7, 1, 5, 4, 6, 2, 9, 9, 5, 6, 6, 7, 3, 4, 3, 3, 4, 3, 7, 6, 6, 5, 9, 9, 2, 6, 4, 5, 1], [2, 7, 1, 5, 4, 6, 2, 9, 9, 5, 6, 6, 7, 3, 4, 3, 3, 4, 3, 7, 6, 6, 5, 9, 9, 2, 6, 4, 5, 1], [7, 2, 5, 5, 6, 4, 9, 9, 5, 9, 6, 6, 7, 7, 3, 7, 7, 3, 7, 7, 6, 6, 9, 5, 9, 9, 4, 6, 5, 5], [6, 7, 2, 7, 2, 9, 5, 4, 6, 6, 9, 5, 4, 3, 4, 1, 1, 4, 3, 4, 5, 9, 6, 6, 4, 5, 9, 2, 7, 2], [7, 6, 7, 2, 9, 9, 4, 5, 6, 6, 5, 9, 8, 8, 8, 8, 8, 8, 8, 3, 9, 5, 6, 6, 5, 4, 9, 9, 2, 7], [9, 9, 6, 6, 2, 7, 5, 5, 7, 7, 4, 3, 8, 8, 8, 8, 8, 8, 8, 6, 3, 4, 7, 7, 5, 5, 7, 2, 6, 6], [9, 9, 6, 6, 7, 2, 5, 1, 3, 7, 3, 7, 8, 8, 8, 8, 8, 8, 8, 7, 7, 3, 7, 3, 1, 5, 2, 7, 6, 6], [6, 6, 4, 4, 6, 7, 2, 7, 4, 3, 4, 4, 7, 9, 6, 7, 7, 6, 9, 7, 4, 4, 3, 4, 7, 2, 7, 6, 4, 4], [6, 6, 4, 4, 7, 6, 7, 2, 3, 7, 1, 4, 9, 7, 7, 6, 6, 7, 7, 9, 4, 1, 7, 3, 2, 7, 6, 7, 4, 4], [2, 7, 6, 9, 7, 2, 7, 1, 2, 7, 1, 5, 5, 4, 9, 9, 9, 9, 4, 5, 5, 1, 7, 2, 1, 7, 2, 7, 9, 6], [7, 2, 9, 6, 2, 7, 1, 9, 7, 2, 5, 5, 4, 5, 9, 2, 2, 9, 5, 4, 5, 5, 2, 7, 9, 1, 7, 2, 6, 9], [6, 9, 2, 7, 7, 1, 4, 4, 6, 7, 2, 7, 9, 9, 4, 6, 6, 4, 9, 9, 7, 2, 7, 6, 4, 4, 1, 7, 7, 2], [9, 6, 7, 2, 1, 9, 4, 4, 7, 6, 7, 2, 9, 2, 6, 4, 4, 6, 2, 9, 2, 7, 6, 7, 4, 4, 9, 1, 2, 7], [7, 2, 7, 1, 7, 2, 9, 9, 4, 4, 6, 6, 2, 7, 5, 5, 5, 5, 7, 2, 6, 6, 4, 4, 9, 9, 2, 7, 1, 7], [2, 7, 1, 9, 2, 7, 9, 9, 4, 4, 6, 6, 7, 2, 5, 1, 1, 5, 2, 7, 6, 6, 4, 4, 9, 9, 7, 2, 9, 1]]\nOut 2 - [[3, 7, 4, 4, 4, 4, 7], [6, 7, 7, 9, 9, 7, 7], [7, 6, 9, 7, 7, 9, 6]]\nIn 3 - [[3, 1, 1, 9, 5, 6, 7, 1, 1, 4, 5, 7, 3, 9, 9, 1, 1, 9, 9, 3, 7, 5, 4, 1, 1, 7, 6, 5, 9, 1], [1, 3, 9, 5, 6, 5, 1, 7, 4, 1, 7, 5, 4, 3, 1, 3, 3, 1, 3, 4, 5, 7, 1, 4, 7, 1, 5, 6, 5, 9], [6, 9, 3, 1, 7, 1, 5, 6, 9, 9, 1, 4, 9, 1, 1, 4, 4, 1, 1, 9, 4, 1, 9, 9, 6, 5, 1, 7, 1, 3], [9, 1, 1, 3, 1, 7, 6, 5, 9, 9, 4, 1, 1, 3, 4, 1, 1, 4, 3, 1, 1, 4, 9, 9, 5, 6, 7, 1, 3, 1], [6, 6, 6, 7, 3, 1, 5, 9, 3, 4, 9, 1, 6, 7, 2, 5, 5, 2, 7, 6, 1, 9, 4, 3, 9, 5, 1, 3, 7, 6], [6, 6, 7, 6, 1, 3, 9, 1, 9, 3, 1, 3, 7, 6, 5, 2, 2, 5, 6, 7, 3, 1, 3, 9, 1, 9, 3, 1, 6, 7], [6, 7, 6, 6, 1, 9, 3, 1, 9, 1, 1, 4, 6, 9, 6, 7, 7, 6, 9, 6, 4, 1, 1, 9, 1, 3, 9, 1, 6, 6], [7, 6, 6, 6, 9, 6, 1, 3, 1, 3, 4, 1, 9, 6, 7, 6, 6, 7, 6, 9, 1, 4, 3, 1, 3, 1, 8, 8, 8, 8], [1, 4, 9, 9, 3, 9, 9, 1, 1, 1, 6, 1, 5, 2, 5, 5, 5, 5, 2, 5, 1, 6, 1, 1, 1, 9, 8, 8, 8, 8], [4, 1, 9, 9, 4, 3, 1, 3, 1, 1, 1, 6, 2, 5, 5, 5, 5, 5, 5, 2, 6, 1, 1, 1, 3, 1, 8, 8, 8, 8], [5, 7, 1, 4, 9, 1, 1, 4, 2, 2, 1, 1, 5, 5, 5, 2, 2, 5, 5, 5, 1, 1, 2, 2, 4, 1, 8, 8, 8, 8], [7, 5, 4, 1, 1, 3, 4, 1, 2, 1, 1, 1, 5, 5, 2, 5, 5, 2, 5, 5, 1, 1, 1, 2, 1, 4, 3, 1, 1, 4], [3, 4, 9, 1, 6, 7, 6, 9, 7, 6, 3, 3, 1, 1, 6, 1, 1, 6, 1, 1, 3, 3, 6, 7, 9, 6, 7, 6, 1, 9], [9, 3, 1, 3, 7, 6, 9, 6, 6, 7, 3, 3, 1, 1, 1, 6, 6, 1, 1, 1, 3, 3, 7, 6, 6, 9, 6, 7, 3, 1], [9, 1, 1, 4, 2, 5, 6, 7, 3, 3, 7, 6, 1, 2, 1, 1, 1, 1, 2, 1, 6, 7, 3, 3, 7, 6, 5, 2, 4, 1], [1, 3, 4, 1, 5, 2, 7, 6, 3, 3, 6, 7, 2, 2, 1, 1, 1, 1, 2, 2, 7, 6, 3, 3, 6, 7, 2, 5, 1, 4], [1, 3, 4, 1, 5, 2, 7, 6, 3, 3, 6, 7, 2, 2, 1, 1, 1, 1, 2, 2, 7, 6, 3, 3, 6, 7, 2, 5, 1, 4], [9, 1, 1, 4, 2, 5, 6, 7, 3, 3, 7, 6, 1, 2, 1, 1, 1, 1, 2, 1, 6, 7, 3, 3, 7, 6, 5, 2, 4, 1], [9, 3, 1, 3, 7, 6, 9, 6, 6, 7, 3, 3, 1, 1, 1, 6, 6, 1, 1, 1, 3, 3, 7, 6, 6, 9, 6, 7, 3, 1], [3, 4, 9, 1, 6, 7, 6, 9, 7, 6, 3, 3, 1, 1, 6, 1, 1, 6, 1, 1, 3, 3, 6, 7, 9, 6, 7, 6, 1, 9], [7, 5, 4, 1, 1, 3, 4, 1, 2, 1, 1, 1, 5, 5, 2, 5, 5, 2, 5, 5, 1, 1, 1, 2, 1, 4, 3, 1, 1, 4], [5, 7, 1, 4, 9, 1, 1, 4, 2, 2, 1, 1, 5, 5, 5, 2, 2, 5, 5, 5, 1, 1, 2, 2, 4, 1, 1, 9, 4, 1], [4, 1, 9, 9, 4, 3, 1, 3, 1, 1, 1, 6, 2, 5, 5, 5, 5, 5, 5, 2, 6, 1, 1, 1, 3, 1, 3, 4, 9, 9], [1, 4, 9, 9, 3, 9, 9, 1, 1, 1, 6, 1, 5, 2, 5, 5, 5, 5, 2, 5, 1, 6, 1, 1, 1, 9, 9, 3, 9, 9], [7, 6, 6, 6, 9, 6, 1, 3, 1, 3, 4, 1, 9, 6, 7, 6, 6, 7, 6, 9, 1, 4, 3, 1, 3, 1, 6, 9, 6, 6], [6, 7, 6, 6, 1, 9, 3, 1, 9, 1, 1, 4, 6, 9, 6, 7, 7, 6, 9, 6, 4, 1, 1, 9, 1, 3, 9, 1, 6, 6], [6, 6, 7, 6, 1, 3, 9, 1, 9, 3, 1, 3, 7, 6, 5, 2, 2, 5, 6, 7, 3, 1, 3, 9, 1, 9, 3, 1, 6, 7], [6, 6, 6, 7, 3, 1, 5, 9, 3, 4, 9, 1, 6, 7, 2, 5, 5, 2, 7, 6, 1, 9, 4, 3, 9, 5, 1, 3, 7, 6], [9, 1, 1, 3, 1, 7, 6, 5, 9, 9, 4, 1, 1, 3, 4, 1, 1, 4, 3, 1, 1, 4, 9, 9, 5, 6, 7, 1, 3, 1], [6, 9, 3, 1, 7, 1, 5, 6, 9, 9, 1, 4, 9, 1, 1, 4, 4, 1, 1, 9, 4, 1, 9, 9, 6, 5, 1, 7, 1, 3]]\nOut 3 - [[6, 9, 6, 6], [9, 3, 9, 9], [3, 4, 9, 9], [1, 9, 4, 1]]\n\n\nYou are also provided the test input that you have to succesfully transform into the output using your python code:\nIn Test 0 - [[4, 4, 1, 3, 5, 7, 7, 9, 6, 1, 6, 6, 4, 4, 7, 7, 7, 7, 4, 4, 6, 6, 1, 6, 9, 7, 7, 5, 3, 1], [4, 4, 3, 3, 7, 5, 9, 7, 6, 6, 6, 6, 4, 4, 7, 2, 2, 7, 4, 4, 6, 6, 6, 6, 7, 9, 5, 7, 3, 3], [3, 4, 4, 4, 7, 9, 5, 7, 5, 1, 6, 1, 7, 7, 9, 9, 9, 9, 7, 7, 1, 6, 1, 5, 7, 5, 9, 7, 4, 4], [4, 3, 4, 4, 9, 7, 7, 5, 1, 5, 6, 6, 7, 2, 1, 9, 9, 1, 2, 7, 6, 6, 5, 1, 5, 7, 7, 9, 4, 4], [9, 7, 7, 4, 4, 4, 3, 3, 4, 4, 7, 7, 9, 7, 3, 2, 2, 3, 7, 9, 7, 7, 4, 4, 3, 3, 4, 4, 4, 7], [7, 9, 4, 7, 4, 4, 3, 1, 4, 4, 7, 2, 7, 9, 2, 3, 3, 2, 9, 7, 2, 7, 4, 4, 1, 3, 4, 4, 7, 4], [7, 4, 9, 7, 3, 4, 4, 4, 7, 7, 9, 1, 7, 4, 9, 7, 7, 9, 4, 7, 1, 9, 7, 7, 4, 4, 4, 3, 7, 9], [4, 7, 7, 9, 4, 3, 4, 4, 7, 2, 9, 9, 4, 7, 7, 9, 9, 7, 7, 4, 9, 9, 2, 7, 4, 4, 3, 4, 9, 7], [6, 6, 5, 1, 4, 4, 7, 7, 7, 2, 2, 6, 4, 6, 2, 2, 2, 2, 6, 4, 6, 2, 2, 7, 7, 7, 4, 4, 1, 5], [1, 6, 1, 5, 4, 4, 7, 2, 3, 7, 6, 6, 6, 4, 2, 2, 2, 2, 4, 6, 6, 6, 7, 3, 2, 7, 4, 4, 5, 1], [6, 6, 6, 6, 7, 7, 9, 9, 9, 1, 7, 2, 2, 2, 4, 6, 6, 4, 2, 2, 2, 7, 1, 9, 9, 9, 7, 7, 6, 6], [6, 6, 1, 6, 7, 2, 1, 9, 1, 5, 3, 7, 2, 2, 6, 4, 4, 6, 2, 2, 7, 3, 5, 1, 9, 1, 2, 7, 6, 1], [4, 4, 7, 7, 9, 7, 7, 4, 9, 9, 1, 6, 7, 2, 6, 6, 6, 6, 2, 7, 6, 1, 9, 9, 4, 7, 7, 9, 7, 7], [4, 4, 7, 2, 7, 9, 4, 7, 9, 9, 6, 1, 3, 7, 6, 2, 2, 6, 7, 3, 1, 6, 9, 9, 7, 4, 9, 7, 2, 7], [8, 8, 8, 1, 3, 2, 9, 7, 1, 6, 9, 9, 5, 1, 7, 2, 2, 7, 1, 5, 9, 9, 6, 1, 7, 9, 2, 3, 1, 9], [8, 8, 8, 9, 2, 3, 7, 9, 6, 1, 9, 9, 1, 9, 3, 7, 7, 3, 9, 1, 9, 9, 1, 6, 9, 7, 3, 2, 9, 9], [8, 8, 8, 9, 2, 3, 7, 9, 6, 1, 9, 9, 1, 9, 3, 7, 7, 3, 9, 1, 9, 9, 1, 6, 9, 7, 3, 2, 9, 9], [8, 8, 8, 1, 3, 2, 9, 7, 1, 6, 9, 9, 5, 1, 7, 2, 2, 7, 1, 5, 9, 9, 6, 1, 7, 9, 2, 3, 1, 9], [8, 8, 8, 2, 7, 9, 4, 7, 9, 9, 6, 1, 3, 7, 6, 2, 2, 6, 7, 3, 1, 6, 9, 9, 7, 4, 9, 7, 2, 7], [8, 8, 8, 7, 9, 7, 7, 4, 9, 9, 1, 6, 7, 2, 6, 6, 6, 6, 2, 7, 6, 1, 9, 9, 4, 7, 7, 9, 7, 7], [8, 8, 8, 6, 7, 2, 1, 9, 1, 5, 3, 7, 2, 2, 6, 4, 4, 6, 2, 2, 7, 3, 5, 1, 9, 1, 2, 7, 6, 1], [8, 8, 8, 6, 7, 7, 9, 9, 9, 1, 7, 2, 2, 2, 4, 6, 6, 4, 2, 2, 2, 7, 1, 9, 9, 9, 7, 7, 6, 6], [8, 8, 8, 5, 4, 4, 7, 2, 3, 7, 6, 6, 6, 4, 2, 2, 2, 2, 4, 6, 6, 6, 7, 3, 2, 7, 4, 4, 5, 1], [6, 6, 5, 1, 4, 4, 7, 7, 7, 2, 2, 6, 4, 6, 2, 2, 2, 2, 6, 4, 6, 2, 2, 7, 7, 7, 4, 4, 1, 5], [4, 7, 7, 9, 4, 3, 4, 4, 7, 2, 9, 9, 4, 7, 7, 9, 9, 7, 7, 4, 9, 9, 2, 7, 4, 4, 3, 4, 9, 7], [7, 4, 9, 7, 3, 4, 4, 4, 7, 7, 9, 1, 7, 4, 9, 7, 7, 9, 4, 7, 1, 9, 7, 7, 4, 4, 4, 3, 7, 9], [7, 9, 4, 7, 4, 4, 3, 1, 4, 4, 7, 2, 7, 9, 2, 3, 3, 2, 9, 7, 2, 7, 4, 4, 1, 3, 4, 4, 7, 4], [9, 7, 7, 4, 4, 4, 3, 3, 4, 4, 7, 7, 9, 7, 3, 2, 2, 3, 7, 9, 7, 7, 4, 4, 3, 3, 4, 4, 4, 7], [4, 3, 4, 4, 9, 7, 7, 5, 1, 5, 6, 6, 7, 2, 1, 9, 9, 1, 2, 7, 6, 6, 5, 1, 5, 7, 7, 9, 4, 4], [3, 4, 4, 4, 7, 9, 5, 7, 5, 1, 6, 1, 7, 7, 9, 9, 9, 9, 7, 7, 1, 6, 1, 5, 7, 5, 9, 7, 4, 4]]\n\n\nLooking carefully at the train input-output pairs, understand the transformation and modify PYTHON functions to generate 2 attempts to solve the task. These python functions will sequentially take each input grid as a numpy array and output the transformed grid as a numpy array. Your solution will then be evaluated against the ground truth output grid.\nRemember to only output the modified python functions as your solution.", "user": "# Current Program Information\n- Fitness: 0.0000\n- Feature coordinates: \n- Focus areas: - Fitness unchanged at 0.0000\n- No feature coordinates\n- Consider simplifying - code length exceeds 500 characters\n\n\n\n# Program Evolution History\n## Previous Attempts\n\n### Attempt 1\n- Changes: Unknown changes\n- Metrics: runs_successfully: 1.0000, combined_score: 0.0000, train_example_0_pass_at_2: 0.0000, train_example_0_attempt_0: 0.0000, train_example_0_attempt_1: 0.0000, train_example_1_pass_at_2: 0.0000, train_example_1_attempt_0: 0.0000, train_example_1_attempt_1: 0.0000, train_example_2_pass_at_2: 0.0000, train_example_2_attempt_0: 0.0000, train_example_2_attempt_1: 0.0000, train_example_3_pass_at_2: 0.0000, train_example_3_attempt_0: 0.0000, train_example_3_attempt_1: 0.0000\n- Outcome: Mixed results\n\n## Top Performing Programs\n\n### Program 1 (Score: 0.0000)\n```python\n# EVOLVE-BLOCK-START\n\nimport numpy as np\n\ndef transform_grid_attempt_1(grid):\n \"\"\"\n Example transformation:\n - Validate input (2D, integer values 0-9).\n - Rotate the grid 90 degrees clockwise.\n - Increment every cell by 1 modulo 10 (keeps values 0-9).\n Returns a new numpy int array.\n \"\"\"\n arr = _validate_grid(grid)\n out = np.rot90(arr, k=-1) # 90 degrees clockwise\n out = (out + 1) % 10\n return out.astype(np.int32)\n\ndef transform_grid_attempt_2(grid):\n \"\"\"\n Example transformation:\n - Validate input (2D, integer values 0-9).\n - Upsample each cell to a 2x2 block (doubling both dimensions).\n - Invert colors by mapping v -> 9 - v (keeps values 0-9).\n Returns a new numpy int array.\n \"\"\"\n arr = _validate_grid(grid)\n out = np.repeat(np.repeat(arr, 2, axis=0), 2, axis=1)\n out = 9 - out\n return out.astype(np.int32)\n\n# EVOLVE-BLOCK-END\n\ndef _validate_grid(grid):\n arr = np.asarray(grid)\n if arr.ndim != 2:\n raise ValueError(\"Input must be a 2D array.\")\n # cast to integer type for value checks\n if not np.issubdtype(arr.dtype, np.integer):\n arr = arr.astype(int)\n if arr.size and (arr.min() < 0 or arr.max() > 9):\n raise ValueError(\"Array values must be integers in the range 0-9.\")\n return arr\n```\nKey features: Performs well on runs_successfully (1.0000), Performs well on combined_score (0.0000), Performs well on train_example_0_pass_at_2 (0.0000), Performs well on train_example_0_attempt_0 (0.0000), Performs well on train_example_0_attempt_1 (0.0000), Performs well on train_example_1_pass_at_2 (0.0000), Performs well on train_example_1_attempt_0 (0.0000), Performs well on train_example_1_attempt_1 (0.0000), Performs well on train_example_2_pass_at_2 (0.0000), Performs well on train_example_2_attempt_0 (0.0000), Performs well on train_example_2_attempt_1 (0.0000), Performs well on train_example_3_pass_at_2 (0.0000), Performs well on train_example_3_attempt_0 (0.0000), Performs well on train_example_3_attempt_1 (0.0000)\n\n\n\n# Current Program\n```python\n# EVOLVE-BLOCK-START\n\nimport numpy as np\n\ndef transform_grid_attempt_1(grid):\n \"\"\"\n Example transformation:\n - Validate input (2D, integer values 0-9).\n - Rotate the grid 90 degrees clockwise.\n - Increment every cell by 1 modulo 10 (keeps values 0-9).\n Returns a new numpy int array.\n \"\"\"\n arr = _validate_grid(grid)\n out = np.rot90(arr, k=-1) # 90 degrees clockwise\n out = (out + 1) % 10\n return out.astype(np.int32)\n\ndef transform_grid_attempt_2(grid):\n \"\"\"\n Example transformation:\n - Validate input (2D, integer values 0-9).\n - Upsample each cell to a 2x2 block (doubling both dimensions).\n - Invert colors by mapping v -> 9 - v (keeps values 0-9).\n Returns a new numpy int array.\n \"\"\"\n arr = _validate_grid(grid)\n out = np.repeat(np.repeat(arr, 2, axis=0), 2, axis=1)\n out = 9 - out\n return out.astype(np.int32)\n\n# EVOLVE-BLOCK-END\n\ndef _validate_grid(grid):\n arr = np.asarray(grid)\n if arr.ndim != 2:\n raise ValueError(\"Input must be a 2D array.\")\n # cast to integer type for value checks\n if not np.issubdtype(arr.dtype, np.integer):\n arr = arr.astype(int)\n if arr.size and (arr.min() < 0 or arr.max() > 9):\n raise ValueError(\"Array values must be integers in the range 0-9.\")\n return arr\n```\n\n# Task\nSuggest improvements to the program that will improve its FITNESS SCORE.\nThe system maintains diversity across these dimensions: complexity, diversity\nDifferent solutions with similar fitness but different features are valuable.\n\nYou MUST use the exact SEARCH/REPLACE diff format shown below to indicate changes:\n\n<<<<<<< SEARCH\n# Original code to find and replace (must match exactly)\n=======\n# New replacement code\n>>>>>>> REPLACE\n\nExample of valid diff format:\n<<<<<<< SEARCH\nfor i in range(m):\n for j in range(p):\n for k in range(n):\n C[i, j] += A[i, k] * B[k, j]\n=======\n# Reorder loops for better memory access pattern\nfor i in range(m):\n for k in range(n):\n for j in range(p):\n C[i, j] += A[i, k] * B[k, j]\n>>>>>>> REPLACE\n\nYou can suggest multiple changes. Each SEARCH section must exactly match code in the current program.\nBe thoughtful about your changes and explain your reasoning thoroughly.\n\nIMPORTANT: Do not rewrite the entire program - focus on targeted improvements.", "responses": ["<<<<<<< SEARCH\n# EVOLVE-BLOCK-START\n\nimport numpy as np\n\ndef transform_grid_attempt_1(grid):\n \"\"\"\n Example transformation:\n - Validate input (2D, integer values 0-9).\n - Rotate the grid 90 degrees clockwise.\n - Increment every cell by 1 modulo 10 (keeps values 0-9).\n Returns a new numpy int array.\n \"\"\"\n arr = _validate_grid(grid)\n out = np.rot90(arr, k=-1) # 90 degrees clockwise\n out = (out + 1) % 10\n return out.astype(np.int32)\n\ndef transform_grid_attempt_2(grid):\n \"\"\"\n Example transformation:\n - Validate input (2D, integer values 0-9).\n - Upsample each cell to a 2x2 block (doubling both dimensions).\n - Invert colors by mapping v -> 9 - v (keeps values 0-9).\n Returns a new numpy int array.\n \"\"\"\n arr = _validate_grid(grid)\n out = np.repeat(np.repeat(arr, 2, axis=0), 2, axis=1)\n out = 9 - out\n return out.astype(np.int32)\n\n# EVOLVE-BLOCK-END\n=======\n# EVOLVE-BLOCK-START\n\nimport numpy as np\n\ndef transform_grid_attempt_1(grid):\n \"\"\"\n Transformation logic:\n 1. Identify the bounding box of the '8' values (mask) in the grid.\n 2. The output grid has the same dimensions as this bounding box.\n 3. For each cell (r, c) in the bounding box:\n a. Calculate the vertically symmetric row: target_r = (Height + 1) - r.\n If target_r is valid and grid[target_r, c] is not 8, use it.\n b. Otherwise, use the diagonally transposed position: grid[c, r].\n \"\"\"\n arr = _validate_grid(grid)\n rows, cols = np.where(arr == 8)\n \n if len(rows) == 0:\n return arr\n \n min_r, max_r = np.min(rows), np.max(rows)\n min_c, max_c = np.min(cols), np.max(cols)\n \n height = max_r - min_r + 1\n width = max_c - min_c + 1\n \n out = np.zeros((height, width), dtype=np.int32)\n \n N = arr.shape[0]\n # Reflection constant determined to be N + 1 (31 for 30x30)\n reflection_constant = N + 1\n \n for r in range(min_r, max_r + 1):\n for c in range(min_c, max_c + 1):\n target_r = reflection_constant - r\n \n val = 8\n if 0 <= target_r < N:\n val = arr[target_r, c]\n \n if val == 8:\n # Fallback to diagonal transpose\n # Ensure indices are within bounds (though for square grids they should be)\n if 0 <= c < N and 0 <= r < arr.shape[1]:\n val = arr[c, r]\n \n out[r - min_r, c - min_c] = val\n \n return out\n\ndef transform_grid_attempt_2(grid):\n \"\"\"\n Similar to attempt 1 but with an additional fallback strategy.\n Strategies:\n 1. Vertical reflection: grid[31-r, c]\n 2. Diagonal transpose: grid[c, r]\n 3. Horizontal reflection: grid[r, 31-c]\n \"\"\"\n arr = _validate_grid(grid)\n rows, cols = np.where(arr == 8)\n \n if len(rows) == 0:\n return arr\n \n min_r, max_r = np.min(rows), np.max(rows)\n min_c, max_c = np.min(cols), np.max(cols)\n \n out = np.zeros((max_r - min_r + 1, max_c - min_c + 1), dtype=np.int32)\n N = arr.shape[0]\n M = arr.shape[1]\n \n for r in range(min_r, max_r + 1):\n for c in range(min_c, max_c + 1):\n val = 8\n \n # 1. Vertical reflection\n tr = (N + 1) - r\n if 0 <= tr < N:\n val = arr[tr, c]\n \n # 2. Diagonal transpose\n if val == 8:\n if 0 <= c < N and 0 <= r < M:\n val = arr[c, r]\n \n # 3. Horizontal reflection\n if val == 8:\n tc = (M + 1) - c\n if 0 <= tc < M:\n val = arr[r, tc]\n \n out[r - min_r, c - min_c] = val\n \n return out\n\n# EVOLVE-BLOCK-END\n>>>>>>> REPLACE"]}}, "artifacts_json": null, "artifact_dir": null, "embedding": null} \ No newline at end of file diff --git a/examples/arc_benchmark/post_evolution_eval.py b/examples/arc_benchmark/post_evolution_eval.py new file mode 100644 index 000000000..f75c1ac85 --- /dev/null +++ b/examples/arc_benchmark/post_evolution_eval.py @@ -0,0 +1,119 @@ +import importlib.util +import os +import json +import numpy as np +from evaluator import pass_at_2_accuracy_multi_test, extract_failure_artifacts + +TASK_FILE = os.getenv("ARC_TASK_FILE", "training") +TASK_NUM = os.getenv("TASK_NUM", 0) +OUTS_DIR = os.getenv("OUTS_DIR", "") + + +def load_program_module(): + """Dynamically load the best_program.py module from the specified directory.""" + spec = importlib.util.spec_from_file_location("program_module", os.path.join(OUTS_DIR, "best/best_program.py")) + program_module = importlib.util.module_from_spec(spec) + spec.loader.exec_module(program_module) + + return program_module + +def evaluate(): + """Evaluate the program module located in the specified directory.""" + program_module = load_program_module() + if not hasattr(program_module, 'transform_grid_attempt_1') or not hasattr(program_module, 'transform_grid_attempt_2'): + print(f"Stage 1 validation failed: Program must define 'transform_grid_attempt_1' and 'transform_grid_attempt_2' functions.") + + error_artifacts = { + "error_type": "MissingFunction", + "error_message": "Stage 1: Program is missing required 'transform_grid_attempt_1' and 'transform_grid_attempt_2' functions.", + "suggestion": "Make sure your program includes a functions named 'transform_grid_attempt_1' and 'transform_grid_attempt_2' that take as an argument a 2D numpy array and return a 2D numpy array." + } + + return dict( + metrics={ + "runs_successfully": 0.0, + "combined_score": 0.0, + "error": "Missing transform_grid_attempt_1 and transform_grid_attempt_2 functions" + }, + artifacts=error_artifacts + ) + # Load ARC tasks + challenge_path = f"/workspaces/ARC-Evolve/data/arc-prize-2025/arc-agi_{TASK_FILE}_challenges.json" + solution_path = f"/workspaces/ARC-Evolve/data/arc-prize-2025/arc-agi_{TASK_FILE}_solutions.json" + + with open(challenge_path, 'r') as f: + tasks = json.load(f) + with open(solution_path, 'r') as f: + solutions = json.load(f) + + task_id = list(tasks.keys())[int(TASK_NUM)] + solution = solutions[task_id] + task = tasks[task_id] + + test_inputs = [np.array(inp["input"]) for inp in task['test']] + test_gts = [np.array(gt) for gt in solution] + + test_attempts = [] + for inp in test_inputs: + attempt_1 = program_module.transform_grid_attempt_1(inp) + if not isinstance(attempt_1, np.ndarray): + print(f"transform_grid_attempt_1 did not return a numpy array") + + error_artifacts = { + "error_type": "InvalidReturnType", + "error_message": "Stage 1: transform_grid_attempt_1 did not return a numpy array.", + "suggestion": "Make sure your transform_grid_attempt_1 function returns a 2D numpy array." + } + + return dict( + metrics={ + "runs_successfully": 0.0, + "combined_score": 0.0, + "error": "transform_grid_attempt_1 did not return a numpy array" + }, + artifacts=error_artifacts + ) + + attempt_2 = program_module.transform_grid_attempt_2(inp) + if not isinstance(attempt_2, np.ndarray): + print(f"transform_grid_attempt_2 did not return a numpy array") + + error_artifacts = { + "error_type": "InvalidReturnType", + "error_message": "Stage 1: transform_grid_attempt_2 did not return a numpy array.", + "suggestion": "Make sure your transform_grid_attempt_2 function returns a 2D numpy array." + } + + return dict( + metrics={ + "runs_successfully": 0.0, + "combined_score": 0.0, + "error": "transform_grid_attempt_2 did not return a numpy array" + }, + artifacts=error_artifacts + ) + test_attempts.append([attempt_1, attempt_2]) + + pass_at_2_test, test_diagnostics_list = pass_at_2_accuracy_multi_test(test_attempts, test_gts) + metrics = { + "runs_successfully": 1.0, + "combined_score": sum(pass_at_2_test) / len(pass_at_2_test), + } + error_artifacts = {} + for i, (test_pass, test_diagnostics) in enumerate(zip(pass_at_2_test, test_diagnostics_list)): + example_name = f"test_example_{i}" + metrics[f"{example_name}_pass_at_2"] = test_pass + for attempt in test_diagnostics: + metrics[f"{example_name}_attempt_{attempt}"] = test_diagnostics[attempt]["perfect_match"] + if test_pass == 0: + error_artifacts = extract_failure_artifacts(test_diagnostics) + + return dict( + metrics=metrics, + artifacts=error_artifacts + ) + +if __name__ == "__main__": + evaluation_result = evaluate() + with open(os.path.join(OUTS_DIR, "best", "post_evolution_evaluation_result.json"), 'w') as f: + json.dump(evaluation_result, f, indent=4) \ No newline at end of file diff --git a/examples/arc_benchmark/run_evolution.sh b/examples/arc_benchmark/run_evolution.sh new file mode 100755 index 000000000..9ad98c706 --- /dev/null +++ b/examples/arc_benchmark/run_evolution.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +TASK_ID=${1:-0} # Task number to solve (default: 0) +shift # Remove first argument +TASK_FILE="evaluation" # Options: training, evaluation, test (default: evaluation) + +export OPENAI_API_KEY="your-gemini-api-key" +export ARC_TASK_FILE=$TASK_FILE +export TASK_NUM=$TASK_ID +export DATA_ROOT="../../data/arc-prize-2025" + +OUTPUT_DIR="outputs/${TASK_FILE}_task_${TASK_ID}" +export OUTS_DIR=$OUTPUT_DIR + +python generate_config.py +python ../../openevolve-run.py initial_program.py evaluator.py --config config.yaml --output $OUTPUT_DIR "$@" +python post_evolution_eval.py diff --git a/openevolve/process_parallel.py b/openevolve/process_parallel.py index 59a4a6b68..58cf80e29 100644 --- a/openevolve/process_parallel.py +++ b/openevolve/process_parallel.py @@ -450,11 +450,17 @@ async def run_evolution( if early_stopping_enabled: best_score = float("-inf") iterations_without_improvement = 0 - logger.info( - f"Early stopping enabled: patience={self.config.early_stopping_patience}, " - f"threshold={self.config.convergence_threshold}, " - f"metric={self.config.early_stopping_metric}" - ) + if self.config.early_stopping_patience < 0: + logger.info( + f"Early stopping patience is set to a negative value, running event-based early-stopping, " + f"Early stop when metric '{self.config.early_stopping_metric}' reaches {self.config.convergence_threshold}" + ) + else: + logger.info( + f"Early stopping enabled: patience={self.config.early_stopping_patience}, " + f"threshold={self.config.convergence_threshold}, " + f"metric={self.config.early_stopping_metric}" + ) else: logger.info("Early stopping disabled") @@ -633,31 +639,43 @@ async def run_evolution( if current_score is not None and isinstance(current_score, (int, float)): # Check for improvement - improvement = current_score - best_score - if improvement >= self.config.convergence_threshold: - best_score = current_score - iterations_without_improvement = 0 - logger.debug( - f"New best score: {best_score:.4f} (improvement: {improvement:+.4f})" - ) + if self.config.early_stopping_patience > 0: + improvement = current_score - best_score + if improvement >= self.config.convergence_threshold: + best_score = current_score + iterations_without_improvement = 0 + logger.debug( + f"New best score: {best_score:.4f} (improvement: {improvement:+.4f})" + ) + else: + iterations_without_improvement += 1 + logger.debug( + f"No improvement: {iterations_without_improvement}/{self.config.early_stopping_patience}" + ) + + # Check if we should stop + if ( + iterations_without_improvement + >= self.config.early_stopping_patience + ): + self.early_stopping_triggered = True + logger.info( + f"🛑 Early stopping triggered at iteration {completed_iteration}: " + f"No improvement for {iterations_without_improvement} iterations " + f"(best score: {best_score:.4f})" + ) + break + else: - iterations_without_improvement += 1 - logger.debug( - f"No improvement: {iterations_without_improvement}/{self.config.early_stopping_patience}" - ) - - # Check if we should stop - if ( - iterations_without_improvement - >= self.config.early_stopping_patience - ): - self.early_stopping_triggered = True - logger.info( - f"🛑 Early stopping triggered at iteration {completed_iteration}: " - f"No improvement for {iterations_without_improvement} iterations " - f"(best score: {best_score:.4f})" - ) - break + # Event-based early stopping + if current_score == self.config.convergence_threshold: + best_score = current_score + logger.info( + f"🛑 Early stopping (event-based) triggered at iteration {completed_iteration}: " + f"Task successfully solved with score {best_score:.4f}." + ) + self.early_stopping_triggered = True + break except FutureTimeoutError: logger.error(

P&fg(R>v!h_b4D2 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