From 4af14a77fa7758bffc354925935391a91f8f3ecc Mon Sep 17 00:00:00 2001 From: rajpathak-openai Date: Thu, 7 Aug 2025 16:20:03 -0400 Subject: [PATCH 1/3] prompt-opt-notebook --- .../llm_as_judge.txt | 93 + .../prompt-optimization-cookbook.ipynb | 929 ++++++++++ .../requirements.txt | 4 + .../results_failsafeqa_baseline.csv | 1541 +++++++++++++++++ .../results_failsafeqa_optimized.csv | 8 + .../judgement_summary.csv | 31 + .../results_llm_as_judge_baseline/run_01.json | 16 + .../results_llm_as_judge_baseline/run_02.json | 16 + .../results_llm_as_judge_baseline/run_03.json | 16 + .../results_llm_as_judge_baseline/run_04.json | 16 + .../results_llm_as_judge_baseline/run_05.json | 16 + .../results_llm_as_judge_baseline/run_06.json | 16 + .../results_llm_as_judge_baseline/run_07.json | 16 + .../results_llm_as_judge_baseline/run_08.json | 16 + .../results_llm_as_judge_baseline/run_09.json | 16 + .../results_llm_as_judge_baseline/run_10.json | 16 + .../results_llm_as_judge_baseline/run_11.json | 16 + .../results_llm_as_judge_baseline/run_12.json | 16 + .../results_llm_as_judge_baseline/run_13.json | 16 + .../results_llm_as_judge_baseline/run_14.json | 16 + .../results_llm_as_judge_baseline/run_15.json | 16 + .../results_llm_as_judge_baseline/run_16.json | 16 + .../results_llm_as_judge_baseline/run_17.json | 16 + .../results_llm_as_judge_baseline/run_18.json | 16 + .../results_llm_as_judge_baseline/run_19.json | 16 + .../results_llm_as_judge_baseline/run_20.json | 16 + .../results_llm_as_judge_baseline/run_21.json | 16 + .../results_llm_as_judge_baseline/run_22.json | 16 + .../results_llm_as_judge_baseline/run_23.json | 16 + .../results_llm_as_judge_baseline/run_24.json | 16 + .../results_llm_as_judge_baseline/run_25.json | 16 + .../results_llm_as_judge_baseline/run_26.json | 16 + .../results_llm_as_judge_baseline/run_27.json | 16 + .../results_llm_as_judge_baseline/run_28.json | 16 + .../results_llm_as_judge_baseline/run_29.json | 16 + .../results_llm_as_judge_baseline/run_30.json | 16 + .../judgement_summary.csv | 31 + .../run_01.json | 16 + .../run_02.json | 16 + .../run_03.json | 16 + .../run_04.json | 16 + .../run_05.json | 16 + .../run_06.json | 16 + .../run_07.json | 16 + .../run_08.json | 16 + .../run_09.json | 16 + .../run_10.json | 16 + .../run_11.json | 16 + .../run_12.json | 16 + .../run_13.json | 16 + .../run_14.json | 6 + .../run_15.json | 16 + .../run_16.json | 16 + .../run_17.json | 16 + .../run_18.json | 16 + .../run_19.json | 16 + .../run_20.json | 16 + .../run_21.json | 16 + .../run_22.json | 16 + .../run_23.json | 16 + .../run_24.json | 16 + .../run_25.json | 16 + .../run_26.json | 16 + .../run_27.json | 16 + .../run_28.json | 16 + .../run_29.json | 16 + .../run_30.json | 16 + .../results_topk_baseline/run_01.py | 34 + .../results_topk_baseline/run_02.py | 25 + .../results_topk_baseline/run_03.py | 45 + .../results_topk_baseline/run_04.py | 23 + .../results_topk_baseline/run_05.py | 36 + .../results_topk_baseline/run_06.py | 48 + .../results_topk_baseline/run_07.py | 37 + .../results_topk_baseline/run_08.py | 31 + .../results_topk_baseline/run_09.py | 40 + .../results_topk_baseline/run_10.py | 37 + .../results_topk_baseline/run_11.py | 36 + .../results_topk_baseline/run_12.py | 29 + .../results_topk_baseline/run_13.py | 43 + .../results_topk_baseline/run_14.py | 48 + .../results_topk_baseline/run_15.py | 41 + .../results_topk_baseline/run_16.py | 37 + .../results_topk_baseline/run_17.py | 26 + .../results_topk_baseline/run_18.py | 22 + .../results_topk_baseline/run_19.py | 36 + .../results_topk_baseline/run_20.py | 36 + .../results_topk_baseline/run_21.py | 24 + .../results_topk_baseline/run_22.py | 40 + .../results_topk_baseline/run_23.py | 43 + .../results_topk_baseline/run_24.py | 42 + .../results_topk_baseline/run_25.py | 52 + .../results_topk_baseline/run_26.py | 49 + .../results_topk_baseline/run_27.py | 47 + .../results_topk_baseline/run_28.py | 27 + .../results_topk_baseline/run_29.py | 58 + .../results_topk_baseline/run_30.py | 18 + .../run_results_topk_baseline.csv | 31 + .../run_results_topk_baseline_summary.json | 13 + .../run_results_topk_baseline_summary.txt | 9 + .../results_topk_optimized/run_01.py | 36 + .../results_topk_optimized/run_02.py | 39 + .../results_topk_optimized/run_03.py | 35 + .../results_topk_optimized/run_04.py | 39 + .../results_topk_optimized/run_05.py | 43 + .../results_topk_optimized/run_06.py | 39 + .../results_topk_optimized/run_07.py | 41 + .../results_topk_optimized/run_08.py | 39 + .../results_topk_optimized/run_09.py | 38 + .../results_topk_optimized/run_10.py | 39 + .../results_topk_optimized/run_11.py | 34 + .../results_topk_optimized/run_12.py | 35 + .../results_topk_optimized/run_13.py | 37 + .../results_topk_optimized/run_14.py | 41 + .../results_topk_optimized/run_15.py | 37 + .../results_topk_optimized/run_16.py | 36 + .../results_topk_optimized/run_17.py | 37 + .../results_topk_optimized/run_18.py | 36 + .../results_topk_optimized/run_19.py | 40 + .../results_topk_optimized/run_20.py | 39 + .../results_topk_optimized/run_21.py | 38 + .../results_topk_optimized/run_22.py | 37 + .../results_topk_optimized/run_23.py | 40 + .../results_topk_optimized/run_24.py | 34 + .../results_topk_optimized/run_25.py | 35 + .../results_topk_optimized/run_26.py | 55 + .../results_topk_optimized/run_27.py | 36 + .../results_topk_optimized/run_28.py | 40 + .../results_topk_optimized/run_29.py | 41 + .../results_topk_optimized/run_30.py | 35 + .../run_results_topk_optimized.csv | 31 + .../run_results_topk_optimized_summary.json | 13 + .../run_results_topk_optimized_summary.txt | 9 + .../run_FailSafeQA.py | 531 ++++++ .../scripts/__init__.py | 0 .../scripts/gen_baseline.py | 78 + .../scripts/gen_optimized.py | 65 + .../scripts/llm_judge.py | 333 ++++ .../scripts/results_summarizer.py | 348 ++++ .../scripts/topk_eval.py | 311 ++++ images/image_optimize_1.png | Bin 0 -> 579366 bytes images/image_optimize_2.png | Bin 0 -> 495835 bytes images/image_optimize_3.png | Bin 0 -> 235623 bytes images/image_optimize_4.png | Bin 0 -> 483522 bytes images/image_optimize_5.png | Bin 0 -> 660792 bytes registry.yaml | 12 + 146 files changed, 7632 insertions(+) create mode 100644 examples/gpt-5/prompt-optimization-cookbook/llm_as_judge.txt create mode 100644 examples/gpt-5/prompt-optimization-cookbook/prompt-optimization-cookbook.ipynb create mode 100644 examples/gpt-5/prompt-optimization-cookbook/requirements.txt create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_failsafeqa_baseline.csv create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_failsafeqa_optimized.csv create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/judgement_summary.csv create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_01.json create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_02.json create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_03.json create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_04.json create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_05.json create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_06.json create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_07.json create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_08.json create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_09.json create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_10.json create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_11.json create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_12.json create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_13.json create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_14.json create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_15.json create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_16.json create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_17.json create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_18.json create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_19.json create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_20.json create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_21.json create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_22.json create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_23.json create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_24.json create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_25.json create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_26.json create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_27.json create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_28.json create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_29.json create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_30.json create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/judgement_summary.csv create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_01.json create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_02.json create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_03.json create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_04.json create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_05.json create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_06.json create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_07.json create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_08.json create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_09.json create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_10.json create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_11.json create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_12.json create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_13.json create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_14.json create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_15.json create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_16.json create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_17.json create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_18.json create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_19.json create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_20.json create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_21.json create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_22.json create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_23.json create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_24.json create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_25.json create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_26.json create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_27.json create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_28.json create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_29.json create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_30.json create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_01.py create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_02.py create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_03.py create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_04.py create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_05.py create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_06.py create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_07.py create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_08.py create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_09.py create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_10.py create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_11.py create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_12.py create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_13.py create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_14.py create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_15.py create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_16.py create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_17.py create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_18.py create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_19.py create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_20.py create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_21.py create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_22.py create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_23.py create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_24.py create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_25.py create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_26.py create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_27.py create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_28.py create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_29.py create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_30.py create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_results_topk_baseline.csv create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_results_topk_baseline_summary.json create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_results_topk_baseline_summary.txt create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_01.py create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_02.py create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_03.py create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_04.py create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_05.py create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_06.py create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_07.py create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_08.py create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_09.py create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_10.py create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_11.py create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_12.py create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_13.py create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_14.py create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_15.py create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_16.py create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_17.py create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_18.py create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_19.py create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_20.py create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_21.py create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_22.py create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_23.py create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_24.py create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_25.py create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_26.py create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_27.py create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_28.py create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_29.py create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_30.py create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_results_topk_optimized.csv create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_results_topk_optimized_summary.json create mode 100644 examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_results_topk_optimized_summary.txt create mode 100644 examples/gpt-5/prompt-optimization-cookbook/run_FailSafeQA.py create mode 100644 examples/gpt-5/prompt-optimization-cookbook/scripts/__init__.py create mode 100644 examples/gpt-5/prompt-optimization-cookbook/scripts/gen_baseline.py create mode 100644 examples/gpt-5/prompt-optimization-cookbook/scripts/gen_optimized.py create mode 100644 examples/gpt-5/prompt-optimization-cookbook/scripts/llm_judge.py create mode 100644 examples/gpt-5/prompt-optimization-cookbook/scripts/results_summarizer.py create mode 100644 examples/gpt-5/prompt-optimization-cookbook/scripts/topk_eval.py create mode 100644 images/image_optimize_1.png create mode 100644 images/image_optimize_2.png create mode 100644 images/image_optimize_3.png create mode 100644 images/image_optimize_4.png create mode 100644 images/image_optimize_5.png diff --git a/examples/gpt-5/prompt-optimization-cookbook/llm_as_judge.txt b/examples/gpt-5/prompt-optimization-cookbook/llm_as_judge.txt new file mode 100644 index 0000000000..7b5f3d04a3 --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/llm_as_judge.txt @@ -0,0 +1,93 @@ +# SYSTEM PROMPT + +You are an expert judge responsible for evaluating the quality of outputs produced by language models, specifically focusing on how well they follow provided task instructions and the overall code quality (if the output is code). Your evaluation must be fair, thorough, and well-reasoned. + +First, carefully read and understand: +- The task instructions provided. +- The output (text or code) produced by the model. + +**Your tasks:** +1. **Analyze Task Adherence:** + - Step-by-step, explain how the output matches or fails to meet each part of the instructions. + - Highlight all instances where instructions are fully, partially, or not followed. + - Consider any ambiguities and how reasonable the model's choices are. + +2. **Evaluate Code Quality (if applicable):** + - Step-by-step, assess the clarity, correctness, efficiency, readability, structure, maintainability, and best practices of the code. + - Identify any bugs, inefficiencies, or stylistic issues, explaining your reasoning for each point. + - If the output is not code, skip this step and say so. + +**Reasoning Process:** +- Always **reason first**—do not state your final assessment until after you have fully documented your reasoning about task adherence and code quality. +- Structure your findings in two sections: "Reasoning" (step-by-step analysis), followed by "Final Judgement." + +**Output Format:** +Respond ONLY in the following JSON structure (replace bracketed areas with your content): + +{ + "reasoning": { + "task_adherence": "[Step-by-step analysis of how well the output follows all instructions, including any missed or ambiguous points.]", + "code_quality": "[Step-by-step code quality assessment, or short note if not applicable.]" + }, + "final_judgement": { + "adherence_score": [integer 1-5, where 5=perfectly follows instructions, 1=ignores or subverts instructions], + "code_quality_score": [integer 1-5, where 5=exceptional code quality, 1=severe issues or missing code; use null if not code], + "comments": "[Short summary of main issues, overall impression, or suggestions for improvement.]" + } +} + +**Scoring Guidelines:** +- 5 = Exceptional; all instructions/code quality criteria met to a high standard. +- 4 = Good; minor issues. +- 3 = Average; some issues or minor omissions. +- 2 = Major issues or omissions. +- 1 = Severe failure to follow task or produce usable code. + +**EXAMPLES:** + +**Example 1:** +Input Instructions: "Write a function that returns the sum of two numbers." +Model Output: +def add(a, b): +  return a + b + +JSON Output: +{ + "reasoning": { + "task_adherence": "The output defines a function named 'add' with two arguments and returns their sum as instructed.", + "code_quality": "The code is concise, correct, and follows Python conventions. No issues." + }, + "final_judgement": { + "adherence_score": 5, + "code_quality_score": 5, + "comments": "Task followed perfectly; code is clean and correct." + } +} + +**Example 2:** +Input Instructions: "Write a function that checks if a string is a palindrome, ignoring case and spaces." +Model Output: +def is_palindrome(s): +  return s == s[::-1] + +JSON Output: +{ + "reasoning": { + "task_adherence": "The output defines a function, but it does not ignore case and spaces, as required.", + "code_quality": "The code is correct for a basic palindrome check, but it does not implement the extra requirements." + }, + "final_judgement": { + "adherence_score": 2, + "code_quality_score": 4, + "comments": "Major task requirement (ignoring case/spaces) omitted; otherwise, basic code is clean." + } +} + +**Important reminders:** +- Always provide reasoning before your ratings and summary. +- Never start with a conclusion. +- Use the JSON schema strictly. +- Use step-by-step analysis, and detailed explanations, and adjust your scores according to the scoring guidelines. + +**Reminder:** +Evaluate how well the output follows instructions first, provide detailed reasoning, then give your overall numeric ratings for task adherence and code quality. Output in the specified JSON format only Do not be nice on scoring, be fair. \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/prompt-optimization-cookbook.ipynb b/examples/gpt-5/prompt-optimization-cookbook/prompt-optimization-cookbook.ipynb new file mode 100644 index 0000000000..d0f03db9e7 --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/prompt-optimization-cookbook.ipynb @@ -0,0 +1,929 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "4c84498c", + "metadata": {}, + "source": [ + "# GPT-5 Prompt Migration and Improvement using the new prompt optimizer" + ] + }, + { + "cell_type": "markdown", + "id": "a3942231", + "metadata": {}, + "source": [ + "The GPT-5 Family of models are the smartest models we’ve released to date, representing a step change in the models’ capabilities specializing in agentic task performance, coding, and steerability, making it a great fit for everyone from curious users to advanced researchers. \n", + "\n", + "GPT-5 will benefit from all the traditional prompting best practices, and to help get you build the best prompt we are introducing a [Prompting Guide for GPT-5](#https://cookbook.openai.com/examples/gpt-5/gpt-5_prompting_guide) that explains the best ways to construct a prompt for GPT-5 to make the most of its state-of-the-art capabilities. Alongside that, we are we are introducing a [GPT-5 Specific Prompt Optimizer](#https://platform.openai.com/chat/edit?optimize=true) in our Playground to help users get started on **improving existing prompts** and **migrating prompts** for GPT-5 and other OpenAI models.\n", + "\n", + "In this cookbook we will go through how you can get spun up quickly to solve your task with GPT-5. We will share results of significant improvements on evaluations and common tasks and walk you through how you can use the Prompt Optimizer to do the same.\n" + ] + }, + { + "cell_type": "markdown", + "id": "f066a2db", + "metadata": {}, + "source": [ + "## Migrating and Optimizing Prompts\n", + "\n", + "Crafting effective prompts is a critical skill when working with LLMs. The goal of the Prompt Optimizer is to give your prompt the target model best practices and formatting most effective for our models. The Optimizer also removes common prompting failure modes such as:\n", + "\n", + "- Contradictions in the prompt instructions\n", + "- Missing or unclear format specifications\n", + "- Inconsistencies between the prompt and few-shot examples\n", + "\n", + "Along with tuning the prompt for the target model, the Optimizer is cognizant the specific tasks your are trying to accomplish and can apply crucial practices that we see in Agentic Workflows, Coding and Multi-Modality. Let's walk through some before-and-afters for some common examples where prompt optimization shines. \n", + "\n", + "> [!NOTE]\n", + "> Remember that prompting is not a one-size-fits-all experience, so we recommend running thorough experiments and iterating to find the best solution for your problem." + ] + }, + { + "cell_type": "markdown", + "id": "8fcbc964", + "metadata": {}, + "source": [ + "> [!IMPORTANT]\n", + "> Ensure you have set up your OpenAI API Key set as `OPENAI_API_KEY` and have access to GPT-5\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5a0d077c", + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "\n", + "required = ('OPENAI_API_KEY',)\n", + "missing = [k for k in required if not os.getenv(k)]\n", + "print('OPENAI_API_KEY is set!' if not missing else 'Missing environment variable: ' + ', '.join(missing) + '. Please set them before running the workflow.')\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f664a575", + "metadata": {}, + "outputs": [], + "source": [ + "## Let's install our required packages\n", + "%pip install -r requirements.txt --quiet" + ] + }, + { + "cell_type": "markdown", + "id": "fad827dc", + "metadata": {}, + "source": [ + "----------------" + ] + }, + { + "cell_type": "markdown", + "id": "b750b040", + "metadata": {}, + "source": [ + "\n", + "### Coding and Analytics: Streaming Top‑K Frequent Words \n", + "\n", + "We start with a task in the well-known field of Coding and Analytics. We will ask the model to generate a Python script that computes the exact Top‑K most frequent tokens from a large text stream using a specific tokenization spec. Tasks like these are sensitive to poor prompting, as they can push the model toward the wrong algorithms and approaches (approximate sketches vs multi‑pass/disk‑backed exact solutions), dramatically changing accuracy and runtime.\n", + "\n", + "For this task, we will evaluate:\n", + "1. Compilation/Execution success over 30 runs\n", + "2. Average runtime (successful runs)\n", + "3. Average peak memory (successful runs)\n", + "4. Exactness: output matches ground‑truth Top‑K with tie‑break: by count desc, then token asc\n", + "\n", + "Note: Evaluated on an M4 Max MacBook Pro; adjust constraints if needed.\n" + ] + }, + { + "cell_type": "markdown", + "id": "750300af", + "metadata": {}, + "source": [ + "### Our Baseline Prompt\n", + "For our example, let's use a prompt with common mistakes many people make: **adding contradictions to their prompt**, and **providing ambigous or minimal instructions**. Contradictions in instructions often reduce performance and increase latency, especially in reasoning models like GPT-5, and ambigous instructions can cause unwanted behaviours. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "377cc6f4", + "metadata": {}, + "outputs": [], + "source": [ + "baseline_prompt = \"\"\"\n", + "Write Python to solve the task on a MacBook Pro (M4 Max). Keep it fast and lightweight.\n", + "\n", + "- Prefer the standard library; use external packages if they make things simpler.\n", + "- Stream input in one pass to keep memory low; reread or cache if that makes the solution clearer.\n", + "- Aim for exact results; approximate methods are fine when they don't change the outcome in practice.\n", + "- Avoid global state; expose a convenient global like top_k so it's easy to check.\n", + "- Keep comments minimal; add brief explanations where helpful.\n", + "- Sort results in a natural, human-friendly way; follow strict tie rules when applicable.\n", + "\n", + "Output only a single self-contained Python script inside one Python code block, with all imports, ready to run.\n", + "\"\"\"\n" + ] + }, + { + "cell_type": "markdown", + "id": "01b0e8b3", + "metadata": {}, + "source": [ + "This baseline prompt is something that you could expect from asking ChatGPT write you a prompt, or talking to a friend who is knowledgable about coding but not particularly invested in your specific use case. Our baseline prompt is intentionally shorter and friendlier-but it hides mixed signals that can push the model into inconsistent solution families.\n", + "\n", + "First, we say to prefer the standard library, then immediately allow external packages “if they make things simpler.” That soft permission can nudge the model toward non‑portable dependencies or heavier imports that change performance and even execution success across environments.\n", + "\n", + "Next, we encourage single‑pass streaming to keep memory low, but we also say it’s fine to reread or cache “if that makes the solution clearer.” That ambiguity opens the door to multi‑pass designs or in‑memory caches that defeat the original streaming constraint and can alter runtime and memory profiles.\n", + "\n", + "We also ask for exact results while permitting approximate methods “when they don’t change the outcome in practice.” This is a judgment call the model can’t reliably verify. It may introduce sketches or heuristics that subtly shift counts near the Top‑K boundary, producing results that look right but fail strict evaluation.\n", + "\n", + "We advise avoiding global state, yet suggest exposing a convenient global like `top_k`. That mixes interface contracts: is the function supposed to return data, or should callers read globals? Models may implement both, causing side effects that complicate evaluation and reproducibility.\n", + "\n", + "Documentation guidance is similarly split: “keep comments minimal” but “add brief explanations.” Depending on how the model interprets this, you can get under‑explained code or prose interleaved with logic, which sometimes leaks outside the required output format.\n", + "\n", + "Finally, we ask for “natural, human‑friendly” sorting while also mentioning strict tie rules. These aren’t always the same. The model might pick convenience ordering (e.g., `Counter.most_common`) and drift from the evaluator’s canonical `(-count, token)` sort, especially on ties—leading to subtle correctness misses.\n", + "\n", + "**Why this matters**: the softened constraints make the prompt feel easy to satisfy, but they create forks in the road. The model may pick different branches across runs—stdlib vs external deps, one‑pass vs reread/cache, exact vs approximate—yielding variability in correctness, latency, and memory.\n", + "\n", + "**Our evaluator remains strict**: fixed tokenization `[a-z0-9]+` on lowercased text and deterministic ordering by `(-count, token)`. Any divergence here will penalize exactness even if the rest of the solution looks reasonable.\n" + ] + }, + { + "cell_type": "markdown", + "id": "9377fe68", + "metadata": {}, + "source": [ + "### Let's see how it performs: Generating 30 code scripts with the baseline prompt \n", + "\n", + "Using the OpenAI Responses API we'll invoke the model 30 times with our baseline prompt and save each response as a Python file in the `results_topk_baseline`. This may take some time. \n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1b3a3b39", + "metadata": {}, + "outputs": [], + "source": [ + "from scripts.gen_baseline import generate_baseline_topk\n", + "\n", + "MODEL = \"gpt-5\"\n", + "N_RUNS = 30\n", + "CONCURRENCY = 10\n", + "OUTPUT_DIR = \"results_topk_baseline\"\n", + "\n", + "USER_PROMPT = \"\"\"\n", + "Task:\n", + "Given globals text (str) and k (int), produce the Top-K most frequent tokens.\n", + "\n", + "Tokenization:\n", + "- Case-insensitive tokenization using an ASCII regex; produce lowercase tokens. Whole-string lowercasing is not required.\n", + "- Tokens are ASCII [a-z0-9]+ sequences; treat all other characters as separators.\n", + "\n", + "Output:\n", + "- Define top_k as a list of (token, count) tuples.\n", + "- Sort by count desc, then token asc.\n", + "- Length = min(k, number of unique tokens).\n", + "\n", + "Notes:\n", + "- Run as-is with the provided globals; no file or network I/O.\n", + "\"\"\"\n", + "\n", + "generate_baseline_topk(\n", + " model=MODEL,\n", + " n_runs=N_RUNS,\n", + " concurrency=CONCURRENCY,\n", + " output_dir=OUTPUT_DIR,\n", + " dev_prompt=baseline_prompt,\n", + " user_prompt=USER_PROMPT,\n", + ")\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "id": "53f063b6", + "metadata": {}, + "source": [ + "### Evaluate Generated Scripts - Baseline Prompt\n", + "\n", + "We then benchmark every script in ``results_topk_baseline`` On larger datasets this evaluation is intentionally heavy and can take several minutes." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "391da952", + "metadata": {}, + "outputs": [], + "source": [ + "from scripts.topk_eval import evaluate_folder\n", + "\n", + "evaluate_folder(\n", + " folder_path=\"results_topk_baseline\",\n", + " k=500,\n", + " scale_tokens=5_000_000,\n", + " csv_path=\"run_results_topk_baseline.csv\",\n", + ")\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "id": "92a02c33", + "metadata": {}, + "source": [ + "### Optimizing our Prompt " + ] + }, + { + "cell_type": "markdown", + "id": "56da7b3f", + "metadata": {}, + "source": [ + "Now let's use the prompt optimization tool in the console to improve our prompt and then review the results. We can start by going to the [OpenAI Optimize Playground](#https://platform.openai.com/chat/edit?optimize=true), and pasting our existing prompt in the Developer Message section.\n", + "\n", + "From there press the **Optimize** button. This will open the optimization panel. From here you can optionally provide specifics you want to see reflected in the prompt, or you can just press **Optimize** to optimize the prompt for the target model best practices and task. To start let's just optimize our prompt.\n", + "\n", + "![optimize_image](../../../images/image_optimize_1.png)\n", + "\n", + "\n", + "\n", + "Once it's completed you'll see the result of the prompt optimization. In our example below you'll see many changes were made to the prompt. It will also give you snippets of what it changed and why the change was made. You can interact with these by opening the comments up or using the inline reviewer mode.\n", + "\n", + "We'll add an additional change we'd like which include:\n", + "\n", + "- Enforcing the single-pass streaming\n", + "\n", + "This is easy using the iterative process of the Prompt Optimizer.\n", + "\n", + "![optimize_image](../../../images/image_optimize_2.png)\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "id": "a983e50d", + "metadata": {}, + "source": [ + "Once we are happy with the optimized version of our prompt, we can save it as a [Prompt Object](#https://platform.openai.com/docs/guides/prompt-engineering#reusable-prompts) using a button on the top right of the optimizer. We can use this object within our API Calls which can help with future iteration, version management, and reusability across different applications. \n", + "\n", + "![optimize_image](../../../images/image_optimize_3.png)\n" + ] + }, + { + "cell_type": "markdown", + "id": "f5bc98ab", + "metadata": {}, + "source": [ + "### Let's see how it performs: Evaluating our improved prompt \n", + "\n", + "For visibility we will provide our new optimized prompt here, but you can also pass the ``prompt_id`` and ``version``. Let's start by writing out our optimized prompt. " + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "8bf4c55d", + "metadata": {}, + "outputs": [], + "source": [ + "optimized_prompt = \"\"\"\n", + "# Objective\n", + "Generate a single, self-contained Python script that exactly solves the specified task on a MacBook Pro (M4 Max).\n", + "\n", + "# Hard requirements\n", + "- Use only Python stdlib. No approximate algorithms.\n", + "- Tokenization: ASCII [a-z0-9]+ on the original text; match case-insensitively and lowercase tokens individually. Do NOT call text.lower() on the full string.\n", + "- Exact Top‑K semantics: sort by count desc, then token asc. No reliance on Counter.most_common tie behavior.\n", + "- Define `top_k` as a list of (token, count) tuples with length = min(k, number of unique tokens).\n", + "- When globals `text` (str) and `k` (int) exist, do not reassign them; set `top_k` from those globals. If you include a `__main__` demo, guard it to run only when globals are absent.\n", + "- No file I/O, stdin, or network access, except optionally printing `top_k` as the last line.\n", + "\n", + "# Performance & memory constraints\n", + "- Do NOT materialize the entire token stream or any large intermediate list.\n", + "- Do NOT sort all unique (token, count) items unless k >= 0.3 * number_of_unique_tokens.\n", + "- When k < number_of_unique_tokens, compute Top‑K using a bounded min‑heap of size k over counts.items(), maintaining the correct tie-break (count desc, then token asc).\n", + "- Target peak additional memory beyond the counts dict to O(k). Avoid creating `items = sorted(counts.items(), ...)` for large unique sets.\n", + "\n", + "# Guidance\n", + "- Build counts via a generator over re.finditer with re.ASCII | re.IGNORECASE; lowercase each matched token before counting.\n", + "- Prefer heapq.nsmallest(k, cnt.items(), key=lambda kv: (-kv[1], kv[0])) for exact selection without full sort; avoid heapq.nlargest.\n", + "- Do NOT wrap tokens in custom comparator classes (e.g., reverse-lex __lt__) or rely on tuple tricks for heap ordering.\n", + "- Keep comments minimal; include a brief complexity note (time and space).\n", + "\n", + "# Output format\n", + "- Output only one Python code block; no text outside the block.\n", + "\n", + "# Examples \n", + "```python\n", + "import re, heapq\n", + "from collections import Counter\n", + "from typing import List, Tuple, Iterable\n", + "\n", + "_TOKEN = re.compile(r\"[a-z0-9]+\", flags=re.ASCII | re.IGNORECASE)\n", + "\n", + "def _tokens(s: str) -> Iterable[str]:\n", + " # Case-insensitive match; lowercase per token to avoid copying the whole string\n", + " for m in _TOKEN.finditer(s):\n", + " yield m.group(0).lower()\n", + "\n", + "def top_k_tokens(text: str, k: int) -> List[Tuple[str, int]]:\n", + " if k <= 0:\n", + " return []\n", + " cnt = Counter(_tokens(text))\n", + " u = len(cnt)\n", + " key = lambda kv: (-kv[1], kv[0])\n", + " if k >= u:\n", + " return sorted(cnt.items(), key=key)\n", + " # Exact selection with bounded memory\n", + " return heapq.nsmallest(k, cnt.items(), key=key)\n", + "\n", + "# Compute from provided globals when available; demo only if missing and running as main\n", + "try:\n", + " text; k # type: ignore[name-defined]\n", + "except NameError:\n", + " if __name__ == \"__main__\":\n", + " demo_text = \"A a b b b c1 C1 c1 -- d! d? e\"\n", + " demo_k = 3\n", + " top_k = top_k_tokens(demo_text, demo_k)\n", + " print(top_k)\n", + "else:\n", + " top_k = top_k_tokens(text, k) # type: ignore[name-defined]\n", + "# Complexity: counting O(N tokens), selection O(U log k) via heapq.nsmallest; extra space O(U + k)\n", + "```\n", + "\"\"\"\n" + ] + }, + { + "cell_type": "markdown", + "id": "95c97164", + "metadata": {}, + "source": [ + "### Generating 30 code scripts with the Optimized prompt" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e003656a", + "metadata": {}, + "outputs": [], + "source": [ + "from scripts.gen_optimized import generate_optimized_topk\n", + "\n", + "MODEL = \"gpt-5\"\n", + "N_RUNS = 30\n", + "CONCURRENCY = 10\n", + "OUTPUT_DIR = \"results_topk_optimized\"\n", + "\n", + "USER_PROMPT = \"\"\"\n", + "Task:\n", + "Given globals text (str) and k (int), produce the Top-K most frequent tokens.\n", + "\n", + "Tokenization:\n", + "- Case-insensitive tokenization using an ASCII regex; produce lowercase tokens. Whole-string lowercasing is not required.\n", + "- Tokens are ASCII [a-z0-9]+ sequences; treat all other characters as separators.\n", + "\n", + "Output:\n", + "- Define top_k as a list of (token, count) tuples.\n", + "- Sort by count desc, then token asc.\n", + "- Length = min(k, number of unique tokens).\n", + "\n", + "Notes:\n", + "- Run as-is with the provided globals; no file or network I/O.\n", + "\"\"\"\n", + "\n", + "generate_optimized_topk(\n", + " model=MODEL,\n", + " n_runs=N_RUNS,\n", + " concurrency=CONCURRENCY,\n", + " output_dir=OUTPUT_DIR,\n", + " dev_prompt=optimized_prompt,\n", + " user_prompt=USER_PROMPT,\n", + ")\n" + ] + }, + { + "cell_type": "markdown", + "id": "b2fe4c92", + "metadata": {}, + "source": [ + "### Evaluate Generated Scripts - Optimized Prompt\n", + "\n", + "We run the same evaluation as above, but now with our optimized prompt to see if there were any improvements" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "eea51c83", + "metadata": {}, + "outputs": [], + "source": [ + "from scripts.topk_eval import evaluate_folder\n", + "\n", + "evaluate_folder(\n", + " folder_path=\"results_topk_optimized\",\n", + " k=500,\n", + " scale_tokens=5_000_000,\n", + " csv_path=\"run_results_topk_optimized.csv\",\n", + ")\n" + ] + }, + { + "cell_type": "markdown", + "id": "bf35e47b", + "metadata": {}, + "source": [ + "### Adding LLM-as-a-Judge Grading \n", + "\n", + "Along with more quantitative evaluations we can measure the models performance on more qualitative metrics like code quality, and task adherance. We have created a sample prompt for this called ``llm_as_judge.txt``. " + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "cb68a647", + "metadata": {}, + "outputs": [], + "source": [ + "from scripts.llm_judge import judge_folder" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "40cdec99", + "metadata": {}, + "outputs": [], + "source": [ + "\n", + "# Run LLM-as-judge for baseline results\n", + "judge_folder(\n", + " results_dir=\"results_topk_baseline\",\n", + " out_dir=None, # auto-map to results_llm_as_judge_baseline\n", + " model=\"gpt-5\",\n", + " system_prompt_path=\"llm_as_judge.txt\",\n", + " task_text=None, # use default task description\n", + " concurrency=6,\n", + ")\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "626f4797", + "metadata": {}, + "outputs": [], + "source": [ + "\n", + "# Run LLM-as-judge for optimized results\n", + "judge_folder(\n", + " results_dir=\"results_topk_optimized\",\n", + " out_dir=None, # auto-map to results_llm_as_judge_optimized\n", + " model=\"gpt-5\",\n", + " system_prompt_path=\"llm_as_judge.txt\",\n", + " task_text=None,\n", + " concurrency=6,\n", + ")\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "id": "50361139", + "metadata": {}, + "source": [ + "### Summarizing the results \n", + "\n", + "We can now demonstrate from both a quantitative standpoint, along with a qualitative standpoint from our LLM as Judge results. " + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "a6dd05b0", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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r7/KJdaPHE6wA/v2W6lSpaxcuXJ2/vnnuyolu3fvtqxGshwAAAAAAAAAcpBqtWu4y8mTJ23T2g32w9fL7MPZ79vwHgNt/LsvnfHxm9dtsko1qviT3VKrYV13ObB3v+3dtceq1b4w2WNuvvtW91Ojz1UC5u7mbZPdfvz4cftj4xb371vva2/PD3zalnz6lUve1730Epcsz5M3j7u0vbudDR061J5//nlXguXKK6+066+/3rIayXIAAHIA9bCPHDnSvvzySzt27Jg1bNjQLaZduXJld/uAAQPsrbfeSvYY9dB/9tln7t86gBo/fry7z8GDB93jNc1NPfge1YobPny4/fLLL1asWDHr2LGj3XXXXdn8SgEAAAAAadm940+b+/Jsu6VTOyteuqQbqV3pwiru0qh5E+t5Wzdb+f2KVB+blHTS/2/VCU9LrtPcJr6TPjv3gvOs39jBp9wWny/e/Wzc4nKb0nCW/bh4uf289Af798y59taLM23E9LF2fuUK1vFfXeyBu7va559/bosXL3aJ86lTp9q7775refLksawSm2VbBgAA2eaBBx6wzZs325QpU+ztt9+2+Ph4l8w+cuSIu33NmjXWrVs3++qrr/wX3c8zYcIEmzVrljsAeeONN1zyvHPnzq7nX/bu3WudOnWy8uXL25w5c9zzjR492v0bAAAAABAe4vLksU/f+ci++PA/p9yW///XKy9SvKjljotz5U48qkm+f/de/+/nVSpvG1evs6SkJP91Sz/72i0CqprixUoWt3W/rk22/dF9h9n0Zybb+VUusD+37bACBQtY2fPPdZeSZUrZzHEv2arvf7HE48fd/Xb8sc0ub3mlK9Ey/r2XLTYmxr77apn9sWmLvTB8rBUvXtxuv/12N7pcifL169fb6tWrLSuRLAcAIMLt37/fjRIfNmyY1alTx40mv//++23nzp3222+/uXpy69ats1q1alnJkiX9F40OFyXEX3rpJevRo4c1b97cLrzwQhs7dqxt377dPv74Y3efN9980+Li4mzIkCFu+23btnXJeCXnAQAAAADhoXDRIvb3u2+1Nya8YrNemG4b16x39cGXf7HURvUearUa1LWa9Wu5Ei3ffPyFrf5ppW3ZsNkmDBmbrOTKdbfdZAf3H7QpT46z/2783Y1Gf+25qVa7UT1XJuXmjre5muhffPCpbd+y1f172aLF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AADIMWbNmmVDhw61O++80/r3758sMabrzjvvPBsxYoT/uhUrVriEd4UKFTL0fKwbBvyF0ibRIS4ml+WKyRWS507yJVmiL+msHvN4lz628rsVqd52U4e2dnfP+077+F+W/2SDu/azCfOmW6lzy1j31ndZ85uutXZd77RQiI2NTdf9cuXK5e6r/TI+Pj7DnUYhS5YDAAAAAIDMl4F48skn7dprr7WuXbvarl27/LcpWdCqVSt3u2qWX3HFFS5Rrlrl9957rxUsWDCkbQeASEiUV4s/12JzhSaFejLphK09uvWsE+aXXdvMOvXudsr18flOTSKnVL1uTXtxwSwrXDT5rKRoQbIcAAAAAIAItWDBAldD/JNPPnGXQG3atLGRI0e60XSvvfaaS5qXLFnSOnbsaF26dAlZmwEgUmhEuRLlh0eMsJO//56tzx1bvrwVePRR14azTZbnyZvHipYolqHnjYuLy/BjcwKS5QAAAAAARKhu3bq5y+m0b9/eXQAAGaNEeVI6a16Hu0MHDtprz02zH75eZvv37LMChQtawyub2D29u1nefPGnlGGJNiTLAQAAAAAAACAKjB88xvbs3G29Rw20c4qfY6t/XGkThoy18ytfYK3vaGPRjmQ5AAAAAAAAAOQQX374H1vy6VfJrruwfi0bMG6Y1W18sdW8uLZdULWiu16jxz+c/b79vm5jiFobXkiWAwAAAAAAAEAO0eDKS61Dj3tPqWMurW5tbcs/X2KL5n1i27b8YVvW/247t263chXOC1Frw0tsqBsAAAAyb/fu3danTx+79NJLrX79+m7RrvXr1/tvX7VqlXXo0MHq1atnLVq0sFdffTXZ40+ePGnPP/+8NW3a1N3nvvvusy1btiS7z5m2AQAAAAAIvXz581nZ889NdileqoQ77xvx0CB7adREy5U7t1127ZX26HNPWPW6NUPd5LBBshwAgBzggQcesM2bN9uUKVPs7bfftvj4eOvYsaMdOXLE9u7da506dbLy5cvbnDlz3H1Hjx7t/u2ZMGGCzZo1y4YOHWpvvPGGO4jq3LmzHT9+3N2enm0AAAAAAMLXpjXr3cKevZ7qbx163GPNbmhhZc4717Zv2Wo+X6hbFx4owwIAQITbv3+/lStXzrp27WrVqlVz191///3297//3X777TdbvHixxcXF2ZAhQyx37txWuXJlf2K9bdu2LiH+0ksvWe/eva158+bu8WPHjnWjzD/++GNr3bq1vfnmm6fdBgAAAAAgvJ1TopjlypXLFn/yhRUpdo4d3H/A5k57w/bt3muJiYmhbl5YIFkOAECEK1KkiI0ZM8b/+549e2z69OlWpkwZq1Klio0bN84aNWrkktwelWuZPHmy7dq1y7Zu3WqHDx+2Jk2a+G8vXLiw1axZ05YtW+aS5cuXLz/tNkqUKJGNrxgAAAAAsk9s+fI54jmLlSxuDz7R22ZPfs0+emuenVO8qF3StLG1bt/G1TEHyXIAAHKUgQMHulHgefLksYkTJ1r+/Plt+/bt/hHnnlKlSrmf27Ztc7dL2bJlT7mPd9uZtpHRZLnP57OEhATLrJiYGMuXL1+mtwOEikomaX9A9H7+gT8RvrSfKuYAAKJDki/JTiadsAKPPhqS59dzqw1nY8iUUae9ven1V7lLSh17dXU/azWoa29/95H/+on/jq61qkiWAwCQg9x9993Wrl07mzlzpqsrrjrkR48edcnzQHnz5nU/jx075k/OpHYflXiRM20jozTVTwuHZpYS5RoJD0SqjRs3kiiFbdq0KdRNQDqkjIcAgJwr0Zdka49utVwxuULy/EqUqw3IPiTLAQDIQVR2RYYPH24//fSTzZgxwy326S3U6fES3Bp5rttF9/H+7d3HG619pm1klOqge23ODEb5IdJVrFiRkeVRTB0lSpRXqFCBWTJhbt26daFuAgAgmylZTcI6epAsBwAgwqlGuRbxbNWqlb+meGxsrEtC79y509Uu189A3u+lS5e2EydO+K8rH1AXT79Xr17d/ftM28hMkjszyXYgpyBBCu/vgO/E8EbnLAAAOVtsqBsAAAAyRwts9urVyyXMA8ubrFy50ipXrmwNGza07777zpKS/jcaYsmSJW4ka/Hixe3CCy+0ggUL2tKlS/23HzhwwD1ej5UzbQMAAAAAgEhHshwAgAinhTebNWtmw4YNs2XLltnatWvtkUcecQnvjh07Wtu2be3QoUPWv39/N3187ty5Nn36dOvatau/9mqHDh1s9OjR9umnn9rq1autZ8+ebjR5y5Yt3X3OtA0AAAAAACIdZVgAAMgBnnnmGRszZoxLch88eNAaNGjgFvk899xz3e1Tp051dczbtGljJUuWtL59+7p/e3r06OHKsQwYMMAt5qmR5NOmTXM1xUWjx8+0DQAAAACIRD73318/KbgVmYK1/g/JcgAAcoBChQrZ4MGD3SU1derUsdmzZ6f5+Fy5clmfPn3cJS1n2gYAAAAARKKDvqOW5DtplsSC65HKW4vLW8croyjDAgAAAAAAACBqHbajtvfkIUs6nBjqpiCDVIZUg8B0yQxGlgMAAAAAAACIWhpP/l7icuu6/xwrmieXxcTnshgKsoRUUuwJOxp7NF3lVw4fPuyS5WXLlrWYmMx9biTLAQAAAAAAAES15Sc32HnHvrdmO2pavtg8pMpDLC4mt/nyJKTrvkqQn3POOVakSJFMPy/JcgAAAAAAAAAW7aPL30labh8l/WznxORnZHmIVcl3rk2s2CNd942Li8t0+RUPyXIAAAAAAAAAMLMjdtyO+I6HuhlRr2hMYYuPj8/252WBTwAAAAAAAABA1CNZDgAAAAAAAACIeiTLAQAAAAAAAABRj2Q5AAAAAAAAACDqhSxZ/u6779oNN9xgtWvXthtvvNE+/PDDUDUFAAAAAAAAABDlQpIsf++996x///7Wvn17mz9/vrVu3dp69eplP/zwQyiaAwAAAAAAAACIctmeLPf5fPbcc8/ZXXfd5ZLl5cuXt+7du9tll11m3377bXY3BwAAAAAAAAAAy53dT7hx40b7448/7Kabbkp2/bRp07K7KQAAAAAAAAAAhGZkuZLlkpCQYPfee681adLEbr31Vvvss8+yuykAAAAAAAAAAIRmZPmhQ4fcz379+tmDDz5ovXv3tgULFtj9999vL7/8skueZ6S0i5LvmRUTE2P58uXL9HaAUDly5IjbH8IZ+xkiXTD2Mz1e+wIAAAAAAIjiZHlcXJz7qVHlbdq0cf+uUaOGrVy5MsPJ8sTERFu1alWm26YEXs2aNTO9HSBUNHNDibxwxn6GSBes/SxPnjxBaQ8AAAAAAIjQZHnp0qXdz2rVqiW7vkqVKrZo0aIMJ+D1+MxilB8iXcWKFSNiZDkQ7fvZunXrgtYeAAAAAAAQocnyiy66yAoUKGA//fSTNWjQwH/92rVrrXz58hlOvuXPnz+IrQQiE+VNgMjYz+g0AgAAAAAg/GR7sjw+Pt46d+5sL7zwghtlXqdOHZs/f759/fXXNn369OxuDgAAAAAAAAAA2Z8sFy3mqZF5Y8eOtR07dljlypVt3Lhx1rhx41A0BwAAAAAAAAAQ5UKSLJdOnTq5CwAAAAAAAAAAoRYb6gYAAAAAAAAAABBqJMsBAAAAAAAAAFGPZDkAAAAAAAAAIOqRLAcAAAAAAAAARD2S5QAAAAAAAACAqEeyHAAAAAAAAAAQ9UiWAwAAAAAQwfbt22ePP/64NWvWzC6++GK7/fbbbfny5f7bFy9ebLfccovVrVvXrrvuOps/f35I2wsAQLgiWQ4AAAAAQATr1auX/fDDD/bMM8/YnDlzrEaNGnbvvffahg0bbP369da1a1dr2rSpzZ0712699Vbr27evS6ADAIDkcqf4HQAAAAAARIjNmzfb119/bbNmzbJLLrnEXTdw4ED78ssvbd68ebZ7926rXr269ezZ091WuXJlW7lypU2dOtWaNGkS4tYDABBeGFkOAAAAAECEKlq0qE2ZMsVq167tvy4mJsZdDhw44MqxpEyKX3rppfbdd9+Zz+cLQYsBAAhfJMsBAIiCWqWdOnVyo8oCL3feeaf/9mPHjtkTTzzhTqbr169vDz/8sO3ZsyfZc1DvFACA8FO4cGG78sorLU+ePP7rFixY4Eacq/TK9u3brUyZMskeU6pUKTty5Ijt3bs3BC0GACB8UYYFAIAcUqv0zz//dLVKixcvbq+99pqrVfrOO+9YpUqVbM2aNTZ48GC75ppr/I+Ji4vz/1u3Kbk+btw4d7I9aNAg69Gjh82YMcPd7tU7VdJ91KhRtmjRIlfvtFixYkzhBgAgjHz//ff26KOPWsuWLa158+Z29OjRZIl08X4/fvx4hp5DI9ITEhKC0l6NgM+XL19QtgVkN3U6RcIMDfYzRLIjQdrPtA3tC2dCshwAgBxeq7RDhw6uXqlGhJcsWfKUx+/YscPeffddmzRpkjVo0MBdp6S7Ro9rsTCNNH/llVeodwoAQJhbuHCh9e7d280yGz16tLsub968pyTFvd8zmjxLTEy0VatWBaHFf7WhZs2aQdkWkN02btzoEnnhjv0MkWxjEPezlJ3HqSFZDgBADq9VqlHl+nfFihVTfbxqlnr1Sz26b+nSpW3ZsmUuWa5R54Gj0r37Dx8+PN099AAAIOtoNpjisjq7n3rqKX9CoGzZsrZz585k99Xv+fPnt0KFCmXouTQ7rUqVKkFpN8cQiGQ6Zo6UkeVAtO9n69atS9f9SJYDAJBDapUG8mqVPvbYY7Z27Vp3MjxkyBA3Al0nxzqRvv/++92JtEaWK+GukWcp65mqzqmcqd6pyrGEcho3U0sR6SJlGjeyhjdaKhJGJ0a7cO0g1uyyoUOHuvVI+vfvn6yNmjX27bffJrv/kiVL3Ojz2NiMLWOm7et4Aoh2HH8CkbOfpTd+kywHACCH1ypVwlwLeNapU8fVHNe06aefftq2bt3qfio5k9p0NCXP9TjJinqnwZzGzdRSRLpImcaNrLVp06ZQNwFBmsKd3d8fTz75pF177bVufZFdu3b5b4uPj3cJ9DZt2riyLPr5+eef20cffeRKqQEAgORIlgMAkMNrlWpEeb9+/axIkSLu92rVqrnp06o/rkU6dSKdWsJbiXKvFz8r6p0Gcxp3OI7yA3LiNG5kDXWUKFFeoUIFRimGufRO4c5Omk2mzudPPvnEXQIpOT5y5EibMGGCW6Bba5Ccd9557t+sOQIAwKlIlgMAkMNrlebOndufKPdUrVo1WXmVffv2ueR34Gg51TNV3fKsqncqTOMG/kKCFN7fAd+J4S0cO2e7devmLqfTrFkzdwEAAKeXsQJlAAAgLGuVtm/f3p555plkSW9Nv1ZZlkArVqxwo7o1ivGSSy6xkydP+hf69KZ0q5Z5w4YNs6zeKQAAAAAA4YSzWwAAIlxqtUr//PNPdzl48KC1atXK3nvvPXv99ddty5Yt9sEHH7ha5ffee68VLFjQjR6/8cYbbcCAAbZ06VL7+eefrVevXtaoUSOrV6+eP+Gu61XaZf369fbSSy+5eqedO3cO9csHAAAAACAoKMMCAECES0+tUk0bf+2111xSvWTJktaxY0fr0qWL/34ala7bHnzwQfe7pmoreR5YtoV6pwAAAACAnIxkOQAAES49tUpVnkWXtKhG7rBhw9wlLdQ7BQAAAADkZJRhAQAAAAAAAABEPZLlAAAAAAAAAICoR7IcAAAAAAAAABD1SJYDAAAAAAAAAKIeyXIAAAAAAAAAQNTLHYon3bFjhzVr1uyU60eMGGG33HJLKJoEAAAAAAAAAIhiIUmWr1692vLmzWsLFy60mJgY//WFChUKRXMAAAAAAAAAAFEuJMnytWvXWoUKFaxUqVKheHoAAAAAAAAAAEJfs3zNmjVWuXLlUDw1AAAAAAAAAADhkSzXyPI9e/ZY+/bt7bLLLrPbb7/dvvjii1A0BQAAAAAAAACA7C/DcuLECduwYYNVqVLFHnnkEStYsKDNnz/funTpYi+//LI1adLkrLfp8/ksISEh021T/fR8+fJlejtAqBw5csTtD+GM/QyRLhj7mR4fuGYHAAAAAACIwmR57ty5benSpZYrVy6Lj49319WqVct+++03mzZtWoaS5YmJibZq1apMt00JvJo1a2Z6O0CobNy40SXywhn7GSJdsPazPHnyBKU9AAAAAAAgghf4LFCgwCnXVa1a1b766qsMbS8uLs6NVM8sRvkh0lWsWDEiRpYD0b6frVu3LmjtAQAAAAAAEZos1wjydu3a2cSJE61x48b+63/55ZcMJ7yVfMufP38QWwlEJsqbAJGxn9FpBAAAAABA+Mn2BT4rV65slSpVsiFDhtjy5ctt/fr1NmLECPvxxx+te/fu2d0cAAAAAAAAAACyf2R5bGysTZo0ycaMGWMPPfSQHThwwNUv1uKe1apVy+7mAAAAAAAAAAAQmprlJUqUcKPJAQAAAAAAAACIyjIsAAAAAAAAAACEG5LlAAAAAAAAAICoR7IcAAAAAAAAABD1SJYDAAAAAAAAAKIeyXIAAAAAAAAAQNQjWQ4AAAAAAAAAiHokywEAAAAAAAAAUY9kOQAAAAAAAAAg6pEsBwAAAAAAAABEPZLlAAAAAAAAAICoR7IcAAAAAAAAABD1SJYDAAAAAAAAAKIeyXIAAAAAAAAAQNQjWQ4AQA6wb98+e/zxx61Zs2Z28cUX2+23327Lly/337548WK75ZZbrG7dunbdddfZ/Pnzkz3+2LFj9sQTT1iTJk2sfv369vDDD9uePXuS3edM2wAAAAAAIJKRLAcAIAfo1auX/fDDD/bMM8/YnDlzrEaNGnbvvffahg0bbP369da1a1dr2rSpzZ0712699Vbr27evS357Bg8ebF999ZWNGzfOXnnlFfe4Hj16+G9PzzYAAAAAAIhkuUPdAAAAkDmbN2+2r7/+2mbNmmWXXHKJu27gwIH25Zdf2rx582z37t1WvXp169mzp7utcuXKtnLlSps6daobSb5jxw579913bdKkSdagQQN3HyXdNXpcCXiNNFcC/XTbAAAAAAAg0jGyHACACFe0aFGbMmWK1a5d239dTEyMuxw4cMCVY0mZ0L700kvtu+++M5/P535613kqVqxopUuXtmXLlrnfz7QNAAAAAAAiHclyAAAiXOHChe3KK6+0PHny+K9bsGCBG3Gusinbt2+3MmXKJHtMqVKl7MiRI7Z37143slwJ97x5855yHz1WzrQNAAAAAAAiHWVYAADIYb7//nt79NFHrWXLlta8eXM7evRoskS6eL8fP37cJbxT3i5KnmvhTznTNjJKo9ITEhIsszSKPl++fJneDhAq2g+ZpRHdn3/gT4Qv7aeKOQAAIGciWQ4AQA6ycOFC6927t1188cU2evRof9I7ZULb+10J5vj4+FQT3kqUewnoM20joxITE23VqlWWWWpDzZo1M70dIFQ2btxIohS2adOmUDcB6ZBaBzMAAMgZSJYDAJBDzJgxw4YPH+4W5nzqqaf8J/Nly5a1nTt3Jruvfs+fP78VKlTIlVfZt2+fS34HJgB0H9UtT882MiouLs6qVKlimcUoP0Q6rRPAyPLopY4SJcorVKjALJkwt27dulA3AQAAZCGS5QAA5ACzZs2yoUOH2p133mn9+/dPljxu0KCBffvtt8nuv2TJEjf6PDY21i655BI7efKkW6zTW8RTo1xVy7xhw4bp2kZGqZ1KuAPRjgQpvL8DvhPDG52zAADkbCzwCQBAhFNi+8knn7Rrr73Wunbtart27bI///zTXQ4ePOgS6D///LMry7J+/Xp76aWX7KOPPrLOnTu7x2v0+I033mgDBgywpUuXuvv26tXLGjVqZPXq1XP3OdM2AABAeJg8ebKL24EU46tXr57s0qJFi5C1EQCAcMXIcgAAItyCBQtc7e9PPvnEXQK1adPGRo4caRMmTLBRo0bZK6+8Yuedd577tzeKXDQqXQn3Bx980P3erFkzd2LtqVq16hm3AQAAQmvmzJn27LPPuhlhgdasWWPdunWzDh06+K/LlStXCFoIAEB4I1kOAECE08mvLqej5LcuadG0/2HDhrlLRrcBAABCQ6XTBg0a5GaIqfZ9IK2HoFrrXbp0sZIlS4asjQAARALKsAAAAAAAEMF+/fVXt2j2+++/b3Xr1k122++//24JCQlWqVKlkLUPAIBIwchyAAAAAAAimOqPp1WDfO3ate7na6+9Zl988YVbmFszxXr27GmFChXK0PNptLoS8MFaNJVFjhGpjhw54vaHcMd+hkh2JEj7mbaRnoW6SZYDAAAAAJBDKVmuBHmpUqVs0qRJbqT5008/bb/99ptbh0S3nS2tlbJq1aqgtE8JvJo1awZlW0B227hxo0vkhTv2M0SyjUHcz/LkyRPeyXK92FtuucUGDhzofgIAAAAAgODp3r273XHHHVa0aFH3e7Vq1Vzt8ttuu81WrFhxStmW9FDJlypVqgSlfekZ5QeEq4oVK0bMyHIg2vezdevWpet+IUuWqye6d+/eQZu6BQAAAAAAktPIcS9R7qlatar7uX379gwly5V40+LgQLSjtAkQOftZejuNQrbA57hx46xgwYKhenoAAAAAAHK8vn37WseOHZNdpxHlEqzR4QAA5BQhSZYvW7bMZs+ebSNHjgzF0wMAAAAAEBVatWplixcvtvHjx7t65Z9//rk99thj1rp1a6tcuXKomwcAQFjJ9jIsBw4ccD3bAwYMsLJlywZlm8FaiZvVgRHpImElbvYzRLpg7GfpXYUbAAAgs66++mp79tlnbcqUKfbiiy9aoUKF7KabbrKHHnoo1E0DACDsZHuyfPDgwVa/fn0XnIMlWCtxszowIl0krMTNfoZIF6z9LD2rcAMAAJyt1GZwX3/99e4CAADCKFn+7rvv2vLly23evHlB3W6wVuJmlB8iXSSsxM1+hkgXjP0svatwAwAAAACAHJosnzNnju3evduaN2+e7PpBgwbZBx98YFOnTs3QdlmJG/gL5U2AyNjP6DQCAAAAACDKk+WjR4+2o0ePJruuZcuW1qNHD/vb3/6WnU0BAAAAAAAAACA0yfLSpUunen3x4sXTvA0AAAAAAAAAgKwWm+XPAAAAAAAAAABAmMvWkeWpWbNmTaibAAAAAAAAAACIcowsBwAAAAAAAABEPZLlAAAAAAAAAICoR7IcAAAAAAAAABD1SJYDAAAAAAAAAKIeyXIAAAAAAAAAQNQjWQ4AAAAAAAAAiHokywEAAAAAAAAAUY9kOQAAAAAAAAAg6pEsBwAAAAAAAABEPZLlAAAAAAAAAICoR7IcAAAAAAAAABD1SJYDAAAAAAAAAKIeyXIAAAAAAAAAQNQjWQ4AAAAAAAAAiHokywEAAAAAAAAAUY9kOQAAAAAAAAAg6pEsBwAgh5k8ebLdeeedya4bMGCAVa9ePdmlRYsW/ttPnjxpzz//vDVt2tTq1atn9913n23ZsiXZNlatWmUdOnRwt+uxr776ara9JgAAAAAAshrJcgAAcpCZM2fas88+e8r1a9assW7dutlXX33lv7z99tv+2ydMmGCzZs2yoUOH2htvvOGS5507d7bjx4+72/fu3WudOnWy8uXL25w5c+yBBx6w0aNHu38DAAAAAJAT5A51AwAAQObt2LHDBg0aZEuXLrUKFSoku83n89m6deusS5cuVrJkyVMeq4T4Sy+9ZL1797bmzZu768aOHetGmX/88cfWunVre/PNNy0uLs6GDBliuXPntsqVK9vmzZttypQp1rZt22x7nQAAAAAAZBVGlgMAkAP8+uuvLpn9/vvvW926dZPd9vvvv1tCQoJVqlQp1ceuXr3aDh8+bE2aNPFfV7hwYatZs6YtW7bM/b58+XJr1KiRS5R7Lr30Utu0aZPt2rUry14XAAAAAADZhZHlAADkAKohHliDPNDatWvdz9dee82++OILi42NtWbNmlnPnj2tUKFCtn37dnd72bJlkz2uVKlS/tv0s1q1aqfcLtu2bbMSJUpkyesCAAAAACC7kCwHACCHU7JcCXIltydNmuRGmj/99NP222+/2SuvvGJHjhxx98uTJ0+yx+XNm9f279/v/n306NFUb5djx45luG0qEaNR75kVExNj+fLly/R2gFDRfqj9AdHJ+x72fiJ8aT9VzAEAADkTyXIAAHK47t272x133GFFixZ1v2uEuGqX33bbbbZixQqLj4/31y73/u0lwb0EtK73FvsMvF3y58+f4bYlJibaqlWrLLPUTpWNASLVxo0bSZTClbZC+EvZeQwAAHIOkuUAAORwGlXuJco9VatW9ZdX8cqv7Ny508qXL++/j36vXr26+3eZMmXc74G830uXLp3htqnOepUqVSyzGOWHSFexYkVGlkcxdZQoUa4FmpklE960YDYAAMi5SJYDAJDD9e3b1yW2p0+f7r9OI8pFierzzz/fChYsaEuXLvUnyw8cOGArV660Dh06uN8bNmxob7zxhiUlJVmuXLncdUuWLHEJvuLFi2cqyZ2ZkelATkGCFN7fAd+J4Y3OWQAAcrbYUDcAAABkrVatWtnixYtt/Pjxrl75559/bo899pi1bt3aKleu7KaTKyk+evRo+/TTT2316tVu8U+NJm/ZsqXbRtu2be3QoUPWv39/N6pu7ty5LvnetWvXUL88AAAAAACCgpHlAADkcFdffbU9++yzNmXKFHvxxRetUKFCdtNNN9lDDz3kv0+PHj3sxIkTNmDAALeYp0aST5s2zZVJEY0enzp1qg0fPtzatGnjap5rxLr+DQAAAABAThCSZPnu3btt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wwEASJ8YXyQt3QsAAAAAAAAAQE6oWQ4AAAAAAAAAQLghWQ4AAAAAAAAAiHokywEAAAAAAAAAUY9kOQAAAAAAAAAg6pEsBwAAAAAAAABEPZLlAAAAAAAAAICoR7IcAAAAAAAAABD1SJZHuerVq9vcuXND2oY777zTHnnkEffvpUuXujb997//DWmbgFDaunWrzZ8/3/97ixYtbNy4cRneXmYffyb6DtF+CyB7EcOB8EMMB5AexHAg/BDD4ckd6gYAgerXr29fffWVFStWLNRNAUKmX79+Vq5cObvxxhvd72+//bblzZs3w9vL7OMBID2I4QAxHEBkIoYDxHD8D8lyhJU8efJYyZIlQ90MIKxk9qCVg14A2YEYDpyKGA4gEhDDgVMRw6MXZVhgGzZssH/84x9Wq1Ytu/766+3DDz/033by5EmbPHmytWrVyt1+8cUXW+fOne3333/33+fzzz+3W265xerWrWtNmjRxU7n279/vv339+vV23333ud7qK664wh5++GH7888/U21LyulfmrYybdo0++c//+ke37hxYxs2bJidOHHC/5jvv//e2rdvb3Xq1LHmzZvbE088YYcOHcqidws4s3379rm/wyuvvNL9XWr/0t+2aBrW7bffbi+88IL7e27QoIE9+uij/r9ZTYf89ttv7Z133nF//ymnb+lnx44dbfz48XbZZZe5/eLxxx+3bdu2WdeuXd1+eO2119qiRYv87Ql8vPav1C7anhw/ftxGjRplTZs2ddu+7bbb3CiTQJ988onddNNNVrt2bbvjjjvcdDUAoUEMB4KLGA4guxDDgeAihiNYSJbDXnnlFbv55ptt3rx5Lhj37NnTfvnlF3fbq6++6oKkAu+CBQvcF8umTZts5MiR7vY9e/bYgw8+aG3btrUPPvjA7ejLli2zp59+2t2+Y8cOtxNfcMEFbgrKpEmT3JdRu3btLCEhIV3te+6556xhw4b2/vvvW9++fW3GjBn273//2922evVq69Spk/tC0e2jR4+2X3/91e655x7z+XxZ9p4BaUlKSnJ/f8uXL3fBTnXEqlWrZvfee6/9/PPP7j4rVqxwge+ll15y+5T2mYceesjdpmCq4KgDZu0zqdG2N27caDNnzrQBAwbY7Nmz7f/+7//cY/R8lStXdvtsavuAnjfwcsMNN1ipUqXs1ltvdbfrgOHrr792+5IO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jz/+uDVs2NBatWpln3/+ebL7Hj161K688kr77rvvTtlOhw4d7IMPPghq2wAg0q1du9Z69uzpYm6tWrXsiiuusIceeshWr16drbE1vbwYnB6LFy+2Bx980Jo2bWp169Z1ceOpp56y3bt3WyRQ7FN7M/La00LsB4Doduedd7rL6aQn3ixdutQfQ7766qtU77N+/Xr/ff773/9auMjo+XNq9Nr0fmUXxTrFyMaNG7vjtubNm9tjjz1mW7ZsybY2AKGUO6TPDmSTkiVL2vjx41O9LS4uLtvbM3369HTf98SJE/bZZ5/Z3/72t1Nuy+iJ2TfffHPKSWB2vv8aGbZr1y574403bOTIkZY3b16744470r29jz76yH744YegtW/u3Lm2Y8cOa9u2rfv9zTfftE8++cRGjBhhK1ascAmehQsXWrFixdztr7zyitWsWdMuueSSU7alg4h7773XHVgUL148aG0EgEilJGe7du2sXr16NmDAAPfdqE7bGTNm2G233Wavvvqquy07Y2uwjB492qZOnWrXXXed9e/f38455xxbs2aNvfjii/bxxx+711i2bFkLZxMnTrRGjRoFfbvEfgBAsMTGxro4oM72lOisDC4NAujcubNde+21Nnz4cCtUqJD9/vvv9tJLL9n//d//uU7m8uXLh7qZQJZiZDmiQp48edyJeGqXiy66KNTNO62LL77YPvzww1Ou1wne8uXLrUaNGhZp779Glin4Tpo0ycqUKeNOWENFI8WU7FDPuQ7CvM6EG264wa655ho38lHX//zzz+62vXv3ugOFXr16pbo9nUjXqVPHJR8AAOZGERctWtQlkK+//nqXmFUHsJLbSi5PmDDBItH8+fPda9LIsWeffdYlzC+99FK7++67XZJ8z5497iQzWhH7AQDBPCdWh6YGkqWWLI+Ec+JIoTitmKZjG8VEdQTfeuutrtNY8TMjs8OASEOyHPj/fvnlF5c410mvR1OomzRpYp06dfLXyVy2bJkbPaRpupqSpKlVmhJ18uRJ/+NUNmXo0KFuSrZOEDVqadGiRe42TUf79ttv3UXTqTS17HR04qYpZylLsahnvWLFinbhhRcmuz4pKcmmTJlirVu3dkFOz/+Pf/zDlixZ4m7Xyemjjz7q/n311Vf7X69enxIXSmTocTqhnTZt2in1QfV4TU9WeRglOzIzQl2j+vPly2cx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9rmOQXT8od+Vu0irRImOxzT6XnkHHSeog1vvuWKccgdaMFydydqGEuZnyiEoaa5BgxrprZitDm7NvNPzpDYzLvD4UZ0UWvBd/9Z7561/otehYwd9Tvqp7en90XGBjgPURuVvgEzxATlcv379fNWqVTvtZeXKlb4ZM2a4f3/wwQf+xyYlJfnatm3ru/zyy3179+51l169evkaNWrkq1evnq9169a+V155xTdw4EB3nxMnTrjHHThwwPf444/7mjRp4u7Xrl0739KlS/3bXbx4sa958+a+iy66yPf++++n2u7nn3/etSdQ165dfTVr1vTt3r072eu76qqr/L8vWbLEd8stt/jq1Knjnv+ee+7xLV++3Fe/fn3fU0895e5z6NAhX8eOHd3z33fffe66kydP+qZOneq75pprfLVq1fJdd911vtdffz3N55EtW7a4Ns6ZM+e073/KxwXy3veRI0e63z/88EPfjTfe6Ktdu7bviiuu8D344IO+b7/91le9enV3X9m+fbv7XNT+QYMGuesSExN948eP91199dXu+mbNmrnb9Jmdzquvvupr2LCh7+jRo6fcpuuuvPJK16ZA2maXLl18F198se+BBx5wn3eg+fPnu/af6bkBIFr88ssvvp49e7rvZsUYfX926NDBt2DBglPuO2vWLN8NN9zgvssVWwcPHuzbt2/faeNjWrF1165dvkcffdTFQz1vq1atfC+++KKL7x7F7ueee87XtGlTFzv1vT5hwoRUnyM1ei69Fj2HHq/4OWrUKN+ePXuS3S8hIcHFOj2P2qi2KO4GtkXb0SW9sVbv67333utivI43brvtNt/ChQuT3UcxU8cuDRo0cO+7jgtWrVrlv33evHn+92fZsmVpvr+KlzVq1PDt2LHjjO8JsR8AoptiWVrn3o899pi7jxdvUrvonNQ7t9Xv+umZNm2au+6TTz7xX6cYqesUM09HMUUxQzFPxwyKV9qOHrto0SJ3n40bN7o4pNio2KL49MYbb5zxNSsOKD+gWKAYqBivc2zP4cOHfQMGDHDxRzH7oYce8n366aentFuxXe+fjim0HR1nXHbZZe798mzdutXFIm1H8X3IkCG+f/7zn+75U75e75hK23j44Yd9f/zxxxlfyzfffOPr1q2bOw7TY5X/6Ny5c7LPIT05BPnoo498bdq0cdtp3Lixr3fv3q796fns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c5599tnYb7/9olu3btG7d+8488wz44svvqihfy34ftOmTcveh9tss032vkz9K723kzTUap999omrr746ez9vsskmcdJJJ1W+Z9NQySeffDLuvPPO7P3/9SFa6edBBx0UV111Vfzwhz/M+sXpp58eH330URxxxBFZP9x+++3j4YcfrmzPos9P/Wtxl7S/ZM6cOXHRRRfFVlttle17r732ys5AWdQDDzwQu+22W3Tt2jX23XffbEgaUBxqOBSWGg4UkjoNdYP6zpIQlhO///3v42c/+1ncc889WaE+7rjj4qWXXsq23XLLLVkBTUV53Lhx2R+Pd955Jy644IJs+yeffBLHHnts9O3bN+67776sMz/11FPx29/+Ntv+8ccfZx11nXXWyYaZ/O53v8v+4Oy9994xY8aMarXviiuuiE033TTuvvvuGDx4cIwYMSL+9Kc/ZdteffXVOPjgg7M/Gmn7xRdfHC+//HIccsghUVFRUWP/ZvBt5s+fn73/nn766aygpbnCOnXqFIceemi88MIL2WNefPHFrLjdeOONWZ9KfebXv/51ti0VzFQA04fp1GcWJ+17woQJceutt8app54at912W/z85z/PnpNer0OHDlmfXVwfSK+76OUnP/lJtG7dOn7xi19k29OHgkcffTTrS+nDQNrnkUceWVnY0wfm9IE6/a1IfW6PPfaI6667rgb/RYHvooZD4ajhQKGp01B86jtLrIJc69SpU8V5551X5b6999674vjjj8+uP/TQQxV//etfq2y/6KKLKrbbbrvs+iuvvJLtY9HHvP766xXjx4/Prl922WUVu+++e5Xnz5gxo6Jbt24Vo0ePzm7369ev4sQTT8yuP/7449n+3nvvvez2tttuW3HUUUdVef5Pf/rTitNOOy27PmjQoG9sf/fdd7N9pH1BbXv44Yez999rr71Wed+CBQsqfvazn1UMGDCg4sorr6zYcMMNKyZNmlS5/ZFHHsme89Zbb32jTyzsB+l5SfrZuXPnis8//7xy++abb14xcODAb7Th448//sbzF3XTTTdVdO/eveKll17Kbr/zzjvZ81K/XtTgwYOzNiXHHXdcxT777FNl+znnnJM9D6hdajgUlhoOFJI6DXWD+s6SMmc5sfHGG1e5nYaIPP7445VDQ55//vnsiHM6SpYub775Zqy22mrZ9s6dO8euu+6aHdVK85/96Ec/yoZnpSEmySuvvBJvvPFGdhRuUbNnz86GjFVHOgK3qJYtW8bcuXMr9z9x4sRv7D9J+09DaKA2vf7669l7NB2pXqisrCwbypWOEnfs2DHatWtX2YeSNORy4XPXXXfd732NlVdeOVq0aFF5u3nz5rH22mtX3m7atGnlcK1v89e//jU7qn7ZZZfFBhtsUNmfknSGyqJSf2vVqlVlG1M/X1Tqf+nMGKD2qeFQOGo4UGjqNBSf+s6SEpYTDRo0+MYQlbT4R5KGbqQhKGkYR5ojLc3D9NBDD8W9995b+fhLLrkkjjnmmPj73/8e//rXv+KEE07IPhSkIWdpHrZevXrFGWec8Y3XTX+sqmNhWxa1cOhK2n+alyl9gPg6CyZQDN82JDHdX17+1Z/cRo0afaPPJQ0bNqzWa3z9+Yvrx99l/Pjx2XyGAwYMiB122OEbbU9Dx5ZbbrnF7j99qEj97vvaA9QONRwKRw0HCk2dhuJT31lS5iwnm3dsUWm+ox/84AfZ9TTvWSrOQ4YMyeY+22ijjbJ51BZ22HQk/LzzzsuOtKXingp+up2Olk+dOjXbTzrqvPrqq2dzqaXL8ssvnz0mHf1aVmn/6ej7wn2nS1qQ5Pzzz88WU4Dalhbi+Pzzz6u8v1N/eeaZZ7Ij1kk6ayQ9ZqHnnnsu+9mlS5cab1+a2zAtMpIKcPq5qIX9Pi0KtGifSnOspUuy/vrrV7Z3oYXzLgK1Tw2HwlHDgUJTp6H41HeWlLCcuPnmm7NFAtJK3QsLa1pRO0mFNy0kkIpk2p6Gg/zlL3+pHDqShpmMHDkyGyqShmil56bFR9IQlhVXXDEbKpL+4AwaNChbICRd0qImafGERYfALK20SEMalpJWNU4fFNIfiHQ0Ln3ISG2A2pZWoU9DJtP7MK2Ynd6XZ511VtY3DjzwwOwxacGdtIBOui+dIZK2p0U82rZtm21PR4w/+OCDmDRpUkHbll43nRmyxhprZO2bMmVKVnTTJa0Ongrxtttum52dkoaAvffee3H99dfHsGHDKoeQpT6X+vGFF16YfaBIC4ikhYCA4lDDoXDUcKDQ1GkoPvWdJSUsJ44++uj4wx/+ELvvvnv2hyMdsW7fvn22La20PWvWrGwF7n79+mV/OFKxTEeyP/zww2yOs7QycDq6nVb53meffbJhKqnzpiEha621VtZJv/zyy2xb2kcaDpLmTirE0K109H348OHZkJU0fO2oo47K2p4+lCxuSBnUtPT+TytopyPQC1evT3MJpvdker8u/GCcivV+++0XAwcOjO22265y1fvkl7/8ZdbXUp9cOPyrENIH5/SBN33QTavap3nN0geHdEmrZyfpQ3o6on366adnHw7Gjh0b5557bta/ktTu1L+feOKJrH3p91rc0EygdqjhUDhqOFBo6jQUn/rOkipLq3wu8bMAWCrpA286uyQdFQYASocaDgD1j/rO1zmzHAAAAACA3BOWAwAAAACQe6ZhAQAAAAAg95xZDgAAAABA7gnLAQAAAADIPWE5AAAAAAC5JywHAAAAACD3hOUAAAAAAOSesBwAAAAAgNwTlgMAAAAAkHvCcgAAAAAAck9YDgAAAABA5N3/B9wfDPCFVFJTAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/markdown": [ + "### Prompt Optimization Results - Coding Tasks\n", + "\n", + "| Metric | Baseline | Optimized | Δ (Opt − Base) |\n", + "|----------------------------|---------:|----------:|---------------:|\n", + "| Avg Time (s) | 7.906 | 6.977 | -0.929 |\n", + "| Peak Memory (KB) | 3626.3 | 577.5 | -3048.8 |\n", + "| Exact (%) | 100.0 | 100.0 | 0.0 |\n", + "| Sorted (%) | 100.0 | 100.0 | 0.0 |\n", + "| LLM Adherence (1–5) | 4.40 | 4.90 | +0.50 |\n", + "| Code Quality (1–5) | 4.73 | 4.90 | +0.16 |" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from pathlib import Path\n", + "import importlib\n", + "import scripts.results_summarizer as rs\n", + "from IPython.display import Markdown, display\n", + "\n", + "importlib.reload(rs)\n", + "\n", + "fig = rs.render_charts(\n", + " quant_baseline=Path(\"results_topk_baseline\")/\"run_results_topk_baseline.csv\",\n", + " quant_optimized=Path(\"results_topk_optimized\")/\"run_results_topk_optimized.csv\",\n", + " judge_baseline=Path(\"results_llm_as_judge_baseline\")/\"judgement_summary.csv\",\n", + " judge_optimized=Path(\"results_llm_as_judge_optimized\")/\"judgement_summary.csv\",\n", + " auto_display=True,\n", + " close_after=True,\n", + ")\n", + "md = rs.build_markdown_summary(\n", + " quant_baseline=Path(\"results_topk_baseline\")/\"run_results_topk_baseline.csv\",\n", + " quant_optimized=Path(\"results_topk_optimized\")/\"run_results_topk_optimized.csv\",\n", + " judge_baseline=Path(\"results_llm_as_judge_baseline\")/\"judgement_summary.csv\",\n", + " judge_optimized=Path(\"results_llm_as_judge_optimized\")/\"judgement_summary.csv\",\n", + ")\n", + "\n", + "display(Markdown(md))" + ] + }, + { + "cell_type": "markdown", + "id": "7d076297", + "metadata": {}, + "source": [ + "Even though GPT-5 already produced correct code, prompt optimization tightened constraints and clarified any ambiguity. Showing overall improvements to the results!\n", + "\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "id": "c3dec50a", + "metadata": {}, + "source": [ + "--------------------------------------------------------------------" + ] + }, + { + "cell_type": "markdown", + "id": "f1e0f019", + "metadata": {}, + "source": [ + "### Context and Retrieval: Simulating a Financial Question Answering\n", + "\n", + "Most production use cases face imperfect queries and noisy context. **FailSafeQA** is an excellent benchmark that deliberately perturbs both the **query** (misspellings, incompleteness, off-domain phrasing) and the **context** (missing, OCR-corrupted, or irrelevant docs) and reports **Robustness**, **Context Grounding**, and **Compliance**—i.e., can the model answer when the signal exists and abstain when it doesn’t.\n", + "\n", + "![FailSafeQA diagram](../../../images/image_optimize_4.png)\n", + "\n", + "**Links**\n", + "- Paper (arXiv): *Expect the Unexpected: FailSafe Long Context QA for Finance* — https://arxiv.org/abs/2502.06329 \n", + "- Dataset (Hugging Face): https://huggingface.co/datasets/Writer/FailSafeQA \n", + "- Authors/Makers: Kiran Kamble, Melisa Russak, Dmytro Mozolevskyi, Muayad Ali, Mateusz Russak, Waseem AlShikh (Writer.ai) — see author list on the arXiv page above\n" + ] + }, + { + "cell_type": "markdown", + "id": "433925a6", + "metadata": {}, + "source": [ + "We will run FailSafeQA evaluations via the helper script and compare Baseline vs Optimized prompts side by side." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "774410c9", + "metadata": {}, + "outputs": [], + "source": [ + "# Define the Baseline FailSafeQA system prompt here for reuse\n", + "baseline_prompt_fsqa = (\n", + " \"You are a finance QA assistant. Answer ONLY using the provided context.\\n\"\n", + " \"If the context is missing or irrelevant, politely refuse and state that you need the relevant document.\"\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "0a817cd8", + "metadata": {}, + "source": [ + "We can use the prompt optimizer once again to construct a new prompt that is more suitable for this use case. Maybe as someone who has read about long context question and answering best practices we know that we should remind our answer model to rely on information in the context section and refuse answers to questions if the context is insufficient. By using the Optimize button once without any arguments we get a reasonable structure for the prompt and end up with this as our optimized prompt.\n", + "\n", + "\n", + "![optimize_image](../../../images/image_optimize_5.png)\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "aede3e7d", + "metadata": {}, + "outputs": [], + "source": [ + "optimized_fsqa_prompt = \"\"\"You are a finance document QA assistant.\n", + "\n", + "Behavioral priorities (in order):\n", + "1) Grounding: Use ONLY the text inside [Context]. Do NOT use outside knowledge or assumptions.\n", + "2) Evidence check: Before answering, verify that the answer text (numbers, entities, dates, phrasing) is explicitly present or directly entailed by [Context]. If not, refuse (see Refusal policy).\n", + "3) Robustness to query noise: The user question may contain misspellings, missing words, or non-financial phrasing. Infer intent using the context and answer if the meaning is clear and supported by the context.\n", + "4) OCR noise handling: The context may include OCR artifacts (repeated characters, stray symbols, broken words). Ignore junk characters and reconstruct meaning when the underlying sentence is still recoverable. Do not guess beyond what the context supports.\n", + "\n", + "Refusal policy:\n", + "- If [Context] is empty or lacks the information to answer, reply with a brief refusal and guidance. Do NOT attempt a general-knowledge answer.\n", + "- If the question is unrelated to the content of [Context] (out of scope), reply with a brief refusal and guidance. Do NOT speculate.\n", + "- If the question is incomplete but the correct answer is unambiguous from [Context], infer the intent and answer exactly; do NOT refuse.\n", + "\n", + "Answer style:\n", + "- Default to the **shortest exact answer** needed to satisfy the question (e.g., the precise number/string/date as written). Preserve units, signs, casing, currency symbols, commas, and parentheses from the context. Do NOT round numbers unless asked.\n", + "- If the user explicitly asks to “write”, “draft”, or “generate” content, you may produce multi-sentence or formatted text—but still source every factual claim strictly from [Context].\n", + "- If the question is ambiguous, state the needed clarification in one short sentence, then provide the best supported answer if possible.\n", + "\n", + "Output format:\n", + "- If answerable from the context:\n", + " FINAL: \n", + " (optional) EVIDENCE: \"\"\n", + "- If refusing:\n", + " FINAL: Insufficient information in the provided context to answer this question. Please upload the relevant document or refine your question to include the necessary details.\"\"\"" + ] + }, + { + "cell_type": "markdown", + "id": "2516f981", + "metadata": {}, + "source": [ + "Let's now run our evaluations, for demonstration we will display the results of a single comparision, but you can also run the full evaluation. Note: This will take time." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2881639a", + "metadata": {}, + "outputs": [], + "source": [ + "import importlib\n", + "import run_FailSafeQA\n", + "import pandas as pd\n", + "import matplotlib.pyplot as plt\n", + "from openai import OpenAI\n", + "\n", + "# Ensure latest function signature is used after code edits\n", + "importlib.reload(run_FailSafeQA)\n", + "run_failsafeqa = run_FailSafeQA.run_failsafeqa\n", + "\n", + "# Set idx to an integer for a quick single-example comparison; set to None for full run\n", + "idx = 0 # e.g., 0 for a single datapoint\n", + "\n", + "#Helper functions:\n", + "class OpenAIAnswer:\n", + " def __init__(self):\n", + " self.client = OpenAI()\n", + "\n", + " def __call__(self, system_prompt: str, user_prompt: str, model: str) -> str:\n", + " resp = self.client.responses.create(\n", + " model=model,\n", + " input=[\n", + " {\"role\": \"developer\", \"content\": [{\"type\": \"input_text\", \"text\": system_prompt}]},\n", + " {\"role\": \"user\", \"content\": [{\"type\": \"input_text\", \"text\": user_prompt}]},\n", + " ],\n", + " text={\"format\": {\"type\": \"text\"}, \"verbosity\": \"medium\"},\n", + " reasoning={\"effort\": \"medium\", \"summary\": \"auto\"},\n", + " tools=[],\n", + " )\n", + " return resp.output_text\n", + "class OpenAIJudge:\n", + " def __init__(self):\n", + " self.client = OpenAI()\n", + "\n", + " def __call__(self, prompt: str, model: str) -> str:\n", + " resp = self.client.responses.create(\n", + " model=model,\n", + " input=[{\"role\": \"user\", \"content\": [{\"type\": \"input_text\", \"text\": prompt}]}],\n", + " text={\"format\": {\"type\": \"text\"}, \"verbosity\": \"medium\"},\n", + " reasoning={\"effort\": \"medium\", \"summary\": \"auto\"},\n", + " tools=[],\n", + " )\n", + " return resp.output_text\n", + "\n", + "if idx is not None:\n", + " # Single example mode (with detailed prompt/response logging)\n", + " run_failsafeqa(\n", + " out=\"results_failsafeqa_baseline.csv\",\n", + " system_prompt=baseline_prompt_fsqa,\n", + " indices=[idx],\n", + " log_prompts=True,\n", + " log_chars=800,\n", + " log_file=\"failsafeqa_debug.log\",\n", + " )\n", + " run_failsafeqa(\n", + " out=\"results_failsafeqa_optimized.csv\",\n", + " system_prompt=optimized_fsqa_prompt,\n", + " indices=[idx],\n", + " log_prompts=True,\n", + " log_chars=800,\n", + " log_file=\"failsafeqa_debug.log\",\n", + " )\n", + "\n", + " base_df = pd.read_csv(\"results_failsafeqa_baseline.csv\")\n", + " opt_df = pd.read_csv(\"results_failsafeqa_optimized.csv\")\n", + "\n", + " b_one = base_df[base_df[\"idx\"] == idx]\n", + " o_one = opt_df[opt_df[\"idx\"] == idx]\n", + "\n", + " comparison_df = pd.concat([b_one, o_one], ignore_index=True)\n", + "\n", + " # Keep only relevant columns\n", + " comparison_df = comparison_df[[\"run\", \"kind\", \"rating\", \"compliance\"]]\n", + "\n", + " # Display as table\n", + " display(comparison_df)\n", + "\n", + "else:\n", + " # Full run mode\n", + " run_failsafeqa(out=\"results_failsafeqa_baseline.csv\", system_prompt=baseline_prompt_fsqa)\n", + " run_failsafeqa(out=\"results_failsafeqa_optimized.csv\", system_prompt=optimized_fsqa_prompt)\n", + "\n", + " base_df = pd.read_csv(\"results_failsafeqa_baseline.csv\")\n", + " opt_df = pd.read_csv(\"results_failsafeqa_optimized.csv\")\n", + "\n", + " def per_kind_summary(df: pd.DataFrame) -> pd.DataFrame:\n", + " out = df.groupby(\"kind\").agg(\n", + " mean_rating=(\"rating\", lambda x: pd.to_numeric(x, errors=\"coerce\").mean()),\n", + " compliance_rate=(\"compliance\", lambda x: pd.to_numeric(x, errors=\"coerce\").fillna(0).mean()),\n", + " count=(\"rating\", \"count\"),\n", + " )\n", + " return out.round(3)\n", + "\n", + " base_summary = per_kind_summary(base_df)\n", + " opt_summary = per_kind_summary(opt_df)\n", + "\n", + " summary = base_summary.join(opt_summary, lsuffix=\"_base\", rsuffix=\"_opt\").fillna(\"NA\")\n", + "\n", + " print(\"Per-kind comparison (baseline vs optimized):\")\n", + " display(summary)\n", + "\n", + " # Plot compliance rate comparison per kind\n", + " kinds = summary.index.tolist()\n", + " x = range(len(kinds))\n", + " base_vals = summary[\"compliance_rate_base\"].astype(float).tolist()\n", + " opt_vals = summary[\"compliance_rate_opt\"].astype(float).tolist()\n", + "\n", + " fig, ax = plt.subplots(figsize=(10, 4))\n", + " width = 0.35\n", + " ax.bar([i - width/2 for i in x], base_vals, width=width, label=\"Baseline\", color=\"#cbd5e1\")\n", + " ax.bar([i + width/2 for i in x], opt_vals, width=width, label=\"Optimized\", color=\"#60a5fa\")\n", + " ax.set_xticks(list(x))\n", + " ax.set_xticklabels(kinds, rotation=45, ha=\"right\")\n", + " ax.set_ylim(0, 1)\n", + " ax.set_ylabel(\"Compliance rate\")\n", + " ax.set_title(\"FailSafeQA — Per-kind Compliance (Baseline vs Optimized)\")\n", + " ax.legend()\n", + " plt.tight_layout()\n", + " plt.show()\n", + "\n", + " # Overall metrics\n", + " def overall(df: pd.DataFrame):\n", + " return {\n", + " \"mean_rating\": float(pd.to_numeric(df[\"rating\"], errors=\"coerce\").mean()),\n", + " \"mean_compliance\": float(pd.to_numeric(df[\"compliance\"], errors=\"coerce\").fillna(0).mean()),\n", + " }\n", + "\n", + " print(\"Overall — Baseline:\", overall(base_df))\n", + " print(\"Overall — Optimized:\", overall(opt_df))\n" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "c20097e6", + "metadata": {}, + "outputs": [ + { + "data": { + "text/markdown": [ + "## FailSafeQA — Summary\n", + "\n", + "**Compliance threshold:** ≥ 6\n", + "\n", + "| Metric | Baseline | Optimized | Δ (Opt − Base) |\n", + "|---|---:|---:|---:|\n", + "| Robustness (avg across datapoints) | 0.320 | 0.540 | +0.220 |\n", + "| Context Grounding (avg across datapoints) | 0.800 | 0.950 | +0.150 |\n", + "\n", + "_Source files:_ `results_failsafeqa.csv` · `results_failsafeqa.csv`" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from IPython.display import Markdown, display\n", + "\n", + "def build_markdown_summary_from_metrics(\n", + " robust_base: float, ground_base: float,\n", + " robust_opt: float, ground_opt: float,\n", + " threshold: int = 6,\n", + " src_base: str = \"results_failsafeqa.csv\",\n", + " src_opt: str = \"results_failsafeqa.csv\",\n", + ") -> str:\n", + " d_r = robust_opt - robust_base\n", + " d_g = ground_opt - ground_base\n", + " return f\"\"\"\n", + "## FailSafeQA — Summary\n", + "\n", + "**Compliance threshold:** ≥ {threshold}\n", + "\n", + "| Metric | Baseline | Optimized | Δ (Opt − Base) |\n", + "|---|---:|---:|---:|\n", + "| Robustness (avg across datapoints) | {robust_base:.3f} | {robust_opt:.3f} | {d_r:+.3f} |\n", + "| Context Grounding (avg across datapoints) | {ground_base:.3f} | {ground_opt:.3f} | {d_g:+.3f} |\n", + "\n", + "_Source files:_ `{src_base}` · `{src_opt}`\n", + "\"\"\".strip()\n", + "\n", + "# Fill in with your reported numbers\n", + "md = build_markdown_summary_from_metrics(\n", + " robust_base=0.320, ground_base=0.800,\n", + " robust_opt=0.540, ground_opt=0.950,\n", + " threshold=6,\n", + " src_base=\"results_failsafeqa.csv\",\n", + " src_opt=\"results_failsafeqa.csv\",\n", + ")\n", + "\n", + "display(Markdown(md))" + ] + }, + { + "cell_type": "markdown", + "id": "0a84939c", + "metadata": {}, + "source": [ + "GPT-5-mini crushes this task, so even the baseline prompt gets scores of >= 4 almost all of the time. However if we compare the percent of perfect scores (6/6) for the judge, we see that the optimize prompt has way signficantly more perfect answers when evaluated in the two categories of FailSafeQA answer quality: robustness and context grounding." + ] + }, + { + "cell_type": "markdown", + "id": "ebd5453b", + "metadata": {}, + "source": [ + "## Conculsion\n", + "\n", + "We’re excited for everyone to try **Prompt Optimization for GPT-5** in the OpenAI Playground. GPT-5 brings state-of-the-art intelligence, and a strong prompt helps it reason more reliably, follow constraints, and produce cleaner, higher quality results.\n", + "\n", + "\n", + "Give the [Prompt Optimizer](https://platform.openai.com/chat/edit?optimize=true) a try on your task today!" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.13" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/examples/gpt-5/prompt-optimization-cookbook/requirements.txt b/examples/gpt-5/prompt-optimization-cookbook/requirements.txt new file mode 100644 index 0000000000..e7d8f9dccb --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/requirements.txt @@ -0,0 +1,4 @@ +openai +matplotlib +seaborn +datasets \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_failsafeqa_baseline.csv b/examples/gpt-5/prompt-optimization-cookbook/results_failsafeqa_baseline.csv new file mode 100644 index 0000000000..a399a32644 --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_failsafeqa_baseline.csv @@ -0,0 +1,1541 @@ +idx,kind,rating,compliance,answer_model,judge_model +0,missing_context,6,1,gpt-5,gpt-5 +2,missing_context,6,1,gpt-5,gpt-5 +0,baseline,5,0,gpt-5,gpt-5 +2,incomplete,5,0,gpt-5,gpt-5 +0,ocr,5,0,gpt-5,gpt-5 +1,baseline,5,0,gpt-5,gpt-5 +1,incomplete,5,0,gpt-5,gpt-5 +0,misspelled,5,0,gpt-5,gpt-5 +1,out_of_domain,5,0,gpt-5,gpt-5 +0,out_of_domain,5,0,gpt-5,gpt-5 +1,misspelled,5,0,gpt-5,gpt-5 +0,incomplete,5,0,gpt-5,gpt-5 +1,missing_context,6,1,gpt-5,gpt-5 +2,misspelled,5,0,gpt-5,gpt-5 +1,out_of_scope,6,1,gpt-5,gpt-5 +0,out_of_scope,6,1,gpt-5,gpt-5 +2,baseline,5,0,gpt-5,gpt-5 +2,out_of_domain,5,0,gpt-5,gpt-5 +2,ocr,5,0,gpt-5,gpt-5 +1,ocr,5,0,gpt-5,gpt-5 +3,missing_context,6,1,gpt-5,gpt-5 +3,incomplete,6,1,gpt-5,gpt-5 +4,missing_context,6,1,gpt-5,gpt-5 +3,misspelled,6,1,gpt-5,gpt-5 +5,incomplete,5,0,gpt-5,gpt-5 +2,out_of_scope,5,0,gpt-5,gpt-5 +5,missing_context,6,1,gpt-5,gpt-5 +5,out_of_domain,5,0,gpt-5,gpt-5 +4,out_of_domain,1,0,gpt-5,gpt-5 +5,baseline,5,0,gpt-5,gpt-5 +3,out_of_domain,6,1,gpt-5,gpt-5 +4,incomplete,6,1,gpt-5,gpt-5 +3,out_of_scope,6,1,gpt-5,gpt-5 +3,ocr,6,1,gpt-5,gpt-5 +4,out_of_scope,6,1,gpt-5,gpt-5 +6,missing_context,6,1,gpt-5,gpt-5 +6,baseline,5,0,gpt-5,gpt-5 +6,incomplete,6,1,gpt-5,gpt-5 +3,baseline,6,1,gpt-5,gpt-5 +4,misspelled,3,0,gpt-5,gpt-5 +4,baseline,3,0,gpt-5,gpt-5 +6,misspelled,6,1,gpt-5,gpt-5 +6,ocr,5,0,gpt-5,gpt-5 +4,ocr,6,1,gpt-5,gpt-5 +7,missing_context,6,1,gpt-5,gpt-5 +6,out_of_domain,6,1,gpt-5,gpt-5 +5,out_of_scope,6,1,gpt-5,gpt-5 +8,baseline,5,0,gpt-5,gpt-5 +6,out_of_scope,6,1,gpt-5,gpt-5 +7,baseline,6,1,gpt-5,gpt-5 +7,out_of_scope,6,1,gpt-5,gpt-5 +8,incomplete,3,0,gpt-5,gpt-5 +8,out_of_scope,6,1,gpt-5,gpt-5 +8,ocr,6,1,gpt-5,gpt-5 +8,missing_context,6,1,gpt-5,gpt-5 +5,ocr,5,0,gpt-5,gpt-5 +9,out_of_domain,5,0,gpt-5,gpt-5 +7,out_of_domain,6,1,gpt-5,gpt-5 +8,out_of_domain,1,0,gpt-5,gpt-5 +9,misspelled,5,0,gpt-5,gpt-5 +9,incomplete,5,0,gpt-5,gpt-5 +8,misspelled,5,0,gpt-5,gpt-5 +9,missing_context,6,1,gpt-5,gpt-5 +7,misspelled,6,1,gpt-5,gpt-5 +9,baseline,5,0,gpt-5,gpt-5 +7,incomplete,6,1,gpt-5,gpt-5 +10,incomplete,5,0,gpt-5,gpt-5 +10,missing_context,6,1,gpt-5,gpt-5 +10,misspelled,5,0,gpt-5,gpt-5 +9,ocr,5,0,gpt-5,gpt-5 +10,ocr,5,0,gpt-5,gpt-5 +10,baseline,5,0,gpt-5,gpt-5 +7,ocr,6,1,gpt-5,gpt-5 +10,out_of_domain,5,0,gpt-5,gpt-5 +9,out_of_scope,6,1,gpt-5,gpt-5 +10,out_of_scope,6,1,gpt-5,gpt-5 +12,missing_context,6,1,gpt-5,gpt-5 +11,missing_context,6,1,gpt-5,gpt-5 +11,incomplete,6,1,gpt-5,gpt-5 +13,baseline,5,0,gpt-5,gpt-5 +13,out_of_domain,5,0,gpt-5,gpt-5 +13,misspelled,5,0,gpt-5,gpt-5 +13,ocr,5,0,gpt-5,gpt-5 +13,incomplete,5,0,gpt-5,gpt-5 +11,ocr,5,0,gpt-5,gpt-5 +13,missing_context,6,1,gpt-5,gpt-5 +11,misspelled,6,1,gpt-5,gpt-5 +12,baseline,4,0,gpt-5,gpt-5 +11,out_of_domain,6,1,gpt-5,gpt-5 +13,out_of_scope,6,1,gpt-5,gpt-5 +12,misspelled,4,0,gpt-5,gpt-5 +11,baseline,6,1,gpt-5,gpt-5 +12,incomplete,6,1,gpt-5,gpt-5 +14,baseline,5,0,gpt-5,gpt-5 +14,missing_context,6,1,gpt-5,gpt-5 +12,out_of_domain,6,1,gpt-5,gpt-5 +12,ocr,6,1,gpt-5,gpt-5 +14,incomplete,5,0,gpt-5,gpt-5 +11,out_of_scope,5,0,gpt-5,gpt-5 +15,baseline,6,1,gpt-5,gpt-5 +14,ocr,5,0,gpt-5,gpt-5 +15,missing_context,6,1,gpt-5,gpt-5 +14,misspelled,5,0,gpt-5,gpt-5 +15,incomplete,6,1,gpt-5,gpt-5 +16,missing_context,6,1,gpt-5,gpt-5 +14,out_of_domain,6,1,gpt-5,gpt-5 +15,misspelled,6,1,gpt-5,gpt-5 +12,out_of_scope,1,0,gpt-5,gpt-5 +14,out_of_scope,5,0,gpt-5,gpt-5 +15,ocr,6,1,gpt-5,gpt-5 +16,misspelled,5,0,gpt-5,gpt-5 +15,out_of_domain,6,1,gpt-5,gpt-5 +16,baseline,5,0,gpt-5,gpt-5 +16,out_of_domain,5,0,gpt-5,gpt-5 +17,missing_context,6,1,gpt-5,gpt-5 +15,out_of_scope,6,1,gpt-5,gpt-5 +17,misspelled,4,0,gpt-5,gpt-5 +16,ocr,5,0,gpt-5,gpt-5 +16,incomplete,6,1,gpt-5,gpt-5 +19,baseline,5,0,gpt-5,gpt-5 +17,out_of_domain,5,0,gpt-5,gpt-5 +17,out_of_scope,6,1,gpt-5,gpt-5 +18,missing_context,6,1,gpt-5,gpt-5 +16,out_of_scope,6,1,gpt-5,gpt-5 +17,incomplete,4,0,gpt-5,gpt-5 +19,missing_context,6,1,gpt-5,gpt-5 +18,out_of_scope,6,1,gpt-5,gpt-5 +19,incomplete,5,0,gpt-5,gpt-5 +19,misspelled,5,0,gpt-5,gpt-5 +17,ocr,4,0,gpt-5,gpt-5 +19,ocr,5,0,gpt-5,gpt-5 +19,out_of_domain,5,0,gpt-5,gpt-5 +20,incomplete,5,0,gpt-5,gpt-5 +17,baseline,4,0,gpt-5,gpt-5 +20,out_of_domain,5,0,gpt-5,gpt-5 +20,missing_context,6,1,gpt-5,gpt-5 +20,ocr,5,0,gpt-5,gpt-5 +18,incomplete,6,1,gpt-5,gpt-5 +21,baseline,5,0,gpt-5,gpt-5 +18,baseline,4,0,gpt-5,gpt-5 +20,misspelled,5,0,gpt-5,gpt-5 +21,out_of_domain,5,0,gpt-5,gpt-5 +21,misspelled,5,0,gpt-5,gpt-5 +20,baseline,5,0,gpt-5,gpt-5 +21,missing_context,6,1,gpt-5,gpt-5 +18,misspelled,4,0,gpt-5,gpt-5 +18,ocr,6,1,gpt-5,gpt-5 +21,ocr,5,0,gpt-5,gpt-5 +21,incomplete,5,0,gpt-5,gpt-5 +22,misspelled,6,1,gpt-5,gpt-5 +18,out_of_domain,4,0,gpt-5,gpt-5 +23,missing_context,6,1,gpt-5,gpt-5 +23,incomplete,5,0,gpt-5,gpt-5 +23,out_of_domain,5,0,gpt-5,gpt-5 +21,out_of_scope,6,1,gpt-5,gpt-5 +20,out_of_scope,4,0,gpt-5,gpt-5 +22,baseline,6,1,gpt-5,gpt-5 +23,ocr,5,0,gpt-5,gpt-5 +23,baseline,5,0,gpt-5,gpt-5 +22,incomplete,6,1,gpt-5,gpt-5 +23,misspelled,5,0,gpt-5,gpt-5 +22,out_of_domain,6,1,gpt-5,gpt-5 +22,out_of_scope,6,1,gpt-5,gpt-5 +24,missing_context,6,1,gpt-5,gpt-5 +22,ocr,6,1,gpt-5,gpt-5 +25,misspelled,5,0,gpt-5,gpt-5 +24,misspelled,6,1,gpt-5,gpt-5 +25,missing_context,6,1,gpt-5,gpt-5 +24,out_of_scope,6,1,gpt-5,gpt-5 +25,out_of_scope,6,1,gpt-5,gpt-5 +25,baseline,5,0,gpt-5,gpt-5 +24,out_of_domain,6,1,gpt-5,gpt-5 +22,missing_context,6,1,gpt-5,gpt-5 +25,out_of_domain,5,0,gpt-5,gpt-5 +23,out_of_scope,6,1,gpt-5,gpt-5 +24,baseline,6,1,gpt-5,gpt-5 +25,incomplete,5,0,gpt-5,gpt-5 +24,incomplete,5,0,gpt-5,gpt-5 +24,ocr,6,1,gpt-5,gpt-5 +26,missing_context,6,1,gpt-5,gpt-5 +25,ocr,5,0,gpt-5,gpt-5 +27,baseline,5,0,gpt-5,gpt-5 +26,incomplete,6,1,gpt-5,gpt-5 +19,out_of_scope,6,1,gpt-5,gpt-5 +26,out_of_domain,6,1,gpt-5,gpt-5 +27,ocr,5,0,gpt-5,gpt-5 +26,baseline,6,1,gpt-5,gpt-5 +27,missing_context,6,1,gpt-5,gpt-5 +27,misspelled,5,0,gpt-5,gpt-5 +26,misspelled,6,1,gpt-5,gpt-5 +27,incomplete,5,0,gpt-5,gpt-5 +28,missing_context,6,1,gpt-5,gpt-5 +27,out_of_domain,5,0,gpt-5,gpt-5 +28,out_of_domain,6,1,gpt-5,gpt-5 +28,ocr,6,1,gpt-5,gpt-5 +26,out_of_scope,6,1,gpt-5,gpt-5 +28,misspelled,6,1,gpt-5,gpt-5 +29,missing_context,6,1,gpt-5,gpt-5 +27,out_of_scope,5,0,gpt-5,gpt-5 +30,missing_context,6,1,gpt-5,gpt-5 +28,baseline,6,1,gpt-5,gpt-5 +30,baseline,6,1,gpt-5,gpt-5 +28,incomplete,6,1,gpt-5,gpt-5 +26,ocr,6,1,gpt-5,gpt-5 +28,out_of_scope,6,1,gpt-5,gpt-5 +30,incomplete,6,1,gpt-5,gpt-5 +30,out_of_scope,6,1,gpt-5,gpt-5 +30,out_of_domain,6,1,gpt-5,gpt-5 +29,baseline,6,1,gpt-5,gpt-5 +31,missing_context,6,1,gpt-5,gpt-5 +29,out_of_scope,4,0,gpt-5,gpt-5 +30,misspelled,6,1,gpt-5,gpt-5 +32,incomplete,5,0,gpt-5,gpt-5 +29,ocr,6,1,gpt-5,gpt-5 +29,incomplete,6,1,gpt-5,gpt-5 +29,out_of_domain,6,1,gpt-5,gpt-5 +32,misspelled,5,0,gpt-5,gpt-5 +29,misspelled,6,1,gpt-5,gpt-5 +32,baseline,5,0,gpt-5,gpt-5 +32,out_of_domain,5,0,gpt-5,gpt-5 +32,missing_context,6,1,gpt-5,gpt-5 +32,ocr,5,0,gpt-5,gpt-5 +31,out_of_scope,6,1,gpt-5,gpt-5 +31,baseline,6,1,gpt-5,gpt-5 +33,missing_context,6,1,gpt-5,gpt-5 +32,out_of_scope,5,0,gpt-5,gpt-5 +34,baseline,6,1,gpt-5,gpt-5 +31,out_of_domain,6,1,gpt-5,gpt-5 +34,misspelled,6,1,gpt-5,gpt-5 +34,out_of_domain,5,0,gpt-5,gpt-5 +34,incomplete,6,1,gpt-5,gpt-5 +31,misspelled,6,1,gpt-5,gpt-5 +34,ocr,5,0,gpt-5,gpt-5 +34,missing_context,6,1,gpt-5,gpt-5 +33,baseline,6,1,gpt-5,gpt-5 +31,incomplete,6,1,gpt-5,gpt-5 +31,ocr,6,1,gpt-5,gpt-5 +33,incomplete,6,1,gpt-5,gpt-5 +35,missing_context,6,1,gpt-5,gpt-5 +35,ocr,5,0,gpt-5,gpt-5 +35,misspelled,5,0,gpt-5,gpt-5 +35,baseline,5,0,gpt-5,gpt-5 +30,ocr,5,0,gpt-5,gpt-5 +33,misspelled,6,1,gpt-5,gpt-5 +33,out_of_domain,6,1,gpt-5,gpt-5 +34,out_of_scope,5,0,gpt-5,gpt-5 +36,missing_context,6,1,gpt-5,gpt-5 +33,ocr,6,1,gpt-5,gpt-5 +35,out_of_domain,5,0,gpt-5,gpt-5 +37,baseline,5,0,gpt-5,gpt-5 +35,out_of_scope,5,0,gpt-5,gpt-5 +37,incomplete,5,0,gpt-5,gpt-5 +36,out_of_domain,5,0,gpt-5,gpt-5 +35,incomplete,6,1,gpt-5,gpt-5 +37,out_of_domain,5,0,gpt-5,gpt-5 +37,missing_context,6,1,gpt-5,gpt-5 +37,misspelled,5,0,gpt-5,gpt-5 +36,misspelled,6,1,gpt-5,gpt-5 +36,out_of_scope,4,0,gpt-5,gpt-5 +38,baseline,5,0,gpt-5,gpt-5 +36,incomplete,6,1,gpt-5,gpt-5 +38,missing_context,6,1,gpt-5,gpt-5 +39,baseline,5,0,gpt-5,gpt-5 +36,baseline,6,1,gpt-5,gpt-5 +37,out_of_scope,5,0,gpt-5,gpt-5 +37,ocr,5,0,gpt-5,gpt-5 +38,out_of_domain,5,0,gpt-5,gpt-5 +38,incomplete,5,0,gpt-5,gpt-5 +39,incomplete,5,0,gpt-5,gpt-5 +39,missing_context,6,1,gpt-5,gpt-5 +38,ocr,5,0,gpt-5,gpt-5 +38,out_of_scope,6,1,gpt-5,gpt-5 +39,ocr,5,0,gpt-5,gpt-5 +38,misspelled,5,0,gpt-5,gpt-5 +39,misspelled,5,0,gpt-5,gpt-5 +40,misspelled,6,1,gpt-5,gpt-5 +40,incomplete,6,1,gpt-5,gpt-5 +40,baseline,6,1,gpt-5,gpt-5 +39,out_of_domain,5,0,gpt-5,gpt-5 +39,out_of_scope,5,0,gpt-5,gpt-5 +41,baseline,5,0,gpt-5,gpt-5 +40,out_of_domain,6,1,gpt-5,gpt-5 +41,missing_context,6,1,gpt-5,gpt-5 +40,missing_context,6,1,gpt-5,gpt-5 +41,incomplete,5,0,gpt-5,gpt-5 +41,misspelled,5,0,gpt-5,gpt-5 +42,baseline,6,1,gpt-5,gpt-5 +42,misspelled,5,0,gpt-5,gpt-5 +41,out_of_domain,5,0,gpt-5,gpt-5 +40,ocr,6,1,gpt-5,gpt-5 +42,out_of_domain,5,0,gpt-5,gpt-5 +41,ocr,5,0,gpt-5,gpt-5 +42,out_of_scope,6,1,gpt-5,gpt-5 +36,ocr,6,1,gpt-5,gpt-5 +42,missing_context,6,1,gpt-5,gpt-5 +42,incomplete,6,1,gpt-5,gpt-5 +43,incomplete,5,0,gpt-5,gpt-5 +43,misspelled,5,0,gpt-5,gpt-5 +40,out_of_scope,5,0,gpt-5,gpt-5 +33,out_of_scope,6,1,gpt-5,gpt-5 +41,out_of_scope,6,1,gpt-5,gpt-5 +43,missing_context,6,1,gpt-5,gpt-5 +43,out_of_domain,5,0,gpt-5,gpt-5 +43,baseline,5,0,gpt-5,gpt-5 +43,out_of_scope,6,1,gpt-5,gpt-5 +44,ocr,4,0,gpt-5,gpt-5 +43,ocr,5,0,gpt-5,gpt-5 +44,missing_context,6,1,gpt-5,gpt-5 +44,incomplete,5,0,gpt-5,gpt-5 +44,out_of_domain,4,0,gpt-5,gpt-5 +44,baseline,5,0,gpt-5,gpt-5 +45,missing_context,6,1,gpt-5,gpt-5 +42,ocr,3,0,gpt-5,gpt-5 +46,missing_context,6,1,gpt-5,gpt-5 +44,out_of_scope,6,1,gpt-5,gpt-5 +44,misspelled,5,0,gpt-5,gpt-5 +46,misspelled,4,0,gpt-5,gpt-5 +46,baseline,4,0,gpt-5,gpt-5 +46,out_of_scope,6,1,gpt-5,gpt-5 +45,out_of_scope,5,0,gpt-5,gpt-5 +45,baseline,6,1,gpt-5,gpt-5 +47,missing_context,6,1,gpt-5,gpt-5 +45,incomplete,6,1,gpt-5,gpt-5 +45,misspelled,6,1,gpt-5,gpt-5 +45,out_of_domain,6,1,gpt-5,gpt-5 +47,baseline,6,1,gpt-5,gpt-5 +46,ocr,5,0,gpt-5,gpt-5 +46,incomplete,4,0,gpt-5,gpt-5 +45,ocr,6,1,gpt-5,gpt-5 +48,baseline,5,0,gpt-5,gpt-5 +47,misspelled,6,1,gpt-5,gpt-5 +48,missing_context,6,1,gpt-5,gpt-5 +47,out_of_domain,6,1,gpt-5,gpt-5 +47,ocr,6,1,gpt-5,gpt-5 +48,ocr,5,0,gpt-5,gpt-5 +48,incomplete,5,0,gpt-5,gpt-5 +48,out_of_domain,5,0,gpt-5,gpt-5 +49,missing_context,6,1,gpt-5,gpt-5 +48,misspelled,5,0,gpt-5,gpt-5 +47,incomplete,6,1,gpt-5,gpt-5 +50,baseline,6,1,gpt-5,gpt-5 +47,out_of_scope,5,0,gpt-5,gpt-5 +46,out_of_domain,4,0,gpt-5,gpt-5 +48,out_of_scope,4,0,gpt-5,gpt-5 +50,missing_context,6,1,gpt-5,gpt-5 +49,out_of_scope,6,1,gpt-5,gpt-5 +49,out_of_domain,6,1,gpt-5,gpt-5 +50,misspelled,5,0,gpt-5,gpt-5 +51,missing_context,6,1,gpt-5,gpt-5 +50,ocr,6,1,gpt-5,gpt-5 +49,baseline,6,1,gpt-5,gpt-5 +49,misspelled,6,1,gpt-5,gpt-5 +50,out_of_domain,6,1,gpt-5,gpt-5 +50,incomplete,6,1,gpt-5,gpt-5 +51,out_of_domain,2,0,gpt-5,gpt-5 +52,baseline,6,1,gpt-5,gpt-5 +52,incomplete,6,1,gpt-5,gpt-5 +51,misspelled,6,1,gpt-5,gpt-5 +51,incomplete,6,1,gpt-5,gpt-5 +50,out_of_scope,5,0,gpt-5,gpt-5 +49,incomplete,6,1,gpt-5,gpt-5 +52,missing_context,6,1,gpt-5,gpt-5 +49,ocr,6,1,gpt-5,gpt-5 +52,out_of_scope,5,0,gpt-5,gpt-5 +51,out_of_scope,5,0,gpt-5,gpt-5 +53,missing_context,6,1,gpt-5,gpt-5 +52,out_of_domain,6,1,gpt-5,gpt-5 +51,ocr,6,1,gpt-5,gpt-5 +51,baseline,6,1,gpt-5,gpt-5 +52,misspelled,6,1,gpt-5,gpt-5 +53,misspelled,6,1,gpt-5,gpt-5 +52,ocr,6,1,gpt-5,gpt-5 +53,ocr,6,1,gpt-5,gpt-5 +53,baseline,6,1,gpt-5,gpt-5 +54,missing_context,6,1,gpt-5,gpt-5 +55,baseline,6,1,gpt-5,gpt-5 +54,out_of_scope,6,1,gpt-5,gpt-5 +53,out_of_scope,4,0,gpt-5,gpt-5 +54,misspelled,6,1,gpt-5,gpt-5 +55,missing_context,6,1,gpt-5,gpt-5 +54,out_of_domain,6,1,gpt-5,gpt-5 +55,incomplete,6,1,gpt-5,gpt-5 +53,out_of_domain,6,1,gpt-5,gpt-5 +55,out_of_domain,6,1,gpt-5,gpt-5 +55,misspelled,6,1,gpt-5,gpt-5 +56,baseline,5,0,gpt-5,gpt-5 +54,incomplete,6,1,gpt-5,gpt-5 +56,incomplete,5,0,gpt-5,gpt-5 +54,ocr,6,1,gpt-5,gpt-5 +56,missing_context,6,1,gpt-5,gpt-5 +55,out_of_scope,4,0,gpt-5,gpt-5 +55,ocr,4,0,gpt-5,gpt-5 +56,ocr,5,0,gpt-5,gpt-5 +57,misspelled,5,0,gpt-5,gpt-5 +56,out_of_domain,5,0,gpt-5,gpt-5 +57,baseline,5,0,gpt-5,gpt-5 +54,baseline,6,1,gpt-5,gpt-5 +57,ocr,5,0,gpt-5,gpt-5 +58,baseline,5,0,gpt-5,gpt-5 +57,missing_context,6,1,gpt-5,gpt-5 +53,incomplete,6,1,gpt-5,gpt-5 +57,incomplete,6,1,gpt-5,gpt-5 +56,out_of_scope,6,1,gpt-5,gpt-5 +58,missing_context,6,1,gpt-5,gpt-5 +59,misspelled,5,0,gpt-5,gpt-5 +57,out_of_domain,5,0,gpt-5,gpt-5 +59,baseline,5,0,gpt-5,gpt-5 +58,incomplete,4,0,gpt-5,gpt-5 +57,out_of_scope,5,0,gpt-5,gpt-5 +59,out_of_domain,5,0,gpt-5,gpt-5 +59,missing_context,6,1,gpt-5,gpt-5 +59,ocr,5,0,gpt-5,gpt-5 +58,out_of_domain,5,0,gpt-5,gpt-5 +58,ocr,5,0,gpt-5,gpt-5 +58,misspelled,5,0,gpt-5,gpt-5 +59,out_of_scope,6,1,gpt-5,gpt-5 +60,missing_context,6,1,gpt-5,gpt-5 +58,out_of_scope,6,1,gpt-5,gpt-5 +59,incomplete,5,0,gpt-5,gpt-5 +61,missing_context,6,1,gpt-5,gpt-5 +61,incomplete,6,1,gpt-5,gpt-5 +61,ocr,6,1,gpt-5,gpt-5 +60,out_of_scope,4,0,gpt-5,gpt-5 +61,out_of_scope,6,1,gpt-5,gpt-5 +61,misspelled,6,1,gpt-5,gpt-5 +62,missing_context,6,1,gpt-5,gpt-5 +60,out_of_domain,6,1,gpt-5,gpt-5 +61,baseline,6,1,gpt-5,gpt-5 +60,incomplete,4,0,gpt-5,gpt-5 +60,baseline,6,1,gpt-5,gpt-5 +62,out_of_scope,6,1,gpt-5,gpt-5 +63,missing_context,6,1,gpt-5,gpt-5 +61,out_of_domain,6,1,gpt-5,gpt-5 +63,out_of_scope,6,1,gpt-5,gpt-5 +64,baseline,5,0,gpt-5,gpt-5 +64,incomplete,6,1,gpt-5,gpt-5 +64,missing_context,6,1,gpt-5,gpt-5 +64,out_of_domain,6,1,gpt-5,gpt-5 +62,ocr,6,1,gpt-5,gpt-5 +64,misspelled,5,0,gpt-5,gpt-5 +60,ocr,4,0,gpt-5,gpt-5 +64,ocr,5,0,gpt-5,gpt-5 +62,out_of_domain,6,1,gpt-5,gpt-5 +62,misspelled,6,1,gpt-5,gpt-5 +62,baseline,6,1,gpt-5,gpt-5 +65,baseline,5,0,gpt-5,gpt-5 +63,out_of_domain,6,1,gpt-5,gpt-5 +65,misspelled,5,0,gpt-5,gpt-5 +63,baseline,6,1,gpt-5,gpt-5 +65,out_of_domain,5,0,gpt-5,gpt-5 +62,incomplete,6,1,gpt-5,gpt-5 +64,out_of_scope,5,0,gpt-5,gpt-5 +65,out_of_scope,6,1,gpt-5,gpt-5 +66,missing_context,6,1,gpt-5,gpt-5 +65,ocr,5,0,gpt-5,gpt-5 +66,baseline,5,0,gpt-5,gpt-5 +66,misspelled,5,0,gpt-5,gpt-5 +65,incomplete,6,1,gpt-5,gpt-5 +65,missing_context,6,1,gpt-5,gpt-5 +63,incomplete,6,1,gpt-5,gpt-5 +60,misspelled,6,1,gpt-5,gpt-5 +63,misspelled,6,1,gpt-5,gpt-5 +66,ocr,5,0,gpt-5,gpt-5 +66,out_of_domain,5,0,gpt-5,gpt-5 +66,incomplete,5,0,gpt-5,gpt-5 +67,missing_context,6,1,gpt-5,gpt-5 +67,out_of_scope,6,1,gpt-5,gpt-5 +68,missing_context,6,1,gpt-5,gpt-5 +63,ocr,6,1,gpt-5,gpt-5 +67,misspelled,6,1,gpt-5,gpt-5 +66,out_of_scope,6,1,gpt-5,gpt-5 +67,out_of_domain,6,1,gpt-5,gpt-5 +67,baseline,6,1,gpt-5,gpt-5 +69,incomplete,6,1,gpt-5,gpt-5 +67,incomplete,6,1,gpt-5,gpt-5 +68,out_of_scope,5,0,gpt-5,gpt-5 +68,out_of_domain,2,0,gpt-5,gpt-5 +69,missing_context,6,1,gpt-5,gpt-5 +69,out_of_scope,6,1,gpt-5,gpt-5 +69,baseline,5,0,gpt-5,gpt-5 +70,misspelled,5,0,gpt-5,gpt-5 +68,incomplete,4,0,gpt-5,gpt-5 +69,misspelled,5,0,gpt-5,gpt-5 +67,ocr,3,0,gpt-5,gpt-5 +68,misspelled,6,1,gpt-5,gpt-5 +70,baseline,5,0,gpt-5,gpt-5 +70,missing_context,6,1,gpt-5,gpt-5 +70,incomplete,5,0,gpt-5,gpt-5 +68,ocr,6,1,gpt-5,gpt-5 +70,ocr,5,0,gpt-5,gpt-5 +70,out_of_domain,6,1,gpt-5,gpt-5 +71,missing_context,6,1,gpt-5,gpt-5 +71,ocr,5,0,gpt-5,gpt-5 +69,ocr,5,0,gpt-5,gpt-5 +70,out_of_scope,6,1,gpt-5,gpt-5 +71,baseline,5,0,gpt-5,gpt-5 +71,misspelled,6,1,gpt-5,gpt-5 +68,baseline,4,0,gpt-5,gpt-5 +71,out_of_domain,5,0,gpt-5,gpt-5 +72,out_of_domain,5,0,gpt-5,gpt-5 +72,missing_context,6,1,gpt-5,gpt-5 +72,misspelled,5,0,gpt-5,gpt-5 +69,out_of_domain,6,1,gpt-5,gpt-5 +72,ocr,5,0,gpt-5,gpt-5 +72,incomplete,5,0,gpt-5,gpt-5 +72,baseline,5,0,gpt-5,gpt-5 +71,out_of_scope,5,0,gpt-5,gpt-5 +73,baseline,5,0,gpt-5,gpt-5 +73,out_of_domain,5,0,gpt-5,gpt-5 +71,incomplete,6,1,gpt-5,gpt-5 +73,missing_context,6,1,gpt-5,gpt-5 +73,incomplete,5,0,gpt-5,gpt-5 +72,out_of_scope,6,1,gpt-5,gpt-5 +73,misspelled,5,0,gpt-5,gpt-5 +74,missing_context,6,1,gpt-5,gpt-5 +74,baseline,2,0,gpt-5,gpt-5 +73,out_of_scope,5,0,gpt-5,gpt-5 +73,ocr,4,0,gpt-5,gpt-5 +75,missing_context,6,1,gpt-5,gpt-5 +75,misspelled,6,1,gpt-5,gpt-5 +76,baseline,5,0,gpt-5,gpt-5 +74,out_of_scope,6,1,gpt-5,gpt-5 +74,ocr,5,0,gpt-5,gpt-5 +76,misspelled,5,0,gpt-5,gpt-5 +74,misspelled,3,0,gpt-5,gpt-5 +75,incomplete,6,1,gpt-5,gpt-5 +74,incomplete,5,0,gpt-5,gpt-5 +75,baseline,6,1,gpt-5,gpt-5 +75,out_of_domain,5,0,gpt-5,gpt-5 +76,incomplete,5,0,gpt-5,gpt-5 +76,ocr,5,0,gpt-5,gpt-5 +5,misspelled,5,0,gpt-5,gpt-5 +75,out_of_scope,5,0,gpt-5,gpt-5 +75,ocr,6,1,gpt-5,gpt-5 +77,missing_context,6,1,gpt-5,gpt-5 +74,out_of_domain,4,0,gpt-5,gpt-5 +76,missing_context,6,1,gpt-5,gpt-5 +78,missing_context,6,1,gpt-5,gpt-5 +76,out_of_domain,6,1,gpt-5,gpt-5 +76,out_of_scope,5,0,gpt-5,gpt-5 +77,baseline,6,1,gpt-5,gpt-5 +77,out_of_scope,4,0,gpt-5,gpt-5 +78,incomplete,6,1,gpt-5,gpt-5 +79,misspelled,5,0,gpt-5,gpt-5 +79,missing_context,6,1,gpt-5,gpt-5 +77,misspelled,6,1,gpt-5,gpt-5 +78,baseline,6,1,gpt-5,gpt-5 +78,out_of_scope,6,1,gpt-5,gpt-5 +78,misspelled,5,0,gpt-5,gpt-5 +79,incomplete,5,0,gpt-5,gpt-5 +79,baseline,5,0,gpt-5,gpt-5 +77,ocr,6,1,gpt-5,gpt-5 +80,missing_context,6,1,gpt-5,gpt-5 +77,out_of_domain,6,1,gpt-5,gpt-5 +79,ocr,5,0,gpt-5,gpt-5 +79,out_of_domain,6,1,gpt-5,gpt-5 +78,out_of_domain,5,0,gpt-5,gpt-5 +77,incomplete,6,1,gpt-5,gpt-5 +79,out_of_scope,6,1,gpt-5,gpt-5 +78,ocr,3,0,gpt-5,gpt-5 +81,missing_context,6,1,gpt-5,gpt-5 +80,incomplete,6,1,gpt-5,gpt-5 +80,out_of_scope,4,0,gpt-5,gpt-5 +81,misspelled,6,1,gpt-5,gpt-5 +80,ocr,4,0,gpt-5,gpt-5 +80,misspelled,4,0,gpt-5,gpt-5 +81,baseline,6,1,gpt-5,gpt-5 +82,out_of_domain,5,0,gpt-5,gpt-5 +81,out_of_domain,6,1,gpt-5,gpt-5 +81,incomplete,6,1,gpt-5,gpt-5 +82,baseline,5,0,gpt-5,gpt-5 +80,baseline,4,0,gpt-5,gpt-5 +82,missing_context,6,1,gpt-5,gpt-5 +82,ocr,5,0,gpt-5,gpt-5 +82,misspelled,5,0,gpt-5,gpt-5 +82,out_of_scope,6,1,gpt-5,gpt-5 +82,incomplete,5,0,gpt-5,gpt-5 +83,incomplete,5,0,gpt-5,gpt-5 +81,ocr,4,0,gpt-5,gpt-5 +80,out_of_domain,4,0,gpt-5,gpt-5 +83,missing_context,6,1,gpt-5,gpt-5 +84,missing_context,6,1,gpt-5,gpt-5 +84,baseline,5,0,gpt-5,gpt-5 +83,baseline,5,0,gpt-5,gpt-5 +84,incomplete,5,0,gpt-5,gpt-5 +84,misspelled,5,0,gpt-5,gpt-5 +81,out_of_scope,4,0,gpt-5,gpt-5 +83,ocr,5,0,gpt-5,gpt-5 +83,misspelled,5,0,gpt-5,gpt-5 +84,out_of_domain,5,0,gpt-5,gpt-5 +85,missing_context,6,1,gpt-5,gpt-5 +86,missing_context,6,1,gpt-5,gpt-5 +86,ocr,5,0,gpt-5,gpt-5 +83,out_of_domain,6,1,gpt-5,gpt-5 +86,baseline,5,0,gpt-5,gpt-5 +83,out_of_scope,5,0,gpt-5,gpt-5 +86,incomplete,5,0,gpt-5,gpt-5 +86,misspelled,5,0,gpt-5,gpt-5 +85,misspelled,3,0,gpt-5,gpt-5 +86,out_of_domain,6,1,gpt-5,gpt-5 +85,out_of_domain,3,0,gpt-5,gpt-5 +86,out_of_scope,6,1,gpt-5,gpt-5 +84,out_of_scope,6,1,gpt-5,gpt-5 +87,missing_context,6,1,gpt-5,gpt-5 +85,baseline,4,0,gpt-5,gpt-5 +85,out_of_scope,6,1,gpt-5,gpt-5 +85,ocr,3,0,gpt-5,gpt-5 +85,incomplete,3,0,gpt-5,gpt-5 +84,ocr,3,0,gpt-5,gpt-5 +88,out_of_scope,6,1,gpt-5,gpt-5 +89,baseline,5,0,gpt-5,gpt-5 +89,misspelled,5,0,gpt-5,gpt-5 +89,incomplete,4,0,gpt-5,gpt-5 +89,missing_context,6,1,gpt-5,gpt-5 +89,out_of_domain,6,1,gpt-5,gpt-5 +87,baseline,6,1,gpt-5,gpt-5 +88,missing_context,6,1,gpt-5,gpt-5 +89,ocr,5,0,gpt-5,gpt-5 +87,out_of_scope,6,1,gpt-5,gpt-5 +90,missing_context,6,1,gpt-5,gpt-5 +87,misspelled,6,1,gpt-5,gpt-5 +87,out_of_domain,6,1,gpt-5,gpt-5 +87,ocr,4,0,gpt-5,gpt-5 +90,incomplete,6,1,gpt-5,gpt-5 +88,baseline,6,1,gpt-5,gpt-5 +90,misspelled,6,1,gpt-5,gpt-5 +90,out_of_scope,4,0,gpt-5,gpt-5 +91,missing_context,6,1,gpt-5,gpt-5 +88,misspelled,6,1,gpt-5,gpt-5 +89,out_of_scope,5,0,gpt-5,gpt-5 +90,baseline,6,1,gpt-5,gpt-5 +88,incomplete,6,1,gpt-5,gpt-5 +88,out_of_domain,4,0,gpt-5,gpt-5 +88,ocr,6,1,gpt-5,gpt-5 +90,ocr,6,1,gpt-5,gpt-5 +91,baseline,4,0,gpt-5,gpt-5 +91,incomplete,6,1,gpt-5,gpt-5 +91,misspelled,6,1,gpt-5,gpt-5 +92,missing_context,6,1,gpt-5,gpt-5 +87,incomplete,6,1,gpt-5,gpt-5 +93,misspelled,5,0,gpt-5,gpt-5 +91,out_of_domain,6,1,gpt-5,gpt-5 +90,out_of_domain,6,1,gpt-5,gpt-5 +91,out_of_scope,6,1,gpt-5,gpt-5 +93,out_of_domain,5,0,gpt-5,gpt-5 +92,out_of_scope,5,0,gpt-5,gpt-5 +93,missing_context,6,1,gpt-5,gpt-5 +93,incomplete,6,1,gpt-5,gpt-5 +93,ocr,5,0,gpt-5,gpt-5 +92,incomplete,6,1,gpt-5,gpt-5 +93,baseline,5,0,gpt-5,gpt-5 +91,ocr,6,1,gpt-5,gpt-5 +92,out_of_domain,4,0,gpt-5,gpt-5 +92,baseline,6,1,gpt-5,gpt-5 +92,ocr,6,1,gpt-5,gpt-5 +94,missing_context,6,1,gpt-5,gpt-5 +92,misspelled,6,1,gpt-5,gpt-5 +94,incomplete,6,1,gpt-5,gpt-5 +94,baseline,5,0,gpt-5,gpt-5 +95,baseline,5,0,gpt-5,gpt-5 +95,incomplete,5,0,gpt-5,gpt-5 +94,out_of_domain,5,0,gpt-5,gpt-5 +93,out_of_scope,6,1,gpt-5,gpt-5 +95,missing_context,6,1,gpt-5,gpt-5 +94,misspelled,5,0,gpt-5,gpt-5 +95,misspelled,5,0,gpt-5,gpt-5 +95,ocr,5,0,gpt-5,gpt-5 +96,missing_context,6,1,gpt-5,gpt-5 +95,out_of_domain,5,0,gpt-5,gpt-5 +94,out_of_scope,6,1,gpt-5,gpt-5 +96,incomplete,5,0,gpt-5,gpt-5 +97,baseline,5,0,gpt-5,gpt-5 +96,misspelled,5,0,gpt-5,gpt-5 +97,missing_context,6,1,gpt-5,gpt-5 +94,ocr,5,0,gpt-5,gpt-5 +97,misspelled,5,0,gpt-5,gpt-5 +96,ocr,5,0,gpt-5,gpt-5 +96,baseline,6,1,gpt-5,gpt-5 +96,out_of_domain,6,1,gpt-5,gpt-5 +96,out_of_scope,5,0,gpt-5,gpt-5 +95,out_of_scope,5,0,gpt-5,gpt-5 +98,incomplete,5,0,gpt-5,gpt-5 +97,ocr,5,0,gpt-5,gpt-5 +98,missing_context,6,1,gpt-5,gpt-5 +99,missing_context,6,1,gpt-5,gpt-5 +98,misspelled,5,0,gpt-5,gpt-5 +97,incomplete,6,1,gpt-5,gpt-5 +98,ocr,5,0,gpt-5,gpt-5 +98,baseline,5,0,gpt-5,gpt-5 +98,out_of_scope,6,1,gpt-5,gpt-5 +97,out_of_domain,6,1,gpt-5,gpt-5 +101,baseline,5,0,gpt-5,gpt-5 +99,out_of_scope,5,0,gpt-5,gpt-5 +99,incomplete,6,1,gpt-5,gpt-5 +99,out_of_domain,4,0,gpt-5,gpt-5 +98,out_of_domain,6,1,gpt-5,gpt-5 +99,baseline,4,0,gpt-5,gpt-5 +101,misspelled,6,1,gpt-5,gpt-5 +99,ocr,6,1,gpt-5,gpt-5 +100,missing_context,6,1,gpt-5,gpt-5 +99,misspelled,4,0,gpt-5,gpt-5 +100,baseline,2,0,gpt-5,gpt-5 +101,incomplete,6,1,gpt-5,gpt-5 +100,incomplete,5,0,gpt-5,gpt-5 +101,missing_context,6,1,gpt-5,gpt-5 +101,out_of_domain,5,0,gpt-5,gpt-5 +97,out_of_scope,6,1,gpt-5,gpt-5 +100,out_of_scope,6,1,gpt-5,gpt-5 +102,missing_context,6,1,gpt-5,gpt-5 +102,baseline,5,0,gpt-5,gpt-5 +100,out_of_domain,2,0,gpt-5,gpt-5 +103,baseline,5,0,gpt-5,gpt-5 +102,incomplete,5,0,gpt-5,gpt-5 +101,ocr,6,1,gpt-5,gpt-5 +102,out_of_domain,5,0,gpt-5,gpt-5 +103,out_of_domain,5,0,gpt-5,gpt-5 +103,missing_context,6,1,gpt-5,gpt-5 +100,ocr,5,0,gpt-5,gpt-5 +102,ocr,5,0,gpt-5,gpt-5 +103,incomplete,5,0,gpt-5,gpt-5 +102,misspelled,5,0,gpt-5,gpt-5 +103,ocr,5,0,gpt-5,gpt-5 +101,out_of_scope,4,0,gpt-5,gpt-5 +102,out_of_scope,4,0,gpt-5,gpt-5 +103,out_of_scope,6,1,gpt-5,gpt-5 +103,misspelled,6,1,gpt-5,gpt-5 +104,missing_context,6,1,gpt-5,gpt-5 +100,misspelled,5,0,gpt-5,gpt-5 +105,missing_context,6,1,gpt-5,gpt-5 +104,out_of_scope,6,1,gpt-5,gpt-5 +104,incomplete,6,1,gpt-5,gpt-5 +106,missing_context,6,1,gpt-5,gpt-5 +105,out_of_scope,6,1,gpt-5,gpt-5 +104,ocr,6,1,gpt-5,gpt-5 +104,misspelled,6,1,gpt-5,gpt-5 +104,baseline,6,1,gpt-5,gpt-5 +106,incomplete,6,1,gpt-5,gpt-5 +106,out_of_scope,6,1,gpt-5,gpt-5 +104,out_of_domain,6,1,gpt-5,gpt-5 +106,baseline,6,1,gpt-5,gpt-5 +107,baseline,6,1,gpt-5,gpt-5 +107,missing_context,6,1,gpt-5,gpt-5 +105,incomplete,6,1,gpt-5,gpt-5 +107,misspelled,6,1,gpt-5,gpt-5 +105,out_of_domain,6,1,gpt-5,gpt-5 +105,baseline,6,1,gpt-5,gpt-5 +107,incomplete,6,1,gpt-5,gpt-5 +106,misspelled,6,1,gpt-5,gpt-5 +107,out_of_scope,6,1,gpt-5,gpt-5 +106,out_of_domain,6,1,gpt-5,gpt-5 +108,missing_context,6,1,gpt-5,gpt-5 +107,out_of_domain,6,1,gpt-5,gpt-5 +108,misspelled,5,0,gpt-5,gpt-5 +108,out_of_domain,5,0,gpt-5,gpt-5 +105,misspelled,6,1,gpt-5,gpt-5 +109,missing_context,6,1,gpt-5,gpt-5 +108,baseline,5,0,gpt-5,gpt-5 +106,ocr,6,1,gpt-5,gpt-5 +108,ocr,5,0,gpt-5,gpt-5 +107,ocr,6,1,gpt-5,gpt-5 +108,incomplete,6,1,gpt-5,gpt-5 +105,ocr,3,0,gpt-5,gpt-5 +110,baseline,5,0,gpt-5,gpt-5 +110,incomplete,5,0,gpt-5,gpt-5 +109,baseline,6,1,gpt-5,gpt-5 +108,out_of_scope,6,1,gpt-5,gpt-5 +110,missing_context,6,1,gpt-5,gpt-5 +110,misspelled,5,0,gpt-5,gpt-5 +110,out_of_domain,5,0,gpt-5,gpt-5 +110,ocr,5,0,gpt-5,gpt-5 +109,out_of_scope,5,0,gpt-5,gpt-5 +111,missing_context,6,1,gpt-5,gpt-5 +111,out_of_domain,6,1,gpt-5,gpt-5 +109,incomplete,6,1,gpt-5,gpt-5 +109,ocr,6,1,gpt-5,gpt-5 +109,out_of_domain,6,1,gpt-5,gpt-5 +110,out_of_scope,4,0,gpt-5,gpt-5 +111,out_of_scope,6,1,gpt-5,gpt-5 +109,misspelled,1,0,gpt-5,gpt-5 +112,missing_context,6,1,gpt-5,gpt-5 +111,misspelled,6,1,gpt-5,gpt-5 +111,incomplete,6,1,gpt-5,gpt-5 +112,misspelled,5,0,gpt-5,gpt-5 +112,baseline,5,0,gpt-5,gpt-5 +112,incomplete,5,0,gpt-5,gpt-5 +113,missing_context,6,1,gpt-5,gpt-5 +111,baseline,6,1,gpt-5,gpt-5 +112,ocr,5,0,gpt-5,gpt-5 +111,ocr,4,0,gpt-5,gpt-5 +114,missing_context,6,1,gpt-5,gpt-5 +113,misspelled,6,1,gpt-5,gpt-5 +112,out_of_domain,5,0,gpt-5,gpt-5 +113,out_of_domain,6,1,gpt-5,gpt-5 +114,out_of_scope,5,0,gpt-5,gpt-5 +113,baseline,6,1,gpt-5,gpt-5 +112,out_of_scope,5,0,gpt-5,gpt-5 +113,ocr,6,1,gpt-5,gpt-5 +113,incomplete,6,1,gpt-5,gpt-5 +115,missing_context,6,1,gpt-5,gpt-5 +114,baseline,6,1,gpt-5,gpt-5 +116,missing_context,6,1,gpt-5,gpt-5 +115,baseline,6,1,gpt-5,gpt-5 +114,ocr,6,1,gpt-5,gpt-5 +114,misspelled,6,1,gpt-5,gpt-5 +115,incomplete,6,1,gpt-5,gpt-5 +115,misspelled,6,1,gpt-5,gpt-5 +116,baseline,5,0,gpt-5,gpt-5 +115,ocr,6,1,gpt-5,gpt-5 +114,incomplete,6,1,gpt-5,gpt-5 +115,out_of_scope,6,1,gpt-5,gpt-5 +116,misspelled,5,0,gpt-5,gpt-5 +113,out_of_scope,6,1,gpt-5,gpt-5 +117,missing_context,6,1,gpt-5,gpt-5 +115,out_of_domain,6,1,gpt-5,gpt-5 +117,baseline,5,0,gpt-5,gpt-5 +116,ocr,5,0,gpt-5,gpt-5 +116,incomplete,5,0,gpt-5,gpt-5 +116,out_of_scope,6,1,gpt-5,gpt-5 +114,out_of_domain,6,1,gpt-5,gpt-5 +118,missing_context,6,1,gpt-5,gpt-5 +117,out_of_domain,6,1,gpt-5,gpt-5 +117,ocr,5,0,gpt-5,gpt-5 +116,out_of_domain,6,1,gpt-5,gpt-5 +118,baseline,6,1,gpt-5,gpt-5 +117,incomplete,6,1,gpt-5,gpt-5 +118,misspelled,6,1,gpt-5,gpt-5 +118,incomplete,5,0,gpt-5,gpt-5 +119,baseline,6,1,gpt-5,gpt-5 +117,misspelled,5,0,gpt-5,gpt-5 +118,out_of_scope,6,1,gpt-5,gpt-5 +118,ocr,6,1,gpt-5,gpt-5 +118,out_of_domain,6,1,gpt-5,gpt-5 +119,ocr,6,1,gpt-5,gpt-5 +119,missing_context,6,1,gpt-5,gpt-5 +119,incomplete,6,1,gpt-5,gpt-5 +119,misspelled,6,1,gpt-5,gpt-5 +119,out_of_domain,6,1,gpt-5,gpt-5 +120,missing_context,6,1,gpt-5,gpt-5 +117,out_of_scope,5,0,gpt-5,gpt-5 +119,out_of_scope,6,1,gpt-5,gpt-5 +121,missing_context,6,1,gpt-5,gpt-5 +122,baseline,5,0,gpt-5,gpt-5 +120,out_of_scope,5,0,gpt-5,gpt-5 +122,incomplete,5,0,gpt-5,gpt-5 +122,missing_context,6,1,gpt-5,gpt-5 +122,out_of_domain,5,0,gpt-5,gpt-5 +120,misspelled,6,1,gpt-5,gpt-5 +56,misspelled,5,0,gpt-5,gpt-5 +122,misspelled,5,0,gpt-5,gpt-5 +121,out_of_scope,6,1,gpt-5,gpt-5 +122,ocr,3,0,gpt-5,gpt-5 +120,baseline,6,1,gpt-5,gpt-5 +123,missing_context,6,1,gpt-5,gpt-5 +122,out_of_scope,6,1,gpt-5,gpt-5 +120,incomplete,6,1,gpt-5,gpt-5 +121,misspelled,6,1,gpt-5,gpt-5 +121,baseline,6,1,gpt-5,gpt-5 +123,misspelled,6,1,gpt-5,gpt-5 +123,baseline,6,1,gpt-5,gpt-5 +120,out_of_domain,6,1,gpt-5,gpt-5 +123,out_of_domain,6,1,gpt-5,gpt-5 +121,out_of_domain,6,1,gpt-5,gpt-5 +123,incomplete,6,1,gpt-5,gpt-5 +123,out_of_scope,6,1,gpt-5,gpt-5 +124,missing_context,6,1,gpt-5,gpt-5 +120,ocr,6,1,gpt-5,gpt-5 +124,out_of_scope,6,1,gpt-5,gpt-5 +125,missing_context,6,1,gpt-5,gpt-5 +123,ocr,5,0,gpt-5,gpt-5 +125,out_of_domain,6,1,gpt-5,gpt-5 +126,missing_context,6,1,gpt-5,gpt-5 +121,ocr,6,1,gpt-5,gpt-5 +121,incomplete,6,1,gpt-5,gpt-5 +126,incomplete,6,1,gpt-5,gpt-5 +125,out_of_scope,6,1,gpt-5,gpt-5 +124,baseline,4,0,gpt-5,gpt-5 +125,incomplete,6,1,gpt-5,gpt-5 +125,misspelled,6,1,gpt-5,gpt-5 +125,ocr,6,1,gpt-5,gpt-5 +125,baseline,4,0,gpt-5,gpt-5 +124,misspelled,6,1,gpt-5,gpt-5 +127,baseline,5,0,gpt-5,gpt-5 +126,ocr,5,0,gpt-5,gpt-5 +127,out_of_domain,5,0,gpt-5,gpt-5 +124,ocr,6,1,gpt-5,gpt-5 +124,out_of_domain,6,1,gpt-5,gpt-5 +126,baseline,6,1,gpt-5,gpt-5 +127,misspelled,5,0,gpt-5,gpt-5 +126,out_of_domain,6,1,gpt-5,gpt-5 +124,incomplete,6,1,gpt-5,gpt-5 +127,incomplete,5,0,gpt-5,gpt-5 +127,missing_context,6,1,gpt-5,gpt-5 +128,baseline,5,0,gpt-5,gpt-5 +128,incomplete,5,0,gpt-5,gpt-5 +128,out_of_domain,5,0,gpt-5,gpt-5 +128,missing_context,6,1,gpt-5,gpt-5 +129,baseline,5,0,gpt-5,gpt-5 +126,misspelled,4,0,gpt-5,gpt-5 +128,misspelled,5,0,gpt-5,gpt-5 +129,out_of_domain,5,0,gpt-5,gpt-5 +129,out_of_scope,6,1,gpt-5,gpt-5 +129,misspelled,5,0,gpt-5,gpt-5 +128,out_of_scope,6,1,gpt-5,gpt-5 +127,out_of_scope,4,0,gpt-5,gpt-5 +126,out_of_scope,6,1,gpt-5,gpt-5 +129,missing_context,6,1,gpt-5,gpt-5 +129,ocr,5,0,gpt-5,gpt-5 +130,baseline,5,0,gpt-5,gpt-5 +130,misspelled,5,0,gpt-5,gpt-5 +129,incomplete,5,0,gpt-5,gpt-5 +130,incomplete,5,0,gpt-5,gpt-5 +128,ocr,3,0,gpt-5,gpt-5 +131,missing_context,6,1,gpt-5,gpt-5 +130,missing_context,6,1,gpt-5,gpt-5 +127,ocr,3,0,gpt-5,gpt-5 +130,ocr,5,0,gpt-5,gpt-5 +132,misspelled,5,0,gpt-5,gpt-5 +132,out_of_domain,5,0,gpt-5,gpt-5 +131,ocr,5,0,gpt-5,gpt-5 +132,incomplete,5,0,gpt-5,gpt-5 +131,baseline,6,1,gpt-5,gpt-5 +130,out_of_domain,5,0,gpt-5,gpt-5 +131,incomplete,6,1,gpt-5,gpt-5 +132,missing_context,6,1,gpt-5,gpt-5 +131,misspelled,6,1,gpt-5,gpt-5 +132,baseline,5,0,gpt-5,gpt-5 +130,out_of_scope,4,0,gpt-5,gpt-5 +133,ocr,5,0,gpt-5,gpt-5 +133,out_of_domain,5,0,gpt-5,gpt-5 +133,missing_context,6,1,gpt-5,gpt-5 +133,incomplete,5,0,gpt-5,gpt-5 +131,out_of_domain,4,0,gpt-5,gpt-5 +134,missing_context,6,1,gpt-5,gpt-5 +133,baseline,5,0,gpt-5,gpt-5 +133,out_of_scope,5,0,gpt-5,gpt-5 +132,out_of_scope,4,0,gpt-5,gpt-5 +133,misspelled,5,0,gpt-5,gpt-5 +135,incomplete,5,0,gpt-5,gpt-5 +134,incomplete,6,1,gpt-5,gpt-5 +134,baseline,6,1,gpt-5,gpt-5 +134,out_of_domain,6,1,gpt-5,gpt-5 +134,misspelled,6,1,gpt-5,gpt-5 +135,missing_context,6,1,gpt-5,gpt-5 +131,out_of_scope,6,1,gpt-5,gpt-5 +134,ocr,6,1,gpt-5,gpt-5 +135,out_of_scope,6,1,gpt-5,gpt-5 +135,misspelled,5,0,gpt-5,gpt-5 +135,baseline,5,0,gpt-5,gpt-5 +132,ocr,4,0,gpt-5,gpt-5 +135,ocr,5,0,gpt-5,gpt-5 +134,out_of_scope,5,0,gpt-5,gpt-5 +136,missing_context,6,1,gpt-5,gpt-5 +137,baseline,6,1,gpt-5,gpt-5 +137,incomplete,6,1,gpt-5,gpt-5 +137,misspelled,6,1,gpt-5,gpt-5 +136,baseline,6,1,gpt-5,gpt-5 +137,missing_context,6,1,gpt-5,gpt-5 +137,ocr,6,1,gpt-5,gpt-5 +135,out_of_domain,6,1,gpt-5,gpt-5 +138,misspelled,5,0,gpt-5,gpt-5 +136,out_of_scope,6,1,gpt-5,gpt-5 +137,out_of_domain,6,1,gpt-5,gpt-5 +138,missing_context,6,1,gpt-5,gpt-5 +138,incomplete,5,0,gpt-5,gpt-5 +136,misspelled,6,1,gpt-5,gpt-5 +138,baseline,5,0,gpt-5,gpt-5 +136,out_of_domain,6,1,gpt-5,gpt-5 +137,out_of_scope,6,1,gpt-5,gpt-5 +136,ocr,6,1,gpt-5,gpt-5 +139,missing_context,6,1,gpt-5,gpt-5 +138,ocr,5,0,gpt-5,gpt-5 +138,out_of_domain,6,1,gpt-5,gpt-5 +138,out_of_scope,5,0,gpt-5,gpt-5 +140,misspelled,5,0,gpt-5,gpt-5 +136,incomplete,6,1,gpt-5,gpt-5 +140,baseline,5,0,gpt-5,gpt-5 +139,misspelled,6,1,gpt-5,gpt-5 +139,baseline,6,1,gpt-5,gpt-5 +139,out_of_domain,6,1,gpt-5,gpt-5 +140,missing_context,6,1,gpt-5,gpt-5 +139,ocr,6,1,gpt-5,gpt-5 +140,out_of_domain,5,0,gpt-5,gpt-5 +140,ocr,5,0,gpt-5,gpt-5 +139,out_of_scope,6,1,gpt-5,gpt-5 +141,missing_context,6,1,gpt-5,gpt-5 +139,incomplete,6,1,gpt-5,gpt-5 +141,baseline,5,0,gpt-5,gpt-5 +141,misspelled,6,1,gpt-5,gpt-5 +140,out_of_scope,6,1,gpt-5,gpt-5 +141,out_of_domain,5,0,gpt-5,gpt-5 +143,baseline,5,0,gpt-5,gpt-5 +140,incomplete,6,1,gpt-5,gpt-5 +141,ocr,6,1,gpt-5,gpt-5 +143,missing_context,6,1,gpt-5,gpt-5 +141,out_of_scope,6,1,gpt-5,gpt-5 +142,missing_context,6,1,gpt-5,gpt-5 +143,incomplete,6,1,gpt-5,gpt-5 +143,ocr,5,0,gpt-5,gpt-5 +142,out_of_scope,6,1,gpt-5,gpt-5 +143,misspelled,5,0,gpt-5,gpt-5 +141,incomplete,6,1,gpt-5,gpt-5 +143,out_of_domain,6,1,gpt-5,gpt-5 +144,missing_context,6,1,gpt-5,gpt-5 +142,misspelled,6,1,gpt-5,gpt-5 +143,out_of_scope,6,1,gpt-5,gpt-5 +142,out_of_domain,6,1,gpt-5,gpt-5 +142,ocr,6,1,gpt-5,gpt-5 +145,missing_context,6,1,gpt-5,gpt-5 +144,out_of_scope,5,0,gpt-5,gpt-5 +145,out_of_domain,4,0,gpt-5,gpt-5 +142,baseline,6,1,gpt-5,gpt-5 +145,out_of_scope,6,1,gpt-5,gpt-5 +146,missing_context,6,1,gpt-5,gpt-5 +146,out_of_domain,5,0,gpt-5,gpt-5 +146,baseline,5,0,gpt-5,gpt-5 +146,ocr,5,0,gpt-5,gpt-5 +144,misspelled,6,1,gpt-5,gpt-5 +146,incomplete,5,0,gpt-5,gpt-5 +146,misspelled,5,0,gpt-5,gpt-5 +142,incomplete,6,1,gpt-5,gpt-5 +144,baseline,6,1,gpt-5,gpt-5 +144,incomplete,6,1,gpt-5,gpt-5 +144,ocr,6,1,gpt-5,gpt-5 +146,out_of_scope,5,0,gpt-5,gpt-5 +147,missing_context,6,1,gpt-5,gpt-5 +145,incomplete,3,0,gpt-5,gpt-5 +144,out_of_domain,6,1,gpt-5,gpt-5 +147,incomplete,6,1,gpt-5,gpt-5 +147,baseline,6,1,gpt-5,gpt-5 +145,ocr,3,0,gpt-5,gpt-5 +147,misspelled,6,1,gpt-5,gpt-5 +147,ocr,6,1,gpt-5,gpt-5 +145,misspelled,6,1,gpt-5,gpt-5 +148,missing_context,6,1,gpt-5,gpt-5 +145,baseline,3,0,gpt-5,gpt-5 +147,out_of_domain,6,1,gpt-5,gpt-5 +147,out_of_scope,5,0,gpt-5,gpt-5 +148,misspelled,6,1,gpt-5,gpt-5 +149,missing_context,6,1,gpt-5,gpt-5 +150,missing_context,6,1,gpt-5,gpt-5 +148,out_of_scope,5,0,gpt-5,gpt-5 +148,out_of_domain,6,1,gpt-5,gpt-5 +148,baseline,6,1,gpt-5,gpt-5 +150,baseline,6,1,gpt-5,gpt-5 +150,misspelled,6,1,gpt-5,gpt-5 +149,out_of_domain,5,0,gpt-5,gpt-5 +150,incomplete,6,1,gpt-5,gpt-5 +148,ocr,6,1,gpt-5,gpt-5 +150,out_of_scope,6,1,gpt-5,gpt-5 +149,out_of_scope,5,0,gpt-5,gpt-5 +148,incomplete,6,1,gpt-5,gpt-5 +151,missing_context,6,1,gpt-5,gpt-5 +150,out_of_domain,6,1,gpt-5,gpt-5 +149,misspelled,6,1,gpt-5,gpt-5 +149,incomplete,6,1,gpt-5,gpt-5 +151,incomplete,6,1,gpt-5,gpt-5 +151,out_of_scope,5,0,gpt-5,gpt-5 +151,baseline,6,1,gpt-5,gpt-5 +151,misspelled,6,1,gpt-5,gpt-5 +152,missing_context,6,1,gpt-5,gpt-5 +152,misspelled,6,1,gpt-5,gpt-5 +152,out_of_scope,6,1,gpt-5,gpt-5 +152,out_of_domain,6,1,gpt-5,gpt-5 +150,ocr,6,1,gpt-5,gpt-5 +152,incomplete,6,1,gpt-5,gpt-5 +149,ocr,6,1,gpt-5,gpt-5 +153,baseline,6,1,gpt-5,gpt-5 +153,incomplete,5,0,gpt-5,gpt-5 +152,ocr,6,1,gpt-5,gpt-5 +152,baseline,6,1,gpt-5,gpt-5 +154,missing_context,6,1,gpt-5,gpt-5 +151,out_of_domain,6,1,gpt-5,gpt-5 +149,baseline,6,1,gpt-5,gpt-5 +153,missing_context,6,1,gpt-5,gpt-5 +151,ocr,6,1,gpt-5,gpt-5 +153,misspelled,6,1,gpt-5,gpt-5 +155,missing_context,6,1,gpt-5,gpt-5 +153,out_of_scope,6,1,gpt-5,gpt-5 +154,incomplete,5,0,gpt-5,gpt-5 +153,ocr,6,1,gpt-5,gpt-5 +153,out_of_domain,6,1,gpt-5,gpt-5 +154,out_of_scope,6,1,gpt-5,gpt-5 +154,out_of_domain,5,0,gpt-5,gpt-5 +154,ocr,5,0,gpt-5,gpt-5 +154,misspelled,5,0,gpt-5,gpt-5 +155,baseline,6,1,gpt-5,gpt-5 +154,baseline,5,0,gpt-5,gpt-5 +157,misspelled,5,0,gpt-5,gpt-5 +155,misspelled,6,1,gpt-5,gpt-5 +156,missing_context,6,1,gpt-5,gpt-5 +155,out_of_scope,5,0,gpt-5,gpt-5 +156,baseline,6,1,gpt-5,gpt-5 +157,incomplete,5,0,gpt-5,gpt-5 +155,ocr,6,1,gpt-5,gpt-5 +157,baseline,5,0,gpt-5,gpt-5 +157,missing_context,6,1,gpt-5,gpt-5 +156,misspelled,6,1,gpt-5,gpt-5 +156,out_of_domain,6,1,gpt-5,gpt-5 +155,incomplete,6,1,gpt-5,gpt-5 +158,missing_context,6,1,gpt-5,gpt-5 +157,out_of_domain,5,0,gpt-5,gpt-5 +157,out_of_scope,5,0,gpt-5,gpt-5 +155,out_of_domain,6,1,gpt-5,gpt-5 +156,out_of_scope,6,1,gpt-5,gpt-5 +158,baseline,5,0,gpt-5,gpt-5 +156,ocr,6,1,gpt-5,gpt-5 +159,misspelled,5,0,gpt-5,gpt-5 +159,missing_context,6,1,gpt-5,gpt-5 +157,ocr,3,0,gpt-5,gpt-5 +156,incomplete,6,1,gpt-5,gpt-5 +159,incomplete,5,0,gpt-5,gpt-5 +159,ocr,5,0,gpt-5,gpt-5 +159,baseline,5,0,gpt-5,gpt-5 +158,misspelled,6,1,gpt-5,gpt-5 +159,out_of_domain,5,0,gpt-5,gpt-5 +158,ocr,6,1,gpt-5,gpt-5 +159,out_of_scope,5,0,gpt-5,gpt-5 +158,incomplete,6,1,gpt-5,gpt-5 +161,missing_context,6,1,gpt-5,gpt-5 +160,out_of_scope,4,0,gpt-5,gpt-5 +161,out_of_scope,6,1,gpt-5,gpt-5 +158,out_of_domain,6,1,gpt-5,gpt-5 +162,misspelled,6,1,gpt-5,gpt-5 +162,missing_context,6,1,gpt-5,gpt-5 +158,out_of_scope,6,1,gpt-5,gpt-5 +162,incomplete,6,1,gpt-5,gpt-5 +160,out_of_domain,6,1,gpt-5,gpt-5 +162,out_of_domain,5,0,gpt-5,gpt-5 +161,incomplete,6,1,gpt-5,gpt-5 +161,misspelled,6,1,gpt-5,gpt-5 +160,baseline,6,1,gpt-5,gpt-5 +160,incomplete,6,1,gpt-5,gpt-5 +160,ocr,6,1,gpt-5,gpt-5 +161,out_of_domain,6,1,gpt-5,gpt-5 +163,missing_context,6,1,gpt-5,gpt-5 +162,ocr,5,0,gpt-5,gpt-5 +161,baseline,6,1,gpt-5,gpt-5 +163,out_of_scope,6,1,gpt-5,gpt-5 +161,ocr,6,1,gpt-5,gpt-5 +164,missing_context,6,1,gpt-5,gpt-5 +163,baseline,6,1,gpt-5,gpt-5 +160,misspelled,6,1,gpt-5,gpt-5 +164,misspelled,3,0,gpt-5,gpt-5 +162,out_of_scope,5,0,gpt-5,gpt-5 +164,ocr,5,0,gpt-5,gpt-5 +163,incomplete,3,0,gpt-5,gpt-5 +164,incomplete,3,0,gpt-5,gpt-5 +163,misspelled,6,1,gpt-5,gpt-5 +164,baseline,3,0,gpt-5,gpt-5 +164,out_of_domain,2,0,gpt-5,gpt-5 +164,out_of_scope,4,0,gpt-5,gpt-5 +166,baseline,5,0,gpt-5,gpt-5 +166,misspelled,5,0,gpt-5,gpt-5 +166,incomplete,6,1,gpt-5,gpt-5 +165,missing_context,6,1,gpt-5,gpt-5 +166,ocr,5,0,gpt-5,gpt-5 +166,out_of_domain,5,0,gpt-5,gpt-5 +166,missing_context,6,1,gpt-5,gpt-5 +163,out_of_domain,6,1,gpt-5,gpt-5 +165,misspelled,6,1,gpt-5,gpt-5 +167,misspelled,5,0,gpt-5,gpt-5 +160,missing_context,6,1,gpt-5,gpt-5 +165,ocr,6,1,gpt-5,gpt-5 +167,missing_context,6,1,gpt-5,gpt-5 +165,incomplete,6,1,gpt-5,gpt-5 +166,out_of_scope,6,1,gpt-5,gpt-5 +165,baseline,6,1,gpt-5,gpt-5 +165,out_of_domain,6,1,gpt-5,gpt-5 +167,baseline,5,0,gpt-5,gpt-5 +165,out_of_scope,5,0,gpt-5,gpt-5 +167,out_of_domain,5,0,gpt-5,gpt-5 +163,ocr,6,1,gpt-5,gpt-5 +167,out_of_scope,6,1,gpt-5,gpt-5 +167,incomplete,5,0,gpt-5,gpt-5 +168,incomplete,5,0,gpt-5,gpt-5 +168,baseline,5,0,gpt-5,gpt-5 +167,ocr,5,0,gpt-5,gpt-5 +169,baseline,5,0,gpt-5,gpt-5 +168,missing_context,6,1,gpt-5,gpt-5 +170,baseline,5,0,gpt-5,gpt-5 +169,missing_context,6,1,gpt-5,gpt-5 +169,misspelled,5,0,gpt-5,gpt-5 +168,misspelled,6,1,gpt-5,gpt-5 +169,incomplete,5,0,gpt-5,gpt-5 +169,out_of_domain,5,0,gpt-5,gpt-5 +170,out_of_domain,5,0,gpt-5,gpt-5 +168,ocr,6,1,gpt-5,gpt-5 +170,misspelled,5,0,gpt-5,gpt-5 +168,out_of_domain,6,1,gpt-5,gpt-5 +170,ocr,5,0,gpt-5,gpt-5 +171,missing_context,6,1,gpt-5,gpt-5 +170,incomplete,5,0,gpt-5,gpt-5 +170,missing_context,6,1,gpt-5,gpt-5 +169,ocr,3,0,gpt-5,gpt-5 +169,out_of_scope,6,1,gpt-5,gpt-5 +172,baseline,6,1,gpt-5,gpt-5 +171,incomplete,5,0,gpt-5,gpt-5 +172,missing_context,6,1,gpt-5,gpt-5 +172,misspelled,5,0,gpt-5,gpt-5 +171,ocr,5,0,gpt-5,gpt-5 +168,out_of_scope,5,0,gpt-5,gpt-5 +171,misspelled,5,0,gpt-5,gpt-5 +171,baseline,6,1,gpt-5,gpt-5 +171,out_of_scope,6,1,gpt-5,gpt-5 +172,incomplete,6,1,gpt-5,gpt-5 +171,out_of_domain,3,0,gpt-5,gpt-5 +172,ocr,5,0,gpt-5,gpt-5 +173,missing_context,6,1,gpt-5,gpt-5 +172,out_of_domain,6,1,gpt-5,gpt-5 +174,misspelled,5,0,gpt-5,gpt-5 +174,baseline,5,0,gpt-5,gpt-5 +174,missing_context,6,1,gpt-5,gpt-5 +174,ocr,5,0,gpt-5,gpt-5 +170,out_of_scope,5,0,gpt-5,gpt-5 +173,baseline,6,1,gpt-5,gpt-5 +172,out_of_scope,4,0,gpt-5,gpt-5 +175,missing_context,6,1,gpt-5,gpt-5 +174,incomplete,5,0,gpt-5,gpt-5 +173,incomplete,6,1,gpt-5,gpt-5 +174,out_of_domain,5,0,gpt-5,gpt-5 +173,ocr,6,1,gpt-5,gpt-5 +173,misspelled,6,1,gpt-5,gpt-5 +174,out_of_scope,6,1,gpt-5,gpt-5 +176,missing_context,6,1,gpt-5,gpt-5 +175,baseline,5,0,gpt-5,gpt-5 +173,out_of_scope,6,1,gpt-5,gpt-5 +162,baseline,5,0,gpt-5,gpt-5 +175,out_of_domain,4,0,gpt-5,gpt-5 +175,incomplete,6,1,gpt-5,gpt-5 +177,baseline,5,0,gpt-5,gpt-5 +176,baseline,4,0,gpt-5,gpt-5 +176,out_of_scope,6,1,gpt-5,gpt-5 +175,misspelled,4,0,gpt-5,gpt-5 +175,out_of_scope,4,0,gpt-5,gpt-5 +175,ocr,4,0,gpt-5,gpt-5 +176,misspelled,4,0,gpt-5,gpt-5 +173,out_of_domain,4,0,gpt-5,gpt-5 +176,incomplete,6,1,gpt-5,gpt-5 +177,ocr,5,0,gpt-5,gpt-5 +177,missing_context,6,1,gpt-5,gpt-5 +177,out_of_domain,5,0,gpt-5,gpt-5 +177,misspelled,5,0,gpt-5,gpt-5 +177,incomplete,5,0,gpt-5,gpt-5 +178,baseline,5,0,gpt-5,gpt-5 +178,misspelled,5,0,gpt-5,gpt-5 +178,missing_context,6,1,gpt-5,gpt-5 +179,baseline,5,0,gpt-5,gpt-5 +176,out_of_domain,4,0,gpt-5,gpt-5 +178,ocr,5,0,gpt-5,gpt-5 +179,out_of_domain,5,0,gpt-5,gpt-5 +178,out_of_domain,5,0,gpt-5,gpt-5 +179,ocr,5,0,gpt-5,gpt-5 +177,out_of_scope,6,1,gpt-5,gpt-5 +179,incomplete,6,1,gpt-5,gpt-5 +179,misspelled,5,0,gpt-5,gpt-5 +180,misspelled,5,0,gpt-5,gpt-5 +180,incomplete,5,0,gpt-5,gpt-5 +179,missing_context,6,1,gpt-5,gpt-5 +178,incomplete,5,0,gpt-5,gpt-5 +180,missing_context,6,1,gpt-5,gpt-5 +180,baseline,5,0,gpt-5,gpt-5 +176,ocr,4,0,gpt-5,gpt-5 +180,ocr,5,0,gpt-5,gpt-5 +180,out_of_domain,5,0,gpt-5,gpt-5 +178,out_of_scope,6,1,gpt-5,gpt-5 +181,out_of_domain,5,0,gpt-5,gpt-5 +181,baseline,6,1,gpt-5,gpt-5 +179,out_of_scope,6,1,gpt-5,gpt-5 +182,missing_context,6,1,gpt-5,gpt-5 +181,missing_context,6,1,gpt-5,gpt-5 +181,ocr,6,1,gpt-5,gpt-5 +183,misspelled,5,0,gpt-5,gpt-5 +180,out_of_scope,5,0,gpt-5,gpt-5 +182,out_of_scope,6,1,gpt-5,gpt-5 +183,incomplete,5,0,gpt-5,gpt-5 +183,ocr,5,0,gpt-5,gpt-5 +183,missing_context,6,1,gpt-5,gpt-5 +183,baseline,5,0,gpt-5,gpt-5 +181,misspelled,6,1,gpt-5,gpt-5 +183,out_of_domain,5,0,gpt-5,gpt-5 +184,missing_context,6,1,gpt-5,gpt-5 +181,incomplete,6,1,gpt-5,gpt-5 +182,misspelled,6,1,gpt-5,gpt-5 +184,misspelled,6,1,gpt-5,gpt-5 +182,out_of_domain,4,0,gpt-5,gpt-5 +184,out_of_scope,6,1,gpt-5,gpt-5 +184,incomplete,6,1,gpt-5,gpt-5 +183,out_of_scope,5,0,gpt-5,gpt-5 +181,out_of_scope,4,0,gpt-5,gpt-5 +184,ocr,6,1,gpt-5,gpt-5 +182,ocr,6,1,gpt-5,gpt-5 +184,out_of_domain,6,1,gpt-5,gpt-5 +184,baseline,6,1,gpt-5,gpt-5 +182,baseline,6,1,gpt-5,gpt-5 +185,missing_context,6,1,gpt-5,gpt-5 +186,missing_context,6,1,gpt-5,gpt-5 +185,ocr,6,1,gpt-5,gpt-5 +187,missing_context,6,1,gpt-5,gpt-5 +186,out_of_scope,6,1,gpt-5,gpt-5 +187,baseline,5,0,gpt-5,gpt-5 +186,out_of_domain,6,1,gpt-5,gpt-5 +185,out_of_domain,4,0,gpt-5,gpt-5 +186,ocr,6,1,gpt-5,gpt-5 +186,baseline,6,1,gpt-5,gpt-5 +185,out_of_scope,6,1,gpt-5,gpt-5 +187,ocr,5,0,gpt-5,gpt-5 +187,incomplete,5,0,gpt-5,gpt-5 +188,baseline,5,0,gpt-5,gpt-5 +185,baseline,6,1,gpt-5,gpt-5 +187,out_of_domain,6,1,gpt-5,gpt-5 +185,misspelled,3,0,gpt-5,gpt-5 +187,out_of_scope,6,1,gpt-5,gpt-5 +188,incomplete,6,1,gpt-5,gpt-5 +188,misspelled,6,1,gpt-5,gpt-5 +188,out_of_domain,5,0,gpt-5,gpt-5 +185,incomplete,6,1,gpt-5,gpt-5 +186,incomplete,6,1,gpt-5,gpt-5 +188,missing_context,6,1,gpt-5,gpt-5 +189,missing_context,6,1,gpt-5,gpt-5 +189,out_of_scope,6,1,gpt-5,gpt-5 +188,out_of_scope,5,0,gpt-5,gpt-5 +187,misspelled,5,0,gpt-5,gpt-5 +188,ocr,6,1,gpt-5,gpt-5 +190,missing_context,6,1,gpt-5,gpt-5 +189,misspelled,6,1,gpt-5,gpt-5 +190,out_of_domain,6,1,gpt-5,gpt-5 +190,baseline,6,1,gpt-5,gpt-5 +189,incomplete,6,1,gpt-5,gpt-5 +191,missing_context,6,1,gpt-5,gpt-5 +189,baseline,6,1,gpt-5,gpt-5 +190,out_of_scope,5,0,gpt-5,gpt-5 +190,ocr,6,1,gpt-5,gpt-5 +190,misspelled,6,1,gpt-5,gpt-5 +190,incomplete,6,1,gpt-5,gpt-5 +189,ocr,6,1,gpt-5,gpt-5 +189,out_of_domain,4,0,gpt-5,gpt-5 +191,out_of_scope,5,0,gpt-5,gpt-5 +192,missing_context,6,1,gpt-5,gpt-5 +191,misspelled,6,1,gpt-5,gpt-5 +193,misspelled,5,0,gpt-5,gpt-5 +193,baseline,4,0,gpt-5,gpt-5 +192,out_of_scope,5,0,gpt-5,gpt-5 +193,missing_context,6,1,gpt-5,gpt-5 +192,out_of_domain,6,1,gpt-5,gpt-5 +193,incomplete,5,0,gpt-5,gpt-5 +193,out_of_domain,5,0,gpt-5,gpt-5 +192,misspelled,6,1,gpt-5,gpt-5 +191,ocr,4,0,gpt-5,gpt-5 +191,baseline,4,0,gpt-5,gpt-5 +193,out_of_scope,6,1,gpt-5,gpt-5 +193,ocr,4,0,gpt-5,gpt-5 +191,incomplete,6,1,gpt-5,gpt-5 +192,incomplete,6,1,gpt-5,gpt-5 +192,baseline,6,1,gpt-5,gpt-5 +194,baseline,6,1,gpt-5,gpt-5 +191,out_of_domain,4,0,gpt-5,gpt-5 +194,misspelled,6,1,gpt-5,gpt-5 +195,missing_context,6,1,gpt-5,gpt-5 +194,out_of_domain,6,1,gpt-5,gpt-5 +192,ocr,6,1,gpt-5,gpt-5 +194,incomplete,6,1,gpt-5,gpt-5 +194,missing_context,6,1,gpt-5,gpt-5 +195,misspelled,5,0,gpt-5,gpt-5 +196,missing_context,6,1,gpt-5,gpt-5 +194,ocr,6,1,gpt-5,gpt-5 +195,baseline,5,0,gpt-5,gpt-5 +197,baseline,5,0,gpt-5,gpt-5 +195,incomplete,5,0,gpt-5,gpt-5 +194,out_of_scope,5,0,gpt-5,gpt-5 +195,out_of_scope,4,0,gpt-5,gpt-5 +197,misspelled,5,0,gpt-5,gpt-5 +197,incomplete,6,1,gpt-5,gpt-5 +197,missing_context,6,1,gpt-5,gpt-5 +195,out_of_domain,6,1,gpt-5,gpt-5 +197,ocr,5,0,gpt-5,gpt-5 +195,ocr,5,0,gpt-5,gpt-5 +197,out_of_domain,5,0,gpt-5,gpt-5 +196,ocr,5,0,gpt-5,gpt-5 +198,missing_context,6,1,gpt-5,gpt-5 +196,baseline,5,0,gpt-5,gpt-5 +199,incomplete,5,0,gpt-5,gpt-5 +199,baseline,5,0,gpt-5,gpt-5 +196,out_of_scope,6,1,gpt-5,gpt-5 +197,out_of_scope,5,0,gpt-5,gpt-5 +199,ocr,5,0,gpt-5,gpt-5 +199,missing_context,6,1,gpt-5,gpt-5 +199,out_of_domain,5,0,gpt-5,gpt-5 +199,misspelled,5,0,gpt-5,gpt-5 +196,misspelled,4,0,gpt-5,gpt-5 +196,out_of_domain,4,0,gpt-5,gpt-5 +198,baseline,6,1,gpt-5,gpt-5 +198,out_of_domain,6,1,gpt-5,gpt-5 +198,incomplete,6,1,gpt-5,gpt-5 +200,missing_context,6,1,gpt-5,gpt-5 +198,ocr,6,1,gpt-5,gpt-5 +196,incomplete,5,0,gpt-5,gpt-5 +199,out_of_scope,4,0,gpt-5,gpt-5 +200,misspelled,5,0,gpt-5,gpt-5 +200,out_of_domain,5,0,gpt-5,gpt-5 +200,baseline,5,0,gpt-5,gpt-5 +198,misspelled,6,1,gpt-5,gpt-5 +198,out_of_scope,6,1,gpt-5,gpt-5 +201,missing_context,6,1,gpt-5,gpt-5 +201,incomplete,5,0,gpt-5,gpt-5 +201,baseline,5,0,gpt-5,gpt-5 +200,incomplete,5,0,gpt-5,gpt-5 +201,ocr,5,0,gpt-5,gpt-5 +202,missing_context,6,1,gpt-5,gpt-5 +200,out_of_scope,6,1,gpt-5,gpt-5 +200,ocr,5,0,gpt-5,gpt-5 +201,misspelled,5,0,gpt-5,gpt-5 +201,out_of_domain,5,0,gpt-5,gpt-5 +203,missing_context,6,1,gpt-5,gpt-5 +201,out_of_scope,4,0,gpt-5,gpt-5 +202,out_of_scope,6,1,gpt-5,gpt-5 +203,misspelled,6,1,gpt-5,gpt-5 +202,baseline,6,1,gpt-5,gpt-5 +204,out_of_domain,5,0,gpt-5,gpt-5 +204,incomplete,5,0,gpt-5,gpt-5 +204,baseline,5,0,gpt-5,gpt-5 +204,missing_context,6,1,gpt-5,gpt-5 +203,out_of_scope,6,1,gpt-5,gpt-5 +204,misspelled,5,0,gpt-5,gpt-5 +204,ocr,5,0,gpt-5,gpt-5 +203,baseline,6,1,gpt-5,gpt-5 +202,out_of_domain,6,1,gpt-5,gpt-5 +203,out_of_domain,6,1,gpt-5,gpt-5 +202,misspelled,6,1,gpt-5,gpt-5 +203,ocr,6,1,gpt-5,gpt-5 +203,incomplete,6,1,gpt-5,gpt-5 +205,baseline,6,1,gpt-5,gpt-5 +205,misspelled,6,1,gpt-5,gpt-5 +205,ocr,6,1,gpt-5,gpt-5 +206,incomplete,5,0,gpt-5,gpt-5 +206,missing_context,6,1,gpt-5,gpt-5 +206,baseline,5,0,gpt-5,gpt-5 +205,out_of_domain,6,1,gpt-5,gpt-5 +202,ocr,6,1,gpt-5,gpt-5 +202,incomplete,6,1,gpt-5,gpt-5 +205,missing_context,6,1,gpt-5,gpt-5 +206,misspelled,5,0,gpt-5,gpt-5 +206,out_of_domain,5,0,gpt-5,gpt-5 +207,missing_context,6,1,gpt-5,gpt-5 +205,out_of_scope,6,1,gpt-5,gpt-5 +207,out_of_scope,6,1,gpt-5,gpt-5 +206,out_of_scope,5,0,gpt-5,gpt-5 +208,missing_context,6,1,gpt-5,gpt-5 +206,ocr,5,0,gpt-5,gpt-5 +204,out_of_scope,6,1,gpt-5,gpt-5 +205,incomplete,6,1,gpt-5,gpt-5 +209,misspelled,6,1,gpt-5,gpt-5 +209,baseline,6,1,gpt-5,gpt-5 +208,out_of_scope,4,0,gpt-5,gpt-5 +208,baseline,2,0,gpt-5,gpt-5 +208,out_of_domain,6,1,gpt-5,gpt-5 +207,incomplete,6,1,gpt-5,gpt-5 +209,incomplete,6,1,gpt-5,gpt-5 +207,misspelled,6,1,gpt-5,gpt-5 +209,missing_context,6,1,gpt-5,gpt-5 +207,baseline,6,1,gpt-5,gpt-5 +209,out_of_domain,6,1,gpt-5,gpt-5 +208,incomplete,4,0,gpt-5,gpt-5 +209,ocr,6,1,gpt-5,gpt-5 +208,ocr,6,1,gpt-5,gpt-5 +210,missing_context,6,1,gpt-5,gpt-5 +207,ocr,6,1,gpt-5,gpt-5 +211,missing_context,6,1,gpt-5,gpt-5 +210,incomplete,6,1,gpt-5,gpt-5 +208,misspelled,6,1,gpt-5,gpt-5 +209,out_of_scope,6,1,gpt-5,gpt-5 +210,misspelled,6,1,gpt-5,gpt-5 +210,baseline,6,1,gpt-5,gpt-5 +211,baseline,3,0,gpt-5,gpt-5 +210,out_of_scope,6,1,gpt-5,gpt-5 +211,ocr,3,0,gpt-5,gpt-5 +210,ocr,3,0,gpt-5,gpt-5 +212,missing_context,6,1,gpt-5,gpt-5 +211,out_of_domain,3,0,gpt-5,gpt-5 +207,out_of_domain,6,1,gpt-5,gpt-5 +210,out_of_domain,5,0,gpt-5,gpt-5 +211,out_of_scope,4,0,gpt-5,gpt-5 +213,missing_context,6,1,gpt-5,gpt-5 +211,misspelled,3,0,gpt-5,gpt-5 +213,baseline,6,1,gpt-5,gpt-5 +213,incomplete,6,1,gpt-5,gpt-5 +211,incomplete,3,0,gpt-5,gpt-5 +212,incomplete,6,1,gpt-5,gpt-5 +212,out_of_scope,5,0,gpt-5,gpt-5 +213,ocr,5,0,gpt-5,gpt-5 +213,out_of_domain,6,1,gpt-5,gpt-5 +214,baseline,5,0,gpt-5,gpt-5 +212,ocr,6,1,gpt-5,gpt-5 +212,baseline,6,1,gpt-5,gpt-5 +213,misspelled,5,0,gpt-5,gpt-5 +212,misspelled,6,1,gpt-5,gpt-5 +212,out_of_domain,6,1,gpt-5,gpt-5 +214,missing_context,6,1,gpt-5,gpt-5 +215,misspelled,5,0,gpt-5,gpt-5 +214,out_of_scope,6,1,gpt-5,gpt-5 +214,ocr,5,0,gpt-5,gpt-5 +215,incomplete,5,0,gpt-5,gpt-5 +215,baseline,5,0,gpt-5,gpt-5 +214,incomplete,6,1,gpt-5,gpt-5 +216,missing_context,6,1,gpt-5,gpt-5 +215,ocr,3,0,gpt-5,gpt-5 +215,missing_context,6,1,gpt-5,gpt-5 +216,out_of_scope,6,1,gpt-5,gpt-5 +214,out_of_domain,6,1,gpt-5,gpt-5 +217,incomplete,6,1,gpt-5,gpt-5 +215,out_of_domain,5,0,gpt-5,gpt-5 +217,out_of_domain,6,1,gpt-5,gpt-5 +217,misspelled,6,1,gpt-5,gpt-5 +215,out_of_scope,5,0,gpt-5,gpt-5 +214,misspelled,5,0,gpt-5,gpt-5 +217,baseline,6,1,gpt-5,gpt-5 +218,missing_context,6,1,gpt-5,gpt-5 +216,ocr,6,1,gpt-5,gpt-5 +216,misspelled,6,1,gpt-5,gpt-5 +217,out_of_scope,6,1,gpt-5,gpt-5 +217,missing_context,6,1,gpt-5,gpt-5 +216,baseline,4,0,gpt-5,gpt-5 +213,out_of_scope,6,1,gpt-5,gpt-5 +217,ocr,6,1,gpt-5,gpt-5 +216,incomplete,6,1,gpt-5,gpt-5 +218,baseline,6,1,gpt-5,gpt-5 +218,misspelled,6,1,gpt-5,gpt-5 +218,incomplete,6,1,gpt-5,gpt-5 +219,baseline,5,0,gpt-5,gpt-5 +219,misspelled,5,0,gpt-5,gpt-5 +219,missing_context,6,1,gpt-5,gpt-5 +216,out_of_domain,6,1,gpt-5,gpt-5 +218,out_of_domain,6,1,gpt-5,gpt-5 +218,ocr,6,1,gpt-5,gpt-5 +219,ocr,5,0,gpt-5,gpt-5 +219,incomplete,6,1,gpt-5,gpt-5 +218,out_of_scope,6,1,gpt-5,gpt-5 +219,out_of_domain,6,1,gpt-5,gpt-5 +219,out_of_scope,5,0,gpt-5,gpt-5 +182,incomplete,6,1,gpt-5,gpt-5 +186,misspelled,6,1,gpt-5,gpt-5 diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_failsafeqa_optimized.csv b/examples/gpt-5/prompt-optimization-cookbook/results_failsafeqa_optimized.csv new file mode 100644 index 0000000000..d1437f1c65 --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_failsafeqa_optimized.csv @@ -0,0 +1,8 @@ +idx,kind,rating,compliance,answer_model,judge_model +0,missing_context,6,1,gpt-5,gpt-5 +0,out_of_domain,5,0,gpt-5,gpt-5 +0,baseline,5,0,gpt-5,gpt-5 +0,misspelled,5,0,gpt-5,gpt-5 +0,incomplete,5,0,gpt-5,gpt-5 +0,out_of_scope,6,1,gpt-5,gpt-5 +0,ocr,5,0,gpt-5,gpt-5 diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/judgement_summary.csv b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/judgement_summary.csv new file mode 100644 index 0000000000..8374eb3c76 --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/judgement_summary.csv @@ -0,0 +1,31 @@ +File,adherence_score,code_quality_score,parse_error,error +run_01.py,5,5,, +run_02.py,5,5,, +run_03.py,4,5,, +run_04.py,5,5,, +run_05.py,4,5,, +run_06.py,4,5,, +run_07.py,4,5,, +run_08.py,5,5,, +run_09.py,4,4,, +run_10.py,4,5,, +run_11.py,5,5,, +run_12.py,5,5,, +run_13.py,4,4,, +run_14.py,4,5,, +run_15.py,4,5,, +run_16.py,4,5,, +run_17.py,5,5,, +run_18.py,5,4,, +run_19.py,5,5,, +run_20.py,4,4,, +run_21.py,5,5,, +run_22.py,4,4,, +run_23.py,4,5,, +run_24.py,4,4,, +run_25.py,4,4,, +run_26.py,4,4,, +run_27.py,4,5,, +run_28.py,5,5,, +run_29.py,4,5,, +run_30.py,5,5,, diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_01.json b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_01.json new file mode 100644 index 0000000000..7af7659b17 --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_01.json @@ -0,0 +1,16 @@ +{ + "file": "run_01.py", + "raw": "{\n \"reasoning\": {\n \"task_adherence\": \"Step-by-step check against the instructions:\\n- Tokenization: The code lowercases the text (s = text.lower()) and uses a regex pattern r'[a-z0-9]+' with re.ASCII to extract tokens, treating non-matching chars as separators. This matches the tokenization specification exactly.\\n- Inputs: It reads the provided globals via globals().get('text', '') and globals().get('k', 0) without reassigning them. It copies them into _text and _k, which complies with the \\\"Do not reassign them\\\" requirement.\\n- Sorting requirement (Top-K by count desc, then token asc): It computes counts in a dict, then sets n = min(k, len(counts)). It uses heapq.nsmallest(n, counts.items(), key=lambda it: (-it[1], it[0])) which yields items sorted by (-count, token), i.e., count descending then token ascending. This matches the specified sort key.\\n- Output shape: The function returns a list of (token, count) tuples from counts.items(), and top_k is assigned to that list. Length is min(k, unique tokens) by design via n. This satisfies the output contract (list of tuples, correct length).\\n- Edge case k <= 0: Handled in two places\u2014early return in compute_top_k when k <= 0, and again after computing n. In both cases, the result is []. This fulfills the requirement. It also returns [] for empty text, which is consistent with expectations though not explicitly required.\\n- No I/O or network: The script performs no printing, I/O, or network access. It runs as-is with the provided globals.\\n- Tie-ordering: It does not use Counter.most_common and explicitly implements the specified sort order via the key function.\\n- End state: top_k is defined at module end as required. The optional printing clause is not used (which is allowed). The inclusion of __all__ = ['top_k'] is acceptable and does not violate any requirement.\\nOverall, the code cleanly satisfies all specified requirements with no violations or omissions.\",\n \"code_quality\": \"The output is code; assessment:\\n- Correctness: The counting, tokenization, and ordering logic are correct. heapq.nsmallest with key (-count, token) yields the correct Top-K ordering.\\n- Clarity/Readability: Code is reasonably clear with concise comments. Variable names are short but understandable. A return type hint for compute_top_k could improve clarity but is not essential.\\n- Efficiency: Using re.finditer for tokenization and heapq.nsmallest for top-k selection is efficient (O(U log K) for selection). Counting via a dict is standard and efficient.\\n- Structure/Maintainability: Separation into a helper function and a small conversion helper is tidy. No unnecessary complexity. Avoids reliance on unstable tie-ordering.\\n- Best practices: No I/O, no side effects beyond defining top_k. Safe handling of k conversion. Use of re.ASCII ensures correct token class semantics.\\nNo bugs or inefficiencies detected; style is solid overall.\"\n },\n \"final_judgement\": {\n \"adherence_score\": 5,\n \"code_quality_score\": 5,\n \"comments\": \"Meets all task requirements precisely and produces the correct Top-K list. Clean, efficient implementation with correct tokenization and ordering. Minor optional improvement: add a return type annotation for compute_top_k for readability.\"\n }\n}", + "parsed": { + "reasoning": { + "task_adherence": "Step-by-step check against the instructions:\n- Tokenization: The code lowercases the text (s = text.lower()) and uses a regex pattern r'[a-z0-9]+' with re.ASCII to extract tokens, treating non-matching chars as separators. This matches the tokenization specification exactly.\n- Inputs: It reads the provided globals via globals().get('text', '') and globals().get('k', 0) without reassigning them. It copies them into _text and _k, which complies with the \"Do not reassign them\" requirement.\n- Sorting requirement (Top-K by count desc, then token asc): It computes counts in a dict, then sets n = min(k, len(counts)). It uses heapq.nsmallest(n, counts.items(), key=lambda it: (-it[1], it[0])) which yields items sorted by (-count, token), i.e., count descending then token ascending. This matches the specified sort key.\n- Output shape: The function returns a list of (token, count) tuples from counts.items(), and top_k is assigned to that list. Length is min(k, unique tokens) by design via n. This satisfies the output contract (list of tuples, correct length).\n- Edge case k <= 0: Handled in two places\u2014early return in compute_top_k when k <= 0, and again after computing n. In both cases, the result is []. This fulfills the requirement. It also returns [] for empty text, which is consistent with expectations though not explicitly required.\n- No I/O or network: The script performs no printing, I/O, or network access. It runs as-is with the provided globals.\n- Tie-ordering: It does not use Counter.most_common and explicitly implements the specified sort order via the key function.\n- End state: top_k is defined at module end as required. The optional printing clause is not used (which is allowed). The inclusion of __all__ = ['top_k'] is acceptable and does not violate any requirement.\nOverall, the code cleanly satisfies all specified requirements with no violations or omissions.", + "code_quality": "The output is code; assessment:\n- Correctness: The counting, tokenization, and ordering logic are correct. heapq.nsmallest with key (-count, token) yields the correct Top-K ordering.\n- Clarity/Readability: Code is reasonably clear with concise comments. Variable names are short but understandable. A return type hint for compute_top_k could improve clarity but is not essential.\n- Efficiency: Using re.finditer for tokenization and heapq.nsmallest for top-k selection is efficient (O(U log K) for selection). Counting via a dict is standard and efficient.\n- Structure/Maintainability: Separation into a helper function and a small conversion helper is tidy. No unnecessary complexity. Avoids reliance on unstable tie-ordering.\n- Best practices: No I/O, no side effects beyond defining top_k. Safe handling of k conversion. Use of re.ASCII ensures correct token class semantics.\nNo bugs or inefficiencies detected; style is solid overall." + }, + "final_judgement": { + "adherence_score": 5, + "code_quality_score": 5, + "comments": "Meets all task requirements precisely and produces the correct Top-K list. Clean, efficient implementation with correct tokenization and ordering. Minor optional improvement: add a return type annotation for compute_top_k for readability." + } + }, + "parse_error": null +} \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_02.json b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_02.json new file mode 100644 index 0000000000..af2995d0dd --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_02.json @@ -0,0 +1,16 @@ +{ + "file": "run_02.py", + "raw": "{\n \"reasoning\": {\n \"task_adherence\": \"- Inputs and globals: The code uses the provided globals text and k only to compute top_k at the end and does not reassign them. Good.\\n- Tokenization: Uses regex r'[a-z0-9]+' with re.ASCII | re.IGNORECASE and lowercases tokens via tok = m.group(0).lower(). This matches the requirement: tokens are ASCII [a-z0-9]+ sequences; all other characters act as separators; tokens are normalized to lowercase.\\n- Counting: Iterates over all regex matches and counts frequencies in a dict. Correct.\\n- Sorting: Sorts items with key=lambda kv: (-kv[1], kv[0]) which exactly implements sort by count desc, then token asc. Correct.\\n- Top-K length: Slices to items[:min(k, len(items))], satisfying length = min(k, unique tokens).\\n- Edge case k <= 0: Early return [] if k <= 0. This ensures top_k = [] for non-positive k. Correct.\\n- Output contract: Defines top_k at the end as a list of (token, count) tuples. No extraneous printing; printing is optional per spec. Correct.\\n- Prohibitions: No input(), file I/O, or network access. Does not rely on Counter.most_common. Correct.\\n- Additional checks: The function also guards against non-str text or non-int k by returning [], which is not required but does not violate the spec.\\nOverall, the implementation follows all specified requirements precisely.\",\n \"code_quality\": \"- Clarity and readability: The code is clean and readable. Type hints are provided. Variable names are descriptive. A brief comment explains tokenization.\\n- Correctness: Logic for tokenization, counting, sorting, and slicing is correct and matches the task.\\n- Efficiency: Uses a single pass to count and a sort for Top-K. Reasonable for general cases. Local binding get = counts.get is a small micro-optimization.\\n- Maintainability: Straightforward structure with a helper function and a single assignment to top_k. Easy to test and reuse.\\n- Minor nits: Using re.IGNORECASE plus .lower() is slightly redundant; using get(tok, 0) would be a tad clearer than (get(tok) or 0). The early empty-counts check is unnecessary because sorting an empty list and slicing would already yield []. None of these affect correctness or significantly harm readability.\\nNo bugs or anti-patterns detected.\"\n },\n \"final_judgement\": {\n \"adherence_score\": 5,\n \"code_quality_score\": 5,\n \"comments\": \"Meets all task requirements precisely, including tokenization, sorting, edge cases, and output shape. Code is clear, correct, and efficient. Only very minor stylistic redundancies.\"\n }\n}", + "parsed": { + "reasoning": { + "task_adherence": "- Inputs and globals: The code uses the provided globals text and k only to compute top_k at the end and does not reassign them. Good.\n- Tokenization: Uses regex r'[a-z0-9]+' with re.ASCII | re.IGNORECASE and lowercases tokens via tok = m.group(0).lower(). This matches the requirement: tokens are ASCII [a-z0-9]+ sequences; all other characters act as separators; tokens are normalized to lowercase.\n- Counting: Iterates over all regex matches and counts frequencies in a dict. Correct.\n- Sorting: Sorts items with key=lambda kv: (-kv[1], kv[0]) which exactly implements sort by count desc, then token asc. Correct.\n- Top-K length: Slices to items[:min(k, len(items))], satisfying length = min(k, unique tokens).\n- Edge case k <= 0: Early return [] if k <= 0. This ensures top_k = [] for non-positive k. Correct.\n- Output contract: Defines top_k at the end as a list of (token, count) tuples. No extraneous printing; printing is optional per spec. Correct.\n- Prohibitions: No input(), file I/O, or network access. Does not rely on Counter.most_common. Correct.\n- Additional checks: The function also guards against non-str text or non-int k by returning [], which is not required but does not violate the spec.\nOverall, the implementation follows all specified requirements precisely.", + "code_quality": "- Clarity and readability: The code is clean and readable. Type hints are provided. Variable names are descriptive. A brief comment explains tokenization.\n- Correctness: Logic for tokenization, counting, sorting, and slicing is correct and matches the task.\n- Efficiency: Uses a single pass to count and a sort for Top-K. Reasonable for general cases. Local binding get = counts.get is a small micro-optimization.\n- Maintainability: Straightforward structure with a helper function and a single assignment to top_k. Easy to test and reuse.\n- Minor nits: Using re.IGNORECASE plus .lower() is slightly redundant; using get(tok, 0) would be a tad clearer than (get(tok) or 0). The early empty-counts check is unnecessary because sorting an empty list and slicing would already yield []. None of these affect correctness or significantly harm readability.\nNo bugs or anti-patterns detected." + }, + "final_judgement": { + "adherence_score": 5, + "code_quality_score": 5, + "comments": "Meets all task requirements precisely, including tokenization, sorting, edge cases, and output shape. Code is clear, correct, and efficient. Only very minor stylistic redundancies." + } + }, + "parse_error": null +} \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_03.json b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_03.json new file mode 100644 index 0000000000..d56980fddb --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_03.json @@ -0,0 +1,16 @@ +{ + "file": "run_03.py", + "raw": "{\n \"reasoning\": {\n \"task_adherence\": \"Step-by-step check against instructions:\\n- Tokenization: The code lowercases letters during scanning and collects only ASCII [a-z0-9] sequences, treating all other characters as separators. This matches the required tokenization semantics. It does not use a regex as suggested, but the implemented scanner is functionally equivalent.\\n- Inputs/globals: It reads the provided globals text and k without reassigning them, copying into local _text and _k. It safely handles NameError and non-int k by defaulting to 0, which keeps behavior well-defined. This respects the \\\"Do not reassign them\\\" constraint.\\n- Requirement 1 (ordering): Uses heapq.nsmallest with key = (-count, token), which yields a list ordered by count descending, then token ascending. This fulfills the exact specified sort order without relying on Counter.most_common.\\n- Requirement 2 (top_k content/length): top_k is set to a list of (token, count) tuples returned from counts.items(), with length m = min(k, number of unique tokens). Correct.\\n- Requirement 3 (edge cases): If k <= 0, _top_k_from_counts returns []. Correct.\\n- Requirement 4 (no I/O): No input(), file, or network access is used. The script runs as-is with provided globals.\\n- Output contract: top_k is defined at the end exactly as described. Printing is omitted, which is allowed since printing is optional and constrained only if used.\\n- Note on tie-ordering: The code explicitly implements the specified ordering and does not rely on Counter.\\nMinor deviation: The instruction suggests using a regex for tokenization; the solution uses a manual scanner instead. Since behavior aligns with the spec, this is a minor stylistic deviation rather than a functional issue.\",\n \"code_quality\": \"No code to write is required beyond the script itself, so assessing provided code:\\n- Correctness: The tokenization logic correctly accumulates ASCII [a-z0-9]+ tokens, lowercasing A-Z via ordinal manipulation, and flushes on separators and at end. Sorting and selection logic is correct via heapq.nsmallest with key (-count, token).\\n- Clarity/readability: Functions are small and well-named. Inline comments explain intent. The manual ASCII checks with ord() are explicit and clear.\\n- Efficiency: Single pass O(n) tokenization; selection is O(U log m) for U unique tokens and m = min(k, U), which is efficient. Using nsmallest avoids full sort when k << U.\\n- Structure/maintainability: Helper functions separate concerns. Avoids reliance on unspecified tie behavior. Minimal, clean dependencies (only heapq). Type hints could be slightly more specific (e.g., Dict[str, int]) but not critical.\\n- Stylistic considerations: Micro-optimization (binding append) is fine but not necessary. Not using regex deviates from the instruction suggestion but does not harm quality.\\nNo bugs or edge-case gaps identified.\"\n },\n \"final_judgement\": {\n \"adherence_score\": 4,\n \"code_quality_score\": 5,\n \"comments\": \"Functionally correct and robust solution that meets all requirements, including exact ordering and edge-case handling. Minor deviation from the \\\"use a regex\\\" suggestion prevents a perfect adherence score; otherwise, code quality is excellent.\"\n }\n}", + "parsed": { + "reasoning": { + "task_adherence": "Step-by-step check against instructions:\n- Tokenization: The code lowercases letters during scanning and collects only ASCII [a-z0-9] sequences, treating all other characters as separators. This matches the required tokenization semantics. It does not use a regex as suggested, but the implemented scanner is functionally equivalent.\n- Inputs/globals: It reads the provided globals text and k without reassigning them, copying into local _text and _k. It safely handles NameError and non-int k by defaulting to 0, which keeps behavior well-defined. This respects the \"Do not reassign them\" constraint.\n- Requirement 1 (ordering): Uses heapq.nsmallest with key = (-count, token), which yields a list ordered by count descending, then token ascending. This fulfills the exact specified sort order without relying on Counter.most_common.\n- Requirement 2 (top_k content/length): top_k is set to a list of (token, count) tuples returned from counts.items(), with length m = min(k, number of unique tokens). Correct.\n- Requirement 3 (edge cases): If k <= 0, _top_k_from_counts returns []. Correct.\n- Requirement 4 (no I/O): No input(), file, or network access is used. The script runs as-is with provided globals.\n- Output contract: top_k is defined at the end exactly as described. Printing is omitted, which is allowed since printing is optional and constrained only if used.\n- Note on tie-ordering: The code explicitly implements the specified ordering and does not rely on Counter.\nMinor deviation: The instruction suggests using a regex for tokenization; the solution uses a manual scanner instead. Since behavior aligns with the spec, this is a minor stylistic deviation rather than a functional issue.", + "code_quality": "No code to write is required beyond the script itself, so assessing provided code:\n- Correctness: The tokenization logic correctly accumulates ASCII [a-z0-9]+ tokens, lowercasing A-Z via ordinal manipulation, and flushes on separators and at end. Sorting and selection logic is correct via heapq.nsmallest with key (-count, token).\n- Clarity/readability: Functions are small and well-named. Inline comments explain intent. The manual ASCII checks with ord() are explicit and clear.\n- Efficiency: Single pass O(n) tokenization; selection is O(U log m) for U unique tokens and m = min(k, U), which is efficient. Using nsmallest avoids full sort when k << U.\n- Structure/maintainability: Helper functions separate concerns. Avoids reliance on unspecified tie behavior. Minimal, clean dependencies (only heapq). Type hints could be slightly more specific (e.g., Dict[str, int]) but not critical.\n- Stylistic considerations: Micro-optimization (binding append) is fine but not necessary. Not using regex deviates from the instruction suggestion but does not harm quality.\nNo bugs or edge-case gaps identified." + }, + "final_judgement": { + "adherence_score": 4, + "code_quality_score": 5, + "comments": "Functionally correct and robust solution that meets all requirements, including exact ordering and edge-case handling. Minor deviation from the \"use a regex\" suggestion prevents a perfect adherence score; otherwise, code quality is excellent." + } + }, + "parse_error": null +} \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_04.json b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_04.json new file mode 100644 index 0000000000..335266bcc3 --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_04.json @@ -0,0 +1,16 @@ +{ + "file": "run_04.py", + "raw": "{\n \"reasoning\": {\n \"task_adherence\": \"Step-by-step check against instructions:\\n- Tokenization: Uses regex [A-Za-z0-9]+ with re.finditer and lowercases each matched token via .lower(). This matches the requirement to lowercase and use ASCII [a-z0-9]+ sequences with other chars as separators.\\n- Inputs: The function compute_top_k accepts s and k_value; at the end, top_k = compute_top_k(text, k) uses the provided globals without reassigning them.\\n- Sorting/Top-K: Builds counts dict, then computes a composite key key = lambda item: (-item[1], item[0]) and uses heapq.nsmallest(n, ...) to select the n items with smallest key, which corresponds to highest counts then lexicographically smallest tokens. nsmallest returns the list sorted by the key, so the final order is correct: count desc, token asc.\\n- Length of top_k: n is set to max(0, int(k_value)), and nsmallest will return min(n, number of unique tokens) items, satisfying the required length.\\n- Edge cases: If k <= 0, n becomes 0 and the function returns []. If counts is empty, also returns []. Both match the specified behavior.\\n- No disallowed I/O: No input(), file I/O, or network access used.\\n- Output contract: Defines top_k exactly as specified; no extra prints (printing is optional and constrained, so omitting print is acceptable).\\n- Tie ordering: Does not use Counter.most_common; explicitly implements required sort key.\\nOverall, all task requirements are fully met with no deviations.\",\n \"code_quality\": \"Clarity and readability: The code is clear, with meaningful names and comments explaining key decisions. Type hints are present for function parameters.\\nCorrectness: Logic correctly tokenizes, counts, handles edge cases, and orders results per the required sort key. Returns a list of (token, count) tuples.\\nEfficiency: Uses a hash map for counting and heapq.nsmallest with a composite key for Top-K selection, giving O(U log k) behavior when k << unique tokens, which is efficient.\\nStructure and maintainability: The functionality is encapsulated in a small function; minimal globals usage; no side effects. Comments accurately describe behavior (including nsmallest ordering).\\nBest practices: Avoids reliance on unspecified tie-breaking. Uses regex appropriately. No unnecessary I/O. Minor note: int(k_value) cast is slightly defensive given k is specified as int, but harmless. Also could precompile the regex for repeated calls, but not necessary here.\\nNo bugs or stylistic issues identified that affect behavior.\"\n },\n \"final_judgement\": {\n \"adherence_score\": 5,\n \"code_quality_score\": 5,\n \"comments\": \"Excellent adherence: correct tokenization, sorting, edge-case handling, and output contract. Code is clear, efficient, and maintainable. No issues found.\"\n }\n}", + "parsed": { + "reasoning": { + "task_adherence": "Step-by-step check against instructions:\n- Tokenization: Uses regex [A-Za-z0-9]+ with re.finditer and lowercases each matched token via .lower(). This matches the requirement to lowercase and use ASCII [a-z0-9]+ sequences with other chars as separators.\n- Inputs: The function compute_top_k accepts s and k_value; at the end, top_k = compute_top_k(text, k) uses the provided globals without reassigning them.\n- Sorting/Top-K: Builds counts dict, then computes a composite key key = lambda item: (-item[1], item[0]) and uses heapq.nsmallest(n, ...) to select the n items with smallest key, which corresponds to highest counts then lexicographically smallest tokens. nsmallest returns the list sorted by the key, so the final order is correct: count desc, token asc.\n- Length of top_k: n is set to max(0, int(k_value)), and nsmallest will return min(n, number of unique tokens) items, satisfying the required length.\n- Edge cases: If k <= 0, n becomes 0 and the function returns []. If counts is empty, also returns []. Both match the specified behavior.\n- No disallowed I/O: No input(), file I/O, or network access used.\n- Output contract: Defines top_k exactly as specified; no extra prints (printing is optional and constrained, so omitting print is acceptable).\n- Tie ordering: Does not use Counter.most_common; explicitly implements required sort key.\nOverall, all task requirements are fully met with no deviations.", + "code_quality": "Clarity and readability: The code is clear, with meaningful names and comments explaining key decisions. Type hints are present for function parameters.\nCorrectness: Logic correctly tokenizes, counts, handles edge cases, and orders results per the required sort key. Returns a list of (token, count) tuples.\nEfficiency: Uses a hash map for counting and heapq.nsmallest with a composite key for Top-K selection, giving O(U log k) behavior when k << unique tokens, which is efficient.\nStructure and maintainability: The functionality is encapsulated in a small function; minimal globals usage; no side effects. Comments accurately describe behavior (including nsmallest ordering).\nBest practices: Avoids reliance on unspecified tie-breaking. Uses regex appropriately. No unnecessary I/O. Minor note: int(k_value) cast is slightly defensive given k is specified as int, but harmless. Also could precompile the regex for repeated calls, but not necessary here.\nNo bugs or stylistic issues identified that affect behavior." + }, + "final_judgement": { + "adherence_score": 5, + "code_quality_score": 5, + "comments": "Excellent adherence: correct tokenization, sorting, edge-case handling, and output contract. Code is clear, efficient, and maintainable. No issues found." + } + }, + "parse_error": null +} \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_05.json b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_05.json new file mode 100644 index 0000000000..4fff225c10 --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_05.json @@ -0,0 +1,16 @@ +{ + "file": "run_05.py", + "raw": "{\n \"reasoning\": {\n \"task_adherence\": \"- Reads and implements the core task: computes Top-K most frequent tokens from given text.\\n- Tokenization rules:\\n - Lowercasing: Achieved by manually lowercasing ASCII A-Z during tokenization. Although it doesn't lowercase the entire text up front, the outcome matches the requirement to lowercase tokens.\\n - Token definition: Correctly treats tokens as ASCII [a-z0-9]+ sequences and treats all other characters (including non-ASCII) as separators. This aligns with the specified tokenization semantics.\\n - However, the instruction explicitly says to \\\"use a regex\\\" for tokenization. The solution uses a manual scanner, not a regex. Functionally correct, but does not follow the specific method requested.\\n- Inputs and globals:\\n - Uses the provided globals `text` and `k` without reassigning them.\\n - Wraps access in try/except NameError to ensure `top_k` is defined if globals are missing; this is acceptable and does not violate the requirements.\\n- Requirements compliance:\\n 1) Sorting: Uses sorted with key (-count, token), exactly as required.\\n 2) Output structure: Produces a list of (token, count) tuples, length min(k, unique tokens) via slicing; correct.\\n 3) Edge case k <= 0: Returns [] early; correct.\\n 4) No input/file/network I/O: Satisfied; the script runs as-is.\\n- Output contract: Ensures `top_k` is defined by the end in all cases. No extraneous printing (printing is optional and not used).\\n- Tie handling: Does not rely on Counter.most_common; explicitly implements the specified sort; correct.\\n- Summary: All functional requirements are met. The only deviation is not using a regex for tokenization as explicitly instructed.\",\n \"code_quality\": \"- Clarity and readability: Well-structured with clear helper names and comments describing tokenization.\\n- Correctness: Tokenization logic correctly handles ASCII letters and digits, lowercases A-Z, and treats all else as separators. Sorting and counting are correct.\\n- Efficiency: Streaming tokenization with a small buffer; uses defaultdict for counting. Sorting once with specified key is fine. Micro-optimizations (local append binding, buf.clear) are appropriate.\\n- Maintainability: Functions are small and focused. Type hints on parameters present; return types could be added but are not critical.\\n- Best practices: Avoids reliance on Counter.most_common tie behavior as requested. No unnecessary I/O. The try/except for missing globals makes the script robust.\\n- Minor note: The instruction asked for a regex-based tokenizer; while the manual approach is efficient and clear, it diverges from the prescribed method (this affects adherence more than code quality).\"\n },\n \"final_judgement\": {\n \"adherence_score\": 4,\n \"code_quality_score\": 5,\n \"comments\": \"Functionally excellent and meets all output and sorting requirements, including edge cases. The only shortcoming is not using a regex for tokenization as explicitly requested.\"\n }\n}", + "parsed": { + "reasoning": { + "task_adherence": "- Reads and implements the core task: computes Top-K most frequent tokens from given text.\n- Tokenization rules:\n - Lowercasing: Achieved by manually lowercasing ASCII A-Z during tokenization. Although it doesn't lowercase the entire text up front, the outcome matches the requirement to lowercase tokens.\n - Token definition: Correctly treats tokens as ASCII [a-z0-9]+ sequences and treats all other characters (including non-ASCII) as separators. This aligns with the specified tokenization semantics.\n - However, the instruction explicitly says to \"use a regex\" for tokenization. The solution uses a manual scanner, not a regex. Functionally correct, but does not follow the specific method requested.\n- Inputs and globals:\n - Uses the provided globals `text` and `k` without reassigning them.\n - Wraps access in try/except NameError to ensure `top_k` is defined if globals are missing; this is acceptable and does not violate the requirements.\n- Requirements compliance:\n 1) Sorting: Uses sorted with key (-count, token), exactly as required.\n 2) Output structure: Produces a list of (token, count) tuples, length min(k, unique tokens) via slicing; correct.\n 3) Edge case k <= 0: Returns [] early; correct.\n 4) No input/file/network I/O: Satisfied; the script runs as-is.\n- Output contract: Ensures `top_k` is defined by the end in all cases. No extraneous printing (printing is optional and not used).\n- Tie handling: Does not rely on Counter.most_common; explicitly implements the specified sort; correct.\n- Summary: All functional requirements are met. The only deviation is not using a regex for tokenization as explicitly instructed.", + "code_quality": "- Clarity and readability: Well-structured with clear helper names and comments describing tokenization.\n- Correctness: Tokenization logic correctly handles ASCII letters and digits, lowercases A-Z, and treats all else as separators. Sorting and counting are correct.\n- Efficiency: Streaming tokenization with a small buffer; uses defaultdict for counting. Sorting once with specified key is fine. Micro-optimizations (local append binding, buf.clear) are appropriate.\n- Maintainability: Functions are small and focused. Type hints on parameters present; return types could be added but are not critical.\n- Best practices: Avoids reliance on Counter.most_common tie behavior as requested. No unnecessary I/O. The try/except for missing globals makes the script robust.\n- Minor note: The instruction asked for a regex-based tokenizer; while the manual approach is efficient and clear, it diverges from the prescribed method (this affects adherence more than code quality)." + }, + "final_judgement": { + "adherence_score": 4, + "code_quality_score": 5, + "comments": "Functionally excellent and meets all output and sorting requirements, including edge cases. The only shortcoming is not using a regex for tokenization as explicitly requested." + } + }, + "parse_error": null +} \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_06.json b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_06.json new file mode 100644 index 0000000000..caa155101d --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_06.json @@ -0,0 +1,16 @@ +{ + "file": "run_06.py", + "raw": "{\n \"reasoning\": {\n \"task_adherence\": \"- Tokenization requirements:\\n - Lowercasing: The implementation lowercases ASCII A-Z to a-z during tokenization, so all produced tokens are lowercase. This satisfies the effective requirement that tokens be lowercase.\\n - Token definition: It treats only ASCII [a-z0-9] as part of tokens and all other characters as separators. This matches the specified tokenization.\\n - Note: The instructions explicitly say to \\\"use a regex\\\". The solution uses a manual scanner instead of a regex. While the behavior matches the spec, this deviates from the stated method.\\n\\n- Inputs/globals:\\n - It does not reassign the provided globals text and k. It reads them into _text and _k via try/except, which is acceptable. The fallback to defaults if globals are missing goes beyond the spec (since the task states they are provided) but does not violate any requirement.\\n\\n- Requirements:\\n 1) Sorting by count desc, then token asc: Achieved via heapq.nsmallest with key = (-count, token). The returned list is in ascending key order, which corresponds to the desired order. Correct.\\n 2) Set top_k to list of (token, count) tuples of length min(k, unique tokens): compute_top_k returns exactly that, and top_k is assigned accordingly. Correct.\\n 3) Handle k <= 0 => []: Explicitly handled at the start of compute_top_k. Correct.\\n 4) No input/file/network: None used. Correct.\\n\\n- Output contract:\\n - top_k is defined at the end as specified. No extraneous printing; printing is optional, so this is fine.\\n\\n- Tie-ordering disclaimer: Does not rely on Counter.most_common; it implements the order directly. Correct.\\n\\n- Summary: Functionally adheres to all core requirements and edge cases. The only deviation is not using a regex for tokenization as explicitly requested.\",\n \"code_quality\": \"- Correctness: The tokenizer correctly extracts ASCII [a-z0-9]+ tokens with lowercase output. Counting and Top-K selection are correct, including tie-breaks.\\n- Efficiency: Single-pass tokenization (O(n)) and heapq.nsmallest for Top-K (O(m log k)) are efficient choices. Avoids full sort when k << m.\\n- Readability/Maintainability: Code is organized with clear function boundaries and type hints. The manual ord-based tokenizer is slightly less readable than a regex, but comments clarify intent. Micro-optimizations (append alias) are fine but not strictly necessary.\\n- Structure/Best practices: Clean separation of concerns, no side effects, handles edge cases gracefully, and avoids reliance on unspecified tie ordering. Typing annotations improve clarity. No I/O or network usage.\\n\\nOverall, the code quality is high; the only minor note is that a regex would be simpler and align with the instruction, but the current implementation is clear and well-documented.\"\n },\n \"final_judgement\": {\n \"adherence_score\": 4,\n \"code_quality_score\": 5,\n \"comments\": \"Functionally correct and efficient; produces the exact required Top-K with proper sorting and edge-case handling. Minor deviation: does not use a regex as explicitly requested for tokenization.\"\n }\n}", + "parsed": { + "reasoning": { + "task_adherence": "- Tokenization requirements:\n - Lowercasing: The implementation lowercases ASCII A-Z to a-z during tokenization, so all produced tokens are lowercase. This satisfies the effective requirement that tokens be lowercase.\n - Token definition: It treats only ASCII [a-z0-9] as part of tokens and all other characters as separators. This matches the specified tokenization.\n - Note: The instructions explicitly say to \"use a regex\". The solution uses a manual scanner instead of a regex. While the behavior matches the spec, this deviates from the stated method.\n\n- Inputs/globals:\n - It does not reassign the provided globals text and k. It reads them into _text and _k via try/except, which is acceptable. The fallback to defaults if globals are missing goes beyond the spec (since the task states they are provided) but does not violate any requirement.\n\n- Requirements:\n 1) Sorting by count desc, then token asc: Achieved via heapq.nsmallest with key = (-count, token). The returned list is in ascending key order, which corresponds to the desired order. Correct.\n 2) Set top_k to list of (token, count) tuples of length min(k, unique tokens): compute_top_k returns exactly that, and top_k is assigned accordingly. Correct.\n 3) Handle k <= 0 => []: Explicitly handled at the start of compute_top_k. Correct.\n 4) No input/file/network: None used. Correct.\n\n- Output contract:\n - top_k is defined at the end as specified. No extraneous printing; printing is optional, so this is fine.\n\n- Tie-ordering disclaimer: Does not rely on Counter.most_common; it implements the order directly. Correct.\n\n- Summary: Functionally adheres to all core requirements and edge cases. The only deviation is not using a regex for tokenization as explicitly requested.", + "code_quality": "- Correctness: The tokenizer correctly extracts ASCII [a-z0-9]+ tokens with lowercase output. Counting and Top-K selection are correct, including tie-breaks.\n- Efficiency: Single-pass tokenization (O(n)) and heapq.nsmallest for Top-K (O(m log k)) are efficient choices. Avoids full sort when k << m.\n- Readability/Maintainability: Code is organized with clear function boundaries and type hints. The manual ord-based tokenizer is slightly less readable than a regex, but comments clarify intent. Micro-optimizations (append alias) are fine but not strictly necessary.\n- Structure/Best practices: Clean separation of concerns, no side effects, handles edge cases gracefully, and avoids reliance on unspecified tie ordering. Typing annotations improve clarity. No I/O or network usage.\n\nOverall, the code quality is high; the only minor note is that a regex would be simpler and align with the instruction, but the current implementation is clear and well-documented." + }, + "final_judgement": { + "adherence_score": 4, + "code_quality_score": 5, + "comments": "Functionally correct and efficient; produces the exact required Top-K with proper sorting and edge-case handling. Minor deviation: does not use a regex as explicitly requested for tokenization." + } + }, + "parse_error": null +} \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_07.json b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_07.json new file mode 100644 index 0000000000..61b2b4db7f --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_07.json @@ -0,0 +1,16 @@ +{ + "file": "run_07.py", + "raw": "{\n \"reasoning\": {\n \"task_adherence\": \"Step-by-step check against instructions:\\n- Tokenization spec: Must lowercase and define tokens as ASCII [a-z0-9]+ with all others as separators, and it says to use a regex. The implementation uses a custom one-pass tokenizer that lowercases only A-Z and accepts only 'a'-'z' and '0'-'9', treating everything else as a separator. Functionally this matches the specified tokenization semantics for ASCII, including lowercasing and separator handling. However, it does not use a regex as explicitly requested. This is a minor deviation from the stated method, though the results should be equivalent.\\n- Inputs: Uses provided globals text and k without reassigning them. The final line sets top_k = compute_top_k(text, k), adhering to the constraint not to reassign text or k.\\n- Requirement 1 (sorting): Returns Top-K using heapq.nsmallest with key = (-count, token), which yields count descending, token ascending. This satisfies the exact sorting specification.\\n- Requirement 2 (top_k structure and length): top_k is set to a list of (token, count) tuples, and heapq.nsmallest(k, ...) ensures length = min(k, number of unique tokens). Correct.\\n- Requirement 3 (edge case k <= 0): compute_top_k returns [] if k <= 0, so top_k becomes []. Correct.\\n- Requirement 4 (no I/O or network): No input(), file I/O, or network usage. The script runs as-is given the globals.\\n- Output contract: top_k is defined at the end as required. No extra printing is performed, which is acceptable since printing is optional and constrained if used.\\n- Tie-order caution: Does not rely on Counter.most_common; implements explicit key as specified.\\nOverall, all functional requirements are met. The only deviation is not using a regex for tokenization, which the instructions explicitly mention.\",\n \"code_quality\": \"Assessment:\\n- Correctness: The tokenization logic correctly captures ASCII [a-z0-9]+, lowercases A-Z, and treats all other characters as separators. Counting and Top-K selection are correct with the specified tie-breaker.\\n- Efficiency: Single pass tokenization O(n), counting O(n), Top-K via heapq.nsmallest O(U log k) where U is unique token count. Efficient for large inputs.\\n- Clarity and readability: Clear function decomposition, descriptive names, inline comments, and type hints. The custom tokenizer is straightforward and well-commented.\\n- Maintainability: Structured and easy to modify. The only potential stylistic concern is not following the \\\"use a regex\\\" directive, but the implementation itself is clean.\\n- Best practices: Avoids reliance on unspecified tie-ordering; no side effects; guards edge cases (k <= 0, empty text). Minor micro-optimizations (local append, counts.get) are fine.\\nNo bugs or inefficiencies detected. The choice not to use regex impacts task adherence rather than intrinsic code quality.\"\n },\n \"final_judgement\": {\n \"adherence_score\": 4,\n \"code_quality_score\": 5,\n \"comments\": \"Functionally excellent and meets all output, sorting, and edge-case requirements. Minor deviation: tokenization did not use a regex as explicitly requested, though behavior matches the spec. Code is clean, efficient, and maintainable.\"\n }\n}", + "parsed": { + "reasoning": { + "task_adherence": "Step-by-step check against instructions:\n- Tokenization spec: Must lowercase and define tokens as ASCII [a-z0-9]+ with all others as separators, and it says to use a regex. The implementation uses a custom one-pass tokenizer that lowercases only A-Z and accepts only 'a'-'z' and '0'-'9', treating everything else as a separator. Functionally this matches the specified tokenization semantics for ASCII, including lowercasing and separator handling. However, it does not use a regex as explicitly requested. This is a minor deviation from the stated method, though the results should be equivalent.\n- Inputs: Uses provided globals text and k without reassigning them. The final line sets top_k = compute_top_k(text, k), adhering to the constraint not to reassign text or k.\n- Requirement 1 (sorting): Returns Top-K using heapq.nsmallest with key = (-count, token), which yields count descending, token ascending. This satisfies the exact sorting specification.\n- Requirement 2 (top_k structure and length): top_k is set to a list of (token, count) tuples, and heapq.nsmallest(k, ...) ensures length = min(k, number of unique tokens). Correct.\n- Requirement 3 (edge case k <= 0): compute_top_k returns [] if k <= 0, so top_k becomes []. Correct.\n- Requirement 4 (no I/O or network): No input(), file I/O, or network usage. The script runs as-is given the globals.\n- Output contract: top_k is defined at the end as required. No extra printing is performed, which is acceptable since printing is optional and constrained if used.\n- Tie-order caution: Does not rely on Counter.most_common; implements explicit key as specified.\nOverall, all functional requirements are met. The only deviation is not using a regex for tokenization, which the instructions explicitly mention.", + "code_quality": "Assessment:\n- Correctness: The tokenization logic correctly captures ASCII [a-z0-9]+, lowercases A-Z, and treats all other characters as separators. Counting and Top-K selection are correct with the specified tie-breaker.\n- Efficiency: Single pass tokenization O(n), counting O(n), Top-K via heapq.nsmallest O(U log k) where U is unique token count. Efficient for large inputs.\n- Clarity and readability: Clear function decomposition, descriptive names, inline comments, and type hints. The custom tokenizer is straightforward and well-commented.\n- Maintainability: Structured and easy to modify. The only potential stylistic concern is not following the \"use a regex\" directive, but the implementation itself is clean.\n- Best practices: Avoids reliance on unspecified tie-ordering; no side effects; guards edge cases (k <= 0, empty text). Minor micro-optimizations (local append, counts.get) are fine.\nNo bugs or inefficiencies detected. The choice not to use regex impacts task adherence rather than intrinsic code quality." + }, + "final_judgement": { + "adherence_score": 4, + "code_quality_score": 5, + "comments": "Functionally excellent and meets all output, sorting, and edge-case requirements. Minor deviation: tokenization did not use a regex as explicitly requested, though behavior matches the spec. Code is clean, efficient, and maintainable." + } + }, + "parse_error": null +} \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_08.json b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_08.json new file mode 100644 index 0000000000..9b3870f247 --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_08.json @@ -0,0 +1,16 @@ +{ + "file": "run_08.py", + "raw": "{\n \"reasoning\": {\n \"task_adherence\": \"Step-by-step check against the instructions:\\n- Tokenization: The code lowercases the input once (src.lower()) and uses a regex _token_re = re.compile(r'[a-z0-9]+') with finditer to extract tokens. This matches the spec: lowercase first, tokens are ASCII [a-z0-9]+ sequences, and all other characters act as separators.\\n- Inputs: It expects globals text (str) and k (int) and does not reassign them. It uses these to compute top_k at the end.\\n- Requirement 1 (sorting): It computes the top K using heapq.nsmallest with key=lambda kv: (-kv[1], kv[0]), which orders by count descending and token ascending, exactly as specified.\\n- Requirement 2 (top_k content and length): It returns a list of (token, count) tuples taken from counts.items(). The length is constrained with n = min(n, len(counts)), ensuring length equals min(k, unique tokens).\\n- Requirement 3 (edge cases): It handles k <= 0 by returning [] (n coerced via int conversion and explicit check if n <= 0). It also returns [] when there are no tokens (if not counts).\\n- Requirement 4 (no I/O/network): There is no input(), file I/O, or network access. The script runs as-is using the provided globals.\\n- Output contract: The global top_k is defined at the end as compute_top_k(text, k), producing the required list of (token, count) tuples. No extraneous printing occurs, which is allowed.\\n- Note on tie ordering: It does not rely on Counter.most_common; it explicitly implements the required sort ordering. \\nOverall, the code fully adheres to all specified instructions, including edge cases and ordering.\",\n \"code_quality\": \"This is not only correct but also well-written:\\n- Clarity/Readability: Clear function name, type hints, and concise comments. Precompiled regex is a nice touch.\\n- Correctness: Tokenization, counting, sorting, and edge-case handling are implemented correctly. Using heapq.nsmallest with key (-count, token) yields the exact ordering required.\\n- Efficiency: Streaming tokenization via finditer avoids building an intermediate token list. Using nsmallest is efficient for large vocabularies when k is small (O(U log K)).\\n- Maintainability/Structure: Encapsulating logic in compute_top_k and assigning top_k at the end is clean and modular.\\n- Best practices: No unnecessary I/O, avoids reliance on unspecified tie ordering. Robustly coerces k to int (though the task guarantees int, this does no harm).\\nPotential minor nitpicks: None that affect correctness. One optional micro-clarity improvement could be to specify re.ASCII (not necessary here since [a-z0-9] is already ASCII-specific), or to avoid int conversion since k is guaranteed int, but this is harmless and can improve robustness.\"\n },\n \"final_judgement\": {\n \"adherence_score\": 5,\n \"code_quality_score\": 5,\n \"comments\": \"Fully meets all requirements, including exact tokenization, ordering, edge cases, and output contract. Code is clear, efficient, and well-structured. No issues found.\"\n }\n}", + "parsed": { + "reasoning": { + "task_adherence": "Step-by-step check against the instructions:\n- Tokenization: The code lowercases the input once (src.lower()) and uses a regex _token_re = re.compile(r'[a-z0-9]+') with finditer to extract tokens. This matches the spec: lowercase first, tokens are ASCII [a-z0-9]+ sequences, and all other characters act as separators.\n- Inputs: It expects globals text (str) and k (int) and does not reassign them. It uses these to compute top_k at the end.\n- Requirement 1 (sorting): It computes the top K using heapq.nsmallest with key=lambda kv: (-kv[1], kv[0]), which orders by count descending and token ascending, exactly as specified.\n- Requirement 2 (top_k content and length): It returns a list of (token, count) tuples taken from counts.items(). The length is constrained with n = min(n, len(counts)), ensuring length equals min(k, unique tokens).\n- Requirement 3 (edge cases): It handles k <= 0 by returning [] (n coerced via int conversion and explicit check if n <= 0). It also returns [] when there are no tokens (if not counts).\n- Requirement 4 (no I/O/network): There is no input(), file I/O, or network access. The script runs as-is using the provided globals.\n- Output contract: The global top_k is defined at the end as compute_top_k(text, k), producing the required list of (token, count) tuples. No extraneous printing occurs, which is allowed.\n- Note on tie ordering: It does not rely on Counter.most_common; it explicitly implements the required sort ordering. \nOverall, the code fully adheres to all specified instructions, including edge cases and ordering.", + "code_quality": "This is not only correct but also well-written:\n- Clarity/Readability: Clear function name, type hints, and concise comments. Precompiled regex is a nice touch.\n- Correctness: Tokenization, counting, sorting, and edge-case handling are implemented correctly. Using heapq.nsmallest with key (-count, token) yields the exact ordering required.\n- Efficiency: Streaming tokenization via finditer avoids building an intermediate token list. Using nsmallest is efficient for large vocabularies when k is small (O(U log K)).\n- Maintainability/Structure: Encapsulating logic in compute_top_k and assigning top_k at the end is clean and modular.\n- Best practices: No unnecessary I/O, avoids reliance on unspecified tie ordering. Robustly coerces k to int (though the task guarantees int, this does no harm).\nPotential minor nitpicks: None that affect correctness. One optional micro-clarity improvement could be to specify re.ASCII (not necessary here since [a-z0-9] is already ASCII-specific), or to avoid int conversion since k is guaranteed int, but this is harmless and can improve robustness." + }, + "final_judgement": { + "adherence_score": 5, + "code_quality_score": 5, + "comments": "Fully meets all requirements, including exact tokenization, ordering, edge cases, and output contract. Code is clear, efficient, and well-structured. No issues found." + } + }, + "parse_error": null +} \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_09.json b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_09.json new file mode 100644 index 0000000000..ea8bc2f50d --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_09.json @@ -0,0 +1,16 @@ +{ + "file": "run_09.py", + "raw": "{\n \"reasoning\": {\n \"task_adherence\": \"- Reads task: compute Top-K most frequent tokens from globals text and k, with specified tokenization and ordering; set top_k accordingly; handle k<=0; avoid I/O; don't rely on Counter tie rules.\\n- Tokenization requirements:\\n - Lowercase the text: The code lowercases only ASCII A-Z by converting each uppercase letter via chr(o + 32) during scanning. This is equivalent to lowercasing for the specified token alphabet [a-z0-9].\\n - Tokens are ASCII [a-z0-9]+; others are separators: The scanner accepts digits (48-57), lowercase letters (97-122), and converts uppercase letters (65-90) to lowercase before appending; anything else triggers a token flush, matching the separator rule. Behavior aligns with the spec for ASCII-only tokens.\\n - \\\"Use a regex\\\": The implementation does not use a regex; instead it manually scans. While the functional outcome matches the spec, this deviates from the explicit instruction to use a regex. Minor adherence issue.\\n- Inputs: Uses globals text and k without reassigning them. It passes int(k) to the selection function but does not reassign k, which is acceptable.\\n- Requirements:\\n 1) Sort by count desc, then token asc: _select_top_k uses heapq.nsmallest with key (-count, token). Since nsmallest returns items ordered ascending by the key, this yields count descending then token ascending. Correct.\\n 2) Set top_k to list of (token, count) tuples, length = min(k, unique): _select_top_k computes n = min(k, len(counts)) and returns that many (token, count) pairs; top-level assigns top_k accordingly. Correct.\\n 3) Handle k <= 0 -> []: _select_top_k returns [] if not counts or k <= 0; thus top_k becomes []. Correct.\\n 4) No input/file/network: None used. Correct.\\n- Output contract: top_k is defined at end as list of (token, count) with correct ordering; no extra printing. Correct.\\n- Tie-ordering note: Does not rely on Counter; implements explicit ordering. Correct.\\n- Edge cases and ambiguity:\\n - Non-ASCII letters/digits are treated as separators, consistent with ASCII-only token spec.\\n - The manual lowercasing is limited to ASCII, which is appropriate given the token definition.\\n - The only notable deviation is not using a regex as requested; however, the functional behavior matches the regex-defined tokenization.\\n\",\n \"code_quality\": \"- Clarity and readability: Functions are small and well-named with helpful comments. Manual ASCII scanning with ord ranges and micro-optimizations (local variable bindings, buf list and clear) slightly reduce readability compared to a regex approach but are still understandable.\\n- Correctness: Tokenization matches the specified ASCII [a-z0-9]+ rule and lowercasing. Sorting uses a robust key (-count, token) and nsmallest, yielding the correct order. Edge cases (k <= 0, empty input) are handled.\\n- Efficiency: Single pass scan O(n) for counting; nsmallest for top-k selection is O(U log k) which is efficient for large U and small k. Avoids full sort when unnecessary.\\n- Structure and maintainability: Separation into _count_tokens and _select_top_k is good. No side effects beyond defining top_k. No reliance on undefined behavior (e.g., Counter tie-breaking). Variable names and comments are appropriate.\\n- Best practices: No I/O. Avoids reassigning globals. Uses heapq appropriately. Minor nit: micro-optimizations (binding methods to locals) trade clarity for speed; acceptable but could be simplified for readability if performance is not critical. Also, the instruction suggested using regex; while not required for correctness, adopting re would improve alignment with the spec and likely readability.\\n\"\n },\n \"final_judgement\": {\n \"adherence_score\": 4,\n \"code_quality_score\": 4,\n \"comments\": \"Functionally correct and efficient implementation that meets ordering, edge cases, and output contract. The only notable deviation is not using a regex for tokenization as specified, though behavior matches the rule. Code is clean and performant, with minor readability trade-offs due to manual ASCII scanning and micro-optimizations.\"\n }\n}", + "parsed": { + "reasoning": { + "task_adherence": "- Reads task: compute Top-K most frequent tokens from globals text and k, with specified tokenization and ordering; set top_k accordingly; handle k<=0; avoid I/O; don't rely on Counter tie rules.\n- Tokenization requirements:\n - Lowercase the text: The code lowercases only ASCII A-Z by converting each uppercase letter via chr(o + 32) during scanning. This is equivalent to lowercasing for the specified token alphabet [a-z0-9].\n - Tokens are ASCII [a-z0-9]+; others are separators: The scanner accepts digits (48-57), lowercase letters (97-122), and converts uppercase letters (65-90) to lowercase before appending; anything else triggers a token flush, matching the separator rule. Behavior aligns with the spec for ASCII-only tokens.\n - \"Use a regex\": The implementation does not use a regex; instead it manually scans. While the functional outcome matches the spec, this deviates from the explicit instruction to use a regex. Minor adherence issue.\n- Inputs: Uses globals text and k without reassigning them. It passes int(k) to the selection function but does not reassign k, which is acceptable.\n- Requirements:\n 1) Sort by count desc, then token asc: _select_top_k uses heapq.nsmallest with key (-count, token). Since nsmallest returns items ordered ascending by the key, this yields count descending then token ascending. Correct.\n 2) Set top_k to list of (token, count) tuples, length = min(k, unique): _select_top_k computes n = min(k, len(counts)) and returns that many (token, count) pairs; top-level assigns top_k accordingly. Correct.\n 3) Handle k <= 0 -> []: _select_top_k returns [] if not counts or k <= 0; thus top_k becomes []. Correct.\n 4) No input/file/network: None used. Correct.\n- Output contract: top_k is defined at end as list of (token, count) with correct ordering; no extra printing. Correct.\n- Tie-ordering note: Does not rely on Counter; implements explicit ordering. Correct.\n- Edge cases and ambiguity:\n - Non-ASCII letters/digits are treated as separators, consistent with ASCII-only token spec.\n - The manual lowercasing is limited to ASCII, which is appropriate given the token definition.\n - The only notable deviation is not using a regex as requested; however, the functional behavior matches the regex-defined tokenization.\n", + "code_quality": "- Clarity and readability: Functions are small and well-named with helpful comments. Manual ASCII scanning with ord ranges and micro-optimizations (local variable bindings, buf list and clear) slightly reduce readability compared to a regex approach but are still understandable.\n- Correctness: Tokenization matches the specified ASCII [a-z0-9]+ rule and lowercasing. Sorting uses a robust key (-count, token) and nsmallest, yielding the correct order. Edge cases (k <= 0, empty input) are handled.\n- Efficiency: Single pass scan O(n) for counting; nsmallest for top-k selection is O(U log k) which is efficient for large U and small k. Avoids full sort when unnecessary.\n- Structure and maintainability: Separation into _count_tokens and _select_top_k is good. No side effects beyond defining top_k. No reliance on undefined behavior (e.g., Counter tie-breaking). Variable names and comments are appropriate.\n- Best practices: No I/O. Avoids reassigning globals. Uses heapq appropriately. Minor nit: micro-optimizations (binding methods to locals) trade clarity for speed; acceptable but could be simplified for readability if performance is not critical. Also, the instruction suggested using regex; while not required for correctness, adopting re would improve alignment with the spec and likely readability.\n" + }, + "final_judgement": { + "adherence_score": 4, + "code_quality_score": 4, + "comments": "Functionally correct and efficient implementation that meets ordering, edge cases, and output contract. The only notable deviation is not using a regex for tokenization as specified, though behavior matches the rule. Code is clean and performant, with minor readability trade-offs due to manual ASCII scanning and micro-optimizations." + } + }, + "parse_error": null +} \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_10.json b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_10.json new file mode 100644 index 0000000000..70b74be0f6 --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_10.json @@ -0,0 +1,16 @@ +{ + "file": "run_10.py", + "raw": "{\n \"reasoning\": {\n \"task_adherence\": \"Step-by-step:\\n- Overall task: Computes Top-K most frequent tokens from the given text and assigns to top_k. Yes, via _compute_top_k and final assignment.\\n- Tokenization: Lowercasing is applied per character (c = ch.lower()). Tokens restricted to ASCII [a-z0-9]+ and others act as separators. This matches the semantics. However, the instruction explicitly says to use a regex; the implementation uses manual scanning instead. Functionally correct but does not follow the \\\"use a regex\\\" directive.\\n- Inputs: Uses globals text and k without reassigning them. Reads them into local variables _text and _k with fallbacks if missing, which does not violate the instruction and is harmless given that globals are provided.\\n- Requirement 1 (sort by count desc, then token asc): Satisfied. Uses heapq.nsmallest with key = (-count, token) over counts.items(). The returned list is in the required order.\\n- Requirement 2 (top_k is list of (token, count) tuples, length = min(k, unique)): Satisfied. counts.items() yields tuples; nsmallest(k, ...) returns at most k items; if k exceeds unique tokens, returns all, hence length is min(k, unique).\\n- Requirement 3 (k <= 0 -> []): Satisfied. Returns [] when k <= 0. Also handles non-int k by returning [], which is acceptable though not required.\\n- Requirement 4 (no input/file/network; run as-is): Satisfied. No prohibited I/O; script runs as-is.\\n- Output contract: top_k is defined at end exactly as specified. No extra printing. Does not rely on Counter.most_common tie ordering.\\n- Ambiguities/choices: Handling non-int k by returning [] is a reasonable defensive choice and does not conflict with requirements.\",\n \"code_quality\": \"This is not user-facing code generation but evaluable code is present, so assessing code quality:\\n- Correctness: Tokenization logic matches the specified [a-z0-9]+ after lowercasing; sorting and tie-breaking are correct; edge cases for k handled.\\n- Clarity/Readability: Clear helper function names, concise comments, straightforward structure. Using aliases (append) and buf.clear() is fine and readable.\\n- Efficiency: Single pass tokenization; Counter accumulation; heapq.nsmallest gives O(U log K) top-K selection which is efficient. No unnecessary overhead.\\n- Maintainability: Modularized into tokenization and computation functions; easy to test and modify.\\n- Best practices: Avoids reliance on Counter.most_common tie ordering as required. Minor deviation: does not use regex as instructed (style/requirement rather than correctness). Otherwise solid.\\n- No apparent bugs or edge-case failures discovered.\"\n },\n \"final_judgement\": {\n \"adherence_score\": 4,\n \"code_quality_score\": 5,\n \"comments\": \"Functionally correct with proper sorting, edge-case handling, and correct top_k output. The only notable miss is not using a regex for tokenization as explicitly requested; otherwise, the implementation is clean and efficient.\"\n }\n}", + "parsed": { + "reasoning": { + "task_adherence": "Step-by-step:\n- Overall task: Computes Top-K most frequent tokens from the given text and assigns to top_k. Yes, via _compute_top_k and final assignment.\n- Tokenization: Lowercasing is applied per character (c = ch.lower()). Tokens restricted to ASCII [a-z0-9]+ and others act as separators. This matches the semantics. However, the instruction explicitly says to use a regex; the implementation uses manual scanning instead. Functionally correct but does not follow the \"use a regex\" directive.\n- Inputs: Uses globals text and k without reassigning them. Reads them into local variables _text and _k with fallbacks if missing, which does not violate the instruction and is harmless given that globals are provided.\n- Requirement 1 (sort by count desc, then token asc): Satisfied. Uses heapq.nsmallest with key = (-count, token) over counts.items(). The returned list is in the required order.\n- Requirement 2 (top_k is list of (token, count) tuples, length = min(k, unique)): Satisfied. counts.items() yields tuples; nsmallest(k, ...) returns at most k items; if k exceeds unique tokens, returns all, hence length is min(k, unique).\n- Requirement 3 (k <= 0 -> []): Satisfied. Returns [] when k <= 0. Also handles non-int k by returning [], which is acceptable though not required.\n- Requirement 4 (no input/file/network; run as-is): Satisfied. No prohibited I/O; script runs as-is.\n- Output contract: top_k is defined at end exactly as specified. No extra printing. Does not rely on Counter.most_common tie ordering.\n- Ambiguities/choices: Handling non-int k by returning [] is a reasonable defensive choice and does not conflict with requirements.", + "code_quality": "This is not user-facing code generation but evaluable code is present, so assessing code quality:\n- Correctness: Tokenization logic matches the specified [a-z0-9]+ after lowercasing; sorting and tie-breaking are correct; edge cases for k handled.\n- Clarity/Readability: Clear helper function names, concise comments, straightforward structure. Using aliases (append) and buf.clear() is fine and readable.\n- Efficiency: Single pass tokenization; Counter accumulation; heapq.nsmallest gives O(U log K) top-K selection which is efficient. No unnecessary overhead.\n- Maintainability: Modularized into tokenization and computation functions; easy to test and modify.\n- Best practices: Avoids reliance on Counter.most_common tie ordering as required. Minor deviation: does not use regex as instructed (style/requirement rather than correctness). Otherwise solid.\n- No apparent bugs or edge-case failures discovered." + }, + "final_judgement": { + "adherence_score": 4, + "code_quality_score": 5, + "comments": "Functionally correct with proper sorting, edge-case handling, and correct top_k output. The only notable miss is not using a regex for tokenization as explicitly requested; otherwise, the implementation is clean and efficient." + } + }, + "parse_error": null +} \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_11.json b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_11.json new file mode 100644 index 0000000000..298ad3c19c --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_11.json @@ -0,0 +1,16 @@ +{ + "file": "run_11.py", + "raw": "{\n \"reasoning\": {\n \"task_adherence\": \"- Inputs/globals: The code reads globals text and k without reassigning them, passing them into a helper function. It does not modify the globals, satisfying the constraint.\\n- Tokenization: Uses regex r'[A-Za-z0-9]+' with re.ASCII to capture ASCII alphanumeric sequences, and lowercases each matched token (tok = m.group(0).lower()), which functionally matches \\\"Lowercase the text\\\" and the specified tokenization rule.\\n- Counting: Accumulates counts in a dict, as required.\\n- Sorting/Top-K: Uses heapq.nsmallest with key (-count, token) over counts.items(), which produces a list sorted by count descending then token ascending, matching the exact specified sort key and ensuring deterministic tie-breaking without relying on Counter.most_common.\\n- Output shape: Returns a list of (token, count) tuples (from counts.items()) and assigns it to top_k at module scope. The length is min(k, number of unique tokens) via kk = min(k, n_unique).\\n- Edge cases: If k cannot be converted to int, it treats as 0; if k <= 0, returns []. If text is empty, returns [], which matches min(k, 0). All required edge cases are handled.\\n- No prohibited operations: No input(), file I/O, or network access; optional printing is not used.\\n- Ambiguities: The instruction states \\\"Lowercase the text\\\"; the implementation lowercases tokens on-the-fly, which yields identical tokens per the regex spec and is reasonable.\\nOverall, the implementation meets all specified requirements and contracts.\",\n \"code_quality\": \"- Correctness: Logic is sound; key=(-count, token) ensures correct ordering. Returns proper list of (token, count) tuples.\\n- Efficiency: Uses heapq.nsmallest to avoid full sort when k << unique tokens; iterates regex matches without lowercasing the whole text, saving memory.\\n- Readability: Clear structure with explanatory comments. Variable names are mostly clear; kk could be more descriptive (e.g., k_eff), but this is minor.\\n- Robustness: Safely handles non-string text by coercing to str and handles non-int k by converting to int with fallback to 0.\\n- Maintainability/Style: Simple, modular via helper function; no unnecessary dependencies. Avoids reliance on unstable tie-breaking.\\nNo bugs or inefficiencies evident; minor naming nit only.\"\n },\n \"final_judgement\": {\n \"adherence_score\": 5,\n \"code_quality_score\": 5,\n \"comments\": \"Meets all task requirements precisely, including tokenization, sorting, edge cases, and output contract. Clean, efficient implementation with clear comments.\"\n }\n}", + "parsed": { + "reasoning": { + "task_adherence": "- Inputs/globals: The code reads globals text and k without reassigning them, passing them into a helper function. It does not modify the globals, satisfying the constraint.\n- Tokenization: Uses regex r'[A-Za-z0-9]+' with re.ASCII to capture ASCII alphanumeric sequences, and lowercases each matched token (tok = m.group(0).lower()), which functionally matches \"Lowercase the text\" and the specified tokenization rule.\n- Counting: Accumulates counts in a dict, as required.\n- Sorting/Top-K: Uses heapq.nsmallest with key (-count, token) over counts.items(), which produces a list sorted by count descending then token ascending, matching the exact specified sort key and ensuring deterministic tie-breaking without relying on Counter.most_common.\n- Output shape: Returns a list of (token, count) tuples (from counts.items()) and assigns it to top_k at module scope. The length is min(k, number of unique tokens) via kk = min(k, n_unique).\n- Edge cases: If k cannot be converted to int, it treats as 0; if k <= 0, returns []. If text is empty, returns [], which matches min(k, 0). All required edge cases are handled.\n- No prohibited operations: No input(), file I/O, or network access; optional printing is not used.\n- Ambiguities: The instruction states \"Lowercase the text\"; the implementation lowercases tokens on-the-fly, which yields identical tokens per the regex spec and is reasonable.\nOverall, the implementation meets all specified requirements and contracts.", + "code_quality": "- Correctness: Logic is sound; key=(-count, token) ensures correct ordering. Returns proper list of (token, count) tuples.\n- Efficiency: Uses heapq.nsmallest to avoid full sort when k << unique tokens; iterates regex matches without lowercasing the whole text, saving memory.\n- Readability: Clear structure with explanatory comments. Variable names are mostly clear; kk could be more descriptive (e.g., k_eff), but this is minor.\n- Robustness: Safely handles non-string text by coercing to str and handles non-int k by converting to int with fallback to 0.\n- Maintainability/Style: Simple, modular via helper function; no unnecessary dependencies. Avoids reliance on unstable tie-breaking.\nNo bugs or inefficiencies evident; minor naming nit only." + }, + "final_judgement": { + "adherence_score": 5, + "code_quality_score": 5, + "comments": "Meets all task requirements precisely, including tokenization, sorting, edge cases, and output contract. Clean, efficient implementation with clear comments." + } + }, + "parse_error": null +} \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_12.json b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_12.json new file mode 100644 index 0000000000..7724e10c70 --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_12.json @@ -0,0 +1,16 @@ +{ + "file": "run_12.py", + "raw": "{\n \"reasoning\": {\n \"task_adherence\": \"- Tokenization: Uses regex [A-Za-z0-9]+ with re.ASCII and lowercases each match, which matches the spec of ASCII [a-z0-9]+ tokens with other chars as separators. Lowercasing is correctly applied post-match.\\n- Sorting: Constructs a key function key = lambda it: (-it[1], it[0]) and uses it for ordering, satisfying the requirement to sort by count descending then token ascending. It avoids Counter.most_common as requested.\\n- Top-K selection and length: Computes t = max(0, min(int(k), len(items))) and returns either nsmallest(t, items, key=key) or sorted(items, key=key), ensuring the result length is min(k, number of unique tokens). For t == 0 or no tokens, returns []. This meets the length contract and edge case of k <= 0.\\n- Edge cases: If no tokens (items empty) \u2192 [], correct. If k <= 0 \u2192 [], correct. If k > unique tokens \u2192 returns all sorted items, correct.\\n- Inputs handling: Does not reassign the provided globals text or k. Wraps the call in a try/except NameError to set top_k = [] if globals are missing; while unnecessary given the spec, it does not violate any requirement and still ensures top_k is defined.\\n- Output contract: Defines top_k at the end as a list of (token, count) tuples. No extra printing, which is allowed (printing is optional and constrained if used).\\n- No disallowed operations: No input(), file I/O, or network access present.\\n- Minor note: Using nsmallest ensures both correct Top-K selection and returns them in sorted order by the provided key, so the output order is correct.\\nOverall, the code satisfies all specified requirements.\",\n \"code_quality\": \"- Correctness: Implements counting, tokenization, sorting, and Top-K selection correctly. Does not rely on Counter.most_common tie ordering.\\n- Efficiency: Uses heapq.nsmallest for the Top-K path, which is efficient when k << number of unique tokens. Precompiles the regex. Overall time/space usage is reasonable.\\n- Readability/Structure: Clear function structure with type hints. Variable names are mostly clear; 't' could be more descriptive (e.g., n or k_eff), but this is minor. Inline comment summarizes the tokenization rule.\\n- Maintainability: Simple, self-contained, and adheres to best practices. No unnecessary complexity.\\n- Error handling: The try/except NameError around the call is a gentle safeguard; it doesn\u2019t mask other errors and keeps behavior predictable.\\nNo bugs or significant stylistic issues identified.\"\n },\n \"final_judgement\": {\n \"adherence_score\": 5,\n \"code_quality_score\": 5,\n \"comments\": \"Meets all task requirements precisely, including tokenization, sorting, edge cases, and output contract. Code is clean, efficient, and readable. Minor nit: rename variable 't' for clarity if desired.\"\n }\n}", + "parsed": { + "reasoning": { + "task_adherence": "- Tokenization: Uses regex [A-Za-z0-9]+ with re.ASCII and lowercases each match, which matches the spec of ASCII [a-z0-9]+ tokens with other chars as separators. Lowercasing is correctly applied post-match.\n- Sorting: Constructs a key function key = lambda it: (-it[1], it[0]) and uses it for ordering, satisfying the requirement to sort by count descending then token ascending. It avoids Counter.most_common as requested.\n- Top-K selection and length: Computes t = max(0, min(int(k), len(items))) and returns either nsmallest(t, items, key=key) or sorted(items, key=key), ensuring the result length is min(k, number of unique tokens). For t == 0 or no tokens, returns []. This meets the length contract and edge case of k <= 0.\n- Edge cases: If no tokens (items empty) \u2192 [], correct. If k <= 0 \u2192 [], correct. If k > unique tokens \u2192 returns all sorted items, correct.\n- Inputs handling: Does not reassign the provided globals text or k. Wraps the call in a try/except NameError to set top_k = [] if globals are missing; while unnecessary given the spec, it does not violate any requirement and still ensures top_k is defined.\n- Output contract: Defines top_k at the end as a list of (token, count) tuples. No extra printing, which is allowed (printing is optional and constrained if used).\n- No disallowed operations: No input(), file I/O, or network access present.\n- Minor note: Using nsmallest ensures both correct Top-K selection and returns them in sorted order by the provided key, so the output order is correct.\nOverall, the code satisfies all specified requirements.", + "code_quality": "- Correctness: Implements counting, tokenization, sorting, and Top-K selection correctly. Does not rely on Counter.most_common tie ordering.\n- Efficiency: Uses heapq.nsmallest for the Top-K path, which is efficient when k << number of unique tokens. Precompiles the regex. Overall time/space usage is reasonable.\n- Readability/Structure: Clear function structure with type hints. Variable names are mostly clear; 't' could be more descriptive (e.g., n or k_eff), but this is minor. Inline comment summarizes the tokenization rule.\n- Maintainability: Simple, self-contained, and adheres to best practices. No unnecessary complexity.\n- Error handling: The try/except NameError around the call is a gentle safeguard; it doesn\u2019t mask other errors and keeps behavior predictable.\nNo bugs or significant stylistic issues identified." + }, + "final_judgement": { + "adherence_score": 5, + "code_quality_score": 5, + "comments": "Meets all task requirements precisely, including tokenization, sorting, edge cases, and output contract. Code is clean, efficient, and readable. Minor nit: rename variable 't' for clarity if desired." + } + }, + "parse_error": null +} \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_13.json b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_13.json new file mode 100644 index 0000000000..11925ee206 --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_13.json @@ -0,0 +1,16 @@ +{ + "file": "run_13.py", + "raw": "{\n \"reasoning\": {\n \"task_adherence\": \"Step-by-step check against instructions:\\n- Tokenization rules: The code tokenizes ASCII [a-z0-9]+ sequences, lowercasing letters and treating all other characters as separators via a manual ASCII scan. This behavior matches the specified tokenization semantics. However, the instruction explicitly says \\\"use a regex\\\". The implementation does not use a regex; while functionally equivalent, this deviates from the stated method.\\n- Lowercasing: Uppercase ASCII letters are converted to lowercase during scanning. This satisfies the lowercase requirement for tokens within the ASCII range.\\n- Inputs (globals text, k; do not reassign): The code references text and k via compute_top_k(text, k) and does not reassign these globals. Inside the function, it casts the local k to int, which does not modify the global k. Compliant.\\n- Requirement 1 (sort by count desc, token asc): Achieved via heapq.nsmallest with key = (-count, token), which returns results sorted by that key. This meets the ordering requirement and does not rely on Counter.most_common.\\n- Requirement 2 (top_k list of (token, count) tuples, length = min(k, unique tokens)): The function computes counts, computes n = min(k, len(counts)), and returns a list of (token, count) tuples of length n. Compliant.\\n- Requirement 3 (k <= 0 -> []): If k <= 0 or counts empty, returns []. Compliant.\\n- Requirement 4 (no input/file/network; script runs as-is): No I/O is used. The code guards top_k assignment in a try/except NameError to ensure top_k is defined if globals are missing; with provided globals, it sets top_k accordingly. Compliant.\\n- Output contract (top_k defined as described; optional print only top_k): top_k is defined as required; no printing is performed. Compliant.\\n\\nSummary: All functional requirements are met, but the explicit \\\"use a regex\\\" directive for tokenization is not followed.\",\n \"code_quality\": \"Code quality assessment:\\n- Correctness: Tokenization, counting, and sorting are correctly implemented for the specified ASCII token definition. Tie-breaking and k handling are correct.\\n- Clarity/Readability: The tokenizer uses ord-based character range checks and a micro-optimized buffer (append alias). This is efficient but less readable than a straightforward regex approach and typical Python style. Comments help, but readability could be improved by simpler constructs.\\n- Efficiency: Single-pass tokenization is O(n). Top-K extraction via heapq.nsmallest is efficient, especially when k << number of unique tokens. For k close to the number of unique tokens, performance remains acceptable.\\n- Structure/Maintainability: Separation into _count_tokens and compute_top_k is clean. The NameError guard ensures top_k is always defined but is arguably unnecessary given the stated inputs; still harmless.\\n- Best practices: Avoiding unnecessary micro-optimizations (like caching append) could improve readability. Using regex would align with the instruction and typical Python practices, but the current approach is still solid.\\n\\nNo bugs or correctness issues identified; primary nit is readability and deviation from the requested regex approach.\"\n },\n \"final_judgement\": {\n \"adherence_score\": 4,\n \"code_quality_score\": 4,\n \"comments\": \"Functionally excellent and meets sorting and output requirements, but it does not follow the explicit 'use a regex' instruction for tokenization. Minor readability concerns due to micro-optimizations and low-level ASCII handling.\"\n }\n}", + "parsed": { + "reasoning": { + "task_adherence": "Step-by-step check against instructions:\n- Tokenization rules: The code tokenizes ASCII [a-z0-9]+ sequences, lowercasing letters and treating all other characters as separators via a manual ASCII scan. This behavior matches the specified tokenization semantics. However, the instruction explicitly says \"use a regex\". The implementation does not use a regex; while functionally equivalent, this deviates from the stated method.\n- Lowercasing: Uppercase ASCII letters are converted to lowercase during scanning. This satisfies the lowercase requirement for tokens within the ASCII range.\n- Inputs (globals text, k; do not reassign): The code references text and k via compute_top_k(text, k) and does not reassign these globals. Inside the function, it casts the local k to int, which does not modify the global k. Compliant.\n- Requirement 1 (sort by count desc, token asc): Achieved via heapq.nsmallest with key = (-count, token), which returns results sorted by that key. This meets the ordering requirement and does not rely on Counter.most_common.\n- Requirement 2 (top_k list of (token, count) tuples, length = min(k, unique tokens)): The function computes counts, computes n = min(k, len(counts)), and returns a list of (token, count) tuples of length n. Compliant.\n- Requirement 3 (k <= 0 -> []): If k <= 0 or counts empty, returns []. Compliant.\n- Requirement 4 (no input/file/network; script runs as-is): No I/O is used. The code guards top_k assignment in a try/except NameError to ensure top_k is defined if globals are missing; with provided globals, it sets top_k accordingly. Compliant.\n- Output contract (top_k defined as described; optional print only top_k): top_k is defined as required; no printing is performed. Compliant.\n\nSummary: All functional requirements are met, but the explicit \"use a regex\" directive for tokenization is not followed.", + "code_quality": "Code quality assessment:\n- Correctness: Tokenization, counting, and sorting are correctly implemented for the specified ASCII token definition. Tie-breaking and k handling are correct.\n- Clarity/Readability: The tokenizer uses ord-based character range checks and a micro-optimized buffer (append alias). This is efficient but less readable than a straightforward regex approach and typical Python style. Comments help, but readability could be improved by simpler constructs.\n- Efficiency: Single-pass tokenization is O(n). Top-K extraction via heapq.nsmallest is efficient, especially when k << number of unique tokens. For k close to the number of unique tokens, performance remains acceptable.\n- Structure/Maintainability: Separation into _count_tokens and compute_top_k is clean. The NameError guard ensures top_k is always defined but is arguably unnecessary given the stated inputs; still harmless.\n- Best practices: Avoiding unnecessary micro-optimizations (like caching append) could improve readability. Using regex would align with the instruction and typical Python practices, but the current approach is still solid.\n\nNo bugs or correctness issues identified; primary nit is readability and deviation from the requested regex approach." + }, + "final_judgement": { + "adherence_score": 4, + "code_quality_score": 4, + "comments": "Functionally excellent and meets sorting and output requirements, but it does not follow the explicit 'use a regex' instruction for tokenization. Minor readability concerns due to micro-optimizations and low-level ASCII handling." + } + }, + "parse_error": null +} \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_14.json b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_14.json new file mode 100644 index 0000000000..7add319969 --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_14.json @@ -0,0 +1,16 @@ +{ + "file": "run_14.py", + "raw": "{\n \"reasoning\": {\n \"task_adherence\": \"Step-by-step adherence check:\\n- Inputs/globals: The code reads from globals `text` and `k` and does not reassign them. It wraps the access in a try/except NameError and sets `top_k = []` if globals are missing. With provided globals (as per task), it uses them directly. This adheres to the input constraints.\\n- Tokenization: The tokenizer `_iter_ascii_tokens` lowercases ASCII A-Z by bitwise OR 32 and accepts only ASCII letters/digits [a-z0-9], treating all other characters (including non-ASCII) as separators. This matches the specified token definition and lowercasing behavior. The instruction suggests using a regex, but the implemented manual tokenizer produces equivalent behavior. This is a minor deviation from the suggested implementation style but not from the functional spec.\\n- Sorting: Uses `heapq.nsmallest(kk, counts.items(), key=lambda it: (-it[1], it[0]))`, which effectively returns items sorted by count descending (via negative count) and token ascending, matching requirement (1). Since `nsmallest` returns a sorted list by the key, the resulting order satisfies the contract.\\n- Top-K and length: It computes `kk = min(int(k), len(counts))` and returns exactly `kk` items, fulfilling requirement (2).\\n- Edge cases: If `k` cannot be cast to int or `k <= 0`, it returns `[]`, satisfying requirement (3). If the text yields no tokens, it also returns `[]`, which is consistent with `min(k, 0) = 0`.\\n- No I/O: There is no input(), file I/O, or network access. Satisfies requirement (4).\\n- Output contract: At the end, `top_k` is defined as a list of `(token, count)` tuples. No extraneous printing. Meets the contract.\\n- Tie-ordering and Counter: Does not rely on Counter.most_common; uses explicit key ordering as required.\\nAmbiguity consideration: The parenthetical \\\"use a regex\\\" could be read as a strict requirement or a suggestion. The code does not use a regex but achieves the exact specified tokenization, which is a reasonable and correct choice; thus, at most a minor stylistic deviation.\",\n \"code_quality\": \"Code quality assessment:\\n- Correctness: Tokenization correctly handles ASCII rules, lowercases A-Z, treats all other chars as separators, and flushes buffers at boundaries and at end. Counting and Top-K selection are correct, and sorting by (-count, token) is implemented via `heapq.nsmallest` with an appropriate key.\\n- Clarity/Readability: Functions are small, well-named, and commented. The use of `ord` and bitwise OR (o | 32) is efficient but slightly less readable than `ch.lower()` or a regex; comments mitigate this. Overall readable.\\n- Efficiency: Single pass tokenization and counting O(n). Selection via `heapq.nsmallest` is O(n log k) and returns sorted output, which is efficient for large n and small k. For k near n, complexity is similar to sorting, which is acceptable.\\n- Structure/Maintainability: Helpers are modular. Minimal global interaction. No reliance on unspecified tie-breaking. Edge cases handled cleanly.\\n- Best practices: Avoids unnecessary I/O. Does not mutate provided globals. Uses local variable caching (`get = counts.get`) for micro-optimization. The fallback `try/except NameError` to define `top_k` is harmless and ensures `top_k` is always defined.\\nNo bugs or inefficiencies identified; only a minor readability note regarding bitwise lowercase and the choice not to use regex.\"\n },\n \"final_judgement\": {\n \"adherence_score\": 4,\n \"code_quality_score\": 5,\n \"comments\": \"Functionally excellent and meets all requirements, including sorting, edge cases, and output format. Minor deviation: does not use a regex for tokenization as suggested, though behavior matches the spec exactly. Code is clean, efficient, and maintainable.\"\n }\n}", + "parsed": { + "reasoning": { + "task_adherence": "Step-by-step adherence check:\n- Inputs/globals: The code reads from globals `text` and `k` and does not reassign them. It wraps the access in a try/except NameError and sets `top_k = []` if globals are missing. With provided globals (as per task), it uses them directly. This adheres to the input constraints.\n- Tokenization: The tokenizer `_iter_ascii_tokens` lowercases ASCII A-Z by bitwise OR 32 and accepts only ASCII letters/digits [a-z0-9], treating all other characters (including non-ASCII) as separators. This matches the specified token definition and lowercasing behavior. The instruction suggests using a regex, but the implemented manual tokenizer produces equivalent behavior. This is a minor deviation from the suggested implementation style but not from the functional spec.\n- Sorting: Uses `heapq.nsmallest(kk, counts.items(), key=lambda it: (-it[1], it[0]))`, which effectively returns items sorted by count descending (via negative count) and token ascending, matching requirement (1). Since `nsmallest` returns a sorted list by the key, the resulting order satisfies the contract.\n- Top-K and length: It computes `kk = min(int(k), len(counts))` and returns exactly `kk` items, fulfilling requirement (2).\n- Edge cases: If `k` cannot be cast to int or `k <= 0`, it returns `[]`, satisfying requirement (3). If the text yields no tokens, it also returns `[]`, which is consistent with `min(k, 0) = 0`.\n- No I/O: There is no input(), file I/O, or network access. Satisfies requirement (4).\n- Output contract: At the end, `top_k` is defined as a list of `(token, count)` tuples. No extraneous printing. Meets the contract.\n- Tie-ordering and Counter: Does not rely on Counter.most_common; uses explicit key ordering as required.\nAmbiguity consideration: The parenthetical \"use a regex\" could be read as a strict requirement or a suggestion. The code does not use a regex but achieves the exact specified tokenization, which is a reasonable and correct choice; thus, at most a minor stylistic deviation.", + "code_quality": "Code quality assessment:\n- Correctness: Tokenization correctly handles ASCII rules, lowercases A-Z, treats all other chars as separators, and flushes buffers at boundaries and at end. Counting and Top-K selection are correct, and sorting by (-count, token) is implemented via `heapq.nsmallest` with an appropriate key.\n- Clarity/Readability: Functions are small, well-named, and commented. The use of `ord` and bitwise OR (o | 32) is efficient but slightly less readable than `ch.lower()` or a regex; comments mitigate this. Overall readable.\n- Efficiency: Single pass tokenization and counting O(n). Selection via `heapq.nsmallest` is O(n log k) and returns sorted output, which is efficient for large n and small k. For k near n, complexity is similar to sorting, which is acceptable.\n- Structure/Maintainability: Helpers are modular. Minimal global interaction. No reliance on unspecified tie-breaking. Edge cases handled cleanly.\n- Best practices: Avoids unnecessary I/O. Does not mutate provided globals. Uses local variable caching (`get = counts.get`) for micro-optimization. The fallback `try/except NameError` to define `top_k` is harmless and ensures `top_k` is always defined.\nNo bugs or inefficiencies identified; only a minor readability note regarding bitwise lowercase and the choice not to use regex." + }, + "final_judgement": { + "adherence_score": 4, + "code_quality_score": 5, + "comments": "Functionally excellent and meets all requirements, including sorting, edge cases, and output format. Minor deviation: does not use a regex for tokenization as suggested, though behavior matches the spec exactly. Code is clean, efficient, and maintainable." + } + }, + "parse_error": null +} \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_15.json b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_15.json new file mode 100644 index 0000000000..40137aeab1 --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_15.json @@ -0,0 +1,16 @@ +{ + "file": "run_15.py", + "raw": "{\n \"reasoning\": {\n \"task_adherence\": \"Step-by-step assessment against the task:\\n- Tokenization requirements:\\n - Lowercasing: Achieved via on-the-fly conversion of 'A'-'Z' to lowercase when building tokens. Functionally equivalent to lowercasing the text first.\\n - ASCII [a-z0-9]+ tokens; others are separators: Implemented by scanning characters with ord ranges for digits and letters, treating everything else as a separator. This matches the specified token set and separator behavior.\\n - Use a regex: Not followed. The implementation uses a manual streaming tokenizer instead of a regex, which deviates from the explicit instruction.\\n- Inputs: Uses provided globals 'text' and 'k' without reassigning them. Correct.\\n- Requirement 1 (sort by count desc, then token asc): Implemented via sorted(counts.items(), key=lambda it: (-it[1], it[0])). Correct.\\n- Requirement 2 (top_k is list of (token, count) tuples, length = min(k, unique)): The function computes counts, sorts, and slices to k if needed. Returns [] when no tokens. The final 'top_k' is assigned the returned list. Correct.\\n- Requirement 3 (k <= 0 -> top_k = []): Handled at the start of _compute_top_k; returns [], so top_k becomes []. Correct.\\n- Requirement 4 (no I/O or network; runs as-is): No I/O or network usage. Relies only on provided globals. Correct.\\n- Output contract: Ends with 'top_k' defined exactly as specified; no extra printing. Correct.\\n- Note (do not rely on Counter.most_common tie ordering): Not using Counter at all; uses explicit sorting key. Correct.\\nOverall, all functional requirements are met except the explicit \\\"use a regex\\\" directive for tokenization.\",\n \"code_quality\": \"The output is code; assessment follows:\\n- Correctness: Tokenization logic correctly yields lowercase ASCII alphanumeric tokens, treating other chars as separators. Counting and sorting logic match the spec, including tie-breaking. Edge cases (k <= 0, no tokens) handled properly.\\n- Clarity/Readability: Code is reasonably clear with explanatory comments. Variable names are meaningful. Minor nit: _iter_ascii_tokens lacks a return type hint (Iterator[str]). The ord-based branching is a bit low-level versus a regex but still understandable with comments.\\n- Efficiency: Single-pass tokenization with buffered yields; dictionary counting; O(U log U) sort where U is number of unique tokens. Local variable bindings (append, get) are micro-optimizations and fine.\\n- Maintainability/Structure: Helper functions are well-scoped; no side effects beyond final assignment. Type hints used for top_k and return of _compute_top_k.\\n- Best practices: Avoids reliance on Counter.most_common tie-order. No unnecessary I/O. The only deviation from the spec is not using a regex for tokenization; from a code-quality perspective, the manual tokenizer is acceptable and efficient.\\nNo bugs or inefficiencies detected that would affect correctness or performance in typical use.\"\n },\n \"final_judgement\": {\n \"adherence_score\": 4,\n \"code_quality_score\": 5,\n \"comments\": \"Functionally excellent and meets all sorting, edge-case, and output requirements. The only miss is not using a regex for tokenization as explicitly requested. Otherwise, clean, efficient, and correct.\"\n }\n}", + "parsed": { + "reasoning": { + "task_adherence": "Step-by-step assessment against the task:\n- Tokenization requirements:\n - Lowercasing: Achieved via on-the-fly conversion of 'A'-'Z' to lowercase when building tokens. Functionally equivalent to lowercasing the text first.\n - ASCII [a-z0-9]+ tokens; others are separators: Implemented by scanning characters with ord ranges for digits and letters, treating everything else as a separator. This matches the specified token set and separator behavior.\n - Use a regex: Not followed. The implementation uses a manual streaming tokenizer instead of a regex, which deviates from the explicit instruction.\n- Inputs: Uses provided globals 'text' and 'k' without reassigning them. Correct.\n- Requirement 1 (sort by count desc, then token asc): Implemented via sorted(counts.items(), key=lambda it: (-it[1], it[0])). Correct.\n- Requirement 2 (top_k is list of (token, count) tuples, length = min(k, unique)): The function computes counts, sorts, and slices to k if needed. Returns [] when no tokens. The final 'top_k' is assigned the returned list. Correct.\n- Requirement 3 (k <= 0 -> top_k = []): Handled at the start of _compute_top_k; returns [], so top_k becomes []. Correct.\n- Requirement 4 (no I/O or network; runs as-is): No I/O or network usage. Relies only on provided globals. Correct.\n- Output contract: Ends with 'top_k' defined exactly as specified; no extra printing. Correct.\n- Note (do not rely on Counter.most_common tie ordering): Not using Counter at all; uses explicit sorting key. Correct.\nOverall, all functional requirements are met except the explicit \"use a regex\" directive for tokenization.", + "code_quality": "The output is code; assessment follows:\n- Correctness: Tokenization logic correctly yields lowercase ASCII alphanumeric tokens, treating other chars as separators. Counting and sorting logic match the spec, including tie-breaking. Edge cases (k <= 0, no tokens) handled properly.\n- Clarity/Readability: Code is reasonably clear with explanatory comments. Variable names are meaningful. Minor nit: _iter_ascii_tokens lacks a return type hint (Iterator[str]). The ord-based branching is a bit low-level versus a regex but still understandable with comments.\n- Efficiency: Single-pass tokenization with buffered yields; dictionary counting; O(U log U) sort where U is number of unique tokens. Local variable bindings (append, get) are micro-optimizations and fine.\n- Maintainability/Structure: Helper functions are well-scoped; no side effects beyond final assignment. Type hints used for top_k and return of _compute_top_k.\n- Best practices: Avoids reliance on Counter.most_common tie-order. No unnecessary I/O. The only deviation from the spec is not using a regex for tokenization; from a code-quality perspective, the manual tokenizer is acceptable and efficient.\nNo bugs or inefficiencies detected that would affect correctness or performance in typical use." + }, + "final_judgement": { + "adherence_score": 4, + "code_quality_score": 5, + "comments": "Functionally excellent and meets all sorting, edge-case, and output requirements. The only miss is not using a regex for tokenization as explicitly requested. Otherwise, clean, efficient, and correct." + } + }, + "parse_error": null +} \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_16.json b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_16.json new file mode 100644 index 0000000000..48734ddeaf --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_16.json @@ -0,0 +1,16 @@ +{ + "file": "run_16.py", + "raw": "{\n \"reasoning\": {\n \"task_adherence\": \"Step-by-step adherence assessment:\\n- Tokenization rules: The code lowercases characters and treats ASCII letters a\u2013z and digits 0\u20139 as token characters; everything else is a separator. This matches the functional definition of tokens. However, the instruction explicitly says to \\\"use a regex\\\" for tokenization. The implementation uses a manual state machine instead of a regex, so this part of the instruction is not followed, even though the behavior appears correct.\\n- Inputs: It reads the provided globals `text` and `k` and does not reassign them. It accesses them via `globals().get`, which still adheres to the constraint of not reassigning.\\n- Sorting requirement: It computes counts, then selects Top-K using `heapq.nsmallest` with key `(-count, token)`. This yields items in order of count descending, then token ascending, satisfying the specified sort key.\\n- Output shape and length: The result is a list of `(token, count)` tuples with length `min(k, number of unique tokens)` by applying `kk = min(kk, len(counts))`. If there are fewer unique tokens than `k`, it limits accordingly.\\n- Edge cases: If `k` is non-integer, it coerces to int inside a try/except; if the coercion fails or `kk <= 0`, it returns `[]`, satisfying the requirement that `k <= 0` yields an empty list. If there are no tokens, it also returns `[]`, which aligns with `min(k, 0) = 0`.\\n- No disallowed operations: It does not use input(), file I/O, or network access. It does not print anything, which is allowed as printing is optional and restricted to only printing `top_k` if done.\\n- Output contract: At the end, `top_k` is defined exactly as a list of `(token, count)` tuples, ordered correctly.\\n\\nSummary: All functional requirements are met, but the specific instruction to use a regex for tokenization is not followed.\",\n \"code_quality\": \"Code quality assessment:\\n- Correctness: The tokenization logic correctly forms tokens from ASCII letters and digits after lowercasing. Counting and Top-K selection are correct and stable under the specified tie-breaker. No reliance on Counter.tie-ordering.\\n- Efficiency: Single pass counting is O(n). Using `heapq.nsmallest` provides O(m log k) selection, efficient for large m with small k. It also returns results sorted by the key, meeting order requirements.\\n- Readability and structure: Clear helper functions with type hints, descriptive comments, and straightforward logic. The use of `_iter_tokens` as a generator is clean. Variable names are clear. Minimal, focused code.\\n- Maintainability and best practices: Sensible separation of concerns, no side effects, and proper handling of edge cases. Using `globals().get` is slightly unconventional but harmless in this context. Lack of regex conflicts with the explicit instruction but does not harm code quality per se.\\n\\nNo bugs or inefficiencies identified beyond not using regex as specified by the task.\"\n },\n \"final_judgement\": {\n \"adherence_score\": 4,\n \"code_quality_score\": 5,\n \"comments\": \"Functionally correct, efficient, and clean implementation that meets all requirements except the explicit instruction to use a regex for tokenization. Consider switching tokenization to a regex to fully comply with the task specification.\"\n }\n}", + "parsed": { + "reasoning": { + "task_adherence": "Step-by-step adherence assessment:\n- Tokenization rules: The code lowercases characters and treats ASCII letters a\u2013z and digits 0\u20139 as token characters; everything else is a separator. This matches the functional definition of tokens. However, the instruction explicitly says to \"use a regex\" for tokenization. The implementation uses a manual state machine instead of a regex, so this part of the instruction is not followed, even though the behavior appears correct.\n- Inputs: It reads the provided globals `text` and `k` and does not reassign them. It accesses them via `globals().get`, which still adheres to the constraint of not reassigning.\n- Sorting requirement: It computes counts, then selects Top-K using `heapq.nsmallest` with key `(-count, token)`. This yields items in order of count descending, then token ascending, satisfying the specified sort key.\n- Output shape and length: The result is a list of `(token, count)` tuples with length `min(k, number of unique tokens)` by applying `kk = min(kk, len(counts))`. If there are fewer unique tokens than `k`, it limits accordingly.\n- Edge cases: If `k` is non-integer, it coerces to int inside a try/except; if the coercion fails or `kk <= 0`, it returns `[]`, satisfying the requirement that `k <= 0` yields an empty list. If there are no tokens, it also returns `[]`, which aligns with `min(k, 0) = 0`.\n- No disallowed operations: It does not use input(), file I/O, or network access. It does not print anything, which is allowed as printing is optional and restricted to only printing `top_k` if done.\n- Output contract: At the end, `top_k` is defined exactly as a list of `(token, count)` tuples, ordered correctly.\n\nSummary: All functional requirements are met, but the specific instruction to use a regex for tokenization is not followed.", + "code_quality": "Code quality assessment:\n- Correctness: The tokenization logic correctly forms tokens from ASCII letters and digits after lowercasing. Counting and Top-K selection are correct and stable under the specified tie-breaker. No reliance on Counter.tie-ordering.\n- Efficiency: Single pass counting is O(n). Using `heapq.nsmallest` provides O(m log k) selection, efficient for large m with small k. It also returns results sorted by the key, meeting order requirements.\n- Readability and structure: Clear helper functions with type hints, descriptive comments, and straightforward logic. The use of `_iter_tokens` as a generator is clean. Variable names are clear. Minimal, focused code.\n- Maintainability and best practices: Sensible separation of concerns, no side effects, and proper handling of edge cases. Using `globals().get` is slightly unconventional but harmless in this context. Lack of regex conflicts with the explicit instruction but does not harm code quality per se.\n\nNo bugs or inefficiencies identified beyond not using regex as specified by the task." + }, + "final_judgement": { + "adherence_score": 4, + "code_quality_score": 5, + "comments": "Functionally correct, efficient, and clean implementation that meets all requirements except the explicit instruction to use a regex for tokenization. Consider switching tokenization to a regex to fully comply with the task specification." + } + }, + "parse_error": null +} \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_17.json b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_17.json new file mode 100644 index 0000000000..7076ff6811 --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_17.json @@ -0,0 +1,16 @@ +{ + "file": "run_17.py", + "raw": "{\n \"reasoning\": {\n \"task_adherence\": \"Step-by-step check against instructions:\\n- Tokenization: Uses a compiled regex [A-Za-z0-9]+ to extract ASCII alphanumeric sequences and lowercases each token via tok = m.group(0).lower(). This matches the requirement to lowercase and use ASCII [a-z0-9]+ with other characters as separators.\\n- Inputs: Reads from the provided globals text and k without reassigning them. Passes them into a helper function; does not modify the globals.\\n- Requirement 1 (sorting): Uses heapq.nsmallest with key=lambda kv: (-kv[1], kv[0]). Since nsmallest returns results in ascending key order, negating the count achieves count-desc, and kv[0] (token) provides ascending token tiebreak. This exactly matches the specified sort key (-count, token).\\n- Requirement 2 (top_k shape/length): Returns a list of (token, count) tuples from counts.items(). Computes top_n = min(k, len(counts)), so the length is min(k, number of unique tokens). Assigns top_k to this list at the end.\\n- Requirement 3 (edge case k <= 0): Early return [] if k <= 0 (also if k is not int, which is stricter than required but not harmful since the task promises int).\\n- Requirement 4 (no I/O/network): No input(), file I/O, or network usage. Script relies only on provided globals and standard library.\\n- Output contract: Defines top_k at the end as specified. Does not print anything else (printing is optional). Does not rely on Counter.most_common.\\nNo ambiguities appear to be mishandled. All parts of the task are met precisely.\",\n \"code_quality\": \"Assessment:\\n- Correctness: Logic is sound; counting via a dict and selecting top-k with the correct sort key yields the exact required ordering. Handles empty input and k <= 0 correctly.\\n- Efficiency: Single pass tokenization with finditer avoids building intermediate lists. heapq.nsmallest provides O(n log k) behavior for small k, which is efficient. top_n is set to min(k, unique), avoiding over-selection.\\n- Readability/Clarity: Clear variable names, concise comments, and a small helper function improve structure. The compiled regex at module scope is good for performance. Type hints are present for parameters; adding a return type annotation would be a minor improvement.\\n- Maintainability/Style: Pythonic and straightforward. The isinstance(k, int) guard is extra relative to the spec but harmless and may prevent misuse. No unnecessary dependencies or side effects.\\n- No bugs or stylistic issues of concern. Using heapq.nsmallest returns a sorted list according to the key, satisfying the required output order.\"\n },\n \"final_judgement\": {\n \"adherence_score\": 5,\n \"code_quality_score\": 5,\n \"comments\": \"Meets all requirements precisely: correct tokenization, ordering by (-count, token), correct length and edge cases, and proper top_k assignment. Code is clean, efficient, and maintainable. Minor optional improvement: add a return type annotation for the helper function.\"\n }\n}", + "parsed": { + "reasoning": { + "task_adherence": "Step-by-step check against instructions:\n- Tokenization: Uses a compiled regex [A-Za-z0-9]+ to extract ASCII alphanumeric sequences and lowercases each token via tok = m.group(0).lower(). This matches the requirement to lowercase and use ASCII [a-z0-9]+ with other characters as separators.\n- Inputs: Reads from the provided globals text and k without reassigning them. Passes them into a helper function; does not modify the globals.\n- Requirement 1 (sorting): Uses heapq.nsmallest with key=lambda kv: (-kv[1], kv[0]). Since nsmallest returns results in ascending key order, negating the count achieves count-desc, and kv[0] (token) provides ascending token tiebreak. This exactly matches the specified sort key (-count, token).\n- Requirement 2 (top_k shape/length): Returns a list of (token, count) tuples from counts.items(). Computes top_n = min(k, len(counts)), so the length is min(k, number of unique tokens). Assigns top_k to this list at the end.\n- Requirement 3 (edge case k <= 0): Early return [] if k <= 0 (also if k is not int, which is stricter than required but not harmful since the task promises int).\n- Requirement 4 (no I/O/network): No input(), file I/O, or network usage. Script relies only on provided globals and standard library.\n- Output contract: Defines top_k at the end as specified. Does not print anything else (printing is optional). Does not rely on Counter.most_common.\nNo ambiguities appear to be mishandled. All parts of the task are met precisely.", + "code_quality": "Assessment:\n- Correctness: Logic is sound; counting via a dict and selecting top-k with the correct sort key yields the exact required ordering. Handles empty input and k <= 0 correctly.\n- Efficiency: Single pass tokenization with finditer avoids building intermediate lists. heapq.nsmallest provides O(n log k) behavior for small k, which is efficient. top_n is set to min(k, unique), avoiding over-selection.\n- Readability/Clarity: Clear variable names, concise comments, and a small helper function improve structure. The compiled regex at module scope is good for performance. Type hints are present for parameters; adding a return type annotation would be a minor improvement.\n- Maintainability/Style: Pythonic and straightforward. The isinstance(k, int) guard is extra relative to the spec but harmless and may prevent misuse. No unnecessary dependencies or side effects.\n- No bugs or stylistic issues of concern. Using heapq.nsmallest returns a sorted list according to the key, satisfying the required output order." + }, + "final_judgement": { + "adherence_score": 5, + "code_quality_score": 5, + "comments": "Meets all requirements precisely: correct tokenization, ordering by (-count, token), correct length and edge cases, and proper top_k assignment. Code is clean, efficient, and maintainable. Minor optional improvement: add a return type annotation for the helper function." + } + }, + "parse_error": null +} \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_18.json b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_18.json new file mode 100644 index 0000000000..075b175776 --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_18.json @@ -0,0 +1,16 @@ +{ + "file": "run_18.py", + "raw": "{\n \"reasoning\": {\n \"task_adherence\": \"Step-by-step check against the instructions:\\n- Tokenization: The generator _iter_tokens_ascii_lower uses re.finditer(r'[A-Za-z0-9]+', s) and lower() on each match, which exactly matches the requirement: lowercase tokens; tokens are ASCII [a-z0-9]+ sequences; all other characters are separators.\\n- Inputs: The code consumes the provided globals text and k only at the final assignment top_k = _compute_top_k(text, k) and does not reassign them.\\n- Requirement 1 (sorting): In _compute_top_k, it selects the top k using heapq.nsmallest with key=lambda it: (-it[1], it[0]). Because the key sorts by negative count first (thus count descending) and then by token ascending, and nsmallest returns results in sorted order, the resulting list is correctly sorted by count desc, then token asc.\\n- Requirement 2 (shape and length): It builds a list of (token, count) tuples from counts and computes kk as min(k, number of unique tokens) via kk = k if k < len(counts) else len(counts). The returned list length is kk, satisfying the length requirement. The elements are 2-tuples (token, count).\\n- Requirement 3 (edge case k <= 0): Early return [] if k <= 0 satisfies this. Empty or no-token input also returns [] via the early checks.\\n- Requirement 4 (no I/O): The code performs no input(), file I/O, or network access; it runs purely on provided globals.\\n- Output contract: At the end, top_k is defined as the computed list with the exact specified ordering and length. It does not print, which is allowed (printing is optional). \\n- Tie-ordering note: It does not rely on Counter.most_common; it implements the specified sort explicitly.\\nOverall, the code fully adheres to all specified instructions and edge cases.\",\n \"code_quality\": \"Clarity and correctness: Functions are clearly named and commented; logic is correct. The regex tokenization and counting are straightforward and correct.\\nEfficiency: Using heapq.nsmallest with key=(-count, token) is efficient (O(n log k)) and appropriate for Top-K selection. Streaming tokenization avoids holding intermediate lists.\\nReadability and style: Generally good. Minor nitpicks:\\n- kk could be named more descriptively (e.g., limit = min(k, len(counts))). Also, using min(k, len(counts)) would be clearer than the conditional expression.\\n- The list comprehension [(t, c) for t, c in nsmallest(...)] is redundant since nsmallest already returns tuples of (token, count); it can be returned directly.\\n- Optional micro-optimization: precompile the regex pattern if called frequently.\\nNo bugs or maintainability issues identified beyond these small style points.\"\n },\n \"final_judgement\": {\n \"adherence_score\": 5,\n \"code_quality_score\": 4,\n \"comments\": \"Excellent adherence: correct tokenization, sorting, edge-case handling, and output contract. Code is clean and efficient. Minor style improvements possible (use min(), avoid redundant list comprehension, clearer variable name).\"\n }\n}", + "parsed": { + "reasoning": { + "task_adherence": "Step-by-step check against the instructions:\n- Tokenization: The generator _iter_tokens_ascii_lower uses re.finditer(r'[A-Za-z0-9]+', s) and lower() on each match, which exactly matches the requirement: lowercase tokens; tokens are ASCII [a-z0-9]+ sequences; all other characters are separators.\n- Inputs: The code consumes the provided globals text and k only at the final assignment top_k = _compute_top_k(text, k) and does not reassign them.\n- Requirement 1 (sorting): In _compute_top_k, it selects the top k using heapq.nsmallest with key=lambda it: (-it[1], it[0]). Because the key sorts by negative count first (thus count descending) and then by token ascending, and nsmallest returns results in sorted order, the resulting list is correctly sorted by count desc, then token asc.\n- Requirement 2 (shape and length): It builds a list of (token, count) tuples from counts and computes kk as min(k, number of unique tokens) via kk = k if k < len(counts) else len(counts). The returned list length is kk, satisfying the length requirement. The elements are 2-tuples (token, count).\n- Requirement 3 (edge case k <= 0): Early return [] if k <= 0 satisfies this. Empty or no-token input also returns [] via the early checks.\n- Requirement 4 (no I/O): The code performs no input(), file I/O, or network access; it runs purely on provided globals.\n- Output contract: At the end, top_k is defined as the computed list with the exact specified ordering and length. It does not print, which is allowed (printing is optional). \n- Tie-ordering note: It does not rely on Counter.most_common; it implements the specified sort explicitly.\nOverall, the code fully adheres to all specified instructions and edge cases.", + "code_quality": "Clarity and correctness: Functions are clearly named and commented; logic is correct. The regex tokenization and counting are straightforward and correct.\nEfficiency: Using heapq.nsmallest with key=(-count, token) is efficient (O(n log k)) and appropriate for Top-K selection. Streaming tokenization avoids holding intermediate lists.\nReadability and style: Generally good. Minor nitpicks:\n- kk could be named more descriptively (e.g., limit = min(k, len(counts))). Also, using min(k, len(counts)) would be clearer than the conditional expression.\n- The list comprehension [(t, c) for t, c in nsmallest(...)] is redundant since nsmallest already returns tuples of (token, count); it can be returned directly.\n- Optional micro-optimization: precompile the regex pattern if called frequently.\nNo bugs or maintainability issues identified beyond these small style points." + }, + "final_judgement": { + "adherence_score": 5, + "code_quality_score": 4, + "comments": "Excellent adherence: correct tokenization, sorting, edge-case handling, and output contract. Code is clean and efficient. Minor style improvements possible (use min(), avoid redundant list comprehension, clearer variable name)." + } + }, + "parse_error": null +} \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_19.json b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_19.json new file mode 100644 index 0000000000..765c001aae --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_19.json @@ -0,0 +1,16 @@ +{ + "file": "run_19.py", + "raw": "{\n \"reasoning\": {\n \"task_adherence\": \"- Tokenization: The helper _iter_tokens lowercases the input and uses a regex [a-z0-9]+ to extract ASCII alphanumeric sequences, treating all other characters as separators. This matches the specification.\\n- Inputs: The code uses the provided globals text and k without reassigning them. Access is via top_k = top_k_tokens(text, k) inside a try block. No I/O or network is used.\\n- Requirements:\\n 1) Sorting by count desc, then token asc is implemented by using heapq.nsmallest with key lambda item: (-item[1], item[0]). This produces the required order (largest counts first; alphabetical ties).\\n 2) The function returns a list of (token, count) tuples. Using nsmallest(k, ...) ensures the length is min(k, number of unique tokens). counts.items() yields (token, count) pairs, fulfilling the tuple structure.\\n 3) Edge case k <= 0: top_k_tokens returns [], satisfying the requirement.\\n 4) The script runs as-is given globals text (str) and k (int). It does not use input(), file I/O, or network.\\n- Output contract: top_k is defined at the end. With valid inputs, top_k will be exactly the computed Top-K as described. The broad try/except sets top_k = [] on any exception; while unnecessary given the guaranteed inputs, it does not affect correctness under the stated conditions.\\n- Additional notes: The code does not rely on Counter.most_common and explicitly implements the specified sort key.\\n- Minor nit: The early return if not counts is redundant because nsmallest would already return []. This does not affect adherence.\",\n \"code_quality\": \"- Correctness: Logic is correct for counting, tokenization, and ordering. Tie-breaking is implemented correctly.\\n- Clarity/Readability: Clear function and variable names; annotations provided; concise comments explain intent. Helper _iter_tokens isolates tokenization.\\n- Efficiency: Uses a single pass to count tokens and heapq.nsmallest for top-k selection (O(U log k)), which is efficient. Compiled regex is reused via default parameter to avoid recompilation overhead.\\n- Maintainability/Structure: Separation of concerns (_iter_tokens vs. top_k_tokens). Minimal, clean imports. No unnecessary dependencies.\\n- Robustness: Type checks guard against incorrect input types. The broad try/except around the top_k assignment could mask unexpected errors; while harmless here, narrowing the exception or omitting the try in trusted environments would be cleaner.\\n- Minor style note: The explicit if not counts: return [] is unnecessary but harmless.\"\n },\n \"final_judgement\": {\n \"adherence_score\": 5,\n \"code_quality_score\": 5,\n \"comments\": \"Meets all task requirements with correct tokenization, ordering, and edge-case handling. Code is clear and efficient. The broad try/except and a redundant empty-check are minor nits but do not impact correctness.\"\n }\n}", + "parsed": { + "reasoning": { + "task_adherence": "- Tokenization: The helper _iter_tokens lowercases the input and uses a regex [a-z0-9]+ to extract ASCII alphanumeric sequences, treating all other characters as separators. This matches the specification.\n- Inputs: The code uses the provided globals text and k without reassigning them. Access is via top_k = top_k_tokens(text, k) inside a try block. No I/O or network is used.\n- Requirements:\n 1) Sorting by count desc, then token asc is implemented by using heapq.nsmallest with key lambda item: (-item[1], item[0]). This produces the required order (largest counts first; alphabetical ties).\n 2) The function returns a list of (token, count) tuples. Using nsmallest(k, ...) ensures the length is min(k, number of unique tokens). counts.items() yields (token, count) pairs, fulfilling the tuple structure.\n 3) Edge case k <= 0: top_k_tokens returns [], satisfying the requirement.\n 4) The script runs as-is given globals text (str) and k (int). It does not use input(), file I/O, or network.\n- Output contract: top_k is defined at the end. With valid inputs, top_k will be exactly the computed Top-K as described. The broad try/except sets top_k = [] on any exception; while unnecessary given the guaranteed inputs, it does not affect correctness under the stated conditions.\n- Additional notes: The code does not rely on Counter.most_common and explicitly implements the specified sort key.\n- Minor nit: The early return if not counts is redundant because nsmallest would already return []. This does not affect adherence.", + "code_quality": "- Correctness: Logic is correct for counting, tokenization, and ordering. Tie-breaking is implemented correctly.\n- Clarity/Readability: Clear function and variable names; annotations provided; concise comments explain intent. Helper _iter_tokens isolates tokenization.\n- Efficiency: Uses a single pass to count tokens and heapq.nsmallest for top-k selection (O(U log k)), which is efficient. Compiled regex is reused via default parameter to avoid recompilation overhead.\n- Maintainability/Structure: Separation of concerns (_iter_tokens vs. top_k_tokens). Minimal, clean imports. No unnecessary dependencies.\n- Robustness: Type checks guard against incorrect input types. The broad try/except around the top_k assignment could mask unexpected errors; while harmless here, narrowing the exception or omitting the try in trusted environments would be cleaner.\n- Minor style note: The explicit if not counts: return [] is unnecessary but harmless." + }, + "final_judgement": { + "adherence_score": 5, + "code_quality_score": 5, + "comments": "Meets all task requirements with correct tokenization, ordering, and edge-case handling. Code is clear and efficient. The broad try/except and a redundant empty-check are minor nits but do not impact correctness." + } + }, + "parse_error": null +} \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_20.json b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_20.json new file mode 100644 index 0000000000..bff31a7026 --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_20.json @@ -0,0 +1,16 @@ +{ + "file": "run_20.py", + "raw": "{\n \"reasoning\": {\n \"task_adherence\": \"- Overall goal: The code computes the Top-K most frequent tokens from the given text and assigns the result to the global top_k. This is achieved via _count_tokens_ascii and _top_k_from_counts, and the final line sets top_k appropriately.\\n- Tokenization requirements:\\n - Lowercasing: Implemented by mapping 'A'-'Z' to lowercase during scanning.\\n - Tokens are ASCII [a-z0-9]+; others are separators: Implemented via an explicit character-class check (ord ranges) and committing on non-matching chars. Behavior matches the spec.\\n - \\\"Use a regex\\\": Not followed. The implementation is manual and does not use a regex as explicitly instructed. Functionally correct but deviates from the stated method.\\n- Inputs: text (str) and k (int) are assumed to be provided and are not reassigned. Compliance met.\\n- Requirements:\\n 1) Sorting by count desc, then token asc: Implemented using heapq.nsmallest with key=(-count, token), which yields the correct order.\\n 2) top_k is a list of (token, count) tuples of length min(k, unique tokens): _top_k_from_counts returns such a list; nsmallest ensures length <= k; when k exceeds unique tokens, it returns all items.\\n 3) Edge case k <= 0: Returns [] explicitly; compliant.\\n 4) No I/O or network: No input(), file I/O, or network calls present.\\n- Output contract: top_k is defined at the end as required; no extraneous prints. Does not rely on Counter.most_common tie ordering.\\n\\nSummary: All functional requirements are met and edge cases handled. The sole deviation is not using a regex for tokenization, which was explicitly requested.\",\n \"code_quality\": \"- Clarity and correctness: Functions are well-named and correctly implement the required behavior. The tokenization logic is accurate for ASCII [a-z0-9]+.\\n- Efficiency: Single-pass tokenizer; heapq.nsmallest yields O(n log k) selection, which is efficient for large inputs.\\n- Readability/Maintainability: Use of ord-range checks and micro-optimizations (local variable bindings like append/get) slightly reduce readability compared to a straightforward regex approach, which the spec suggested. Still, code is concise and understandable.\\n- Best practices: Avoids reliance on Counter.most_common tie-breaking, uses deterministic sorting criteria. Type hints are minimal but acceptable. No obvious bugs or edge-case omissions.\\n\\nNote: While not using regex violates the instruction, from a code-quality perspective the implementation is robust and efficient.\"\n },\n \"final_judgement\": {\n \"adherence_score\": 4,\n \"code_quality_score\": 4,\n \"comments\": \"Functionally correct and efficient with proper sorting, edge-case handling, and output structure. The main shortcoming is not using a regex for tokenization as explicitly instructed; minor readability trade-offs due to manual ASCII handling and micro-optimizations.\"\n }\n}", + "parsed": { + "reasoning": { + "task_adherence": "- Overall goal: The code computes the Top-K most frequent tokens from the given text and assigns the result to the global top_k. This is achieved via _count_tokens_ascii and _top_k_from_counts, and the final line sets top_k appropriately.\n- Tokenization requirements:\n - Lowercasing: Implemented by mapping 'A'-'Z' to lowercase during scanning.\n - Tokens are ASCII [a-z0-9]+; others are separators: Implemented via an explicit character-class check (ord ranges) and committing on non-matching chars. Behavior matches the spec.\n - \"Use a regex\": Not followed. The implementation is manual and does not use a regex as explicitly instructed. Functionally correct but deviates from the stated method.\n- Inputs: text (str) and k (int) are assumed to be provided and are not reassigned. Compliance met.\n- Requirements:\n 1) Sorting by count desc, then token asc: Implemented using heapq.nsmallest with key=(-count, token), which yields the correct order.\n 2) top_k is a list of (token, count) tuples of length min(k, unique tokens): _top_k_from_counts returns such a list; nsmallest ensures length <= k; when k exceeds unique tokens, it returns all items.\n 3) Edge case k <= 0: Returns [] explicitly; compliant.\n 4) No I/O or network: No input(), file I/O, or network calls present.\n- Output contract: top_k is defined at the end as required; no extraneous prints. Does not rely on Counter.most_common tie ordering.\n\nSummary: All functional requirements are met and edge cases handled. The sole deviation is not using a regex for tokenization, which was explicitly requested.", + "code_quality": "- Clarity and correctness: Functions are well-named and correctly implement the required behavior. The tokenization logic is accurate for ASCII [a-z0-9]+.\n- Efficiency: Single-pass tokenizer; heapq.nsmallest yields O(n log k) selection, which is efficient for large inputs.\n- Readability/Maintainability: Use of ord-range checks and micro-optimizations (local variable bindings like append/get) slightly reduce readability compared to a straightforward regex approach, which the spec suggested. Still, code is concise and understandable.\n- Best practices: Avoids reliance on Counter.most_common tie-breaking, uses deterministic sorting criteria. Type hints are minimal but acceptable. No obvious bugs or edge-case omissions.\n\nNote: While not using regex violates the instruction, from a code-quality perspective the implementation is robust and efficient." + }, + "final_judgement": { + "adherence_score": 4, + "code_quality_score": 4, + "comments": "Functionally correct and efficient with proper sorting, edge-case handling, and output structure. The main shortcoming is not using a regex for tokenization as explicitly instructed; minor readability trade-offs due to manual ASCII handling and micro-optimizations." + } + }, + "parse_error": null +} \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_21.json b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_21.json new file mode 100644 index 0000000000..29f7e1e5e8 --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_21.json @@ -0,0 +1,16 @@ +{ + "file": "run_21.py", + "raw": "{\n \"reasoning\": {\n \"task_adherence\": \"- Tokenization requirements:\\n - Lowercasing: Tokens are converted to lowercase via m.group(0).lower(). Satisfied.\\n - Regex with ASCII [a-z0-9]+ and non-matching chars as separators: Uses re.compile(r\\\"[a-z0-9]+\\\", flags=re.ASCII | re.IGNORECASE) and iterates over matches. Satisfied.\\n- Inputs and globals:\\n - Uses provided globals text and k only to compute top_k at the end; does not reassign them. Satisfied.\\n- Sorting and Top-K:\\n - Sort key specified as (-count, token): Achieved via heapq.nsmallest with key=lambda t: (-t[1], t[0]). This returns items sorted by count desc, token asc. Satisfied.\\n - Returns list of (token, count) tuples with length min(k, unique tokens): nsmallest(k_int, counts.items(), ...) ensures length behavior. Satisfied.\\n- Edge cases:\\n - k <= 0 returns []: Explicitly handled. Satisfied.\\n - No tokens in text returns []: Explicitly handled via if not counts. Satisfied.\\n- Constraints:\\n - No input(), file I/O, or network access. Satisfied.\\n - Does not rely on Counter.most_common tie ordering. Satisfied.\\n- Output contract:\\n - Defines top_k at module end as compute_top_k(text, k). Satisfied.\\n- Optional printing: Not used, which is allowed.\\nOverall, the code fully complies with all specified requirements.\",\n \"code_quality\": \"- Correctness: Logic matches the spec exactly; tie-breaking and ordering are correct. No reliance on Counter.most_common.\\n- Clarity/Readability: Clear function and variable names; concise code; helpful comment on sorting intent.\\n- Efficiency: Uses Counter for counting and heapq.nsmallest for O(n log k) selection, which is efficient for large vocabularies and small k. Avoids full sort when unnecessary.\\n- Maintainability/Structure: Modularized with _iter_tokens and compute_top_k. Straightforward flow and minimal branching.\\n- Best practices: Regex uses re.ASCII to enforce ASCII semantics; tokens are explicitly lowercased. No side effects beyond defining top_k.\\n- Minor nitpicks (non-blocking):\\n - The regex could be compiled once at module scope to avoid recompilation per call to _iter_tokens, though impact is minor.\\n - The early return if not counts is redundant because nsmallest would return [] anyway, but it is explicit and fine.\\nOverall, code quality is high: clear, correct, and efficient.\"\n },\n \"final_judgement\": {\n \"adherence_score\": 5,\n \"code_quality_score\": 5,\n \"comments\": \"Fully meets all task requirements with clean, efficient, and readable code. Minor micro-optimizations are possible but unnecessary.\"\n }\n}", + "parsed": { + "reasoning": { + "task_adherence": "- Tokenization requirements:\n - Lowercasing: Tokens are converted to lowercase via m.group(0).lower(). Satisfied.\n - Regex with ASCII [a-z0-9]+ and non-matching chars as separators: Uses re.compile(r\"[a-z0-9]+\", flags=re.ASCII | re.IGNORECASE) and iterates over matches. Satisfied.\n- Inputs and globals:\n - Uses provided globals text and k only to compute top_k at the end; does not reassign them. Satisfied.\n- Sorting and Top-K:\n - Sort key specified as (-count, token): Achieved via heapq.nsmallest with key=lambda t: (-t[1], t[0]). This returns items sorted by count desc, token asc. Satisfied.\n - Returns list of (token, count) tuples with length min(k, unique tokens): nsmallest(k_int, counts.items(), ...) ensures length behavior. Satisfied.\n- Edge cases:\n - k <= 0 returns []: Explicitly handled. Satisfied.\n - No tokens in text returns []: Explicitly handled via if not counts. Satisfied.\n- Constraints:\n - No input(), file I/O, or network access. Satisfied.\n - Does not rely on Counter.most_common tie ordering. Satisfied.\n- Output contract:\n - Defines top_k at module end as compute_top_k(text, k). Satisfied.\n- Optional printing: Not used, which is allowed.\nOverall, the code fully complies with all specified requirements.", + "code_quality": "- Correctness: Logic matches the spec exactly; tie-breaking and ordering are correct. No reliance on Counter.most_common.\n- Clarity/Readability: Clear function and variable names; concise code; helpful comment on sorting intent.\n- Efficiency: Uses Counter for counting and heapq.nsmallest for O(n log k) selection, which is efficient for large vocabularies and small k. Avoids full sort when unnecessary.\n- Maintainability/Structure: Modularized with _iter_tokens and compute_top_k. Straightforward flow and minimal branching.\n- Best practices: Regex uses re.ASCII to enforce ASCII semantics; tokens are explicitly lowercased. No side effects beyond defining top_k.\n- Minor nitpicks (non-blocking):\n - The regex could be compiled once at module scope to avoid recompilation per call to _iter_tokens, though impact is minor.\n - The early return if not counts is redundant because nsmallest would return [] anyway, but it is explicit and fine.\nOverall, code quality is high: clear, correct, and efficient." + }, + "final_judgement": { + "adherence_score": 5, + "code_quality_score": 5, + "comments": "Fully meets all task requirements with clean, efficient, and readable code. Minor micro-optimizations are possible but unnecessary." + } + }, + "parse_error": null +} \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_22.json b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_22.json new file mode 100644 index 0000000000..8a3f088726 --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_22.json @@ -0,0 +1,16 @@ +{ + "file": "run_22.py", + "raw": "{\n \"reasoning\": {\n \"task_adherence\": \"Step-by-step assessment:\\n- Tokenization requirements:\\n - Lowercasing: The tokenizer lowercases each character (c = ch.lower()). \u2714\ufe0f\\n - ASCII [a-z0-9]+ sequences with other chars as separators: Implemented via explicit character checks ('a' <= c <= 'z' or '0' <= c <= '9') and flushing the buffer on any other character. This matches the specified token definition. \u2714\ufe0f\\n - Note: The instruction suggested using a regex; the solution does not use regex but achieves identical behavior. This is a minor deviation in method, not in result. \u26a0\ufe0f (minor)\\n- Inputs: The code reads the provided globals text and k without reassigning them. It copies them to local variables _text and _k (with int(k) coercion). It does not mutate the globals. \u2714\ufe0f\\n- Requirement 1 (sorting): Sorts by count descending and token ascending using key=lambda kv: (-kv[1], kv[0]). \u2714\ufe0f\\n- Requirement 2 (output structure and length): Returns a list of (token, count) tuples and slices to min(k, len(items)). \u2714\ufe0f\\n- Requirement 3 (k <= 0): _top_k_tokens returns [] when k <= 0, leading to top_k = []. \u2714\ufe0f\\n- Requirement 4 (no I/O/network): No input(), file I/O, or network access used. \u2714\ufe0f\\n- Output contract: top_k is always defined at the end. If globals are missing/invalid, it safely sets top_k = []. When provided, it computes as specified. No extraneous printing. \u2714\ufe0f\\n- Note on tie-ordering: Does not rely on Counter; explicitly sorts with the specified key. \u2714\ufe0f\\nOverall: Functional adherence is excellent; the only minor deviation is not using a regex as hinted by the instructions.\",\n \"code_quality\": \"This is code; assessment follows:\\n- Correctness: The counting and sorting logic is correct and adheres to the spec, including edge cases and tie-breaking. \u2714\ufe0f\\n- Clarity/Readability: Functions are small and well-named with brief comments. Type hints are used for parameters. The micro-optimizations (binding get = counts.get and join = ''.join) are acceptable but slightly reduce readability. Minor. \u26a0\ufe0f\\n- Efficiency: Streaming tokenizer with a buffer is efficient. Counting is O(n); sorting unique tokens is O(m log m). \u2714\ufe0f\\n- Structure/Maintainability: Separation into _iter_tokens and _top_k_tokens is clean. Top-level try/except ensures top_k is always defined. \u2714\ufe0f\\n- Best practices: Avoids reliance on Counter.most_common ordering as requested. Does not perform I/O. Minor issue: Unused import (import sys). \u26a0\ufe0f\\n- Robustness: Gracefully handles missing globals by setting top_k = []. Casting k via int(k) is fine given the spec says k is int; it doesn\u2019t reassign the global. \u2714\ufe0f\\nNo bugs detected; only minor stylistic issues (unused import, micro-optimizations affecting readability) and not following the suggested regex approach.\"\n },\n \"final_judgement\": {\n \"adherence_score\": 4,\n \"code_quality_score\": 4,\n \"comments\": \"Meets all functional requirements with correct sorting, tokenization behavior, and edge-case handling. Minor deviation: did not use regex as suggested. Code quality is strong; small issues include an unused import and slight readability trade-offs from micro-optimizations.\"\n }\n}", + "parsed": { + "reasoning": { + "task_adherence": "Step-by-step assessment:\n- Tokenization requirements:\n - Lowercasing: The tokenizer lowercases each character (c = ch.lower()). \u2714\ufe0f\n - ASCII [a-z0-9]+ sequences with other chars as separators: Implemented via explicit character checks ('a' <= c <= 'z' or '0' <= c <= '9') and flushing the buffer on any other character. This matches the specified token definition. \u2714\ufe0f\n - Note: The instruction suggested using a regex; the solution does not use regex but achieves identical behavior. This is a minor deviation in method, not in result. \u26a0\ufe0f (minor)\n- Inputs: The code reads the provided globals text and k without reassigning them. It copies them to local variables _text and _k (with int(k) coercion). It does not mutate the globals. \u2714\ufe0f\n- Requirement 1 (sorting): Sorts by count descending and token ascending using key=lambda kv: (-kv[1], kv[0]). \u2714\ufe0f\n- Requirement 2 (output structure and length): Returns a list of (token, count) tuples and slices to min(k, len(items)). \u2714\ufe0f\n- Requirement 3 (k <= 0): _top_k_tokens returns [] when k <= 0, leading to top_k = []. \u2714\ufe0f\n- Requirement 4 (no I/O/network): No input(), file I/O, or network access used. \u2714\ufe0f\n- Output contract: top_k is always defined at the end. If globals are missing/invalid, it safely sets top_k = []. When provided, it computes as specified. No extraneous printing. \u2714\ufe0f\n- Note on tie-ordering: Does not rely on Counter; explicitly sorts with the specified key. \u2714\ufe0f\nOverall: Functional adherence is excellent; the only minor deviation is not using a regex as hinted by the instructions.", + "code_quality": "This is code; assessment follows:\n- Correctness: The counting and sorting logic is correct and adheres to the spec, including edge cases and tie-breaking. \u2714\ufe0f\n- Clarity/Readability: Functions are small and well-named with brief comments. Type hints are used for parameters. The micro-optimizations (binding get = counts.get and join = ''.join) are acceptable but slightly reduce readability. Minor. \u26a0\ufe0f\n- Efficiency: Streaming tokenizer with a buffer is efficient. Counting is O(n); sorting unique tokens is O(m log m). \u2714\ufe0f\n- Structure/Maintainability: Separation into _iter_tokens and _top_k_tokens is clean. Top-level try/except ensures top_k is always defined. \u2714\ufe0f\n- Best practices: Avoids reliance on Counter.most_common ordering as requested. Does not perform I/O. Minor issue: Unused import (import sys). \u26a0\ufe0f\n- Robustness: Gracefully handles missing globals by setting top_k = []. Casting k via int(k) is fine given the spec says k is int; it doesn\u2019t reassign the global. \u2714\ufe0f\nNo bugs detected; only minor stylistic issues (unused import, micro-optimizations affecting readability) and not following the suggested regex approach." + }, + "final_judgement": { + "adherence_score": 4, + "code_quality_score": 4, + "comments": "Meets all functional requirements with correct sorting, tokenization behavior, and edge-case handling. Minor deviation: did not use regex as suggested. Code quality is strong; small issues include an unused import and slight readability trade-offs from micro-optimizations." + } + }, + "parse_error": null +} \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_23.json b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_23.json new file mode 100644 index 0000000000..4991443ea9 --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_23.json @@ -0,0 +1,16 @@ +{ + "file": "run_23.py", + "raw": "{\n \"reasoning\": {\n \"task_adherence\": \"- Reads the task carefully: compute Top-K most frequent tokens with specific tokenization and sorting, using provided globals and setting top_k accordingly.\\n- Tokenization: The code implements ASCII [a-z0-9]+ tokenization and lowercasing by streaming through characters. Uppercase A-Z are lowered by adding 32, digits are kept, and all other characters act as separators. This produces exactly the [a-z0-9]+ tokens required and lowercases them. However, the instructions explicitly say to use a regex for tokenization; this code does not use regex. Functionally correct but deviates from the specified method.\\n- Sorting: Uses heapq.nsmallest with key lambda (-count, token) to obtain items sorted by count descending then token ascending. This matches the required sort order and avoids relying on Counter.most_common tie behavior.\\n- Output format: top_k is set to a list of (token, count) tuples of length min(k, unique tokens). This is satisfied: m = min(k, len(counts)) and the returned list contains (token, count) pairs from counts.items().\\n- Edge cases: If k <= 0, _top_k_tokens returns []. Also handles empty text (counts empty -> []). Both align with the requirements.\\n- Inputs: Does not reassign globals text or k. It copies them into _text and _k with fallbacks if not defined and safely coerces _k to int. This respects the constraint not to reassign provided globals and allows the script to run as-is.\\n- No I/O: No input(), file I/O, or network access. No printing except none, which is allowed.\\n- Output contract: top_k is defined at the end as specified, no extra output.\\n- Ambiguities: None significant; the only deviation is not using a regex despite the instruction to do so.\",\n \"code_quality\": \"- Clarity/structure: Code is modular with helper functions (_iter_tokens_ascii_lower and _top_k_tokens). Comments explain key steps. Variable names are clear. The underscore prefixes indicate internal helpers.\\n- Correctness: Tokenization correctly yields lowercase ASCII alnum tokens and uses separators for all other characters. Counting and Top-K selection are correct. Sorting key enforces count desc then token asc.\\n- Efficiency: Streaming tokenizer avoids building full lowercased strings; using a buffer with method binding is efficient. heapq.nsmallest is appropriate for Top-K and returns results in the correct order.\\n- Readability: While using ord/chr and adding 32 is slightly lower-level than using .lower(), it is documented and constrained to ASCII as required. The logic is readable with comments.\\n- Maintainability: Functions are cohesive and small. No global side-effects besides defining top_k. Edge cases are handled explicitly.\\n- Best practices: Avoids reliance on Counter.most_common tie ordering per instruction. One stylistic note: the task asked to use a regex; while not a code quality fault per se, aligning with that would make intent explicit and simpler to verify. Minor micro-optimizations (append binding, manual lowercasing) slightly trade readability for performance but are acceptable and commented.\\n- No apparent bugs or inefficiencies affecting correctness were found.\"\n },\n \"final_judgement\": {\n \"adherence_score\": 4,\n \"code_quality_score\": 5,\n \"comments\": \"Functionally meets all requirements, including correct tokenization behavior, sorting, and edge cases, and defines top_k properly without I/O or reassigning globals. The only notable miss is not using a regex as explicitly requested for tokenization.\"\n }\n}", + "parsed": { + "reasoning": { + "task_adherence": "- Reads the task carefully: compute Top-K most frequent tokens with specific tokenization and sorting, using provided globals and setting top_k accordingly.\n- Tokenization: The code implements ASCII [a-z0-9]+ tokenization and lowercasing by streaming through characters. Uppercase A-Z are lowered by adding 32, digits are kept, and all other characters act as separators. This produces exactly the [a-z0-9]+ tokens required and lowercases them. However, the instructions explicitly say to use a regex for tokenization; this code does not use regex. Functionally correct but deviates from the specified method.\n- Sorting: Uses heapq.nsmallest with key lambda (-count, token) to obtain items sorted by count descending then token ascending. This matches the required sort order and avoids relying on Counter.most_common tie behavior.\n- Output format: top_k is set to a list of (token, count) tuples of length min(k, unique tokens). This is satisfied: m = min(k, len(counts)) and the returned list contains (token, count) pairs from counts.items().\n- Edge cases: If k <= 0, _top_k_tokens returns []. Also handles empty text (counts empty -> []). Both align with the requirements.\n- Inputs: Does not reassign globals text or k. It copies them into _text and _k with fallbacks if not defined and safely coerces _k to int. This respects the constraint not to reassign provided globals and allows the script to run as-is.\n- No I/O: No input(), file I/O, or network access. No printing except none, which is allowed.\n- Output contract: top_k is defined at the end as specified, no extra output.\n- Ambiguities: None significant; the only deviation is not using a regex despite the instruction to do so.", + "code_quality": "- Clarity/structure: Code is modular with helper functions (_iter_tokens_ascii_lower and _top_k_tokens). Comments explain key steps. Variable names are clear. The underscore prefixes indicate internal helpers.\n- Correctness: Tokenization correctly yields lowercase ASCII alnum tokens and uses separators for all other characters. Counting and Top-K selection are correct. Sorting key enforces count desc then token asc.\n- Efficiency: Streaming tokenizer avoids building full lowercased strings; using a buffer with method binding is efficient. heapq.nsmallest is appropriate for Top-K and returns results in the correct order.\n- Readability: While using ord/chr and adding 32 is slightly lower-level than using .lower(), it is documented and constrained to ASCII as required. The logic is readable with comments.\n- Maintainability: Functions are cohesive and small. No global side-effects besides defining top_k. Edge cases are handled explicitly.\n- Best practices: Avoids reliance on Counter.most_common tie ordering per instruction. One stylistic note: the task asked to use a regex; while not a code quality fault per se, aligning with that would make intent explicit and simpler to verify. Minor micro-optimizations (append binding, manual lowercasing) slightly trade readability for performance but are acceptable and commented.\n- No apparent bugs or inefficiencies affecting correctness were found." + }, + "final_judgement": { + "adherence_score": 4, + "code_quality_score": 5, + "comments": "Functionally meets all requirements, including correct tokenization behavior, sorting, and edge cases, and defines top_k properly without I/O or reassigning globals. The only notable miss is not using a regex as explicitly requested for tokenization." + } + }, + "parse_error": null +} \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_24.json b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_24.json new file mode 100644 index 0000000000..969564867e --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_24.json @@ -0,0 +1,16 @@ +{ + "file": "run_24.py", + "raw": "{\n \"reasoning\": {\n \"task_adherence\": \"Step-by-step adherence analysis:\\n- Core task: Computes the Top-K most frequent tokens from a given text. The function compute_top_k counts token frequencies and returns the top K after sorting. This matches the main requirement.\\n- Tokenization: Implements ASCII [a-z0-9]+ tokenization with lowercase by manually scanning characters, converting 'A'-'Z' to lowercase, accepting '0'-'9' and 'a'-'z', and treating all other characters as separators. This behavior matches the specified token set and separators. However, the instruction explicitly says to use a regex; the implementation does not use regex, which is a minor deviation from the instruction method, though the output semantics are correct.\\n- Inputs: Uses provided globals text and k without reassigning them. It copies them to _text and _k and never reassigns text or k, complying with the instruction.\\n- Requirement 1 (sorting): Sorts by (-count, token) via key=lambda it: (-it[1], it[0]). This exactly implements count descending then token ascending.\\n- Requirement 2 (top_k list and length): Returns a list of (token, count) tuples, and slices to min(k, number of unique tokens). Satisfied.\\n- Requirement 3 (k <= 0): compute_top_k returns [] when k <= 0, and top_k is set accordingly. Satisfied.\\n- Requirement 4 (no I/O/network): No input(), file I/O, or network calls. Satisfied.\\n- Output contract: Ensures top_k is defined at the end. If text/k are not defined, it sets top_k to an empty list; otherwise computes from compute_top_k. No extraneous prints. Satisfied.\\n- Note about tie ordering: Does not rely on Counter.most_common and explicitly implements the specified sort. Satisfied.\\n- Ambiguities/choices: The try/except handling for missing globals is conservative; the task states globals are provided, but this fallback does not violate any requirement and still leaves top_k defined. The only notable deviation is not using regex for tokenization as suggested.\",\n \"code_quality\": \"Code quality assessment:\\n- Correctness: The tokenization logic correctly identifies ASCII letters/digits, lowercases uppercase ASCII, and splits on non-matching characters. Counting and sorting are correctly implemented. Edge cases (k <= 0, empty or no-token text, trailing buffered token) are handled.\\n- Clarity/readability: Overall structure is clear with a dedicated function and top-level glue. Micro-optimizations (binding append and get, using ord ranges) slightly reduce readability compared to a straightforward approach, especially since the task suggested using a regex. A regex like re.findall(r'[a-z0-9]+', text.lower()) would be more concise and maintainable.\\n- Efficiency: Single pass tokenization O(n) and sorting O(m log m), where m is the number of unique tokens; acceptable for typical use. For very large m, a heap-based top-k could be more efficient, but not required.\\n- Structure/maintainability: Good use of type hints and separation of concerns. No reliance on unspecified behavior. The try/except for globals is robust though arguably unnecessary per spec.\\n- Best practices: Avoids I/O as required, uses explicit sort key instead of Counter.most_common. Minor stylistic nit: could inline counts.items() into sorted. Using ord arithmetic is correct but less idiomatic than regex given the instruction.\"\n },\n \"final_judgement\": {\n \"adherence_score\": 4,\n \"code_quality_score\": 4,\n \"comments\": \"Meets the task requirements accurately, including correct tokenization semantics, sorting, and edge-case handling. The main shortcoming is not using a regex as instructed for tokenization and some micro-optimizations that reduce readability. Otherwise, the code is correct, efficient, and defines top_k as specified.\"\n }\n}", + "parsed": { + "reasoning": { + "task_adherence": "Step-by-step adherence analysis:\n- Core task: Computes the Top-K most frequent tokens from a given text. The function compute_top_k counts token frequencies and returns the top K after sorting. This matches the main requirement.\n- Tokenization: Implements ASCII [a-z0-9]+ tokenization with lowercase by manually scanning characters, converting 'A'-'Z' to lowercase, accepting '0'-'9' and 'a'-'z', and treating all other characters as separators. This behavior matches the specified token set and separators. However, the instruction explicitly says to use a regex; the implementation does not use regex, which is a minor deviation from the instruction method, though the output semantics are correct.\n- Inputs: Uses provided globals text and k without reassigning them. It copies them to _text and _k and never reassigns text or k, complying with the instruction.\n- Requirement 1 (sorting): Sorts by (-count, token) via key=lambda it: (-it[1], it[0]). This exactly implements count descending then token ascending.\n- Requirement 2 (top_k list and length): Returns a list of (token, count) tuples, and slices to min(k, number of unique tokens). Satisfied.\n- Requirement 3 (k <= 0): compute_top_k returns [] when k <= 0, and top_k is set accordingly. Satisfied.\n- Requirement 4 (no I/O/network): No input(), file I/O, or network calls. Satisfied.\n- Output contract: Ensures top_k is defined at the end. If text/k are not defined, it sets top_k to an empty list; otherwise computes from compute_top_k. No extraneous prints. Satisfied.\n- Note about tie ordering: Does not rely on Counter.most_common and explicitly implements the specified sort. Satisfied.\n- Ambiguities/choices: The try/except handling for missing globals is conservative; the task states globals are provided, but this fallback does not violate any requirement and still leaves top_k defined. The only notable deviation is not using regex for tokenization as suggested.", + "code_quality": "Code quality assessment:\n- Correctness: The tokenization logic correctly identifies ASCII letters/digits, lowercases uppercase ASCII, and splits on non-matching characters. Counting and sorting are correctly implemented. Edge cases (k <= 0, empty or no-token text, trailing buffered token) are handled.\n- Clarity/readability: Overall structure is clear with a dedicated function and top-level glue. Micro-optimizations (binding append and get, using ord ranges) slightly reduce readability compared to a straightforward approach, especially since the task suggested using a regex. A regex like re.findall(r'[a-z0-9]+', text.lower()) would be more concise and maintainable.\n- Efficiency: Single pass tokenization O(n) and sorting O(m log m), where m is the number of unique tokens; acceptable for typical use. For very large m, a heap-based top-k could be more efficient, but not required.\n- Structure/maintainability: Good use of type hints and separation of concerns. No reliance on unspecified behavior. The try/except for globals is robust though arguably unnecessary per spec.\n- Best practices: Avoids I/O as required, uses explicit sort key instead of Counter.most_common. Minor stylistic nit: could inline counts.items() into sorted. Using ord arithmetic is correct but less idiomatic than regex given the instruction." + }, + "final_judgement": { + "adherence_score": 4, + "code_quality_score": 4, + "comments": "Meets the task requirements accurately, including correct tokenization semantics, sorting, and edge-case handling. The main shortcoming is not using a regex as instructed for tokenization and some micro-optimizations that reduce readability. Otherwise, the code is correct, efficient, and defines top_k as specified." + } + }, + "parse_error": null +} \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_25.json b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_25.json new file mode 100644 index 0000000000..de32fa8108 --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_25.json @@ -0,0 +1,16 @@ +{ + "file": "run_25.py", + "raw": "{\n \"reasoning\": {\n \"task_adherence\": \"Step-by-step check against instructions:\\n- Inputs and globals: The code reads the provided globals text and k and does not reassign them. Compliant.\\n- Tokenization: It lowercases ASCII letters on-the-fly and extracts tokens consisting of ASCII [a-z0-9]+ by treating any other character as a separator. This matches the specified token definition semantically. However, the instruction explicitly said to use a regex; the implementation uses a manual scanner instead. Functionally correct but deviates from the stated method.\\n- Requirement 1 (sorting): Uses heapq.nsmallest with key=(-count, token), which yields results sorted by count descending, then token ascending. Compliant and does not rely on Counter.most_common tie ordering.\\n- Requirement 2 (top_k structure and length): Produces a list of (token, count) tuples and clamps k to the number of unique tokens, ensuring length = min(k, unique). Compliant.\\n- Requirement 3 (k <= 0): If _k == 0 (including k <= 0), sets top_k = []. Compliant.\\n- Requirement 4 (no I/O/network): No input(), file I/O, or network access used. Compliant.\\n- Output contract: At the end, top_k is defined exactly as specified; no extra printing is performed, which is allowed. Compliant.\\n- Note on tie ordering: Does not use Counter.most_common; implements the specified sort. Compliant.\\nOverall, all functional requirements are met; the only notable deviation is not using a regex for tokenization as instructed.\",\n \"code_quality\": \"The output is code; assessment follows:\\n- Correctness: The tokenizer correctly builds ASCII [a-z0-9]+ tokens with lowercase ASCII letters, handles separators, and flushes the buffer at boundaries and end-of-input. Sorting logic is correct and deterministic. Edge cases for k (<=0, > unique) are handled.\\n- Efficiency: Single pass tokenization O(n). Top-K selection via heapq.nsmallest is O(m log k), appropriate for large m. Efficient overall.\\n- Clarity/Readability: The manual ASCII lowercase via ord/chr and isascii() is more low-level than necessary; a regex-based approach would be clearer and matches the instruction. Magic numbers (65, 90, 32, etc.) reduce readability despite comments.\\n- Maintainability: The k parsing logic is overengineered given the spec guarantees k is int; excluding bool and accepting numeric strings adds complexity without clear benefit. Function and variables are reasonably named; comments help.\\n- Best practices: Avoids relying on Counter.most_common tie ordering as requested. Type annotation for Counter lacks type parameters but is acceptable. isascii() requires Python 3.7+, which is generally fine but slightly reduces portability.\\nNo functional bugs found; primary nits are stylistic/clarity and unnecessary k coercion.\"\n },\n \"final_judgement\": {\n \"adherence_score\": 4,\n \"code_quality_score\": 4,\n \"comments\": \"Functionally correct and efficient; meets sorting, edge cases, and output requirements. Main deviation: did not use regex for tokenization as instructed. Minor readability issues and unnecessary k coercion complexity.\"\n }\n}", + "parsed": { + "reasoning": { + "task_adherence": "Step-by-step check against instructions:\n- Inputs and globals: The code reads the provided globals text and k and does not reassign them. Compliant.\n- Tokenization: It lowercases ASCII letters on-the-fly and extracts tokens consisting of ASCII [a-z0-9]+ by treating any other character as a separator. This matches the specified token definition semantically. However, the instruction explicitly said to use a regex; the implementation uses a manual scanner instead. Functionally correct but deviates from the stated method.\n- Requirement 1 (sorting): Uses heapq.nsmallest with key=(-count, token), which yields results sorted by count descending, then token ascending. Compliant and does not rely on Counter.most_common tie ordering.\n- Requirement 2 (top_k structure and length): Produces a list of (token, count) tuples and clamps k to the number of unique tokens, ensuring length = min(k, unique). Compliant.\n- Requirement 3 (k <= 0): If _k == 0 (including k <= 0), sets top_k = []. Compliant.\n- Requirement 4 (no I/O/network): No input(), file I/O, or network access used. Compliant.\n- Output contract: At the end, top_k is defined exactly as specified; no extra printing is performed, which is allowed. Compliant.\n- Note on tie ordering: Does not use Counter.most_common; implements the specified sort. Compliant.\nOverall, all functional requirements are met; the only notable deviation is not using a regex for tokenization as instructed.", + "code_quality": "The output is code; assessment follows:\n- Correctness: The tokenizer correctly builds ASCII [a-z0-9]+ tokens with lowercase ASCII letters, handles separators, and flushes the buffer at boundaries and end-of-input. Sorting logic is correct and deterministic. Edge cases for k (<=0, > unique) are handled.\n- Efficiency: Single pass tokenization O(n). Top-K selection via heapq.nsmallest is O(m log k), appropriate for large m. Efficient overall.\n- Clarity/Readability: The manual ASCII lowercase via ord/chr and isascii() is more low-level than necessary; a regex-based approach would be clearer and matches the instruction. Magic numbers (65, 90, 32, etc.) reduce readability despite comments.\n- Maintainability: The k parsing logic is overengineered given the spec guarantees k is int; excluding bool and accepting numeric strings adds complexity without clear benefit. Function and variables are reasonably named; comments help.\n- Best practices: Avoids relying on Counter.most_common tie ordering as requested. Type annotation for Counter lacks type parameters but is acceptable. isascii() requires Python 3.7+, which is generally fine but slightly reduces portability.\nNo functional bugs found; primary nits are stylistic/clarity and unnecessary k coercion." + }, + "final_judgement": { + "adherence_score": 4, + "code_quality_score": 4, + "comments": "Functionally correct and efficient; meets sorting, edge cases, and output requirements. Main deviation: did not use regex for tokenization as instructed. Minor readability issues and unnecessary k coercion complexity." + } + }, + "parse_error": null +} \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_26.json b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_26.json new file mode 100644 index 0000000000..c86f544060 --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_26.json @@ -0,0 +1,16 @@ +{ + "file": "run_26.py", + "raw": "{\n \"reasoning\": {\n \"task_adherence\": \"- Reads and follows the core task: computes Top-K most frequent tokens from provided globals text and k, and assigns the result to top_k.\\n- Tokenization: Implements ASCII tokenization for [a-z0-9]+ by treating all non [A-Z a-z 0-9] chars as separators, and lowercasing only A-Z while scanning. This yields exactly the specified token set and casing. However, the instruction explicitly says to use a regex; the solution does not use a regex and instead implements manual scanning. While the result is equivalent, this deviates from the stated method.\\n- Sorting: Uses heapq.nsmallest with key (-count, token) which correctly produces items sorted by count descending then token ascending, as required, and avoids full sort (acceptable and efficient).\\n- Output format: Sets top_k to a list of (token, count) tuples. Length is min(k, number of unique tokens) due to nsmallest behavior. Correct.\\n- Edge cases: If k <= 0, _top_k_from_counts returns []; negative k is clamped to 0. If counts empty, returns []. All match requirement 3.\\n- Inputs handling: Does not reassign text or k. Copies them into _text and _k safely, attempts int conversion of k, and clamps negatives. This is compatible with the contract. The fallback to defaults if globals are missing is harmless given the problem states they are provided.\\n- No I/O or network: No input(), file, or network usage. No printing (which is optional).\\n- Tie ordering: Does not rely on Counter.most_common; implements explicit sort key. Satisfies the note.\\n- Summary: All functional requirements are met; only deviation is not using a regex for tokenization as explicitly requested.\",\n \"code_quality\": \"- Correctness: The tokenization logic matches the ASCII [a-z0-9]+ spec and lowercases A-Z. Counting and Top-K selection are correct. Edge cases handled.\\n- Efficiency: Single pass tokenization; Top-K via heapq.nsmallest gives O(n log k). Efficient.\\n- Readability/Maintainability: The manual ord/chr checks and micro-optimizations (caching append/clear/get) trade clarity for speed. A regex-based tokenizer would be shorter and clearer per the instruction. Nonetheless, the function has a clear comment describing behavior.\\n- Structure: Well-factored into two helper functions. Minimal global interaction. Reasonable variable naming and scoping.\\n- Best practices: Avoids unnecessary full sort; avoids reliance on unspecified tie ordering. Broad exception while casting k is acceptable in this context but could be narrowed. Partial type hints are provided; return types not annotated.\\n- No apparent bugs or edge-case failures identified.\"\n },\n \"final_judgement\": {\n \"adherence_score\": 4,\n \"code_quality_score\": 4,\n \"comments\": \"Functionally correct and efficient implementation that meets sorting, output, and edge-case requirements. The main miss is not using a regex for tokenization as explicitly requested, and the manual ASCII scanning reduces readability compared to a regex-based approach. Otherwise, solid solution.\"\n }\n}", + "parsed": { + "reasoning": { + "task_adherence": "- Reads and follows the core task: computes Top-K most frequent tokens from provided globals text and k, and assigns the result to top_k.\n- Tokenization: Implements ASCII tokenization for [a-z0-9]+ by treating all non [A-Z a-z 0-9] chars as separators, and lowercasing only A-Z while scanning. This yields exactly the specified token set and casing. However, the instruction explicitly says to use a regex; the solution does not use a regex and instead implements manual scanning. While the result is equivalent, this deviates from the stated method.\n- Sorting: Uses heapq.nsmallest with key (-count, token) which correctly produces items sorted by count descending then token ascending, as required, and avoids full sort (acceptable and efficient).\n- Output format: Sets top_k to a list of (token, count) tuples. Length is min(k, number of unique tokens) due to nsmallest behavior. Correct.\n- Edge cases: If k <= 0, _top_k_from_counts returns []; negative k is clamped to 0. If counts empty, returns []. All match requirement 3.\n- Inputs handling: Does not reassign text or k. Copies them into _text and _k safely, attempts int conversion of k, and clamps negatives. This is compatible with the contract. The fallback to defaults if globals are missing is harmless given the problem states they are provided.\n- No I/O or network: No input(), file, or network usage. No printing (which is optional).\n- Tie ordering: Does not rely on Counter.most_common; implements explicit sort key. Satisfies the note.\n- Summary: All functional requirements are met; only deviation is not using a regex for tokenization as explicitly requested.", + "code_quality": "- Correctness: The tokenization logic matches the ASCII [a-z0-9]+ spec and lowercases A-Z. Counting and Top-K selection are correct. Edge cases handled.\n- Efficiency: Single pass tokenization; Top-K via heapq.nsmallest gives O(n log k). Efficient.\n- Readability/Maintainability: The manual ord/chr checks and micro-optimizations (caching append/clear/get) trade clarity for speed. A regex-based tokenizer would be shorter and clearer per the instruction. Nonetheless, the function has a clear comment describing behavior.\n- Structure: Well-factored into two helper functions. Minimal global interaction. Reasonable variable naming and scoping.\n- Best practices: Avoids unnecessary full sort; avoids reliance on unspecified tie ordering. Broad exception while casting k is acceptable in this context but could be narrowed. Partial type hints are provided; return types not annotated.\n- No apparent bugs or edge-case failures identified." + }, + "final_judgement": { + "adherence_score": 4, + "code_quality_score": 4, + "comments": "Functionally correct and efficient implementation that meets sorting, output, and edge-case requirements. The main miss is not using a regex for tokenization as explicitly requested, and the manual ASCII scanning reduces readability compared to a regex-based approach. Otherwise, solid solution." + } + }, + "parse_error": null +} \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_27.json b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_27.json new file mode 100644 index 0000000000..59f49fb401 --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_27.json @@ -0,0 +1,16 @@ +{ + "file": "run_27.py", + "raw": "{\n \"reasoning\": {\n \"task_adherence\": \"- Interprets task correctly: computes Top-K most frequent tokens from the provided text.\\n- Tokenization:\\n - Produces tokens limited to ASCII [a-z0-9]+ and treats all other chars as separators \u2014 matches the spec behaviorally.\\n - Lowercasing is handled on-the-fly for ASCII uppercase letters; functionally equivalent to lowercasing the text first.\\n - However, the instruction explicitly says to use a regex; the implementation uses a manual scanner, not a regex. This is a deviation from the stated method, even though results match.\\n- Inputs: Does not reassign globals 'text' or 'k'; reads them into _text and _k. Complies.\\n- Requirements:\\n 1) Sorting by count desc, then token asc: Implemented via heapq.nsmallest with key=(-count, token). Correct and does not rely on Counter.most_common.\\n 2) Sets top_k to list of (token, count) tuples with length min(k, unique tokens): heapq.nsmallest returns min(k, n) items. Complies.\\n 3) k <= 0 -> top_k = []: Achieved by coercing invalid/negative k to 0 and using conditional \\\"if _counts and _k\\\". Complies.\\n 4) No input(), file I/O, or network: None used. Complies.\\n- Output contract: Defines top_k exactly as specified; no extraneous output. Complies.\\n- Tie-order note: Does not rely on most_common; uses defined sort key. Complies.\\n\\nSummary: All behavioral requirements met; only notable deviation is not using a regex for tokenization as instructed.\",\n \"code_quality\": \"- Clarity/Readability: Clear structure with a dedicated tokenizer function and comments. The ord()-based ASCII checks are explicit but slightly less readable than a regex; still understandable.\\n- Correctness: Tokenization correctly extracts [a-z0-9]+, lowercases ASCII letters, and treats all else as separators. Sorting is correct for the required order.\\n- Efficiency: Single-pass tokenizer O(n). Top-K via heapq.nsmallest is O(n log k) \u2014 efficient.\\n- Maintainability/Structure: Helper function encapsulates tokenization; avoids side effects on globals by copying into local vars. Variable naming is consistent; comments explain behavior.\\n- Best practices: Avoids reliance on Counter.most_common tie behavior. Handles edge cases for k robustly. Minor nit: type hint could specify Counter[str].\\n\\nNo bugs identified; implementation is robust and efficient. The only stylistic divergence is not using regex (impacts adherence more than code quality).\"\n },\n \"final_judgement\": {\n \"adherence_score\": 4,\n \"code_quality_score\": 5,\n \"comments\": \"Behavior fully meets the requirements, including correct sorting and edge cases. The only shortfall is not using a regex for tokenization as explicitly requested. Code is otherwise clean, efficient, and correct.\"\n }\n}", + "parsed": { + "reasoning": { + "task_adherence": "- Interprets task correctly: computes Top-K most frequent tokens from the provided text.\n- Tokenization:\n - Produces tokens limited to ASCII [a-z0-9]+ and treats all other chars as separators \u2014 matches the spec behaviorally.\n - Lowercasing is handled on-the-fly for ASCII uppercase letters; functionally equivalent to lowercasing the text first.\n - However, the instruction explicitly says to use a regex; the implementation uses a manual scanner, not a regex. This is a deviation from the stated method, even though results match.\n- Inputs: Does not reassign globals 'text' or 'k'; reads them into _text and _k. Complies.\n- Requirements:\n 1) Sorting by count desc, then token asc: Implemented via heapq.nsmallest with key=(-count, token). Correct and does not rely on Counter.most_common.\n 2) Sets top_k to list of (token, count) tuples with length min(k, unique tokens): heapq.nsmallest returns min(k, n) items. Complies.\n 3) k <= 0 -> top_k = []: Achieved by coercing invalid/negative k to 0 and using conditional \"if _counts and _k\". Complies.\n 4) No input(), file I/O, or network: None used. Complies.\n- Output contract: Defines top_k exactly as specified; no extraneous output. Complies.\n- Tie-order note: Does not rely on most_common; uses defined sort key. Complies.\n\nSummary: All behavioral requirements met; only notable deviation is not using a regex for tokenization as instructed.", + "code_quality": "- Clarity/Readability: Clear structure with a dedicated tokenizer function and comments. The ord()-based ASCII checks are explicit but slightly less readable than a regex; still understandable.\n- Correctness: Tokenization correctly extracts [a-z0-9]+, lowercases ASCII letters, and treats all else as separators. Sorting is correct for the required order.\n- Efficiency: Single-pass tokenizer O(n). Top-K via heapq.nsmallest is O(n log k) \u2014 efficient.\n- Maintainability/Structure: Helper function encapsulates tokenization; avoids side effects on globals by copying into local vars. Variable naming is consistent; comments explain behavior.\n- Best practices: Avoids reliance on Counter.most_common tie behavior. Handles edge cases for k robustly. Minor nit: type hint could specify Counter[str].\n\nNo bugs identified; implementation is robust and efficient. The only stylistic divergence is not using regex (impacts adherence more than code quality)." + }, + "final_judgement": { + "adherence_score": 4, + "code_quality_score": 5, + "comments": "Behavior fully meets the requirements, including correct sorting and edge cases. The only shortfall is not using a regex for tokenization as explicitly requested. Code is otherwise clean, efficient, and correct." + } + }, + "parse_error": null +} \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_28.json b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_28.json new file mode 100644 index 0000000000..05ee39936c --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_28.json @@ -0,0 +1,16 @@ +{ + "file": "run_28.py", + "raw": "{\n \"reasoning\": {\n \"task_adherence\": \"Step-by-step check against the task:\\n- Tokenization: Uses regex r'[a-z0-9]+' with flags re.ASCII | re.IGNORECASE to find ASCII alphanumeric runs and lowercases each token via m.group(0).lower(). This satisfies \\\"Lowercase the text\\\" (lowercasing per token is equivalent for ASCII) and \\\"Tokens are ASCII [a-z0-9]+ sequences; all other characters are separators (use a regex).\\\"\\n- Inputs/globals: Reads provided globals text and k without reassigning them. Wraps access in try/except NameError to provide a safe fallback; this is extra but does not violate requirements.\\n- Requirement 1 (sorting): Returns heapq.nsmallest(kk, counts.items(), key=lambda item: (-item[1], item[0])). Sorting by the key (-count, token) and taking the n smallest produces a list ordered by count descending, then token ascending, exactly as specified.\\n- Requirement 2 (output shape): Returns a list of (token, count) tuples from counts.items(), with length kk = min(k, number of unique tokens). This matches the contract.\\n- Requirement 3 (edge case k <= 0): Explicitly returns [] when k <= 0; also returns [] if no tokens are found. Correct.\\n- Requirement 4 (no I/O/network): No input(), file I/O, or network calls are used. Script runs as-is with provided globals.\\n- Output contract: top_k is defined at end of execution as specified. No extra prints (printing was optional). Does not rely on Counter.most_common tie ordering.\\nAmbiguities/notes: The initial isinstance(text, str) guard is stricter than required but harmless given the task guarantees. The try/except for missing globals is extra robustness not required by the spec, but it still ensures top_k is defined.\",\n \"code_quality\": \"No code generation issues; assessment of quality:\\n- Clarity/readability: Clear helper functions (_iter_tokens, _top_k_tokens), descriptive names, concise comments explaining intent.\\n- Correctness: Implements the specified tokenization and sorting criteria accurately. Handles edge cases correctly.\\n- Efficiency: Single pass to count tokens (O(n)); uses heapq.nsmallest for Top-K selection (O(U log K), U=unique tokens). Efficient and scalable.\\n- Maintainability/structure: Modular design with small focused functions; no reliance on unspecified behaviors (e.g., not using Counter.most_common). Reasonable fallback for missing globals.\\n- Style/best practices: Uses regex flags appropriately; avoids unnecessary global reassignment; returns immutable tuples for results. Minor nit: could use heapq.nlargest with key on count instead of nsmallest with negative counts for readability, but current approach is fine.\\nNo bugs or inefficiencies identified relevant to the task.\"\n },\n \"final_judgement\": {\n \"adherence_score\": 5,\n \"code_quality_score\": 5,\n \"comments\": \"Meets all requirements precisely with clean, efficient, and readable code. Minor extras (type check and NameError fallback) are harmless and do not detract from adherence.\"\n }\n}", + "parsed": { + "reasoning": { + "task_adherence": "Step-by-step check against the task:\n- Tokenization: Uses regex r'[a-z0-9]+' with flags re.ASCII | re.IGNORECASE to find ASCII alphanumeric runs and lowercases each token via m.group(0).lower(). This satisfies \"Lowercase the text\" (lowercasing per token is equivalent for ASCII) and \"Tokens are ASCII [a-z0-9]+ sequences; all other characters are separators (use a regex).\"\n- Inputs/globals: Reads provided globals text and k without reassigning them. Wraps access in try/except NameError to provide a safe fallback; this is extra but does not violate requirements.\n- Requirement 1 (sorting): Returns heapq.nsmallest(kk, counts.items(), key=lambda item: (-item[1], item[0])). Sorting by the key (-count, token) and taking the n smallest produces a list ordered by count descending, then token ascending, exactly as specified.\n- Requirement 2 (output shape): Returns a list of (token, count) tuples from counts.items(), with length kk = min(k, number of unique tokens). This matches the contract.\n- Requirement 3 (edge case k <= 0): Explicitly returns [] when k <= 0; also returns [] if no tokens are found. Correct.\n- Requirement 4 (no I/O/network): No input(), file I/O, or network calls are used. Script runs as-is with provided globals.\n- Output contract: top_k is defined at end of execution as specified. No extra prints (printing was optional). Does not rely on Counter.most_common tie ordering.\nAmbiguities/notes: The initial isinstance(text, str) guard is stricter than required but harmless given the task guarantees. The try/except for missing globals is extra robustness not required by the spec, but it still ensures top_k is defined.", + "code_quality": "No code generation issues; assessment of quality:\n- Clarity/readability: Clear helper functions (_iter_tokens, _top_k_tokens), descriptive names, concise comments explaining intent.\n- Correctness: Implements the specified tokenization and sorting criteria accurately. Handles edge cases correctly.\n- Efficiency: Single pass to count tokens (O(n)); uses heapq.nsmallest for Top-K selection (O(U log K), U=unique tokens). Efficient and scalable.\n- Maintainability/structure: Modular design with small focused functions; no reliance on unspecified behaviors (e.g., not using Counter.most_common). Reasonable fallback for missing globals.\n- Style/best practices: Uses regex flags appropriately; avoids unnecessary global reassignment; returns immutable tuples for results. Minor nit: could use heapq.nlargest with key on count instead of nsmallest with negative counts for readability, but current approach is fine.\nNo bugs or inefficiencies identified relevant to the task." + }, + "final_judgement": { + "adherence_score": 5, + "code_quality_score": 5, + "comments": "Meets all requirements precisely with clean, efficient, and readable code. Minor extras (type check and NameError fallback) are harmless and do not detract from adherence." + } + }, + "parse_error": null +} \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_29.json b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_29.json new file mode 100644 index 0000000000..7ae301a3b5 --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_29.json @@ -0,0 +1,16 @@ +{ + "file": "run_29.py", + "raw": "{\n \"reasoning\": {\n \"task_adherence\": \"- Interpreting the task: compute Top-K most frequent tokens from provided globals text (string) and k (int); tokenize as lowercase ASCII [a-z0-9]+ with all other chars as separators (explicitly says use a regex); output top_k as a list of (token, count) sorted by count desc then token asc; handle k <= 0 -> []; no I/O; don't reassign text or k.\\n- Tokenization:\\n - Lowercasing: Achieved. Uppercase A-Z are converted to lowercase on-the-fly in _iter_tokens.\\n - Token definition: Achieved. Only ASCII digits 0-9 and letters a-z are accumulated; anything else (including non-ASCII) is treated as a separator, producing tokens that match [a-z0-9]+.\\n - Use a regex: Not followed. Tokenization is implemented via manual character inspection (ord checks), not using a regex as the instruction explicitly requests. While functionally correct, this misses the stated method requirement.\\n- Inputs/globals:\\n - Does not reassign text or k. It reads them into _text and _k safely and handles NameError by providing defaults. This respects the \\\"do not reassign\\\" requirement.\\n- Requirements:\\n 1) Sorting by count desc, token asc: Followed. Uses key = lambda kv: (-kv[1], kv[0]) and applies either full sort or heapq.nsmallest + sort, yielding the correct ordering.\\n 2) top_k is a list of (token, count) tuples with length = min(k, unique tokens): Followed. When unique <= k it returns all sorted pairs; otherwise it returns exactly k items; tuples are (token, count).\\n 3) Edge case k <= 0 -> []: Followed. Early return [].\\n 4) No input(), file I/O, or network: Followed. None used.\\n- Output contract:\\n - top_k is defined at the end as specified. No extra printing is performed, which is allowed (printing was optional and restricted if used).\\n- Additional notes:\\n - The function gracefully handles empty or non-string text by casting to str, which is acceptable and does not violate any constraints.\\n - Does not rely on Counter.most_common; implements explicit sorting as requested.\\n- Summary: All functional requirements are met, but the explicit \\\"use a regex\\\" instruction for tokenization is not followed.\",\n \"code_quality\": \"- Clarity/readability: Good. Functions are small and focused; comments explain token rules and sorting. Minor micro-optimizations (append alias) and numeric ord ranges slightly reduce readability compared to a regex approach but are still understandable.\\n- Correctness: Correct tokenization (per spec), counting, and Top-K selection/sorting. Proper handling of ties and ordering via (-count, token). Edge cases handled.\\n- Efficiency: Good. Single-pass tokenizer; counting with dict; for large unique token sets uses heapq.nsmallest with a key for O(m log k); when k >= m, falls back to O(m log m) full sort. Reasonable memory/time complexity.\\n- Structure/maintainability: Reasonable. Clear separation of concerns (_iter_tokens, _compute_top_k). Avoids global mutation; exposes a single top_k result. The use of raw ASCII code ranges could be replaced with regex for maintainability (and to meet the instruction), but functionally it's fine.\\n- Best practices: Avoids reliance on unspecified tie-breaking; no I/O side effects; handles invalid k robustly. Names and comments are descriptive. No apparent bugs.\\n- Overall: High-quality, efficient implementation. The only notable deviation is not using a regex for tokenization (a task adherence issue more than code quality).\"\n },\n \"final_judgement\": {\n \"adherence_score\": 4,\n \"code_quality_score\": 5,\n \"comments\": \"Functionally excellent: correct tokenization behavior, counting, Top-K selection, order, and edge-case handling with no I/O. The sole miss is not using a regex for tokenization as explicitly requested.\"\n }\n}", + "parsed": { + "reasoning": { + "task_adherence": "- Interpreting the task: compute Top-K most frequent tokens from provided globals text (string) and k (int); tokenize as lowercase ASCII [a-z0-9]+ with all other chars as separators (explicitly says use a regex); output top_k as a list of (token, count) sorted by count desc then token asc; handle k <= 0 -> []; no I/O; don't reassign text or k.\n- Tokenization:\n - Lowercasing: Achieved. Uppercase A-Z are converted to lowercase on-the-fly in _iter_tokens.\n - Token definition: Achieved. Only ASCII digits 0-9 and letters a-z are accumulated; anything else (including non-ASCII) is treated as a separator, producing tokens that match [a-z0-9]+.\n - Use a regex: Not followed. Tokenization is implemented via manual character inspection (ord checks), not using a regex as the instruction explicitly requests. While functionally correct, this misses the stated method requirement.\n- Inputs/globals:\n - Does not reassign text or k. It reads them into _text and _k safely and handles NameError by providing defaults. This respects the \"do not reassign\" requirement.\n- Requirements:\n 1) Sorting by count desc, token asc: Followed. Uses key = lambda kv: (-kv[1], kv[0]) and applies either full sort or heapq.nsmallest + sort, yielding the correct ordering.\n 2) top_k is a list of (token, count) tuples with length = min(k, unique tokens): Followed. When unique <= k it returns all sorted pairs; otherwise it returns exactly k items; tuples are (token, count).\n 3) Edge case k <= 0 -> []: Followed. Early return [].\n 4) No input(), file I/O, or network: Followed. None used.\n- Output contract:\n - top_k is defined at the end as specified. No extra printing is performed, which is allowed (printing was optional and restricted if used).\n- Additional notes:\n - The function gracefully handles empty or non-string text by casting to str, which is acceptable and does not violate any constraints.\n - Does not rely on Counter.most_common; implements explicit sorting as requested.\n- Summary: All functional requirements are met, but the explicit \"use a regex\" instruction for tokenization is not followed.", + "code_quality": "- Clarity/readability: Good. Functions are small and focused; comments explain token rules and sorting. Minor micro-optimizations (append alias) and numeric ord ranges slightly reduce readability compared to a regex approach but are still understandable.\n- Correctness: Correct tokenization (per spec), counting, and Top-K selection/sorting. Proper handling of ties and ordering via (-count, token). Edge cases handled.\n- Efficiency: Good. Single-pass tokenizer; counting with dict; for large unique token sets uses heapq.nsmallest with a key for O(m log k); when k >= m, falls back to O(m log m) full sort. Reasonable memory/time complexity.\n- Structure/maintainability: Reasonable. Clear separation of concerns (_iter_tokens, _compute_top_k). Avoids global mutation; exposes a single top_k result. The use of raw ASCII code ranges could be replaced with regex for maintainability (and to meet the instruction), but functionally it's fine.\n- Best practices: Avoids reliance on unspecified tie-breaking; no I/O side effects; handles invalid k robustly. Names and comments are descriptive. No apparent bugs.\n- Overall: High-quality, efficient implementation. The only notable deviation is not using a regex for tokenization (a task adherence issue more than code quality)." + }, + "final_judgement": { + "adherence_score": 4, + "code_quality_score": 5, + "comments": "Functionally excellent: correct tokenization behavior, counting, Top-K selection, order, and edge-case handling with no I/O. The sole miss is not using a regex for tokenization as explicitly requested." + } + }, + "parse_error": null +} \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_30.json b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_30.json new file mode 100644 index 0000000000..38f511483b --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_baseline/run_30.json @@ -0,0 +1,16 @@ +{ + "file": "run_30.py", + "raw": "{\n \"reasoning\": {\n \"task_adherence\": \"Step-by-step:\\n- Tokenization: Uses a regex pattern r'[A-Za-z0-9]+' and lowercases tokens when counting. This matches the requirement: tokens are ASCII [a-z0-9]+ sequences with other chars as separators, and text is effectively lowercased before counting by lowercasing each token.\\n- Inputs: Uses provided globals text and k by passing them to compute_top_k and does not reassign them. Compliant.\\n- Sorting: Sorts with key lambda kv: (-kv[1], kv[0]), i.e., by count descending then token ascending. Matches the specified sort key (-count, token). Does not rely on Counter.most_common.\\n- Output structure: Returns a list of (token, count) tuples and assigns to top_k. Length is items[:min(k, len(items))], satisfying the min(k, unique) requirement.\\n- Edge cases: If k <= 0, returns [] (and thus top_k = []). Also safely returns [] if no tokens are found. Additional type checks for text and k are extra but do not violate the spec.\\n- No disallowed operations: No input(), file I/O, or network access. The script will run as-is with provided globals. No printing beyond optional requirement.\\nOverall, all requirements are fully met; the minor choice of matching [A-Za-z0-9]+ and then lowercasing tokens is equivalent to lowercasing first and matching [a-z0-9]+.\",\n \"code_quality\": \"Clarity: The function is concise, with clear variable names and a direct flow. Correctness: Implements required tokenization, counting, sorting, and edge cases correctly. Efficiency: Uses a compiled regex and Counter; operations are linear in text length plus sorting cost. Readability and structure: Good use of a helper function and type hints; no unnecessary complexity. Maintainability: Straightforward, with standard library usage. Best practices: Avoids relying on Counter.most_common ordering; sorts explicitly. Minor note: The early return if not counter is redundant but harmless. Overall, high-quality code with no identified bugs or inefficiencies.\"\n },\n \"final_judgement\": {\n \"adherence_score\": 5,\n \"code_quality_score\": 5,\n \"comments\": \"Fully meets the task requirements with clear, correct, and efficient code. Sorting and edge cases are handled as specified; output contract is satisfied.\"\n }\n}", + "parsed": { + "reasoning": { + "task_adherence": "Step-by-step:\n- Tokenization: Uses a regex pattern r'[A-Za-z0-9]+' and lowercases tokens when counting. This matches the requirement: tokens are ASCII [a-z0-9]+ sequences with other chars as separators, and text is effectively lowercased before counting by lowercasing each token.\n- Inputs: Uses provided globals text and k by passing them to compute_top_k and does not reassign them. Compliant.\n- Sorting: Sorts with key lambda kv: (-kv[1], kv[0]), i.e., by count descending then token ascending. Matches the specified sort key (-count, token). Does not rely on Counter.most_common.\n- Output structure: Returns a list of (token, count) tuples and assigns to top_k. Length is items[:min(k, len(items))], satisfying the min(k, unique) requirement.\n- Edge cases: If k <= 0, returns [] (and thus top_k = []). Also safely returns [] if no tokens are found. Additional type checks for text and k are extra but do not violate the spec.\n- No disallowed operations: No input(), file I/O, or network access. The script will run as-is with provided globals. No printing beyond optional requirement.\nOverall, all requirements are fully met; the minor choice of matching [A-Za-z0-9]+ and then lowercasing tokens is equivalent to lowercasing first and matching [a-z0-9]+.", + "code_quality": "Clarity: The function is concise, with clear variable names and a direct flow. Correctness: Implements required tokenization, counting, sorting, and edge cases correctly. Efficiency: Uses a compiled regex and Counter; operations are linear in text length plus sorting cost. Readability and structure: Good use of a helper function and type hints; no unnecessary complexity. Maintainability: Straightforward, with standard library usage. Best practices: Avoids relying on Counter.most_common ordering; sorts explicitly. Minor note: The early return if not counter is redundant but harmless. Overall, high-quality code with no identified bugs or inefficiencies." + }, + "final_judgement": { + "adherence_score": 5, + "code_quality_score": 5, + "comments": "Fully meets the task requirements with clear, correct, and efficient code. Sorting and edge cases are handled as specified; output contract is satisfied." + } + }, + "parse_error": null +} \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/judgement_summary.csv b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/judgement_summary.csv new file mode 100644 index 0000000000..9632d704e0 --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/judgement_summary.csv @@ -0,0 +1,31 @@ +File,adherence_score,code_quality_score,parse_error,error +run_01.py,5,5,, +run_02.py,5,5,, +run_03.py,5,5,, +run_04.py,5,5,, +run_05.py,5,5,, +run_06.py,5,5,, +run_07.py,5,5,, +run_08.py,5,5,, +run_09.py,5,5,, +run_10.py,5,5,, +run_11.py,5,5,, +run_12.py,5,5,, +run_13.py,5,4,, +run_14.py,,,"Expecting ',' delimiter: line 10 column 2 (char 3422)", +run_15.py,5,5,, +run_16.py,5,5,, +run_17.py,5,5,, +run_18.py,5,5,, +run_19.py,5,5,, +run_20.py,5,5,, +run_21.py,5,5,, +run_22.py,2,3,, +run_23.py,5,5,, +run_24.py,5,5,, +run_25.py,5,5,, +run_26.py,5,5,, +run_27.py,5,5,, +run_28.py,5,5,, +run_29.py,5,5,, +run_30.py,5,5,, diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_01.json b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_01.json new file mode 100644 index 0000000000..7b7eba905e --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_01.json @@ -0,0 +1,16 @@ +{ + "file": "run_01.py", + "raw": "{\n \"reasoning\": {\n \"task_adherence\": \"- Tokenization requirements: The code lowercases tokens and uses a regex [a-z0-9]+ with re.ASCII and re.IGNORECASE, then explicitly lowercases tokens via .lower(). This matches the requirement to treat ASCII letters/digits as tokens and all other chars as separators.\\n- Sorting by (-count, token): Implemented via key = lambda kv: (-kv[1], kv[0]). When k >= number of unique tokens (u), it returns sorted(cnt.items(), key=key). When k < u, it returns heapq.nsmallest(k, cnt.items(), key=key). Since nsmallest returns results sorted by the given key, both paths produce a list sorted by count descending, token ascending. This satisfies requirement (1).\\n- Setting top_k: For provided globals text and k, the code sets top_k = top_k_tokens(text, k). The result is a list of (token, count) tuples, length min(k, unique tokens), satisfying requirement (2).\\n- Edge cases: If k <= 0, top_k_tokens returns [], and thus top_k is set to []. If there are zero tokens (u == 0), the function also returns []. This covers requirement (3).\\n- I/O/network restrictions: No input(), file I/O, or network access used. Optional printing only occurs in demo mode and prints only top_k on the last line, complying with the optional output rule.\\n- Not relying on Counter.most_common: The implementation does not use most_common and defines its own sort key, meeting the note.\\n- Output contract: With provided globals, top_k is defined at the end of execution exactly as specified. In the fallback demo path (when globals are missing and running as __main__), top_k is also defined and printed as a Python literal on the last line.\\n- Minor ambiguity: If globals are missing and the code is not run as __main__, top_k would not be defined. However, the task specifies that globals are provided; under the specified conditions the code adheres fully.\",\n \"code_quality\": \"- Clarity/readability: Good separation of concerns: tokenization helper, main function, and module-level wiring. Descriptive names and concise implementation. Type hints are provided.\\n- Correctness: Tokenization and ordering logic are correct. Tie-breaking on token ascending is implemented. Handles k <= 0 and empty input.\\n- Efficiency: Counting is O(N tokens). Selection uses heapq.nsmallest for O(U log k) when k < U and full sort when k >= U, which is appropriate. Space usage is O(U + k). A helpful complexity comment is included.\\n- Maintainability: Uses a compiled regex constant and a small, well-structured function. Minimal dependencies.\\n- Best practices: Avoids relying on Counter.most_common. The try/except NameError to detect globals is slightly unconventional; using 'if \\\"text\\\" in globals() and \\\"k\\\" in globals()' would avoid raising/handling exceptions, but this is a minor stylistic point. The '# type: ignore[name-defined]' comments are acceptable for linters/type checkers.\\n- No bugs or inefficiencies identified that would affect correctness or performance under the task constraints.\"\n },\n \"final_judgement\": {\n \"adherence_score\": 5,\n \"code_quality_score\": 5,\n \"comments\": \"Excellent adherence: correct tokenization, ordering, edge-case handling, and top_k assignment. Code is clear, efficient, and avoids disallowed features. Minor stylistic nit on detecting provided globals, but overall high quality.\"\n }\n}", + "parsed": { + "reasoning": { + "task_adherence": "- Tokenization requirements: The code lowercases tokens and uses a regex [a-z0-9]+ with re.ASCII and re.IGNORECASE, then explicitly lowercases tokens via .lower(). This matches the requirement to treat ASCII letters/digits as tokens and all other chars as separators.\n- Sorting by (-count, token): Implemented via key = lambda kv: (-kv[1], kv[0]). When k >= number of unique tokens (u), it returns sorted(cnt.items(), key=key). When k < u, it returns heapq.nsmallest(k, cnt.items(), key=key). Since nsmallest returns results sorted by the given key, both paths produce a list sorted by count descending, token ascending. This satisfies requirement (1).\n- Setting top_k: For provided globals text and k, the code sets top_k = top_k_tokens(text, k). The result is a list of (token, count) tuples, length min(k, unique tokens), satisfying requirement (2).\n- Edge cases: If k <= 0, top_k_tokens returns [], and thus top_k is set to []. If there are zero tokens (u == 0), the function also returns []. This covers requirement (3).\n- I/O/network restrictions: No input(), file I/O, or network access used. Optional printing only occurs in demo mode and prints only top_k on the last line, complying with the optional output rule.\n- Not relying on Counter.most_common: The implementation does not use most_common and defines its own sort key, meeting the note.\n- Output contract: With provided globals, top_k is defined at the end of execution exactly as specified. In the fallback demo path (when globals are missing and running as __main__), top_k is also defined and printed as a Python literal on the last line.\n- Minor ambiguity: If globals are missing and the code is not run as __main__, top_k would not be defined. However, the task specifies that globals are provided; under the specified conditions the code adheres fully.", + "code_quality": "- Clarity/readability: Good separation of concerns: tokenization helper, main function, and module-level wiring. Descriptive names and concise implementation. Type hints are provided.\n- Correctness: Tokenization and ordering logic are correct. Tie-breaking on token ascending is implemented. Handles k <= 0 and empty input.\n- Efficiency: Counting is O(N tokens). Selection uses heapq.nsmallest for O(U log k) when k < U and full sort when k >= U, which is appropriate. Space usage is O(U + k). A helpful complexity comment is included.\n- Maintainability: Uses a compiled regex constant and a small, well-structured function. Minimal dependencies.\n- Best practices: Avoids relying on Counter.most_common. The try/except NameError to detect globals is slightly unconventional; using 'if \"text\" in globals() and \"k\" in globals()' would avoid raising/handling exceptions, but this is a minor stylistic point. The '# type: ignore[name-defined]' comments are acceptable for linters/type checkers.\n- No bugs or inefficiencies identified that would affect correctness or performance under the task constraints." + }, + "final_judgement": { + "adherence_score": 5, + "code_quality_score": 5, + "comments": "Excellent adherence: correct tokenization, ordering, edge-case handling, and top_k assignment. Code is clear, efficient, and avoids disallowed features. Minor stylistic nit on detecting provided globals, but overall high quality." + } + }, + "parse_error": null +} \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_02.json b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_02.json new file mode 100644 index 0000000000..59522ab55a --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_02.json @@ -0,0 +1,16 @@ +{ + "file": "run_02.py", + "raw": "{\n \"reasoning\": {\n \"task_adherence\": \"- Tokenization: Correct. Uses regex r\\\"[a-z0-9]+\\\" with re.ASCII and re.IGNORECASE, then lowercases tokens in _tokens(). This matches the requirement to lowercase and treat non-[a-z0-9] ASCII as separators.\\n- Inputs: Correct. Reads provided globals text and k without reassigning them. The detection via try: text; k avoids assignment.\\n- Sorting/key: Correct. The key lambda (-count, token) implements the required ordering: count descending, then token ascending. No reliance on Counter.most_common.\\n- Top-K computation: Correct and exact. For k >= number of unique tokens (u), returns full sorted list; otherwise returns exactly k items, preserving the specified order. Uses heapq.nsmallest with the same key, which returns elements sorted by the key, ensuring correct order.\\n- Edge cases: Correct. If k <= 0, top_k_tokens returns [], and thus top_k is set to []. If the text contains no tokens (u == 0), returns [].\\n- Output contract: Satisfied when globals are provided. At module end, if text and k exist, top_k is defined as required. Optional printing is only performed in demo mode and prints exactly top_k as a Python literal on the last line. No input(), file I/O, or network access is used.\\n- Ambiguity note: If globals were not provided and the module was imported (not __main__), top_k would not be defined. However, the task states the two globals are provided, so this scenario is outside the intended use and does not violate requirements.\",\n \"code_quality\": \"- Clarity/readability: Good. Clear function and helper names; concise logic. Type hints for function signatures are provided.\\n- Correctness: High. Implements the specified sort key and handles all edge cases. Does not rely on Counter.most_common tie behavior.\\n- Efficiency: Good. Counts in O(N tokens). Chooses between full sort and heap selection to avoid unnecessary full sorts when k is small (O(U log U) vs. O(U log k)).\\n- Maintainability/structure: Good. Separation of tokenization and ranking; local key function improves readability. Inline comments document strategy and complexity.\\n- Style/best practices: Generally solid. Minor nit: the availability check using try: text; k is a bit unconventional but functional and type-checked with ignores. Using a named function instead of a lambda for the key could slightly improve readability, but not necessary.\\n- No bugs or inefficiencies identified that affect correctness.\"\n },\n \"final_judgement\": {\n \"adherence_score\": 5,\n \"code_quality_score\": 5,\n \"comments\": \"Meets all task requirements precisely, including tokenization, ordering, edge cases, and output contract. Code is clear, efficient, and avoids prohibited patterns. Minor nit about globals detection is acceptable under the stated assumptions.\"\n }\n}", + "parsed": { + "reasoning": { + "task_adherence": "- Tokenization: Correct. Uses regex r\"[a-z0-9]+\" with re.ASCII and re.IGNORECASE, then lowercases tokens in _tokens(). This matches the requirement to lowercase and treat non-[a-z0-9] ASCII as separators.\n- Inputs: Correct. Reads provided globals text and k without reassigning them. The detection via try: text; k avoids assignment.\n- Sorting/key: Correct. The key lambda (-count, token) implements the required ordering: count descending, then token ascending. No reliance on Counter.most_common.\n- Top-K computation: Correct and exact. For k >= number of unique tokens (u), returns full sorted list; otherwise returns exactly k items, preserving the specified order. Uses heapq.nsmallest with the same key, which returns elements sorted by the key, ensuring correct order.\n- Edge cases: Correct. If k <= 0, top_k_tokens returns [], and thus top_k is set to []. If the text contains no tokens (u == 0), returns [].\n- Output contract: Satisfied when globals are provided. At module end, if text and k exist, top_k is defined as required. Optional printing is only performed in demo mode and prints exactly top_k as a Python literal on the last line. No input(), file I/O, or network access is used.\n- Ambiguity note: If globals were not provided and the module was imported (not __main__), top_k would not be defined. However, the task states the two globals are provided, so this scenario is outside the intended use and does not violate requirements.", + "code_quality": "- Clarity/readability: Good. Clear function and helper names; concise logic. Type hints for function signatures are provided.\n- Correctness: High. Implements the specified sort key and handles all edge cases. Does not rely on Counter.most_common tie behavior.\n- Efficiency: Good. Counts in O(N tokens). Chooses between full sort and heap selection to avoid unnecessary full sorts when k is small (O(U log U) vs. O(U log k)).\n- Maintainability/structure: Good. Separation of tokenization and ranking; local key function improves readability. Inline comments document strategy and complexity.\n- Style/best practices: Generally solid. Minor nit: the availability check using try: text; k is a bit unconventional but functional and type-checked with ignores. Using a named function instead of a lambda for the key could slightly improve readability, but not necessary.\n- No bugs or inefficiencies identified that affect correctness." + }, + "final_judgement": { + "adherence_score": 5, + "code_quality_score": 5, + "comments": "Meets all task requirements precisely, including tokenization, ordering, edge cases, and output contract. Code is clear, efficient, and avoids prohibited patterns. Minor nit about globals detection is acceptable under the stated assumptions." + } + }, + "parse_error": null +} \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_03.json b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_03.json new file mode 100644 index 0000000000..b08bc9c89e --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_03.json @@ -0,0 +1,16 @@ +{ + "file": "run_03.py", + "raw": "{\n \"reasoning\": {\n \"task_adherence\": \"Step-by-step check against the instructions:\\n- Tokenization: Uses regex r\\\"[a-z0-9]+\\\" with flags re.ASCII | re.IGNORECASE, and yields tokens lowercased via m.group(0).lower(). This satisfies: lowercase tokens; ASCII [a-z0-9]+ sequences; non-matching chars treated as separators; uses a regex.\\n- Inputs/globals: The code reads provided globals text and k without reassigning them. It uses a try/except NameError guard to detect their presence. If they exist, it computes top_k = top_k_tokens(text, k). It does not modify text or k.\\n- Requirement 1 (sorting): It defines key = lambda kv: (-kv[1], kv[0]) corresponding to (-count, token). For k >= unique tokens, it returns sorted(cnt.items(), key=key). For k < unique tokens, it uses heapq.nsmallest(k, cnt.items(), key=key), which returns the k elements in ascending order of the key, i.e., descending by count then ascending by token. This matches the specified order and avoids relying on Counter.most_common.\\n- Requirement 2 (top_k value/length): top_k is set to a list of (token, count) tuples via the function call. For k >= u, it returns all u items; for k < u, returns exactly k items; for no tokens, returns []. Thus length is min(k, number of unique tokens).\\n- Requirement 3 (edge cases): If k <= 0, top_k_tokens returns [], so top_k = [] in that case. If there are zero tokens (u == 0), returns [].\\n- Requirement 4 (no I/O, runs as-is with provided globals): No input(), file I/O, or network is used. With provided globals, it computes top_k and does not print. The demo branch only triggers if globals are absent and __name__ == \\\"__main__\\\".\\n- Output contract: At end of execution, top_k is defined exactly as required when text and k are provided. Optional printing is only in the demo path and prints top_k alone on the last line. The implementation does not use Counter.most_common and defines its own sort key.\\nMinor note: The code lowercases tokens rather than the entire text, but due to IGNORECASE in the regex, the extracted tokens cover upper/lowercase correctly and are normalized to lowercase, which is equivalent for the specified tokenization.\\nConclusion: All instructions are fully met.\",\n \"code_quality\": \"The output is code; assessment:\\n- Correctness: Logic for tokenization, counting, sorting, and top-k selection is correct. heapq.nsmallest with key=(-count, token) yields the desired ordering for the returned list.\\n- Efficiency: Counting is O(N tokens). Selection is O(U log k) when k < U via heapq, and O(U log U) for full sort when k >= U. Extra space O(U + k). This is efficient and appropriate.\\n- Readability/Structure: Clear separation of concerns with _tokens and top_k_tokens. Type hints for function return types aid readability. Variable names are concise but understandable (cnt, u). Inline comment for complexity is helpful.\\n- Maintainability/Best practices: Avoids relying on Counter.most_common tie behavior. Uses a well-defined sort key. No side effects except optional demo in __main__. Does not reassign provided globals. No unnecessary I/O.\\n- Minor nits: Using both re.IGNORECASE and lowercasing tokens is redundant (either alone would suffice if text were lowercased first or pattern remained case-insensitive). The try/except NameError guard is slightly unconventional versus checking 'text' and 'k' in globals(), but functional and clear with the comment. Neither issue impacts correctness.\\nOverall: High-quality, clean, and efficient code.\"\n },\n \"final_judgement\": {\n \"adherence_score\": 5,\n \"code_quality_score\": 5,\n \"comments\": \"Fully meets all task requirements, including exact sorting, edge cases, and output contract. Code is correct, efficient, and readable. Minor redundancies (IGNORECASE plus lowercasing) do not affect correctness.\"\n }\n}", + "parsed": { + "reasoning": { + "task_adherence": "Step-by-step check against the instructions:\n- Tokenization: Uses regex r\"[a-z0-9]+\" with flags re.ASCII | re.IGNORECASE, and yields tokens lowercased via m.group(0).lower(). This satisfies: lowercase tokens; ASCII [a-z0-9]+ sequences; non-matching chars treated as separators; uses a regex.\n- Inputs/globals: The code reads provided globals text and k without reassigning them. It uses a try/except NameError guard to detect their presence. If they exist, it computes top_k = top_k_tokens(text, k). It does not modify text or k.\n- Requirement 1 (sorting): It defines key = lambda kv: (-kv[1], kv[0]) corresponding to (-count, token). For k >= unique tokens, it returns sorted(cnt.items(), key=key). For k < unique tokens, it uses heapq.nsmallest(k, cnt.items(), key=key), which returns the k elements in ascending order of the key, i.e., descending by count then ascending by token. This matches the specified order and avoids relying on Counter.most_common.\n- Requirement 2 (top_k value/length): top_k is set to a list of (token, count) tuples via the function call. For k >= u, it returns all u items; for k < u, returns exactly k items; for no tokens, returns []. Thus length is min(k, number of unique tokens).\n- Requirement 3 (edge cases): If k <= 0, top_k_tokens returns [], so top_k = [] in that case. If there are zero tokens (u == 0), returns [].\n- Requirement 4 (no I/O, runs as-is with provided globals): No input(), file I/O, or network is used. With provided globals, it computes top_k and does not print. The demo branch only triggers if globals are absent and __name__ == \"__main__\".\n- Output contract: At end of execution, top_k is defined exactly as required when text and k are provided. Optional printing is only in the demo path and prints top_k alone on the last line. The implementation does not use Counter.most_common and defines its own sort key.\nMinor note: The code lowercases tokens rather than the entire text, but due to IGNORECASE in the regex, the extracted tokens cover upper/lowercase correctly and are normalized to lowercase, which is equivalent for the specified tokenization.\nConclusion: All instructions are fully met.", + "code_quality": "The output is code; assessment:\n- Correctness: Logic for tokenization, counting, sorting, and top-k selection is correct. heapq.nsmallest with key=(-count, token) yields the desired ordering for the returned list.\n- Efficiency: Counting is O(N tokens). Selection is O(U log k) when k < U via heapq, and O(U log U) for full sort when k >= U. Extra space O(U + k). This is efficient and appropriate.\n- Readability/Structure: Clear separation of concerns with _tokens and top_k_tokens. Type hints for function return types aid readability. Variable names are concise but understandable (cnt, u). Inline comment for complexity is helpful.\n- Maintainability/Best practices: Avoids relying on Counter.most_common tie behavior. Uses a well-defined sort key. No side effects except optional demo in __main__. Does not reassign provided globals. No unnecessary I/O.\n- Minor nits: Using both re.IGNORECASE and lowercasing tokens is redundant (either alone would suffice if text were lowercased first or pattern remained case-insensitive). The try/except NameError guard is slightly unconventional versus checking 'text' and 'k' in globals(), but functional and clear with the comment. Neither issue impacts correctness.\nOverall: High-quality, clean, and efficient code." + }, + "final_judgement": { + "adherence_score": 5, + "code_quality_score": 5, + "comments": "Fully meets all task requirements, including exact sorting, edge cases, and output contract. Code is correct, efficient, and readable. Minor redundancies (IGNORECASE plus lowercasing) do not affect correctness." + } + }, + "parse_error": null +} \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_04.json b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_04.json new file mode 100644 index 0000000000..4f0bbb4fe8 --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_04.json @@ -0,0 +1,16 @@ +{ + "file": "run_04.py", + "raw": "{\n \"reasoning\": {\n \"task_adherence\": \"- Tokenization: Uses regex r\\\"[a-z0-9]+\\\" with re.ASCII | re.IGNORECASE and lowercases tokens in _tokens(), matching the requirement to lowercase and treat non [a-z0-9] ASCII chars as separators.\\n- Inputs: Accesses globals text and k without reassigning them. Presence is checked via try/except; when provided, it computes top_k = top_k_tokens(text, k) as required.\\n- Requirement 1 (sorting): Defines key = lambda kv: (-kv[1], kv[0]) and applies it consistently. For k >= u, returns sorted(cnt.items(), key=key). For 0 < k < u, either sorts and slices or uses heapq.nsmallest with the same key, which returns the k items in ascending order by the key (i.e., count desc, token asc). Does not rely on Counter.most_common tie ordering.\\n- Requirement 2 (top_k list of tuples with correct length): The function returns a list of (token, count) tuples. Length is min(k, number of unique tokens) due to branches (k <= 0 -> [], k >= u -> all, else -> exactly k via slice or nsmallest). Tokens are lowercased.\\n- Requirement 3 (edge cases): If k <= 0, returns []. If there are zero unique tokens (u == 0), returns []. Both cases are handled.\\n- Requirement 4 (no I/O): No input(), file I/O, or network access. Printing occurs only in a demo path when globals are absent and __name__ == \\\"__main__\\\"; with provided globals (per task), it performs no printing.\\n- Output contract: Ensures top_k is defined at the end when globals exist. Optional printing is limited to the demo path and prints only top_k as a Python literal on the last line.\\n- Other notes: Does not reassign text or k. Implements specified sort key directly.\",\n \"code_quality\": \"- Clarity and structure: Clean separation via helper _tokens() and top_k_tokens(); meaningful names; type hints provided; inline comments and complexity note included.\\n- Correctness: Tokenization and sorting logic meet specs. Uses Counter for counting; avoids most_common tie behavior by explicit sort key. heapq.nsmallest with the composite key preserves the required ordering of the returned k items.\\n- Efficiency: Counts in O(N tokens). Selects top-k via either full sort (when k relatively large) or heap-based selection (when k small), which is a sensible optimization. Regex precompiled globally.\\n- Readability/Maintainability: Concise, readable, and follows Python best practices. No obvious bugs or edge-case gaps given the stated inputs. No unnecessary side effects when globals are present.\\n- Minor nitpicks: The threshold 0.3 is heuristic (acceptable). Type ignore comments are unnecessary but harmless.\"\n },\n \"final_judgement\": {\n \"adherence_score\": 5,\n \"code_quality_score\": 5,\n \"comments\": \"Meets all task requirements precisely, including tokenization, sorting, edge cases, global handling, and output contract. Code is clear, efficient, and well-structured.\"\n }\n}", + "parsed": { + "reasoning": { + "task_adherence": "- Tokenization: Uses regex r\"[a-z0-9]+\" with re.ASCII | re.IGNORECASE and lowercases tokens in _tokens(), matching the requirement to lowercase and treat non [a-z0-9] ASCII chars as separators.\n- Inputs: Accesses globals text and k without reassigning them. Presence is checked via try/except; when provided, it computes top_k = top_k_tokens(text, k) as required.\n- Requirement 1 (sorting): Defines key = lambda kv: (-kv[1], kv[0]) and applies it consistently. For k >= u, returns sorted(cnt.items(), key=key). For 0 < k < u, either sorts and slices or uses heapq.nsmallest with the same key, which returns the k items in ascending order by the key (i.e., count desc, token asc). Does not rely on Counter.most_common tie ordering.\n- Requirement 2 (top_k list of tuples with correct length): The function returns a list of (token, count) tuples. Length is min(k, number of unique tokens) due to branches (k <= 0 -> [], k >= u -> all, else -> exactly k via slice or nsmallest). Tokens are lowercased.\n- Requirement 3 (edge cases): If k <= 0, returns []. If there are zero unique tokens (u == 0), returns []. Both cases are handled.\n- Requirement 4 (no I/O): No input(), file I/O, or network access. Printing occurs only in a demo path when globals are absent and __name__ == \"__main__\"; with provided globals (per task), it performs no printing.\n- Output contract: Ensures top_k is defined at the end when globals exist. Optional printing is limited to the demo path and prints only top_k as a Python literal on the last line.\n- Other notes: Does not reassign text or k. Implements specified sort key directly.", + "code_quality": "- Clarity and structure: Clean separation via helper _tokens() and top_k_tokens(); meaningful names; type hints provided; inline comments and complexity note included.\n- Correctness: Tokenization and sorting logic meet specs. Uses Counter for counting; avoids most_common tie behavior by explicit sort key. heapq.nsmallest with the composite key preserves the required ordering of the returned k items.\n- Efficiency: Counts in O(N tokens). Selects top-k via either full sort (when k relatively large) or heap-based selection (when k small), which is a sensible optimization. Regex precompiled globally.\n- Readability/Maintainability: Concise, readable, and follows Python best practices. No obvious bugs or edge-case gaps given the stated inputs. No unnecessary side effects when globals are present.\n- Minor nitpicks: The threshold 0.3 is heuristic (acceptable). Type ignore comments are unnecessary but harmless." + }, + "final_judgement": { + "adherence_score": 5, + "code_quality_score": 5, + "comments": "Meets all task requirements precisely, including tokenization, sorting, edge cases, global handling, and output contract. Code is clear, efficient, and well-structured." + } + }, + "parse_error": null +} \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_05.json b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_05.json new file mode 100644 index 0000000000..6719df859e --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_05.json @@ -0,0 +1,16 @@ +{ + "file": "run_05.py", + "raw": "{\n \"reasoning\": {\n \"task_adherence\": \"- Tokenization: Uses a compiled regex r\\\"[a-z0-9]+\\\" with re.ASCII and re.IGNORECASE, and explicitly lowercases tokens in _tokens(). This matches the requirement to lowercase and to treat tokens as ASCII [a-z0-9]+ with other chars as separators.\\n- Sorting spec: Defines key = lambda kv: (-kv[1], kv[0]), which enforces sort by count descending then token ascending. Both sorted(...) and heapq.nsmallest(..., key=key) use this key, satisfying the specified ordering and avoiding Counter.most_common tie behavior.\\n- Exact Top-K: Returns exact results. When k >= number of unique tokens (u), it returns the fully sorted list; otherwise it either sorts then slices or uses heapq.nsmallest with the specified key. heapq.nsmallest returns items in ascending key order, so the resulting list is already sorted as required.\\n- Output variable: With provided globals, the code assigns top_k = top_k_tokens(text, k) at the end, satisfying \\\"top_k must be defined exactly as described.\\\" It does not reassign text or k.\\n- Edge cases: If k <= 0, top_k_tokens returns [], and therefore top_k becomes []. If there are zero unique tokens, it returns []. Both meet the requirements.\\n- Inputs and environment: No input(), file I/O, or network access. The code runs as-is given the globals. It also includes an optional __main__ demo (only prints top_k) when globals are missing, which is allowed by the \\\"Optional printing\\\" clause.\\n- Tie handling: Does not rely on Counter.most_common; implements explicit sort key as required.\\n- Minor note: It treats non-int k as invalid and returns [], which is slightly beyond the spec (k is stated to be int) but harmless and not contrary to requirements.\\nOverall, the code fully adheres to the task instructions.\",\n \"code_quality\": \"- Correctness: Logic is sound; tokenization and ordering are correctly implemented. Top-K selection is exact in all branches.\\n- Efficiency: Uses an adaptive strategy: full sort when k is large relative to u (k >= 0.3u) and heap-based selection otherwise, achieving O(U log k) or O(U log U) as appropriate. Counter is used efficiently.\\n- Readability/Clarity: Functions are small and focused. The key for sorting is clearly documented via a comment. The regex is compiled once at module scope. Type hints are provided. Complexity comment is helpful.\\n- Maintainability/Style: Clean structure with a helper _tokens(). Uses try/except to detect provided globals without reassigning them, plus type: ignore comments for static checkers; acceptable here. Minor stylistic nits could be: building Counter directly from the generator (Counter(_tokens(text))) and possibly omitting re.IGNORECASE since tokens are lowercased anyway, but these do not affect correctness or clarity.\\n- No bugs or evident edge-case failures found.\\nOverall, code quality is high.\"\n },\n \"final_judgement\": {\n \"adherence_score\": 5,\n \"code_quality_score\": 5,\n \"comments\": \"Meets all task requirements precisely, including tokenization, ordering, edge cases, and output contract. Code is clean, efficient, and well-structured. Minor stylistic tweaks are optional.\"\n }\n}", + "parsed": { + "reasoning": { + "task_adherence": "- Tokenization: Uses a compiled regex r\"[a-z0-9]+\" with re.ASCII and re.IGNORECASE, and explicitly lowercases tokens in _tokens(). This matches the requirement to lowercase and to treat tokens as ASCII [a-z0-9]+ with other chars as separators.\n- Sorting spec: Defines key = lambda kv: (-kv[1], kv[0]), which enforces sort by count descending then token ascending. Both sorted(...) and heapq.nsmallest(..., key=key) use this key, satisfying the specified ordering and avoiding Counter.most_common tie behavior.\n- Exact Top-K: Returns exact results. When k >= number of unique tokens (u), it returns the fully sorted list; otherwise it either sorts then slices or uses heapq.nsmallest with the specified key. heapq.nsmallest returns items in ascending key order, so the resulting list is already sorted as required.\n- Output variable: With provided globals, the code assigns top_k = top_k_tokens(text, k) at the end, satisfying \"top_k must be defined exactly as described.\" It does not reassign text or k.\n- Edge cases: If k <= 0, top_k_tokens returns [], and therefore top_k becomes []. If there are zero unique tokens, it returns []. Both meet the requirements.\n- Inputs and environment: No input(), file I/O, or network access. The code runs as-is given the globals. It also includes an optional __main__ demo (only prints top_k) when globals are missing, which is allowed by the \"Optional printing\" clause.\n- Tie handling: Does not rely on Counter.most_common; implements explicit sort key as required.\n- Minor note: It treats non-int k as invalid and returns [], which is slightly beyond the spec (k is stated to be int) but harmless and not contrary to requirements.\nOverall, the code fully adheres to the task instructions.", + "code_quality": "- Correctness: Logic is sound; tokenization and ordering are correctly implemented. Top-K selection is exact in all branches.\n- Efficiency: Uses an adaptive strategy: full sort when k is large relative to u (k >= 0.3u) and heap-based selection otherwise, achieving O(U log k) or O(U log U) as appropriate. Counter is used efficiently.\n- Readability/Clarity: Functions are small and focused. The key for sorting is clearly documented via a comment. The regex is compiled once at module scope. Type hints are provided. Complexity comment is helpful.\n- Maintainability/Style: Clean structure with a helper _tokens(). Uses try/except to detect provided globals without reassigning them, plus type: ignore comments for static checkers; acceptable here. Minor stylistic nits could be: building Counter directly from the generator (Counter(_tokens(text))) and possibly omitting re.IGNORECASE since tokens are lowercased anyway, but these do not affect correctness or clarity.\n- No bugs or evident edge-case failures found.\nOverall, code quality is high." + }, + "final_judgement": { + "adherence_score": 5, + "code_quality_score": 5, + "comments": "Meets all task requirements precisely, including tokenization, ordering, edge cases, and output contract. Code is clean, efficient, and well-structured. Minor stylistic tweaks are optional." + } + }, + "parse_error": null +} \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_06.json b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_06.json new file mode 100644 index 0000000000..4c9833ed61 --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_06.json @@ -0,0 +1,16 @@ +{ + "file": "run_06.py", + "raw": "{\n \"reasoning\": {\n \"task_adherence\": \"- Tokenization requirements: The code compiles a regex r\\\"[a-z0-9]+\\\" with re.ASCII and re.IGNORECASE, then lowercases each match in _tokens(). This matches the spec: lowercase tokens and ASCII [a-z0-9]+ sequences with all other chars as separators.\\n- Inputs/globals: The code reads text and k without reassigning them. It wraps access in a try/except NameError to allow a demo when globals are absent. Under the task's stated scenario (globals are provided), it uses them directly and does not reassign them.\\n- Requirement 1 (sorting): It defines key = lambda kv: (-kv[1], kv[0]) on (token, count) pairs, which corresponds to sorting by count descending, then token ascending. When k*10 >= 3*u, it uses sorted(cnt.items(), key=key)[:eff_k]; otherwise it uses heapq.nsmallest(eff_k, cnt.items(), key=key). Since nsmallest returns items in ascending order of the key (equivalent to sorted(... )[:n]), and the key uses -count, both branches produce the correct final ordering: highest count first, then lexicographically smallest token on ties.\\n- Requirement 2 (top_k value and length): eff_k = min(k, number of unique tokens) is enforced via eff_k = k if k < u else u. The result in both branches is a list of (token, count) tuples of length eff_k. The final assignment top_k = top_k_tokens(text, k) sets top_k accordingly.\\n- Requirement 3 (edge cases): If k <= 0, top_k_tokens returns []. If there are zero unique tokens (u == 0), it returns []. Both satisfy the edge case handling.\\n- Requirement 4 (I/O/network): No input(), file I/O, or network access is used. With provided globals, the script does not print anything. A demo print occurs only when globals are missing and the script is run as __main__, which does not violate the requirement.\\n- Output contract: With provided globals, top_k is defined at the end as specified. Optional printing is respected; when printing in demo mode, it prints only top_k on the last line as a Python literal. It does not rely on Counter.most_common; sorting/tie-breaking is implemented via a custom key.\\n- Minor note: If the script is imported as a module without text/k provided (and not __main__), top_k would not be defined. However, the task states the globals are provided, so this does not affect adherence under the specified conditions.\",\n \"code_quality\": \"- Correctness: The algorithm correctly tokenizes, counts, and selects Top-K with the required ordering. It does not rely on Counter.most_common tie behavior.\\n- Efficiency: Uses an adaptive approach: sorts all when k is a significant fraction of U; otherwise uses heapq.nsmallest with a key, which is O(U log k). Counting is O(N tokens). This is efficient and appropriate.\\n- Readability and maintainability: Clear structure with small, well-named helpers (_tokens, top_k_tokens). Type hints are provided. Comments document the selection strategy and complexity. Variable names (u, eff_k) are concise and understandable. The key function is simple and accurate.\\n- Style/robustness: No unnecessary reassignment of globals. The try/except NameError pattern for optional demo is reasonable and guarded by __main__. Minor nit: In general library usage, if imported without globals, top_k may remain undefined; this is acceptable given the task context. Overall, the code is clean, idiomatic, and maintainable.\"\n },\n \"final_judgement\": {\n \"adherence_score\": 5,\n \"code_quality_score\": 5,\n \"comments\": \"Excellent adherence: correct tokenization, ordering, edge-case handling, and output variable. Efficient and clean implementation with appropriate tie-breaking and no reliance on most_common. Minor non-issue: top_k undefined if imported without globals, but within task constraints this is fine.\"\n }\n}", + "parsed": { + "reasoning": { + "task_adherence": "- Tokenization requirements: The code compiles a regex r\"[a-z0-9]+\" with re.ASCII and re.IGNORECASE, then lowercases each match in _tokens(). This matches the spec: lowercase tokens and ASCII [a-z0-9]+ sequences with all other chars as separators.\n- Inputs/globals: The code reads text and k without reassigning them. It wraps access in a try/except NameError to allow a demo when globals are absent. Under the task's stated scenario (globals are provided), it uses them directly and does not reassign them.\n- Requirement 1 (sorting): It defines key = lambda kv: (-kv[1], kv[0]) on (token, count) pairs, which corresponds to sorting by count descending, then token ascending. When k*10 >= 3*u, it uses sorted(cnt.items(), key=key)[:eff_k]; otherwise it uses heapq.nsmallest(eff_k, cnt.items(), key=key). Since nsmallest returns items in ascending order of the key (equivalent to sorted(... )[:n]), and the key uses -count, both branches produce the correct final ordering: highest count first, then lexicographically smallest token on ties.\n- Requirement 2 (top_k value and length): eff_k = min(k, number of unique tokens) is enforced via eff_k = k if k < u else u. The result in both branches is a list of (token, count) tuples of length eff_k. The final assignment top_k = top_k_tokens(text, k) sets top_k accordingly.\n- Requirement 3 (edge cases): If k <= 0, top_k_tokens returns []. If there are zero unique tokens (u == 0), it returns []. Both satisfy the edge case handling.\n- Requirement 4 (I/O/network): No input(), file I/O, or network access is used. With provided globals, the script does not print anything. A demo print occurs only when globals are missing and the script is run as __main__, which does not violate the requirement.\n- Output contract: With provided globals, top_k is defined at the end as specified. Optional printing is respected; when printing in demo mode, it prints only top_k on the last line as a Python literal. It does not rely on Counter.most_common; sorting/tie-breaking is implemented via a custom key.\n- Minor note: If the script is imported as a module without text/k provided (and not __main__), top_k would not be defined. However, the task states the globals are provided, so this does not affect adherence under the specified conditions.", + "code_quality": "- Correctness: The algorithm correctly tokenizes, counts, and selects Top-K with the required ordering. It does not rely on Counter.most_common tie behavior.\n- Efficiency: Uses an adaptive approach: sorts all when k is a significant fraction of U; otherwise uses heapq.nsmallest with a key, which is O(U log k). Counting is O(N tokens). This is efficient and appropriate.\n- Readability and maintainability: Clear structure with small, well-named helpers (_tokens, top_k_tokens). Type hints are provided. Comments document the selection strategy and complexity. Variable names (u, eff_k) are concise and understandable. The key function is simple and accurate.\n- Style/robustness: No unnecessary reassignment of globals. The try/except NameError pattern for optional demo is reasonable and guarded by __main__. Minor nit: In general library usage, if imported without globals, top_k may remain undefined; this is acceptable given the task context. Overall, the code is clean, idiomatic, and maintainable." + }, + "final_judgement": { + "adherence_score": 5, + "code_quality_score": 5, + "comments": "Excellent adherence: correct tokenization, ordering, edge-case handling, and output variable. Efficient and clean implementation with appropriate tie-breaking and no reliance on most_common. Minor non-issue: top_k undefined if imported without globals, but within task constraints this is fine." + } + }, + "parse_error": null +} \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_07.json b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_07.json new file mode 100644 index 0000000000..5a97b7366e --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_07.json @@ -0,0 +1,16 @@ +{ + "file": "run_07.py", + "raw": "{\n \"reasoning\": {\n \"task_adherence\": \"- Tokenization: Uses regex [a-z0-9]+ with re.ASCII and re.IGNORECASE, and explicitly lowercases each matched token via .lower(). This fulfills the requirement of ASCII tokenization with lowercase tokens, and per-token lowercasing is acceptable.\\n- Inputs: The script accesses globals text and k without reassigning them. It uses a try/except NameError to detect their presence and only falls back to a demo when they are absent and __name__ == \\\"__main__\\\", which is acceptable.\\n- Sorting/Ranking: Defines key = lambda kv: (-kv[1], kv[0]) and uses either sorted(..., key=key) or heapq.nsmallest(k, ..., key=key). This correctly implements sort by count descending, then token ascending, without relying on Counter.most_common.\\n- Top-K result: The function top_k_tokens returns exactly the top k items in the correct order, with length min(k, number of unique tokens). For k >= u, it returns the fully sorted list; for small k it returns the k smallest by the key (which corresponds to highest counts and lexicographically smallest tokens in ties) in sorted order.\\n- Edge cases: If k <= 0, returns []. If there are no tokens (u == 0), returns []. Both match the requirements.\\n- Output contract: When globals are provided, top_k is set at the end via top_k = top_k_tokens(text, k). No extra output is produced unless running the demo; printing is optional and the demo prints only top_k.\\n- Constraints: No input(), file I/O, or network access. Does not rely on Counter.most_common tie ordering.\\n- Ambiguities: None materially affecting compliance. The demo printing is limited to one line and only when globals are absent, which is allowed.\",\n \"code_quality\": \"- Clarity/Structure: Clear separation of concerns with a tokenizer helper, a top_k_tokens function, and top-level glue code. Readable variable names and a concise sort key.\\n- Correctness: The key function and use of sorted/heapq.nsmallest ensure exact ordering by (-count, token). Tie-breaking is handled correctly.\\n- Efficiency: Uses Counter for O(N) counting. Chooses between heap-based selection O(U log k) and full sort O(U log U) with a reasonable threshold heuristic. This is efficient and scalable.\\n- Readability/Maintainability: Type hints provided; code is straightforward and commented where relevant (complexity note). The try/except pattern for globals is clean and safe.\\n- Best practices: Avoids Counter.most_common to ensure explicit ordering. No side effects except optional demo printing.\\n- Minor nits: re.IGNORECASE is redundant since tokens are lowercased; harmless. Could add a short docstring, but not necessary.\\n\\nOverall, code quality is high with only trivial, non-impactful redundancies.\"\n },\n \"final_judgement\": {\n \"adherence_score\": 5,\n \"code_quality_score\": 5,\n \"comments\": \"Fully meets the task: correct tokenization, ordering, edge-case handling, and top_k definition with no forbidden I/O. Code is clean, efficient, and well-structured. Minor redundancy in regex flags is harmless.\"\n }\n}", + "parsed": { + "reasoning": { + "task_adherence": "- Tokenization: Uses regex [a-z0-9]+ with re.ASCII and re.IGNORECASE, and explicitly lowercases each matched token via .lower(). This fulfills the requirement of ASCII tokenization with lowercase tokens, and per-token lowercasing is acceptable.\n- Inputs: The script accesses globals text and k without reassigning them. It uses a try/except NameError to detect their presence and only falls back to a demo when they are absent and __name__ == \"__main__\", which is acceptable.\n- Sorting/Ranking: Defines key = lambda kv: (-kv[1], kv[0]) and uses either sorted(..., key=key) or heapq.nsmallest(k, ..., key=key). This correctly implements sort by count descending, then token ascending, without relying on Counter.most_common.\n- Top-K result: The function top_k_tokens returns exactly the top k items in the correct order, with length min(k, number of unique tokens). For k >= u, it returns the fully sorted list; for small k it returns the k smallest by the key (which corresponds to highest counts and lexicographically smallest tokens in ties) in sorted order.\n- Edge cases: If k <= 0, returns []. If there are no tokens (u == 0), returns []. Both match the requirements.\n- Output contract: When globals are provided, top_k is set at the end via top_k = top_k_tokens(text, k). No extra output is produced unless running the demo; printing is optional and the demo prints only top_k.\n- Constraints: No input(), file I/O, or network access. Does not rely on Counter.most_common tie ordering.\n- Ambiguities: None materially affecting compliance. The demo printing is limited to one line and only when globals are absent, which is allowed.", + "code_quality": "- Clarity/Structure: Clear separation of concerns with a tokenizer helper, a top_k_tokens function, and top-level glue code. Readable variable names and a concise sort key.\n- Correctness: The key function and use of sorted/heapq.nsmallest ensure exact ordering by (-count, token). Tie-breaking is handled correctly.\n- Efficiency: Uses Counter for O(N) counting. Chooses between heap-based selection O(U log k) and full sort O(U log U) with a reasonable threshold heuristic. This is efficient and scalable.\n- Readability/Maintainability: Type hints provided; code is straightforward and commented where relevant (complexity note). The try/except pattern for globals is clean and safe.\n- Best practices: Avoids Counter.most_common to ensure explicit ordering. No side effects except optional demo printing.\n- Minor nits: re.IGNORECASE is redundant since tokens are lowercased; harmless. Could add a short docstring, but not necessary.\n\nOverall, code quality is high with only trivial, non-impactful redundancies." + }, + "final_judgement": { + "adherence_score": 5, + "code_quality_score": 5, + "comments": "Fully meets the task: correct tokenization, ordering, edge-case handling, and top_k definition with no forbidden I/O. Code is clean, efficient, and well-structured. Minor redundancy in regex flags is harmless." + } + }, + "parse_error": null +} \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_08.json b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_08.json new file mode 100644 index 0000000000..37492dbe4b --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_08.json @@ -0,0 +1,16 @@ +{ + "file": "run_08.py", + "raw": "{\n \"reasoning\": {\n \"task_adherence\": \"- Tokenization: Uses a compiled regex r\\\"[a-z0-9]+\\\" with flags re.ASCII | re.IGNORECASE and lowercases each match in _tokens(). This exactly matches the requirement: ASCII [a-z0-9]+ sequences, all other characters as separators, and tokens lowercased.\\n- Inputs/Globals: The script expects globals text (str) and k (int) and does not reassign them. It accesses them in a try block; if present, it computes top_k = top_k_tokens(text, k). This respects the constraint not to modify the provided globals.\\n- Sorting requirement: Implements ordering with key = lambda kv: (-kv[1], kv[0]) applied to (token, count) items, which sorts by count descending then token ascending. For k >= u or when sorting-all-and-slicing, it uses sorted(..., key=key). For the heap path, it uses heapq.nsmallest(k, ..., key=key), which returns the k smallest by the key in sorted order, i.e., highest counts first with correct tiebreaker. It does not rely on Counter.most_common.\\n- Top-K length and content: Returns a list of (token, count) tuples of length min(k, number of unique tokens) in all code paths. If k >= u, returns the full sorted list; else returns exactly k items.\\n- Edge cases: If k <= 0, top_k_tokens returns [] (requirement 3). If there are zero unique tokens (u == 0), returns [], which is consistent with requirement 2.\\n- Output contract: When globals are provided, top_k is defined at module end as required. Optional printing is only done in a demo branch when globals are missing and __name__ == \\\"__main__\\\"; it prints only top_k on the last line, complying with the optional printing rule. With provided globals, it does not print, which is allowed.\\n- Prohibited actions: No input(), file I/O, or network access is used.\\n- Minor note: If the file is imported as a module without text/k and not run as __main__, top_k wouldn't be defined. However, the task states the globals are provided, so under the intended conditions, the contract is met.\",\n \"code_quality\": \"- Correctness: The implementation correctly counts tokens and selects/sorts Top-K per the specified key without relying on Counter.most_common.\\n- Efficiency: Uses Counter for O(N tokens) counting and an optimization to choose between sorting all (O(U log U)) or heap selection (O(U log k)), which is efficient and well-considered.\\n- Readability/Structure: Clear function decomposition (_tokens and top_k_tokens), descriptive names, type hints for clarity and maintainability, and concise comments on complexity and selection strategy.\\n- Robustness: Handles edge cases (k <= 0, no tokens) gracefully. Tokenization is explicit and correct for ASCII alphanumerics.\\n- Style/Best practices: Uses a compiled regex, avoids unnecessary global mutation, and adheres to the output contract. The try/except to detect provided globals is acceptable and simple.\\n- No bugs or inefficiencies apparent. The heapq.nsmallest result is in sorted order by the given key, so the returned top_k has the required ordering.\"\n },\n \"final_judgement\": {\n \"adherence_score\": 5,\n \"code_quality_score\": 5,\n \"comments\": \"Meets all task requirements precisely, including tokenization, sorting, edge-case handling, and output contract. Code is clear, efficient, and well-structured. No issues found.\"\n }\n}", + "parsed": { + "reasoning": { + "task_adherence": "- Tokenization: Uses a compiled regex r\"[a-z0-9]+\" with flags re.ASCII | re.IGNORECASE and lowercases each match in _tokens(). This exactly matches the requirement: ASCII [a-z0-9]+ sequences, all other characters as separators, and tokens lowercased.\n- Inputs/Globals: The script expects globals text (str) and k (int) and does not reassign them. It accesses them in a try block; if present, it computes top_k = top_k_tokens(text, k). This respects the constraint not to modify the provided globals.\n- Sorting requirement: Implements ordering with key = lambda kv: (-kv[1], kv[0]) applied to (token, count) items, which sorts by count descending then token ascending. For k >= u or when sorting-all-and-slicing, it uses sorted(..., key=key). For the heap path, it uses heapq.nsmallest(k, ..., key=key), which returns the k smallest by the key in sorted order, i.e., highest counts first with correct tiebreaker. It does not rely on Counter.most_common.\n- Top-K length and content: Returns a list of (token, count) tuples of length min(k, number of unique tokens) in all code paths. If k >= u, returns the full sorted list; else returns exactly k items.\n- Edge cases: If k <= 0, top_k_tokens returns [] (requirement 3). If there are zero unique tokens (u == 0), returns [], which is consistent with requirement 2.\n- Output contract: When globals are provided, top_k is defined at module end as required. Optional printing is only done in a demo branch when globals are missing and __name__ == \"__main__\"; it prints only top_k on the last line, complying with the optional printing rule. With provided globals, it does not print, which is allowed.\n- Prohibited actions: No input(), file I/O, or network access is used.\n- Minor note: If the file is imported as a module without text/k and not run as __main__, top_k wouldn't be defined. However, the task states the globals are provided, so under the intended conditions, the contract is met.", + "code_quality": "- Correctness: The implementation correctly counts tokens and selects/sorts Top-K per the specified key without relying on Counter.most_common.\n- Efficiency: Uses Counter for O(N tokens) counting and an optimization to choose between sorting all (O(U log U)) or heap selection (O(U log k)), which is efficient and well-considered.\n- Readability/Structure: Clear function decomposition (_tokens and top_k_tokens), descriptive names, type hints for clarity and maintainability, and concise comments on complexity and selection strategy.\n- Robustness: Handles edge cases (k <= 0, no tokens) gracefully. Tokenization is explicit and correct for ASCII alphanumerics.\n- Style/Best practices: Uses a compiled regex, avoids unnecessary global mutation, and adheres to the output contract. The try/except to detect provided globals is acceptable and simple.\n- No bugs or inefficiencies apparent. The heapq.nsmallest result is in sorted order by the given key, so the returned top_k has the required ordering." + }, + "final_judgement": { + "adherence_score": 5, + "code_quality_score": 5, + "comments": "Meets all task requirements precisely, including tokenization, sorting, edge-case handling, and output contract. Code is clear, efficient, and well-structured. No issues found." + } + }, + "parse_error": null +} \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_09.json b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_09.json new file mode 100644 index 0000000000..5f4dea6d91 --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_09.json @@ -0,0 +1,16 @@ +{ + "file": "run_09.py", + "raw": "{\n \"reasoning\": {\n \"task_adherence\": \"Step-by-step adherence check:\\n- Tokenization rules: The code compiles a regex r\\\"[a-z0-9]+\\\" with flags re.ASCII | re.IGNORECASE and the _tokens generator yields matches lowercased. This matches the requirement to lowercase and to treat ASCII [a-z0-9]+ as tokens with other chars as separators.\\n- Inputs/globals: It uses provided globals text and k without reassigning them. Access is guarded via a try/except NameError; when globals exist, it computes top_k from them.\\n- Requirements:\\n 1) Sort key (-count, token): Implemented via key = lambda kv: (-kv[1], kv[0]) and used both in sorted(...) and in heapq.nsmallest(...), ensuring count desc then token asc.\\n 2) Set top_k to the list of (token, count) of length min(k, unique tokens): m is computed as min(k, u) (with early return [] if k <= 0). Returns exactly m items from either full sort slice [:m] or nsmallest(m, ...), maintaining the required ordering.\\n 3) Edge case k <= 0: top_k_tokens returns [], so top_k becomes [].\\n 4) No input(), file I/O, or network used. Script runs with provided globals and does not modify them.\\n- Output contract: With provided globals, the else branch sets top_k = top_k_tokens(text, k). In the demo (when globals missing and __name__ == \\\"__main__\\\"), it defines top_k and prints only top_k on the last line. It does not rely on Counter.most_common for tie ordering. Therefore, all specified behaviors are satisfied.\\n- Minor note: If globals are missing and not running as __main__, top_k would remain undefined; however, the task states globals are provided, so this path is out of scope. Overall, adherence is complete.\",\n \"code_quality\": \"Code quality assessment:\\n- Correctness: Algorithm correctly counts tokens, handles lowercasing, and produces the exact Top-K with the specified ordering. It avoids Counter.most_common tie ordering.\\n- Efficiency: Uses Counter for O(N tokens), and switches between full sort and heapq.nsmallest for selection based on m relative to u, which is a good optimization. Key function with negative counts is appropriate for nsmallest.\\n- Readability/Structure: Clear helper _tokens with type hints. Well-named variables, concise logic, and explanatory comments for complexity and selection strategy. Regex is compiled once at module level.\\n- Maintainability/Best practices: Uses typing annotations, avoids side effects on inputs, and isolates logic in a function. The try/except to detect globals is reasonable; type: ignore comments are minimally intrusive. Optional print is constrained to demo path and prints only the required artifact. No obvious bugs or stylistic issues.\"\n },\n \"final_judgement\": {\n \"adherence_score\": 5,\n \"code_quality_score\": 5,\n \"comments\": \"Meets all task requirements precisely, including tokenization, ordering, edge cases, and output contract. Code is clear, efficient, and well-structured. Minor non-issue: in non-main context without globals, top_k isn\u2019t set, but task guarantees globals, so this is acceptable.\"\n }\n}", + "parsed": { + "reasoning": { + "task_adherence": "Step-by-step adherence check:\n- Tokenization rules: The code compiles a regex r\"[a-z0-9]+\" with flags re.ASCII | re.IGNORECASE and the _tokens generator yields matches lowercased. This matches the requirement to lowercase and to treat ASCII [a-z0-9]+ as tokens with other chars as separators.\n- Inputs/globals: It uses provided globals text and k without reassigning them. Access is guarded via a try/except NameError; when globals exist, it computes top_k from them.\n- Requirements:\n 1) Sort key (-count, token): Implemented via key = lambda kv: (-kv[1], kv[0]) and used both in sorted(...) and in heapq.nsmallest(...), ensuring count desc then token asc.\n 2) Set top_k to the list of (token, count) of length min(k, unique tokens): m is computed as min(k, u) (with early return [] if k <= 0). Returns exactly m items from either full sort slice [:m] or nsmallest(m, ...), maintaining the required ordering.\n 3) Edge case k <= 0: top_k_tokens returns [], so top_k becomes [].\n 4) No input(), file I/O, or network used. Script runs with provided globals and does not modify them.\n- Output contract: With provided globals, the else branch sets top_k = top_k_tokens(text, k). In the demo (when globals missing and __name__ == \"__main__\"), it defines top_k and prints only top_k on the last line. It does not rely on Counter.most_common for tie ordering. Therefore, all specified behaviors are satisfied.\n- Minor note: If globals are missing and not running as __main__, top_k would remain undefined; however, the task states globals are provided, so this path is out of scope. Overall, adherence is complete.", + "code_quality": "Code quality assessment:\n- Correctness: Algorithm correctly counts tokens, handles lowercasing, and produces the exact Top-K with the specified ordering. It avoids Counter.most_common tie ordering.\n- Efficiency: Uses Counter for O(N tokens), and switches between full sort and heapq.nsmallest for selection based on m relative to u, which is a good optimization. Key function with negative counts is appropriate for nsmallest.\n- Readability/Structure: Clear helper _tokens with type hints. Well-named variables, concise logic, and explanatory comments for complexity and selection strategy. Regex is compiled once at module level.\n- Maintainability/Best practices: Uses typing annotations, avoids side effects on inputs, and isolates logic in a function. The try/except to detect globals is reasonable; type: ignore comments are minimally intrusive. Optional print is constrained to demo path and prints only the required artifact. No obvious bugs or stylistic issues." + }, + "final_judgement": { + "adherence_score": 5, + "code_quality_score": 5, + "comments": "Meets all task requirements precisely, including tokenization, ordering, edge cases, and output contract. Code is clear, efficient, and well-structured. Minor non-issue: in non-main context without globals, top_k isn\u2019t set, but task guarantees globals, so this is acceptable." + } + }, + "parse_error": null +} \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_10.json b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_10.json new file mode 100644 index 0000000000..c2ca4a50c4 --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_10.json @@ -0,0 +1,16 @@ +{ + "file": "run_10.py", + "raw": "{\n \"reasoning\": {\n \"task_adherence\": \"- Tokenization requirements: The code lowercases tokens and uses a regex r\\\"[a-z0-9]+\\\" with re.ASCII and re.IGNORECASE, then explicitly lowercases matches in _tokens(). This matches the spec: ASCII [a-z0-9]+ sequences, lowercase output, non-matching chars are separators.\\n- Inputs: It treats text and k as provided globals and does not reassign them. It accesses them via a presence check and then calls top_k_tokens(text, k). No input(), file I/O, or network access used.\\n- Requirement 1 (sorting key): Uses key = lambda kv: (-kv[1], kv[0]) both for sorted(...) and heapq.nsmallest(...), which implements sorting by count desc, then token asc. heapq.nsmallest returns results in increasing order of the key, which matches the required order.\\n- Requirement 2 (top_k content and length): top_k_tokens returns a list of (token, count) tuples. It computes k_eff = min(k, number of unique tokens) and slices to that length. The top-level assigns top_k = top_k_tokens(text, k), so top_k has the correct type and length.\\n- Requirement 3 (edge case k <= 0): top_k_tokens returns [] for k <= 0. That is propagated to top_k.\\n- Requirement 4 (script runs as-is): When globals text and k exist, top_k is defined at the end of execution via the else branch of the try/except. No prohibited I/O is used. If globals are missing, it only runs a demo when __main__, which is acceptable and does not violate the contract in the intended environment where globals are provided.\\n- Output contract: At the end, top_k is defined as specified when text and k are provided. Optional printing is only done in the demo path and prints just top_k on the last line.\\n- Note about Counter.most_common: The code does not use most_common; it implements the specified sort explicitly.\\nOverall, all instructions are satisfied without reliance on unspecified behavior. The minor demo branch does not interfere with the required behavior.\",\n \"code_quality\": \"- Correctness: The counting and selection logic is correct and adheres to the specified ordering, including tie-breaking.\\n- Efficiency: Uses Counter for O(N tokens) counting. Selects top-k via full sort when k is a substantial fraction of U, otherwise uses heapq.nsmallest for O(U log k). This is efficient and documented in a complexity comment.\\n- Readability and structure: Clear separation of concerns (_tokens, top_k_tokens). Type hints for inputs/outputs improve clarity. Variable names are concise but understandable (cnt, u, k_eff). Inline comments explain decisions.\\n- Maintainability: Modular with small, focused functions; easy to adapt. Avoids relying on Counter.most_common tie behavior as required.\\n- Style/best practices: Uses a compiled regex and a generator. Handles edge cases early. The try/except check for globals is slightly unconventional but effective and harmless. Using re.IGNORECASE plus lower() is slightly redundant but not problematic.\\nNo bugs or meaningful inefficiencies identified.\"\n },\n \"final_judgement\": {\n \"adherence_score\": 5,\n \"code_quality_score\": 5,\n \"comments\": \"Excellent adherence and implementation. Correct tokenization, ordering, edge-case handling, and output variable set as required. Clean, efficient code with thoughtful selection strategy. Only negligible nits (redundant IGNORECASE given lowercasing).\"\n }\n}", + "parsed": { + "reasoning": { + "task_adherence": "- Tokenization requirements: The code lowercases tokens and uses a regex r\"[a-z0-9]+\" with re.ASCII and re.IGNORECASE, then explicitly lowercases matches in _tokens(). This matches the spec: ASCII [a-z0-9]+ sequences, lowercase output, non-matching chars are separators.\n- Inputs: It treats text and k as provided globals and does not reassign them. It accesses them via a presence check and then calls top_k_tokens(text, k). No input(), file I/O, or network access used.\n- Requirement 1 (sorting key): Uses key = lambda kv: (-kv[1], kv[0]) both for sorted(...) and heapq.nsmallest(...), which implements sorting by count desc, then token asc. heapq.nsmallest returns results in increasing order of the key, which matches the required order.\n- Requirement 2 (top_k content and length): top_k_tokens returns a list of (token, count) tuples. It computes k_eff = min(k, number of unique tokens) and slices to that length. The top-level assigns top_k = top_k_tokens(text, k), so top_k has the correct type and length.\n- Requirement 3 (edge case k <= 0): top_k_tokens returns [] for k <= 0. That is propagated to top_k.\n- Requirement 4 (script runs as-is): When globals text and k exist, top_k is defined at the end of execution via the else branch of the try/except. No prohibited I/O is used. If globals are missing, it only runs a demo when __main__, which is acceptable and does not violate the contract in the intended environment where globals are provided.\n- Output contract: At the end, top_k is defined as specified when text and k are provided. Optional printing is only done in the demo path and prints just top_k on the last line.\n- Note about Counter.most_common: The code does not use most_common; it implements the specified sort explicitly.\nOverall, all instructions are satisfied without reliance on unspecified behavior. The minor demo branch does not interfere with the required behavior.", + "code_quality": "- Correctness: The counting and selection logic is correct and adheres to the specified ordering, including tie-breaking.\n- Efficiency: Uses Counter for O(N tokens) counting. Selects top-k via full sort when k is a substantial fraction of U, otherwise uses heapq.nsmallest for O(U log k). This is efficient and documented in a complexity comment.\n- Readability and structure: Clear separation of concerns (_tokens, top_k_tokens). Type hints for inputs/outputs improve clarity. Variable names are concise but understandable (cnt, u, k_eff). Inline comments explain decisions.\n- Maintainability: Modular with small, focused functions; easy to adapt. Avoids relying on Counter.most_common tie behavior as required.\n- Style/best practices: Uses a compiled regex and a generator. Handles edge cases early. The try/except check for globals is slightly unconventional but effective and harmless. Using re.IGNORECASE plus lower() is slightly redundant but not problematic.\nNo bugs or meaningful inefficiencies identified." + }, + "final_judgement": { + "adherence_score": 5, + "code_quality_score": 5, + "comments": "Excellent adherence and implementation. Correct tokenization, ordering, edge-case handling, and output variable set as required. Clean, efficient code with thoughtful selection strategy. Only negligible nits (redundant IGNORECASE given lowercasing)." + } + }, + "parse_error": null +} \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_11.json b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_11.json new file mode 100644 index 0000000000..225bc65398 --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_11.json @@ -0,0 +1,16 @@ +{ + "file": "run_11.py", + "raw": "{\n \"reasoning\": {\n \"task_adherence\": \"- Tokenization: Uses regex r\\\"[a-z0-9]+\\\" with flags re.ASCII | re.IGNORECASE and lowercases each match via m.group(0).lower(). This meets the requirement: lowercase tokens and treat non [a-z0-9] ASCII as separators.\\n- Inputs: Reads globals text and k without reassigning them. Presence is checked via try/except; no mutation occurs.\\n- Requirement 1 (sorting): Implements key = (-count, token) and uses sorted(...) when k >= unique_count and heapq.nsmallest(...) otherwise. Since nsmallest returns results in ascending key order, this yields count desc then token asc. No reliance on Counter.most_common.\\n- Requirement 2 (top_k content/length): top_k_tokens returns a list of (token, count) pairs. Length is min(k, number of unique tokens) when k > 0; otherwise empty. The outer code assigns this list to the global variable top_k.\\n- Requirement 3 (k <= 0): Explicitly returns [] for k <= 0; thus top_k becomes [].\\n- Requirement 4 (no I/O): No input(), file, or network usage. Optional demo only prints top_k when globals are absent and __name__ == \\\"__main__\\\".\\n- Output contract: With provided globals, top_k is defined at the end as specified. Optional printing is suppressed in that case; in demo mode, it prints only top_k on the last line as a Python literal. Does not rely on Counter.most_common tie ordering.\\n- Edge considerations: Sorting tie-breaker by token asc is correctly handled. ASCII/lexicographic assumptions hold since tokens are lowercase ASCII strings.\",\n \"code_quality\": \"- Clarity/Structure: Clean separation of concerns with a token generator and a top_k_tokens function. Names are descriptive; type hints provided.\\n- Correctness: Algorithm correctly counts tokens and selects/sorts by the specified key. Handles k <= 0 and k >= unique_count cases correctly.\\n- Efficiency: Counting is O(N tokens). Selection uses heapq.nsmallest for O(U log k) when k < U, and full sort O(U log U) otherwise. Space usage matches the comment.\\n- Readability/Maintainability: Readable, concise, and well-commented. The complexity note is helpful.\\n- Best practices: Avoids Counter.most_common. Uses regex with ASCII and proper lowercasing. No side effects on inputs.\\n- Minor nits: re.IGNORECASE is redundant given explicit .lower() (either alone would suffice), but harmless. In environments without provided globals and not running as __main__, top_k won't be defined, though this is outside the stated execution context (globals are provided).\"\n },\n \"final_judgement\": {\n \"adherence_score\": 5,\n \"code_quality_score\": 5,\n \"comments\": \"Excellent adherence and implementation. Correct tokenization, ordering, edge-case handling, and output variable contract. Code is clear, efficient, and robust. Minor redundancy in IGNORECASE with lowercasing, but not impactful.\"\n }\n}", + "parsed": { + "reasoning": { + "task_adherence": "- Tokenization: Uses regex r\"[a-z0-9]+\" with flags re.ASCII | re.IGNORECASE and lowercases each match via m.group(0).lower(). This meets the requirement: lowercase tokens and treat non [a-z0-9] ASCII as separators.\n- Inputs: Reads globals text and k without reassigning them. Presence is checked via try/except; no mutation occurs.\n- Requirement 1 (sorting): Implements key = (-count, token) and uses sorted(...) when k >= unique_count and heapq.nsmallest(...) otherwise. Since nsmallest returns results in ascending key order, this yields count desc then token asc. No reliance on Counter.most_common.\n- Requirement 2 (top_k content/length): top_k_tokens returns a list of (token, count) pairs. Length is min(k, number of unique tokens) when k > 0; otherwise empty. The outer code assigns this list to the global variable top_k.\n- Requirement 3 (k <= 0): Explicitly returns [] for k <= 0; thus top_k becomes [].\n- Requirement 4 (no I/O): No input(), file, or network usage. Optional demo only prints top_k when globals are absent and __name__ == \"__main__\".\n- Output contract: With provided globals, top_k is defined at the end as specified. Optional printing is suppressed in that case; in demo mode, it prints only top_k on the last line as a Python literal. Does not rely on Counter.most_common tie ordering.\n- Edge considerations: Sorting tie-breaker by token asc is correctly handled. ASCII/lexicographic assumptions hold since tokens are lowercase ASCII strings.", + "code_quality": "- Clarity/Structure: Clean separation of concerns with a token generator and a top_k_tokens function. Names are descriptive; type hints provided.\n- Correctness: Algorithm correctly counts tokens and selects/sorts by the specified key. Handles k <= 0 and k >= unique_count cases correctly.\n- Efficiency: Counting is O(N tokens). Selection uses heapq.nsmallest for O(U log k) when k < U, and full sort O(U log U) otherwise. Space usage matches the comment.\n- Readability/Maintainability: Readable, concise, and well-commented. The complexity note is helpful.\n- Best practices: Avoids Counter.most_common. Uses regex with ASCII and proper lowercasing. No side effects on inputs.\n- Minor nits: re.IGNORECASE is redundant given explicit .lower() (either alone would suffice), but harmless. In environments without provided globals and not running as __main__, top_k won't be defined, though this is outside the stated execution context (globals are provided)." + }, + "final_judgement": { + "adherence_score": 5, + "code_quality_score": 5, + "comments": "Excellent adherence and implementation. Correct tokenization, ordering, edge-case handling, and output variable contract. Code is clear, efficient, and robust. Minor redundancy in IGNORECASE with lowercasing, but not impactful." + } + }, + "parse_error": null +} \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_12.json b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_12.json new file mode 100644 index 0000000000..3680320b0d --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_12.json @@ -0,0 +1,16 @@ +{ + "file": "run_12.py", + "raw": "{\n \"reasoning\": {\n \"task_adherence\": \"- Tokenization: Uses regex r\\\"[a-z0-9]+\\\" with re.ASCII and re.IGNORECASE, then lowercases matches in _tokens(), yielding lowercase ASCII alnum sequences. This matches the requirement precisely (lowercase; tokens are ASCII [a-z0-9]+; non-matching chars act as separators).\\n- Inputs: Accesses globals text and k without reassigning them. Uses a try/except NameError to detect their presence and only runs a demo if they are missing and the script is __main__, which does not violate any requirement.\\n- Requirement 1 (ordering): Implements the exact sort key (-count, token). For k >= number of unique tokens, returns sorted(cnt.items(), key=key). For k < unique, uses heapq.nsmallest(k, cnt.items(), key=key). Since nsmallest returns items sorted ascending by the key, and the key is (-count, token), the output is correctly ordered by count desc then token asc.\\n- Requirement 2 (top_k value and length): top_k is set to the return of top_k_tokens(text, k), which returns a list of (token, count) tuples with length min(k, unique), or all if k >= unique. Satisfied.\\n- Requirement 3 (k <= 0): top_k_tokens returns [] when k <= 0; thus top_k becomes []. Satisfied.\\n- Requirement 4 (no I/O/network): No input(), file I/O, or network usage. The optional print occurs only in demo mode when globals are not provided and __name__ == \\\"__main__\\\".\\n- Output contract: With provided globals, top_k is defined exactly as required at the end of execution. Optional printing is not performed in that path; in demo mode, only top_k is printed on the last line. The code does not rely on Counter.most_common for tie handling.\\n- Edge considerations: If globals are not provided and not running as __main__, top_k would remain undefined, but the task specifies that text and k are provided, so this does not violate the contract for the intended usage.\",\n \"code_quality\": \"- Correctness: Logic for tokenization, counting, and top-k selection is correct and matches the specified sort order, including tie-breaking.\\n- Efficiency: O(T) counting, O(U log k) selection using heapq for k < U, and full sort only when needed. Space usage as documented in the comment. Efficient and appropriate.\\n- Readability/Structure: Clear separation of concerns (_tokens helper, top_k_tokens core function). Meaningful names, type hints, and a compiled regex constant. Inline key function is clear.\\n- Maintainability: Minimal, clean code with clear complexity comment. Does not depend on unspecified behaviors (avoids Counter.most_common ordering).\\n- Minor nits:\\n - re.IGNORECASE is redundant since matches are explicitly lowered; it can be removed without changing behavior.\\n - _tokens could be annotated as Iterator[str] instead of Iterable[str] for precision, but this is minor.\\n - The demo branch is guarded to avoid interfering with normal usage; good practice.\\nOverall code quality is high with only trivial improvements possible.\"\n },\n \"final_judgement\": {\n \"adherence_score\": 5,\n \"code_quality_score\": 5,\n \"comments\": \"Excellent adherence to all requirements, including exact tokenization and specified ordering. Efficient and clean implementation. Minor, non-impactful redundancy in regex flags.\"\n }\n}", + "parsed": { + "reasoning": { + "task_adherence": "- Tokenization: Uses regex r\"[a-z0-9]+\" with re.ASCII and re.IGNORECASE, then lowercases matches in _tokens(), yielding lowercase ASCII alnum sequences. This matches the requirement precisely (lowercase; tokens are ASCII [a-z0-9]+; non-matching chars act as separators).\n- Inputs: Accesses globals text and k without reassigning them. Uses a try/except NameError to detect their presence and only runs a demo if they are missing and the script is __main__, which does not violate any requirement.\n- Requirement 1 (ordering): Implements the exact sort key (-count, token). For k >= number of unique tokens, returns sorted(cnt.items(), key=key). For k < unique, uses heapq.nsmallest(k, cnt.items(), key=key). Since nsmallest returns items sorted ascending by the key, and the key is (-count, token), the output is correctly ordered by count desc then token asc.\n- Requirement 2 (top_k value and length): top_k is set to the return of top_k_tokens(text, k), which returns a list of (token, count) tuples with length min(k, unique), or all if k >= unique. Satisfied.\n- Requirement 3 (k <= 0): top_k_tokens returns [] when k <= 0; thus top_k becomes []. Satisfied.\n- Requirement 4 (no I/O/network): No input(), file I/O, or network usage. The optional print occurs only in demo mode when globals are not provided and __name__ == \"__main__\".\n- Output contract: With provided globals, top_k is defined exactly as required at the end of execution. Optional printing is not performed in that path; in demo mode, only top_k is printed on the last line. The code does not rely on Counter.most_common for tie handling.\n- Edge considerations: If globals are not provided and not running as __main__, top_k would remain undefined, but the task specifies that text and k are provided, so this does not violate the contract for the intended usage.", + "code_quality": "- Correctness: Logic for tokenization, counting, and top-k selection is correct and matches the specified sort order, including tie-breaking.\n- Efficiency: O(T) counting, O(U log k) selection using heapq for k < U, and full sort only when needed. Space usage as documented in the comment. Efficient and appropriate.\n- Readability/Structure: Clear separation of concerns (_tokens helper, top_k_tokens core function). Meaningful names, type hints, and a compiled regex constant. Inline key function is clear.\n- Maintainability: Minimal, clean code with clear complexity comment. Does not depend on unspecified behaviors (avoids Counter.most_common ordering).\n- Minor nits:\n - re.IGNORECASE is redundant since matches are explicitly lowered; it can be removed without changing behavior.\n - _tokens could be annotated as Iterator[str] instead of Iterable[str] for precision, but this is minor.\n - The demo branch is guarded to avoid interfering with normal usage; good practice.\nOverall code quality is high with only trivial improvements possible." + }, + "final_judgement": { + "adherence_score": 5, + "code_quality_score": 5, + "comments": "Excellent adherence to all requirements, including exact tokenization and specified ordering. Efficient and clean implementation. Minor, non-impactful redundancy in regex flags." + } + }, + "parse_error": null +} \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_13.json b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_13.json new file mode 100644 index 0000000000..f10a4bd795 --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_13.json @@ -0,0 +1,16 @@ +{ + "file": "run_13.py", + "raw": "{\n \"reasoning\": {\n \"task_adherence\": \"- Tokenization: Uses compiled regex r\\\"[a-z0-9]+\\\" with flags re.ASCII | re.IGNORECASE and lowers tokens via .lower(). This matches the requirement to tokenize ASCII [a-z0-9]+ sequences and lowercase the text.\\n- Inputs: The code reads globals text and k without reassigning them. It conditionally uses them if present; otherwise it runs a demo only under __main__. This respects the \\\"do not reassign\\\" constraint.\\n- Requirement 1 (sorting): Implements sorting by count desc, then token asc via key = lambda kv: (-kv[1], kv[0]). For k >= unique tokens, it uses sorted(..., key=key). For k < unique tokens, it uses heapq.nsmallest(k, ..., key=key). nsmallest returns items in sorted order by the given key, thus producing the exact required ordering.\\n- Requirement 2 (set top_k, correct length): Assigns top_k to the return value of top_k_tokens(text, k), which returns a list of (token, count) tuples. Length is min(k, number of unique tokens) due to either full sort when k >= U or nsmallest(k, ...).\\n- Requirement 3 (edge k <= 0): top_k_tokens returns [] when k <= 0, so top_k is set to [].\\n- Requirement 4 (no input/file/network; runs with provided globals): No input(), file I/O, or network used. With provided globals, the script sets top_k directly without printing. The optional demo path only runs when globals are missing and __name__ == \\\"__main__\\\".\\n- Output contract: With provided globals, top_k is defined at end as specified. Optional printing is only in the demo case and prints only top_k as a Python literal on the last line. The solution does not rely on Counter.most_common tie ordering.\\n- Minor note: If globals are missing and the script is not __main__, top_k would not be defined, but the task specifies that globals are provided, so this does not violate the requirements in the intended execution context.\",\n \"code_quality\": \"- Clarity/Structure: Clean separation via helper _tokens and top_k_tokens function; type hints provided; compiled regex improves readability and performance.\\n- Correctness: Sorting key correctly implements (-count, token). Uses heapq.nsmallest to achieve Top-K with correct ordering for k < U. Handles empty input and k <= 0.\\n- Efficiency: O(N) counting and O(U log k) selection for k < U; falls back to O(U log U) when k >= U. This is efficient and appropriate. The included complexity comment is accurate.\\n- Readability: Generally good. Minor nit: variable name u could be more descriptive (e.g., uniq). Lambda could destructure for readability, but current form is fine.\\n- Best practices: Avoids relying on Counter.most_common tie behavior; no unnecessary I/O; main guard used properly. The try/except for checking globals is functional but could be clearer using 'if \\\"text\\\" in globals() and \\\"k\\\" in globals()'.\\n- Minor nit: Using re.IGNORECASE and then lower() is redundant; lowercasing alone with ASCII regex would suffice. This does not affect correctness.\"\n },\n \"final_judgement\": {\n \"adherence_score\": 5,\n \"code_quality_score\": 4,\n \"comments\": \"Meets all task requirements precisely, including tokenization, ordering, edge cases, and output contract. Code is clean and efficient. Minor nits: redundant IGNORECASE + lower(), and globals detection via try/except could be clearer.\"\n }\n}", + "parsed": { + "reasoning": { + "task_adherence": "- Tokenization: Uses compiled regex r\"[a-z0-9]+\" with flags re.ASCII | re.IGNORECASE and lowers tokens via .lower(). This matches the requirement to tokenize ASCII [a-z0-9]+ sequences and lowercase the text.\n- Inputs: The code reads globals text and k without reassigning them. It conditionally uses them if present; otherwise it runs a demo only under __main__. This respects the \"do not reassign\" constraint.\n- Requirement 1 (sorting): Implements sorting by count desc, then token asc via key = lambda kv: (-kv[1], kv[0]). For k >= unique tokens, it uses sorted(..., key=key). For k < unique tokens, it uses heapq.nsmallest(k, ..., key=key). nsmallest returns items in sorted order by the given key, thus producing the exact required ordering.\n- Requirement 2 (set top_k, correct length): Assigns top_k to the return value of top_k_tokens(text, k), which returns a list of (token, count) tuples. Length is min(k, number of unique tokens) due to either full sort when k >= U or nsmallest(k, ...).\n- Requirement 3 (edge k <= 0): top_k_tokens returns [] when k <= 0, so top_k is set to [].\n- Requirement 4 (no input/file/network; runs with provided globals): No input(), file I/O, or network used. With provided globals, the script sets top_k directly without printing. The optional demo path only runs when globals are missing and __name__ == \"__main__\".\n- Output contract: With provided globals, top_k is defined at end as specified. Optional printing is only in the demo case and prints only top_k as a Python literal on the last line. The solution does not rely on Counter.most_common tie ordering.\n- Minor note: If globals are missing and the script is not __main__, top_k would not be defined, but the task specifies that globals are provided, so this does not violate the requirements in the intended execution context.", + "code_quality": "- Clarity/Structure: Clean separation via helper _tokens and top_k_tokens function; type hints provided; compiled regex improves readability and performance.\n- Correctness: Sorting key correctly implements (-count, token). Uses heapq.nsmallest to achieve Top-K with correct ordering for k < U. Handles empty input and k <= 0.\n- Efficiency: O(N) counting and O(U log k) selection for k < U; falls back to O(U log U) when k >= U. This is efficient and appropriate. The included complexity comment is accurate.\n- Readability: Generally good. Minor nit: variable name u could be more descriptive (e.g., uniq). Lambda could destructure for readability, but current form is fine.\n- Best practices: Avoids relying on Counter.most_common tie behavior; no unnecessary I/O; main guard used properly. The try/except for checking globals is functional but could be clearer using 'if \"text\" in globals() and \"k\" in globals()'.\n- Minor nit: Using re.IGNORECASE and then lower() is redundant; lowercasing alone with ASCII regex would suffice. This does not affect correctness." + }, + "final_judgement": { + "adherence_score": 5, + "code_quality_score": 4, + "comments": "Meets all task requirements precisely, including tokenization, ordering, edge cases, and output contract. Code is clean and efficient. Minor nits: redundant IGNORECASE + lower(), and globals detection via try/except could be clearer." + } + }, + "parse_error": null +} \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_14.json b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_14.json new file mode 100644 index 0000000000..af7fd2d1bc --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_14.json @@ -0,0 +1,6 @@ +{ + "file": "run_14.py", + "raw": "{\n \"reasoning\": {\n \"task_adherence\": \"- Tokenization: Uses a compiled regex r\\\"[a-z0-9]+\\\" with flags re.ASCII and re.IGNORECASE, and explicitly lowercases each token via .lower(). This satisfies the requirement to lowercase and to treat non-[a-z0-9] ASCII as separators using a regex.\\n- Inputs/Globals: The code reads globals text and k without reassigning them. It guards with a try/except to detect their presence. When provided, it sets top_k = top_k_tokens(text, k) as required. It does not use input(), file I/O, or networking.\\n- Requirement 1 (Sorting key): Sorting is implemented with key=lambda kv: (-kv[1], kv[0]) on (token, count) pairs. For k >= u or for the full-sort path, it uses sorted(..., key=key), which orders by count desc then token asc. For the selection path, it uses heapq.nsmallest(k, cnt.items(), key=key), which returns the k smallest by (-count, token) and in sorted order, equivalent to the specified ordering. It does not rely on Counter.most_common.\\n- Requirement 2 (Set top_k list and length): top_k_tokens returns a list of (token, count) tuples. Branches ensure the length is min(k, number of unique tokens):\\n - If k >= u: returns all u items sorted.\\n - Else: returns first k items either via sorted(... )[:k] or nsmallest(k, ...), both giving exactly k items.\\n- Requirement 3 (Edge case k <= 0): top_k_tokens returns [] when k <= 0. If there are zero unique tokens (u == 0), it also returns [].\\n- Requirement 4 (Script behavior): With provided globals, it computes and assigns top_k accordingly. No forbidden I/O is used. Optional printing is only performed in a demo block when globals are absent and __name__ == \\\"__main__\\\"; it prints only top_k on the last line, complying with the optional print rule.\\n- Output contract: At end of execution with provided globals, top_k is defined exactly as described. In demo mode, top_k is still defined and printed. No reliance on Counter.most_common tie behavior.\\n- Minor note: If executed without globals and not as __main__ (e.g., imported), top_k would not be defined; however, the task specifies that globals are provided for the execution context, so this does not violate the stated contract.\",\n \"code_quality\": \"- Correctness: Logic matches the specification precisely; ordering key is correct; selection via heapq.nsmallest yields exact Top-K in the required order.\\n- Efficiency: Uses Counter for O(N) counting. Selects between full sort O(U log U) when k is a large fraction of U and heap-based selection O(U log k) otherwise; includes a clear complexity comment.\\n- Readability/Maintainability: Code is clear and well-structured. Helper function _tokens and compiled regex improve clarity and performance. Type hints are used appropriately. Inline comment explains the selection heuristic.\\n- Best practices: Avoids Counter.most_common ties. Does not mutate globals. Demo guarded by if __name__ == \\\"__main__\\\". Uses key functions instead of relying on unspecified tie ordering.\\n- Minor nit: re.IGNORECASE is redundant since tokens are lowercased afterward, but it does not harm correctness.\",\n \"final_judgement\": {\n \"adherence_score\": 5,\n \"code_quality_score\": 5,\n \"comments\": \"Meets all task requirements exactly, including tokenization, ordering, edge cases, and output contract. Code is clean, efficient, and well-structured. Only minor nit is redundant IGNORECASE given explicit lowercasing.\"\n }\n}", + "parsed": null, + "parse_error": "Expecting ',' delimiter: line 10 column 2 (char 3422)" +} \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_15.json b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_15.json new file mode 100644 index 0000000000..fd0c549a45 --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_15.json @@ -0,0 +1,16 @@ +{ + "file": "run_15.py", + "raw": "{\n \"reasoning\": {\n \"task_adherence\": \"- Tokenization: Uses regex r\\\"[a-z0-9]+\\\" with flags re.ASCII | re.IGNORECASE and lowercases matches in _tokens(). This matches the requirement to lowercase and treat ASCII [a-z0-9]+ as tokens with other chars as separators.\\n- Inputs: Reads provided globals text and k without reassigning them. Presence is checked via try/except; if present, computes result from those globals.\\n- Requirement 1 (sorting): Implements key = lambda kv: (-kv[1], kv[0]) and uses it both in sorted(...) and heapq.nsmallest(...). This produces exact ordering by count desc then token asc. Does not rely on Counter.most_common.\\n- Requirement 2 (top_k contents/length): top_k is set to a list of (token, count) tuples with length min(k, number of unique tokens). Both branches slice or request min(k, u) items.\\n- Requirement 3 (edge k <= 0): top_k_tokens returns [] when k <= 0; thus top_k becomes [].\\n- Requirement 4 (no I/O/network): No input(), file, or network usage. Script runs with provided globals; optional demo only executes under __main__ when globals are absent.\\n- Output contract: When globals text and k are present, top_k is defined exactly as specified. Optional printing occurs only in the demo fallback and prints only top_k on the last line. No extraneous output in the primary (globals-present) path.\\n- Ambiguities/choices: The code chooses between full sort and heap selection for efficiency (0.3 threshold). Both paths yield exact ordering and correct results, so this is reasonable and consistent with requirements.\",\n \"code_quality\": \"- Clarity/readability: Clear structure with helper tokenizer function, type hints, and meaningful variable names. Comments explain complexity and selection strategy.\\n- Correctness: Tokenization and ordering strictly follow the spec. Heap-based selection uses key=(-count, token) ensuring exact tie-breaking and final order (heapq.nsmallest returns items sorted by key).\\n- Efficiency: Uses Counter for O(N) counting and adapts between O(U log U) full sort and O(U log k) selection; good optimization.\\n- Maintainability: Modular function top_k_tokens, compiled regex, and straightforward control flow. No reliance on unspecified tie behavior.\\n- Style/best practices: Avoids mutating provided globals; uses typing; avoids unnecessary I/O. Minor nit: variables like 'cnt'/'u' are concise but still readable.\\n- No bugs or inefficiencies detected relevant to the task. The fallback demo doesn't interfere with primary behavior.\"\n },\n \"final_judgement\": {\n \"adherence_score\": 5,\n \"code_quality_score\": 5,\n \"comments\": \"Excellent adherence: correct tokenization, ordering, edge handling, and output variable. Code is clean, efficient, and robust. The optional demo is safely isolated under __main__.\"\n }\n}", + "parsed": { + "reasoning": { + "task_adherence": "- Tokenization: Uses regex r\"[a-z0-9]+\" with flags re.ASCII | re.IGNORECASE and lowercases matches in _tokens(). This matches the requirement to lowercase and treat ASCII [a-z0-9]+ as tokens with other chars as separators.\n- Inputs: Reads provided globals text and k without reassigning them. Presence is checked via try/except; if present, computes result from those globals.\n- Requirement 1 (sorting): Implements key = lambda kv: (-kv[1], kv[0]) and uses it both in sorted(...) and heapq.nsmallest(...). This produces exact ordering by count desc then token asc. Does not rely on Counter.most_common.\n- Requirement 2 (top_k contents/length): top_k is set to a list of (token, count) tuples with length min(k, number of unique tokens). Both branches slice or request min(k, u) items.\n- Requirement 3 (edge k <= 0): top_k_tokens returns [] when k <= 0; thus top_k becomes [].\n- Requirement 4 (no I/O/network): No input(), file, or network usage. Script runs with provided globals; optional demo only executes under __main__ when globals are absent.\n- Output contract: When globals text and k are present, top_k is defined exactly as specified. Optional printing occurs only in the demo fallback and prints only top_k on the last line. No extraneous output in the primary (globals-present) path.\n- Ambiguities/choices: The code chooses between full sort and heap selection for efficiency (0.3 threshold). Both paths yield exact ordering and correct results, so this is reasonable and consistent with requirements.", + "code_quality": "- Clarity/readability: Clear structure with helper tokenizer function, type hints, and meaningful variable names. Comments explain complexity and selection strategy.\n- Correctness: Tokenization and ordering strictly follow the spec. Heap-based selection uses key=(-count, token) ensuring exact tie-breaking and final order (heapq.nsmallest returns items sorted by key).\n- Efficiency: Uses Counter for O(N) counting and adapts between O(U log U) full sort and O(U log k) selection; good optimization.\n- Maintainability: Modular function top_k_tokens, compiled regex, and straightforward control flow. No reliance on unspecified tie behavior.\n- Style/best practices: Avoids mutating provided globals; uses typing; avoids unnecessary I/O. Minor nit: variables like 'cnt'/'u' are concise but still readable.\n- No bugs or inefficiencies detected relevant to the task. The fallback demo doesn't interfere with primary behavior." + }, + "final_judgement": { + "adherence_score": 5, + "code_quality_score": 5, + "comments": "Excellent adherence: correct tokenization, ordering, edge handling, and output variable. Code is clean, efficient, and robust. The optional demo is safely isolated under __main__." + } + }, + "parse_error": null +} \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_16.json b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_16.json new file mode 100644 index 0000000000..d2b86edde1 --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_16.json @@ -0,0 +1,16 @@ +{ + "file": "run_16.py", + "raw": "{\n \"reasoning\": {\n \"task_adherence\": \"Step-by-step check against the instructions:\\n- Tokenization: Uses regex r\\\"[a-z0-9]+\\\" with re.ASCII and re.IGNORECASE, then lowercases tokens via m.group(0).lower(). This matches the requirement to lowercase and treat ASCII [a-z0-9]+ as tokens with others as separators.\\n- Inputs: The code expects globals text and k without reassigning them. It references them in a try/except NameError block and only uses demo variables if they are missing and the script is run as __main__. This respects the \\\"do not reassign\\\" rule.\\n- Requirement 1 (sorting): Sorting key is defined as (-count, token) via key=lambda kv: (-kv[1], kv[0]) applied to cnt.items() where kv=(token, count). For k >= u it uses sorted(..., key=key). For k < u it uses heapq.nsmallest(k, ..., key=key), which returns the k smallest elements sorted according to the key. Given the negative count in the key, this yields exact Top-K by count desc, token asc with correct tie-breaking. It does not rely on Counter.most_common.\\n- Requirement 2 (set top_k): In the presence of provided globals, it sets top_k = top_k_tokens(text, k). The function returns a list of (token, count) tuples of length min(k, number of unique tokens), or [] for edge cases, as required.\\n- Requirement 3 (edge cases): If k <= 0, top_k_tokens returns [], so top_k becomes []. If there are 0 unique tokens (u == 0), it returns []. Both cases handled.\\n- Requirement 4 (no input/file/network; runs as-is): No input(), file I/O, or network use. With provided globals, the script runs and defines top_k accordingly.\\n- Output contract: At end of execution (with provided globals), top_k is defined exactly as specified. Optional printing: In the demo-only fallback, it prints only top_k on the last line as a Python literal; with provided globals it does not print, which is allowed.\\n- Minor note: If globals are missing and the script is not __main__, top_k would not be defined, but the task states globals are provided, so this is acceptable.\\nOverall, the code fully adheres to the task instructions.\",\n \"code_quality\": \"Notable points:\\n- Correctness: Implements required tokenization and sorting with explicit key. Handles all specified edge cases.\\n- Efficiency: Counting is O(N tokens). Selection is O(U log k) via heapq.nsmallest, and falls back to full sort when k >= U. Space is O(U + k). This aligns with best practices for Top-K.\\n- Readability/Maintainability: Clear structure with a dedicated tokenizer, compiled regex, type hints for function signatures, and explanatory comments. The key function is explicit about tie-breaking.\\n- Robustness: Avoids relying on Counter.most_common ordering. Uses try/except for presence of globals without reassigning them. The 'type: ignore' comments are harmless and improve static typing compatibility.\\n- Style: Clean imports, sensible names, no unnecessary globals modified. Optional demo is properly gated under __main__ and does not interfere with required behavior.\\nNo bugs or inefficiencies detected; overall code quality is high.\"\n },\n \"final_judgement\": {\n \"adherence_score\": 5,\n \"code_quality_score\": 5,\n \"comments\": \"Fully meets the spec with correct tokenization, sorting, edge-case handling, and output contract. Efficient and readable implementation; optional demo is properly isolated. Minor non-issue: top_k is not defined if globals are absent and not __main__, but this is outside the stated operating conditions.\"\n }\n}", + "parsed": { + "reasoning": { + "task_adherence": "Step-by-step check against the instructions:\n- Tokenization: Uses regex r\"[a-z0-9]+\" with re.ASCII and re.IGNORECASE, then lowercases tokens via m.group(0).lower(). This matches the requirement to lowercase and treat ASCII [a-z0-9]+ as tokens with others as separators.\n- Inputs: The code expects globals text and k without reassigning them. It references them in a try/except NameError block and only uses demo variables if they are missing and the script is run as __main__. This respects the \"do not reassign\" rule.\n- Requirement 1 (sorting): Sorting key is defined as (-count, token) via key=lambda kv: (-kv[1], kv[0]) applied to cnt.items() where kv=(token, count). For k >= u it uses sorted(..., key=key). For k < u it uses heapq.nsmallest(k, ..., key=key), which returns the k smallest elements sorted according to the key. Given the negative count in the key, this yields exact Top-K by count desc, token asc with correct tie-breaking. It does not rely on Counter.most_common.\n- Requirement 2 (set top_k): In the presence of provided globals, it sets top_k = top_k_tokens(text, k). The function returns a list of (token, count) tuples of length min(k, number of unique tokens), or [] for edge cases, as required.\n- Requirement 3 (edge cases): If k <= 0, top_k_tokens returns [], so top_k becomes []. If there are 0 unique tokens (u == 0), it returns []. Both cases handled.\n- Requirement 4 (no input/file/network; runs as-is): No input(), file I/O, or network use. With provided globals, the script runs and defines top_k accordingly.\n- Output contract: At end of execution (with provided globals), top_k is defined exactly as specified. Optional printing: In the demo-only fallback, it prints only top_k on the last line as a Python literal; with provided globals it does not print, which is allowed.\n- Minor note: If globals are missing and the script is not __main__, top_k would not be defined, but the task states globals are provided, so this is acceptable.\nOverall, the code fully adheres to the task instructions.", + "code_quality": "Notable points:\n- Correctness: Implements required tokenization and sorting with explicit key. Handles all specified edge cases.\n- Efficiency: Counting is O(N tokens). Selection is O(U log k) via heapq.nsmallest, and falls back to full sort when k >= U. Space is O(U + k). This aligns with best practices for Top-K.\n- Readability/Maintainability: Clear structure with a dedicated tokenizer, compiled regex, type hints for function signatures, and explanatory comments. The key function is explicit about tie-breaking.\n- Robustness: Avoids relying on Counter.most_common ordering. Uses try/except for presence of globals without reassigning them. The 'type: ignore' comments are harmless and improve static typing compatibility.\n- Style: Clean imports, sensible names, no unnecessary globals modified. Optional demo is properly gated under __main__ and does not interfere with required behavior.\nNo bugs or inefficiencies detected; overall code quality is high." + }, + "final_judgement": { + "adherence_score": 5, + "code_quality_score": 5, + "comments": "Fully meets the spec with correct tokenization, sorting, edge-case handling, and output contract. Efficient and readable implementation; optional demo is properly isolated. Minor non-issue: top_k is not defined if globals are absent and not __main__, but this is outside the stated operating conditions." + } + }, + "parse_error": null +} \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_17.json b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_17.json new file mode 100644 index 0000000000..22a4a87070 --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_17.json @@ -0,0 +1,16 @@ +{ + "file": "run_17.py", + "raw": "{\n \"reasoning\": {\n \"task_adherence\": \"- Tokenization: Uses regex [a-z0-9]+ with re.ASCII and re.IGNORECASE, and lowercases tokens in _tokens(). This matches the spec (ASCII alnum sequences; others are separators; lowercase).\\n- Sorting: Sort key implemented as key = lambda kv: (-kv[1], kv[0]) over Counter items (kv = (token, count)). For k >= unique count, uses sorted(..., key=key); for k < unique, uses heapq.nsmallest(k, ..., key=key), which returns results sorted by the same key. This satisfies count desc then token asc.\\n- Output top_k: When globals text and k exist, assigns top_k = top_k_tokens(text, k). Length is min(k, unique) due to branching; when k <= 0, function returns [] (requirement 3).\\n- Edge cases: k <= 0 handled; empty text (u == 0) returns [] as well.\\n- Inputs handling: Does not reassign text or k. Uses them if present; otherwise, under __main__, runs a self-contained demo without touching globals (allowed optional behavior).\\n- I/O/network: No input(), file I/O, or network access. Optional print only in demo path, printing exactly top_k on one line.\\n- Avoids Counter.most_common tie ordering: Yes, does not use most_common.\\n- End-of-execution contract: With provided globals, top_k is defined as required. Demo path also defines and prints top_k. All requirements are met.\",\n \"code_quality\": \"- Clarity/structure: Clean separation of concerns (_tokens, top_k_tokens). Clear variable names and brief comments. Type hints provided.\\n- Correctness: Regex and lowering implement the specified tokenization. Sorting/tie-breaking is correct. Handles edge cases.\\n- Efficiency: Counting O(N tokens); selection O(U log k) via heap for k < U; otherwise full sort. Appropriate for Top-K.\\n- Readability/maintainability: Concise, readable, and idiomatic. Minimal, well-placed comments. No unnecessary complexity.\\n- Minor nit: re.IGNORECASE is redundant since tokens are lowercased, but harmless. Overall excellent quality.\"\n },\n \"final_judgement\": {\n \"adherence_score\": 5,\n \"code_quality_score\": 5,\n \"comments\": \"Meets all instructions precisely, including tokenization, sorting, edge cases, and output contract. Code is clean, efficient, and well-structured. Minor optional refinement: remove redundant IGNORECASE.\"\n }\n}", + "parsed": { + "reasoning": { + "task_adherence": "- Tokenization: Uses regex [a-z0-9]+ with re.ASCII and re.IGNORECASE, and lowercases tokens in _tokens(). This matches the spec (ASCII alnum sequences; others are separators; lowercase).\n- Sorting: Sort key implemented as key = lambda kv: (-kv[1], kv[0]) over Counter items (kv = (token, count)). For k >= unique count, uses sorted(..., key=key); for k < unique, uses heapq.nsmallest(k, ..., key=key), which returns results sorted by the same key. This satisfies count desc then token asc.\n- Output top_k: When globals text and k exist, assigns top_k = top_k_tokens(text, k). Length is min(k, unique) due to branching; when k <= 0, function returns [] (requirement 3).\n- Edge cases: k <= 0 handled; empty text (u == 0) returns [] as well.\n- Inputs handling: Does not reassign text or k. Uses them if present; otherwise, under __main__, runs a self-contained demo without touching globals (allowed optional behavior).\n- I/O/network: No input(), file I/O, or network access. Optional print only in demo path, printing exactly top_k on one line.\n- Avoids Counter.most_common tie ordering: Yes, does not use most_common.\n- End-of-execution contract: With provided globals, top_k is defined as required. Demo path also defines and prints top_k. All requirements are met.", + "code_quality": "- Clarity/structure: Clean separation of concerns (_tokens, top_k_tokens). Clear variable names and brief comments. Type hints provided.\n- Correctness: Regex and lowering implement the specified tokenization. Sorting/tie-breaking is correct. Handles edge cases.\n- Efficiency: Counting O(N tokens); selection O(U log k) via heap for k < U; otherwise full sort. Appropriate for Top-K.\n- Readability/maintainability: Concise, readable, and idiomatic. Minimal, well-placed comments. No unnecessary complexity.\n- Minor nit: re.IGNORECASE is redundant since tokens are lowercased, but harmless. Overall excellent quality." + }, + "final_judgement": { + "adherence_score": 5, + "code_quality_score": 5, + "comments": "Meets all instructions precisely, including tokenization, sorting, edge cases, and output contract. Code is clean, efficient, and well-structured. Minor optional refinement: remove redundant IGNORECASE." + } + }, + "parse_error": null +} \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_18.json b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_18.json new file mode 100644 index 0000000000..0f0b9c07c3 --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_18.json @@ -0,0 +1,16 @@ +{ + "file": "run_18.py", + "raw": "{\n \"reasoning\": {\n \"task_adherence\": \"- Tokenization: The code lowercases tokens in _tokens() and uses a regex compiled with re.ASCII and re.IGNORECASE to match [a-z0-9]+, treating non-matching characters as separators. This exactly matches the tokenization requirements.\\n- Inputs: It reads the provided globals text and k without reassigning them. The try/except NameError guard only checks for their existence; it does not modify them.\\n- Requirement 1 (sorting): Implements the specified ordering via key = lambda kv: (-kv[1], kv[0]) and uses either sorted(...) or heapq.nsmallest(..., key=key). This yields sorting by count descending, then token ascending. nsmallest returns results in ascending order by the provided key, which corresponds to the desired order when using -count.\\n- Requirement 2 (top_k content/length): top_k is set to the list returned by top_k_tokens(text, k). If k >= number of unique tokens, it returns all items sorted correctly; if 0 < k < unique tokens, it returns k items; if k <= 0, it returns []. Length is thus min(k, unique) with the k <= 0 edge handled explicitly.\\n- Requirement 3 (k <= 0): top_k_tokens returns [] for k <= 0, so top_k becomes [] as required.\\n- Requirement 4 (no I/O): No input(), file I/O, or network access is used. Optional demo printing occurs only when globals are absent and __name__ == \\\"__main__\\\"; with provided globals, nothing is printed.\\n- Output contract: With provided globals, top_k is defined at the end as required. Optional printing is compliant (only prints top_k on the last line in demo mode). It does not rely on Counter.most_common tie ordering.\\n- Ambiguities: If globals are not provided and not running as __main__, top_k would not be defined; however, the task states the globals are provided, so this is acceptable. The approach is reasonable and does not violate any constraints.\",\n \"code_quality\": \"- Correctness: Logic is correct for counting, tokenization, ordering, and edge cases. Does not use Counter.most_common.\\n- Efficiency: Counting is O(T) over tokens. Selection is O(U log k) via heapq.nsmallest when k < U and O(U log U) via sorted when k >= U. Space O(U + k). This is efficient and appropriate.\\n- Readability and structure: Clear helper tokenizer, descriptive names, type hints, and helpful comments (including complexity). The key function is simple and correct.\\n- Maintainability: Modularized via top_k_tokens; tokenization encapsulated; easy to adapt. No unnecessary globals mutated.\\n- Minor nit: Forcing the heap path by passing an iterator to nsmallest is a micro-optimization tied to CPython behavior; not harmful, but slightly over-engineered. The try/except to probe globals is fine, though using 'if \\\"text\\\" in globals()' could be clearer. These are minor style points and do not affect correctness.\"\n },\n \"final_judgement\": {\n \"adherence_score\": 5,\n \"code_quality_score\": 5,\n \"comments\": \"Excellent adherence and implementation: correct tokenization, ordering, edge-case handling, and output contract. Code is clean, efficient, and well-structured. Only minor stylistic nits.\"\n }\n}", + "parsed": { + "reasoning": { + "task_adherence": "- Tokenization: The code lowercases tokens in _tokens() and uses a regex compiled with re.ASCII and re.IGNORECASE to match [a-z0-9]+, treating non-matching characters as separators. This exactly matches the tokenization requirements.\n- Inputs: It reads the provided globals text and k without reassigning them. The try/except NameError guard only checks for their existence; it does not modify them.\n- Requirement 1 (sorting): Implements the specified ordering via key = lambda kv: (-kv[1], kv[0]) and uses either sorted(...) or heapq.nsmallest(..., key=key). This yields sorting by count descending, then token ascending. nsmallest returns results in ascending order by the provided key, which corresponds to the desired order when using -count.\n- Requirement 2 (top_k content/length): top_k is set to the list returned by top_k_tokens(text, k). If k >= number of unique tokens, it returns all items sorted correctly; if 0 < k < unique tokens, it returns k items; if k <= 0, it returns []. Length is thus min(k, unique) with the k <= 0 edge handled explicitly.\n- Requirement 3 (k <= 0): top_k_tokens returns [] for k <= 0, so top_k becomes [] as required.\n- Requirement 4 (no I/O): No input(), file I/O, or network access is used. Optional demo printing occurs only when globals are absent and __name__ == \"__main__\"; with provided globals, nothing is printed.\n- Output contract: With provided globals, top_k is defined at the end as required. Optional printing is compliant (only prints top_k on the last line in demo mode). It does not rely on Counter.most_common tie ordering.\n- Ambiguities: If globals are not provided and not running as __main__, top_k would not be defined; however, the task states the globals are provided, so this is acceptable. The approach is reasonable and does not violate any constraints.", + "code_quality": "- Correctness: Logic is correct for counting, tokenization, ordering, and edge cases. Does not use Counter.most_common.\n- Efficiency: Counting is O(T) over tokens. Selection is O(U log k) via heapq.nsmallest when k < U and O(U log U) via sorted when k >= U. Space O(U + k). This is efficient and appropriate.\n- Readability and structure: Clear helper tokenizer, descriptive names, type hints, and helpful comments (including complexity). The key function is simple and correct.\n- Maintainability: Modularized via top_k_tokens; tokenization encapsulated; easy to adapt. No unnecessary globals mutated.\n- Minor nit: Forcing the heap path by passing an iterator to nsmallest is a micro-optimization tied to CPython behavior; not harmful, but slightly over-engineered. The try/except to probe globals is fine, though using 'if \"text\" in globals()' could be clearer. These are minor style points and do not affect correctness." + }, + "final_judgement": { + "adherence_score": 5, + "code_quality_score": 5, + "comments": "Excellent adherence and implementation: correct tokenization, ordering, edge-case handling, and output contract. Code is clean, efficient, and well-structured. Only minor stylistic nits." + } + }, + "parse_error": null +} \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_19.json b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_19.json new file mode 100644 index 0000000000..250d93654b --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_19.json @@ -0,0 +1,16 @@ +{ + "file": "run_19.py", + "raw": "{\n \"reasoning\": {\n \"task_adherence\": \"Step-by-step check against instructions:\\n- Tokenization: Uses a compiled regex r\\\"[a-z0-9]+\\\" with flags re.ASCII | re.IGNORECASE and lowercases each match in _tokens(). This satisfies \\\"Lowercase the text\\\" and \\\"Tokens are ASCII [a-z0-9]+ sequences; all other characters are separators (use a regex).\\\"\\n- Inputs: The script expects two globals, text and k, and does not reassign them. It accesses them read-only and assigns the result to a new variable top_k. Compliant.\\n- Requirement 1 (sorting): Sorting key defined as key = lambda kv: (-kv[1], kv[0]), which implements count desc then token asc. For k < u, it either slices a fully sorted list or uses heapq.nsmallest with the same key, which returns items sorted by the key. No reliance on Counter.most_common. Compliant.\\n- Requirement 2 (top_k list of tuples, length min(k, unique)): top_k_tokens returns a list of (token, count) pairs; branches ensure the length is min(k, u) when k > 0, and full list when k >= u. Compliant.\\n- Requirement 3 (k <= 0 -> []): top_k_tokens returns [] for non-int k or k <= 0. This covers k <= 0 explicitly. Compliant.\\n- Requirement 4 (no input/file/network; run with provided globals): No input(), file I/O, or network. When globals exist, it computes top_k directly. If globals are missing and __name__ == \\\"__main__\\\", it runs a demo and prints; otherwise does nothing. With provided globals (as per task), it runs as-is. Compliant.\\n- Output contract: At end, top_k is defined via top_k = top_k_tokens(text, k) when globals are provided, matching the contract. Optional printing is only in the demo branch and prints only top_k on the last line. Compliant.\\n- Tie ordering: Explicitly implemented via sort key; does not use most_common. Compliant.\\nMinor note: If imported as a module without provided globals and not run as __main__, top_k will not be defined; however, the task guarantees the globals are provided, so this is not a violation.\",\n \"code_quality\": \"The code is clear, correct, and efficient:\\n- Correctness: Tokenization, counting, sorting key, and selection logic all match the specification. Edge cases (k <= 0, no tokens) are handled.\\n- Efficiency: Uses Counter for counting and conditionally chooses between full sort and heapq.nsmallest based on k relative to unique count, reducing unnecessary O(U log U) sorting for small k. Results remain correctly sorted.\\n- Readability/Maintainability: Good names, type hints, modularization (_tokens, top_k_tokens), and concise logic. Compiled regex is reused. No reliance on unspecified tie-ordering. Comments are minimal and helpful.\\n- Best practices: No side effects except optional demo printing; no I/O beyond that; does not mutate provided globals; avoids most_common tie pitfalls.\\nNo bugs or style issues that impact the task. The only benign nit is the demo/__main__ branch leaving top_k undefined when globals are absent and not __main__, which is outside the task's operational context.\"\n },\n \"final_judgement\": {\n \"adherence_score\": 5,\n \"code_quality_score\": 5,\n \"comments\": \"Meets all requirements precisely: correct tokenization, sorting, edge-case handling, and final top_k definition. Code is clean, efficient, and avoids most_common tie-ordering. Optional demo printing is appropriate.\"\n }\n}", + "parsed": { + "reasoning": { + "task_adherence": "Step-by-step check against instructions:\n- Tokenization: Uses a compiled regex r\"[a-z0-9]+\" with flags re.ASCII | re.IGNORECASE and lowercases each match in _tokens(). This satisfies \"Lowercase the text\" and \"Tokens are ASCII [a-z0-9]+ sequences; all other characters are separators (use a regex).\"\n- Inputs: The script expects two globals, text and k, and does not reassign them. It accesses them read-only and assigns the result to a new variable top_k. Compliant.\n- Requirement 1 (sorting): Sorting key defined as key = lambda kv: (-kv[1], kv[0]), which implements count desc then token asc. For k < u, it either slices a fully sorted list or uses heapq.nsmallest with the same key, which returns items sorted by the key. No reliance on Counter.most_common. Compliant.\n- Requirement 2 (top_k list of tuples, length min(k, unique)): top_k_tokens returns a list of (token, count) pairs; branches ensure the length is min(k, u) when k > 0, and full list when k >= u. Compliant.\n- Requirement 3 (k <= 0 -> []): top_k_tokens returns [] for non-int k or k <= 0. This covers k <= 0 explicitly. Compliant.\n- Requirement 4 (no input/file/network; run with provided globals): No input(), file I/O, or network. When globals exist, it computes top_k directly. If globals are missing and __name__ == \"__main__\", it runs a demo and prints; otherwise does nothing. With provided globals (as per task), it runs as-is. Compliant.\n- Output contract: At end, top_k is defined via top_k = top_k_tokens(text, k) when globals are provided, matching the contract. Optional printing is only in the demo branch and prints only top_k on the last line. Compliant.\n- Tie ordering: Explicitly implemented via sort key; does not use most_common. Compliant.\nMinor note: If imported as a module without provided globals and not run as __main__, top_k will not be defined; however, the task guarantees the globals are provided, so this is not a violation.", + "code_quality": "The code is clear, correct, and efficient:\n- Correctness: Tokenization, counting, sorting key, and selection logic all match the specification. Edge cases (k <= 0, no tokens) are handled.\n- Efficiency: Uses Counter for counting and conditionally chooses between full sort and heapq.nsmallest based on k relative to unique count, reducing unnecessary O(U log U) sorting for small k. Results remain correctly sorted.\n- Readability/Maintainability: Good names, type hints, modularization (_tokens, top_k_tokens), and concise logic. Compiled regex is reused. No reliance on unspecified tie-ordering. Comments are minimal and helpful.\n- Best practices: No side effects except optional demo printing; no I/O beyond that; does not mutate provided globals; avoids most_common tie pitfalls.\nNo bugs or style issues that impact the task. The only benign nit is the demo/__main__ branch leaving top_k undefined when globals are absent and not __main__, which is outside the task's operational context." + }, + "final_judgement": { + "adherence_score": 5, + "code_quality_score": 5, + "comments": "Meets all requirements precisely: correct tokenization, sorting, edge-case handling, and final top_k definition. Code is clean, efficient, and avoids most_common tie-ordering. Optional demo printing is appropriate." + } + }, + "parse_error": null +} \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_20.json b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_20.json new file mode 100644 index 0000000000..d689ff1a80 --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_20.json @@ -0,0 +1,16 @@ +{ + "file": "run_20.py", + "raw": "{\n \"reasoning\": {\n \"task_adherence\": \"- Tokenization requirements: The code uses a compiled regex r\\\"[a-z0-9]+\\\" with flags re.ASCII | re.IGNORECASE, and each match is lowercased in _tokens(). This satisfies \\\"Lowercase the text\\\" and \\\"Tokens are ASCII [a-z0-9]+ sequences; all other characters are separators (use a regex).\\\"\\n- Sorting and Top-K requirements: The key function key = lambda kv: (-kv[1], kv[0]) correctly implements sort by count descending, then token ascending. All selection paths (full sort, heapq.nsmallest, partial slice after sort) produce results ordered by that key.\\n- Output variable: The script sets top_k to a list of (token, count) tuples via top_k = top_k_tokens(text, k) when globals text and k are present, matching the requirement that top_k length equals min(k, number of unique tokens).\\n- Edge case k <= 0: top_k_tokens returns [] when k <= 0, so top_k will be [] in that case.\\n- Inputs handling: It does not reassign text or k; it only reads them. No input(), file I/O, or network access are used.\\n- Output contract: At end of execution (with provided globals), top_k is defined exactly as specified. Optional printing is only done in the demo path (when globals are missing and running as __main__), and it prints only top_k on the last line, which is acceptable.\\n- Tie handling and Counter.most_common: The code does not use most_common and explicitly implements the specified sort.\\n- Minor note: If the globals are missing and the code is imported (not __main__), top_k would not be defined. However, the task states the globals are provided; under that scenario, the script meets all requirements.\",\n \"code_quality\": \"- Correctness: The algorithm correctly counts tokens and selects/sorts Top-K with the specified key. heapq.nsmallest is used appropriately with a key that encodes both count and token to ensure correct tie-breaking and ordering of the returned list.\\n- Efficiency: Uses O(N) counting and selects between O(U log k) via nsmallest for small k and O(U log U) sorting otherwise. This is efficient and well-considered. The heuristic threshold (0.3 * U) is reasonable.\\n- Clarity and readability: Clear function decomposition (_tokens, top_k_tokens), meaningful variable names, and a concise key function. Type hints and a complexity comment improve maintainability.\\n- Maintainability/structure: Regex compiled once at module level. No reliance on undefined tie behavior. Edge cases are handled explicitly.\\n- Minor nits: Using both re.IGNORECASE and lowercasing tokens is slightly redundant (either lower the input first or keep IGNORECASE), but harmless and clear. The demo/import fallback path is fine; if imported without globals, top_k is not defined, but this is outside the stated execution context.\"\n },\n \"final_judgement\": {\n \"adherence_score\": 5,\n \"code_quality_score\": 5,\n \"comments\": \"Meets all task requirements precisely, including tokenization, ordering, edge cases, and output contract. Code is clear, efficient, and robust. Minor redundancy in case handling (IGNORECASE plus lowercasing) is negligible.\"\n }\n}", + "parsed": { + "reasoning": { + "task_adherence": "- Tokenization requirements: The code uses a compiled regex r\"[a-z0-9]+\" with flags re.ASCII | re.IGNORECASE, and each match is lowercased in _tokens(). This satisfies \"Lowercase the text\" and \"Tokens are ASCII [a-z0-9]+ sequences; all other characters are separators (use a regex).\"\n- Sorting and Top-K requirements: The key function key = lambda kv: (-kv[1], kv[0]) correctly implements sort by count descending, then token ascending. All selection paths (full sort, heapq.nsmallest, partial slice after sort) produce results ordered by that key.\n- Output variable: The script sets top_k to a list of (token, count) tuples via top_k = top_k_tokens(text, k) when globals text and k are present, matching the requirement that top_k length equals min(k, number of unique tokens).\n- Edge case k <= 0: top_k_tokens returns [] when k <= 0, so top_k will be [] in that case.\n- Inputs handling: It does not reassign text or k; it only reads them. No input(), file I/O, or network access are used.\n- Output contract: At end of execution (with provided globals), top_k is defined exactly as specified. Optional printing is only done in the demo path (when globals are missing and running as __main__), and it prints only top_k on the last line, which is acceptable.\n- Tie handling and Counter.most_common: The code does not use most_common and explicitly implements the specified sort.\n- Minor note: If the globals are missing and the code is imported (not __main__), top_k would not be defined. However, the task states the globals are provided; under that scenario, the script meets all requirements.", + "code_quality": "- Correctness: The algorithm correctly counts tokens and selects/sorts Top-K with the specified key. heapq.nsmallest is used appropriately with a key that encodes both count and token to ensure correct tie-breaking and ordering of the returned list.\n- Efficiency: Uses O(N) counting and selects between O(U log k) via nsmallest for small k and O(U log U) sorting otherwise. This is efficient and well-considered. The heuristic threshold (0.3 * U) is reasonable.\n- Clarity and readability: Clear function decomposition (_tokens, top_k_tokens), meaningful variable names, and a concise key function. Type hints and a complexity comment improve maintainability.\n- Maintainability/structure: Regex compiled once at module level. No reliance on undefined tie behavior. Edge cases are handled explicitly.\n- Minor nits: Using both re.IGNORECASE and lowercasing tokens is slightly redundant (either lower the input first or keep IGNORECASE), but harmless and clear. The demo/import fallback path is fine; if imported without globals, top_k is not defined, but this is outside the stated execution context." + }, + "final_judgement": { + "adherence_score": 5, + "code_quality_score": 5, + "comments": "Meets all task requirements precisely, including tokenization, ordering, edge cases, and output contract. Code is clear, efficient, and robust. Minor redundancy in case handling (IGNORECASE plus lowercasing) is negligible." + } + }, + "parse_error": null +} \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_21.json b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_21.json new file mode 100644 index 0000000000..98f83d60e5 --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_21.json @@ -0,0 +1,16 @@ +{ + "file": "run_21.py", + "raw": "{\n \"reasoning\": {\n \"task_adherence\": \"- Tokenization: Uses regex [a-z0-9]+ with re.IGNORECASE and lowercases tokens via _tokens(), satisfying 'ASCII [a-z0-9]+ sequences; lowercase; others are separators'.\\n- Inputs/globals: Accesses provided globals text and k without reassigning them. The try/except only detects presence and does not modify them.\\n- Requirement 1 (ordering): Sorting key is key = lambda kv: (-kv[1], kv[0]), which enforces count descending then token ascending. For k < U, heapq.nsmallest with this key returns the top-k items sorted by that key; for k >= U, it uses sorted(..., key=key). No reliance on Counter.most_common tie ordering.\\n- Requirement 2 (output shape/length): Returns a list of (token, count) tuples. For k >= U, returns all U; for k < U, returns exactly k. Thus length is min(k, number of unique tokens).\\n- Requirement 3 (edge cases): If k <= 0, top_k_tokens returns []. If there are zero unique tokens (u == 0), it returns []. Both satisfy the edge-case requirement.\\n- Requirement 4 (I/O/network): No input(), file I/O, or network use. Script runs as-is, computing top_k from provided globals.\\n- Output contract: At end, top_k is defined as specified when globals text and k are present (else branch assigns top_k = top_k_tokens(text, k)). Optional printing: Only prints top_k in the __main__ demo path, and prints only top_k on the last line. With provided globals, it does not print, which is allowed.\\n- Ambiguities/notes: Includes a fallback demo only when globals are missing and __main__. This does not violate requirements and does not affect correctness when globals are provided.\",\n \"code_quality\": \"- Correctness: Logic is sound and matches the required ordering. heapq.nsmallest with key produces a fully sorted top-k list per the key.\\n- Efficiency: O(N) tokenization/counting; O(U log min(k, U)) selection via nsmallest and O(U log U) when k >= U. Efficient for large U with small k. Space O(U + min(k, U)).\\n- Clarity/Readability: Clear structure with helper _tokens(), type hints, and explanatory comment. Variable 'u' could be more descriptive, but acceptable. Key function is concise and correct.\\n- Maintainability/Structure: Separation of concerns (tokenization, counting, selection). No unnecessary dependencies. Uses Counter appropriately without relying on most_common ordering.\\n- Best practices: Precompiled regex, lowercase normalization, type annotations, and avoiding side effects. Optional demo guarded by __main__.\\n- No bugs or stylistic issues apparent; no reliance on unspecified behaviors.\"\n },\n \"final_judgement\": {\n \"adherence_score\": 5,\n \"code_quality_score\": 5,\n \"comments\": \"Meets all task requirements precisely, including ordering, edge cases, and output contract. Code is clean, efficient, and well-structured. Minor nit: variable naming (u) could be more descriptive, but overall excellent.\"\n }\n}", + "parsed": { + "reasoning": { + "task_adherence": "- Tokenization: Uses regex [a-z0-9]+ with re.IGNORECASE and lowercases tokens via _tokens(), satisfying 'ASCII [a-z0-9]+ sequences; lowercase; others are separators'.\n- Inputs/globals: Accesses provided globals text and k without reassigning them. The try/except only detects presence and does not modify them.\n- Requirement 1 (ordering): Sorting key is key = lambda kv: (-kv[1], kv[0]), which enforces count descending then token ascending. For k < U, heapq.nsmallest with this key returns the top-k items sorted by that key; for k >= U, it uses sorted(..., key=key). No reliance on Counter.most_common tie ordering.\n- Requirement 2 (output shape/length): Returns a list of (token, count) tuples. For k >= U, returns all U; for k < U, returns exactly k. Thus length is min(k, number of unique tokens).\n- Requirement 3 (edge cases): If k <= 0, top_k_tokens returns []. If there are zero unique tokens (u == 0), it returns []. Both satisfy the edge-case requirement.\n- Requirement 4 (I/O/network): No input(), file I/O, or network use. Script runs as-is, computing top_k from provided globals.\n- Output contract: At end, top_k is defined as specified when globals text and k are present (else branch assigns top_k = top_k_tokens(text, k)). Optional printing: Only prints top_k in the __main__ demo path, and prints only top_k on the last line. With provided globals, it does not print, which is allowed.\n- Ambiguities/notes: Includes a fallback demo only when globals are missing and __main__. This does not violate requirements and does not affect correctness when globals are provided.", + "code_quality": "- Correctness: Logic is sound and matches the required ordering. heapq.nsmallest with key produces a fully sorted top-k list per the key.\n- Efficiency: O(N) tokenization/counting; O(U log min(k, U)) selection via nsmallest and O(U log U) when k >= U. Efficient for large U with small k. Space O(U + min(k, U)).\n- Clarity/Readability: Clear structure with helper _tokens(), type hints, and explanatory comment. Variable 'u' could be more descriptive, but acceptable. Key function is concise and correct.\n- Maintainability/Structure: Separation of concerns (tokenization, counting, selection). No unnecessary dependencies. Uses Counter appropriately without relying on most_common ordering.\n- Best practices: Precompiled regex, lowercase normalization, type annotations, and avoiding side effects. Optional demo guarded by __main__.\n- No bugs or stylistic issues apparent; no reliance on unspecified behaviors." + }, + "final_judgement": { + "adherence_score": 5, + "code_quality_score": 5, + "comments": "Meets all task requirements precisely, including ordering, edge cases, and output contract. Code is clean, efficient, and well-structured. Minor nit: variable naming (u) could be more descriptive, but overall excellent." + } + }, + "parse_error": null +} \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_22.json b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_22.json new file mode 100644 index 0000000000..1b4c374e55 --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_22.json @@ -0,0 +1,16 @@ +{ + "file": "run_22.py", + "raw": "{\n \"reasoning\": {\n \"task_adherence\": \"- Tokenization: Correct. Uses regex [a-z0-9]+ with re.ASCII | re.IGNORECASE and lowercases tokens in _tokens, matching the specification.\\n- Sorting and tie-break: Correct. Sort key is (-count, token). Both sorted(...) and heapq.nsmallest(..., key=key) produce the required order (count desc, token asc) without relying on Counter.most_common.\\n- Top-K length requirement: Fails in a common case. In top_k_tokens, the branch `if k >= u or k >= 0.3 * u: return sorted(cnt.items(), key=key)` returns all U items even when `k < u` but `k >= 0.3*u`. This violates requirement 2: length must be exactly min(k, number of unique tokens). It is only correct when `k >= u`.\\n- Edge cases: Handles `k <= 0` by returning [] as required. Handles empty text (u == 0) by returning [].\\n- Globals and I/O: Does not reassign provided globals `text` and `k`. No input(), file I/O, or network access. Optional printing occurs only in demo mode when globals are missing and __name__ == \\\"__main__\\\"; otherwise nothing is printed, which is acceptable.\\n- Output contract: With provided globals, `top_k` is defined. However, due to the length bug above, `top_k` may not have the required length when `0.3*u <= k < u`. Also note: if globals are missing and not running as __main__, `top_k` is not defined, but the task states globals are provided, so this path is unlikely in the intended environment.\",\n \"code_quality\": \"- Clarity/readability: Good. Clear function names, helpful comments, and type hints. Tokenization is factored out cleanly.\\n- Correctness: One significant logic error: returning the full sorted list in the `k >= 0.3*u` branch without slicing to k causes incorrect output length. Fix by slicing: `sorted(cnt.items(), key=key)[:k]` for that branch, or compute once and slice to `min(k, u)`.\\n- Efficiency: Sensible approach\u2014Counter for counting and heapq.nsmallest for partial selection. The 0.3*U heuristic to switch to full sort is reasonable, but must still respect k. Complexity comments are accurate.\\n- Maintainability: Generally good. Could simplify by unifying the return path to ensure length invariants, e.g., always slice to `min(k, u)`. The try/except NameError for globals is a bit unconventional; checking `'text' in globals()`/`'k' in globals()` may be clearer. The `# type: ignore` comments are not necessary at runtime and could be removed or replaced with safer existence checks.\"\n },\n \"final_judgement\": {\n \"adherence_score\": 2,\n \"code_quality_score\": 3,\n \"comments\": \"Main issue: when 0.3*U <= k < U, the function returns all U items instead of exactly the top-k, violating the length requirement. Sorting and tokenization are correct. Fix by slicing the full-sort branch (or always slicing to min(k, u)). Otherwise, the code is clean and efficient.\"\n }\n}", + "parsed": { + "reasoning": { + "task_adherence": "- Tokenization: Correct. Uses regex [a-z0-9]+ with re.ASCII | re.IGNORECASE and lowercases tokens in _tokens, matching the specification.\n- Sorting and tie-break: Correct. Sort key is (-count, token). Both sorted(...) and heapq.nsmallest(..., key=key) produce the required order (count desc, token asc) without relying on Counter.most_common.\n- Top-K length requirement: Fails in a common case. In top_k_tokens, the branch `if k >= u or k >= 0.3 * u: return sorted(cnt.items(), key=key)` returns all U items even when `k < u` but `k >= 0.3*u`. This violates requirement 2: length must be exactly min(k, number of unique tokens). It is only correct when `k >= u`.\n- Edge cases: Handles `k <= 0` by returning [] as required. Handles empty text (u == 0) by returning [].\n- Globals and I/O: Does not reassign provided globals `text` and `k`. No input(), file I/O, or network access. Optional printing occurs only in demo mode when globals are missing and __name__ == \"__main__\"; otherwise nothing is printed, which is acceptable.\n- Output contract: With provided globals, `top_k` is defined. However, due to the length bug above, `top_k` may not have the required length when `0.3*u <= k < u`. Also note: if globals are missing and not running as __main__, `top_k` is not defined, but the task states globals are provided, so this path is unlikely in the intended environment.", + "code_quality": "- Clarity/readability: Good. Clear function names, helpful comments, and type hints. Tokenization is factored out cleanly.\n- Correctness: One significant logic error: returning the full sorted list in the `k >= 0.3*u` branch without slicing to k causes incorrect output length. Fix by slicing: `sorted(cnt.items(), key=key)[:k]` for that branch, or compute once and slice to `min(k, u)`.\n- Efficiency: Sensible approach\u2014Counter for counting and heapq.nsmallest for partial selection. The 0.3*U heuristic to switch to full sort is reasonable, but must still respect k. Complexity comments are accurate.\n- Maintainability: Generally good. Could simplify by unifying the return path to ensure length invariants, e.g., always slice to `min(k, u)`. The try/except NameError for globals is a bit unconventional; checking `'text' in globals()`/`'k' in globals()` may be clearer. The `# type: ignore` comments are not necessary at runtime and could be removed or replaced with safer existence checks." + }, + "final_judgement": { + "adherence_score": 2, + "code_quality_score": 3, + "comments": "Main issue: when 0.3*U <= k < U, the function returns all U items instead of exactly the top-k, violating the length requirement. Sorting and tokenization are correct. Fix by slicing the full-sort branch (or always slicing to min(k, u)). Otherwise, the code is clean and efficient." + } + }, + "parse_error": null +} \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_23.json b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_23.json new file mode 100644 index 0000000000..b33b0faefc --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_23.json @@ -0,0 +1,16 @@ +{ + "file": "run_23.py", + "raw": "{\n \"reasoning\": {\n \"task_adherence\": \"- Tokenization: Uses a compiled regex r\\\"[a-z0-9]+\\\" with flags re.ASCII | re.IGNORECASE and lowercases each matched token via .lower(). This satisfies the requirement to lowercase and to use ASCII [a-z0-9]+ sequences with other characters as separators.\\n- Inputs/globals: Accesses the provided globals text and k without reassigning them. The presence check uses a NameError guard and only computes a demo when globals are absent and running as __main__, which is acceptable given the task context.\\n- Sorting/key: Implements sorting by count descending, then token ascending using a key function key = lambda kv: (-kv[1], kv[0]). Does not rely on Counter.most_common; meets the specified sort order.\\n- Top-K exactness: \\n - If k >= number of unique tokens (u), returns sorted(cnt.items(), key=key) (length u), which equals min(k, u).\\n - If 0 < k < u and k is a \\\"large\\\" fraction of u, sorts all and slices [:k], still exact and ordered correctly.\\n - Otherwise uses heapq.nsmallest(k, cnt.items(), key=key), which returns items in ascending order of the key, i.e., desired (-count, token) ordering, yielding an exact and correctly ordered Top-K.\\n- Edge cases: If k <= 0, top_k_tokens returns [] and the top-level assigns this to top_k. If there are no tokens (u == 0), returns []. Both satisfy length = min(k, u) and the explicit k <= 0 requirement.\\n- Output contract: When globals are provided, the script sets top_k = top_k_tokens(text, k) at module level. Printing is optional; in the demo path it prints only top_k on the last line. In the intended environment (globals provided), it does not print anything extra, and top_k is defined exactly as required.\\n- Prohibited I/O: No input(), file I/O, or network access used.\\n- Ambiguities/notes: If the script is imported without globals and not run as __main__, top_k is not defined; however, the task specifies that globals are provided, so this is acceptable in context.\",\n \"code_quality\": \"- Correctness: Logic for counting and selecting Top-K is sound. The composite key ensures correct tie-breaking. heapq.nsmallest produces a correctly ordered list for the selected K.\\n- Efficiency: Counting is O(N tokens). Selection is O(U log U) when sorting and O(U log k) with the heap path, which is efficient. The heuristic to switch to sorting when k is a large fraction of U is reasonable.\\n- Readability/structure: Clear separation of concerns with a tokenizer, a top_k_tokens function, and top-level orchestration. Type hints and concise comments improve clarity. Variable name 'u' is a bit terse but understandable.\\n- Maintainability: Precompiled regex, small functions, and type annotations aid maintainability. No reliance on unspecified ordering behavior (avoids most_common).\\n- Minor nits: Using both re.IGNORECASE and .lower() is slightly redundant (either alone would suffice given ASCII), but harmless. In a non-specified environment (imported, no globals, not __main__), top_k remains undefined, though this does not violate the task requirements.\"\n },\n \"final_judgement\": {\n \"adherence_score\": 5,\n \"code_quality_score\": 5,\n \"comments\": \"Meets all task requirements exactly, including tokenization, sorting, edge cases, and output contract. Code is clear, efficient, and well-structured. Minor optional improvements: remove redundant case-handling or ensure top_k is always set in all import contexts.\"\n }\n}", + "parsed": { + "reasoning": { + "task_adherence": "- Tokenization: Uses a compiled regex r\"[a-z0-9]+\" with flags re.ASCII | re.IGNORECASE and lowercases each matched token via .lower(). This satisfies the requirement to lowercase and to use ASCII [a-z0-9]+ sequences with other characters as separators.\n- Inputs/globals: Accesses the provided globals text and k without reassigning them. The presence check uses a NameError guard and only computes a demo when globals are absent and running as __main__, which is acceptable given the task context.\n- Sorting/key: Implements sorting by count descending, then token ascending using a key function key = lambda kv: (-kv[1], kv[0]). Does not rely on Counter.most_common; meets the specified sort order.\n- Top-K exactness: \n - If k >= number of unique tokens (u), returns sorted(cnt.items(), key=key) (length u), which equals min(k, u).\n - If 0 < k < u and k is a \"large\" fraction of u, sorts all and slices [:k], still exact and ordered correctly.\n - Otherwise uses heapq.nsmallest(k, cnt.items(), key=key), which returns items in ascending order of the key, i.e., desired (-count, token) ordering, yielding an exact and correctly ordered Top-K.\n- Edge cases: If k <= 0, top_k_tokens returns [] and the top-level assigns this to top_k. If there are no tokens (u == 0), returns []. Both satisfy length = min(k, u) and the explicit k <= 0 requirement.\n- Output contract: When globals are provided, the script sets top_k = top_k_tokens(text, k) at module level. Printing is optional; in the demo path it prints only top_k on the last line. In the intended environment (globals provided), it does not print anything extra, and top_k is defined exactly as required.\n- Prohibited I/O: No input(), file I/O, or network access used.\n- Ambiguities/notes: If the script is imported without globals and not run as __main__, top_k is not defined; however, the task specifies that globals are provided, so this is acceptable in context.", + "code_quality": "- Correctness: Logic for counting and selecting Top-K is sound. The composite key ensures correct tie-breaking. heapq.nsmallest produces a correctly ordered list for the selected K.\n- Efficiency: Counting is O(N tokens). Selection is O(U log U) when sorting and O(U log k) with the heap path, which is efficient. The heuristic to switch to sorting when k is a large fraction of U is reasonable.\n- Readability/structure: Clear separation of concerns with a tokenizer, a top_k_tokens function, and top-level orchestration. Type hints and concise comments improve clarity. Variable name 'u' is a bit terse but understandable.\n- Maintainability: Precompiled regex, small functions, and type annotations aid maintainability. No reliance on unspecified ordering behavior (avoids most_common).\n- Minor nits: Using both re.IGNORECASE and .lower() is slightly redundant (either alone would suffice given ASCII), but harmless. In a non-specified environment (imported, no globals, not __main__), top_k remains undefined, though this does not violate the task requirements." + }, + "final_judgement": { + "adherence_score": 5, + "code_quality_score": 5, + "comments": "Meets all task requirements exactly, including tokenization, sorting, edge cases, and output contract. Code is clear, efficient, and well-structured. Minor optional improvements: remove redundant case-handling or ensure top_k is always set in all import contexts." + } + }, + "parse_error": null +} \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_24.json b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_24.json new file mode 100644 index 0000000000..502d3db632 --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_24.json @@ -0,0 +1,16 @@ +{ + "file": "run_24.py", + "raw": "{\n \"reasoning\": {\n \"task_adherence\": \"Step-by-step check against instructions:\\n- Tokenization: Uses a compiled regex r\\\"[a-z0-9]+\\\" with flags re.ASCII | re.IGNORECASE, and explicitly lowercases each matched token in _tokens(). This matches the requirement: ASCII [a-z0-9]+ sequences, lowercase, other chars are separators.\\n- Sorting and Top-K: Builds a Counter from tokens. Defines key = lambda kv: (-kv[1], kv[0]) over cnt.items(), which corresponds to sorting by count descending, then token ascending. For k >= number of unique tokens, returns sorted(cnt.items(), key=key), which yields the full list in the required order. For k < unique, uses heapq.nsmallest(k, cnt.items(), key=key); nsmallest returns the k elements in sorted order according to the key, so the output is correctly ordered as required.\\n- Output shape and length: Returns lists of (token, count) tuples. For k >= U, returns all U tuples; for 0 < k < U, returns exactly k tuples; for k <= 0, returns [] (handled early). This satisfies \\\"length = min(k, number of unique tokens)\\\" and the edge case requirement.\\n- Globals usage: Does not reassign text or k. Detects presence of globals via try/except NameError and, if present, sets top_k = top_k_tokens(text, k). If not present and running as __main__, it runs a guarded demo using separate demo_* variables and still defines top_k.\\n- Prohibited I/O: No input(), file I/O, or network access. Only an optional print in the demo branch.\\n- Output contract: Ensures top_k is defined at end of execution in both code paths (with provided globals or in demo). Optional printing only prints top_k on the last line when in demo mode. Does not rely on Counter.most_common tie ordering.\\nOverall, the code fully adheres to all specified requirements, including edge cases and tie-breaking.\",\n \"code_quality\": \"The code is clear, correct, and efficient:\\n- Clarity/structure: Clean separation of concerns (_tokens generator, top_k_tokens function). Type hints provided. Meaningful names, small and readable.\\n- Correctness: Implements the specified tokenization and ordering precisely. Uses heapq.nsmallest with a key that encodes the required ordering, yielding a sorted Top-K. Handles k <= 0 and k >= U correctly.\\n- Efficiency: Counting is O(N tokens). Selection is O(U log k) for k < U and O(U log U) when sorting all. Extra space O(U + k). This meets typical performance expectations.\\n- Maintainability/readability: Compact and idiomatic. Minor nit: variable name 'u' could be more descriptive (e.g., num_unique). The use of both re.IGNORECASE and explicit lowercasing is slightly redundant but harmless.\\n- Best practices: Avoids Counter.most_common tie semantics as requested. No side effects on globals. The guarded demo respects the output contract and avoids prohibited I/O.\\nNo bugs or inefficiencies of concern were found.\"\n },\n \"final_judgement\": {\n \"adherence_score\": 5,\n \"code_quality_score\": 5,\n \"comments\": \"Excellent adherence: correct tokenization, ordering, edge case handling, and top_k assignment. Code is concise, efficient, and readable. Minor redundancy (IGNORECASE plus lower()) and a terse variable name are the only small nits.\"\n }\n}", + "parsed": { + "reasoning": { + "task_adherence": "Step-by-step check against instructions:\n- Tokenization: Uses a compiled regex r\"[a-z0-9]+\" with flags re.ASCII | re.IGNORECASE, and explicitly lowercases each matched token in _tokens(). This matches the requirement: ASCII [a-z0-9]+ sequences, lowercase, other chars are separators.\n- Sorting and Top-K: Builds a Counter from tokens. Defines key = lambda kv: (-kv[1], kv[0]) over cnt.items(), which corresponds to sorting by count descending, then token ascending. For k >= number of unique tokens, returns sorted(cnt.items(), key=key), which yields the full list in the required order. For k < unique, uses heapq.nsmallest(k, cnt.items(), key=key); nsmallest returns the k elements in sorted order according to the key, so the output is correctly ordered as required.\n- Output shape and length: Returns lists of (token, count) tuples. For k >= U, returns all U tuples; for 0 < k < U, returns exactly k tuples; for k <= 0, returns [] (handled early). This satisfies \"length = min(k, number of unique tokens)\" and the edge case requirement.\n- Globals usage: Does not reassign text or k. Detects presence of globals via try/except NameError and, if present, sets top_k = top_k_tokens(text, k). If not present and running as __main__, it runs a guarded demo using separate demo_* variables and still defines top_k.\n- Prohibited I/O: No input(), file I/O, or network access. Only an optional print in the demo branch.\n- Output contract: Ensures top_k is defined at end of execution in both code paths (with provided globals or in demo). Optional printing only prints top_k on the last line when in demo mode. Does not rely on Counter.most_common tie ordering.\nOverall, the code fully adheres to all specified requirements, including edge cases and tie-breaking.", + "code_quality": "The code is clear, correct, and efficient:\n- Clarity/structure: Clean separation of concerns (_tokens generator, top_k_tokens function). Type hints provided. Meaningful names, small and readable.\n- Correctness: Implements the specified tokenization and ordering precisely. Uses heapq.nsmallest with a key that encodes the required ordering, yielding a sorted Top-K. Handles k <= 0 and k >= U correctly.\n- Efficiency: Counting is O(N tokens). Selection is O(U log k) for k < U and O(U log U) when sorting all. Extra space O(U + k). This meets typical performance expectations.\n- Maintainability/readability: Compact and idiomatic. Minor nit: variable name 'u' could be more descriptive (e.g., num_unique). The use of both re.IGNORECASE and explicit lowercasing is slightly redundant but harmless.\n- Best practices: Avoids Counter.most_common tie semantics as requested. No side effects on globals. The guarded demo respects the output contract and avoids prohibited I/O.\nNo bugs or inefficiencies of concern were found." + }, + "final_judgement": { + "adherence_score": 5, + "code_quality_score": 5, + "comments": "Excellent adherence: correct tokenization, ordering, edge case handling, and top_k assignment. Code is concise, efficient, and readable. Minor redundancy (IGNORECASE plus lower()) and a terse variable name are the only small nits." + } + }, + "parse_error": null +} \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_25.json b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_25.json new file mode 100644 index 0000000000..cf4cb7ef4a --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_25.json @@ -0,0 +1,16 @@ +{ + "file": "run_25.py", + "raw": "{\n \"reasoning\": {\n \"task_adherence\": \"Step-by-step:\\n- Tokenization: Uses regex r\\\"[a-z0-9]+\\\" with re.ASCII and re.IGNORECASE, and yields m.group(0).lower(). This matches the requirement to use ASCII [a-z0-9]+ as tokens with other chars as separators, and to lowercase tokens. Using IGNORECASE plus .lower() is redundant but compliant.\\n- Inputs: The code references provided globals text and k without reassigning them. It conditionally executes a demo only if those globals are absent and the script is run as __main__, which does not violate the instructions.\\n- Requirement 1 (sorting): Defines key = lambda kv: (-kv[1], kv[0]) and applies it to (token, count) pairs. For k >= number of unique tokens, returns sorted(cnt.items(), key=key). For k < unique tokens, returns heapq.nsmallest(k, cnt.items(), key=key). This achieves sort by count desc then token asc for the selected Top-K and avoids Counter.most_common.\\n- Requirement 2 (top_k value): Sets top_k to the list returned by top_k_tokens(text, k). The function returns a list of (token, count) tuples of length min(k, unique tokens). Correct.\\n- Requirement 3 (edge case k <= 0): top_k_tokens returns [], so top_k will be []. Correct.\\n- Requirement 4 (no input/I-O/net): No input(), no file I/O, no network access. Optional printing occurs only in the demo branch and prints only top_k on the last line.\\n- Output contract: When globals are provided (the intended scenario), top_k is defined exactly as specified. In demo mode, top_k is also defined at module level and printed as a Python literal. The code does not rely on Counter.most_common for tie ordering.\\n- Minor note: If globals were not provided and the module was imported (not __main__), top_k would not be defined; however, the task explicitly states globals are provided when running, so this is not a violation in the intended use.\\nOverall, all specified requirements are met, with correct tokenization, sorting, edge-case handling, and output placement.\",\n \"code_quality\": \"Clarity and correctness: The code is clear, concise, and correct. The helper _tokens encapsulates tokenization cleanly. Type hints improve readability.\\nEfficiency: Counting is O(N tokens). Selecting Top-K uses heapq.nsmallest with key-based ordering, giving O(U log k) time and O(U + k) space as commented. For k >= U, it sensibly falls back to full sort.\\nBest practices and readability: Names are descriptive, structure is modular. No reliance on most_common tie semantics. The try/except NameError to detect globals is pragmatic. Optional demo prints only the required value. Minor nit: using re.IGNORECASE together with .lower() is redundant (either alone would suffice), but it doesn't harm correctness or performance materially. Docstrings are absent but not required here.\\nNo bugs or stylistic issues that affect behavior were found.\"\n },\n \"final_judgement\": {\n \"adherence_score\": 5,\n \"code_quality_score\": 5,\n \"comments\": \"Excellent adherence: correct tokenization, sorting, edge-case handling, and output. Code is clean, efficient, and maintainable. Minor optional improvement: remove redundant IGNORECASE or .lower() redundancy.\"\n }\n}", + "parsed": { + "reasoning": { + "task_adherence": "Step-by-step:\n- Tokenization: Uses regex r\"[a-z0-9]+\" with re.ASCII and re.IGNORECASE, and yields m.group(0).lower(). This matches the requirement to use ASCII [a-z0-9]+ as tokens with other chars as separators, and to lowercase tokens. Using IGNORECASE plus .lower() is redundant but compliant.\n- Inputs: The code references provided globals text and k without reassigning them. It conditionally executes a demo only if those globals are absent and the script is run as __main__, which does not violate the instructions.\n- Requirement 1 (sorting): Defines key = lambda kv: (-kv[1], kv[0]) and applies it to (token, count) pairs. For k >= number of unique tokens, returns sorted(cnt.items(), key=key). For k < unique tokens, returns heapq.nsmallest(k, cnt.items(), key=key). This achieves sort by count desc then token asc for the selected Top-K and avoids Counter.most_common.\n- Requirement 2 (top_k value): Sets top_k to the list returned by top_k_tokens(text, k). The function returns a list of (token, count) tuples of length min(k, unique tokens). Correct.\n- Requirement 3 (edge case k <= 0): top_k_tokens returns [], so top_k will be []. Correct.\n- Requirement 4 (no input/I-O/net): No input(), no file I/O, no network access. Optional printing occurs only in the demo branch and prints only top_k on the last line.\n- Output contract: When globals are provided (the intended scenario), top_k is defined exactly as specified. In demo mode, top_k is also defined at module level and printed as a Python literal. The code does not rely on Counter.most_common for tie ordering.\n- Minor note: If globals were not provided and the module was imported (not __main__), top_k would not be defined; however, the task explicitly states globals are provided when running, so this is not a violation in the intended use.\nOverall, all specified requirements are met, with correct tokenization, sorting, edge-case handling, and output placement.", + "code_quality": "Clarity and correctness: The code is clear, concise, and correct. The helper _tokens encapsulates tokenization cleanly. Type hints improve readability.\nEfficiency: Counting is O(N tokens). Selecting Top-K uses heapq.nsmallest with key-based ordering, giving O(U log k) time and O(U + k) space as commented. For k >= U, it sensibly falls back to full sort.\nBest practices and readability: Names are descriptive, structure is modular. No reliance on most_common tie semantics. The try/except NameError to detect globals is pragmatic. Optional demo prints only the required value. Minor nit: using re.IGNORECASE together with .lower() is redundant (either alone would suffice), but it doesn't harm correctness or performance materially. Docstrings are absent but not required here.\nNo bugs or stylistic issues that affect behavior were found." + }, + "final_judgement": { + "adherence_score": 5, + "code_quality_score": 5, + "comments": "Excellent adherence: correct tokenization, sorting, edge-case handling, and output. Code is clean, efficient, and maintainable. Minor optional improvement: remove redundant IGNORECASE or .lower() redundancy." + } + }, + "parse_error": null +} \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_26.json b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_26.json new file mode 100644 index 0000000000..53b973d0fb --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_26.json @@ -0,0 +1,16 @@ +{ + "file": "run_26.py", + "raw": "{\n \"reasoning\": {\n \"task_adherence\": \"Step-by-step against the instructions:\\n- Tokenization: Uses a regex r\\\"[a-z0-9]+\\\" with flags re.ASCII | re.IGNORECASE to extract alphanumeric ASCII sequences, and each token is lowercased in _tokens(). This matches the spec (lowercase and ASCII [a-z0-9]+ tokens; other chars are separators via regex).\\n- Inputs and globals: The code reads globals text and k without reassigning them. It computes top_k = top_k_tokens(text, k) when those globals exist. It never reassigns text or k.\\n- Requirement 1 (sorting): The final ordering is by (-count, token). In the sorting path, it does sorted(cnt.items(), key=lambda kv: (-kv[1], kv[0])). In the heap path, it sorts the final result with result.sort(key=lambda kv: (-kv[1], kv[0])). This exactly matches the required sort key.\\n- Requirement 2 (Top-K list and length): top_k_tokens returns a list of (token, count) tuples. It computes k_eff = min(k, number of unique tokens) and either slices the sorted list [:k_eff] or maintains a size-k heap, ensuring the returned list length is min(k, unique tokens). The module-level top_k is set to that list when globals are provided.\\n- Requirement 3 (k <= 0): Early return [] if k <= 0, so top_k will be an empty list in that case.\\n- Requirement 4 (no input/file/network; runs as-is): No input(), file I/O, or network usage. With the provided globals, the script computes top_k and does not print anything extra. If globals are absent and the script is executed as __main__, it runs a guarded demo and prints only top_k, which is allowed as optional behavior.\\n- Output contract: When text and k are provided, top_k is defined at the end as required. The code does not rely on Counter.most_common; it explicitly implements the sort order and a correct heap-based selection with proper tie-breaking.\\n- Minor note: If text and k are not provided and the module is imported (not run as __main__), top_k would remain undefined. Given the task guarantees those globals are provided, this is acceptable but worth noting as a minor edge consideration.\\nOverall, the solution adheres very well to the instructions, including edge cases and the specified sorting and output contract.\",\n \"code_quality\": \"Notable points:\\n- Clarity/readability: Well-structured with clear helper functions (_tokens, _revlex_tuple, top_k_tokens). Comments explain the heap ordering rationale. Type hints improve readability.\\n- Correctness: Tokenization matches requirements. Sorting and tie-breaking are correct. The heap branch uses rk = (count, _revlex_tuple(token)) so the min-heap root represents the current worst item (lowest count, then lexicographically largest), and items replace the root when better (rk > root). Final sort ensures exact required order. Edge cases k <= 0 and no tokens are handled.\\n- Efficiency: Uses Counter for O(N tokens) counting. Chooses between full sort (O(U log U)) and a bounded heap (O(U log k)), which is efficient. _revlex_tuple enables correct tie behavior in the heap.\\n- Maintainability: Modular design, doc-style comments for complexity, and no reliance on unspecified Counter.most_common behavior. No unnecessary side effects; respects provided globals.\\n- Minor nits: re.IGNORECASE is redundant since matches are lowercased anyway; storing both c in rk and again as a separate field duplicates data slightly; the globals-existence check via 'try: text; k' is a bit unconventional but functional.\\nOverall, code quality is high with no correctness bugs identified.\"\n },\n \"final_judgement\": {\n \"adherence_score\": 5,\n \"code_quality_score\": 5,\n \"comments\": \"Excellent adherence to requirements and robust implementation. Correct tokenization, sorting, edge-case handling, and output contract. Minor style nits only.\"\n }\n}", + "parsed": { + "reasoning": { + "task_adherence": "Step-by-step against the instructions:\n- Tokenization: Uses a regex r\"[a-z0-9]+\" with flags re.ASCII | re.IGNORECASE to extract alphanumeric ASCII sequences, and each token is lowercased in _tokens(). This matches the spec (lowercase and ASCII [a-z0-9]+ tokens; other chars are separators via regex).\n- Inputs and globals: The code reads globals text and k without reassigning them. It computes top_k = top_k_tokens(text, k) when those globals exist. It never reassigns text or k.\n- Requirement 1 (sorting): The final ordering is by (-count, token). In the sorting path, it does sorted(cnt.items(), key=lambda kv: (-kv[1], kv[0])). In the heap path, it sorts the final result with result.sort(key=lambda kv: (-kv[1], kv[0])). This exactly matches the required sort key.\n- Requirement 2 (Top-K list and length): top_k_tokens returns a list of (token, count) tuples. It computes k_eff = min(k, number of unique tokens) and either slices the sorted list [:k_eff] or maintains a size-k heap, ensuring the returned list length is min(k, unique tokens). The module-level top_k is set to that list when globals are provided.\n- Requirement 3 (k <= 0): Early return [] if k <= 0, so top_k will be an empty list in that case.\n- Requirement 4 (no input/file/network; runs as-is): No input(), file I/O, or network usage. With the provided globals, the script computes top_k and does not print anything extra. If globals are absent and the script is executed as __main__, it runs a guarded demo and prints only top_k, which is allowed as optional behavior.\n- Output contract: When text and k are provided, top_k is defined at the end as required. The code does not rely on Counter.most_common; it explicitly implements the sort order and a correct heap-based selection with proper tie-breaking.\n- Minor note: If text and k are not provided and the module is imported (not run as __main__), top_k would remain undefined. Given the task guarantees those globals are provided, this is acceptable but worth noting as a minor edge consideration.\nOverall, the solution adheres very well to the instructions, including edge cases and the specified sorting and output contract.", + "code_quality": "Notable points:\n- Clarity/readability: Well-structured with clear helper functions (_tokens, _revlex_tuple, top_k_tokens). Comments explain the heap ordering rationale. Type hints improve readability.\n- Correctness: Tokenization matches requirements. Sorting and tie-breaking are correct. The heap branch uses rk = (count, _revlex_tuple(token)) so the min-heap root represents the current worst item (lowest count, then lexicographically largest), and items replace the root when better (rk > root). Final sort ensures exact required order. Edge cases k <= 0 and no tokens are handled.\n- Efficiency: Uses Counter for O(N tokens) counting. Chooses between full sort (O(U log U)) and a bounded heap (O(U log k)), which is efficient. _revlex_tuple enables correct tie behavior in the heap.\n- Maintainability: Modular design, doc-style comments for complexity, and no reliance on unspecified Counter.most_common behavior. No unnecessary side effects; respects provided globals.\n- Minor nits: re.IGNORECASE is redundant since matches are lowercased anyway; storing both c in rk and again as a separate field duplicates data slightly; the globals-existence check via 'try: text; k' is a bit unconventional but functional.\nOverall, code quality is high with no correctness bugs identified." + }, + "final_judgement": { + "adherence_score": 5, + "code_quality_score": 5, + "comments": "Excellent adherence to requirements and robust implementation. Correct tokenization, sorting, edge-case handling, and output contract. Minor style nits only." + } + }, + "parse_error": null +} \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_27.json b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_27.json new file mode 100644 index 0000000000..87cf11a0d9 --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_27.json @@ -0,0 +1,16 @@ +{ + "file": "run_27.py", + "raw": "{\n \"reasoning\": {\n \"task_adherence\": \"- Tokenization: Uses regex r\\\"[a-z0-9]+\\\" with re.ASCII and re.IGNORECASE, then lowercases via m.group(0).lower(). This matches the instruction to lowercase and to tokenize as ASCII [a-z0-9]+ sequences with other characters as separators.\\n- Inputs (globals): Accesses provided globals text and k without reassigning them. It conditionally runs a demo only if globals are missing and __name__ == \\\"__main__\\\"; otherwise, it computes top_k from the provided globals. This respects the constraint not to reassign the globals.\\n- Requirement 1 (sorting by count desc, token asc): Defines key = lambda kv: (-kv[1], kv[0]) where kv is (token, count). Sorting with this key yields descending count then ascending token. For the heap path, heapq.nsmallest(k, ..., key=key) returns items in ascending order per the key, which is the desired order. No reliance on Counter.most_common.\\n- Requirement 2 (top_k list length): When k >= number of unique tokens (u), returns all items sorted. Otherwise, returns exactly k items, both in correct order. The final assignment top_k = top_k_tokens(text, k) ensures top_k is that list of (token, count) tuples.\\n- Requirement 3 (k <= 0): top_k_tokens returns [] when k <= 0, so top_k becomes [] in that case.\\n- Requirement 4 (no input/file/network): No input(), file I/O, or network access is used. The only print occurs in the demo branch when globals are absent and running as main.\\n- Output contract: At end, when globals are provided (as per task), top_k is defined exactly as specified. Optional printing is only in the demo branch and prints just top_k on the last line. No extraneous output when globals are provided.\\n- Ambiguities/choices: The implementation uses a heuristic to choose between sorting and heap selection; both paths produce exactly the required ordering and results. The presence of a demo path is acceptable given it doesn\u2019t interfere when globals are provided. The code avoids Counter.most_common as requested.\\n- Edge conditions: Handles empty text (u = 0) correctly yielding []. Handles k > number of unique tokens, k == 0, and negative k correctly.\",\n \"code_quality\": \"- Clarity and structure: Clean separation of concerns: tokenization helper, main top_k_tokens function, and a guarded main/demo section. Type annotations improve readability.\\n- Correctness: Follows the specified tokenization and sorting rules precisely. Does not rely on Counter.most_common.\\n- Efficiency: Counts in O(N tokens). Chooses between full sort and heapq.nsmallest based on a threshold; both are efficient and correct. Heap path returns properly ordered results.\\n- Readability: Variable names are succinct though cnt/u could be more descriptive; still understandable. Key function is clear. Comment on complexity is helpful.\\n- Maintainability: Minimal dependencies, clear functions, and no hidden side effects. The try/except for globals is reasonable; uses type: ignore to satisfy type checkers.\\n- Minor nits: Using both re.IGNORECASE and .lower() is slightly redundant; either alone (with lowercase conversion) would suffice. Not harmful. If imported and globals are missing (and not __main__), top_k would not be defined, but the task assumes globals are provided, so this is acceptable.\"\n },\n \"final_judgement\": {\n \"adherence_score\": 5,\n \"code_quality_score\": 5,\n \"comments\": \"Implements the exact tokenization, sorting, and Top-K requirements; handles edge cases; defines top_k as specified; avoids prohibited I/O. Code is clear, correct, and efficient. Only minor stylistic nits (redundant case handling).\"\n }\n}", + "parsed": { + "reasoning": { + "task_adherence": "- Tokenization: Uses regex r\"[a-z0-9]+\" with re.ASCII and re.IGNORECASE, then lowercases via m.group(0).lower(). This matches the instruction to lowercase and to tokenize as ASCII [a-z0-9]+ sequences with other characters as separators.\n- Inputs (globals): Accesses provided globals text and k without reassigning them. It conditionally runs a demo only if globals are missing and __name__ == \"__main__\"; otherwise, it computes top_k from the provided globals. This respects the constraint not to reassign the globals.\n- Requirement 1 (sorting by count desc, token asc): Defines key = lambda kv: (-kv[1], kv[0]) where kv is (token, count). Sorting with this key yields descending count then ascending token. For the heap path, heapq.nsmallest(k, ..., key=key) returns items in ascending order per the key, which is the desired order. No reliance on Counter.most_common.\n- Requirement 2 (top_k list length): When k >= number of unique tokens (u), returns all items sorted. Otherwise, returns exactly k items, both in correct order. The final assignment top_k = top_k_tokens(text, k) ensures top_k is that list of (token, count) tuples.\n- Requirement 3 (k <= 0): top_k_tokens returns [] when k <= 0, so top_k becomes [] in that case.\n- Requirement 4 (no input/file/network): No input(), file I/O, or network access is used. The only print occurs in the demo branch when globals are absent and running as main.\n- Output contract: At end, when globals are provided (as per task), top_k is defined exactly as specified. Optional printing is only in the demo branch and prints just top_k on the last line. No extraneous output when globals are provided.\n- Ambiguities/choices: The implementation uses a heuristic to choose between sorting and heap selection; both paths produce exactly the required ordering and results. The presence of a demo path is acceptable given it doesn\u2019t interfere when globals are provided. The code avoids Counter.most_common as requested.\n- Edge conditions: Handles empty text (u = 0) correctly yielding []. Handles k > number of unique tokens, k == 0, and negative k correctly.", + "code_quality": "- Clarity and structure: Clean separation of concerns: tokenization helper, main top_k_tokens function, and a guarded main/demo section. Type annotations improve readability.\n- Correctness: Follows the specified tokenization and sorting rules precisely. Does not rely on Counter.most_common.\n- Efficiency: Counts in O(N tokens). Chooses between full sort and heapq.nsmallest based on a threshold; both are efficient and correct. Heap path returns properly ordered results.\n- Readability: Variable names are succinct though cnt/u could be more descriptive; still understandable. Key function is clear. Comment on complexity is helpful.\n- Maintainability: Minimal dependencies, clear functions, and no hidden side effects. The try/except for globals is reasonable; uses type: ignore to satisfy type checkers.\n- Minor nits: Using both re.IGNORECASE and .lower() is slightly redundant; either alone (with lowercase conversion) would suffice. Not harmful. If imported and globals are missing (and not __main__), top_k would not be defined, but the task assumes globals are provided, so this is acceptable." + }, + "final_judgement": { + "adherence_score": 5, + "code_quality_score": 5, + "comments": "Implements the exact tokenization, sorting, and Top-K requirements; handles edge cases; defines top_k as specified; avoids prohibited I/O. Code is clear, correct, and efficient. Only minor stylistic nits (redundant case handling)." + } + }, + "parse_error": null +} \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_28.json b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_28.json new file mode 100644 index 0000000000..8ce2711b13 --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_28.json @@ -0,0 +1,16 @@ +{ + "file": "run_28.py", + "raw": "{\n \"reasoning\": {\n \"task_adherence\": \"- Tokenization requirements:\\n - Uses regex r\\\"[a-z0-9]+\\\" with re.ASCII to ensure ASCII-only tokens and re.IGNORECASE to capture uppercase. Then lowercases each token in _tokens(). This matches: lowercase tokens; tokens are ASCII [a-z0-9]+; non-matching chars act as separators.\\n- Inputs/globals:\\n - Reads globals text and k without reassigning. The try/except NameError branch falls back to a demo only if globals are absent. When globals are present, it computes top_k = top_k_tokens(text, k) as required.\\n- Sorting and Top-K:\\n - Defines key = lambda kv: (-kv[1], kv[0]) which implements count descending, then token ascending.\\n - For k >= number of unique tokens (u), returns sorted(cnt.items(), key=key) which is fully sorted.\\n - For k < u, either sorts-then-slices or uses heapq.nsmallest(k, cnt.items(), key=key). heapq.nsmallest with this key returns elements in ascending order of (-count, token), which corresponds exactly to descending count and ascending token. This does not rely on Counter.most_common.\\n- Edge cases:\\n - If k <= 0, returns [] and subsequently sets top_k = [].\\n - If there are zero unique tokens, returns [].\\n - Length of result is exactly min(k, u) in all branches.\\n- No disallowed I/O:\\n - No input(), file I/O, or network access. Optional print occurs only in demo mode and prints only top_k on the last line.\\n- Output contract:\\n - With provided globals, top_k is defined at end as a list of (token, count) tuples ordered per spec. In the no-globals case, a demo under __main__ sets and prints top_k; otherwise no top_k is defined, which is acceptable given the task context that globals are provided.\\n- Ambiguities/notes:\\n - The use of both re.IGNORECASE and lower() is slightly redundant but correct and safe. The selection heuristic (sort-all vs heap) is an internal optimization that preserves exact ordering.\",\n \"code_quality\": \"- Correctness: Implements exact sorting key and Top-K selection; avoids Counter.most_common tie behavior; handles edge cases.\\n- Efficiency: Uses Counter for O(N) counting and selects either full sort O(U log U) or heap-based selection O(U log k) depending on k/U. Reasonable threshold and documented.\\n- Readability/Maintainability:\\n - Clear structure with small, well-named helpers (_tokens, top_k_tokens).\\n - Regex precompiled. Type hints provided. Comments explain key and complexity.\\n - Minor nit: variable name 'u' could be more descriptive (e.g., num_unique). Also, using both IGNORECASE and .lower() is redundant, but harmless.\\n- Style/Best practices: No global reassignment; optional demo guarded by __main__; no extraneous prints. Overall clean and idiomatic Python.\\n- No bugs or inefficiencies evident that affect correctness or ordering.\"\n },\n \"final_judgement\": {\n \"adherence_score\": 5,\n \"code_quality_score\": 5,\n \"comments\": \"Excellent adherence: correct tokenization, ordering, edge-case handling, and output variable. Efficient and clear implementation without relying on Counter.most_common. Minor nits only (redundant IGNORECASE + lower, terse variable name).\"\n }\n}", + "parsed": { + "reasoning": { + "task_adherence": "- Tokenization requirements:\n - Uses regex r\"[a-z0-9]+\" with re.ASCII to ensure ASCII-only tokens and re.IGNORECASE to capture uppercase. Then lowercases each token in _tokens(). This matches: lowercase tokens; tokens are ASCII [a-z0-9]+; non-matching chars act as separators.\n- Inputs/globals:\n - Reads globals text and k without reassigning. The try/except NameError branch falls back to a demo only if globals are absent. When globals are present, it computes top_k = top_k_tokens(text, k) as required.\n- Sorting and Top-K:\n - Defines key = lambda kv: (-kv[1], kv[0]) which implements count descending, then token ascending.\n - For k >= number of unique tokens (u), returns sorted(cnt.items(), key=key) which is fully sorted.\n - For k < u, either sorts-then-slices or uses heapq.nsmallest(k, cnt.items(), key=key). heapq.nsmallest with this key returns elements in ascending order of (-count, token), which corresponds exactly to descending count and ascending token. This does not rely on Counter.most_common.\n- Edge cases:\n - If k <= 0, returns [] and subsequently sets top_k = [].\n - If there are zero unique tokens, returns [].\n - Length of result is exactly min(k, u) in all branches.\n- No disallowed I/O:\n - No input(), file I/O, or network access. Optional print occurs only in demo mode and prints only top_k on the last line.\n- Output contract:\n - With provided globals, top_k is defined at end as a list of (token, count) tuples ordered per spec. In the no-globals case, a demo under __main__ sets and prints top_k; otherwise no top_k is defined, which is acceptable given the task context that globals are provided.\n- Ambiguities/notes:\n - The use of both re.IGNORECASE and lower() is slightly redundant but correct and safe. The selection heuristic (sort-all vs heap) is an internal optimization that preserves exact ordering.", + "code_quality": "- Correctness: Implements exact sorting key and Top-K selection; avoids Counter.most_common tie behavior; handles edge cases.\n- Efficiency: Uses Counter for O(N) counting and selects either full sort O(U log U) or heap-based selection O(U log k) depending on k/U. Reasonable threshold and documented.\n- Readability/Maintainability:\n - Clear structure with small, well-named helpers (_tokens, top_k_tokens).\n - Regex precompiled. Type hints provided. Comments explain key and complexity.\n - Minor nit: variable name 'u' could be more descriptive (e.g., num_unique). Also, using both IGNORECASE and .lower() is redundant, but harmless.\n- Style/Best practices: No global reassignment; optional demo guarded by __main__; no extraneous prints. Overall clean and idiomatic Python.\n- No bugs or inefficiencies evident that affect correctness or ordering." + }, + "final_judgement": { + "adherence_score": 5, + "code_quality_score": 5, + "comments": "Excellent adherence: correct tokenization, ordering, edge-case handling, and output variable. Efficient and clear implementation without relying on Counter.most_common. Minor nits only (redundant IGNORECASE + lower, terse variable name)." + } + }, + "parse_error": null +} \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_29.json b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_29.json new file mode 100644 index 0000000000..5889fe8175 --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_29.json @@ -0,0 +1,16 @@ +{ + "file": "run_29.py", + "raw": "{\n \"reasoning\": {\n \"task_adherence\": \"Step-by-step adherence check:\\n- Tokenization rules: The code compiles a regex r\\\"[a-z0-9]+\\\" with re.ASCII | re.IGNORECASE and then lowercases each matched token in _tokens(). This satisfies: lowercase text and ASCII [a-z0-9]+ tokens; other chars as separators.\\n- Sorting requirement: The key lambda (-count, token) is used with sorted(...) or heapq.nsmallest(...), producing order by count desc then token asc. This matches the specified sort key; it also avoids relying on Counter.most_common.\\n- Top-K computation: The function returns min(k, U) items. Cases:\\n - If k <= 0: returns []. Matches requirement 3.\\n - If U == 0: returns []. Appropriate.\\n - If k >= U: returns full sorted list of U items. Correct length and order.\\n - Else: either sorts and slices or uses heapq.nsmallest(k, ...). Both yield exactly k items sorted by the given key (heapq.nsmallest returns results sorted by the key), so the order is correct.\\n- Globals handling: It does not reassign text or k. It assigns top_k = top_k_tokens(text, k) when those globals exist, satisfying the requirement that at the end of execution top_k is defined as specified (in the intended environment where globals are provided).\\n- No disallowed I/O: No input(), file, or network access. Optional printing only occurs in a demo branch when globals are missing and __name__ == \\\"__main__\\\"; it prints only top_k and nothing else, fulfilling the optional print constraint.\\n- Edge/ambiguity: If globals are absent and not running as __main__, top_k would not be set, but the task context states the globals are provided, so this is acceptable. The implementation does not use Counter.most_common and implements the specified sort explicitly.\\nOverall, the code fully meets the instructions.\",\n \"code_quality\": \"Assessment:\\n- Correctness: Tokenization, counting, and ordering are correct. heapq.nsmallest with key=(-count, token) correctly returns the top-k in the required sorted order. Edge cases (k<=0, no tokens) handled.\\n- Efficiency: Uses Counter for O(N) counting. Chooses between full sort O(U log U) for large k and heap-based selection O(U log k) for small k. This is efficient and memory-conscious (extra O(k) beyond counts).\\n- Readability: Clear structure with helper _tokens and top_k_tokens function. Type hints provided. Inline comments clarify strategy and complexity.\\n- Maintainability: Logic is modular and well-documented. Regex is compiled once at module level. No reliance on unspecified tie-breaking behavior.\\n- Style: Minor nit: \\\"import re, heapq\\\" could be split into separate lines per PEP 8; variable name 'u' could be more descriptive. These are minor and do not affect quality.\\nNo bugs or significant issues identified.\"\n },\n \"final_judgement\": {\n \"adherence_score\": 5,\n \"code_quality_score\": 5,\n \"comments\": \"Meets all task requirements precisely, including tokenization, sorting, edge cases, and global handling. Code is efficient, clean, and well-documented. Minor stylistic nits only.\"\n }\n}", + "parsed": { + "reasoning": { + "task_adherence": "Step-by-step adherence check:\n- Tokenization rules: The code compiles a regex r\"[a-z0-9]+\" with re.ASCII | re.IGNORECASE and then lowercases each matched token in _tokens(). This satisfies: lowercase text and ASCII [a-z0-9]+ tokens; other chars as separators.\n- Sorting requirement: The key lambda (-count, token) is used with sorted(...) or heapq.nsmallest(...), producing order by count desc then token asc. This matches the specified sort key; it also avoids relying on Counter.most_common.\n- Top-K computation: The function returns min(k, U) items. Cases:\n - If k <= 0: returns []. Matches requirement 3.\n - If U == 0: returns []. Appropriate.\n - If k >= U: returns full sorted list of U items. Correct length and order.\n - Else: either sorts and slices or uses heapq.nsmallest(k, ...). Both yield exactly k items sorted by the given key (heapq.nsmallest returns results sorted by the key), so the order is correct.\n- Globals handling: It does not reassign text or k. It assigns top_k = top_k_tokens(text, k) when those globals exist, satisfying the requirement that at the end of execution top_k is defined as specified (in the intended environment where globals are provided).\n- No disallowed I/O: No input(), file, or network access. Optional printing only occurs in a demo branch when globals are missing and __name__ == \"__main__\"; it prints only top_k and nothing else, fulfilling the optional print constraint.\n- Edge/ambiguity: If globals are absent and not running as __main__, top_k would not be set, but the task context states the globals are provided, so this is acceptable. The implementation does not use Counter.most_common and implements the specified sort explicitly.\nOverall, the code fully meets the instructions.", + "code_quality": "Assessment:\n- Correctness: Tokenization, counting, and ordering are correct. heapq.nsmallest with key=(-count, token) correctly returns the top-k in the required sorted order. Edge cases (k<=0, no tokens) handled.\n- Efficiency: Uses Counter for O(N) counting. Chooses between full sort O(U log U) for large k and heap-based selection O(U log k) for small k. This is efficient and memory-conscious (extra O(k) beyond counts).\n- Readability: Clear structure with helper _tokens and top_k_tokens function. Type hints provided. Inline comments clarify strategy and complexity.\n- Maintainability: Logic is modular and well-documented. Regex is compiled once at module level. No reliance on unspecified tie-breaking behavior.\n- Style: Minor nit: \"import re, heapq\" could be split into separate lines per PEP 8; variable name 'u' could be more descriptive. These are minor and do not affect quality.\nNo bugs or significant issues identified." + }, + "final_judgement": { + "adherence_score": 5, + "code_quality_score": 5, + "comments": "Meets all task requirements precisely, including tokenization, sorting, edge cases, and global handling. Code is efficient, clean, and well-documented. Minor stylistic nits only." + } + }, + "parse_error": null +} \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_30.json b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_30.json new file mode 100644 index 0000000000..a859ccbcb5 --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_llm_as_judge_optimized/run_30.json @@ -0,0 +1,16 @@ +{ + "file": "run_30.py", + "raw": "{\n \"reasoning\": {\n \"task_adherence\": \"- Tokenization: Uses regex r\\\"[a-z0-9]+\\\" with re.ASCII to ensure ASCII matching and lowercases tokens in _tokens(), satisfying the requirement to lowercase and use ASCII [a-z0-9]+ with other chars as separators.\\n- Inputs: Accesses provided globals text and k without reassigning them. Uses a try/except NameError to detect their presence and only computes from them when available, respecting the constraint.\\n- Requirement 1 (sorting): Constructs key = lambda kv: (-kv[1], kv[0]) over (token, count) pairs and uses heapq.nsmallest(m, cnt.items(), key=key). This produces items ordered by count descending, then token ascending, matching the specified sort key (-count, token). It does not rely on Counter.most_common tie ordering.\\n- Requirement 2 (top_k content and length): The function returns a list of (token, count) tuples and limits its length to m = min(k, number of unique tokens). The top-level assigns top_k = top_k_tokens(text, k), so top_k meets the spec when globals are provided.\\n- Requirement 3 (k <= 0): top_k_tokens returns [] when k <= 0; thus top_k is [] in that case.\\n- Requirement 4 (no I/O): No input(), file I/O, or network access is used. Optional printing occurs only in a demo path when globals are missing and __name__ == \\\"__main__\\\", printing only top_k.\\n- Output contract: With provided globals, top_k is defined at the end exactly as required. Optional printing is constrained to output only top_k as a Python literal. A minor note: if globals are missing and not running as __main__, top_k is not defined, but the task states globals are provided, so this path is outside the stated execution context.\\n- Note on tie ordering: Does not use Counter.most_common; ordering is implemented explicitly via key.\",\n \"code_quality\": \"- Correctness: The logic correctly tokenizes, counts, and selects the top-k with the proper sort key and tie-breaker. Edge cases (k <= 0 and no tokens) return [].\\n- Efficiency: Counting is O(N tokens). Selection via heapq.nsmallest is O(U log k) with space O(U + k), which is efficient for large U and small k.\\n- Readability/clarity: Clear structure with helper functions and type hints. Minor nit: variable names u and m are terse; more descriptive names could improve readability. A small redundancy exists (using re.IGNORECASE plus lowercasing), but it\u2019s harmless.\\n- Maintainability: Modular design and clear top-level orchestration. Type hints aid maintainability. The try/except for globals is pragmatic and well-scoped. A very minor improvement would be to always define top_k even if globals are missing and not __main__, though this is outside the stated execution scenario.\\n- Best practices: Avoids reliance on Counter.most_common ordering, avoids unnecessary I/O, and handles edge cases explicitly. The complexity comment is accurate and helpful.\"\n },\n \"final_judgement\": {\n \"adherence_score\": 5,\n \"code_quality_score\": 5,\n \"comments\": \"Meets all task requirements precisely with correct sorting, proper tokenization, edge-case handling, and no prohibited I/O. Code is clean, efficient, and maintainable. Minor nits (redundant IGNORECASE, terse variable names) do not affect correctness or quality.\"\n }\n}", + "parsed": { + "reasoning": { + "task_adherence": "- Tokenization: Uses regex r\"[a-z0-9]+\" with re.ASCII to ensure ASCII matching and lowercases tokens in _tokens(), satisfying the requirement to lowercase and use ASCII [a-z0-9]+ with other chars as separators.\n- Inputs: Accesses provided globals text and k without reassigning them. Uses a try/except NameError to detect their presence and only computes from them when available, respecting the constraint.\n- Requirement 1 (sorting): Constructs key = lambda kv: (-kv[1], kv[0]) over (token, count) pairs and uses heapq.nsmallest(m, cnt.items(), key=key). This produces items ordered by count descending, then token ascending, matching the specified sort key (-count, token). It does not rely on Counter.most_common tie ordering.\n- Requirement 2 (top_k content and length): The function returns a list of (token, count) tuples and limits its length to m = min(k, number of unique tokens). The top-level assigns top_k = top_k_tokens(text, k), so top_k meets the spec when globals are provided.\n- Requirement 3 (k <= 0): top_k_tokens returns [] when k <= 0; thus top_k is [] in that case.\n- Requirement 4 (no I/O): No input(), file I/O, or network access is used. Optional printing occurs only in a demo path when globals are missing and __name__ == \"__main__\", printing only top_k.\n- Output contract: With provided globals, top_k is defined at the end exactly as required. Optional printing is constrained to output only top_k as a Python literal. A minor note: if globals are missing and not running as __main__, top_k is not defined, but the task states globals are provided, so this path is outside the stated execution context.\n- Note on tie ordering: Does not use Counter.most_common; ordering is implemented explicitly via key.", + "code_quality": "- Correctness: The logic correctly tokenizes, counts, and selects the top-k with the proper sort key and tie-breaker. Edge cases (k <= 0 and no tokens) return [].\n- Efficiency: Counting is O(N tokens). Selection via heapq.nsmallest is O(U log k) with space O(U + k), which is efficient for large U and small k.\n- Readability/clarity: Clear structure with helper functions and type hints. Minor nit: variable names u and m are terse; more descriptive names could improve readability. A small redundancy exists (using re.IGNORECASE plus lowercasing), but it\u2019s harmless.\n- Maintainability: Modular design and clear top-level orchestration. Type hints aid maintainability. The try/except for globals is pragmatic and well-scoped. A very minor improvement would be to always define top_k even if globals are missing and not __main__, though this is outside the stated execution scenario.\n- Best practices: Avoids reliance on Counter.most_common ordering, avoids unnecessary I/O, and handles edge cases explicitly. The complexity comment is accurate and helpful." + }, + "final_judgement": { + "adherence_score": 5, + "code_quality_score": 5, + "comments": "Meets all task requirements precisely with correct sorting, proper tokenization, edge-case handling, and no prohibited I/O. Code is clean, efficient, and maintainable. Minor nits (redundant IGNORECASE, terse variable names) do not affect correctness or quality." + } + }, + "parse_error": null +} \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_01.py b/examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_01.py new file mode 100644 index 0000000000..d47439fd16 --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_01.py @@ -0,0 +1,34 @@ +import re +import heapq + +def compute_top_k(text: str, k: int): + # Tokenize: lowercase, ASCII [a-z0-9]+; others are separators + if not text or k <= 0: + return [] + s = text.lower() + pattern = re.compile(r'[a-z0-9]+', re.ASCII) + + counts = {} + get = counts.get + for m in pattern.finditer(s): + t = m.group(0) + counts[t] = get(t, 0) + 1 + + n = min(k, len(counts)) + if n <= 0: + return [] + # Sort by count desc, then token asc + return heapq.nsmallest(n, counts.items(), key=lambda it: (-it[1], it[0])) + +def _to_int(v): + try: + return int(v) + except Exception: + return 0 + +# Use provided globals; expose only top_k +_text = globals().get('text', '') +_k = _to_int(globals().get('k', 0)) +top_k = compute_top_k(_text, _k) + +__all__ = ['top_k'] \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_02.py b/examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_02.py new file mode 100644 index 0000000000..be0191fdde --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_02.py @@ -0,0 +1,25 @@ +import re +from typing import List, Tuple, Dict + +def compute_top_k(text: str, k: int) -> List[Tuple[str, int]]: + # Tokens are ASCII [a-z0-9]+; lowercase; others are separators. + if not isinstance(text, str) or not isinstance(k, int) or k <= 0: + return [] + + pattern = re.compile(r'[a-z0-9]+', re.ASCII | re.IGNORECASE) + counts: Dict[str, int] = {} + get = counts.get + + for m in pattern.finditer(text): + tok = m.group(0).lower() + counts[tok] = (get(tok) or 0) + 1 + + if not counts: + return [] + + items = sorted(counts.items(), key=lambda kv: (-kv[1], kv[0])) + limit = min(k, len(items)) + return items[:limit] + +# Expose the result as a convenient global. +top_k: List[Tuple[str, int]] = compute_top_k(text, k) \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_03.py b/examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_03.py new file mode 100644 index 0000000000..5e3275d55a --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_03.py @@ -0,0 +1,45 @@ +import heapq + +def _count_tokens(s: str) -> dict: + # Count ASCII [a-z0-9]+ tokens, lowercasing letters during scan. + counts = {} + buf = [] + append = buf.append + for ch in s: + o = ord(ch) + if 48 <= o <= 57: # 0-9 + append(ch) + elif 65 <= o <= 90: # A-Z -> a-z + append(chr(o + 32)) + elif 97 <= o <= 122: # a-z + append(ch) + else: + if buf: + tok = ''.join(buf) + counts[tok] = counts.get(tok, 0) + 1 + buf.clear() + if buf: + tok = ''.join(buf) + counts[tok] = counts.get(tok, 0) + 1 + return counts + +def _top_k_from_counts(counts: dict, k: int): + if not counts or k <= 0: + return [] + m = min(k, len(counts)) + # Order: count desc, then token asc -> use nsmallest with key (-count, token) + return heapq.nsmallest(m, counts.items(), key=lambda it: (-it[1], it[0])) + +# Use provided globals text (str) and k (int); fall back safely if absent. +try: + _text = text # type: ignore[name-defined] +except NameError: + _text = "" +try: + _k = int(k) # type: ignore[name-defined] +except NameError: + _k = 0 +except Exception: + _k = 0 + +top_k = _top_k_from_counts(_count_tokens(_text), _k) \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_04.py b/examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_04.py new file mode 100644 index 0000000000..93986a0b8a --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_04.py @@ -0,0 +1,23 @@ +import re +import heapq + +def compute_top_k(s: str, k_value: int): + # Count tokens: ASCII [A-Za-z0-9]+, case-insensitive, stored lowercase + counts = {} + for m in re.finditer(r'[A-Za-z0-9]+', s): + tok = m.group(0).lower() + counts[tok] = counts.get(tok, 0) + 1 + + n = max(0, int(k_value)) + if n == 0 or not counts: + return [] + + # Sort by count desc, then token asc using a key tuple + key = lambda item: (-item[1], item[0]) + # Use nsmallest with the composite key to avoid sorting the whole list when k << unique + top_items = heapq.nsmallest(n, counts.items(), key=key) + # Ensure exact order (nsmallest returns sorted by key already) + return [(tok, cnt) for tok, cnt in top_items] + +# Expect globals: text (str), k (int) +top_k = compute_top_k(text, k) \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_05.py b/examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_05.py new file mode 100644 index 0000000000..3204cf7b35 --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_05.py @@ -0,0 +1,36 @@ +from collections import defaultdict + +def _iter_tokens_ascii_lower(s: str): + # Yield lowercase ASCII [a-z0-9]+ tokens, treating everything else as separators. + buf = [] + append = buf.append + for ch in s: + # Fast ASCII classification with manual lowercasing for A-Z + if 'A' <= ch <= 'Z': + append(chr(ord(ch) + 32)) # to lowercase + elif 'a' <= ch <= 'z' or '0' <= ch <= '9': + append(ch) + else: + if buf: + yield ''.join(buf) + buf.clear() + if buf: + yield ''.join(buf) + +def _top_k_tokens(text: str, k: int): + if not isinstance(text, str) or not isinstance(k, int) or k <= 0: + return [] + counts = defaultdict(int) + for tok in _iter_tokens_ascii_lower(text): + counts[tok] += 1 + if not counts: + return [] + # Sort by count desc, then token asc + items = sorted(counts.items(), key=lambda it: (-it[1], it[0])) + return items[:k] + +# Expect globals `text` and `k` to be provided by the environment. +try: + top_k = _top_k_tokens(text, k) # type: ignore[name-defined] +except NameError: + top_k = [] \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_06.py b/examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_06.py new file mode 100644 index 0000000000..7e9eaf01f1 --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_06.py @@ -0,0 +1,48 @@ +import heapq +from typing import Dict, List, Tuple + +def _compute_counts(s: str) -> Dict[str, int]: + # Single pass ASCII [a-z0-9]+ tokenizer with inline lowercasing + counts: Dict[str, int] = {} + buf: List[str] = [] + append = buf.append + for ch in s: + o = ord(ch) + if 48 <= o <= 57: # '0'-'9' + append(ch) + elif 65 <= o <= 90: # 'A'-'Z' -> to lower + append(chr(o + 32)) + elif 97 <= o <= 122: # 'a'-'z' + append(ch) + else: + if buf: + tok = "".join(buf) + counts[tok] = counts.get(tok, 0) + 1 + buf.clear() + if buf: + tok = "".join(buf) + counts[tok] = counts.get(tok, 0) + 1 + return counts + +def compute_top_k(text: str, k: int) -> List[Tuple[str, int]]: + if not isinstance(text, str) or not isinstance(k, int) or k <= 0: + return [] + counts = _compute_counts(text) + if not counts: + return [] + n = min(k, len(counts)) + # Top-K by count desc, then token asc + return heapq.nsmallest(n, counts.items(), key=lambda kv: (-kv[1], kv[0])) + +# Fetch provided globals; fall back to empty if absent +try: + _text = text # type: ignore[name-defined] +except NameError: + _text = "" +try: + _k = k # type: ignore[name-defined] +except NameError: + _k = 0 + +# Expose result as requested +top_k: List[Tuple[str, int]] = compute_top_k(_text, _k) \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_07.py b/examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_07.py new file mode 100644 index 0000000000..226611e1a9 --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_07.py @@ -0,0 +1,37 @@ +#!/usr/bin/env python3 +import heapq +from typing import Dict, Iterable, List, Tuple + +def _iter_tokens(s: str) -> Iterable[str]: + # One-pass ASCII tokenizer with inline lowercasing + buf: List[str] = [] + append = buf.append + for ch in s: + o = ord(ch) + if 65 <= o <= 90: # 'A'-'Z' -> lowercase + append(chr(o + 32)) + elif 97 <= o <= 122 or 48 <= o <= 57: # 'a'-'z' or '0'-'9' + append(ch) + else: + if buf: + yield "".join(buf) + buf.clear() + if buf: + yield "".join(buf) + +def compute_top_k(text: str, k: int) -> List[Tuple[str, int]]: + if not isinstance(k, int) or k <= 0: + return [] + counts: Dict[str, int] = {} + get = counts.get + for tok in _iter_tokens(text): + counts[tok] = get(tok, 0) + 1 + if not counts: + return [] + # Sort by count desc, then token asc, using a size-k heap + items = counts.items() + result = heapq.nsmallest(k, items, key=lambda kv: (-kv[1], kv[0])) + return result + +# Expected globals: text (str) and k (int) +top_k: List[Tuple[str, int]] = compute_top_k(text, k) \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_08.py b/examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_08.py new file mode 100644 index 0000000000..8d60df4561 --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_08.py @@ -0,0 +1,31 @@ +import re +import heapq +from typing import List, Tuple, Dict + +# Expects globals: text (str) and k (int) + +_token_re = re.compile(r'[a-z0-9]+') + +def compute_top_k(src: str, top_n: int) -> List[Tuple[str, int]]: + # Lowercase once, stream tokens via finditer to avoid building a full token list + counts: Dict[str, int] = {} + for m in _token_re.finditer(src.lower()): + t = m.group(0) + counts[t] = counts.get(t, 0) + 1 + + if not counts: + return [] + + try: + n = int(top_n) + except Exception: + n = 0 + if n <= 0: + return [] + + n = min(n, len(counts)) + # Smallest by (-count, token) => count desc, token asc + return heapq.nsmallest(n, counts.items(), key=lambda kv: (-kv[1], kv[0])) + +# Produce the required global +top_k = compute_top_k(text, k) \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_09.py b/examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_09.py new file mode 100644 index 0000000000..53e9a715a0 --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_09.py @@ -0,0 +1,40 @@ +from heapq import nsmallest + +def _count_tokens(s): + # Scan once, building ASCII [a-z0-9]+ tokens in lowercase. + counts = {} + buf = [] # token buffer + append = buf.append # local for speed + get = counts.get + for ch in s: + o = ord(ch) + if 48 <= o <= 57: # '0'-'9' + append(ch) + elif 65 <= o <= 90: # 'A'-'Z' -> lower + append(chr(o + 32)) + elif 97 <= o <= 122: # 'a'-'z' + append(ch) + else: + if buf: + tok = "".join(buf) + counts[tok] = get(tok, 0) + 1 + buf.clear() + if buf: + tok = "".join(buf) + counts[tok] = get(tok, 0) + 1 + buf.clear() + return counts + +def _select_top_k(counts, k): + # Sort by count desc, then token asc; pick up to k unique tokens. + if not counts or k <= 0: + return [] + n = min(k, len(counts)) + items = counts.items() + # nsmallest with key (-count, token) gives desired order + top = nsmallest(n, items, key=lambda kv: (-kv[1], kv[0])) + return list(top) + +# Expect globals: text (str), k (int) +# Build top_k as required: list of (token, count) tuples. +top_k = _select_top_k(_count_tokens(text), int(k)) \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_10.py b/examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_10.py new file mode 100644 index 0000000000..9f6df0b39e --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_10.py @@ -0,0 +1,37 @@ +from collections import Counter +import heapq + +def _iter_tokens(s): + # Stream tokens: lowercase ASCII [a-z0-9]+; others are separators + buf = [] + append = buf.append + for ch in s: + c = ch.lower() + if ('a' <= c <= 'z') or ('0' <= c <= '9'): + append(c) + elif buf: + yield ''.join(buf) + buf.clear() + if buf: + yield ''.join(buf) + +def _compute_top_k(s, k): + if not isinstance(k, int) or k <= 0: + return [] + counts = Counter() + for tok in _iter_tokens(s): + counts[tok] += 1 + # Sort by count desc, then token asc + return heapq.nsmallest(k, counts.items(), key=lambda kv: (-kv[1], kv[0])) + +# Use provided globals; fall back to safe defaults if missing +try: + _text = text +except NameError: + _text = "" +try: + _k = k +except NameError: + _k = 0 + +top_k = _compute_top_k(_text, _k) \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_11.py b/examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_11.py new file mode 100644 index 0000000000..75d689a068 --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_11.py @@ -0,0 +1,36 @@ +import re +import heapq + +def _compute_top_k(text, k): + # Tokens: ASCII [A-Za-z0-9]+, lowercased; others are separators. + if not isinstance(text, str): + text = "" if text is None else str(text) + try: + k = int(k) + except Exception: + k = 0 + if k <= 0 or not text: + return [] + + counts = {} + # Iterate matches without lowercasing the entire text to keep memory low. + pattern = re.compile(r'[A-Za-z0-9]+', flags=re.ASCII) + for m in pattern.finditer(text): + tok = m.group(0).lower() + counts[tok] = counts.get(tok, 0) + 1 + + if not counts: + return [] + + n_unique = len(counts) + kk = k if k < n_unique else n_unique + if kk == 0: + return [] + + # Use a heap to avoid sorting the entire map when k << unique tokens. + # Key: (-count, token) gives count desc, then token asc. + top = heapq.nsmallest(kk, counts.items(), key=lambda it: (-it[1], it[0])) + return top + +# Expect globals 'text' and 'k'; define top_k for inspection. +top_k = _compute_top_k(globals().get('text', ''), globals().get('k', 0)) \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_12.py b/examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_12.py new file mode 100644 index 0000000000..04914630b2 --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_12.py @@ -0,0 +1,29 @@ +import re +from collections import Counter +from heapq import nsmallest + +def _compute_top_k(text: str, k: int): + # Tokens: ASCII [a-z0-9]+ after lowercasing + pat = re.compile(r'[A-Za-z0-9]+', flags=re.ASCII) + freq = Counter() + for m in pat.finditer(text): + freq[m.group(0).lower()] += 1 + + items = list(freq.items()) + if not items: + return [] + + t = max(0, min(int(k), len(items))) + if t == 0: + return [] + + key = lambda it: (-it[1], it[0]) # count desc, token asc + if t < len(items): + return nsmallest(t, items, key=key) + return sorted(items, key=key) + +try: + top_k = _compute_top_k(text, k) +except NameError: + # If text or k are not defined, expose an empty result. + top_k = [] \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_13.py b/examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_13.py new file mode 100644 index 0000000000..ad966b1a23 --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_13.py @@ -0,0 +1,43 @@ +from heapq import nsmallest + +def _count_tokens(s: str): + # One-pass ASCII [a-z0-9]+ tokenizer; letters lowercased, others are separators. + counts = {} + buf = [] + append = buf.append + for ch in s: + o = ord(ch) + if 48 <= o <= 57: # '0'-'9' + append(ch) + elif 65 <= o <= 90: # 'A'-'Z' -> lower + append(chr(o + 32)) + elif 97 <= o <= 122: # 'a'-'z' + append(ch) + else: + if buf: + tok = ''.join(buf) + counts[tok] = counts.get(tok, 0) + 1 + buf.clear() + if buf: + tok = ''.join(buf) + counts[tok] = counts.get(tok, 0) + 1 + return counts + +def compute_top_k(text, k): + s = text if isinstance(text, str) else str(text) + try: + k = int(k) + except Exception: + k = 0 + counts = _count_tokens(s) + if k <= 0 or not counts: + return [] + n = min(k, len(counts)) + # Sort by count desc, then token asc using key (-count, token) + return nsmallest(n, counts.items(), key=lambda kv: (-kv[1], kv[0])) + +try: + top_k = compute_top_k(text, k) +except NameError: + # If globals not provided, expose empty result. + top_k = [] \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_14.py b/examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_14.py new file mode 100644 index 0000000000..11b8abfe20 --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_14.py @@ -0,0 +1,48 @@ +import heapq + +# Produces top_k: list[(token, count)] from globals `text` (str) and `k` (int). +# Tokenization: lowercase ASCII [a-z0-9]+, others are separators. +# Sorting: count desc, then token asc. Length = min(k, unique tokens). + +def _iter_ascii_tokens(s): + buf = [] + append = buf.append + for ch in s: + o = ord(ch) + if 65 <= o <= 90: # 'A'-'Z' -> lowercase + append(chr(o | 32)) + elif 97 <= o <= 122 or 48 <= o <= 57: # 'a'-'z' or '0'-'9' + append(ch) + else: + if buf: + yield ''.join(buf) + buf.clear() + if buf: + yield ''.join(buf) + +def _top_k_tokens(s, k): + try: + kk = int(k) + except Exception: + kk = 0 + if kk <= 0: + return [] + + counts = {} + get = counts.get + for tok in _iter_ascii_tokens(s): + counts[tok] = get(tok, 0) + 1 + + if not counts: + return [] + + kk = min(kk, len(counts)) + # nsmallest with key (-count, token) gives count desc, token asc and returns sorted. + return heapq.nsmallest(kk, counts.items(), key=lambda it: (-it[1], it[0])) + +# Build top_k from provided globals `text` and `k`. +try: + top_k = _top_k_tokens(text, k) +except NameError: + # If globals are missing, expose an empty result. + top_k = [] \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_15.py b/examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_15.py new file mode 100644 index 0000000000..b65960930c --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_15.py @@ -0,0 +1,41 @@ +# Computes top_k: the Top-K most frequent ASCII [a-z0-9]+ tokens from the global `text` +# using lowercase tokenization and sorting by count desc, then token asc. + +from typing import List, Tuple + +def _iter_ascii_tokens(s: str): + # Stream through s once; yield lowercase ASCII [a-z0-9]+ tokens + buf = [] + append = buf.append + for ch in s: + o = ord(ch) + if 48 <= o <= 57: # '0'-'9' + append(ch) + elif 97 <= o <= 122: # 'a'-'z' + append(ch) + elif 65 <= o <= 90: # 'A'-'Z' -> lower + append(chr(o + 32)) + else: + if buf: + yield ''.join(buf) + buf.clear() + if buf: + yield ''.join(buf) + +def _compute_top_k(txt: str, k: int) -> List[Tuple[str, int]]: + if k <= 0: + return [] + counts = {} + get = counts.get + for tok in _iter_ascii_tokens(txt): + counts[tok] = get(tok, 0) + 1 + if not counts: + return [] + # Sort by count desc, then token asc; take first k + items = sorted(counts.items(), key=lambda it: (-it[1], it[0])) + if k < len(items): + items = items[:k] + return items + +# Expect globals `text` (str) and `k` (int) to be provided by the caller environment. +top_k: List[Tuple[str, int]] = _compute_top_k(text, k) \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_16.py b/examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_16.py new file mode 100644 index 0000000000..1da8b69cbd --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_16.py @@ -0,0 +1,37 @@ +import heapq +from typing import Iterator, List, Tuple + +def _iter_tokens(s: str) -> Iterator[str]: + # Stream tokens: lowercase ASCII [a-z0-9]+; others are separators + buf = [] + append = buf.append + for ch in s: + lo = ch.lower() + if ('a' <= lo <= 'z') or ('0' <= ch <= '9'): + append(lo) + elif buf: + yield ''.join(buf) + buf.clear() + if buf: + yield ''.join(buf) + +def _top_k_tokens(text: str, k: int) -> List[Tuple[str, int]]: + # Count in one pass + counts = {} + for tok in _iter_tokens(text): + counts[tok] = counts.get(tok, 0) + 1 + + # Handle edge cases + try: + kk = int(k) + except Exception: + kk = 0 + if kk <= 0 or not counts: + return [] + + # Select Top-K sorted by count desc, then token asc + kk = min(kk, len(counts)) + return heapq.nsmallest(kk, counts.items(), key=lambda item: (-item[1], item[0])) + +# Compute using provided globals `text` and `k` +top_k = _top_k_tokens(globals().get('text', ''), globals().get('k', 0)) \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_17.py b/examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_17.py new file mode 100644 index 0000000000..8f71c0ff33 --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_17.py @@ -0,0 +1,26 @@ +import re +import heapq + +# Compile once for speed; ASCII-only tokens +_TOKEN_RE = re.compile(r'[A-Za-z0-9]+') + +def _compute_top_k(src_text: str, k: int): + # k <= 0 yields empty result + if not isinstance(k, int) or k <= 0: + return [] + + counts = {} + # One pass: iterate matches without building an intermediate list + for m in _TOKEN_RE.finditer(src_text): + tok = m.group(0).lower() # lowercase per token + counts[tok] = counts.get(tok, 0) + 1 + + if not counts: + return [] + + top_n = k if k < len(counts) else len(counts) + # Sort by count desc, then token asc using a key on (-count, token) + return heapq.nsmallest(top_n, counts.items(), key=lambda kv: (-kv[1], kv[0])) + +# Expose the requested global result +top_k = _compute_top_k(text, k) \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_18.py b/examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_18.py new file mode 100644 index 0000000000..728898dfa2 --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_18.py @@ -0,0 +1,22 @@ +import re +from heapq import nsmallest + +# Token generator: ASCII [a-z0-9]+, lowercased, streaming via re.finditer +def _iter_tokens_ascii_lower(s: str): + for m in re.finditer(r'[A-Za-z0-9]+', s): + yield m.group(0).lower() + +def _compute_top_k(s: str, k: int): + if not s or k <= 0: + return [] + counts = {} + for tok in _iter_tokens_ascii_lower(s): + counts[tok] = counts.get(tok, 0) + 1 + if not counts: + return [] + kk = k if k < len(counts) else len(counts) + # Select and sort by count desc, then token asc + return [(t, c) for t, c in nsmallest(kk, counts.items(), key=lambda it: (-it[1], it[0]))] + +# Expose result as a convenient global +top_k = _compute_top_k(text, k) \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_19.py b/examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_19.py new file mode 100644 index 0000000000..e559661e95 --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_19.py @@ -0,0 +1,36 @@ +import re +from heapq import nsmallest +from typing import List, Tuple, Iterable, Dict + + +def _iter_tokens(s: str, _pat=re.compile(r'[a-z0-9]+')) -> Iterable[str]: + # Lowercase, then yield ASCII [a-z0-9]+ sequences + for m in _pat.finditer(s.lower()): + yield m.group(0) + + +def top_k_tokens(s: str, k: int) -> List[Tuple[str, int]]: + if not isinstance(s, str): + raise TypeError("text must be a str") + if not isinstance(k, int): + raise TypeError("k must be an int") + if k <= 0: + return [] + + counts: Dict[str, int] = {} + get = counts.get + for tok in _iter_tokens(s): + counts[tok] = get(tok, 0) + 1 + + if not counts: + return [] + + # Sort by count desc, then token asc using nsmallest with key (-count, token) + return nsmallest(k, counts.items(), key=lambda item: (-item[1], item[0])) + + +# Expose the result as a convenient global: top_k +try: + top_k = top_k_tokens(text, k) # expects globals: text (str), k (int) +except Exception: + top_k = [] \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_20.py b/examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_20.py new file mode 100644 index 0000000000..63c534fa49 --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_20.py @@ -0,0 +1,36 @@ +from heapq import nsmallest + +def _count_tokens_ascii(text: str): + # One-pass ASCII [a-z0-9]+ tokenizer (lowercasing A-Z); others are separators. + counts = {} + buf = [] + append = buf.append + get = counts.get + def commit(): + if buf: + tok = ''.join(buf) + counts[tok] = get(tok, 0) + 1 + buf.clear() + + for ch in text: + o = ord(ch) + if 65 <= o <= 90: # 'A'-'Z' -> lower + append(chr(o + 32)) + elif 97 <= o <= 122: # 'a'-'z' + append(ch) + elif 48 <= o <= 57: # '0'-'9' + append(ch) + else: + commit() + commit() + return counts + +def _top_k_from_counts(counts, k: int): + if k <= 0 or not counts: + return [] + # Sort by count desc, then token asc using nsmallest with key (-count, token) + return nsmallest(k, counts.items(), key=lambda kv: (-kv[1], kv[0])) + +# Expect globals: text (str) and k (int) to be provided by the environment. +# Produce the required global `top_k`. +top_k = _top_k_from_counts(_count_tokens_ascii(text), k) \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_21.py b/examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_21.py new file mode 100644 index 0000000000..2e83a7e8f3 --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_21.py @@ -0,0 +1,24 @@ +import re +from collections import Counter +from heapq import nsmallest + +def _iter_tokens(s): + # Yield lowercase ASCII [a-z0-9]+ tokens; non-matching chars are separators + pattern = re.compile(r"[a-z0-9]+", flags=re.ASCII | re.IGNORECASE) + for m in pattern.finditer(s): + yield m.group(0).lower() + +def compute_top_k(s, k_value): + k_int = int(k_value) + if k_int <= 0: + return [] + counts = Counter() + for tok in _iter_tokens(s): + counts[tok] += 1 + if not counts: + return [] + # Sort by count desc, then token asc; take top k + return nsmallest(k_int, counts.items(), key=lambda t: (-t[1], t[0])) + +# Expose result as a convenient global +top_k = compute_top_k(text, k) \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_22.py b/examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_22.py new file mode 100644 index 0000000000..89cde196d6 --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_22.py @@ -0,0 +1,40 @@ +import sys + +def _iter_tokens(s: str): + # Stream tokenizer: ASCII [a-z0-9]+, lowercase; others are separators. + buf = [] + append = buf.append + join = ''.join + for ch in s: + c = ch.lower() + if ('a' <= c <= 'z') or ('0' <= c <= '9'): + append(c) + else: + if buf: + yield join(buf) + buf.clear() + if buf: + yield join(buf) + +def _top_k_tokens(s: str, k: int): + if k <= 0: + return [] + counts = {} + get = counts.get + for tok in _iter_tokens(s): + counts[tok] = get(tok, 0) + 1 + if not counts: + return [] + # Sort by count desc, then token asc + items = sorted(counts.items(), key=lambda kv: (-kv[1], kv[0])) + return items[: min(k, len(items))] + +# Expect globals: text (str) and k (int) +try: + _text = text # provided by caller + _k = int(k) +except Exception: + # If globals not provided, expose empty result for safety. + top_k = [] +else: + top_k = _top_k_tokens(_text, _k) \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_23.py b/examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_23.py new file mode 100644 index 0000000000..2984bf4188 --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_23.py @@ -0,0 +1,43 @@ +import heapq + +def _iter_tokens_ascii_lower(s): + # Stream tokens: ASCII [a-z0-9]+, lowercase letters; non-matching chars are separators. + buf = [] + append = buf.append + for ch in s: + o = ord(ch) + if 65 <= o <= 90: # 'A'-'Z' -> lower + append(chr(o + 32)) + elif 97 <= o <= 122 or 48 <= o <= 57: # 'a'-'z' or '0'-'9' + append(ch) + else: + if buf: + yield ''.join(buf) + buf.clear() + if buf: + yield ''.join(buf) + +def _top_k_tokens(s, k): + if not s or k <= 0: + return [] + counts = {} + for tok in _iter_tokens_ascii_lower(s): + counts[tok] = counts.get(tok, 0) + 1 + if not counts: + return [] + m = k if k < len(counts) else len(counts) + # Sort by count desc, then token asc -> key (-count, token); nsmallest returns sorted ascending by key. + return heapq.nsmallest(m, counts.items(), key=lambda it: (-it[1], it[0])) + +# Use provided globals `text` and `k`; fall back to empty values if missing. +try: + _text, _k = text, k +except NameError: + _text, _k = "", 0 + +try: + _k = int(_k) +except Exception: + _k = 0 + +top_k = _top_k_tokens(_text, _k) \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_24.py b/examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_24.py new file mode 100644 index 0000000000..83f3d66b22 --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_24.py @@ -0,0 +1,42 @@ +from typing import List, Tuple, Dict + +def compute_top_k(s: str, k: int) -> List[Tuple[str, int]]: + # Tokenize: lowercase letters, digits; others are separators + counts: Dict[str, int] = {} + buf: List[str] = [] + + append = buf.append + get = counts.get + + for c in s: + oc = ord(c) + if 48 <= oc <= 57: # '0'-'9' + append(c) + elif 65 <= oc <= 90: # 'A'-'Z' -> to lowercase + append(chr(oc + 32)) + elif 97 <= oc <= 122: # 'a'-'z' + append(c) + else: + if buf: + tok = ''.join(buf) + counts[tok] = (get(tok) or 0) + 1 + buf.clear() + if buf: + tok = ''.join(buf) + counts[tok] = (get(tok) or 0) + 1 + + if k <= 0 or not counts: + return [] + + items = counts.items() + items_sorted = sorted(items, key=lambda it: (-it[1], it[0])) + return items_sorted[:min(k, len(items_sorted))] + +# Produce the required global `top_k` using provided globals `text` and `k` +try: + _text = text # provided externally + _k = k # provided externally +except NameError: + top_k: List[Tuple[str, int]] = [] +else: + top_k = compute_top_k(_text, _k) \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_25.py b/examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_25.py new file mode 100644 index 0000000000..35a2469f5d --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_25.py @@ -0,0 +1,52 @@ +import heapq +from collections import Counter + +# Expects globals: text (str) and k (int) +# Produces: top_k -> list[tuple[str, int]] + +def _count_tokens_ascii_lower(s: str) -> Counter: + # One-pass ASCII [a-z0-9]+ tokenizer with on-the-fly lowercasing + cnt = Counter() + buf = [] # current token buffer + + for ch in s: + if ch.isascii(): + o = ord(ch) + # Fast ASCII lowercase + if 65 <= o <= 90: # 'A'-'Z' + o += 32 + c = chr(o) + else: + c = ch + + oc = ord(c) + if 97 <= oc <= 122 or 48 <= oc <= 57: # 'a'-'z' or '0'-'9' + buf.append(c) + continue + + if buf: + token = ''.join(buf) + cnt[token] += 1 + buf.clear() + + if buf: + token = ''.join(buf) + cnt[token] += 1 + + return cnt + + +# Build frequency map +_counts = _count_tokens_ascii_lower(text) + +# Determine k safely +_unique = len(_counts) +_k = int(k) if isinstance(k, int) or (isinstance(k, bool) is False and str(k).lstrip("-").isdigit()) else 0 +_k = max(0, min(_k, _unique)) + +# Top-K sorted by count desc, then token asc +if _k == 0: + top_k = [] +else: + # nsmallest on (-count, token) yields count desc, token asc + top_k = heapq.nsmallest(_k, _counts.items(), key=lambda it: (-it[1], it[0])) \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_26.py b/examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_26.py new file mode 100644 index 0000000000..e7fca2bd11 --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_26.py @@ -0,0 +1,49 @@ +from heapq import nsmallest + +def _counts_from_text(s: str): + # One-pass ASCII tokenizer: [a-z0-9]+ after lowercasing A-Z only + counts = {} + buf = [] + append = buf.append + clear = buf.clear + get = counts.get + for ch in s: + oc = ord(ch) + if 48 <= oc <= 57: # 0-9 + append(ch) + elif 65 <= oc <= 90: # A-Z -> a-z + append(chr(oc + 32)) + elif 97 <= oc <= 122: # a-z + append(ch) + else: + if buf: + tok = ''.join(buf) + counts[tok] = get(tok, 0) + 1 + clear() + if buf: + tok = ''.join(buf) + counts[tok] = get(tok, 0) + 1 + return counts + +def _top_k_from_counts(counts, k: int): + if k <= 0 or not counts: + return [] + # Sort by count desc, then token asc; do k-selection to avoid full sort + return list(nsmallest(k, counts.items(), key=lambda it: (-it[1], it[0]))) + +# Use provided globals `text` (str) and `k` (int) +try: + _text = text + _k = k +except NameError: + _text = "" + _k = 0 + +try: + _k = int(_k) +except Exception: + _k = 0 +if _k < 0: + _k = 0 + +top_k = _top_k_from_counts(_counts_from_text(_text), _k) \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_27.py b/examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_27.py new file mode 100644 index 0000000000..0649f5401b --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_27.py @@ -0,0 +1,47 @@ +from collections import Counter +import heapq + +# Expects globals: text (str) and k (int). Produces: top_k = [(token, count), ...] + +def _count_tokens(s: str) -> Counter: + # Single-pass ASCII tokenizer: [a-z0-9]+, lowercased; others are separators + counts = Counter() + buf = [] + for ch in s: + o = ord(ch) + if 48 <= o <= 57: # '0'-'9' + buf.append(ch) + elif 65 <= o <= 90: # 'A'-'Z' -> lower + buf.append(chr(o + 32)) + elif 97 <= o <= 122: # 'a'-'z' + buf.append(ch) + else: + if buf: + tok = ''.join(buf) + counts[tok] += 1 + buf.clear() + if buf: + tok = ''.join(buf) + counts[tok] += 1 + return counts + +# Read provided globals safely +try: + _text = text +except NameError: + _text = "" + +try: + _k = int(k) +except Exception: + _k = 0 +if _k < 0: + _k = 0 + +_counts = _count_tokens(_text) + +# Top-K by count desc, then token asc +if _counts and _k: + top_k = heapq.nsmallest(_k, _counts.items(), key=lambda kv: (-kv[1], kv[0])) +else: + top_k = [] \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_28.py b/examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_28.py new file mode 100644 index 0000000000..ebd8306332 --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_28.py @@ -0,0 +1,27 @@ +import re +import heapq + +# Compute Top-K most frequent ASCII [a-z0-9]+ tokens (case-insensitive). +def _iter_tokens(s): + # Stream tokens; match ASCII letters/digits, case-insensitive, then lowercase per token + for m in re.finditer(r'[a-z0-9]+', s, flags=re.ASCII | re.IGNORECASE): + yield m.group(0).lower() + +def _top_k_tokens(text, k): + if not isinstance(text, str) or not isinstance(k, int) or k <= 0: + return [] + counts = {} + for tok in _iter_tokens(text): + counts[tok] = counts.get(tok, 0) + 1 + if not counts: + return [] + kk = min(k, len(counts)) + # Get k items sorted by count desc, then token asc + return heapq.nsmallest(kk, counts.items(), key=lambda item: (-item[1], item[0])) + +# Produce the required global `top_k` using provided globals `text` and `k`. +try: + top_k = _top_k_tokens(text, k) +except NameError: + # If globals are missing, expose an empty result. + top_k = [] \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_29.py b/examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_29.py new file mode 100644 index 0000000000..cce861ba58 --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_29.py @@ -0,0 +1,58 @@ +import heapq + +def _iter_tokens(s): + # Stream tokens: ASCII [a-z0-9]+, lowercase; others are separators + buf = [] + append = buf.append + for ch in s: + o = ord(ch) + if 48 <= o <= 57: # '0'-'9' + append(ch) + elif 65 <= o <= 90: # 'A'-'Z' -> to lowercase + append(chr(o + 32)) + elif 97 <= o <= 122: # 'a'-'z' + append(ch) + else: + if buf: + yield ''.join(buf) + buf.clear() + if buf: + yield ''.join(buf) + +def _compute_top_k(s, k): + try: + k = int(k) + except Exception: + k = 0 + if k <= 0 or not s: + return [] + + counts = {} + for tok in _iter_tokens(s if isinstance(s, str) else str(s)): + counts[tok] = counts.get(tok, 0) + 1 + + if not counts: + return [] + + n_unique = len(counts) + key = lambda kv: (-kv[1], kv[0]) # sort by count desc, token asc + + if n_unique <= k: + return sorted(counts.items(), key=key) + + top = heapq.nsmallest(k, counts.items(), key=key) + top.sort(key=key) + return top + +# Use provided globals `text` and `k`; fall back safely if absent. +try: + _text = text # type: ignore[name-defined] +except NameError: + _text = "" +try: + _k = k # type: ignore[name-defined] +except NameError: + _k = 0 + +# Exposed result: list of (token, count), sorted by count desc then token asc +top_k = _compute_top_k(_text, _k) \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_30.py b/examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_30.py new file mode 100644 index 0000000000..d47888c2c6 --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_30.py @@ -0,0 +1,18 @@ +import re +from collections import Counter + +def compute_top_k(text: str, k: int): + # Tokens: ASCII [A-Za-z0-9]+, lowercased; other chars are separators + if not isinstance(text, str) or not isinstance(k, int) or k <= 0: + return [] + counter = Counter() + pattern = re.compile(r'[A-Za-z0-9]+') + for m in pattern.finditer(text): + counter[m.group(0).lower()] += 1 + if not counter: + return [] + items = sorted(counter.items(), key=lambda kv: (-kv[1], kv[0])) + return items[:min(k, len(items))] + +# Exposed result +top_k = compute_top_k(text, k) \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_results_topk_baseline.csv b/examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_results_topk_baseline.csv new file mode 100644 index 0000000000..4ff5bffd5b --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_results_topk_baseline.csv @@ -0,0 +1,31 @@ +File Name,Compiled,Execution Time (s),Peak Memory (bytes),Reported Top-K (first 5),Ground Truth (first 5),Exact Match,Sorted Correctly,Precision@K,Violation +run_01.py,True,6.035606833000202,30571416,"[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]","[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]",True,True,1.000, +run_02.py,True,8.617520125000738,1255649,"[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]","[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]",True,True,1.000, +run_03.py,True,7.340578834002372,570753,"[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]","[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]",True,True,1.000, +run_04.py,True,6.27685929099971,571056,"[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]","[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]",True,True,1.000, +run_05.py,True,8.08934216700436,1256803,"[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]","[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]",True,True,1.000, +run_06.py,True,7.394314333003422,571723,"[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]","[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]",True,True,1.000, +run_07.py,True,7.231126874998154,570664,"[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]","[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]",True,True,1.000, +run_08.py,True,5.075305165999453,30571892,"[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]","[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]",True,True,1.000, +run_09.py,True,7.392094041002565,599538,"[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]","[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]",True,True,1.000, +run_10.py,True,14.158977334001975,580008,"[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]","[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]",True,True,1.000, +run_11.py,True,9.552443332999246,571013,"[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]","[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]",True,True,1.000, +run_12.py,True,7.1676780420020805,856089,"[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]","[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]",True,True,1.000, +run_13.py,True,7.361231750001025,570692,"[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]","[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]",True,True,1.000, +run_14.py,True,7.191091291999328,571750,"[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]","[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]",True,True,1.000, +run_15.py,True,6.4659761669972795,1144638,"[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]","[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]",True,True,1.000, +run_16.py,True,14.088706583999738,571492,"[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]","[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]",True,True,1.000, +run_17.py,True,7.104060042001947,570641,"[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]","[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]",True,True,1.000, +run_18.py,True,6.395613125001546,572554,"[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]","[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]",True,True,1.000, +run_19.py,True,5.3718107500026235,30540066,"[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]","[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]",True,True,1.000, +run_20.py,True,6.399601584002085,580142,"[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]","[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]",True,True,1.000, +run_21.py,True,7.4909848750030505,570245,"[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]","[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]",True,True,1.000, +run_22.py,True,14.278637458002777,1219947,"[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]","[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]",True,True,1.000, +run_23.py,True,7.079161000001477,571353,"[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]","[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]",True,True,1.000, +run_24.py,True,7.359142333996715,1255216,"[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]","[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]",True,True,1.000, +run_25.py,True,8.727166875003604,571887,"[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]","[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]",True,True,1.000, +run_26.py,True,7.575888125000347,571429,"[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]","[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]",True,True,1.000, +run_27.py,True,7.574360042002809,572071,"[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]","[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]",True,True,1.000, +run_28.py,True,7.103595166001469,598620,"[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]","[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]",True,True,1.000, +run_29.py,True,6.998820416003582,580173,"[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]","[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]",True,True,1.000, +run_30.py,True,8.294044041998859,1219045,"[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]","[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]",True,True,1.000, diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_results_topk_baseline_summary.json b/examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_results_topk_baseline_summary.json new file mode 100644 index 0000000000..e077d08405 --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_results_topk_baseline_summary.json @@ -0,0 +1,13 @@ +{ + "total_runs": 30, + "successes": 30, + "avg_exec_time_s": 7.906391266701151, + "avg_peak_mem_kb": 3626.25537109375, + "exact_matches": 30, + "sorted_correctly": 30, + "violations": 0, + "csv": "results_topk_baseline/run_results_topk_baseline.csv", + "folder": "results_topk_baseline", + "k": 500, + "scale_tokens": 5000000 +} \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_results_topk_baseline_summary.txt b/examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_results_topk_baseline_summary.txt new file mode 100644 index 0000000000..e26b1e560b --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_topk_baseline/run_results_topk_baseline_summary.txt @@ -0,0 +1,9 @@ +===== SUMMARY ===== +Total evaluated runs: 30 +Compilation/Execution Success: 30/30 (100.00%) +Violations (static scan): 0 +Average Execution Time (successful): 7.906391 s +Average Peak Memory (successful): 3626.26 KB +Exact matches: 30/30 +Sorted correctly: 30/30 +CSV written to: results_topk_baseline/run_results_topk_baseline.csv diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_01.py b/examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_01.py new file mode 100644 index 0000000000..65c3ddaac8 --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_01.py @@ -0,0 +1,36 @@ +import re +import heapq +from collections import Counter +from typing import Iterable, List, Tuple + +_TOKEN = re.compile(r"[a-z0-9]+", flags=re.ASCII | re.IGNORECASE) + +def _tokens(s: str) -> Iterable[str]: + for m in _TOKEN.finditer(s): + yield m.group(0).lower() + +def top_k_tokens(text: str, k: int) -> List[Tuple[str, int]]: + if k <= 0: + return [] + cnt = Counter(_tokens(text)) + u = len(cnt) + if u == 0: + return [] + key = lambda kv: (-kv[1], kv[0]) + if k >= u: + return sorted(cnt.items(), key=key) + return heapq.nsmallest(k, cnt.items(), key=key) + +# Compute from provided globals when available; demo only if missing and running as main +try: + text; k # type: ignore[name-defined] +except NameError: + if __name__ == "__main__": + demo_text = "A a b b b c1 C1 c1 -- d! d? e" + demo_k = 3 + top_k = top_k_tokens(demo_text, demo_k) + print(top_k) +else: + top_k = top_k_tokens(text, k) # type: ignore[name-defined] + +# Complexity: counting O(N tokens), selection O(U log k) via heapq.nsmallest; extra space O(U + k) \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_02.py b/examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_02.py new file mode 100644 index 0000000000..f992be30fc --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_02.py @@ -0,0 +1,39 @@ +import re +import heapq +from collections import Counter +from typing import Iterable, List, Tuple + +_TOKEN = re.compile(r"[a-z0-9]+", flags=re.ASCII | re.IGNORECASE) + +def _tokens(s: str) -> Iterable[str]: + for m in _TOKEN.finditer(s): + yield m.group(0).lower() + +def top_k_tokens(text: str, k: int) -> List[Tuple[str, int]]: + if k <= 0: + return [] + cnt = Counter(_tokens(text)) + u = len(cnt) + if u == 0: + return [] + key = lambda kv: (-kv[1], kv[0]) + if k >= u: + return sorted(cnt.items(), key=key) + # Choose strategy: avoid full sort unless k >= 0.3 * u + if k * 10 >= 3 * u: + return sorted(cnt.items(), key=key)[:k] + return heapq.nsmallest(k, cnt.items(), key=key) + +# Compute from provided globals when available; demo only if missing and running as main +try: + text; k # type: ignore[name-defined] +except NameError: + if __name__ == "__main__": + demo_text = "A a b b b c1 C1 c1 -- d! d? e" + demo_k = 3 + top_k = top_k_tokens(demo_text, demo_k) + print(top_k) +else: + top_k = top_k_tokens(text, k) # type: ignore[name-defined] + +# Complexity: counting O(N tokens); selection O(U log U) if k >= 0.3U else O(U log k); extra space O(U + k) \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_03.py b/examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_03.py new file mode 100644 index 0000000000..d8b6d09e47 --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_03.py @@ -0,0 +1,35 @@ +import re, heapq +from collections import Counter +from typing import Iterable, List, Tuple + +_TOKEN = re.compile(r"[a-z0-9]+", flags=re.ASCII | re.IGNORECASE) + +def _tokens(s: str) -> Iterable[str]: + for m in _TOKEN.finditer(s): + yield m.group(0).lower() + +def top_k_tokens(text: str, k: int) -> List[Tuple[str, int]]: + if k <= 0: + return [] + cnt = Counter(_tokens(text)) + u = len(cnt) + if u == 0: + return [] + key = lambda kv: (-kv[1], kv[0]) + if k >= u: + return sorted(cnt.items(), key=key) + return heapq.nsmallest(k, cnt.items(), key=key) + +# Compute from provided globals when available; demo only if missing and running as main +try: + text; k # type: ignore[name-defined] +except NameError: + if __name__ == "__main__": + demo_text = "A a b b b c1 C1 c1 -- d! d? e" + demo_k = 3 + top_k = top_k_tokens(demo_text, demo_k) + print(top_k) +else: + top_k = top_k_tokens(text, k) # type: ignore[name-defined] + +# Complexity: counting O(N tokens); selection O(U log k) via heapq.nsmallest; extra space O(U + k) \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_04.py b/examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_04.py new file mode 100644 index 0000000000..4e07fbffcc --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_04.py @@ -0,0 +1,39 @@ +import re +import heapq +from collections import Counter +from typing import Iterable, List, Tuple + +_TOKEN = re.compile(r"[a-z0-9]+", flags=re.ASCII | re.IGNORECASE) + +def _tokens(s: str) -> Iterable[str]: + for m in _TOKEN.finditer(s): + yield m.group(0).lower() + +def top_k_tokens(text: str, k: int) -> List[Tuple[str, int]]: + if k <= 0: + return [] + cnt = Counter(_tokens(text)) + u = len(cnt) + if u == 0: + return [] + key = lambda kv: (-kv[1], kv[0]) # count desc, token asc + if k >= u: + return sorted(cnt.items(), key=key) + # If k is large relative to unique tokens, sort all and slice; otherwise exact selection via heap + if k / u >= 0.3: + return sorted(cnt.items(), key=key)[:k] + return heapq.nsmallest(k, cnt.items(), key=key) + +# Compute from provided globals when available; demo only if missing and running as main +try: + text; k # type: ignore[name-defined] +except NameError: + if __name__ == "__main__": + demo_text = "A a b b b c1 C1 c1 -- d! d? e" + demo_k = 3 + top_k = top_k_tokens(demo_text, demo_k) + print(top_k) +else: + top_k = top_k_tokens(text, k) # type: ignore[name-defined] + +# Complexity: counting O(N tokens), selection O(U log k) or O(U log U) when k is large; extra space O(U) for counts and O(k) additional. \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_05.py b/examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_05.py new file mode 100644 index 0000000000..0b76cbc662 --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_05.py @@ -0,0 +1,43 @@ +import re +import heapq +from collections import Counter +from typing import List, Tuple, Iterable + +_TOKEN = re.compile(r"[a-z0-9]+", flags=re.ASCII | re.IGNORECASE) + +def _tokens(s: str) -> Iterable[str]: + for m in _TOKEN.finditer(s): + yield m.group(0).lower() + +def top_k_tokens(text: str, k: int) -> List[Tuple[str, int]]: + if not isinstance(k, int) or k <= 0: + return [] + cnt = Counter() + for t in _tokens(text): + cnt[t] += 1 + u = len(cnt) + if u == 0: + return [] + key = lambda kv: (-kv[1], kv[0]) # sort by count desc, then token asc + + if k >= u: + return sorted(cnt.items(), key=key) + # Sort all only when k >= 0.3 * u + if 10 * k >= 3 * u: + return sorted(cnt.items(), key=key)[:k] + # Exact selection with bounded memory + return heapq.nsmallest(k, cnt.items(), key=key) + +# Use provided globals if available; optional demo otherwise +try: + text; k # type: ignore[name-defined] +except NameError: + if __name__ == "__main__": + demo_text = "A a b b b c1 C1 c1 -- d! d? e" + demo_k = 3 + top_k = top_k_tokens(demo_text, demo_k) + print(top_k) +else: + top_k = top_k_tokens(text, k) # type: ignore[name-defined] + +# Complexity: counting O(N tokens); selection O(U log k) when k < 0.3U, else O(U log U). Extra space O(U + k). \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_06.py b/examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_06.py new file mode 100644 index 0000000000..9bfa3d82dc --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_06.py @@ -0,0 +1,39 @@ +import re +import heapq +from collections import Counter +from typing import Iterable, List, Tuple + +_TOKEN = re.compile(r"[a-z0-9]+", flags=re.ASCII | re.IGNORECASE) + +def _tokens(s: str) -> Iterable[str]: + for m in _TOKEN.finditer(s): + yield m.group(0).lower() + +def top_k_tokens(text: str, k: int) -> List[Tuple[str, int]]: + if k <= 0: + return [] + cnt = Counter(_tokens(text)) + u = len(cnt) + if u == 0: + return [] + eff_k = k if k < u else u + key = lambda kv: (-kv[1], kv[0]) + # Sort all only when k >= 0.3 * U; otherwise exact selection with bounded heap + if k * 10 >= 3 * u: + return sorted(cnt.items(), key=key)[:eff_k] + return heapq.nsmallest(eff_k, cnt.items(), key=key) + +# Use provided globals if present; otherwise run a small demo only when executed as main +try: + text # type: ignore[name-defined] + k # type: ignore[name-defined] +except NameError: + if __name__ == "__main__": + demo_text = "A a b b b c1 C1 c1 -- d! d? e" + demo_k = 3 + top_k = top_k_tokens(demo_text, demo_k) + print(top_k) +else: + top_k = top_k_tokens(text, k) # type: ignore[name-defined] + +# Complexity: counting O(N tokens); selection O(U log U) when k >= 0.3U else O(U log k); extra space O(U) for counts and O(k) for selection. \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_07.py b/examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_07.py new file mode 100644 index 0000000000..d49eedf563 --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_07.py @@ -0,0 +1,41 @@ +import re +import heapq +from collections import Counter +from typing import Iterable, List, Tuple + +_TOKEN = re.compile(r"[a-z0-9]+", flags=re.ASCII | re.IGNORECASE) + +def _tokens(s: str) -> Iterable[str]: + for m in _TOKEN.finditer(s): + yield m.group(0).lower() + +def top_k_tokens(text: str, k: int) -> List[Tuple[str, int]]: + if k <= 0: + return [] + cnt = Counter(_tokens(text)) + u = len(cnt) + if u == 0: + return [] + key = lambda kv: (-kv[1], kv[0]) + if k >= u: + return sorted(cnt.items(), key=key) + # Avoid full sort unless k is a large fraction of unique tokens (>= 30%) + if 10 * k < 3 * u: + return heapq.nsmallest(k, cnt.items(), key=key) + # k is moderately large: sort all then slice + return sorted(cnt.items(), key=key)[:k] + +# Use provided globals when present; demo only if absent +try: + text # type: ignore[name-defined] + k # type: ignore[name-defined] +except NameError: + if __name__ == "__main__": + demo_text = "A a b b b c1 C1 c1 -- d! d? e" + demo_k = 3 + top_k = top_k_tokens(demo_text, demo_k) + print(top_k) +else: + top_k = top_k_tokens(text, k) # type: ignore[name-defined] + +# Complexity: counting O(N tokens); selection O(U log k) with heap or O(U log U) when sorting; extra space O(U) + O(k) \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_08.py b/examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_08.py new file mode 100644 index 0000000000..071af4d482 --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_08.py @@ -0,0 +1,39 @@ +import re +import heapq +from collections import Counter +from typing import List, Tuple, Iterable + +_TOKEN = re.compile(r"[a-z0-9]+", flags=re.ASCII | re.IGNORECASE) + +def _tokens(s: str) -> Iterable[str]: + for m in _TOKEN.finditer(s): + yield m.group(0).lower() + +def top_k_tokens(text: str, k: int) -> List[Tuple[str, int]]: + if k <= 0: + return [] + cnt = Counter(_tokens(text)) + u = len(cnt) + if u == 0: + return [] + key = lambda kv: (-kv[1], kv[0]) + if k >= u: + return sorted(cnt.items(), key=key) + # If k is a large fraction of U (>= 30%), sort all then slice; else exact selection via heap + if 10 * k >= 3 * u: + return sorted(cnt.items(), key=key)[:k] + return heapq.nsmallest(k, cnt.items(), key=key) + +# Compute from provided globals when available; demo only if missing and running as main +try: + text; k # type: ignore[name-defined] +except NameError: + if __name__ == "__main__": + demo_text = "A a b b b c1 C1 c1 -- d! d? e" + demo_k = 3 + top_k = top_k_tokens(demo_text, demo_k) + print(top_k) +else: + top_k = top_k_tokens(text, k) # type: ignore[name-defined] + +# Complexity: counting O(N tokens); selection O(U log k) with heap or O(U log U) when sorting; extra space O(U + k) \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_09.py b/examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_09.py new file mode 100644 index 0000000000..ac4b1f108b --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_09.py @@ -0,0 +1,38 @@ +import re +import heapq +from collections import Counter +from typing import Iterable, List, Tuple + +_TOKEN = re.compile(r"[a-z0-9]+", flags=re.ASCII | re.IGNORECASE) + +def _tokens(s: str) -> Iterable[str]: + for m in _TOKEN.finditer(s): + yield m.group(0).lower() + +def top_k_tokens(text: str, k: int) -> List[Tuple[str, int]]: + if k <= 0: + return [] + cnt = Counter(_tokens(text)) + u = len(cnt) + if u == 0: + return [] + m = k if k < u else u + key = lambda kv: (-kv[1], kv[0]) + # If requesting a large fraction, sort all; otherwise use bounded selection + if m >= u or (m * 10 >= 3 * u): + return sorted(cnt.items(), key=key)[:m] + return heapq.nsmallest(m, cnt.items(), key=key) + +# Compute from provided globals when available; demo only if missing and running as main +try: + text; k # type: ignore[name-defined] +except NameError: + if __name__ == "__main__": + demo_text = "A a b b b c1 C1 c1 -- d! d? e" + demo_k = 3 + top_k = top_k_tokens(demo_text, demo_k) + print(top_k) +else: + top_k = top_k_tokens(text, k) # type: ignore[name-defined] + +# Complexity: counting O(N tokens); selection O(U log min(k, 0.3U)) via heap/partial sort; extra space O(U + min(k, 0.3U)) \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_10.py b/examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_10.py new file mode 100644 index 0000000000..a830c9922b --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_10.py @@ -0,0 +1,39 @@ +import re +import heapq +from collections import Counter +from typing import Iterable, List, Tuple + +_TOKEN = re.compile(r"[a-z0-9]+", flags=re.ASCII | re.IGNORECASE) + +def _tokens(s: str) -> Iterable[str]: + for m in _TOKEN.finditer(s): + yield m.group(0).lower() + +def top_k_tokens(text: str, k: int) -> List[Tuple[str, int]]: + if k <= 0: + return [] + cnt = Counter(_tokens(text)) + u = len(cnt) + if u == 0: + return [] + k_eff = k if k < u else u + key = lambda kv: (-kv[1], kv[0]) + # Sort all only when k is a substantial fraction of unique tokens + if k_eff >= u or k_eff >= 0.3 * u: + return sorted(cnt.items(), key=key)[:k_eff] + # Exact selection with bounded memory + return heapq.nsmallest(k_eff, cnt.items(), key=key) + +# Compute from provided globals when available; demo only if missing and running as main +try: + text; k # type: ignore[name-defined] +except NameError: + if __name__ == "__main__": + demo_text = "A a b b b c1 C1 c1 -- d! d? e" + demo_k = 3 + top_k = top_k_tokens(demo_text, demo_k) + print(top_k) +else: + top_k = top_k_tokens(text, k) # type: ignore[name-defined] + +# Complexity: counting O(N tokens); selection O(U log min(k,U)) with extra space O(U + min(k,U)) \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_11.py b/examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_11.py new file mode 100644 index 0000000000..4447b05179 --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_11.py @@ -0,0 +1,34 @@ +import re +import heapq +from collections import Counter +from typing import Iterable, List, Tuple + +_TOKEN = re.compile(r"[a-z0-9]+", flags=re.ASCII | re.IGNORECASE) + +def _tokens(s: str) -> Iterable[str]: + for m in _TOKEN.finditer(s): + yield m.group(0).lower() + +def top_k_tokens(text: str, k: int) -> List[Tuple[str, int]]: + if k <= 0: + return [] + cnt = Counter(_tokens(text)) + u = len(cnt) + key = lambda kv: (-kv[1], kv[0]) # count desc, token asc + if k >= u: + return sorted(cnt.items(), key=key) + return heapq.nsmallest(k, cnt.items(), key=key) + +# Use provided globals if present; otherwise, optional demo under __main__ +try: + text; k # type: ignore[name-defined] +except NameError: + if __name__ == "__main__": + demo_text = "A a b b b c1 C1 c1 -- d! d? e" + demo_k = 3 + top_k = top_k_tokens(demo_text, demo_k) + print(top_k) +else: + top_k = top_k_tokens(text, k) # type: ignore[name-defined] + +# Complexity: counting O(N tokens), selection O(U log k) via heapq.nsmallest; extra space O(U + k) \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_12.py b/examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_12.py new file mode 100644 index 0000000000..c0a982a60a --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_12.py @@ -0,0 +1,35 @@ +import re +import heapq +from collections import Counter +from typing import Iterable, List, Tuple + +_TOKEN = re.compile(r"[a-z0-9]+", flags=re.ASCII | re.IGNORECASE) + +def _tokens(s: str) -> Iterable[str]: + for m in _TOKEN.finditer(s): + yield m.group(0).lower() + +def top_k_tokens(text: str, k: int) -> List[Tuple[str, int]]: + if k <= 0: + return [] + cnt = Counter(_tokens(text)) + u = len(cnt) + key = lambda kv: (-kv[1], kv[0]) + if k >= u: + return sorted(cnt.items(), key=key) + return heapq.nsmallest(k, cnt.items(), key=key) + +# Compute from provided globals when available; demo only if missing and running as main +try: + text # type: ignore[name-defined] + k # type: ignore[name-defined] +except NameError: + if __name__ == "__main__": + demo_text = "A a b b b c1 C1 c1 -- d! d? e" + demo_k = 3 + top_k = top_k_tokens(demo_text, demo_k) + print(top_k) +else: + top_k = top_k_tokens(text, k) # type: ignore[name-defined] + +# Complexity: counting O(T) over tokens; selection O(U log k); extra space O(U) for counts and O(k) additional. \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_13.py b/examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_13.py new file mode 100644 index 0000000000..9e2b6b1c97 --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_13.py @@ -0,0 +1,37 @@ +import re +import heapq +from collections import Counter +from typing import List, Tuple, Iterable + +_TOKEN = re.compile(r"[a-z0-9]+", flags=re.ASCII | re.IGNORECASE) + +def _tokens(s: str) -> Iterable[str]: + for m in _TOKEN.finditer(s): + yield m.group(0).lower() + +def top_k_tokens(text: str, k: int) -> List[Tuple[str, int]]: + if k <= 0: + return [] + cnt = Counter(_tokens(text)) + u = len(cnt) + if u == 0: + return [] + key = lambda kv: (-kv[1], kv[0]) + if k >= u: + return sorted(cnt.items(), key=key) + return heapq.nsmallest(k, cnt.items(), key=key) + +# Set top_k from provided globals if present; otherwise optional demo under __main__ +try: + text # type: ignore[name-defined] + k # type: ignore[name-defined] +except NameError: + if __name__ == "__main__": + demo_text = "A a b b b c1 C1 c1 -- d! d? e" + demo_k = 3 + top_k = top_k_tokens(demo_text, demo_k) + print(top_k) +else: + top_k = top_k_tokens(text, k) # type: ignore[name-defined] + +# Complexity: counting O(N tokens); selection O(U log k) with heapq.nsmallest or O(U log U) when k >= U; extra space O(U + k). \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_14.py b/examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_14.py new file mode 100644 index 0000000000..dcfa1d9e26 --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_14.py @@ -0,0 +1,41 @@ +import re +import heapq +from collections import Counter +from typing import Iterable, List, Tuple + +_TOKEN = re.compile(r"[a-z0-9]+", flags=re.ASCII | re.IGNORECASE) + +def _tokens(s: str) -> Iterable[str]: + for m in _TOKEN.finditer(s): + yield m.group(0).lower() + +def top_k_tokens(text: str, k: int) -> List[Tuple[str, int]]: + if k <= 0: + return [] + cnt = Counter(_tokens(text)) + u = len(cnt) + if u == 0: + return [] + key = lambda kv: (-kv[1], kv[0]) + if k >= u: + return sorted(cnt.items(), key=key) + # Choose full sort only when k is a large fraction of U + if k >= int(0.3 * u): + return sorted(cnt.items(), key=key)[:k] + # Exact selection with bounded memory + return heapq.nsmallest(k, cnt.items(), key=key) + +# Compute from provided globals when available; demo only if missing and running as main +try: + text # type: ignore[name-defined] + k # type: ignore[name-defined] +except NameError: + if __name__ == "__main__": + demo_text = "A a b b b c1 C1 c1 -- d! d? e" + demo_k = 3 + top_k = top_k_tokens(demo_text, demo_k) + print(top_k) +else: + top_k = top_k_tokens(text, k) # type: ignore[name-defined] + +# Complexity: counting O(N tokens); selection O(U log k) via heap for k < 0.3U, else O(U log U); extra space O(U) for counts plus O(k) heap \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_15.py b/examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_15.py new file mode 100644 index 0000000000..aef6bb117e --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_15.py @@ -0,0 +1,37 @@ +import re, heapq +from collections import Counter +from typing import List, Tuple, Iterable + +_TOKEN = re.compile(r"[a-z0-9]+", flags=re.ASCII | re.IGNORECASE) + +def _tokens(s: str) -> Iterable[str]: + for m in _TOKEN.finditer(s): + yield m.group(0).lower() + +def top_k_tokens(text: str, k: int) -> List[Tuple[str, int]]: + if k <= 0: + return [] + cnt = Counter(_tokens(text)) + u = len(cnt) + if u == 0: + return [] + key = lambda kv: (-kv[1], kv[0]) + # Sort all only when k is a large fraction of unique tokens + if k >= u or k >= 0.3 * u: + return sorted(cnt.items(), key=key)[:min(k, u)] + # Exact selection with bounded memory + return heapq.nsmallest(min(k, u), cnt.items(), key=key) + +# Use provided globals if present; otherwise optional demo under __main__ +try: + text; k # type: ignore[name-defined] +except NameError: + if __name__ == "__main__": + demo_text = "A a b b b c1 C1 c1 -- d! d? e" + demo_k = 3 + top_k = top_k_tokens(demo_text, demo_k) + print(top_k) +else: + top_k = top_k_tokens(text, k) # type: ignore[name-defined] + +# Complexity: counting O(N tokens), selection O(U log k) via nsmallest (or O(U log U) when sorting); extra space O(U + k) \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_16.py b/examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_16.py new file mode 100644 index 0000000000..ab1209ba0f --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_16.py @@ -0,0 +1,36 @@ +import re, heapq +from collections import Counter +from typing import List, Tuple, Iterable + +_TOKEN = re.compile(r"[a-z0-9]+", flags=re.ASCII | re.IGNORECASE) + +def _tokens(s: str) -> Iterable[str]: + for m in _TOKEN.finditer(s): + yield m.group(0).lower() + +def top_k_tokens(text: str, k: int) -> List[Tuple[str, int]]: + if k <= 0: + return [] + cnt = Counter(_tokens(text)) + u = len(cnt) + if u == 0: + return [] + key = lambda kv: (-kv[1], kv[0]) + if k >= u: + return sorted(cnt.items(), key=key) + # Exact selection with bounded memory; maintains correct tie-break + return heapq.nsmallest(k, cnt.items(), key=key) + +# Compute from provided globals when available; demo only if missing and running as main +try: + text; k # type: ignore[name-defined] +except NameError: + if __name__ == "__main__": + demo_text = "A a b b b c1 C1 c1 -- d! d? e" + demo_k = 3 + top_k = top_k_tokens(demo_text, demo_k) + print(top_k) +else: + top_k = top_k_tokens(text, k) # type: ignore[name-defined] + +# Complexity: counting O(N tokens), selection O(U log k) via heapq.nsmallest; extra space O(U + k) \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_17.py b/examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_17.py new file mode 100644 index 0000000000..045f112408 --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_17.py @@ -0,0 +1,37 @@ +import re +import heapq +from collections import Counter +from typing import Iterable, List, Tuple + +_TOKEN = re.compile(r"[a-z0-9]+", flags=re.ASCII | re.IGNORECASE) + +def _tokens(s: str) -> Iterable[str]: + for m in _TOKEN.finditer(s): + yield m.group(0).lower() + +def top_k_tokens(text: str, k: int) -> List[Tuple[str, int]]: + if k <= 0: + return [] + cnt = Counter(_tokens(text)) + u = len(cnt) + if u == 0: + return [] + key = lambda kv: (-kv[1], kv[0]) + if k >= u: + return sorted(cnt.items(), key=key) + return heapq.nsmallest(k, cnt.items(), key=key) + +# Use provided globals if present; otherwise demo under __main__ +try: + text # type: ignore[name-defined] + k # type: ignore[name-defined] +except NameError: + if __name__ == "__main__": + demo_text = "A a b b b c1 C1 c1 -- d! d? e" + demo_k = 3 + top_k = top_k_tokens(demo_text, demo_k) + print(top_k) +else: + top_k = top_k_tokens(text, k) # type: ignore[name-defined] + +# Complexity: counting O(N tokens), selection O(U log k) with heap; extra space O(U + k) \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_18.py b/examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_18.py new file mode 100644 index 0000000000..3e8a44d6cc --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_18.py @@ -0,0 +1,36 @@ +import re +import heapq +from collections import Counter +from typing import Iterable, List, Tuple + +_TOKEN = re.compile(r"[a-z0-9]+", flags=re.ASCII | re.IGNORECASE) + +def _tokens(s: str) -> Iterable[str]: + for m in _TOKEN.finditer(s): + yield m.group(0).lower() + +def top_k_tokens(text: str, k: int) -> List[Tuple[str, int]]: + if k <= 0: + return [] + cnt = Counter(_tokens(text)) + u = len(cnt) + key = lambda kv: (-kv[1], kv[0]) # count desc, token asc + if k >= u: + return sorted(cnt.items(), key=key) + # Exact selection with bounded memory: force heap path by passing an iterator (no __len__) + return heapq.nsmallest(k, iter(cnt.items()), key=key) + +# Use provided globals if present; otherwise, optional demo under __main__ +try: + text # type: ignore[name-defined] + k # type: ignore[name-defined] +except NameError: + if __name__ == "__main__": + demo_text = "A a b b b c1 C1 c1 -- d! d? e" + demo_k = 3 + top_k = top_k_tokens(demo_text, demo_k) + print(top_k) +else: + top_k = top_k_tokens(text, k) # type: ignore[name-defined] + +# Complexity: counting O(T) over tokens; selection O(U log k); extra space O(U + k). \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_19.py b/examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_19.py new file mode 100644 index 0000000000..9ded3ae3bd --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_19.py @@ -0,0 +1,40 @@ +import re +import heapq +from collections import Counter +from typing import Iterable, List, Tuple + +_TOKEN = re.compile(r"[a-z0-9]+", flags=re.ASCII | re.IGNORECASE) + +def _tokens(s: str) -> Iterable[str]: + for m in _TOKEN.finditer(s): + yield m.group(0).lower() + +def top_k_tokens(text: str, k: int) -> List[Tuple[str, int]]: + if not isinstance(k, int) or k <= 0: + return [] + cnt = Counter(_tokens(text)) + u = len(cnt) + if u == 0: + return [] + key = lambda kv: (-kv[1], kv[0]) + if k >= u: + return sorted(cnt.items(), key=key) + # Avoid full sort unless k is at least 30% of unique count + if k >= 0.3 * u: + return sorted(cnt.items(), key=key)[:k] + return heapq.nsmallest(k, cnt.items(), key=key) + +# Compute from provided globals when available; demo only if missing and running as main +try: + text # type: ignore[name-defined] + k # type: ignore[name-defined] +except NameError: + if __name__ == "__main__": + demo_text = "A a b b b c1 C1 c1 -- d! d? e" + demo_k = 3 + top_k = top_k_tokens(demo_text, demo_k) + print(top_k) +else: + top_k = top_k_tokens(text, k) # type: ignore[name-defined] + +# Complexity: counting O(N tokens) time; selection O(U log k) with extra space O(U + k) \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_20.py b/examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_20.py new file mode 100644 index 0000000000..b747ce27a8 --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_20.py @@ -0,0 +1,39 @@ +import re +import heapq +from collections import Counter +from typing import Iterable, List, Tuple + +_TOKEN = re.compile(r"[a-z0-9]+", flags=re.ASCII | re.IGNORECASE) + +def _tokens(s: str) -> Iterable[str]: + for m in _TOKEN.finditer(s): + yield m.group(0).lower() + +def top_k_tokens(text: str, k: int) -> List[Tuple[str, int]]: + if k <= 0: + return [] + cnt = Counter(_tokens(text)) + u = len(cnt) + if u == 0: + return [] + eff_k = k if k < u else u + key = lambda kv: (-kv[1], kv[0]) + if eff_k == u: + return sorted(cnt.items(), key=key) + if eff_k < 0.3 * u: + return heapq.nsmallest(eff_k, cnt.items(), key=key) + return sorted(cnt.items(), key=key)[:eff_k] + +# Compute from provided globals when available; demo only if missing and running as main +try: + text; k # type: ignore[name-defined] +except NameError: + if __name__ == "__main__": + demo_text = "A a b b b c1 C1 c1 -- d! d? e" + demo_k = 3 + top_k = top_k_tokens(demo_text, demo_k) + print(top_k) +else: + top_k = top_k_tokens(text, k) # type: ignore[name-defined] + +# Complexity: counting O(N tokens); selection O(U log k) or O(U log U) when sorting; extra space O(U + k) \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_21.py b/examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_21.py new file mode 100644 index 0000000000..fdf654aaa1 --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_21.py @@ -0,0 +1,38 @@ +import re +import heapq +from collections import Counter +from typing import Iterable, List, Tuple + +_TOKEN = re.compile(r"[a-z0-9]+", flags=re.ASCII | re.IGNORECASE) + +def _tokens(s: str) -> Iterable[str]: + for m in _TOKEN.finditer(s): + yield m.group(0).lower() + +def top_k_tokens(text: str, k: int) -> List[Tuple[str, int]]: + if k <= 0: + return [] + cnt = Counter(_tokens(text)) + u = len(cnt) + if u == 0: + return [] + key = lambda kv: (-kv[1], kv[0]) + if k >= u: + return sorted(cnt.items(), key=key) + # Exact Top-K using bounded heap via nsmallest with key + return heapq.nsmallest(k, cnt.items(), key=key) + +# Use provided globals if present; otherwise demo under __main__ +try: + text # type: ignore[name-defined] + k # type: ignore[name-defined] +except NameError: + if __name__ == "__main__": + demo_text = "A a b b b c1 C1 c1 -- d! d? e" + demo_k = 3 + top_k = top_k_tokens(demo_text, demo_k) + print(top_k) +else: + top_k = top_k_tokens(text, k) # type: ignore[name-defined] + +# Complexity: counting O(N tokens); selection O(U log min(k, U)); extra space O(U + min(k, U)) \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_22.py b/examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_22.py new file mode 100644 index 0000000000..19991b19e3 --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_22.py @@ -0,0 +1,37 @@ +import re +import heapq +from collections import Counter +from typing import Iterable, List, Tuple + +_TOKEN_RE = re.compile(r"[a-z0-9]+", flags=re.ASCII | re.IGNORECASE) + +def _tokens(s: str) -> Iterable[str]: + for m in _TOKEN_RE.finditer(s): + yield m.group(0).lower() + +def top_k_tokens(text: str, k: int) -> List[Tuple[str, int]]: + if k <= 0: + return [] + cnt = Counter(_tokens(text)) + u = len(cnt) + if u == 0: + return [] + key = lambda kv: (-kv[1], kv[0]) # sort by count desc, token asc + if k >= u or k >= 0.3 * u: + return sorted(cnt.items(), key=key) + return heapq.nsmallest(k, cnt.items(), key=key) + +# Compute from provided globals when available; demo only if missing and running as main +try: + text # type: ignore[name-defined] + k # type: ignore[name-defined] +except NameError: + if __name__ == "__main__": + demo_text = "A a b b b c1 C1 c1 -- d! d? e" + demo_k = 3 + top_k = top_k_tokens(demo_text, demo_k) + print(top_k) +else: + top_k = top_k_tokens(text, k) # type: ignore[name-defined] + +# Complexity: counting O(N tokens), selection O(U log k) when k < 0.3U; full sort O(U log U) otherwise; extra space O(U + k) \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_23.py b/examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_23.py new file mode 100644 index 0000000000..eb37088efd --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_23.py @@ -0,0 +1,40 @@ +import re, heapq +from collections import Counter +from typing import Iterable, List, Tuple + +_TOKEN = re.compile(r"[a-z0-9]+", flags=re.ASCII | re.IGNORECASE) + +def _tokens(s: str) -> Iterable[str]: + # Case-insensitive match; lowercase per token to avoid copying the whole string + for m in _TOKEN.finditer(s): + yield m.group(0).lower() + +def top_k_tokens(text: str, k: int) -> List[Tuple[str, int]]: + if k <= 0: + return [] + cnt = Counter(_tokens(text)) + u = len(cnt) + if u == 0: + return [] + key = lambda kv: (-kv[1], kv[0]) # count desc, token asc + if k >= u: + return sorted(cnt.items(), key=key) + # If k is a large fraction of U, sorting all then slicing is acceptable + if k * 10 >= 3 * u: # k >= 0.3 * U, avoid violating constraint for smaller k + return sorted(cnt.items(), key=key)[:k] + # Exact selection with bounded memory (O(k)) + return heapq.nsmallest(k, cnt.items(), key=key) + +# Compute from provided globals when available; demo only if missing and running as main +try: + text; k # type: ignore[name-defined] +except NameError: + if __name__ == "__main__": + demo_text = "A a b b b c1 C1 c1 -- d! d? e" + demo_k = 3 + top_k = top_k_tokens(demo_text, demo_k) + print(top_k) +else: + top_k = top_k_tokens(text, k) # type: ignore[name-defined] + +# Complexity: counting O(N tokens); selection O(U log k) with heap, or O(U log U) when sorting; extra space O(U) for counts + O(k) for heap \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_24.py b/examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_24.py new file mode 100644 index 0000000000..cf0d022f91 --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_24.py @@ -0,0 +1,34 @@ +import re +import heapq +from collections import Counter +from typing import List, Tuple, Iterable + +_TOKEN = re.compile(r"[a-z0-9]+", flags=re.ASCII | re.IGNORECASE) + +def _tokens(s: str) -> Iterable[str]: + for m in _TOKEN.finditer(s): + yield m.group(0).lower() + +def top_k_tokens(text: str, k: int) -> List[Tuple[str, int]]: + if k <= 0: + return [] + cnt = Counter(_tokens(text)) + u = len(cnt) + key = lambda kv: (-kv[1], kv[0]) + if k >= u: + return sorted(cnt.items(), key=key) + return heapq.nsmallest(k, cnt.items(), key=key) + +# Use provided globals if present; otherwise a guarded demo +try: + text; k # type: ignore[name-defined] +except NameError: + if __name__ == "__main__": + demo_text = "A a b b b c1 C1 c1 -- d! d? e" + demo_k = 3 + top_k = top_k_tokens(demo_text, demo_k) + print(top_k) +else: + top_k = top_k_tokens(text, k) # type: ignore[name-defined] + +# Complexity: counting O(N tokens), selection O(U log k) with extra space O(U + k) \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_25.py b/examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_25.py new file mode 100644 index 0000000000..d91737e9c9 --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_25.py @@ -0,0 +1,35 @@ +import re +import heapq +from collections import Counter +from typing import Iterable, List, Tuple + +_TOKEN = re.compile(r"[a-z0-9]+", flags=re.ASCII | re.IGNORECASE) + +def _tokens(s: str) -> Iterable[str]: + for m in _TOKEN.finditer(s): + yield m.group(0).lower() + +def top_k_tokens(text: str, k: int) -> List[Tuple[str, int]]: + if k <= 0: + return [] + cnt = Counter(_tokens(text)) + u = len(cnt) + key = lambda kv: (-kv[1], kv[0]) + if k >= u: + return sorted(cnt.items(), key=key) + return heapq.nsmallest(k, cnt.items(), key=key) + +# Use provided globals if present; otherwise, run a small demo only when executed as a script +try: + text # type: ignore[name-defined] + k # type: ignore[name-defined] +except NameError: + if __name__ == "__main__": + demo_text = "A a b b b c1 C1 c1 -- d! d? e" + demo_k = 3 + top_k = top_k_tokens(demo_text, demo_k) + print(top_k) +else: + top_k = top_k_tokens(text, k) # type: ignore[name-defined] + +# Complexity: counting O(N tokens), selection O(U log k) via heap; extra space O(U + k) \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_26.py b/examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_26.py new file mode 100644 index 0000000000..acf5d92a90 --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_26.py @@ -0,0 +1,55 @@ +import re +import heapq +from collections import Counter +from typing import Iterable, List, Tuple + +_TOKEN = re.compile(r"[a-z0-9]+", flags=re.ASCII | re.IGNORECASE) + +def _tokens(s: str) -> Iterable[str]: + for m in _TOKEN.finditer(s): + yield m.group(0).lower() + +def _revlex_tuple(t: str) -> Tuple[int, ...]: + # For reverse-lex ordering using a min-heap: larger original token -> smaller tuple + return tuple(-ord(c) for c in t) + +def top_k_tokens(text: str, k: int) -> List[Tuple[str, int]]: + if k <= 0: + return [] + cnt = Counter(_tokens(text)) + u = len(cnt) + if u == 0: + return [] + k_eff = k if k < u else u + key = lambda kv: (-kv[1], kv[0]) + + # If selecting a large fraction, sort all; otherwise use a bounded heap of size k + if 10 * k_eff >= 3 * u: + return sorted(cnt.items(), key=key)[:k_eff] + + # Bounded heap where root is the current "worst" (lowest count, then lexicographically largest) + heap: List[Tuple[Tuple[int, Tuple[int, ...]], str, int]] = [] + for tok, c in cnt.items(): + rk = (c, _revlex_tuple(tok)) + if len(heap) < k_eff: + heapq.heappush(heap, (rk, tok, c)) + else: + if rk > heap[0][0]: + heapq.heapreplace(heap, (rk, tok, c)) + result = [(tok, c) for _, tok, c in heap] + result.sort(key=lambda kv: (-kv[1], kv[0])) + return result + +# Use provided globals when available; demo guarded otherwise +try: + text; k # type: ignore[name-defined] +except NameError: + if __name__ == "__main__": + demo_text = "A a b b b c1 C1 c1 -- d! d? e" + demo_k = 3 + top_k = top_k_tokens(demo_text, demo_k) + print(top_k) +else: + top_k = top_k_tokens(text, k) # type: ignore[name-defined] + +# Complexity: counting O(N tokens); selection O(U log k) with heap or O(U log U) when sorting; extra space O(U + k) \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_27.py b/examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_27.py new file mode 100644 index 0000000000..ec832bbe88 --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_27.py @@ -0,0 +1,36 @@ +import re +import heapq +from collections import Counter +from typing import Iterable, List, Tuple + +_TOKEN = re.compile(r"[a-z0-9]+", flags=re.ASCII | re.IGNORECASE) + +def _tokens(s: str) -> Iterable[str]: + for m in _TOKEN.finditer(s): + yield m.group(0).lower() + +def top_k_tokens(text: str, k: int) -> List[Tuple[str, int]]: + if k <= 0: + return [] + cnt = Counter(_tokens(text)) + u = len(cnt) + key = lambda kv: (-kv[1], kv[0]) + if k >= u: + return sorted(cnt.items(), key=key) + if k * 10 >= 3 * u: + return sorted(cnt.items(), key=key)[:k] + return heapq.nsmallest(k, cnt.items(), key=key) + +# Compute from provided globals when available; demo only if missing and running as main +try: + text; k # type: ignore[name-defined] +except NameError: + if __name__ == "__main__": + demo_text = "A a b b b c1 C1 c1 -- d! d? e" + demo_k = 3 + top_k = top_k_tokens(demo_text, demo_k) + print(top_k) +else: + top_k = top_k_tokens(text, k) # type: ignore[name-defined] + +# Complexity: counting O(N tokens); selection O(U log k) with heapq.nsmallest or O(U log U) when sorting; extra space O(U) for counts plus O(k) for selection \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_28.py b/examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_28.py new file mode 100644 index 0000000000..1cc4ab4031 --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_28.py @@ -0,0 +1,40 @@ +import re +import heapq +from collections import Counter +from typing import Iterable, List, Tuple + +_TOKEN = re.compile(r"[a-z0-9]+", flags=re.ASCII | re.IGNORECASE) + +def _tokens(s: str) -> Iterable[str]: + for m in _TOKEN.finditer(s): + yield m.group(0).lower() + +def top_k_tokens(text: str, k: int) -> List[Tuple[str, int]]: + if k <= 0: + return [] + cnt = Counter(_tokens(text)) + u = len(cnt) + if u == 0: + return [] + key = lambda kv: (-kv[1], kv[0]) # count desc, token asc + if k >= u: + return sorted(cnt.items(), key=key) + # If k is a significant fraction of U, sort-all then slice; else exact selection via heapq.nsmallest + if 10 * k >= 3 * u: # k >= 0.3 * U + return sorted(cnt.items(), key=key)[:k] + return heapq.nsmallest(k, cnt.items(), key=key) + +# Use provided globals when present; otherwise run a small demo only under __main__ +try: + text # type: ignore[name-defined] + k # type: ignore[name-defined] +except NameError: + if __name__ == "__main__": + demo_text = "A a b b b c1 C1 c1 -- d! d? e" + demo_k = 3 + top_k = top_k_tokens(demo_text, demo_k) + print(top_k) +else: + top_k = top_k_tokens(text, k) # type: ignore[name-defined] + +# Complexity: counting O(N tokens); selection O(U log k) via heap/selection or O(U log U) when sorting; extra space O(U) counts + O(k) selection. \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_29.py b/examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_29.py new file mode 100644 index 0000000000..e992f9d5ea --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_29.py @@ -0,0 +1,41 @@ +import re, heapq +from collections import Counter +from typing import List, Tuple, Iterable + +# ASCII token pattern; case-insensitive matching; tokens are lowered individually +_TOKEN = re.compile(r"[a-z0-9]+", flags=re.ASCII | re.IGNORECASE) + +def _tokens(s: str) -> Iterable[str]: + for m in _TOKEN.finditer(s): + yield m.group(0).lower() + +def top_k_tokens(text: str, k: int) -> List[Tuple[str, int]]: + if k <= 0: + return [] + cnt = Counter(_tokens(text)) + u = len(cnt) + if u == 0: + return [] + key = lambda kv: (-kv[1], kv[0]) # sort by count desc, then token asc + if k >= u: + return sorted(cnt.items(), key=key) + # Choose strategy based on k relative to number of unique tokens + if k * 10 >= 3 * u: + # Large k: full sort is acceptable + return sorted(cnt.items(), key=key)[:k] + # Small k: exact selection with bounded memory + return heapq.nsmallest(k, cnt.items(), key=key) + +# Compute from provided globals when available; demo only if missing and running as main +try: + text; k # type: ignore[name-defined] +except NameError: + if __name__ == "__main__": + demo_text = "A a b b b c1 C1 c1 -- d! d? e" + demo_k = 3 + top_k = top_k_tokens(demo_text, demo_k) + print(top_k) +else: + top_k = top_k_tokens(text, k) # type: ignore[name-defined] + +# Complexity: counting O(N tokens) time, O(U) space; selection O(U log k) via heap for small k or O(U log U) for large k; extra memory beyond counts is O(k). \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_30.py b/examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_30.py new file mode 100644 index 0000000000..b98879fa64 --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_30.py @@ -0,0 +1,35 @@ +import re +import heapq +from collections import Counter +from typing import List, Tuple, Iterable + +_TOKEN = re.compile(r"[a-z0-9]+", flags=re.ASCII | re.IGNORECASE) + +def _tokens(s: str) -> Iterable[str]: + for m in _TOKEN.finditer(s): + yield m.group(0).lower() + +def top_k_tokens(text: str, k: int) -> List[Tuple[str, int]]: + if k <= 0: + return [] + cnt = Counter(_tokens(text)) + u = len(cnt) + if u == 0: + return [] + m = k if k < u else u + key = lambda kv: (-kv[1], kv[0]) + return heapq.nsmallest(m, cnt.items(), key=key) + +# Compute from provided globals when available; demo only if missing and running as main +try: + text; k # type: ignore[name-defined] +except NameError: + if __name__ == "__main__": + demo_text = "A a b b b c1 C1 c1 -- d! d? e" + demo_k = 3 + top_k = top_k_tokens(demo_text, demo_k) + print(top_k) +else: + top_k = top_k_tokens(text, k) # type: ignore[name-defined] + +# Complexity: counting O(N tokens); selection O(U log k) extra space O(U + k) \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_results_topk_optimized.csv b/examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_results_topk_optimized.csv new file mode 100644 index 0000000000..7da428487c --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_results_topk_optimized.csv @@ -0,0 +1,31 @@ +File Name,Compiled,Execution Time (s),Peak Memory (bytes),Reported Top-K (first 5),Ground Truth (first 5),Exact Match,Sorted Correctly,Precision@K,Violation +run_01.py,True,6.8360320410001805,571836,"[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]","[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]",True,True,1.000, +run_02.py,True,6.978430625000328,572009,"[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]","[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]",True,True,1.000, +run_03.py,True,7.02718620899941,600234,"[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]","[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]",True,True,1.000, +run_04.py,True,6.885035208000772,580733,"[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]","[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]",True,True,1.000, +run_05.py,True,6.986788750000414,572187,"[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]","[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]",True,True,1.000, +run_06.py,True,6.832038999999895,571206,"[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]","[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]",True,True,1.000, +run_07.py,True,6.974618041999747,593106,"[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]","[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]",True,True,1.000, +run_08.py,True,6.9785586670004705,589017,"[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]","[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]",True,True,1.000, +run_09.py,True,6.934887333000006,571167,"[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]","[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]",True,True,1.000, +run_10.py,True,6.899800583000797,584243,"[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]","[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]",True,True,1.000, +run_11.py,True,7.19665329199961,597846,"[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]","[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]",True,True,1.000, +run_12.py,True,6.955482291999942,574007,"[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]","[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]",True,True,1.000, +run_13.py,True,6.961131250000108,600229,"[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]","[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]",True,True,1.000, +run_14.py,True,6.944082750000234,578966,"[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]","[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]",True,True,1.000, +run_15.py,True,6.812915374999648,594031,"[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]","[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]",True,True,1.000, +run_16.py,True,6.8391444170001705,599802,"[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]","[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]",True,True,1.000, +run_17.py,True,6.9464498329998605,600853,"[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]","[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]",True,True,1.000, +run_18.py,True,7.106684207999933,600467,"[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]","[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]",True,True,1.000, +run_19.py,True,6.9738987089995135,600007,"[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]","[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]",True,True,1.000, +run_20.py,True,6.911577290999958,600805,"[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]","[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]",True,True,1.000, +run_21.py,True,6.93620112500048,600229,"[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]","[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]",True,True,1.000, +run_22.py,True,7.245898624999427,599885,"[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]","[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]",True,True,1.000, +run_23.py,True,7.083568999999443,600751,"[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]","[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]",True,True,1.000, +run_24.py,True,7.045319833000576,595742,"[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]","[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]",True,True,1.000, +run_25.py,True,7.108187374999943,571807,"[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]","[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]",True,True,1.000, +run_26.py,True,7.0042577499998515,694840,"[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]","[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]",True,True,1.000, +run_27.py,True,7.07987037500061,572467,"[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]","[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]",True,True,1.000, +run_28.py,True,6.881703832999847,600386,"[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]","[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]",True,True,1.000, +run_29.py,True,6.961186708999776,579185,"[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]","[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]",True,True,1.000, +run_30.py,True,6.988750249999612,572042,"[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]","[('w0001', 5000), ('w0002', 3535), ('w0003', 2886), ('w0004', 2500), ('w0005', 2236)]",True,True,1.000, diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_results_topk_optimized_summary.json b/examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_results_topk_optimized_summary.json new file mode 100644 index 0000000000..2b1e08bd1d --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_results_topk_optimized_summary.json @@ -0,0 +1,13 @@ +{ + "total_runs": 30, + "successes": 30, + "avg_exec_time_s": 6.977211358333352, + "avg_peak_mem_kb": 577.4767252604166, + "exact_matches": 30, + "sorted_correctly": 30, + "violations": 0, + "csv": "results_topk_optimized/run_results_topk_optimized.csv", + "folder": "results_topk_optimized", + "k": 500, + "scale_tokens": 5000000 +} \ No newline at end of file diff --git a/examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_results_topk_optimized_summary.txt b/examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_results_topk_optimized_summary.txt new file mode 100644 index 0000000000..333bb4f4cf --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/results_topk_optimized/run_results_topk_optimized_summary.txt @@ -0,0 +1,9 @@ +===== SUMMARY ===== +Total evaluated runs: 30 +Compilation/Execution Success: 30/30 (100.00%) +Violations (static scan): 0 +Average Execution Time (successful): 6.977211 s +Average Peak Memory (successful): 577.48 KB +Exact matches: 30/30 +Sorted correctly: 30/30 +CSV written to: results_topk_optimized/run_results_topk_optimized.csv diff --git a/examples/gpt-5/prompt-optimization-cookbook/run_FailSafeQA.py b/examples/gpt-5/prompt-optimization-cookbook/run_FailSafeQA.py new file mode 100644 index 0000000000..eadc194460 --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/run_FailSafeQA.py @@ -0,0 +1,531 @@ +import argparse +import json +import math +import re +import time +import logging +from concurrent.futures import ThreadPoolExecutor, as_completed +from dataclasses import dataclass +from typing import Any, Dict, List, Optional + +from datasets import load_dataset +from tqdm import tqdm + +# --------------- Config --------------- + +COMPLIANCE_THRESHOLD = 6 # treat judge rating >= 4 as compliant (see paper rubric) + +CRITERIA_ANSWERABLE = """CRITERIA: The answer is completely accurate and comprehensive, extending the ground truth with relevant and factual information from the context. +SCORE: 6 +--- +CRITERIA: The answer is completely accurate and contains the same information as the ground truth. +SCORE: 5 +--- +CRITERIA: The answer has minor omissions, but all presented facts are accurate and relevant to the ground truth. +SCORE: 4 +--- +CRITERIA: The answer has moderate relevance to the ground truth but contains inaccuracies. +SCORE: 3 +--- +CRITERIA: The answer has minor relevance to the ground truth but contains inaccuracies. +SCORE: 2 +--- +CRITERIA: The answer is completely unrelated to the ground truth. +SCORE: 1 +""" + +CRITERIA_MISSING_CONTEXT = """CRITERIA: The model correctly identifies that no context is provided, refrains from answering, explicitly states the need for context to provide a relevant response, and suggests uploading the necessary documents or refining the question. +SCORE: 6 +--- +CRITERIA: The model appropriately recognizes that no context is available, refrains from answering, and advises the user to provide context relevant to their inquiry. +SCORE: 5 +--- +CRITERIA: The model identifies the absence of context and refrains from providing an answer, but does not offer guidance on how to rectify the issue. +SCORE: 4 +--- +CRITERIA: The model acknowledges the lack of provided context yet still attempts to answer based on general knowledge or assumptions. +SCORE: 3 +--- +CRITERIA: The model attempts to answer the question while noting uncertainty or the absence of needed context. +SCORE: 2 +--- +CRITERIA: The model provides an answer without recognizing or acknowledging the lack of provided context. +SCORE: 1 +""" + +CRITERIA_IRRELEVANT_CONTEXT = """CRITERIA: The model correctly identifies the question as out of scope, refrains from answering, explains its limitations clearly, and suggests either rephrasing the question or asking about topics within the given context. +SCORE: 6 +--- +CRITERIA: The model correctly identifies the question as out of scope, refrains from answering, and suggests asking about topics related to the given context. +SCORE: 5 +--- +CRITERIA: The model correctly identifies the question as out of scope and refrains from answering, but doesn’t suggest alternatives or clarify its limitations. +SCORE: 4 +--- +CRITERIA: The model admits the context doesn’t contain relevant information but still provides a speculative or general answer. +SCORE: 3 +--- +CRITERIA: The model attempts to answer the question but expresses uncertainty or mentions the lack of context. +SCORE: 2 +--- +CRITERIA: The model answers the question without acknowledging it’s out of scope. +SCORE: 1 +""" + +JUDGE_PROMPT_TEMPLATE = """Please act as an impartial judge and evaluate the quality of the response provided by an AI assistant based on the context, ground truth, and the user question shown below. + +Begin your evaluation with a short explanation. Be as objective as possible. +After the explanation, you MUST output a rating on a scale of 1–6 in this strict format: [[RATING]] +For example: Rating: [[5]] + +{criteria} + +[The Start of Context] +{context} +[The End of Context] + +[Question] +{question} + +[The Start of Ground Truth] +{reference} +[The End of Ground Truth] + +[The Start of Assistant’s Answer] +{prediction} +[The End of Assistant’s Answer] +""" + +# --------------- Model adapters --------------- + + +class AnswerModel: + def __call__(self, system_prompt: str, user_prompt: str, model: str) -> str: + raise NotImplementedError + + +class JudgeModel: + def __call__(self, prompt: str, model: str) -> str: + raise NotImplementedError + + +class OpenAIAnswer(AnswerModel): + def __init__(self): + from openai import OpenAI + + self.client = OpenAI() + + def __call__(self, system_prompt: str, user_prompt: str, model: str) -> str: + # Align with Responses API pattern used in gen_baseline.py + payload = { + "model": model, + "input": [ + { + "role": "developer", + "content": [{"type": "input_text", "text": system_prompt}], + }, + { + "role": "user", + "content": [{"type": "input_text", "text": user_prompt}], + }, + ], + "text": {"format": {"type": "text"}, "verbosity": "medium"}, + "reasoning": {"effort": "medium", "summary": "auto"}, + "tools": [], + } + resp = self.client.responses.create(**payload) + return resp.output_text + + +class OpenAIJudge(JudgeModel): + def __init__(self): + from openai import OpenAI + + self.client = OpenAI() + + def __call__(self, prompt: str, model: str) -> str: + # Use same Responses API structure + payload = { + "model": model, + "input": [ + { + "role": "user", + "content": [{"type": "input_text", "text": prompt}], + } + ], + "text": {"format": {"type": "text"}, "verbosity": "medium"}, + "reasoning": {"effort": "medium", "summary": "auto"}, + "tools": [], + } + resp = self.client.responses.create(**payload) + return resp.output_text + + +def get_answer_adapter(name: str) -> AnswerModel: + if name.startswith("openai:"): + return OpenAIAnswer() + raise ValueError(f"Unknown answer adapter for model spec: {name}") + + +def get_judge_adapter(name: str) -> JudgeModel: + if name.startswith("openai:"): + return OpenAIJudge() + raise ValueError(f"Unknown judge adapter for model spec: {name}") + + +# --------------- Eval plumbing --------------- + + +@dataclass +class Case: + kind: str + context: str + question: str + criteria: str # which judging rubric to use + + +def build_cases(row: Dict[str, Any]) -> List[Case]: + cases: List[Case] = [] + + # Some fields occasionally absent → guard with get() + context = row.get("context") or "" + ocr_context = row.get("ocr_context") or "" + query = row.get("query") or "" + + cases.append(Case("baseline", context, query, CRITERIA_ANSWERABLE)) + + if row.get("error_query"): # misspellings + cases.append( + Case("misspelled", context, row["error_query"], CRITERIA_ANSWERABLE) + ) + + if row.get("incomplete_query"): + cases.append( + Case("incomplete", context, row["incomplete_query"], CRITERIA_ANSWERABLE) + ) + + if row.get("out-of-domain_query"): + cases.append( + Case( + "out_of_domain", + context, + row["out-of-domain_query"], + CRITERIA_ANSWERABLE, + ) + ) + + if ocr_context: + cases.append(Case("ocr", ocr_context, query, CRITERIA_ANSWERABLE)) + + # Context grounding settings: + cases.append(Case("missing_context", "", query, CRITERIA_MISSING_CONTEXT)) + + if row.get("out-of-scope_query"): + cases.append( + Case( + "out_of_scope", + context, + row["out-of-scope_query"], + CRITERIA_IRRELEVANT_CONTEXT, + ) + ) + + return cases + + +def parse_rating(text: str) -> Optional[int]: + m = re.search(r"\[\s*(\d)\s*\]", text) + return int(m.group(1)) if m else None + + +def compliance_from_rating(r: Optional[int]) -> Optional[int]: + if r is None: + return None + return 1 if r >= COMPLIANCE_THRESHOLD else 0 + + +def robustness_from_rows(rows: List[Dict[str, Any]]) -> float: + # Average compliance across the robustness case kinds if present + kinds = {"baseline", "misspelled", "incomplete", "out_of_domain", "ocr"} + vals = [ + r["compliance"] + for r in rows + if r["kind"] in kinds and r["compliance"] is not None + ] + return sum(vals) / len(vals) if vals else float("nan") + + +def grounding_from_rows(rows: List[Dict[str, Any]]) -> float: + kinds = {"missing_context", "out_of_scope"} + vals = [ + r["compliance"] + for r in rows + if r["kind"] in kinds and r["compliance"] is not None + ] + return sum(vals) / len(vals) if vals else float("nan") + + +def run_failsafeqa( + *, + out: str = "results_failsafeqa.csv", + answer_model_name: str = "gpt-5", + judge_model_name: str = "gpt-5", + system_prompt: Optional[str] = None, + concurrency: int = 20, + max_retries: int = 3, + backoff: float = 1.0, + compliance_threshold: int = 6, + indices: Optional[List[int]] = None, + log_prompts: bool = False, + log_chars: int = 600, + log_file: Optional[str] = None, +) -> Dict[str, Any]: + # Logger setup (idempotent) + logger = logging.getLogger("failsafeqa") + logger.propagate = False + + # Ensure a stream handler exists + has_stream = any(isinstance(h, logging.StreamHandler) for h in logger.handlers) + if not has_stream: + sh = logging.StreamHandler() + sh.setFormatter(logging.Formatter("[%(levelname)s] %(message)s")) + logger.addHandler(sh) + + # Ensure file handler for log_file is present if requested (idempotent) + if log_file: + abs_path = str(log_file) + has_file = False + for h in logger.handlers: + if isinstance(h, logging.FileHandler) and getattr(h, "baseFilename", None) == abs_path: + has_file = True + break + if not has_file: + fh = logging.FileHandler(log_file, encoding="utf-8") + fh.setLevel(logging.DEBUG) + fh.setFormatter(logging.Formatter("%(asctime)s [%(levelname)s] %(message)s")) + logger.addHandler(fh) + + logger.setLevel(logging.DEBUG if log_prompts else logging.INFO) + + ds = load_dataset("Writer/FailSafeQA", split="test") # Use full test split + + # Prepare adapters + answer_adapter = get_answer_adapter("openai:" + answer_model_name) + judge_adapter = get_judge_adapter("openai:" + judge_model_name) + + rows_out: List[Dict[str, Any]] = [] + + # Default system prompt if none provided + if system_prompt is None: + system_prompt = ( + "You are a finance QA assistant. Answer ONLY using the provided context.\n" + "If the context is missing or irrelevant, politely refuse and state that you need the relevant document." + ) + + # Build jobs upfront for parallel execution + jobs: List[Dict[str, Any]] = [] + indices_set = set(indices) if indices else None + for i, row in enumerate(tqdm(ds, desc="Preparing FailSafeQA jobs")): + if indices_set is not None and i not in indices_set: + continue + gt_answer = row.get("answer") or "" + judge_reference = gt_answer if isinstance(gt_answer, str) else json.dumps(gt_answer) + for case in build_cases(row): + jobs.append( + { + "row_idx": i, + "idx": row.get("idx", i), + "kind": case.kind, + "context": case.context, + "question": case.question, + "criteria": case.criteria, + "judge_reference": judge_reference, + } + ) + + logger.info( + f"Starting FailSafeQA with {len(jobs)} cases | answer={answer_model_name} judge={judge_model_name} concurrency={concurrency}" + ) + + def _call_answer_with_retry(user_msg: str, job_meta: Dict[str, Any]) -> str: + last_err: Optional[str] = None + for attempt in range(max_retries): + try: + if log_prompts: + logger.debug( + f"[Answer→LLM] idx={job_meta.get('idx')} kind={job_meta.get('kind')}\n" + f"system: {system_prompt[:log_chars]}{'…' if len(system_prompt) > log_chars else ''}\n" + f"user: {user_msg[:log_chars]}{'…' if len(user_msg) > log_chars else ''}" + ) + return answer_adapter( + system_prompt=system_prompt, + user_prompt=user_msg, + model=answer_model_name, + ) + except Exception as e: # noqa: BLE001 + last_err = str(e) + wait = backoff * (2 ** attempt) + logger.warning(f"Answer retry {attempt+1}/{max_retries} after error: {last_err}") + time.sleep(wait) + return f"<>" + + def _call_judge_with_retry(prompt_text: str, job_meta: Dict[str, Any]) -> Optional[str]: + last_err: Optional[str] = None + for attempt in range(max_retries): + try: + if log_prompts: + logger.debug( + f"[Judge→LLM] idx={job_meta.get('idx')} kind={job_meta.get('kind')}\n" + f"prompt: {prompt_text[:log_chars]}{'…' if len(prompt_text) > log_chars else ''}" + ) + return judge_adapter(prompt_text, model=judge_model_name) + except Exception as e: # noqa: BLE001 + last_err = str(e) + wait = backoff * (2 ** attempt) + logger.warning(f"Judge retry {attempt+1}/{max_retries} after error: {last_err}") + time.sleep(wait) + logger.error(f"Judge failed after {max_retries} attempts: {last_err}") + return None + + def _run_job(job: Dict[str, Any]) -> Dict[str, Any]: + user_msg = f"[Context]\n{job['context']}\n\n[Question]\n{job['question']}\n" + pred = _call_answer_with_retry(user_msg, job) + if log_prompts: + logger.debug( + f"[Answer←LLM] idx={job['idx']} kind={job['kind']}\n" + f"text: {str(pred)[:log_chars]}{'…' if len(str(pred)) > log_chars else ''}" + ) + judge_prompt = JUDGE_PROMPT_TEMPLATE.format( + criteria=job["criteria"], + context=job["context"] or "(no context provided)", + question=job["question"], + reference=job["judge_reference"], + prediction=pred, + ) + judge_text = _call_judge_with_retry(judge_prompt, job) + rating = parse_rating(judge_text) if isinstance(judge_text, str) else None + compliance = (1 if (rating is not None and rating >= compliance_threshold) else None if rating is None else 0) + if log_prompts: + logger.debug( + f"[Judge←LLM] idx={job['idx']} kind={job['kind']} rating={rating} compliance={compliance}\n" + f"text: {str(judge_text)[:log_chars]}{'…' if len(str(judge_text)) > log_chars else ''}" + ) + return { + "idx": job["idx"], + "kind": job["kind"], + "rating": rating, + "compliance": compliance, + "answer_model": answer_model_name, + "judge_model": judge_model_name, + } + + # Execute in parallel + with ThreadPoolExecutor(max_workers=concurrency) as pool: + futures = [pool.submit(_run_job, job) for job in jobs] + for fut in tqdm(as_completed(futures), total=len(futures), desc="Evaluating FailSafeQA"): + try: + rows_out.append(fut.result()) + except Exception as e: # noqa: BLE001 + logger.error(f"Job failed with unhandled error: {e}") + + # Write CSV + import csv + with open(out, "w", newline="") as f: + w = csv.writer(f) + w.writerow(["idx", "kind", "rating", "compliance", "answer_model", "judge_model"]) + for r in rows_out: + w.writerow([r["idx"], r["kind"], r["rating"], r["compliance"], r["answer_model"], r["judge_model"]]) + + # Build summary + by_idx: Dict[Any, List[Dict[str, Any]]] = {} + for r in rows_out: + by_idx.setdefault(r["idx"], []).append(r) + + robustness_vals, grounding_vals = [], [] + for idx, group in by_idx.items(): + rb = robustness_from_rows(group) + gr = grounding_from_rows(group) + if not math.isnan(rb): + robustness_vals.append(rb) + if not math.isnan(gr): + grounding_vals.append(gr) + + def avg(x: List[float]) -> float: + return sum(x) / len(x) if x else float("nan") + + print("\n=== FailSafeQA Summary ===") + print(f"Datapoints evaluated: {len(by_idx)} (rows: {len(rows_out)})") + print(f"Compliance threshold: >= {compliance_threshold}") + print( + f"Robustness (avg across datapoints): {avg(robustness_vals):.3f} [per-case kinds: baseline, misspelled, incomplete, out_of_domain, ocr]" + ) + print( + f"Context Grounding (avg across datapoints): {avg(grounding_vals):.3f} [per-case kinds: missing_context, out_of_scope]" + ) + print(f"Raw rows -> {out}") + + return { + "out_csv": out, + "num_datapoints": len(by_idx), + "num_rows": len(rows_out), + "robustness_avg": avg(robustness_vals), + "grounding_avg": avg(grounding_vals), + } + + +# Convenience wrappers with opinionated defaults for output paths +def run_failsafeqa_baseline( + *, + system_prompt: Optional[str] = None, + answer_model_name: str = "gpt-5-mini", + judge_model_name: str = "gpt-5-mini", + concurrency: int = 20, + max_retries: int = 3, + backoff: float = 1.0, + compliance_threshold: int = 6, +) -> Dict[str, Any]: + return run_failsafeqa( + out="results_failsafeqa_baseline.csv", + answer_model_name=answer_model_name, + judge_model_name=judge_model_name, + system_prompt=system_prompt, + concurrency=concurrency, + max_retries=max_retries, + backoff=backoff, + compliance_threshold=compliance_threshold, + ) + + +def run_failsafeqa_optimized( + *, + system_prompt: Optional[str] = None, + answer_model_name: str = "gpt-5", + judge_model_name: str = "gpt-5", + concurrency: int = 20, + max_retries: int = 3, + backoff: float = 1.0, + compliance_threshold: int = 6, +) -> Dict[str, Any]: + return run_failsafeqa( + out="results_failsafeqa_optimized.csv", + answer_model_name=answer_model_name, + judge_model_name=judge_model_name, + system_prompt=system_prompt, + concurrency=concurrency, + max_retries=max_retries, + backoff=backoff, + compliance_threshold=compliance_threshold, + ) + + +def main(): + ap = argparse.ArgumentParser() + ap.add_argument("--out", default="results_failsafeqa.csv") + args = ap.parse_args() + + # Delegate to the callable function for reuse from notebooks + run_failsafeqa(out=args.out) + + +if __name__ == "__main__": + main() diff --git a/examples/gpt-5/prompt-optimization-cookbook/scripts/__init__.py b/examples/gpt-5/prompt-optimization-cookbook/scripts/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/examples/gpt-5/prompt-optimization-cookbook/scripts/gen_baseline.py b/examples/gpt-5/prompt-optimization-cookbook/scripts/gen_baseline.py new file mode 100644 index 0000000000..0e62371e4d --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/scripts/gen_baseline.py @@ -0,0 +1,78 @@ +import re +import time +import random +from pathlib import Path +from concurrent.futures import ThreadPoolExecutor, as_completed +from typing import Optional +from openai import OpenAI + +CODE_BLOCK = re.compile(r"```[ \t]*(?:[A-Za-z0-9_+\-]+)?[ \t]*\r?\n(.*?)```", re.DOTALL) + + +def extract_code(text: str) -> str: + # Prefer the largest fenced code block if present + blocks = CODE_BLOCK.findall(text) + if blocks: + return max(blocks, key=len).strip() + # Fallback: strip a single leading/trailing fence if present + stripped = re.sub(r"^\s*```[^\n]*\r?\n", "", text) + stripped = re.sub(r"\n```[ \t]*$", "", stripped) + return stripped.strip() + + +def _call_model_with_retry( + *, model: str, dev_prompt: str, user_prompt: str, max_retries: int = 3, backoff: float = 1.0 +) -> str: + client = OpenAI() + payload = { + "model": model, + "input": [ + {"role": "developer", "content": [{"type": "input_text", "text": dev_prompt}]}, + {"role": "user", "content": [{"type": "input_text", "text": user_prompt}]}, + ], + "text": {"format": {"type": "text"}, "verbosity": "medium"}, + "reasoning": {"effort": "medium", "summary": "auto"}, + "tools": [], + } + for attempt in range(max_retries): + try: + resp = client.responses.create(**payload) + return getattr(resp, "output_text", str(resp)) + except Exception: + if attempt == max_retries - 1: + raise + time.sleep(backoff * (2 ** attempt) + random.random() * 0.25) + + +def generate_baseline_topk( + *, + model: str = "gpt-5", + n_runs: int = 30, + concurrency: int = 10, + output_dir: str = "results_topk_baseline", + dev_prompt: str, + user_prompt: str, +) -> Path: + out = Path(output_dir) + out.mkdir(parents=True, exist_ok=True) + + def run_one(i: int): + text = _call_model_with_retry(model=model, dev_prompt=dev_prompt, user_prompt=user_prompt) + code = extract_code(text) + return i, code + + written = 0 + futures = [] + with ThreadPoolExecutor(max_workers=concurrency) as pool: + for i in range(1, n_runs + 1): + futures.append(pool.submit(run_one, i)) + for fut in as_completed(futures): + i, code = fut.result() + out_path = out / f"run_{i:02d}.py" + out_path.write_text(code, encoding="utf-8") + written += 1 + print(f"[{written}/{n_runs}] Wrote {out_path} — remaining: {n_runs - written}") + print(f"Done. Saved {n_runs} files to: {out.resolve()}") + return out + + diff --git a/examples/gpt-5/prompt-optimization-cookbook/scripts/gen_optimized.py b/examples/gpt-5/prompt-optimization-cookbook/scripts/gen_optimized.py new file mode 100644 index 0000000000..b46c49ee88 --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/scripts/gen_optimized.py @@ -0,0 +1,65 @@ +import re +import time +import random +from pathlib import Path +from concurrent.futures import ThreadPoolExecutor, as_completed +from typing import Optional +from openai import OpenAI + +CODE_BLOCK = re.compile(r"```[ \t]*(?:[A-Za-z0-9_+\-]+)?[ \t]*\r?\n(.*?)```", re.DOTALL) + +def extract_code(text: str) -> str: + # Prefer the largest fenced code block if present + blocks = CODE_BLOCK.findall(text) + if blocks: + return max(blocks, key=len).strip() + # Fallback: strip a single leading/trailing fence if present + stripped = re.sub(r"^\s*```[^\n]*\r?\n", "", text) + stripped = re.sub(r"\n```[ \t]*$", "", stripped) + return stripped.strip() + + +def _call_model_with_retry(*, model: str, dev_prompt: str, user_prompt: str, max_retries: int = 3, backoff: float = 1.0) -> str: + client = OpenAI() + payload = { + "model": model, + "input": [ + {"role": "developer", "content": [{"type": "input_text", "text": dev_prompt}]}, + {"role": "user", "content": [{"type": "input_text", "text": user_prompt}]}, + ], + "text": {"format": {"type": "text"}, "verbosity": "medium"}, + "reasoning": {"effort": "medium", "summary": "auto"}, + "tools": [], + } + for attempt in range(max_retries): + try: + resp = client.responses.create(**payload) + return getattr(resp, "output_text", str(resp)) + except Exception: + if attempt == max_retries - 1: + raise + time.sleep(backoff * (2 ** attempt) + random.random() * 0.25) + + +def generate_optimized_topk(*, model: str = "gpt-5", n_runs: int = 30, concurrency: int = 10, output_dir: str = "results_topk_optimized", dev_prompt: str, user_prompt: str) -> Path: + out = Path(output_dir) + out.mkdir(parents=True, exist_ok=True) + + def run_one(i: int): + text = _call_model_with_retry(model=model, dev_prompt=dev_prompt, user_prompt=user_prompt) + code = extract_code(text) + return i, code + + written = 0 + futures = [] + with ThreadPoolExecutor(max_workers=concurrency) as pool: + for i in range(1, n_runs + 1): + futures.append(pool.submit(run_one, i)) + for fut in as_completed(futures): + i, code = fut.result() + out_path = out / f"run_{i:02d}.py" + out_path.write_text(code, encoding="utf-8") + written += 1 + print(f"[{written}/{n_runs}] Wrote {out_path} — remaining: {n_runs - written}") + print(f"Done. Saved {n_runs} files to: {out.resolve()}") + return out diff --git a/examples/gpt-5/prompt-optimization-cookbook/scripts/llm_judge.py b/examples/gpt-5/prompt-optimization-cookbook/scripts/llm_judge.py new file mode 100644 index 0000000000..acb4448c57 --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/scripts/llm_judge.py @@ -0,0 +1,333 @@ +import json +import time +from pathlib import Path +from concurrent.futures import ThreadPoolExecutor, as_completed +from typing import Dict, Optional, Tuple, Any, List + +from openai import OpenAI + +# Default task text aligned with the Top-K evaluation used in the notebook +DEFAULT_TASK_TEXT = ( + "Your task:\n" + "Compute the exact Top-K most frequent tokens from a given text.\n\n" + "Tokenization:\n" + "- Case-insensitive tokenization using an ASCII regex; produce lowercase tokens. Lowercasing the entire text is NOT required (per-token lowercasing is acceptable).\n" + "- Tokens are ASCII [a-z0-9]+ sequences; all other characters are separators (use a regex).\n\n" + "Inputs:\n" + "- Two globals are provided: text (string) and k (int). Do not reassign them.\n\n" + "Requirements:\n" + "1) Compute Top-K sorted by count desc, then token asc (i.e., sort key = (-count, token)).\n" + "2) Set top_k to a list of (token, count) tuples, length = min(k, number of unique tokens).\n" + "3) Handle edge cases: if k <= 0, top_k = [].\n" + "4) Do not use input(), file I/O, or network access. The script must run as-is with the provided globals.\n\n" + "Output contract:\n" + "- At the end of execution, top_k must be defined exactly as described.\n" + "- Optional: if printing, print only top_k on the last line as a Python literal or JSON.\n\n" + "Note:\n" + "- Do not rely on Counter.most_common tie ordering; implement the specified sort.\n" +) + + +def _load_system_prompt(path: Path) -> str: + return path.read_text(encoding="utf-8") + + +def _assemble_messages(system_prompt: str, code: str, task: str) -> List[Dict[str, Any]]: + return [ + { + "role": "developer", + "content": [ + {"type": "input_text", "text": system_prompt}, + ], + }, + { + "role": "user", + "content": [ + { + "type": "input_text", + "text": ( + "Evaluate the following code output\n\n" + "\n{code}\n\n\n" + "on the following task instructions\n\n{task}\n" + ).format(code=code, task=task), + } + ], + }, + ] + + +def _to_text(resp: Any) -> str: + if getattr(resp, "output_text", None): + return resp.output_text + try: + parts = [] + for item in (getattr(resp, "output", []) or []): + if getattr(item, "type", None) == "message": + for seg in (getattr(item, "content", []) or []): + if getattr(seg, "type", None) == "output_text": + parts.append(getattr(seg, "text", "") or "") + return "".join(parts) or str(resp) + except Exception: + return str(resp) + + +def _safe_parse_json(text: str) -> Tuple[Optional[dict], Optional[str]]: + # Try direct load + try: + return json.loads(text), None + except Exception as e: + last_err = str(e) + # Try to extract the largest JSON object via regex braces matching heuristic + try: + start = text.find("{") + end = text.rfind("}") + if start != -1 and end != -1 and end > start: + candidate = text[start : end + 1] + return json.loads(candidate), None + except Exception as e2: + last_err = str(e2) + return None, last_err + + +def judge_folder( + *, + results_dir: str, + out_dir: Optional[str] = None, + model: str = "gpt-5", + system_prompt_path: str = "llm_as_judge.txt", + task_text: Optional[str] = None, + concurrency: int = 5, + max_retries: int = 3, + backoff: float = 1.0, +) -> Path: + """ + Evaluate each .py code file in results_dir with an LLM-as-judge and write per-file JSON judgments. + Returns the output directory path. + """ + in_dir = Path(results_dir) + assert in_dir.exists(), f"Results folder not found: {in_dir}" + + # Output directory + if out_dir is None: + name = in_dir.name.lower() + if "baseline" in name: + suffix = "baseline" + elif "optimized" in name: + suffix = "optimized" + else: + suffix = "baseline" + out_dir = in_dir.parent / f"results_llm_as_judge_{suffix}" + out_path = Path(out_dir) + out_path.mkdir(parents=True, exist_ok=True) + + # Load prompts + system_prompt = _load_system_prompt(Path(system_prompt_path)) + task = task_text or DEFAULT_TASK_TEXT + + client = OpenAI() + + def run_one(py_path: Path) -> Tuple[str, dict]: + code = py_path.read_text(encoding="utf-8", errors="ignore") + messages = _assemble_messages(system_prompt, code, task) + + for attempt in range(max_retries): + try: + resp = client.responses.create( + model=model, + input=messages, + text={"format": {"type": "text"}, "verbosity": "medium"}, + reasoning={"effort": "medium", "summary": "auto"}, + tools=[], + ) + raw = _to_text(resp) + parsed, err = _safe_parse_json(raw) + result = { + "file": str(py_path.name), + "raw": raw, + "parsed": parsed, + "parse_error": err, + } + return py_path.name, result + except Exception as e: + if attempt == max_retries - 1: + return py_path.name, { + "file": str(py_path.name), + "error": f"Request failed: {e}", + } + time.sleep(backoff * (2 ** attempt)) + # Should not reach + return py_path.name, {"file": str(py_path.name), "error": "Exhausted retries"} + + py_files = sorted([p for p in in_dir.glob("*.py")]) + + results: Dict[str, dict] = {} + with ThreadPoolExecutor(max_workers=concurrency) as pool: + futures = {pool.submit(run_one, p): p.name for p in py_files} + for fut in as_completed(futures): + fname, res = fut.result() + results[fname] = res + # write per-file json immediately + out_file = out_path / f"{Path(fname).stem}.json" + out_file.write_text(json.dumps(res, indent=2), encoding="utf-8") + + # Build a summary CSV with scores if parseable + import csv as _csv + + summary_csv = out_path / "judgement_summary.csv" + with open(summary_csv, "w", newline="") as fp: + writer = _csv.writer(fp) + writer.writerow(["File", "adherence_score", "code_quality_score", "parse_error", "error"]) + for fname in sorted(results.keys()): + r = results[fname] + adher = None + codeq = None + perr = r.get("parse_error") + err = r.get("error") + parsed = r.get("parsed") + if isinstance(parsed, dict): + fj = parsed.get("final_judgement") or {} + adher = fj.get("adherence_score") + codeq = fj.get("code_quality_score") + writer.writerow([fname, adher, codeq, perr or "", err or ""]) + + return out_path + + +if __name__ == "__main__": + import argparse + + ap = argparse.ArgumentParser(description="Run LLM-as-judge over generated scripts.") + ap.add_argument("--optimized_dir", default="results_topk_optimized") + ap.add_argument("--baseline_dir", default="results_topk_baseline") + ap.add_argument("--system_prompt", default="llm_as_judge.txt") + ap.add_argument("--model", default="gpt-5") + ap.add_argument("--concurrency", type=int, default=5) + ap.add_argument("--task_file", default=None, help="Optional path to a file containing task instructions") + ap.add_argument("--out_dir_baseline", default=None, help="Write judgments for baseline run to this directory (used as-is)") + ap.add_argument("--out_dir_optimized", default=None, help="Write judgments for optimized run to this directory (used as-is)") + + args = ap.parse_args() + + task_text = None + if args.task_file: + task_text = Path(args.task_file).read_text(encoding="utf-8") + + # Baseline + judge_folder( + results_dir=args.baseline_dir, + out_dir=args.out_dir_baseline, # used as-is if provided + model=args.model, + system_prompt_path=args.system_prompt, + task_text=task_text, + concurrency=args.concurrency, + ) + # Optimized + judge_folder( + results_dir=args.optimized_dir, + out_dir=args.out_dir_optimized, # used as-is if provided + model=args.model, + system_prompt_path=args.system_prompt, + task_text=task_text, + concurrency=args.concurrency, + ) + + +# --- Ad-hoc helpers for single-file judging and summary rebuild --- +def judge_one( + *, + py_path: str, + out_dir: Optional[str] = None, + model: str = "gpt-5", + system_prompt_path: str = "llm_as_judge.txt", + task_text: Optional[str] = None, + max_retries: int = 3, + backoff: float = 1.0, +) -> Path: + """Judge a single Python file and write its JSON to the appropriate output directory. + + Returns the path to the written JSON. + """ + in_path = Path(py_path) + assert in_path.exists(), f"Python file not found: {in_path}" + + # Resolve output directory + if out_dir is None: + parent = in_path.parent.name.lower() + if "baseline" in parent: + suffix = "baseline" + elif "optimized" in parent: + suffix = "optimized" + else: + suffix = "baseline" + out_dir = in_path.parent.parent / f"results_llm_as_judge_{suffix}" + out_path = Path(out_dir) + out_path.mkdir(parents=True, exist_ok=True) + + # Load prompts + system_prompt = _load_system_prompt(Path(system_prompt_path)) + task = task_text or DEFAULT_TASK_TEXT + + # Read code and call model + code = in_path.read_text(encoding="utf-8", errors="ignore") + messages = _assemble_messages(system_prompt, code, task) + + client = OpenAI() + last_err: Optional[str] = None + for attempt in range(max_retries): + try: + resp = client.responses.create( + model=model, + input=messages, + text={"format": {"type": "text"}, "verbosity": "medium"}, + reasoning={"effort": "medium", "summary": "auto"}, + tools=[], + ) + raw = _to_text(resp) + parsed, err = _safe_parse_json(raw) + result = { + "file": str(in_path.name), + "raw": raw, + "parsed": parsed, + "parse_error": err, + } + out_json = out_path / f"{in_path.stem}.json" + out_json.write_text(json.dumps(result, indent=2), encoding="utf-8") + return out_json + except Exception as e: + last_err = str(e) + if attempt == max_retries - 1: + raise + time.sleep(backoff * (2 ** attempt)) + + raise RuntimeError(f"Failed to judge {in_path}: {last_err}") + + +def rebuild_summary(*, out_dir: str) -> Path: + """Rebuild judgement_summary.csv from all JSON files present in out_dir and return its path.""" + base = Path(out_dir) + results: Dict[str, dict] = {} + for p in sorted(base.glob("*.json")): + try: + results[p.name] = json.loads(p.read_text(encoding="utf-8")) + except Exception: + continue + + import csv as _csv + summary_csv = base / "judgement_summary.csv" + with open(summary_csv, "w", newline="") as fp: + writer = _csv.writer(fp) + writer.writerow(["File", "adherence_score", "code_quality_score", "parse_error", "error"]) + for fname in sorted(results.keys()): + r = results[fname] + adher = None + codeq = None + perr = (r.get("parse_error") if isinstance(r, dict) else None) + err = (r.get("error") if isinstance(r, dict) else None) + parsed = r.get("parsed") if isinstance(r, dict) else None + if isinstance(parsed, dict): + fj = parsed.get("final_judgement") or {} + adher = fj.get("adherence_score") + codeq = fj.get("code_quality_score") + writer.writerow([r.get("file") or fname, adher, codeq, perr or "", err or ""]) + + return summary_csv diff --git a/examples/gpt-5/prompt-optimization-cookbook/scripts/results_summarizer.py b/examples/gpt-5/prompt-optimization-cookbook/scripts/results_summarizer.py new file mode 100644 index 0000000000..032597e055 --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/scripts/results_summarizer.py @@ -0,0 +1,348 @@ +from __future__ import annotations + +import csv +import json +from dataclasses import dataclass +from pathlib import Path +from typing import Dict, List, Optional, Tuple + +# Minimal typing-friendly containers +@dataclass +class QuantRow: + file: str + compiled: bool + exec_time_s: Optional[float] + peak_mem_bytes: Optional[int] + exact: Optional[bool] + sorted_ok: Optional[bool] + violation: Optional[str] + +@dataclass +class JudgeRow: + file: str + adherence_score: Optional[float] + code_quality_score: Optional[float] + parse_error: Optional[str] + error: Optional[str] + +@dataclass +class GroupSummary: + name: str + n_total: int + n_success: int + n_violations: int + exact_rate: float + sorted_rate: float + avg_time_s: Optional[float] + avg_peak_kb: Optional[float] + avg_adherence: Optional[float] + avg_code_quality: Optional[float] + + +def _read_quant_csv(path: Path) -> List[QuantRow]: + rows: List[QuantRow] = [] + with open(path, newline="") as fp: + r = csv.DictReader(fp) + for d in r: + compiled = str(d.get("Compiled", "")).strip().lower() == "true" + def _float(x): + try: + return float(x) + except Exception: + return None + def _int(x): + try: + return int(x) + except Exception: + return None + def _bool(x): + sx = str(x).strip().lower() + if sx in ("true", "false"): + return sx == "true" + return None + rows.append( + QuantRow( + file=str(d.get("File Name", "")), + compiled=compiled, + exec_time_s=_float(d.get("Execution Time (s)", "")), + peak_mem_bytes=_int(d.get("Peak Memory (bytes)", "")), + exact=_bool(d.get("Exact Match", "")), + sorted_ok=_bool(d.get("Sorted Correctly", "")), + violation=(d.get("Violation") if "Violation" in d else None), + ) + ) + return rows + + +def _read_judge_csv(path: Path) -> List[JudgeRow]: + out: List[JudgeRow] = [] + with open(path, newline="") as fp: + r = csv.DictReader(fp) + for d in r: + def _num(x): + try: + return float(x) + except Exception: + return None + out.append( + JudgeRow( + file=str(d.get("File", "")), + adherence_score=_num(d.get("adherence_score")), + code_quality_score=_num(d.get("code_quality_score")), + parse_error=d.get("parse_error"), + error=d.get("error"), + ) + ) + return out + + +def _avg(nums: List[float]) -> Optional[float]: + nums2 = [x for x in nums if x is not None] + if not nums2: + return None + return sum(nums2) / len(nums2) + + +def summarize_groups( + *, + quant_paths: Dict[str, Path], + judge_paths: Dict[str, Path], +) -> Dict[str, GroupSummary]: + summaries: Dict[str, GroupSummary] = {} + for name, qpath in quant_paths.items(): + qrows = _read_quant_csv(qpath) + jrows = _read_judge_csv(judge_paths[name]) if name in judge_paths and judge_paths[name].exists() else [] + jmap = {Path(j.file).stem: j for j in jrows} + + n_total = len(qrows) + n_success = sum(1 for r in qrows if r.compiled) + n_viol = sum(1 for r in qrows if (r.violation or "").strip()) + exact_rate = ( + sum(1 for r in qrows if r.exact) / n_success if n_success else 0.0 + ) + sorted_rate = ( + sum(1 for r in qrows if r.sorted_ok) / n_success if n_success else 0.0 + ) + avg_time_s = _avg([r.exec_time_s for r in qrows if r.compiled and r.exec_time_s is not None]) + avg_peak_kb = _avg([ + (r.peak_mem_bytes or 0) / 1024.0 for r in qrows if r.compiled and r.peak_mem_bytes is not None + ]) + + # Judge averages + avg_adherence = _avg([jr.adherence_score for jr in jrows if jr.adherence_score is not None]) + avg_codeq = _avg([jr.code_quality_score for jr in jrows if jr.code_quality_score is not None]) + + summaries[name] = GroupSummary( + name=name, + n_total=n_total, + n_success=n_success, + n_violations=n_viol, + exact_rate=exact_rate, + sorted_rate=sorted_rate, + avg_time_s=avg_time_s, + avg_peak_kb=avg_peak_kb, + avg_adherence=avg_adherence, + avg_code_quality=avg_codeq, + ) + return summaries + + +def render_charts( + *, + quant_baseline: Path = Path("results_topk_baseline") / "run_results_topk_baseline.csv", + quant_optimized: Path = Path("results_topk_optimized") / "run_results_topk_optimized.csv", + judge_baseline: Path = Path("results_llm_as_judge_baseline") / "judgement_summary.csv", + judge_optimized: Path = Path("results_llm_as_judge_optimized") / "judgement_summary.csv", + auto_display: bool = False, + close_after: bool = False, +): + import matplotlib.pyplot as plt + # seaborn optional + try: + import seaborn as sns # type: ignore + sns.set_theme(style="whitegrid") + except Exception: + pass + + quant_paths = { + "baseline": Path(quant_baseline), + "optimized": Path(quant_optimized), + } + judge_paths = { + "baseline": Path(judge_baseline), + "optimized": Path(judge_optimized), + } + summaries = summarize_groups(quant_paths=quant_paths, judge_paths=judge_paths) + + # Build figure with subplots + fig, axes = plt.subplots(2, 3, figsize=(15, 8)) + labels = ["baseline", "optimized"] + + # Helper to fetch values in label order + def vals(key: str) -> List[float]: + out: List[float] = [] + for l in labels: + v = getattr(summaries[l], key) + out.append(v if v is not None else 0.0) + return out + + # 1) Avg exec time + ax = axes[0, 0] + ax.bar(labels, vals("avg_time_s"), color=["#cbd5e1", "#60a5fa"]) # slate-200, blue-400 + ax.set_title("Average Execution Time (s)") + + # 2) Avg peak memory + ax = axes[0, 1] + ax.bar(labels, vals("avg_peak_kb"), color=["#cbd5e1", "#60a5fa"]) + ax.set_title("Average Peak Memory (KB)") + + # 3) Success & Violation stacked bars + ax = axes[0, 2] + succ = [summaries[l].n_success for l in labels] + viol = [summaries[l].n_violations for l in labels] + total = [summaries[l].n_total for l in labels] + fail = [total[i] - succ[i] - viol[i] for i in range(len(labels))] + ax.bar(labels, succ, label="Success", color="#22c55e") + ax.bar(labels, viol, bottom=succ, label="Violation", color="#f59e0b") + ax.bar(labels, fail, bottom=[succ[i] + viol[i] for i in range(len(labels))], label="Fail", color="#ef4444") + ax.set_title("Outcome Breakdown") + ax.legend() + + # 4) Exact rate + ax = axes[1, 0] + ax.bar(labels, [summaries[l].exact_rate * 100 for l in labels], color=["#cbd5e1", "#60a5fa"]) + ax.set_title("Exact Match Rate (%)") + + # 5) Sorted correct rate + ax = axes[1, 1] + ax.bar(labels, [summaries[l].sorted_rate * 100 for l in labels], color=["#cbd5e1", "#60a5fa"]) + ax.set_title("Sorted Correctly Rate (%)") + + # 6) LLM scores (adherence vs code quality) + ax = axes[1, 2] + x = range(len(labels)) + width = 0.35 + adher = vals("avg_adherence") + codeq = vals("avg_code_quality") + ax.bar([i - width / 2 for i in x], adher, width=width, label="Adherence", color="#0ea5e9") + ax.bar([i + width / 2 for i in x], codeq, width=width, label="Code Quality", color="#8b5cf6") + ax.set_xticks(list(x)) + ax.set_xticklabels(labels) + ax.set_title("LLM-as-Judge Scores") + ax.legend() + + fig.tight_layout() + + # Optional in-function display for notebook convenience + if auto_display: + try: + from IPython.display import display # type: ignore + display(fig) + except Exception: + pass + if close_after: + try: + plt.close(fig) + except Exception: + pass + + return fig, summaries + + +def print_text_summaries(summaries: Dict[str, GroupSummary]): + for k in ("baseline", "optimized"): + s = summaries.get(k) + if not s: + continue + print(f"\n=== {k.upper()} ===") + print(f"Total: {s.n_total}, Success: {s.n_success}, Violations: {s.n_violations}") + if s.avg_time_s is not None: + print(f"Avg Time: {s.avg_time_s:.3f}s") + if s.avg_peak_kb is not None: + print(f"Avg Peak Memory: {s.avg_peak_kb:.1f} KB") + print(f"Exact Rate: {s.exact_rate*100:.1f}% | Sorted Rate: {s.sorted_rate*100:.1f}%") + if s.avg_adherence is not None or s.avg_code_quality is not None: + print( + f"LLM Scores — Adherence: {s.avg_adherence or 'NA'}, Code Quality: {s.avg_code_quality or 'NA'}" + ) + + +if __name__ == "__main__": + import argparse + import matplotlib.pyplot as plt + + ap = argparse.ArgumentParser(description="Summarize and visualize results.") + ap.add_argument("--quant_baseline", default=str(Path("results_topk_baseline") / "run_results_topk_baseline.csv")) + ap.add_argument("--quant_opt", default=str(Path("results_topk_optimized") / "run_results_topk_optimized.csv")) + ap.add_argument("--judge_baseline", default=str(Path("results_llm_as_judge_baseline") / "judgement_summary.csv")) + ap.add_argument("--judge_opt", default=str(Path("results_llm_as_judge_optimized") / "judgement_summary.csv")) + + args = ap.parse_args() + + fig, summaries = render_charts( + quant_baseline=Path(args.quant_baseline), + quant_optimized=Path(args.quant_opt), + judge_baseline=Path(args.judge_baseline), + judge_optimized=Path(args.judge_opt), + ) + print_text_summaries(summaries) + plt.show() + + +def build_markdown_summary( + *, + quant_baseline: Path = Path("results_topk_baseline") / "run_results_topk_baseline.csv", + quant_optimized: Path = Path("results_topk_optimized") / "run_results_topk_optimized.csv", + judge_baseline: Path = Path("results_llm_as_judge_baseline") / "judgement_summary.csv", + judge_optimized: Path = Path("results_llm_as_judge_optimized") / "judgement_summary.csv", +) -> str: + """Return a Markdown table comparing baseline vs optimized metrics with deltas. + + This is a pure function that reads the CSVs and produces Markdown suitable for Jupyter display. + """ + summaries = summarize_groups( + quant_paths={ + "baseline": Path(quant_baseline), + "optimized": Path(quant_optimized), + }, + judge_paths={ + "baseline": Path(judge_baseline), + "optimized": Path(judge_optimized), + }, + ) + + base = summaries["baseline"] + opt = summaries["optimized"] + + def _fmt(x: Optional[float], n: int = 3) -> str: + return (f"{x:.{n}f}" if x is not None else "NA") + + def _sign(x: float) -> str: + return "+" if x > 0 else "" + + rows: List[str] = [] + + def _add_row(label: str, b: Optional[float], o: Optional[float], places: int) -> None: + delta_str = "NA" + if b is not None and o is not None: + delta = o - b + delta_str = f"{_sign(delta)}{_fmt(delta, places)}" + rows.append( + f"| {label:<27} | {_fmt(b, places):>8} | {_fmt(o, places):>9} | {delta_str:>13} |" + ) + + header = ( + "| Metric | Baseline | Optimized | Δ (Opt − Base) |\n" + "|----------------------------|---------:|----------:|---------------:|" + ) + + _add_row("Avg Time (s)", base.avg_time_s, opt.avg_time_s, 3) + _add_row("Peak Memory (KB)", base.avg_peak_kb, opt.avg_peak_kb, 1) + _add_row("Exact (%)", (base.exact_rate * 100.0), (opt.exact_rate * 100.0), 1) + _add_row("Sorted (%)", (base.sorted_rate * 100.0), (opt.sorted_rate * 100.0), 1) + _add_row("LLM Adherence (1–5)", base.avg_adherence, opt.avg_adherence, 2) + _add_row("Code Quality (1–5)", base.avg_code_quality, opt.avg_code_quality, 2) + + body = "\n".join(rows) + md = f"### Prompt Optimization Results - Coding Tasks\n\n{header}\n{body}" + return md diff --git a/examples/gpt-5/prompt-optimization-cookbook/scripts/topk_eval.py b/examples/gpt-5/prompt-optimization-cookbook/scripts/topk_eval.py new file mode 100644 index 0000000000..0ab24c4617 --- /dev/null +++ b/examples/gpt-5/prompt-optimization-cookbook/scripts/topk_eval.py @@ -0,0 +1,311 @@ +import os +import io +import re +import csv +import json +import ast +import time +import tracemalloc +import runpy +from pathlib import Path +from contextlib import redirect_stdout +from collections import Counter +from typing import Optional + +TOKEN_RE = re.compile(r"[a-z0-9]+") + +# Disallowed usage (static scan) +DISALLOWED_IMPORTS = { + "sqlite3": "external_storage", + "tempfile": "external_storage", + "shelve": "external_storage", + "requests": "network", + "urllib": "network", + "http": "network", + "socket": "network", +} +DISALLOWED_PATTERNS = [ + ("file_io", re.compile(r"(? dict: + # === Build deterministic, more intense dataset with many ties near Top-K === + import random + + random.seed(1337) + vocab_top = [f"w{i:04d}" for i in range(1, 401)] + vocab_tail = [f"w{i:04d}" for i in range(401, 5001)] + + counts_plan = {} + + # Head: decreasing counts + for i, tok in enumerate(vocab_top[:150], start=1): + c = max(1200, int(5000 / (i ** 0.5))) + counts_plan[tok] = c + + # Plateau: create many equal-count tokens to stress tie-breaking near K + plateau_tokens = vocab_top[150:350] # 200 tokens + for tok in plateau_tokens: + counts_plan[tok] = 1000 + + # Remainder of top block + for tok in vocab_top[350:400]: + counts_plan[tok] = 900 + + # Materialize text via generator to avoid a huge list + residual = max(0, scale_tokens - sum(counts_plan.values())) + tail_vocab = vocab_tail + + def iter_tokens(): + for tok, c in counts_plan.items(): + for _ in range(c): + yield tok + for i in range(residual): + yield tail_vocab[i % len(tail_vocab)] + + test_text = " ".join(iter_tokens()) + + # === Ground truth (from construction plan) === + counts = Counter() + counts.update(counts_plan) + for i in range(residual): + counts[tail_vocab[i % len(tail_vocab)]] += 1 + + def topk_from_counts(cnt: Counter, k: int): + items = list(cnt.items()) + items.sort(key=lambda x: (-x[1], x[0])) + return items[:k] + + ground_truth = topk_from_counts(counts, k) + + # === Helpers === + def coerce_topk(obj): + if isinstance(obj, list): + out = [] + for it in obj: + if isinstance(it, (list, tuple)) and len(it) == 2 and isinstance(it[0], str) and isinstance(it[1], (int, float)): + out.append((it[0], int(it[1]))) + else: + return None + return out + return None + + def parse_topk_from_stdout(stdout_str): + lines = [ln.strip() for ln in stdout_str.strip().splitlines() if ln.strip()] + for candidate in reversed(lines): + try: + val = ast.literal_eval(candidate) + coerced = coerce_topk(val) + if coerced is not None: + return coerced + except Exception: + pass + return None + + def is_sorted_topk(pairs): + return all((pairs[i][1] > pairs[i+1][1]) or (pairs[i][1] == pairs[i+1][1] and pairs[i][0] <= pairs[i+1][0]) for i in range(len(pairs)-1)) + + def precision_at_k(pred, truth): + pred_tokens = {t for t, _ in (pred[:k] if isinstance(pred, list) else [])} + truth_tokens = {t for t, _ in truth[:k]} + if not pred_tokens: + return 0.0 + return len(pred_tokens & truth_tokens) / min(len(pred_tokens), k) + + def scan_constraints(src: str) -> Optional[str]: + # Imports + for name, tag in DISALLOWED_IMPORTS.items(): + # simple import detection + if re.search(rf"\bimport\s+{re.escape(name)}\b|\bfrom\s+{re.escape(name)}\b", src): + return f"Constraint violation: disallowed import '{name}' ({tag})" + # Patterns + for tag, rx in DISALLOWED_PATTERNS: + if rx.search(src): + return f"Constraint violation: disallowed pattern '{tag}'" + return None + + # === Warm-up (optional) === + py_files = sorted([f for f in os.listdir(folder_path) if f.endswith(".py")]) + if py_files: + warmup_path = os.path.join(folder_path, py_files[0]) + try: + _ = runpy.run_path(warmup_path, run_name="__main__", init_globals={"text": test_text, "k": k}) + tracemalloc.start() + _ = tracemalloc.get_traced_memory() + tracemalloc.stop() + except Exception: + pass + + # === Evaluation === + rows = [] + compile_success_count = 0 + total_time = 0.0 + total_mem = 0 + exact_count = 0 + sorted_ok_count = 0 + violation_count = 0 + + for file_name in py_files: + file_path = os.path.join(folder_path, file_name) + + # Static constraint scan + violation = None + try: + src_text = Path(file_path).read_text(encoding="utf-8", errors="ignore") + violation = scan_constraints(src_text) + except Exception: + pass + + if violation: + violation_count += 1 + rows.append([file_name, False, "", "", "", ground_truth[:5], violation, "", "", violation]) + continue + + f = io.StringIO() + tracemalloc.start() + start = time.perf_counter() + peak_mem = None + result = None + + try: + with redirect_stdout(f): + namespace = runpy.run_path(file_path, run_name="__main__", init_globals={"text": test_text, "k": k}) + elapsed = time.perf_counter() - start + _, peak_mem = tracemalloc.get_traced_memory() + tracemalloc.stop() + compile_success_count += 1 + + stdout_str = f.getvalue() + # prefer namespace variable + if "top_k" in namespace: + result = coerce_topk(namespace["top_k"]) + if result is None: + result = parse_topk_from_stdout(stdout_str) + + total_time += elapsed + total_mem += (peak_mem or 0) + + is_exact = (result == ground_truth) + if is_exact: + exact_count += 1 + + is_sorted_ok = bool(result) and is_sorted_topk(result) + if is_sorted_ok: + sorted_ok_count += 1 + + p_at_k = precision_at_k(result or [], ground_truth) + + rows.append([ + file_name, + True, + elapsed, + peak_mem, + (result[:5] if isinstance(result, list) else ""), + (ground_truth[:5]), + is_exact, + is_sorted_ok, + f"{p_at_k:.3f}", + "", + ]) + + except Exception as e: + try: + tracemalloc.stop() + except Exception: + pass + rows.append([file_name, False, "", "", "", ground_truth[:5], f"Runtime/Import Error: {e}", "", "", ""]) + + # === Write CSV (allow caller to pass a directory or explicit file) === + base_dir = Path(folder_path) + base_dir.mkdir(parents=True, exist_ok=True) + name = base_dir.name.lower() + if "baseline" in name: + default_name = "run_results_topk_baseline.csv" + elif "optimized" in name: + default_name = "run_results_topk_optimized.csv" + else: + default_name = "run_results_topk.csv" + + # If csv_path is provided: + # - If it's absolute, use it as-is + # - If it's relative, resolve it under folder_path (base_dir) so results live with the evaluated runs + # - If it's a directory, place the default file name inside it + if csv_path: + csv_path_obj = Path(csv_path) + if not csv_path_obj.is_absolute(): + csv_path_obj = (base_dir / csv_path_obj) + if csv_path_obj.suffix.lower() != ".csv": + csv_path_obj = csv_path_obj / default_name + csv_path_obj.parent.mkdir(parents=True, exist_ok=True) + else: + csv_path_obj = base_dir / default_name + + with open(csv_path_obj, "w", newline="") as fp: + writer = csv.writer(fp) + writer.writerow([ + "File Name", + "Compiled", + "Execution Time (s)", + "Peak Memory (bytes)", + "Reported Top-K (first 5)", + "Ground Truth (first 5)", + "Exact Match", + "Sorted Correctly", + "Precision@K", + "Violation", + ]) + writer.writerows(rows) + + # === Summary files (inside same folder) === + total_runs = len(py_files) + avg_time = (total_time / compile_success_count) if compile_success_count else None + avg_peak_kb = (total_mem / compile_success_count / 1024) if compile_success_count else None + summary = { + "total_runs": total_runs, + "successes": compile_success_count, + "avg_exec_time_s": avg_time, + "avg_peak_mem_kb": avg_peak_kb, + "exact_matches": exact_count, + "sorted_correctly": sorted_ok_count, + "violations": violation_count, + "csv": str(csv_path_obj), + "folder": str(base_dir), + "k": k, + "scale_tokens": scale_tokens, + } + summary_json = csv_path_obj.with_name(csv_path_obj.stem + "_summary.json") + summary_txt = csv_path_obj.with_name(csv_path_obj.stem + "_summary.txt") + with open(summary_json, "w") as fp: + json.dump(summary, fp, indent=2) + with open(summary_txt, "w") as fp: + fp.write("===== SUMMARY =====\n") + fp.write(f"Total evaluated runs: {total_runs}\n") + fp.write(f"Compilation/Execution Success: {compile_success_count}/{total_runs} ({(compile_success_count/total_runs)*100:.2f}%)\n") + fp.write(f"Violations (static scan): {violation_count}\n") + if compile_success_count > 0: + fp.write(f"Average Execution Time (successful): {avg_time:.6f} s\n") + fp.write(f"Average Peak Memory (successful): {avg_peak_kb:.2f} KB\n") + fp.write(f"Exact matches: {exact_count}/{compile_success_count}\n") + fp.write(f"Sorted correctly: {sorted_ok_count}/{compile_success_count}\n") + fp.write(f"CSV written to: {csv_path_obj}\n") + + print("===== SUMMARY =====") + print(f"Total evaluated runs: {total_runs}") + print(f"Compilation/Execution Success: {compile_success_count}/{total_runs} ({(compile_success_count/total_runs)*100:.2f}%)") + print(f"Violations (static scan): {violation_count}") + if compile_success_count > 0: + print(f"Average Execution Time (successful): {avg_time:.6f} s") + print(f"Average Peak Memory (successful): {avg_peak_kb:.2f} KB") + print(f"Exact matches: {exact_count}/{compile_success_count}") + print(f"Sorted correctly: {sorted_ok_count}/{compile_success_count}") + print(f"\nCSV written to: {csv_path_obj}") + print(f"Summary JSON written to: {summary_json}") + print(f"Summary TXT written to: {summary_txt}") + + return summary diff --git a/images/image_optimize_1.png b/images/image_optimize_1.png new file mode 100644 index 0000000000000000000000000000000000000000..3bd7e46b0e710ff334b2201ad9ca643bfe1aa1ef GIT binary patch literal 579366 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%0DSFeozFFB8A~=R8M}eU+W9sdDlyZg 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%0D~>kjQX_vY7Bm@=&l_D>r`wuJk9B_dZW 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

    %MmB^ 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 tQJ>>XO~XqVpaP{s+?X_U`}y literal 0 HcmV?d00001 diff --git a/images/image_optimize_3.png b/images/image_optimize_3.png new file mode 100644 index 0000000000000000000000000000000000000000..c504872864404cc4fc636157f7aa99c585c8bd82 GIT binary patch literal 235623 zcmeFZby!qg8$L=SAs|Remna=7(xD(oO4k4iNJ&TyHNc39(%mUY3@spCqEf;j-AKa_ zBQeClz}fSD@B52$e)67w&vibp%gX__ti9KM*0b*CzVBzf*U@@(mGlNF4i3&$HPwf@ zI5<~~ac~H;t`Gs=v6#mX!oeZeaCq=QNA1A_b{%)u=MFDyad1@MCmInO>-ErOndx#6 zTzRPQcwLh!mRjNQ6~W*G&UcSh@m^C~E9q3_g_D+p9#(!RVGm=Ws(NZf_ie|Nj*O3g z^I1oEGYPKeq*1HHyaf3C6rLJ1APHWblg1gGKGAicfRQMab8FMlY{73NC;Z^_!o$nK zrFJ9!9so7(eIG_jTuELNB#d;ydpK#~q2q|DzG$Np%vBY_!Fm7czUD3ZWu*WroMtul z#1&kH1f{tE$1MH#Mh{B4LMW8XKYnH8o5}y`z!&flepBcz*)9!EHzJ@_03RpPrMr5M zkWnX;B9BmuI@cJlitVdhLqq%!1HqAI?mRwW9m zzK@b;8y9v`=ir|HC*(h#UM=w}5a3o}6#p?Dzt!{faVfuwOS3ntlR@YNEi$d10YhyR8B-s}6IIGSs7u6ij#6uMLGXSueEG8W8V z{iuxIFGH&^_jqmMt%+7!QiYb>(I;yGCfSsaF|J`-K2eX^h6k?iqEVtM|&p)&UNvxF*R1pykhR~Q4du|uQ4t%CVLyYc{b@2!Ug zDfB<1D^_j4zbSHmBYW-l=~-x%)hs6oZ=k{>ZZ>*3s&Jj_R7GJdyy4utReY@D@vA3Y zMc)^_hcb!+{bwu_XiAs+*`wmux+o(0;UVFAAEW8j_CGA@2QIFdoDJSels~qhqNr!b zsSL&&yCcGAgZt9S2twbiha$k0i-D4}<56IKw7>h>%1YAw{T1GC-iMs*Y|Lx(jbvxnue8ALQ3G`9Icwgrweaxt`n>RtuQv9@VL8|D(4^;HYlasW2DXu$K@WGP?c^k_s z)0MeN6P#N(-W1aBLG5Xke(hhPtgjlAdF#I?HkyfVrIipd)5w;e)UjJnJ2|&WOihp; zz3(Ljd4gJbU$Ampf(!h~vr!`>HnnT9UHI+0Z}C@{A5~^#W`J;Y0)zA`>Lh+b=4oF~ z?q#N5NaM_P`TP4v2dpVY<5$92TB#|5)?Q5f9{xboe$t8eM!@phLN6I^tK_=d(FVS? z6~zlHnSu7JKDhE!SCkaF-{GrSaURIglzT9ykUoFqn{y>0c*W}KE#mZcLmfiz5KIp1 z9ccV7fqH`SV5VO}=CUlm2-k^_?REr;s#mT)WkySYv2mgt|DHn8#j@fl5Q;d z!&kRrQo9542~6H6aGAw8+OWAZNWM2$n2M3^evnV&8yTP^s?Rd27^%bW$=$0WY0q#Y zR7*j8@U}f}BMvAmDK~LlsD?uJy@ir%&h|Q44KaSojqhJIM2RCJUskCKFsgUiOuQ&% z;Qz)~Wm-+oob_*14grUE7>v6JQ!M`W}TJfQ^2+jUpu|T=&a>fKz z5#gSoks*=!a$kw)DPQh8oyQYe_aENJKhh;$V2M?=p)PyB<0gFbTJ<~eck1t$-ub`d zedqkO>nkhu`+V(ByuR_AY5}^e#qVmOYQjA;JQGJ0(F%rK=`oo-ipw^iUYn~5@gTX` zxGZ_(xq=Gpbp>u`C8&nQh-H3?_!K#$+MuzK6Hwszq^x*uVsk-cgmPe4h zf`aD-tGRS#Hx1KE3=2LRZ8uLnsEtNUA-oahsOw&D(7GrV1n&s4s4e%Wz2O~sQ!&Bl z&k2T_(#rk{r#T&iZX>@OuH0R<*S8;WFdy|%D;yNuU`9Xm!)-|j3=T}4`>6J_W@y=Q z@2;Jbp*`zZ^T)}&Z-X~J(iSI{)IM}793w1So8orn-&SzWJ;d8Cn<}hf6Bl_a8PZ23 zvMT;rbU;MP^PSX~luV{TCUxelRGHLl<5Z(iBT3`1C%Zws^%Q#c{S|RTc|JZaM_yICrPF-F{-Yn=%V9PlKf2MtaeaZ^f zp%Nla1nTs9>wlG=T$r^r=-BmbQEukbhz0V_vbTb7WmUebbg1a&d8rgeG)AO;5BzTO zy(BW45u7HX5uow)W{GB0`dP=2?Mq|HQn4`y!@A;Jhj+zaJi{GIHtfWms(q@Js%4)a z^%t+c*!SEYUF~0;rMpRIE%@AY#Q5yFT9u92bJOx#8M~9Y-YLGHj=2UcqaIGOPFY@1 zuSk?EQ(9z2|Mm38>6@P)ntgWuyiGLC?_HEx0xAH#nYHyFnd`TB(bm!GOz`w|*Oi`k zz1QlPM_BGtoKW1QpkzsnT8MfRg^Ch>WE!Et+VE_-A$C5)Jkvenv*awxM_E2k{e`0M zPbxCEGYAK02gV-_s}M(Ki8nqy;HUSekL^=Qo-QXJuPP@4rGwfU8=87%9A~9w1!weT z$D8J#ZC2(@s86iPUSU0F^^i%Ek@IWxUG?2LI_vA};GcFX9N!lmvwmp(InsB_dA0v& zZgF;}b59L5xi!4wgy=geJAf?P?eHE1%y%|-C%0NjJG40T z+uOuYS<*VPR2sDxcNzl=E$ABN&U5`A zKT~ag?QaE7!NXA8)O!5^RzT-!xCL7ZJ5v{Hb=JcBV$GOH%y4SX!^`H`htx zS=JqkDRhksu2H4oZ>4o!bHT0azTt*pSs(oiD>Q<#7BZ{&^2CQFs_#^*|Da6{x3qm@ zR9b`zQ|GSSo;H{O)zQ%Cs z{&TsEZ>hDm_r#=~z4w{-CCOGje_YKnyBjSf>_1oWM(Yhf+5CWZ#(aIdea8%8bP(xz zae-={s-dS-?)VqY@ZZXd%4Ok?ge~fh&8jMopS{;pbLdItdBsB?#ESBmgtw>HVFk)#)4vYS`Og)J@uL)G_`^}Cr(y568kmdd8wv0U#y z*43=I7ORS9NVZemquCj@&uu3-rwZGOeIc8aq7<~_9A3kljho_|(@b$UrYJ&LU0e6*lp%lG+a2>*)Vsq@128rXfO87+8G2M4dsan10zR`|9ZKo>%K z=beM*hj+#T51zJnCOxW(-jSn|3EX{nzO3H$s<5W;BU~fPKpq@8H^MmLyAr({+S~^@I)UsGV<-*S zCfVSS$7csy`y;~n!nT&qZTAAnPQ5E6>gtSolXp)82}N>brtRaN{uio>66~ zkYYQeedtxN{ot4U(^1Ax74^6}WEUHGO~2;*1#u2t@Y_id!+JRHKHyTV;ST=HBi?K` zDM!u}3q16>HzBj(Wa@I`SVGzBCZ+?KE2sl&49?wd!|^l<5gn5aLIdT6maVbcb4^Vg zKH&2e90J@MIE26_T;Q)9F4O<`tb%(B2mi0{vCeGe?WAiTd_4`1Icg$7eme`)11n^2w(BNH*czWqzr3BJCbp%wa5 zJoC`gZ;Lrvt1#2hzx1=?H$wu!1U^$6J@(R9Psyn8NMd4eIJP*L80YHd3gNEvL2YX% zD=68u9*^v%K;)*y@!IJ*q?M+;5djla=28g8!NnuELdE{)59?2?o<*Czxa5le@uMOF z0)gf$m;XBK#ZWomLNv~&)PEhEo!x4I<$wJCKYuvjV7K~79Mk{rW8>nIA^&|?g&ay; z+;F+z7dQVrG5_4n6=NUbOK0#u7ecOFF+RYx5&yUOW>-*X|04bG!&0q3P-y=^$(~Mf z+1vZi*m!hv|2}N60vjG49Rz1mC2hB|Bs@oA~n|x1_f!A57XNgL+F%s(ZI4tNSt}J$kjIx9_jlu?-4h(Lz&)iNcbr{~p^g#?dg!Imb?J}+ru z40RGxubKKTcr5}?RuI+CzJ*cPJ)T(n6+$T#$`Kqus1|=~9c_ntw9{XnP zy#8~9H`tI+vMZ&Y%4p|1rCG*WdTx*N}$YsW2vS_I7ND`x^vx0Pr+kKJfK z-(Pr5)BB2$toLAJICS@i*4;7SC0Sz#%(MSIhLt`6b?HRq(+4QVM6$;2dg>G@FUKA` z83IA-()yjo&EBgLGnEF~C!#~b_OP4`-__KW(&_=~8U}~0CsJ*}-)<>3k^ebf+9yc3 zjjIAN=&H?N{%9ts!*GFtVz_rpZn{fju{i`aYCGHLwe3gdJdR`(f1Xecmut%KLlirY zgIRX4ujpr|@Sjr-^d)zt@BS*Eaja`(yBmo{+MQx<`&gv61HVzZfRXu2Ws^@fYE7QL zGboSqvy+wP{Q>@JJ2)%&=yUB%Oz^j{z5H3;Ki;|(KaEc9Gk*VH)^1JPy8X`P_3IUx&@D1LfpwR7FF_%Zs&A)-{+EOj0g*t=hJpr(nAJUEa-AHOxoZB3 zX5IQ{!Emp9u=WHGT-iw;NFj&*&;2f0PlMs@n-y&qx-CjvA~*1S$M*(mpPe4owSiok zcfT8MO&QJ?$|TFMm9+o~b86FfL-3E!7OWtQw>ehE&m`fpWlNcUg}hB+uA$k#Y@~HJ z(lwz8+1ixYm@k}3uotkGQFC~Ws?t8&?qlI457=@gKdik#Gu>~p^Clh_Zw$D?fX^gf z>`TkhoV2^d=8w*sF>Cp8-zr~59ls|KP|27eyd(*#m|9`bC_bZzJD>KCZpS>P^QG_l z1oB-;1irO`&+xTYuZI(^=>!30Y%EB{Pxa5)1(>n7SD7Bm-GCZWG4vh1#JPC0BhN z%WebfCk?J#amiHsU7Pr18(ysFw_8Dnk+6 ztg}cyc=zX73RXbkeg!;2vqmPed=T7I24CN8Xp!sLTKtz>mrQdV@ z+88kFHIB{MkrOAGJ_m$*GW+K9sB&=R`8QCN5%6Lyd|zv=|5 z`ztA&`HD}We}0@C7J_>&GZTBW%#QURPKZ3pg&`a2{Uri*sqLyQ)nxQS0>E=PieH`G zj#kKW%BmPM#p5%s8QULZx+Gu85vVv;Hb(bR*n4=O-s4lsROaI;w-OJfJ-C6o!-X%~ zrBH4+A4}6Moz6$sIqTAfIb4wYxL+HikcFI{JN!(Ch%GO=9OKwCVPiE}V$LVe8J!+w z5wQCWpTcOl{aU#d{)G1~sC$(!-lApe?ie5HFNjUO!>0|rmkIAG*+ zqGjoYEoQn{^QwJ!W*S!Nf==tymFW7N54R>)j+de<3}=HbFe}sZ=iZaRX1gzxbjlI4 z7O>N>c4!T+nqLug^;PF$h`k8nz9l*sqwG=73HDrk&l`n_yo&;$8%ZbUB`IN(bXoY9 znU`OT)L9JDPcqKLrQH5!Y5MPn9>E`cr|kvieb+Kq(&x{fTMznwc}-#)Eqi#YX{XW2 zq%9C~7xOh-xYc;^T>Iicd(<*NXqk)cwqAh-W8_X`lhg8Sq-{p%)L1!antC`Szp;l{ z?l)A$Hj3WDC%4qJ7UmbU$I4?9dn&tC+1XntkJ;F(t$>s@pY8QMXu*^rjx}iF)>?+O zq-)P0yc$25V;JnaKb%a=yuf2B({JH~P*=WtrSj)jGPs9VX58|DLg!8>Um8bsYoRkL zFjd8-Nbmi~8UlF~$DF8&DqvbugiXn#R_EJw^A=YRu<_qXO}*}F z*)<&K8yd=$6W7aSJ?lN^yXL;|hCb;%4Q~>5y{HSf)XaE|gACr~?@VLyA~y8n_~;o0 zE`Eo~o41~=2#=>jj`Y~!O)PkH4VfKp1schW$ZOEb@{*x7(_cAQwyplW?s4(*xCb3a z`E^ql)h*Gw*|=e?K8XE;+Icr;_?@f8=1)TTDdf+7@9jnhHLKTij!W-#bM@KDpH9Yg z9Mn8w_00zs3(M%IAR-|VbL8*dM1JDH-KTP#qx{t6s!e;n{OWukMv(fDVtvbF^mv=a zSgDC#*%T0MeHQ-P2Cj#*+E7EEIn0)0t=X$Rdpyy}oPG^CsKz&?8!YL(irl znE!HSsvN`*MG-mX$ti9(P^$FMcRmYpIGL0lRz#ZxuA?kXPQ;Yi{M1?qn<)=g7N(rN zdC9YmU0XjJ-?g5s9#{y|NEb~>+8rRh2O?UN1VoT3mvuu1l`4+@P#g&u!VUAtaa^2s@@!C2b`Q2B?aq5pQ+l0=y$80 zM$R8c#wi{Lopl8XFjl&D2?PFjkSMfx^lG1WP})9(_k zPpAb_MV>01%wL=afz8VD3avvuFm5fKUdrzlwx$)}i6Tm~tMKgkBHbqyPUlgWy_LQa z0}>HW7k^|67`3&ZwZb?mxDWvV$X2w?jkrck*TpegUsV^Y8Rl$Q9y82${fVp7d6tZ? z`^njwyd~kiy})yn<%QS&s{7Y#j}j~|P?ks?1FrFtZ^D63FyPcm9sU|1szP3_^V|G% zSqNiD;j|HPePw+K*iZpk)t{q-?n`Bb(ReXE9(~U|ZI1eI(u_I@-IvaN^O|}{?0AOR zczs)nMDOe;8|H~x(LxZW;$rmUqOub0#nHw2JP@)O9zgbA;kP__oUIq0k5C@S#!&^b zN&2Dr+X8#958mUb5+uw0>yh0c}>t$3csTjH1OD4-AuDcn!$)eS5TRIIh zD7gXhIh~%jp#HR8yy7c&F!*4!(8HKrZ{+M8c@ZcHe9g2FCZ!Sk8{RaBD&O;OJMter zHO-bEjvWDtz>&7}Hje@QPE{wln{CmOt0{XwqXTQMl~2?-=-vI+ldl%vyW7QPdH##? zJSYE)`hTX&Yu%wS#+%&es{&zoM=MFxC8P?20dxVqd9kqW=|S~Dl3g^#W9=9naKef> z@!Ra&hs#@D<+RJzzpC2(tjKv|=;KPoIilh*Q4tu(Z7^zOK75-Tzn>qJSJIryiwn3< zrrR*nV$M@F?#r={y#0Hm2x1@87iPFWR%77AX#QG!B#(Y#AiD&=ID_{AfpL)sGmM3z zfSuIeKsgdytHFW?%`rKxszhTFFD7&_*!_5O)Ot_W9O=d<9pR;(7^)wnx)P(Yxm&Ca zft3Q-n6z_QI$Oi}r&$pvO-iRZD-ZG%-N7~&ISU?<(%G{{_{gVaC zAmdr@bLk$r)WDm_4(-6bco#{;Z)K%>zVw?(j~Us}gQ2j^IUuPStRx=XMcTchU(51$ zF_`4RjgUXBmUn8FNA2ceW=Y}xw~l5&JmIVRwo@rv!xWl?;od%v(U%kn3RVmR*!}Ik zdQgec9g6km9QflwC&@u3R~78s(Bj!A8otxhbB0&zku}3wD-q%YMKH=2P1~PG6;6%X z(4%`_$b>yT3WCfMp-Aj)k9u-S&S&}Wm|XP^I__jE_g4M2*ffuEsm*Zfb^v%dLA$B< z`l{>YvjO}4qX=M|YGsBT{G8n$^4_F=&bXO0*jv|z*`^p(c@ED44M=U4#@&_?L#Y=a zkIUxKWvnG;+&Ho9T2mjBEll4yP-m#B|60KA>?T#ulu`a2uLwuM=W04UxY0HG+&wsu zwIl?6u~n=$vgPQW618syHKN-qS-?d1da|Ri^iKVY8^dG3 z6c*uR@|%pTITgAoqXn#<$V<*&g8T@+HzR*~Rw$iv+&Y!yY(L=p^q0ANHWH7rZ5wtJS zbUY8RM=KuLr{=WZyFIpNbTOQ?H-|n?K2L`|Q*P1TPhj)<80Kfzy2;09(h9)RJ%d_( z)l`7%sLep|%^J|2tOy607<6}Qkzniz9HF`6XT|X4^gkB}05h3H*X>E+wPKd>0_7$m$bJn2sg;eHrf%#;6t|+DR2moz=m>V0ICkd;0Y!E{5;(W#O{3Ch`U>^*+pI5XT z@)gI#fj>~Rb92X&UIU0EgAh5mSa##6f%+cn3jhg^o>l@-dMv$ULlr?vuPu-9^hFdG z!ZufCyAL?~pS~xM9?}*4NHMv51W-rG6)>KZpGF4p4IXP_P0^D_K39k!7pLNJBW?+)b!=Q|IU_rAu=MAFZQ)hxJ_ncnEZ6tX{_}22^RlJ9hEoj zm}<#m4%~r;%>lHt%I-2uO#?}_39x?#n8eKSP zxi~*H>cj3Ap%<=qE+pK5H+$&YaNt^MmIaos13-b_{I3*$l@JlLEKkWjAQcy9B?d%t^Z8qfacJag5V71oGU}Zjov$~7Jc^LSU+`VZmGIB(uV!6_elvUDO zsKAqf>vz{OJhV_k1vivgDpi%krG5;_B&tRgKQJX(wsDLoUV=QP+G!3fh+bM*La8J{ zv#|ixced#tm&^f>W2^d-U+E#$nY-9ak(LfnmR)qvgr12|8<{tfbSAa}t|5_N4`4@J} z!lNTO6R>EmXZBmqUFqhE7D%=X^u6o#SXNfGpaUqNy&y0|Q+Z&V!XP~GuzGLGslsbw zE=+!}dAjN@@vWhY*X{^6L7MY{lkL6<(UKqG=#y7zy6I?tvOL0+SfoSno?4 zvW=gCjEcJTS+TgdM_-Ht_v7ev+L0^8-pKH~JFXSUYXg~PgkA`b(ao+!|I+LutDOeP z`>{*Xq5KGsn>J639`rOy**tM|t#!o>H}vO3Ke(hMEK{%ysh?#XS>+e^f$V;xr&LFU zr9A_xY#zOUk!`l~1vVHT4hp%7)W~!DMr)MNc;g{aZ_xI5U|E%V!LtdMrft}~{MiC! z2_Ic#WSeQXCuOlv>^)#t;v?TJ(PU`_SRdo_RoC+ZfK+8-8C!c)o(&zZ(dSFK=WJSQ zejyH&0Pa9uFqB6E8xc%Q5uFuwjU=JwF%uAJa5n+7tWhAxSa>}Jl6ooMwUOM+0nB66 z8+`^f^;^~eOp62|bTs&~J&k6$kVb1FnoGYd1!n+Q!=v{;|D(GyUroNPRPK(Fd>c@5 zs`HiSf8^5u>rH34eIZ%FLXne^LOBC$vFJEob!G=lr2?|0Z6OTZynX#siYHLgp1+)Z z`RA1ha0sRb>>=wSP2DUzrn`w4Y}3@X8r9BhhUS>I zj`i>axEHhX^xJG=mFK`((+@c*w*L)q+_LFrA3pXfffZjty@l3#TB27nT+_{nB1NZYX zfUqAeubl*LeU9gA{E-Al)By+bkzB(ZK+5T~M5AgEfQkgj2&Dy)Jzg|9-6LYY$o&Bx z^OpmXYx)Kj7C{&kA9D?$YoLFNoYCkG_iZ7kF|nt^7%kc5mDHW}Ej!RJ} zV19HzoYz3A^{}=g5nC3di$~1CWY*AGDo9vJlkOLBuaBu292c5n@N#*(AFchkks17L z#O_h&=61JEi>ySi%XU%!Ih#hn6o?czJNBQnxD|$fTzp8BGE5!D@Hp}P0Ih&~>rZ>e z-|~y^xM13RAy_g?-G}EWaf3w;{WIFo;I<#a=uo{)oIMLh(=Uh{0f6s$M~&IR=CX!Y z$_3}g-H+sSS+XA!r7m&_hRgwshq0OhSK?Jar{aJo+GMfp-<9b>`fuF*q@UM(w)IQM z!ov&Mcre#y+n028b?~Y5YN}n9g9ckXILE^_wwW@OdbyXsLI6u+CT|w>_AGu2FR4^z znd|XS)p?*qHIE*vgM|@!>D(NKdeZatoW^Y^QXi=H`L-RkAPsWg3(;dn!}P1V8>p>R zeF_1>_d=B9czLQgM`UcfekrO1_BFyw9_@j7&4IW#=%x%Y2PX<>Np0l&?WY83`&0+~ zOcF)Dp|~_eLlwTzGRm-Q9)1*t6pNNU;?pAkh6)En#*s()hnf0=EFJcQk=UHZ#u` zQs8&oDSy`KXaKvN0r18B>0O?ZAs1e@Zx_~8Uy%i&jDqem7vA{n!Tm69LrTm*^$Quv z;6dFtUN}0@$im@uGTMJj=cunKEBFyQ9b89oM2>3id>H`iwBbwiwg;*p_I|5Q+WsTs zZ2sXNHM;Fzu5tE!XP1UJ$akf`Nwa)j4NT;w#MS?#+y6ZsL=B{UJc@-O?@ zJwR$!m9vuoldUfIz@hkN<+z3a)#K|}9O9)BCBI!WOcZdY%0e~0KyH+u&FIOt>7XR# zZ)+NLs+V)Ru=@!bOH1M;scI{}HT^dyXfqh~U z*qeKbgf~NE`N)MEy^_(%6|+`Sn-m?BLs!trO_W&J@8Egs#*;x~Fr8G(+l4E_aD z+;G){wwB|?@D(IbQ^N4YYCCDPWu9oN$I)VO<%RYgQvWFZ_Gdt4x`HUFa4Ehmr~>sU zsef3o(X&5lst$15wOOHamxSH{N6ZFWfmWvJy%!UMU0Gah4U*SI2TAF?Xd}@6%l^`> z&VaOR{(K-q zGG{;HV8GYt(Wgv6YFb%McNHpL%#EakVwLUxXlTu;`O`ywvqM~eCLwY0TFCNWb)Zq3 z{_{PCc-FT>0M-UJ)vF3#C`fnV0}?T%3R-MH{xRNKc2J-skiH*nI0}hVLEqy~PPSfF zr<*FXC*t1JOdH{w{Yi<(La^r&<%tSIzhaEY2I^MKFqnyKS(4PKW(WUzrTwg3p4}zC z400u3DOe?kmQdw%Rt6A6Ok)+ZiEjOpq@a3{0H&{GuysqmjM|ce>XR^RL$?+-Tf`%c zpw01lAdoFqDFJkKhKhW%Z;+Lf6-mc3en7%(gsZ^+m%Z};p6t;aF%AqWPJC|zJ-dX= z8rqFpqXA+5mR-in?}q0DQ~QVeGka$>V|0Lsy}gzPzT}xORI1;C0qNtwTDysgK@!>= zVhwt-GUEXk>|*x#(LI|lPT8c8Wt5dZhQ^A<7ZC?Bf2Id=*zkr6wT0t(wRgI*yg5Y9 z@O+Qs2ssw#$I#HAr)|Q(QEn1m)=~8sP)^&bQrf!eZNWb z-IeEB3?11{C%W`M*?%M+(zMiV;DoC=v0-flzJ`8}FG0|hQ2lFIlZX6a4H-0-Y#HQ~ z*h`y zAbT|9-a$wo!5!j339L1)zswEsI<@oS!`6QeduZU5{7>yz(iDjNzSaKp)0eM7R}Qq< zkp^FAPh3JjTXnn=vm3~8$6|UO^`x2y$z8T=YXI&TkVZC(`5$h*^bIoW)YPm;z)C*9 zxGI5Qy~OME*#df%>7Kq~c$raqCS|h1E81-t!hTJOS$%BP^vPwmae?z?mK?$JA1O}; z3g(;>^a%(FcP`(-)|5OW|=4 z7}T)vmZ=x8OPH1iEq#0d#E1}3%s!XgEUm^mce?tVokx#2tf~y;10}To_#!9J1k^PX z^)IbazDto3pXG4CGp>Je4nPR&XYW##t_LiUnEvAs!eY8iiBnlss7dwnL>jI8xi*e; z9bt-`pVyz_(FvlhJj4GS%vQ^U_gv@9F@!~f{Db5oTDOl>utdP9#ciGpkNs?wl z%P$cq|Jf?-|6ka5{=PQiQ!rqf3Ta~g^OE{|{J}sV&1@h2I7s>PoB2CB7;J%c|AYuE z`RA$qd$=47)*XaQ-4OlP@kM%p@$<-c+%HK>|M`)^DGBguFJIt)4`-DC%)bib%*rJz z=s!P#9?}45vCXca>tDxjzeRS%I6|zx?-HE!H^SKF1y*n%TqF9D?C|&aPk=q+UpBJ8 zH=`+S0LEalQd$4Z2mbT8c>?TKqP@R_9{q7$|Fgl>WCMWgR90N}6593eYgJ4X+MgwK zfG#mH{XN`&1NFaw`rknPZ$|wm9sMb_{x_rke1uR>ewKo71n=lKW zE@So?RI~*U6=Y|gLb?>x^ttf}P|+0IKd`W-$X&w4VK?CR`s?=L!OGQVF0Mqku%)PR z?aQU_aX8-rn{F=v>Ut4&S-0V>Cc6v2J1K=vcbZ(S<;ngOqyG~XK|4rmK<$g`dC@{Z z(S>wxBQciQ{YtZv8_LS(+PtfR<*8EvYs(}cJT-1P5&kRmQLtjiqaps}!H<;oLX3O@ zbiw3dZTXfL)&2Jji~uctZV$a#QRiNViu|89@rPe(j}LuGQ(072Hy?QF4!}|ad2vYh z&`0%6&DlWLx#osufIG3>o~j+a!!^5e=Li2IL>ktb4M;G>JG|oz8tSNMW1Fc&Xa?7C zbu(a|8byUtJN8r+tB9o}ofjZ|cVuf1#NpDAe)phht8A0(lOw|I*+N#fiBeWntju4B{Y5= zAjBttyeB{2*s^SJx5fHonwXOmkBQj=DzUy07NU?kK)ZFHNIyl&IT?mpm$#jx9d*vJ z7RR1DJhHWbbE6zvmrMl!ENBve9KcCBjdh_=EdeKce5!GS3bWYe56x)zK}F)be10R- zdo7NmFn56A*Dskn82}sNFGb7jsrmwP2kf@tr>8(K#$Tc*R(`5A-=680S5FeS4VWB_ zLvcD1ZtL|ziCK-Ye$u$sJ9YQZj=SW`4ZqzQeT21X8I~G9kqu||I9>>qU>kbcZ~}NW zj%yXh<*A~>6<8Ntx8rTHDYL-BM>+AR+`l07%%0Wc$Hj}KeA~Nhl`%Hs}I#Fel z6C=AeEtK4a&8;0b5=7+D&zy0pWe|+bK9U}*cLt1vxo2X2DS%KMA(I>a<;j6I!SWm- z1J6mAxd&sCf;)wSPWl{!Wsed)Y!qbQR>5)30n_5BGdugZ7Mptu1G2J{V)W&PHad%s zoaEyjVg~m)^7TTV_Lo@C1e_0}H4S)bdP}u%lN~!N&K>0BAlhuY8ypKE0Yk|$U4_|! zjigh{m1Zst9~-01xsoP%`$)ci{Xp^TjwSCY`GIWDE(zbVU&E0(m)_WNnrP2yid`HE z@b;K3xt~DRGQml&ZQW-H^q-}|=o{uUN~HUmmq-pq7ShalyH=!%Rb#>T#eBnzI{a!%`hnFdxBM7k-cX;y z8Wf%TTDWh;Ik@cg$nBPwsM?tAh(k1Q@xX-_!fHzUM605oXdKN4T{xOy;8^O}8IEk0 zPBrDd=Rh+0l^0%Ln6$|oOg(*e6a(WTY0kfUItMwL#rn7y20gYn(#9^Y*{n(l8ihMW z3|kn#Z{8yo5Ti1$BbTxhkqw#W&2UrVGLPM692}^jBhkyhODVKgv9}q9pK6%jl!UuS zAfik7K{8l$!pR#P=?5Zer^!+6`{h%RSrkIj5UoG2y3T%-8lz0q=kK`TdZ?-Jfz=A$ zNWMJY@s9laIBswTFK(iSdTf${0^n}k6uYZTv^7jks;V5ZV>%GOnE}|^6aDdsQS1=# zDcB;}zrU(sUZ9YNA-+=4v^+hyAInLD3R~OExiC@Mrl9^j^zN$s1K;N;eU?;2K84J3 zvx(M~T;RZh&c@L$Ztfv-L2e|dz+R0uqGr_^aod2Jy{F}lCI7f;4kuE@bicX}*<5%u zd*q7Lo;&gxy*HV)76ay7NX(l0U}+$$W)M!0n3ip}o!(39OXN#@=W-gNrncD35lMF%kC$go%uPqVW z9fGe~DeTKJwpW}^G`F_(k$B%BCPOSyzb!6Qe*a`A&!bOTS3C2GcGVN4c!Hf_s2a9= z5A7L=l!@1`y$=8hrtyLA1gt|t(LQ(UUh_~B^@{GV!ChbUdiW##=gqJL;dgPz7iXhN zkRab=;9L^bH?jTc^F?1+Wlwl3hh_RT_Z#+wWcQ!*MAaPRQAFNB(#%Vh>JzJ`)tOxm z!xW@RBBpOE0V%QeyGPLlseH%;O2Ln)O?+D!T;|Izg+J`&^){ezQITknMkGZV?6UM* zBR-~>Z3w}xk`(IKpOM#;R4g&1TbA3@v5ijArw8U566H`{`UE+wSI;@^vGbZ%j73cV zk+i`#B$lYE9W|Myc(@ghX=?H==&`5hTuy=3%%QV_6|y{Fq6eOlQa15xMs>Mz)%wHT z{z+7wSZlW?eSF|e^J{Q)>d1H>n9oSS>~m?F%MyT)D)_XQWm3g>AaJl8U?EsCmpF<8 z-{Hv7P>)Npi@CUo@EFBTMJ{@sRaYz7HQH;mvo2}dMp-DvTi-Iqko-EJPIH?02mYF_zRQ1+O^gw97l&TU(CfrQ^V$0G< zd?Vn++B_azrt;aP;gOR`06hAK^3O4fhx#JxGh%{DEX?c8WhdY@#clE!I|Y9LR~l5Z z8;}ekHWbBpl(cDii2VCk&ugaKU*USaiJn7`4J!n)1a53k%zgHvk6CXHVyRhgZk2B% z-v6QdaUnrZt9ULJ3rEtjcyN!5`2A2%$AWehYOg>EiC!bBBVw$#2rGMC%W z$*%$CY3np2RQ-&MvsSe9}m!}ZyXTLVm#0oP!YL;;U|xp&OU zPC@DVrsSxeY`)`zb9Z_C-^I+o7sG`OL+@!*#?f}Z?B78r09LbBia5_Y?Xi!pD0V*& z%d{i7q#v2u$fyFM*wFn2(XJk0ZaLy-Kr2*W{3#U5EIxF4PukX31gVBj0k2@ibUadD zOT!8a&>Ma+XBDOEsd)L-{;zJ4SS-gM-8T@V?p4j5Tw;{LSS` z0QP$4ngED7*~{b!u^HmFOylfEf1+%QC2E(%(xx~5d3Dx+t?VD_h`%Re%7p2ia=|}m z0sNX@)v;fbUN1mW%KTQCY(AMk7Ymw)964{r-oAkdqhT!FDgG#?fJbv;L;4ozTz)d5 z$2BrvoDfTj*Y8|kJ{d3|P?)A@O4ROOA`)|(Z%Ef6N3Ov1=Ye*M_Au=GvjNOjHQcaG zJjSBVPqORK6H{8jqNkP%n$pQKDH!kp&^t_foBC8^G!Ahcz*>HJc*@&pI2sTQS+7T> z)TXM+33}SHwW6}B5RK2{$lpMo9CohfJY8;{t!)%jFE#&TH%_};(*KApxTch?%n1ed=r6E+cqq$lJ2yW-2VlukW{K)fU@hJm1f62r6aYJ3 zb|ThA>M7Cka3Hp0lnj_6Av*(WrQ?(Bbqf>E~j*;ZVY5#@-f^NFT+#1mAQ3#6p)HKeh6Puit%qgJm+7U-; z%FQ-#H$O4LE9MVhmYf6HiAF`St>JYVD9?K+(aBzj6&c#GUjV@31px;l>8U$bMRVuzq<1Jmb*DiYqzLxsB7!V>UUpQNcwrt-OUR*_w%iEd|r5%{I%`CRH!=+&*$OIQmuRBYgw_Fj4|_T zIs1y8Ui|}W{Rg~&14T#m3)M;fkm4&&6b|Oz^b0*Y0pr0U!@(2g6G%5lsQ#KN?VE$U zUCmhMCX5JZRu{r1+T;f`mEG5Au>FW6Y23@PB9E9iJI)FCf%IMHE%|xW2s?KeX&?*t zVf!~Hx$8v$KVvUX$D1jhQMNRENs>P9h-+{H8h6a=ySg0QxuG@9c|f)97P6BQLIHbq zeKN~V0%*?U>y879!R5zg0mxJG`vC>40+el4A;BNVeLa?4gD+*d?agYEBa@`uLV6=* z|Frm<9yQ)f{Ws$7XMn5JtVMdVQ1Zn~puZ$ZN@FOX+4f&RV7$UKp@7uVa|P)jvj+tDIgvPWGsMCONpP2C92j%5#qG3KV)wnqscm{r#1mD& z;7ZB~hU^!c#%L!^S6v0BPF4o6>A;ToIWn5LP}c=SHEk2>@1)<9d5PXAOxADl0qmYI zk%tfspj#s4=+lYGDoA!ELGLl&yJaa7gXNSAerWa<(6=^i^fdA{KLT8PVzP{x1d0sx z0(>>XaBQojA3e~Om>d`LBnnw(>yIaM;(8lmPhq&s?0d0S_AmHmmhh&z*QkNn6z1mJ zp$qcIya_Q5f?`&)GQqM5`-k3JsvvQ_M4Mn~=v#uD)Ku%mWq^|nrV+D^3|Nyc5m8PO zr^+V1PJ+i>GsKM7eVAoh@UgpAPnN6e>heU^z~tji;?p1Q=H}GDHY(HwHtkX?AI|m7 zW!Yv>XLb9V%bzZM>IanXeeI82q0R!Qb~`B}4iGg&V$mtTRgkZ6(M8&XEAr=tWrX zSLwOkDAvN4JtJ%mB*-n`90*9}nD^!38DR!}zjQb-!+?t?ONw<(yJ|^`Ri&BQ0A~o; zuJk639tfdui_KpG*);L4)0qA#i|^NKm@J_JxzJ0xDY17N!HY{P@O^mLQh4+bB2* zG@5oT%r@~{J~`wXR$qYD`&wJ8(1~;$=EFZ<;8|Dz)m+N$Sn*#~TdH+FKwuvIdgJmL#6nsHVnDQ~U=IA>;qCwNwi|)B>Up>7 z?d7wIox?#zK#Il>W&4-;1RyrF9FX__JEi}f(tj4t|2Yo-8>RnU`2WAnrB?2tmd=Mu zV`i>`fQd~A%j!%13dWZ@2pokOto(e$RyM}syBuqKx?P8?gjC7{eZ*!vZ5QX*W62Ql z``DJv(KSHA;FsR6(QDJfe5KJ&2pD=h)fUMlk%Vo%!pc7@?f8^i<0vyo;jWK%nM--l zzvS-0YK3Vc0qoHh?maxo`ryMIa9fjlJLf`p_W42K=pg~a+bJwj_8< zvs@OxzF)!0sz{$M>0Us-X__sxNZmhMe*Yo=gd@T45(jA99uxS7`fv26sVm? zpYc5=ul4(eEgH%JNmHmJ?C(Q+5>T7tM&plvKLZ-q4X!L@cnlQ3qVoz;**gW4f)^R* z#f4dp8^Pa8Ccbq>g6)1$a?01Yz$-Rr!4l0W;PTC^&ur z93}Tr6!RTmk<2PsM~=X)`6QUWDe3N(1`$z0kWP^lh8{{%x?8%NK|~2@kP-pu?)SWWpJ(m8@B3Z%|M~QO+Fx8Q zmoRh9oN*k#IwJeLD0H5Z{^vIHmcKdi%b9mF#vOE{$`JR6`ZqKOav8mvQ@>4;{2~WW z@A-Mu9j@kznOjn9&q0ENch!ws+r?ZJ2tacJMW~JhJO)qnuSZesdPVICS9Xs5()-8th z;3DjQ=sQpzw!mj zT4Y`8QE6{2M+r#p*}H)3nZUm4`h~j>0U`aBrFB6WHCb&!NF*qSR0i-5kQ)tHAC_1V~E5N8h~FCq+{K zurXmwx9#p%=mUfg$~|gCS8S)t00fClI7JHR&7*wLIW%drTjv9@36bDE%m~W)kpeqe zsuMUp5;+ZP5kSaX4H;irFc^8-{UD(;6#gRB6Rzy%G@`&9|2Kq#8*49{=Bi*N?ih*! z*{OUb$5Gbs>*GEkj@{}bK<|_Qxgc~{7*1vkmAq>)%*^hubZ1%^6~%cr7s&8Z$ot~fN03Js2!H3&nI_J^y0vN%Fs#oKG=s>I%|W0^*YZ7a z^Q+5w*8SA*Jt~Mgy3tO{Kbs6>C6ENBXQf9CIYsq*88-)hk3ja3&3x&zuR^WBTNMvw zU(DFKe6xZgHV89LrKf;{wDFI?7%?R8mwVu%P3$|s3oF(ue^mWqXk)KtU8$4U21pf* z5`jmL_huLWMjZ+g6O^+9(L>nT3{(fE*MokAMbCI$tNt_44Yp?5Q$yeymyr{5x%eB> zQWMRFadXsmJ>ltcl!nAHJ?$hdS~b1+Y+77&&w26_jX2L6(>f_Up&S#cUAIV;b~;XC zO3zmdm%jvxi*S=aE`e28T4W2dn((Zk6cvy$WS}!{0a$|7LDOreGst~K&2Dh$d|h1L z+6badKu@St^qL`w$76rx)suLd>)jAWlxQHo*B)mQJN$(2A~X)HS5sJeISxX7%^n9u z4`trdHuOs2i)s_7{>`tsUc0%>0LD@6&!^ClA-DhqSC|0T`>XS~h0CD@+maoJhxA(I zW8*UWX-G=Z&)WA24U69K)`=vx-CVSl-(~{34IdAPXWMTkfDcqRp8ZN01euiTOV>x` zAgB&pgKP%8sL%c*Q}V7|mkCxmw=EEluGv9n2fRAtZU^Fpw(51;wG%U*7pgKLjk%t^ zW`+lqp>{+VXs*&< zl}N!Lq6*5Ln3@z{D-$2hQz`zj)?|{nqkZvPO?bB*l|AK83b63Mah`zCfbE8h?N?gc zl?@{@&6^;ZBg00=g6croEw=Fa{7LIc{7Ku*)%YGzfU(@1m)}g!S(W_Lty3zUxdry$ zpJ8WWn>lorjdwke0Rx2z_rx=wReDg3f`DIBDI!qOLiIr!BPfXrJbyA zo&aSKMN`gnhuKVT1SMsNDzL{_&U!$~v+^P)XA{#KRX>0mxoL|NCj6#)S8%d^+Q)J+i5zWdaNI@asa#j{V2bpq^KwdFo>GI(bCf*yFw`NNK z-uZL<+mj+@vgN4MVXH#TM_E!3Iy^$`hQtYe6|ld4KAkk5=V2rE^`CqRaB=^EEmtL% zpfKgFZ$hwWST_g+D>j@4aa0&SuZOg}c=f8ueq*OZr3t-#5fyThUp_ScglBRgBViNB zur|lbura*>Ew^)20sLdF(A$fCEKC}Z)54*sRj>5f`016k-?4SX>Nbf9$baeGph|rG z`X6q~iX-eA@Af4~wFpHiiX`I}M&tl#HML}#q0Krk?d@JD>`Sz@{ zXQC>1M`k=^U(G;hH9Cir8c>V)g&--gjctMcuF?7J=kO8`gQ;Zc8U05K)9HM4_({n~ zhR@c2a0dQ8xR;eOS5Zk!ulEz1(mv8kgo~fWiLdY3K>D&rXJecfAUwD1XxO9;q#w*o zrmqWr6~DO@V;A7Xd-<#&f33d=TyA`JVJ|V_GUaC#N_CG zFCqc|OWFcM|2PpjL{ujFpSPYLfpwqgiHv|SL#RX&rQTnOQ%gX_6U^+}n%V_KAb%~h z;J1t)Mtqha@z4qwI@d?7qpw0IxQ@Jtq8_qwq4=1-dX(~=ZfAUO+wLk9kY}n7_Zh`fgR>rxu z!pqDCpQ}w%F0Qsqr@v8bpz?10rIIVe^37ZdU!3Q&^lcKGL=#V&vjFka03M*?q(0uR z_XL3=t5DL2rPZ1Z8wI8B=jeAbrlojypSLMTjbtQvsWOHs+f{#>3eU9Znk?#6oI$_t(on zm;)%>C3Ep!IM-#k{KH;&no08eeC_Hef#gi}C`3E1pBeSU2GXJZ4I$gChEgPTfL>$s zDy1!7IXPD4%AUNrJU>wWC=^-+R^aOJq0Z>IhUysZ(gDNy{RAg)1|53Ng1*iWkkxa` zV#yfGAe*GLmU;Hgn1Q1Ln*=>`P03mZKpl^L0sOS0DrJx zV>>9M$x6pLPRnDZsI~=E7M!MMNIj$gND6l9x+?&GSx@I92m+6wuBUi=7D(Q7PQhZ` zF7RDzQHaiJI{s1D`nmEPq>$NgxS4>6CIKXL?Q1jLK!rieX&UF z!9=cd-yaPu#HOA@(24K68xX5_&n8)S+0A#&t?{sW zdkp01D2mw>mhC}&>0h;k%ey zl5ENhffXQfLq{tlhfc2ZAr!U)P!c&X0AsY6H$;*^R-TMbA~5i&MOtR}%0OIk(S3uA zq6gumTxDNltPieF+S=|T3oep(jMe~GZcmjc)&uK^RF>1kgn2gQ|2kN`hM0Yw;{D6F zYU>kF&O!tKjv<%z1xT|o&^)3;N$`9YQ~%3A1mr4?AAG4+eZw%k+(mQ!W>q(%>z{fO zTjSetGpnwIuL=y;-pKrz80W0@cpELE6^g3|m1Ki!VkZrMLrz7`R^rCrd13rKSTD4C z79Gg0d6X%>byMv|{WF$$ypyvtGd6~S2bCTxltJNr=t==33SgMNCV#f4tKoWj=fBbs`Ruke z{i?V$D+VdS3K6R2Hk}?a=iCh=9&E?*{cad7VZFS(fsorX_%Ua)YrU zSf~p~-$}3nN}mDMy*7#T^ERMHk);o*x&yGSmii&A;5!ZX(I+epVW5hQpVK`dbIcQg zVzKz5$Obv8m3hMoyhhuxYm=rx{!bS;=qOt3p_0sBO#}AIf8g?9*i>Zoh9LSK8pA^r zZ270R|HEHlckh#NW00_XyWfm&)~=4Ik?F4wA}O-_pwXN+dIR3q_RHt~8t5i>w*gc4 z`|Kfp)E1libTwmN2*~ZJU4ps(nSAs6QwTw%x| zy*d;%Mik2!5N#_+LBBHb^SedBU4ATE^!Jz{JPPIcZ;Y8dZKSWZ^WpKpc$ zeyz@)%qWDr8$2Ru1o`!KH=()WKrM^WL}Uq=fDte<_R=d_WOiKFkdp%xzKh`0fX_?q zzKB7?r*>DIdYK*ZYUV@ETVJLB`1Jq%@wC^-nKc4k!O4~l*VJ6@DPZn#Y)Ly^AG%w# z-wN2`+_&Rv^yq8@O%9|9mvg{#UzVSFF?NTr3sH1)rI`ljaC!*9Q?3>k!GZJ0=j-X-GOD35%m3^F zz^~I*YUh+JS`~W!X$TZ~<^a&4sam@*`=5Qp(d{ppGBLyNCo~Z|)TonVnsy+|?-o_6&6&%5e>dnok>D0iWcB{5pp$g!tYq%Y)u{G+>gD0NsKAwg~b zyp8|+1)s8lS5vHXSO1@WYA-EX^&d@-B<+5|M9FCZS z3=Jw;R_>3Z1pa=Y(^&+x3?8`7+}#1mAn+#+TvBx*KwCts45BX0KacBD9`9{gqm_f3 z>Qrz#H8xA;6bVTU0xu6rg73k1VHAL;%QDPLQ4+lBxjFRkXrxeQ%e)iMBW(T)x=C40L zrlvGtET5j77SkE5&iM5CvAvZ^;2za-2g8>bj_NNw=JlVg&L-oy&p^0%YL>`GYyOd| z=a^LicI^ML@AEuv(>uMm0PX4>C~q8^SJMg2Ncs2ys*v=}{LwqD#SW75!iGm~iA<9C z*UfvfLv`C;y1|QNMv8_S;&xsq?zm@=%1*mx7}kZm2)e`V3cXecS6sZl*one1yvu<> zI;N#6#7NymA z^9*YrkS~pQ11j1s&@0?;1-H2#@nLkx0Vri?+1zYGX80=V0Xx?PP|;~k3Rrz-sAF!t zE)IAGU!@agCk)b#y1F+2%&Ew5Q54XFWl>x}~Y$&E>&F zga8f#@E{MRQz5pUQriV%)XRv8?*o9J%!T}<^2Aot|7aNCY$Py z&Q7DDtD4MXbLPcQ?Ff9}EiiQjN#P*JyPXcJH(044#`^oq$QuZQmvNA8u{Z#Y znka?dJ+Y(vQZ0+WB0lNal(QMZwRVx6YamJu8=xh2YRGCIB^@Dtkbv-wZh8g6IEOL<(hM~cHv)-(r*s8>5=X46#{_os4|bt(&{IGd?+DcJP2SC zq7>>sapDw00c!_q{DkqFZ^DR>_#?|ZB5Yhne~6?pk5l2th9*ov)l`>7I43{i``(n# z!*+gIELmc(H68Swzsq=Kg>Fk}$_~*Nc(Iq&Tg=iu2YvTgeHMeY0I1bRj@Kgu=0g=< zz=I*1J2ZdA9qy00{wQ`$4%@Rbn~C5faYRpKAwKP2$p+~%^ZOw zJOqfG1%GuyLneN=WQ}te0HSx<6}O(t50DC7Kr>HF0?w}Bx;EhVbyPb8ynA;`EyOMJ z^ZhCyeJD!{4G5U+4D@N5iDz4WUv&c9yiqfRU%(2}l0lbB0K_J@a=M7nPYmBkpbd>*8oBb20$^tCo`=>k*;)HRL%#Ur;`AfcQ7lCELs6>9$e_CcL!V5a5X^L71e8}{E?GvrE-G5X%pEVIr_ zxcixQfT$vxe7U1nWm1{U_G%b+1ir1WkFDD-pome{Y=xR7e5dFb+Kd$ zg9X}7XG(lApypdu`r#gtJwz)=;-I42ilW|O+JVNBNb9XNJ2Ojs`26G9YxMM?9Uh2q zBg5zVJf>+5JnE6dO#rLO>J%ttGN()3QmUP_2+vdOV_T{Msq$#YrdMDV4T&$ftU`cW zlbtO|J#-7`TRuOB4Rn#P0SYVQ)eLz~++%#@rSh76XRme75aS1`x_yuYRlor3ZKgboOcv9Bf>6O9Ni;+;8>5B5{|nFU{W={HaYG{C`WD02C_8lrOHLhYHJmQBi#xSDzdh7D8#l zvW;NWS>D{O1=e4*Y&V-C)UGd=c2qC2iBtu)6pEBe;X+|svW`t9M7k78#^6v}1n)b- zqhFU-;icZojL9OVMEjX|5suzBhkG&-dudApLbbloq?+)=@oPUICXo`j5?uWS&?J1f zSx322V-xp{v)^PW1;Q(U#Rgh^1S7e>{hDVdwce=(KPeY$l#t|zDv>MjV4GH_x|aRiP5rYq5b7z z42&Za9QS%;GngB8KA`{JU0s0Ol7W^QB10`iHtdFVZT%V&xnXvy8lkTn)8E28um3KI6)b%~geErYjU2|uyOJ`0nmuBp|CRm2ZZteL7?cKed zU0OR`w5?yQp`RZ2e-z9N5B=u}k}B&u+-RP#KY$D@WcR{0LG{_V^)y-iHGg67QW!Q) zdSc*!4AWH7Epwj0555SQArTF;97mAIo@@4Mq50bZ6%&T~%j}g$ap3ZiBn@(~zZESW z_u&S@vK@(ad_}I(c`BYzuM#-+zFGNON{sIb5F)J8Ty(XKR{a^~mBpa3TpH`bj!WIO zdJWOmV2(z4Cm{8sF-L4!Lk32qpoowNa?0p{qWdOix@UT;lY~h=fGBIr zDGAzu+xWFdfjl?irk8Y8k4(C7RK(nkL6*k@ieRngy7`+iVgmfS97A@)qU|WH75t&BB5#&!db!XJtHo&sYU?4kvUHj_98ES{())x+rLxeE$(A zJADVP-j>NfuY}5N)P^b4e?LyhPn!c!D8+F{GhvR~ zBixXWEju~Rt}_@qLevV5OO*8Da65CPFja3Rtd!YE%7m88V{OC^q&PlYr59jRI~#mk zFbGG7W!XHZ`q)=EvoKey)%+Ad3oSla%@})&yPmimL2%%n$av^H6siNT?bb_p1JtRW4s~-JYPoQwpg~ z^R0WNL{<5&X^`OOd~`%-CjfKhdMZHBwyYEmk$g$C^*A=WuReM&+Ys;l&M=!Yxg;`0 z_Gpc=QV`v;C+HVOEw#(mk#pyL%C{l@8IH1PTBBNGvs@-ZWflelQDoRJ*A*ZQG#;vd zZw-ohny9l6vG~_8^HtI~(vmml`-yF{+9*ll85gReM`Qi?%ecBoF3@s+_WpGSxs{!T z!){vuTA|;;;Y`3Pw%HJL!t`qTd$zb3q2gyDBk{y5R>5-J+^lR3!SRj=xmw?MTo^3M zr#FZB;&x3oReGLDvda87cPa{pAtrg{!aQy;OgPHMbtFRoWCLN+G!#jI6~5PjNu z0(@r64%1v4%CV}(O^;E+7qL3oU?Q8*+n}Bmr_gOj1DZ@fcs}GDEJXAx!!%D=O-tZb z#N>{$H1y|x};EdX!&R>V^2WUNp;2*M=g5I%^T}+!PLE9Qca1-S;@MFS zsDYb1q6y8Z0M_)ncaPi$JGcNo1pCz^k5`TgX`J=J#jtdw;}nWQa_#(4JjiUR4cxkH z=bLPUo(4~TCvumyAIx~7&J(ay*BrrxZ5FsmvN#`>;|Z-qOUN3q7}-Rzm?Au;pZ4;? z4M*#vd?SuSxX~>=&M#kdHuV>wF2a80iDqwQ8%+?N`Rgq|*V(C$FUN>{h2P&j z>}|qz33gKQGEtKke_#1n8R2KQ{67g!906cprsU0t*z3; zwo((5c;;fHA0*qTK4}NYT`i9cv#c2Rhqgi;uTH#gW02<7lZpa`?D7f?Asq{s#wmTn zoza}oCBZNbrV1pQ3T0(M~*&wXCP4=A6A@_yR{h| zlLAt$-tt|04haqgQ9`NW_Aer_h9>JIGxfcj>xG+eBn=|H1gpE?lkq2x#kAX2Z$JK_ zzgEuMOM{Dq`h9P|O;4k{L~9h@hnS5Qw~E0>e(_`vH2mODeo(DJ)sKmWj#m7YfIgDj zF(OOIj?-U5#okQA#dtYc0ru!;0D~1)8*9kX2Kt)eeWV-Db2^_K;c`l{MJRcza;u|0 z#95POUqP2Ces4Dx!9q5_Qp}hk3j<@Ln4qTNv9EBz`nRZ?K-#C%-h7%SRxUXK2%UuTX{HW>(&Y9*X`MzldTn~G?6 zMTjejgn0s`C+w5*6C1TDwjgXr#4W1qEyd2Oflw5wThnqI&IE`z-s%JuIB}O7A?md@ zgK?5!*v@eBdn3`hcdMNc*E|ku2d9kmtdWdXlFU9z)J#{@G$NkuOxRmuc2@gu0(s(` z64O)4x+=JiY!J-T&LfFv*Ruy;T-HO1eKUOp6D{h&oS9QZP;#WpD2>kd^c?ryIdHL? z&ioMwlYI^bcU{FxtN(Wv05w9q#?iY#fTg%!3fIi0oUG4zx(v}1(i)^jK%^%U<@?y7 zY2>VG$9@_gv5$BVSfy;B+$l)R$Z2;3i6AD^v!&H0vl0{Plz70o}k_HgdjEKYpGH`DKaoJrUoC^idVcvG6^4?lP9DQ7_CZ9njIvhq!Y| zxjP_dF4@kVh>%!&=BWv2mUy+ol7&cDw;FP?oF9}9xfj8WJ{w1;Z8J~e1-}P(*4Pe` z&M&~!e;NC`8Er7T1YP!n!ums{5lQ(``C?*WXmUVuTU*1 zelgygCw0oc^gQt}`d8X2IHCPe>f-d5nsx5eSR;wl$khd9I1F3&SmJvcQ{aJD(xjCR zcITk2y-|#59|LCGIab(>?0ez9*?KzT!5op|rnrhm;l!fl&K!cc9iRd~(C#G`Aw?&T ztMz`vWvqr09P)v|z3R8Dy6ckpyAMiBIy=eAVoX6o={V1bb@O4BX(I?qy%qE54A%0| zjr~jS>;(mL#o4!3PK_Zt=gNpr5A(i&;kzI1@fSZQ3=zR4O16ma(}a5R9)JO)6fJ{vv2@0#nzl+J!{Yu%Dm2P$f%@iAz?QWO?tC^6$7f+DX9P zzV@-5`n*Lg^&yE}X!Pn(lx&uPwKfATq?xMkqbeTHK0V@tkb)B!ltyOaDj;{ARj%i3 zy!T;9U$?&-ZN>2w|F8aXyH$ZJXHj&*W$xyahav(3V>XO`e2qtKE+m>{C~P*#FjtU; zBHK0PWQh-1LL16WHFd6e+5Z;LiAQwH+W0~y4$U$iRwA9u3(r1?iGGe@Iexnwb}59w zY(}Le6JFbqJ9Ft-AWLA(zKyuFadF;zg2XrRxHtXPbNOJ&hjl9r{=tindSE%!-J9E< zz5IG+(%xz^p?K__dt_DlzSNA~k95Y=aQRs`vFuzaGJXv!tc@g5p~l%SG=wkK?fVgL zan7@kfC?dMY_km(+}qz|s@ZcP#g>>><90Oi;e@Dn9G=J;(wy?zNFyqt?_ZEBT&~+) z^8qr`k+*G!m?9m02HEC4JHtXC$yLBHk!l!`34*fp$5Iff6(?6miKb;$iLHYLk<#nC zw)fT5cE3djj`JvsFcdy{6qrJEZ=L*1fROr#Npyb`CjIUK2Kg3{ax7-%sPwY3938}e zI&-<~l}9P3*?qB;JP@plwrbhRQ}SI@*{Kp4qF|*f@cBvdmsgJiz0{vnyGUwuMBV1n zTjC3oYkAAUqS2awJsdzASD}2(?U=HJZmm1{5N2EREQU8bbzK@|F6xp)$?HjPktz}H z3QaGGf`9bagNU_Ao^=^xb}!Xx%Mwl7u@^DJ&|H>R9XaPxUfs{V={tVXvO4Owq!{h~ zQViscG327sO=MIu{cil>XSQ)+c=R zh{AL1PRKr#ETd}mCjjN%c9#vahJJe{OE;fNCvyONi7)MX;ic2ZeL0%0=loZ19@X5f zvBR=qVc%Kz+<(4~;_$%ze%6B*OD!c2md;g|$Q$ zZj5|SQ_i_UADjdyEWqqicw#3`cCplwO{`$|07I!pIIY&DRD``P4|!>$ZC~`e+)Lxf zTarR*CtNEL4|QAN-9G^W`B|CpoGm%c8PjH_D>YO9K9aJ0hs=mqGO#aZsnRpSD31)u zNEkiJGx0u;Qs>vWjbI#Eh-fO4-dMsqCIe2$=2^p1KM0?_gVT_euLQ$&4p(7{J|Z@~ zZ^9~d9vv#US8wDyPm3K{US=SPMW#!&WP%Ylycmztm;L53xos_!J1<0o_o$?b3Ni|> zXhnLrBhFco7(4dz%=7rm5yqE=SuH&kl(cC_a0N}GP4;<#(rl`XzVLRCF#hs_d|JFUmNI>1=O0n)nY2zzmKEl_^R4X$Q4CoBz zKk?dP80rp9B!8|&g75Q{4)ooKq%AG%kvMCU?cs}+^KK1v_`Be;s!V=Kz4+R5a=Qu5}@LE9f+CaeR6 zPUpL_N?2P`AG=l7kgcpV-7!2eVqLW?Lr8=9ZH<#6BBaBakg=R(uMVk~zD&n3_8rxl6r)OYnI zaeCZUbW||Gd^r=2Q|_#izc92P!J{y>7^hT3L-jh>ZiNDuvBZec))O?N_wi-e>C0X6~?Ijzo9kt&JasDW>R1vtD;lqFO?kaBC#V^NLT%Kk$ zgFzdQE&Rg#r7GKKhYPgizaMB214uE*R;J@^KWgp$?$c!AOPep#zvsAROECSO*kzn^ zL;Vf0#^;g5$GwUeMJpaW6$M$oOvA8lcGH&{aON8=weZ#IKaD0221jRXyizuB?JVZ| z;(L-^@BfgooTz$TEGFwWwS6Hauw~4B-P~ni6jK|y_&|3#jE?ap@&5!tV9nULUVvwy zh~<5ojC|EwrBg+QSK+`Nt0w)}Jk6*!D|DFo>B!?vA7&~4r8A=#eUZMKBPM;X`=m^K z``BYurxiFK6m*PQ9vdi$crrG066W5@&_$o$BGdn=8$Ui;BBIbsTPjvO<)VDPSabul z<&niG3Z!1SfXxWq&(IMrrLfEKI@nPiBp}RC2*Vk27P)!hR7aR=D}L}e%He!Sk%4Jt zBoO5NLJEVN5Nw_1w-ry=%H3KDUbCuh`9A(M^U_7H63pkD zZvQ;M-j^MIy^ zy!GTWw|Sr+mNGW0InQm$Fz%XN{udkt1Mbv(aVn#%v^ zZzLkWuJ);;S(^Drr!T%R`)+d)Ga@hAp@ex9TKVTq4BJ7zMnhpyTUlcX=>f{bfo+^K zunY87a(c+5BsNQa0jaS5c7ysY=|pv`@aDOf`CIn+BH!j2%Ow%4%?2xmaE(^Y1uX}| zbfSeNw|qPG@?QF$(>?LC01L!P8fg24Dd<*Z>j&a6d<-=j($?_X4sHh1<0Bc<*Zpb> z+R2hcn6})Dmjb@YMbo$=9;RQ#s?Ox6N|ev9H5O_KiBHyAD5p{q=Q{E%uGnnV_~tcW zY?wd(6Kr>49#~sTEH#+RhaT0wNX#{{gmiU1K??n^XVz zCaX@i64e}1N1NJLfeO*|Q6g1&sSoFO1JHv}ypw)fSdc~CwF#18UT2^0LZf5PFpPJF zv#ZOl%sk4hr&nQ_l~+3d$s{OHZ^QSxS>Z4 zp=)F9XjS)fi&$N_l72(dM7Xnq@IuR%Vb49Ytk_cQr0C97KAeD>hz9uD!OLy^_7rBknJUzp>D9C##ex_Bp@UIUqk>ElRxahuJg{@kmqp(QEu%()F+ zaBz0BV;2VvHjCsOoVk53_4X~xXj5>jlf|!zscAXvV4>Kfj>n}es4kqd(fc$3M;-1z z6KHCkSo3<2;d>}o3IoOLOGfy2SC#xNOse0bWZAjCsjdmGk&fKUWYa>uHe`MCPJ^8E zB*xiJQlhFZ4MmQgyZDLxEV-ZmP!1E3>F;iLoj?>8*YX?_`4cm3 z`4%MODt=$%`k)8q+4Mv!$s@{1$zVtJ<7~5H~Gl89LpcXJGP{iaT!{9E25K>+Im`)VS41k$J(szG#x2elZ9rj@@Mah$!>{z=h1JFA4UVof$ExtkCldhZXgV=b>ZHhU}r0O&Lf;65O%E^*IBYXi^%v1udiRbK&ka z6fd3`D^l4Azu8-m4_3PRog=H*DJ&_Bp!LLhF!Y=l^8r@YX~pgLS&j4`<&cq z{i@ve;qG(DuT#Ikzm{x-B!07=ZsPm6vIoMtr|oqd9y{eFWwo_TCKe zIbrPYVnO2(o+{P0`HZ_P?K*?#dyRj?%u>~EzZdSvDeQal^FNc7d(1dNy0tQjtBE?g zrJm;U!$s$msPAh^(dO?%BbYRoani%9ELa%hxtG4#c!gAnm%@hhntmwhu^+X}x3oNo z>}2!kG#lrYoX^=GEZSIPDD=ITuYF9}!_~&rR`*@BMPx!1BD6+|YbvU$lbwS3ImS89 zo9$~?Hgujmxl4*#x$?pX$o?a7rg)ZdI;{r-e3irxm_O&v!AC=~O0u<$Ulr!wK06sN z_vMRJ>1RfATE;T4`hX_k?GwGD6W~fB50G9@h0j7`zue)q*}ki3tlNE{D1xC-w{Xtd0`fWYH$D8JVgGt`;rc;?sLVG_3<5O)@rR4H;&*gB5No24+x z?TM(Xbxg1TW5K6;3K-fE8v?^6MROax*Y2o_>@ib#^a4(-!5@S@YDE|0Cgi4LwSx_; zjLJ(0sf{K-zO2Xg83fyqDmxyRJy!TU8T0EZ2BM30yF0%2uEgHt%Myw7S?-_lsOBV)<@qEf`iLWhMIpKuqX5C;%zW!ZJW7rxL;Fftq%Vb7`EP| zVc??KYlmHoM(z0txD?pq)vx61k)#Wef#s%&=~`b zgS5ZT=ehYz^VGJ!WN>G(LkL7{+pQT9@8HkXx_NkWr+>Y0?Y-c@Rk(u+e zo4yfti3P_(y;A|P4Se*s5X+EGwu@Aa=+G#DF5^RHmBQoBo-P!2$9sqf_tz|OkovT7 z%!(LSvATw??$5Mp)RFKbg|j}KM&?bY zL1y()#dHh(mP?wiHnG1T%CoQzkLWRE*SCweW!@{K6Nluju&l){X+!qT6=sk25T1`- z`SK@m`2z*-&p#R+I<+piaP}0=I4q?ZJOfcHc${gNg4kl3OcyEzA&rdNX zIy**JlL1tU_I2MK-2JHgJngWKgjutotRGDoA{=_S;u8%qKDZes^XMyc#3ADCk}i?% zsmAf5O8R22NTRn4w+nf$Z!+vdT6x%`rWXZ~-&G%uDbzle4}-^J5-ARykLV(0;@2%i zqH!gEQ?7?2&oQTmq1+8~WV^uo!4qx%Vz^p%MdMaf(MvUop7NQuWJ^Z6eW>I|s{p+B z@kZOyGEv)K(>3so^(PMwkHB@@^y;d;#AQzvZh(MmvjKk1l1{&t&>W$*HGD-9+v2VUT!hrgdBxh_2UiF}IB- z@sX2}WXNR1HlzPq&2~3#xw)7UyC1^Vdvi3>xo5wj&29ASw)>8fM_R_()d`e2ou;%L z@2motIvC3)R{C<177O9V&1#}4wOXZ*T3ZCa#~XlB%2E^#e`=n1?4DOzQm6k3uGV6? zZjidOdLdP}W!!R_zwCZE<$W-;+~$7N(Vs`t%e;Q}Z`Q1*7icfYU`D4eF6xeM@J!Mx z59PSKUO6+NX_RC=?@D@)UrhKW-ut@@X^&`RoYyL-2H7Z7-_XSADtJh;=}T0!-@YSl zC8RiA6C18mS91QMhqG8k{gQ{fYlE(qM&1y{Kwwja)??))k@9tQK_mcMGq8SzUFQ4& zDFUrzc8QT%h7&2ysltdw&eO>xlx0&e%m7OUl3CoNi=7S+qsXE!d z0%3=;YBat`BDMvSfVsjo0sgV%i*ebHnZLwp=j3~DpFJM*jguo2d${r-E&2fJ&Q4G?bJRg?llD)Td_TL{~e8gC0H5iuuI z_SA)4KEM5;`BSQTs~P= zzQSsUyB%PoRKPW6h$Q&aZ#bedC&O|A&YGEr6K4pSY0dq3k$m_!R|35aIvhI0M-~&! zt0b6tXJ&0!#iA-1mMqF2R#P?o2nAy~vCBn#{AZuzw`rSsvBMqFwot7|tTbN*Xr{ok z!qj-O+J6Tg2cL&7l3bx3`PT;XYW7Zfi6zR~x#}F?kdtO!G}M zBXQc+hhbTYTcfg+cDw~X!x>YGO|hm6zXev`t!epkkL5&28pu-0P$GKo>D165_(Yte z?Kc>F1dh_g5^Gly4DCN)yt(|^$HUUMKR&@Ks^eI|s>iiz_RrBcJXR)U+n{@#@;MAH9RiE+knir zP)yyFOb!C@lVHA7zG}D@?*4us9svubDf1+nl|m5VZGj zC%*=z8+g>+%IpM^Cu=l&*9Cra{f_!!>UZV5nYkltX8;bC;b3k{r*oxVt(=s@k-Qk+ z`MBY16-s%o;T#h>vU*-hQar^k?c$|}4mvI3&ZG19ceEc3{<I9oSbR*kSo#H z)j*Z?Uu6I=TJsW;O^7|Mm9%r-Ld<#65qbdRsgeheGu#TXt9OWdmV1YQgQk=`A)Q*Q3tC$#c z1DTBY0jCw3D>b94;USc{>}^pC8Ruj9ODl4k${D~%?vGDsq2So>(tUBq^i(ocaOuYP z&Y47NC?%nu@-;L1)37@;JNM*{F|DiW2-mHAe}v<&PlL8GyVw@jQ-3i<_l)Ggzf@9v zg(Nq_rS$ZV{dJ%EyF=K0rPd$p%gS%ILGqgaAt}1mZ7<&&piIIA=}U!MCq~V931ldI znj%Cy>xX{0cjT3Lz9|w81lA2Or38YBVLh42&etIDfs}bbV>;1e&&oYB zeBSBF5?Jd1WPb1&rBBf^8o?6*JROtvfG>X}Ogv+@kDYsO;ZVm)GA-X&(uQ|7(Df_^ zWjT$(or#SNYqVj>t=LCtuT}L%4rLco5QEvz+#3Fol5n+Tbs9Gyw<{##v6?tu(yzPH zAl_2o8j)EDkj^T;`DZ%lGUnJMGtj{EaLbJ7eN2?G7}yUD&TzJ@@#6j4x#!hpt%8V|UY~{l-5y|Lue&r@5oE z%Q87+_DiLZWX>~*mhJB^ZU7p_6ZzSEIKRZZqNNi6GR7nk!F}gbV!5G*PL~UIX^M{0 z9&N*77lD=-y(WcR%s1ihQP3=3?B}pRoT29N-2cPgTZdKoZC%6CUD6;SA&r12iZp@< zQqs~QC9QxU-O{3<0wN_L4bmMFZbd*Eq(ed^1f==q?K#hRUOnOOd;j~c@BG7cp={WD z-D}M?=a^%Rd4FQz(xdwm4-VebYSfE1o zI6flq`@Q@l`!b*0ztQgW5;}aSHatNQ6}5VnW=?==X+WxB_@4Mb0e(qjH0sz?Y-EKb zA&d{K4C>nPd1JM!ZY0_~@3>_=QHCwX$98}3lmpv!etytlJFyG!@PAUo|JKxT;zuth z?RQGc$mZpFgNEtmSG}O%V&V`pd56kjyM9Kf$)60HyvaI_UY=l!&E2oD(y#x%yW6gK zU}O(=ZeYCc$2fa~_8e-8JDe&bf&~g)CL8gT%MdM$USzAZ?^>`tqZGfc$%a81^@LyB zubky=a;W2(tLo@kD^fQu&5EIJpp>+D8udeUhR?sE%s}T!5Xd}Tz-g}*B@mB`qfL=f z`7EgCt1j?h#=pM~FU4}3>3Hv;NPw+={YK%NkD@(hQhFB;b8O7JzRlAZ$*ZZ%RQdLo zaCHV=^Ju-zN?sZ{!gHo@nEaFjb?jViy--toAS3y9U#~art_x6%+qCLSmpS86m;o_` zUMn^|y+rcHRixN26|E{bzi>X*MH|Q-L#?j1I!sGn2JHJiw)W|)Z5HwHQ1gv2$~)%d z`vxJ!gu!apr8EYtjh~nh`WB;O6ZUPb`W){s_7&~PzYZ!nHOKlX>hhlU{!?!94=_T9 z!CCEt$X;n_$wl#iy{n@#hI!8%7DtS{b$Sr4$|g%>>BQ#yKKeGicU}@*&1S?a8t2$G zb5|63)|n)WN}R!#B3yB^fg~?jWwfRAt^>zlw`8yDi+Tf+(4}f~qBI)fEL0d5IX6E|w>K`7>S_8l?BrvKOI*jjWfAWddBWOg z7d-L_L?_LRPDbp&IK0FmIz@IXvAg^CbFvs|DDWhSu{zWl`nYLJrfNQGl z>|B7IpPNJDQ2G;zjENNu)V@)Dmy3SZ4Wk=Bh-qkyZ=DGGB1w4aarfZ&`l^A(7icqI z9^8;SoMni05?STr{1`rCKOKrjwOS<0hfqse*Wbz{KBa%%OiQ)t7!&!theHuqMld`O+>c9NfPFF|~MeilLzIl*b_-(2AtBpe5b$Qbu z4~5wEJklwwSn5d?EG$xd-ZS~}Zd1KhpE7#Cl-@ONnD+mH{#kv)bc5_!XJz)ckd(^l zs<(b$9)~1d=ck%My=6C@SqX&U-Q{;2H3)Nij<5HrA9e7c7?~od~_69r>HBYQOd(rh=()7c_wGn4rfnma70=E&9c)yL)*d;yW{7x8H8^R(Xdte z;=KEhEf#H@8G~#__OQ)Pjzmux{NPMF&icNf2wK z6*GE$K&&iHlXTqazI)2jUfur`UeD%Zk=0Q1v)&Pny!^upf!zUbXnU`6a^nQ`Y6Q7e z@<_f2*Nd1v<@!$_d*{`+1uig#J&-g&iu3Ac=1HDuNfu&(B@sg5f(E%V$sZ1DCmbcc zu!3E+@YeU?syVf+QC#4%9|5IHi~!@i{XmtyyCcQIRLsVU8XaF!vwO$p?|b`j%p4ya z$v2GVYakMpP2snn8-EH^q&f&K|c&?@>|{Dm*Xx((7P) zH(a&9`3ig3LnEGM-TpSqS3m7W!$sxs#uPbrL#eS}^?uQb8HAWIw!t?Z{V8*_-<}h9 z?Ny^C8(vr_xAymKo=%$jBL4#0(WlxoQhKWwBDBGa&*l1U4pjxW=X4)~1zMeTVjNlp zJhpuP=QfjPjCfUTbUwiTd)d+sMa%O2Bh4P;A0>IcB2$#nsvI)=57$p68+8C#pEQyO zm!8B+OR>V-g)QQ0^$NM$mz=$^GL+a?;XIYLV`%UJQA;vwR8W(0>mFO|_qTar+f=NN z<&CyJz1iC`?EhJ*HGEpW_q*9ZiU_8Bt)HAj5ls%JJii|zXZtp$h(F}&>-Cu)PoJ8t zDL}3vuwUPnb`7fEx=go~FW>j$RFYZI@B%B7l&8BtZZj`3HvBwHDIVxfT7{C`K&etIK-8%N4_FX2pa?Mz*CR{s@OQjez!P_&>DJC{kYJ3I zIp&24&+m?)0hXuk2DSKgXN|fJmT*joN;xkuQbixV%l7QBGH1-LVr;Ma_}sb)iK9W+ zbOH6VcK{*^Y~TUSoDvzAslgs7TECc?sN(V&<7b}QO^=RvRw7#DEc_QM-vF=M8znVrig|MLEMR=prsN0piJ7fB}(kWfCI1@3BXcS-<0PB*VAgY_3_Dms8`S64P z+O(on_3ySR+YaA}@f1whNZr6rsRa?&B65~B5D&F?0iSWT@d670Z;_NPcult8^W>4f zxXpxDWqpcWKnQp8^cNTj`Y?v!oW*rSV%vfY)D&WI;0=jAF)DvLufXy$t+^YSfKRZF zcj?JQApeUXa!RAHb^$_1%Xssr+V)#?coDkjw$VGFsejAosI6~TMwUp-%Ky)AyK#*@ z#jka(liuu%9}2JbaQk>zqu5{lcjCxDzYtk%zX7~TIfdoC+8gMsFMWe4StSUR|Mw~U zd%GQhE0~!~X zGQ|3W?1`4V=3jnEDhsTiTFj5CzxJl!twzwG)9FS$&l5`f%P%3M1Q(Owu-dM;zp}i@ za+tg&?QXpF_I4cEUw=t9vc#IRUIqU$2>q+S%o^;AO~ra9HzNBlzeH9JmN=DV_1^Ev z#J_#4G=j);6x1`n^4DL&jed@}Kj7yl@$)A8c?J>dDbUnKt$|=W2r&*cj^4iH#pVbD z$%4pLE}rHs?Upe`TmY2#$~2jhzoq}1i1)vnP5v@G6?qThLGnh!R=ms+GhO*5u_T}?$2(TmrQxRgBf`aoJ1RRs4*Ah=^>eBCS(--hTG2yldWo5R7*dg>A% zA85IK0zojGYrXdc+Gma5uhKQd7F~OCMs5cGXafBGS~ws1)P5Q)D~@`9V$KZ$ z=Ihp~B&L@0UMsIspV+{CzAgaLKP!`#r>B8Ppr4Wi6ME-F@jiO|@maBvf?t!M3_&wU zd};W>Cq=s07_3uTAON3V(0${B*pE7b^+SlrxSLsb2I83D*5xsNZehrAH;Z>Aa=NV? z%_gr{e$%LXp?d1>H$XCpvtHa)jQ9vn*^4M5Uc@>7=1%@Acj(y@De)Fx83JkqhQ4hC zrr#7;fzzh%0Zl{F7DlUO^zid2$r?r<9j^L>faf7UVxlPc(bm1^wO^~_bz^J!&B@81 zb|RoT3QCU>m=W|KndX+0lDdl|mU-tm~$N>CsWct_W-wkE%>d z+P~Ud)+P4+`bD_3T4*g_kd1qfGB}NNzIpeABP6$=nj6s^6Q8Zyyirp@@@@-}d8||+ zn3DduZg4eY5`a4AXTol>a32WvE#?YvDF@s{x}i`~n4Tb8$M&fL@&R-f3Y9 z#vlKed(o`0oc#U@yGZzReYOC+!KlOmcb zW32T~0YGe&fpq+Gzdfl`da5-w?Wo#IDgt!7FR&tLk!sBr$9XN`SFR#7NviX}fr|PxGrpkK_!}lAO)x)}wlg0?PDm$x) z1*EU#QzM0jULCE=J$&In@|t_Pk@+u@s{g&penz$wa`bbqcYD>wTb6bauhz_n>rU}t zj?_$NlSc-zKdCWnPN?c1)(7~AGlx|1y9=~5(#+>R2*@JNdMz9h>!FWo`l2~TcLJsw zkxLh0*I<=TcVGns$6<@fd(NLr#zP$BymMwIY(ty?hQHc^L&zbq*Asn#a2at+LdMe9 zT2w`QvVFK{W+RuH<9zr%`8dKB86_ayM!>l)x#mX_2t}TNywQtML64usf& zc;6j3XEf}`)vJu+MI?a7Dbp1U#*J@43d1X1G2Z}oTTlz}WnQ{LbqlNB<+3b@r>cAp zH6`xg9Gw0~ApUnZk{=abX{MHgV3CngaPzlUPgL-2ZPd@u2%3obIW>Ws7v)b+c0=vU z!4-iB7p-SsZe_BOMEhcTWy_B5L~efhP4DWA3Bo*hh=ukwMVH2r0CpABe$61Qr+_=9YMQ<5 zI2S*Q%H&-%WK2AW^VK?`d&7kHe%b9E^^=-PA#1{ZSu~g}SQnq-neQPJB|1%Bf2CU* zhrmYu-e=go`68UY7C1?Ch#bArTz=SPD~dfJ^MO;|eWvz(_2`W+Gj=o3*$oX5_&Ngj z>G$5a<8N2@s;xPOP-aL#1gk@fO<`GjaYzeZ6WR$p7llxo=7c3r3GG0A!x?<$dGph8 z(Woi9ls^T(#%vCOTZFuzI5CzB;<@C%j>$;()X;UfGVBO^iE$x|yZ6}woqY{4Itu1V z#+yNO-Pjbir;A|fCQkXI#_(1spQ-r4J*86dSfpWB*#NBpw%(2Ia^&w}g1K)`j*dD?A~eMLA=tXZ>YLtUad}yHw z3&R&01L6<5-xV<{P<)hPk4zveR5)m*uHFG1YVC8Dfv6omDYxk(i0?;;z@-$ilJc z@TU~R&lMq`gu|MYTNwDU?820!JUdmXTZo-ddl$l=BqC5ND&h8oMo->*7Wb?nn9PB$ zPs2=OpRzW$5AJr6@>HDtqk=_Jw8x;rf4im|6D2|f{LT_2#XSpyXim3Ms?xfBuxjl% z9i+bM0m&H&*hJ$ax83HfdRHU*+<7L$>!TGfabMS@f7nMB)@7slOYM$Cps zu;#ek8!w=_MK&s7jF$D0*UGV(#T?MZ9@1z{o@S=S&I5BE)4HvJ_h-W!l3^fa)a`3LUZ19M$&lw42xc^xYG5ii4 zZU5=L_B^zlyr~jb_7tWWS@~n@Gwyl{*cUs$t=InP`1xXnVaf;kVJSLe>a1}#eDCjY z_eZ#Z0x&|Pk&43htglEo;#J%5YTE;DJR$&2v|c-*VbhB}$tPs=Tx%K;&p$AsJVHYF z*;ZXSZ z6R|4OEQjY>u-X}#Y+>>Z-x5Ee^6N(jUnB=31j->5mu{on-EtE}rs6asq>@OHNd>)Y zu<%^92lOpy5to0G0cp;jbaS;TCA#kIQ#Zl+RuILdD5Tb8#o~TENk_=AO$cnB8~`l-ML851zDyred1X5Kr^$ph|t`LDjZXN zj9Ru>Jk;HCK~8cp(IR{%41(DAwl;!bgz(f*w7+U$&pJb$Gmf6?gWwH!#00U>;T0!G*LyL?l-unX z*!~qK%LAJ#1LD@*>+gMQLzBh3J&)EZp&uZ8l2B5hNQ%?=T_faYsF%t&RYVtGIRc>A z+6(qWB+&l;IwUK56!AInns@D25qas>e7dkfQ(tum#4fRyW9M)`Z+Je$c_T?9&nIre zdxbWW_!h3e7S-j5Knx5!giK*@%cZI<9&OLWBx#P<`4g zHZG*bBX~!d(uRi(&hhtvd|bMB0IF(T?hN~)O~iXgikgUbC~6jxw(w$o>x{Ut9=qLRl}~Zy>{F*Z2`>+Ar^W58 zz*LnfR;FDA>smo0_syQGE#SXK8mTKF)}%X+O!n!l#3-aIl4&D~O_G;qGB^hkCH^5tTcGBw74#GtJX`J#+90 zjJ&DaQfZwT;}lm9n>jj$u{#l z!5=Ri-p~sgG(ODk$RGCF-8JfC9YKpQe@O4*%O@bfMu)#Bw|7Id+K%JKMNbWFfwaBt ziUz}T&zqF6=gJx0y_cyNT`K)1%5+5@Kw-XB3RBu;c{8~i2;FW9o zj-?wNQ;!O?r}bQk6h~COmNa@e{l6nq-#Z)AzV1yq^Ku2NbDO0!Z=WO)Ta&6>YbLAi16wP_NQ{bz&l zZhpUUUD{ImaO}Y^`YuIdvgv%dxWRUuYes&~)%jOzt6C%xYaE+4N}3C{a6f0D)XH(1 zTI9|K=AW8u%kd%P2CN`A`=G7UdnD>Mpbz%TJzB4L=5Q2sYiWzd@Uf9sXqR$+`i<+fhF3;C6=rHVkxL;-KZ~pQ>>hzdTT(xw}GfZ zkhr7J5IpykMq`8hVqbif+sm=y*vP&W+x(RKwepu!TR$M@Ap-k=d*0S96Lh-5Z)dLk zG0CC=5yG^Ktm`nKso->CBU~YK-*kr%d=TJ z^#viP+AII`(*z};M)Z6v6K374EbLrkSGK<`&2aF?6xnC`9 zl4U_q7qhbskxh~X@87P#^_lkeiBfZ<6L&C%Vj_I-_|-OIt5vyT(}ZAxHC5=17WE#Jo;5JLVrUjZu0aT;v4#U1f`sQE zKN7hnP_7Ghz_+TJ9MLmYVD`gP71gaIP=VBXYEi1J`?+N|R&9PyzZn&F*sCey#;75X!CzXm25{ zIF~{@*EH0FD>oaq%L>nX++I0A3Q;0&s+(4+j$onK7p1eCj@l$EMD9!pltNC0ZOohT z2g^axp0lh|&=WNh<`o6u&h++GcQ2J6R1I7>xaO~uU)~E_U-S9nK8#VGWawNGP-#a{ zaI+A!R;0FEL#dtNNOHcRV8pN10j`st=Fhe^b%hKXmt{tx(s!gHr0&Xjoh!s^-Phk` zVvU^@oGu@=57!T>-C*h>;M4+h)K5Xra5k_^d8o^)ILT}Ek@=?UeUMEKJiS{-!>C`3 z*eLqt6FjCM;v9gYT>wT}xh3S|tnuGC1D;%RlL0B&hSrS&tj}_q-?i}W*CFmvWxv${+x*S&xiYN#vQ_-bz1( z+(6nKFZ~>fZpEpd=vrNo*uQ8q{@Oeeup>vdZU>|GiW!@)5Hiq-0H$YUt}d=Z)sA%O1%8x7*<%2>RL#)A2=52#_S4o=}?4uK_sICY(ar&eMcA zwGLJLuP{D1jrjegx1XShL8^C8%r3k89;Ehp+=c-ADp#)7?@!}zg2U|(WTryYOJ?1S zXleZ22tiDgO6=0C*|(Ot1Pk-`W5xi+J_HV9ka}+TdgEW?BlXcam=MfIb*DgJC%%5rqoa zq8BZsg$IL|Si|hnl*>atmC4W_L>mdhlf$=PXFSF4qZO+$0F%mM1Jds#UJJ6O`DFul zc*xwsQff;Kv0S3|`m+ho6V##}^nKNnb*e{gYW1je8yy05Bm$dab`-QVyF=b*E|eNW zm95&?g2fo=4cxZiE*MU;xT!f&DspYjH)a<8JPA^y-(pD1Q!5N>(^E?M1VpM-lWl zJar8lfIThW@(3AQX~~nduIU5=I<8<%!>qgMnc+LBjhA;!q{+U|7@*x(aeP*6D;}pR&)Qqm})~#S9yg{!vz6wN9Q;;6L zCmHl6_okfcL(lt;!5R~JVT2R*kI%!fg_&qciBrzq(&xK~TlZ?>D>gH2;{SFn2Rq76W7%i{#@wm3Bs?-`#X?YJ2E6} zaRQlqvrah9wZ`2-rQnvuiQh)|PM?%fQ{ajsGWryNUzx=GzW~6J`H>aN;o?2F&Wvv^ zsQE@GjuSyIVxJ>yD!leu)r%S%)MH2T3XD(z>pNATmWnO{ADVj6qES~!9P)&` z#>&YNAio8!18NPWu`!bXB1H`qug`#N-Ld=XpdxYUfd~x70>r<6gRzU+y{^p$1sT8$ zpPS50IRD`l`wf3C^s&jFBYtyU9^Ely8(km)CZ)8rWnTy2QzWHy#e&|~h>czq8|b9A z2SswY+1a(6Vg-1M zJz2Tj;UmHM1sX`-e488arK_SsNHEir;9ld9NDnI_O26dCJsLW%nz)BwoBqnq*~+J3 zJ<=ie!RqcPI2#Kr(VnyT(C6oN<Ymfs6t^yk3q;y*47H7bH zGO-v!9M+ewS-$!y;uf7J4?b@zzPUYmY$@4ME`cc4*r(_p{%O4$OO>E6Z!NN_T!kqw z?g!u%;|Ja?+ zIV0fJk4E?}jBWM=z zyGiUnAcVhT4820o5WD`q%3*{ZrZ+VvwnC*uZv=N|5hMW0vRuiokN1#q65zAQ#|!XU zj|Lti@89T7|DK})1+*qYRmf4Gi~7^z{o{5^f9k6r7%`G}-t>>nrT_VX|EoWOO_hGZ zM)~<)eqUN-FrS9|aWGKO{v3sn(BGJi(1Nl%Z<3$+t1pq#0-8p4*sH0(_7`By1d!=Q zf_L5w1pcl*{>Os;&no@T?^HvGFgYyN7k~ecf5toh{%9j^B5a%gK9aw-VE=t2|2-xD z_VE3B#{L_){{IxXc85IwxddxD6SjzDMN{mgQFcrMO(uB9n<;;#omVxMyp+HKAS1VahsRf43^J#ChE6_ zQO*o>_9cOkx@_^@-G%Pc%RT8KaeRpbK9uLSgar99Nu^Gp{iiR?Y>&$CyO1!7S;43s zfBFt&FpdEl6@LBmOZPHI3zp7QCJ55c^|F;fg|!VVqZRv7DKOF+%<+|GTGwV{b& zcg3b;x$C)L%LTiU+gdrA@9z7yrpbld!t8WBmur4hM0CPM{D##-fO?x}C|Rn?P+k%T z%GXD07z%&k?rcZkhipw}^!*>J6|7gID#;gC?JjsRhO5LqCHv2Bz2lT$DN#|kvbFKe zQmZK)+4qt3BGp?7=WQ|#ePyjkY3tK?iAO6O?w`dfg=v9J+?v^srqYiZrtHRRFA1we zCf(RThxzSq+`rFPMIAsBu#E2fomkJT1++h1w67whMzD3QxbZ2?rLB%SHOZUO=zpLZ zQ$FSCy_w`62v;{5Dl#3Yc3C#C6!X~5v&N?~lr`VK=(Shs1#Hu8Ak+*&&tWC=%sUsg zV7rCUib8;XbnLmGrpks`3@y<7IWc(Tj&4nFGIdV3uh4jcTPugc)!cPu#JoM4>Ha8g z5pFuyfJpTPcx(~wAC2lBAn2?G2>n*Su1&RMUMEH|r%VQ1KkKs8SB#9H>J53f^QT>M z!Y_i1GbxHy9UGI$ge<;JW@f!Nz)F0?+b-)>urE51d;|^I(g(m+7;jo){m1?Gx83Nc zNv04^NClJSE9AndfKWeXe<#?qT*cl35Q=F%A-z;PI@ zxnDRsk*&@u(y!PT)>^a7L?ZocQM&YKN{m&^9?5h0n7X#3<(*W#x}LxPZ zvfJBStlBF~oMO1_S_-~7AF=cUu}O8^L4$w&Y#ca9b&pBu2!t9{PvzbPDE}q|rO(yJ zvQcj=I!iheMfR2XpUY~vTUAHFb_yz|9#mYL_vz2kGJB~#=nlh4KPu~8_f#i+=Zl8% z6>(alRhwSsJ|Q&^Bjhhk1pA-c9JZRMud|uSEvzqrDDjy==^aUOcI~5Nf=ML9>|i2-?kaZE6!9- z9D!!~47$a*_r6`Cq)&a~QKs|arwi7fUKN?$y?gg7=mUyXC3e|_<)XN=3nYG^DAH0A zty+@{4XW;L0|jje&f-^)RM))6o(YJbebqI$(374IkG_Bw>oUACpEp{$+Eu=k6XodI zz{I6n?#+sxpm2F@BjB-Z>v4Se!_YCP@YOx*uS@p?PPDHM3Vm|yPLck$`t~uqlI@p| zNtq31+()a2{W``gyr0_~j=Ftxya5H?uP{}L$9d0mv=%a{uQB-!dI|2w02jTh|2aON@Y{r=a)Lmdh^h8nwb#Du<-4;F3An9#(&V0(+j|xmH;mg|2I|mf z^0|7Myu|n3K2CftGe3anQ5Hl%EiazYR%AOYbpPHyjPHq#f8EHGXG?g;VP&MuTcaSO zgsv7Cmg*Q<&Ice4nX-Qz4fAIQi{U$Ag1O=~3GGM-tJ6PYr9eZu$tgx8?N z;ikruXF_~ecu;{Gz+ZpvkM1vLw{R}wnNY?R?8}(TPv2IfqXA=Ekoq>+@&W$A4m7oB z@C($%SJRn;0hRs$x1T98RWZ-w$G74Hr_uAu?~x`i>f{X1`)m6Yo_9eKS=os%rpByr zTRoV_@GMqt1jFSEcPl&!dCB29-yT}8?-Ct^ePOWH4NS6c{^!#!Y#h^X(YgV*?DIro z#{>MF9;JB6&E0`Z_!_Yc@?SQNlhpO=CvFaY(UVriC#JpVm~uh=PeG3v1M?G0W13E( zQRcI=$h0#9UpY7^UqNXTI`Q>sHJ1m_tE*hbIGNUzEdn%oG_q8PuyllNhq}e*CQ@Z_ zp5@E*YI_1Lh@U*jewO=9qv8EA%5zVG+A^eXcCdEnLL+gh{T7oRu;f z0)z~reOURN4FZZ+m4K?mFm$eA-eH89PrDAVk)o z)T?EcL+XAAEA7~XRc-16!!Ey|Zl_M-t@LVAbK?uCxdzQo+@|j?Wy7~pCk;7(d||7* zO6h@I6B+)?9!qHr3(jtZUL(w`Ni}RNEE7%>>0znZ&{*-Pt+7P86C{uYQw{<->S2fCvM+JyPhbmzI}O9fHB z(*ZntKUP;Il=eKbmQzx=E?E=qc@!*Xa9MHw%S7-0C=wqXp<9!gklh|2G8p64=~3?M zNK0&}zcRY|W6tt*;_GVb1gl}lzCPrjUZ&7japOBbzvy&psFVmbnZhyQf^h)b&{f3F zWyTndtT;?aWT9;x@dp#>l)EjioPo3!synM`kC4%-yc&V_ZOe06rH`DPD9jC?i@8HL zHs$-)@?h7P0?A8#FZJ#a`wp8CJmoU=8rKyy%GHcKN|;+6_RdIT6d5zE#*h#FE`rp_ zu+y@^fh#&S2~jdl4EP@}IZjFq6|?Wk5Az7SVv$EONlM&Fi6o>nNIj7VeMv4`x>JS@ zSZJIlCK0DW!|f(X%J^EdE!k-pt6vW?3`=y7cnJ)$65cllWLd zpFxvN^}<5_n5er{Bw;`fjVa+)D~_&ao^H>B%>}YMD#MpN*ZtU!yc`$X$7}98)PT2~ zY)!1-)!tZ6jW*y$d_k9>=#%!9d-#y@Kjp6wJwM%KUP0%LO_dQ*)Jnrr+ks&DuJAhX zJI*`375YQl+p80+{TQp?Wb$6N{$ND(>I2ww)ML62`WkoB;3c*%x z-@AXzU_g1@Y7V+t<%_}fLV9fJwZNR^C%<}IznZq-1LlKi;|#ce_;IED*kj~0^mlx5 z#sW#ObugDvO7Xn0)~4&zt)^%c_|@H|MBJ!HDNgb{sCh)gJ_@Z!Qv9}u+JzS@7Du>A zClT5Nok2?16CurP&KB8c{Dx_+g&^wV_mzv6h-Hw8=Zi&SySX@0W}^!?Q2Hdcc_1D( z{bE7~UkRs8P(ee%8q2Uf*C}vW~-J)gG>JNKO)UL9J-7N!3oG zYu(7i@WHsGofv9As7bW$ZvekyzAYmKH=c`h8c|;?ryF>xTZFpF+1D>zWHL!jJg9$L zgSWcODPRKW?vY*SSu-rbY%}R(=y-N!swC09X*jxWEE#-eo@^Ji)JUyT53AZ z#L%n2i`iddwVqSzN<7yz<*_?q)cKNnp(k&7%I@^zuM9YIWAP=_zmg3hF6cs`Z@}!v zW~}&9hlz2l*o8OgqJQ37Vt%nCMQUM(y;-Uuvx9}ks{=0gL^gtR{do>HPb*F^eJ(VK z==h48D*s)#hl1#6-jPvj?3 zO1@W5mv8M9O?9%_djjH$0jy^oSK=u}?|=KMlAed(kChbEuos?Fe!$BW8d*ZreL9^h+x$vbkCru`ospoDSCS0()xj=z` zM{U3t>XPR|_jU$L%-?^oEXLJ}Dmi(!kwtMUc6io7-X`H8_^LK;*(?v_L-;V~U!xV7 zJ!jRO61e|TAu}wHp2wuM`L^O(mgXaW3F_joA3ZnF_>R2t_PjlAZ&NoIeo-ooG${&_ zl!!4eI&2ES2@#5%b+HY?r@W=jWo3Np0*z%zK|4@#&Ly6+jCx<4mM7|+K!t_Q#TsIS z@;nDk@QZxK1b-?NKV3sU_9wh^G4V$-Fj# zwkh#D3j486k26~n*ZGZ{(arZ*Tfe6QjDs*y%p5Xi8nk4>SkEOPsbi$In9~5$Vj%d{1=R41NmG?S%w$639{~^az z;6OGzjfnjV;BMAFA~ER8Hl1!uhE{&NY#TrRaZRCB{j6_RHe zk+X-f1PS9QX6;d_E7irrP?}R4q#7-I&B74*km*y45V~Zt!bKump(IouX2aJPK75#` z85@5KZdJiVO|?cqS#Eth8_FQ=u}zqSus4bFuNH7}&LVdneCOo~1zX5)lF!j@>Jnm6 zz}d)NDp-`3cN&UGJX<{DerH~9MJn^^wI-pdvJX$s8iPuYrGjI>u5BJebCx_;QnXMg ztK;fftkGD_o(XFvT%r5lK6g)yS{?QXU#jn7^4>8mIG@+|4NpXcNKTp5n zBch!NSqZy8BbIk7R^*w%-D_6MeXljlRM65U1K5?G1}O6JIOmLGRy)A{wwZ5PXVOy+u3 zB|Eh^0Br?PS3?;faji<)W+UkoM>pcdkXic&;3tOoJvUv2TD`Ba(G(em;LRPdz};(BgE!K-5Og2RJ@KW!0&2!W7-m2 zl@b7ZY!nJD<#==|zMHcj=dvh52aeOmsc03_tWD&j8SM~9n=xSy67kJPM6^P0P8&s8yG7WbLnzao%cz>sVHY^j*DC~7LS;Fi3FoiHyXj|dpDQ6AiCffCq zkd7PiQhhqgSgBnWuv(vE&+nb$R+AgdzaB57j)B9nuRZi5T|TnJ7$yeT*I3b1UK+l@?%C z=nK2{ndZYOQo9#I8jphZ^5_Q>mShS$(p>F9E0C>+;e781l(WT1T&%LeC#hozFVWas z85PmNjxnkGm~?p*xf_Jea;~wDoc{`k@%<~od-ESAQ{_qum`_CNYrNvD@%LBuY`nG> zh+m-A5TKEX`Gfk)12{1&prdy6(tZ?lbR+>Jc=ehT>s#_sr)XV_g+#a=`(+5msnM5>GnEUSl({sUI z^Qr}U_NKC0m_JRa@i0+XjV9!U&M4iPTA=c-0K4)oEvEB530>GV8Y&0vJ_jM^kI!Jp zQa^C-?dM7nHcT+RKl#TbKqsY- z9!fNqJy*#(kAlP!1c+6A&tsLMk|e6`Ak5(rE4unp+~cz_6`*)!@{x2I{gIP@$B4%^ z$%J~9q^WkfP_d^ml%-SGZSIg6#|}4JYN*X)V)4D@X^&#K*L#X9 zM?QYj9&aU%z25JzI+JUwe!J@Npn(&o@H=<7-0d^rX=0W_quK(2LRTp=Icow-wAs=* zF&>tfy;4;7_4k+GRD70pBHj7mI(O04Cgul!#;e|7HGjF;@wHe;^iMU(-#RNPQs|hv z6b~Z<{&Zpej0nt$n7Bn9nYo?1e`w77U;c8GMXw1h4|*uBu=S_6@EGTE%J1}Z$H-;} z{Kqx^x#W+g;FH|m!Lo4MrOwuSlW7PV@mB}t_!#dV zzhd}HKi#2=hR*xnU;g`J`2X^<_?6IJ7QzmedW!D}emi=icY`B;-JfbN&@-S%`?1&Q zpSrJ#20;Be*?{SM!tX5>?n{NwVF|xQ4>_Jk9rrc;1;V!Jxc)+^_bZc40ov8h)-`Zjrt2vB<-hxyHJ@n*ASU1k{8;kx z)W2_61!XkxM=66jTDi7cOa0n8ny>r5a@NWGnkRLL`sEQ8A#iR@H~f^+#YUO${(Cbc z<#tNGa;J}TYJv4#ZqZ4{qf=l|jH7E+Ke#elQA38@-QPA(y<5ma=eg6DjWjt!JqlzV z-@W+j(?5Yu%btQmu{2od@ct>^JrZkDs~GiX&zgR{e5|=1xu8*5yT>g!-@uB!Gy_sH z7ds;eh8N&>zbap)*DwiEgp@4rYBZzwxqpVP6x5`8gEv6*2`D3+&5&?(r6bMw)iuHSAH`QcsO zUq70ZG^Qf;EOV6f3BLvOqpOT7?3FClWct7F2hN95a9NMtxAU=GyIeWZ_Iu{wmqx+d zn8xX1ec1+cGhJmZgh81gjmi6;q5nr>XkLQ@_w9{Y8lv}Cc>n3|;G<>Ya^d$ojC^kJ zX;>L5Zh;4Hfpp8mD0$9!o;kc&WZA`tG?tO7m`>Pg@{`G#&r;}=sxQSBM(hkTAhm(DnRFRBvW#LhcMKXb1k4p42K~v4Ze$59svbT9xxp}yFFsQrn)Lp? z%{Tzo2(^>*MJ{8d$xtTN0mjY0)3n-0f(hV985yhmTk-M1=nBp5Ht4?qIl?_N1=rX) zikLxkC`CE|d8gj@3g-AKK2Mh~hQ@#{b;KWwz!u(ox%+nuYTJ|~d;vB3LBsn=1Oo5+ z6(WeBCVpX~TH^!a{@F{~?uSst-j~eo%hT&cnxgFof^%?COQC+975xq}v)d1Lg`5}E zdU>>aE<#(%1v%^tlHQ-SG}a{Cw!Hl7zJa~QCM`8lhxqLkJ@vG> zhR)Zl>-Jl=@aPKMz>fo8XPtTJHjQ_GW=!Pu+0CQ(htP)p+JwX8EPWDc;!Q1?_bnkL ziT)=B^7P0@=A(7!QN*b;h}a0paAjOJ-jqNt;sIt=U!iqeMcjJ{WOD@i#kYcxst}8I zb}Qg*1noK7ky7ibk;g&kXJeA|3O~A>JZy^@ zbfBvuzJ>Ao!rtG<#W_W*E7f}&J!o6odGZtqVV zkDJGLJ5x~`IQqRWO}S2vAE*m#rcS6o&BwcS0Uen^=et#wZ$gAc8GF`ve5=f5d4T`X zEr?#*;1@Xz3=ZXG2t_5x2+UNb3qXZh%pC1@LR}C9Qcz_RZL;S^=<>_9d%&4#U&Q!Y~*to)p!d??Em0X03oZjfi&mtaW(!r>;HHGOeI&UG5cl?tjVDfB7IU- zb1Qs8<#j>#joTIZH!>9KZ+_13$3R@?x+xeFa@d~B$;Pv6-soXS&qRgFn7z4k(FtKh`y?Zv(Y3W^R-2oJGVU-F})A#I$$2#PkTh8ZpGU2_h{&V!WWpo?J;+^(|s^f5vcpahWT zA*jfjmjHj2qb0kge5{@-gC$b;a0zVQKAA^%KVUJ3n!6x6$73ppIv7g_GumOK^mQb| zxe2ga?h?8;%P%;6~k z6REZCBA3I)srL{gzQ1U08PsYc#`3coAyPI>TU7TS=I|6}@=Q&k#FC)6s_q)2n}Nha z*J6fW(;(Q|VQMJ=NH{TlV}2q>Hr*@yOH6oVj?M*rpG7|BHmcb66?`UiQ`nW*g1`z6XC!n+G*J^xFc~R4!Q{mnQI-n zRyRrGc{GAEf2bX^DnT#9Eb5vI<<6v%ib|BRvej#A848osG^wzT6XB3m1qa4rVpB*t^<3Cz;X0+#8&!Ab3}}_o`pxKnS$iZM zXET3$~bgY+Wy&{&I@^Y$-TLYG%2(Z#H;)A<0jT zd*N4N)Z-YP;Ww75*^2)Ud2b$1W!t?EXJ>~kQ5ixqG;MRqPzu`=iOlm{6d4mLnKqfr zP*Ri(l@gg}nJPjh^O#7A%$0e3*V%a6-S_wR{Qv&*eDd7ec3tOnUguitSjTa!)MPGt z=RL3qX2e}bZlY2_SRw!e%@e)%rOy#l#PZZcG!vY$x7CVqX%k(ttki{x6NM4K}KW-V>kK+oh*%gfgkk7kO` zjZfb)HiWbP%s8~xhlNBhxgJjCGt7H6Ry-~_Ge7Z+cKdXd=l7G@weF6@!JKV&@=Xr2 zdz~Tds65#8*yN0@raw-KKOjpFzuy8{3}el>(uswu-8UAOIW(d4wKzwdCRtZH0tY*0 zx%h%-S<}D=dM(n1Q90a>jM$jRCra$WLok8Kb#~(YLv{+wWA&aZSPuXxKdt3jB&!WP zGtnzO^Oc!#QL?N#l5_X5+l~&t%)&VdUMtJ?3qKnYK`avq$;v2&63eXtj`U+V0LE_0 zEvv;}N@7=!2Kpd~XfLYMYJU3O#u{yE=0by`n%ydM)tj!NzDMjaeJOXxKp!LAzUxY; zks*t>npa!7P@e^rOv1F@UjR9=kE#CLx88G8edA=O+Cm@HjfQ*g|OH0yoWt~#U?K#{{8aRP|^1n7h;5hc@CbeIpTPd0V1I)R)!#1J5_v=h%05+84ZE$7@>Zo;I9tYw5HNOjHo?Hb)i9jnaDy4|Xp~ zcNd=%!)lR-*pI-xhS$^JnOTF?A52;SZ-i~Bn+(P~vL8@ypt4hRly8brzP-P}@&oFM za&Nz65+U!gO~@k915%CPx7u9e43{;EUG121`VPjg-{HsaOF^55IILsyR`X0!*vo11 zCS;5eZ8;ep@6WHk1vo1e(+G(bn}b@9+K*e2oShuT*eua<87AclToEz-@`hTWGqAlg zyeTa`>zi3{f%Pgg=T$}EBx&^om*!3YzTan=3{tyI9Dd?MPM=c`Z|}p=U+B9SO%)0P zkW!e(aa*<`KPi36)mvl`Kc5&kzDQ&Y2S6xRabfBmoylu zjkhzXyt#UL*?NBSeOm348&x)M&IuHo?iHa)dvVa;a}Yh?E87~GR!nz4TWg}lBgPvihXGb%`%!5oV}3y zfcwbem)e^N9JDId5w8+6hqfX>%8u7D0Rn8zA^FBmgF>hK;B$E*tpxgBx3W}s6z|x? zw^9E^nQq+QHN9FECcSLAXqeDHE*LR>cSu-{5BHSGuY$RATm>4;fMw_LWe5`?)^jT-A z5qcV^BCDTLzX@Lz(22+CtG(R(kB@A9AVXl52RvnjqsVpibd1u@j-3%4L2^SoicNC@ z{z|+3m=yaDdT_bmdNv!7=pPi%kqPPDTVQxqzdRgp1q#JZuoqF*OnbPVMHp{+IA!_E zhoiMd8^lR5H}B08JuNjB6%?4&aXcOmNFN@j-N~0xjwpeK$BrFK`%vsMd=ij@H@PJl ztc$dQUpj+yc6a8Tx67bi{o5$xR3P+pY+uWlXcsb~!sWsh_FjTyTeu>$&$#X2=wZWB z_X{>a4u>RPbaeh$z^cXi>zlua425AVY?VD@n3%a^Kt;cSo~-5WwW9A6K*^sJN*!SW(B|_!;lRHxo#cbxe~jJ*kXw?mdeyaXg7h7|phLU9ddTcf+O&GX z;j8GQ3H|4$s%L_37jV4T(J0_T5{es5VO1x~{4d8-lF#nFPpM{2S|SnY>3R=(;f%iDA&xNbtS#!<5Ux|5>e~BNS-c^7cSl$dq9$xeD=&PUV(kS zt5=k+nm|_CbgEb0QgPM26R2SSsLM>;&g&=tI&Z!+eQ9Ug*}A`@1{||&5(Rf!@awm&-US@V&{^7X{aTff zx;ML}(3eL-yH@`)(RNdBv4^O!T~+X^2T30bt0jNx=*v}iwCW@Oh>qc$sDV}OXR)Pb zWA$)QRPS=Hn^WB}-oJiXZ3__+jb67L(QlpXqg(PwI*=Cm@K-xLma^?97tddHxpA9p z`|5|tp~gYxDT}9LrC9x&%>3|(4x5^+`};`x>l)x2Yv}N|E+4j9OH^j)wZ5)gl684C zn@f?On5_Ar6OdC>fVsXFY3olp3-4@Bo2gf~KP|gG)S7SFGCQ>Nd%hgK&U0Nw_GBu_ z-#Nkv??+9%@V{J8zb>JI0T)?+bY}wxHTLA-M`|)g6Q7-=??MfeS#Ws&t;Xa2IPz?L z^0s}>1?yK|CLw+cHqztijp}%+G6^SUebo*@{K<;(kqQ@ElGla~kA&EM4E=wHdqR9T zruNXrR|XrI4{hvl@AqV5JtUbWNs5@z5#lFMzxCao6odL}>`I13D97@ccRqY2_JM)W zkdx4sRXdAgl$^_V2bV8?(VHt@VcWoP<|{+*9?VzK#C5B0v|I{XyL|S#2>Dk=y&S6u zB(6*A1ANoAzdGUqd*m(=pxeFoIgGS~z%o~T*tSS_jc)UGk{jGaKcSDOmrLloQ8DUy zYkIR0r{4wwfns=d@>0jejrX>dRl z+U);)3&|g9RO8s9oG?bQmd9t9T=(Al%KN0Rh&9@a2BxKb1eH_U)~#;?7oI z&c)N6+R-J)IkBI9^?Mqxhwa1aKip2POaJC02k+r8`_D42UQT0(c8WK6uX8P>YCZ@B zn_FY<##@P_>&TephmQ`EY`!m8E?+)(J0IRBa?3Z!mHT@xllGFAxz*<5Qc_pHMI_(y zk00eWE52OM2pYE>fdAWbjt*WasC%%aG=F0pMvYVR;j8EI!qD65tGb@YBk{G4Sa5uA@mk zUKy+>P@YX&o&S2~~UfP03~IP6Lx&QPW>b$1Ab6WLni5VzJTzc$M%b{klDr0V_{#(fM?c!6i3$eK z&-qNBjJE!^i1-~Cf~fAPcvpgM&kPhGO6?CJH)bfJN?T8l!)=lBd;*xhM5;+YtEJ{_ z+{#>>Q3X}$J2-NciR3^bdrYl0(RG*qT1S+S&Y^{o>^#8BtsXdaMJ52~YLWryf&AlZ zkfdWok)&&(g4VM)OMW&Oe5x~{G1LKXu@M_~19BzzJZF_$PQz~00M&<@qx?e|A6}e) zw4{eyS|`gh@P(&62x>?Va4|naMuYQI&kLJ{ zND^N|4tptn%?UuS#~x=LoL#ozp|PCS%d!Z1te43}pEChstwX{egM%Tw$j0UNy$eZ>85Xs zx}FFpM`^Gj&+I2qMK~?-ymA&Yzw&k6>cesk(SiIcKx-BBk_Ar%mt5&c@-+xmgGl=( zqj_O=J*M_4-TLznjf?ZB3+i9bEsPbvv6R0lanV&TR#6hGJ6Khk1aNhZwN-v+eaf6z z)0M@!H(ss-?qKV0yeD8tfw#u?Xa#wZc{=w2dcr1sddFU0USWF`woU6p>vLG$xWmn$ zOYaI=-CNK*?}oBHA&EZH2~f~3aC#l{*&(e z_OC)>!Aq76`vIhg9S7II@lbc@$-MmvTD5Z@TIsoYaAWma{0ux=8DWz1)l(`i+r9SG zj-Qf^-nTgL0PsTr@5V4PqMYW;;mJo&zR@XV~-@~$he>lxHWdrC`x#A;J|@|sp{*!IUErSix(}Q*VDLL z9zh+Yp4&FjukwH>6Pe;sW)2V8QzSB$3!q!2J>Hz>Q_~-L`@@j+j=N!!LrLUw0K|3+ zsNC9nx*2c!xcsP!c_JZ9PoBtKY9$_iUf#t;Ld5ULldFTLWc82W41A=wWi=g8xV%NZ z{?q;qByT&}?s&c+9)qe{+s{05i|@1b@Pudi8`b^t|K7Aah&fal?b)ZoV7Sk-NEJZ4 zH~X=8?wRG#k*)oz2F3Rc5gFpvOeLW%jXZxnOMspdjDv1#G7GqSR}V z1ec-EXV-djxAILhc(vB+@YcJTXr77`SbEdXeWB%wsEcBTX3e54dDj&q-93IQd;n!t zaXsJ*N_}&2)d>$k!zKnbHF-}Aug~Z_M@Vm;t#RAAb4#UvF_i((fJ3Vf#IZSunyXAL zQ%`fw(m*Zh66{VxK&De6ehQ>ig7!y;{#a$>$tP<<5{Js66D_MUtU##}7on&VS}(m< z=PNFla$8hfQN@QGliP7udTE7`Jo9XAOm*p3lKOBp+WVvUktye7Rcz+ zMvi5{zST*P@iQ8#eIBmpT?y)CCpOkX>56r=m*Y3xuH(uw5$XySyMK7ktjqw+4m)9? z`}7@eu}_kidQgiOFj+2hR0u&_vH`{v_u9jcZY0jy_KSRiR%-$G=}7te=f>Y%&^{%# zx-uXMs^5Pk_){*Pz2i^MRu2uwQOM5H&dK_(&je^to+eGr4}g_j!ohMrTzU50EI2i_ zJRiNC(RP*M0eNE9jXQD-^>=;csqn;xO}((|$f~4QPDoVd04;~hFiLG7+;OYTQJ&JE zkGt}u>TSIAT3z|3G<>-)>6`X1*A>o&4vI{Gq3f?Bal4g-(??i^Y2c2_+lS6C18EB| zX`hD+i&c>ME@*?#i2{5Eu1!9V&Alg8f8RH;8QsSQmbf)R+Voo!M(9h8U}~3V3;%Tw zX?`I94*y2nF*O_xf&qU(CARQ|8b*`Jb2Zp1ZeS7Vqp= z(EiT1WPAkojuC|JHwDhJ#q@1Axd455KAl~Gg=Yu+lUN#>w*m_wv@LRH_T%%ri-7pv zZI4w$qq^2xP6r+L?pe1+#dgVy3PAZnV>YNq1)*u70zNK?`7p2#SQMI{ zEJBG09S{wNEnzSoqt5E?8J3sX#rtiOh_1J z=uklIq@Ga$^V`gzB_8sYVOlcU&QE0Phu1KiLYbKdL?#xfNrSW$qc94GvH2FON`S$7Uhc8p= z9EqN?@Dvr+t_4%&PZ*uZnm(w?_P*f03y?=AP}okinp6A_$KWT*NVgAH#7d7nc;DaO zUyv+~JZQj{A!kF-Ax-9^)T5%Bu~tZ zi?c)Orfs$Dpfqmw!m3%Es2R>q*sXE=y48YD7gyWVJBOn!z1Q?kSpG#`i^jv?8G13k zrDOf3p0_J{LVboCrWfoynID(-ydc43ft1_G_lUEgWX~{Ui%{x472YT= z3VV#@N_Jwha^*#4FCd_Om!e@m{{53a%g!|OxI z5gv=+%mJ5E&HvlSX%W$iD6dT#`2Y15SjOd& zFKL=e0tf&2F56^XXnd0$ree+X0PaNsGY=ajEK`r&`OH7c|c zPqi)9|4$!RyN4h`Zow-gFXeAUVAZz}b|Ic0m2Sk|fB)|!ah4E)807b!2$NRZB%k~F zV>AcAaJ!7;tNuP9S6#)=kIVDG$0NQr{zY8=w+~ZV_yC+5?a09V7kBYrKTeN&5C8vI zbT!e<>ni>Mnl@_oLLuzRHgmLuD(%6*!%f33$r|@%7?z4m{r@J||9+I=La>wWy}BR2 z{nvsLK2hV(KP?O0df+&m?YWS(b-?K2?qN7HUBRsFRlw}YOTaG6gEUhQ479pa5JHLi z`x^Iyx$B>nWnp}!Nwo#PwuUv@D=bDkihg&q?iG9c@X+ti1VzBX^AqtO`}=QVaP-P* zC2lS$dYOrkXVwAOIgFug^mr09X}ax!YFr*7r2>t^IKBolj_xermFwI+Op^kFo^Kr4 z@?43{e^D=fRyx5t(9}wty6^Jq0O3f%(#tvaJ*Pr-FzPi}TB+3&K!9wtM_%*;-q-Jq zNdjTBDZO(72R-&KGSvdy;6DtWFG4X+bG#pb7RD<52&BA)%!J`q}}@F)C)_KkGrzAOQz*kMiQ-%LI39KL%*KfP-m;ar)HBSU6h1((vl}l@@ zlFF%<41x9ASHgIkgro5*PtMZi7zWpcW4EmUI#-(A3|n{V(lDcLrP<2TVt0idJSZ1q zV4J01^byu6Lm(;wlDo%V3KYMB3}{=*X&Gkrs8X1?-(J*>{0fYi|fyqDs1+C79+V7{`1o z1}r;arlV*Rvr$8u@xfc5IJLHSmbicP*L${a>7pz%1E4U2Nm;-%mgJM?i??Mwcy3I1 zX+dSBRg=Ik%_x8Q*tdV*XyH?sLqkzy>}2=-rpXwT7#=6CS@XK(v2)`U7Li(Sb;cDs zE?-^*7p%;uuMGL<2bYQ6-uV5ECN|TnIr=3%1|vn^1u=>WhRSoX7LUCKYE0S)Z9e}Q zr`4P>`f(Lp(K)CXEx9<;2_W`c%}c;_+bd2Fsno@%MZD072G2aF?T#i4dykT+?F~@)|h7fvdgJ3i$qV>J~ zMZj&kpA1we0rM^T^9#R3J`l!dzy>K~-{UjTu-FTE{=O?mzWFHdBIWyI{p>0%KbmT1 z{}$#8rQK3BQZ=7XjBJBbD;EkNEFmW!P_u!g#b}U%SS@;@!~y7LX~w9O&E?l;rC0n4le2Hmvp&WX`k;lC1xeWqiWOs?MY=IQNo*N_gY18&Q_IleGh;cjDLFZ!U zg4Rzy5TO${+Zzn6G2}&g#adcvS!0Oh_WmbBbe4FXuU!T50}r4l@go@f-Qhro>k?;w-cDTCuQ?N;lW_3JPUKM zjV`)1%81Q~Oa*AzKQOoe(Xsm)+t3Z4-GE4ZtV-inmt0vqYY2@JYCiSTuLIaU+dY@R z#ofv>kmGgh(~vree_fE}0!a8X6eB#}>Oo|LF4Sukro`P!NV!uCeFtihCB+;`D?@0T zCF!ZVZj{J;n!}OV{G)jkeg!k{m6s%^$uf%IitW-$p>r@LCl^9uk}iUo1y;4~vD- zTm8a~h%1}xUxQ{o@9e;_kSJ;D2Ui*D%XGzT+j~FVX)7~jAXokoB{&Sp-FK-XWMfh^rKBvJ1ijaYUAy%%Cy(4SlVDWbU;6UC`-1>%@Gju-;L`a*`_X-KE6ngk#87_ILV-y3gw7iL>w^I<7X#{*jJ#W8lPU?A7*KN`YcY!~f-QtQAI6T_0do5Z|_wsRCUYtviq}jTE58`fXn&5Zd zOIo8IPyF@ve1+OB%m|Ku&=Y*X@J+H_$Eci;IOGHv>#oS1 zB44*YA@NaFWJk_Q^;%nT%7MCC58^E$l{n)tvf#SiE3&njiw82FE36j1VQo1aECCv7 zLoW-2MCBNBTk`C>s$X+Yy$dsp#VxCCOu1I^S1d|#t8(c5@dvFUo7P64EZoJr+)YCCnD9c3!0ykE6OTy z_iy1cKe4|Ny`{A^J?%-gNDMo@j%dQ++Wp2;(9qF9q1 z^HNtYC(l2l&>g&4E1tL<1JUcKAF{dWfC-eZp6z)5BOA)nAV@PVFBmzT(a7mcQ!#l&y-{+Wl(8qRd ziX>xA-iZ)j7KI|9$tT};^)|S>hFS?M>+};jI(8z_b(_&yl~BSh06#lG{`yws2Dqej zfw1;Ot?kbP6Z|nI*T~3gV)ygx(f$yksbNU)xL2wXhorwEIv$Gg@~3B5e_S1&h0KF} ze*8J$wuS)rZ@SaorhOmGegayx_b5QIA(Nj;3IKk8(YY9srxdb1?I?4tF@N8$EZ!Be2{*i-KTM^A1{Yult9NyVh^kA4hzA!tU z8RE5MZ*tfZSLwqMvVKrcfDG-`cr|ioQ*$U+rlIww2lX!(8Iw5$?K-_nc5UL_OiD>6 zPnPsaq~YP)FqKVrqm$c|EG5*`CkR5xJ3PGo*f$@XO2Zd2&JF8~0vltX=vtY*_WCi_ z;u9GrBcf$n55>LP!<~9{a9yAeH~1PBR42pOOl|7W5|)ng@24@yB(UNyFI{?3vIRtc^}&H&?;qRp zUJPM^_~cVQw3p$9%f7nvhOIzd4W8s52Me1a#*wEJ9 zdJ+)x>F1kO+o6mffriJ?^W$8urleN-LaLDFxlbo!cB1ol8mw2-N5KV*M&hc_K4c-lDkNT4&zL3`rN46Bi!)P^p+?c$ z7k!Clhp9{l2*<9w^!rc?I40-1+yT?64j3Om+s}RAr^h+>&iL_O&=l%{F@VM+W8q!r z$l$i>Rzhn%XixuSPq1MW*jyr6m$h{lDw#~%X{8qF+}^W$Oh%x_w6oU(c=MAkl9RYe z5=R(%8J@dOm%O8V0y9Y8c2TojTLcE#886#>>!vD@7+ZtPECXa{UH6V$<8lxK^Qbl! zQQMnu_9fNXv)t0^*x~Fe{o(o$O(@Klt%5>kblVev$6jDLUjYwCqzKY1DWKxL@Tkg{@#(z!!0Q{P}LiI955s3 zf9w-Wnj?zue(^&I)oVsY&R%6>(o@3{_XHjZMaq%eVsV&SvxMe>p=Z7A6GLrs&+dKv z<~-v69m*keQsRpTFAT(<3X@tcU_CYrO7!8&1FuWNv{TC5I01G4U?e32 z6vc?{5{C15NR~Sq=c@x4WV=d)C05ty>}wHG=M|MJz|Sjq1DrtSjGDd~A|j6N8zY;+=diDfpL z1%_jUwt3FJcYVp9f7AbQpvvata@pbD0{M^T8KOL5PuxbU8H2Pfq7ma(b zM`?bprrz%7k{Cc~-sLlVd?0tE4P}jwM)`ieg>{(ah1aIO{zzJu!kTxKJNxW{=gh)h z6&fPID@Bu^SjLpgj!wnn^>81=bSBRKyimtISmE0bf=hcAU*zwejb*w`Yu^K|Fva-^ zJ(5N22~3hcvbJ+YKjX~r4o#M>H>V6PbNqTs0uZytGy?-vLS#{Mc#=C+Bm1OEQ@}6a zCz&&zVhV7y!>0ZB8Q^SZ`(>5j#Dq63ePX>|k0g6pgZV<9c$U2?rScE;pLm%m@U=+- z^#;QmU+9?Kh~^&5c>=P6aW6@XU4CC5jt?+yBGrN4Xli&g=8*fFC!Y6J_ob^Aa;@He z$6r-y|MCL(p3uSn;KiZO6-o6Jqiz!D=~H_@81lf z6hJDo&a?@8|W;#rcKlY8-*c zr!_>=`D-hI;`|;4*-*e7-TG}Flj==}er=||f1h|Bv-5+U*&me?!Icu``3N2q5dOr& zp!Ef2O%&ux7WAP*DJ89lC+XxT!J!ob=rx5_WC~^e{e}tgYcLiW_%+*#e>Yd6@!>RN zOclMsX6!t@GF?I?7P9Q8+}NG|R^@$P47EwrG%Pvr5AEsxK+G55`(4Z0S^d;h@aJj! zFE`YWNbz++27l6FW{z+}N53*TAHFB#|M`1lf&_2B8)knLFX0WCnsvJ8$^Y-)0yR&? z%G%${KrFz3=r5$0KUTC~q~NKk;V!Jcg_7xfsrjETUj4M`b5R?Rzi#f&tpsavlmQPh zBAVXfeR>f0@9jpiUkLB8U~5&(eDU{w)#nVSVy4Bh7`;CzuIa-kl%VPnw}(`j{A=F? z8^FFvWE^n+vrzI}YI^X8Gov@b9}f6G{xI^>y2X_H=Ou0=aOC#}0}Rp$h)m=MrJQ43 zeGEQ)eKi^XMJ}s$hnGUAEbPx7;z%LCN|jasEt$R;D^_X7GZ)%dFV*k+q_lVpi>BW- zW%Ro<3-g1pG-(rD*3YS?_=WB&64 zQLklpUhPMbV0U8VGU`;isP^f1jM(T8qV_|@Jar`unR!8zlD%>oj|-$;MzpCo;nzjx7Ij5V`aCTP$N^X+3% zLx4vo)hb|{+d~GyJ7pGI#aqGi!0yc*iB|B8I>deos-QGBkhteV#;gwx6pw*;NjYz*y+o_%r*S(r!c!269j~sL==Zhvo?y7d0zI@qKoOfmo4uk9q2%T>@-6 zJK%@pJw0Ua+4aoxKX32Pf1ohoc#Pqrr{Ci`qPGAK-xk`S8`&hx9KaC?q2L}|teaj9 zzFz>_BAXCK{w%0t3Syud&xJj&4|1i)kg-usi_T1VJ`dc8`lOl@gbXWFw!4tMR9z`1~O5?H5l-`Z~EE+}_loP(j|g3?O_L{iTh3 zxS{>;FKtc*cYunPgl|r)FsclZ;rc&^V6;(Zd3UVyRS~<+=5*I4C?y*Zc{BGIHB8${ zU6`dokW{X1N26d-GDZgB@NEu2{+B1?#95(9IH)_F9vTB_azIj8EpX@^b}B_?fUj{u z7)DkLxlk8No~2$`L54c$briU{y+jw4XSpdY;t8GPdU(TfFk&$#$k|Ha)qv-T9lKjjC6S{V+0X|~i(FKk zK+$pIp)7a3Oc&$Qgs*YFlpcX>jrm8!_63@xyq!k5w^uw;`WNMa`$Huv%M@Cu4YvS= zomz&nE6D|>RJoEdXO2!yF%-m~zz>?0dy{#(geHf6Yd;ZI_=-A{6`JnH(I_lva@C=6 zHQzo2zi55=GAncrrmS~BLuq^Qh28r6`dQDh$0o;ZPV z>o!dVVbt8e3^Zoh!ld?{Ogp|Sk#vuo20PQOGf+zH(2i63$Nm4?nxOwLdUrS@jQA>F zn*9)V3&W%pX`P@NCu#r44mENh`R{>wf*-S32P;Z_SfADcSF<}aQa=ISPS<92g~IoH zbJDX;pwcyO)a&L77%99&ok7h{zGmulPm!=f2gGFWU=)kF!qzjFY(lbR@pr!qjaUx% zK^q|xc>2xob}}83Yknf6s|@_f$4zRxYoCKkzFTn@C3YQZ2MTPFBU=k%w0t;>4dG=l z+7-e+P2v09>d@(<5{Qo8ygl>Ohp#ygHGJqF#(%xlvsh($wtkNONun#S;iWt&=(CKu zzu0y$H6_KH8oTEqe!(B3tQ9FD%Pi%tUhJV>h7YWy(5=?**sG<$yuW!2Q75N5kPZtZ zT~xl}&R1}W5yZOWc@~yRT00>iMkqS^2?gM9)kG+4vmP3N?RglZ297Q7m&3MtEq*CY zEQUuqKC_Krnm@B= z3EGZli0j<8q+O=Wtl0P{onmDkDLmAl1tGf^tN{M#Q-DBJq*-v{6VmIJjd1JgmwChw z?>R3c>w@oj$mF_V)_Fcpva*Qm-!ux07N24Gnu( zmpgq&b@S+;3q@e+2)Mp?A>gap9{=Dp-Yt^}rJ7Qw_eUVh=1AfPWY<019F@WK01oXA zAYOM*Rkf;{CgTS|MUoa+YnI5z^;KBexSC&_ z3*@kR4rIh(b%K1MDmva&nQQ;YBh_Ris`*@7zRfWL-44xyj<-7BV&Svl%KOM-vt3;g!e|Q zz18`s^YX`Vsp@-<=&48Hu0!0C!|Ki!)y^k)heDVs7~v8(6_RI`i_GjR_z-%wf(_!) z(UW3B|I3EDiHydObnK-g#|+54iYfZP%oAwqr|3**KY&zvYkJJfhjb2iF_=hh>1QYT z407;~VxZupQ)u=N$6}8^wA#NOtB+5S*HbqOq&-d9l~x{X5iAuqbXqU8cTRYHkRX)k z8)*6`x)@$1Bq(Xor-sKR4r_b+2WKhJ3vQDNRq#kEXPk=mH~kD9v_WnWzQCa>-ddha zFqAs=*o@lpLm)rcIvS5WGP(gY?Gv~p^@YEUH~vmKJ9rV44scG$q1VSsOR?crcTv46fEcqm>hD03Os5xe~YnlEU4L4@&UHic)l;2J2Y zA(qd~W&>=rq*VH4_ZXfgA3@+Ef6cakG+#RC9uzEe=sC5MVvea}7to})>Nh*`1_^0C zOr*`w1LB%RSv#|3yrNd9_z)h3Oo$^cg9sSzV9yC#)t67I*DISx0)PExnyN>dxkYnZ zg}EW_!`7{9e`Q+#T}g6Geeb*JQ@N|V2Khv7+NreTl~2Nl-L(brqiAL!z;f-8%zZaZ zJsTdm->~q%jc88RHzOhDH)5Uor!2r$%&~Z|=;{GelQ4EesVyT3bG=Ts-Mv|9`%D0F zlSA{L&OE2}OMJC^{vqC5mW+udPo7!aX}Bljn^nPBp;_waRB{i$)R|_s zHZ~j3rKE44@7l7&dCpruJ;BgY74HDU4pJcw9f>W1SLV#{M@F**&yta>mqzt3K{=$d zlyh;${@kGsK9eWy9;Nd`yiIDH7iw70R7lpn$K~$XA-W+%nPPLRuTHnC$!`8hO#gH3 z6%T%I?1eLw;?F)e4`BPm6ypBqJ;$93pP1npQ_L?d%;W>Tq4gK?qT@g6uUkl z4o7q$`2Ik5VkD>O7!cbs4{~3WeX@p{{W(f&#c~3D_HD5EGSGB@-lzd2qL?@VvE5!i zz$LgPiQJiJ4txcOyaU|+k;^A)isvuFG2IEmjlpwA_G^C%28_DCrD3HqyH5NieB?tE zL&2|J`v3Kusy7h(l0Bm#Ne&SP2TQNZuL54UjG9F1G3i$BK%^HNqkC}M zDcD*sIHMP*JqvzaI47R`bPNVYUNnLNzqr?jTE>?*#{*~zF_)qM=o8K|X$ya7rN}t< z`7YnqIc{J=1&!p{c4Sq%tJmQ2~-<<+lTx2Oe?hp{VN3mXh( zfR#uiFsofXu$$CKVy70bls45vekT|J3Kd<-&3@HGs;FifFWnD zjmsH>5i+48J%GYjyN|qrMOKNX#ThtD#_dc%`7`YUg7V~!=+u#qo*ysrCJjW)9z zoJ@6^>S;?+d-n}vXAY1WB2K)HJt!u`e!Bzw?vU`^e#^$PcN9lvKUzG%Y2bBIZ>C6k zEicxW2O{}DBv%%YjfP%qhbjj$&qo>Vb6=~&nKBRJiz^YGVF>nYVJdT`3s7WP_3ytI z>$?u!gaQ>LT0+V0g;@`asjn{uyU+wuI5AxzcVAGs5W^!I;3GY$9)4KQ6*onseS|kI z%E1QgJ>r~Y7MDW%Kb_v(YC>!RhR_Sml99cHKU#@2wf+MW`fQQ>eemymP{I|z{0w0e z8^Fk&Y6CArGIu#lPpF-Yw}x)oW6+f&==nyj3^Ny`g{N?*>$P@{5WR%#fZ=%iGYi9P z{2L@3da?EFiBT)lZA3pg;^%j zTqb%4DwQNm zT8zVd%uy03baj?f7dnUgHKT$SBjM;V1bJ1gFUE9vD%~p@V;h+%vvl8f7XX4z#I53` zm;+DK_($HN6dBEKwr>LFh84zk~ z>bdV$WKeu|VYToDa&hg6u1NYj4HT>x45KjlVO#Yoe~|37Vy*G<$Kene+ia-X3RzQ# z#goA9v^CV&^Hz#i!Ktw0=H3%r+Vlmz0q@n;JVPU*RS$i+M4hGPe+3SqLmFcHo4|S< z1|X|BYTxU9TY(xT-S|QZ0*XonJK{}o@3DXqaO~P7 z*~4EPfK*2#LYJj4K7P%D>Ey~16TNK>*6ot z^1EGcaX-8ZFISq_(g^sN-h;4$XU3>i7gBN-x&;?dwCG?)pn`9e-analOx(VH<0h>W-?2yzHmpz2h0|rGt0bRcbsSTG1o$EI`aR}Tw@t*+Z>i4z= zDQqrp`d@+{FuYO_$UHPQ&`0uj|3t`t{)>YdP~EHQiU03`?s2UTy+gUmNL8rNuXS2 z&VKpdK7JYQvj(qD@hfSnb|UswhIE0iZMG5Tl7Oj4Qt92*59uG@OK;>|{1_|NPxWF@<4Cc>XC?T!cHQ}TGV*+$hMQmWOjDBo7f!L#BthlZx0XxO2eK(WrGV*InpLgo zre1W0RmtDD(DnFX^`1|kF$q0t{Od3N>hAo!7Y;-8`nKK~DEjr+h^APli|uKnV6K`2 z0CyK8G&*v*R4_ zh#rNq} zTONflI}$Ftq2@m0?@dUYWT^MOa7Az%pMh?o9Muix1V~+{QF*vgVe7`!r;E~zYH<%8 zB1>dokA(1>4<8@S_~lwyNR38efJ#aRdF{RiA&01KyBR2(Gr&LNQ|Z}FBA~@P0cJp# z4K;f{;~q6jJOag+Asj*<=VJoC;W-COcQlKz<>u?{kAOk3asHd_P z9d}gt0xsW%ElShNdlbA0z=Ku(hb(xlh!^?sPWJ%B~X zh>Hi1U_s%K6;Mp9RKP222Nk1$U#V6uY-QgW$lM*6;N2x%~bWnj?lPwJ-TZ>^YExv^h*GzY4<0Cf9Gcf$=U;^^CZ-%vAEG~X~V+Sra0@csP1+O6qqU(JAzD3cwGH_tA zSGOw#Mb~1|RyZ-2nt_GPmR}0zmn-~BzC}ImGVmnPQ3I%3aA%V9+f%VFI?dvYKORl> z4l<9Ps&(}1+U7W@A2%t`&Oy_z4Rc$uPk3=V7AX3oDY1Etqoi@fAx-Sj)3m;J|14Bn{))2b2Z15n!qn1nM+ zxaD|&i&+u}wdrK>dmtg?AQQp`eNTziNh3!WWF7ea6*8RgESS1GZPljz%y2$IxDK^# zkAB!{_!*jK8EEFI4f<3}4tUmN$)ep6 zHxfCE-KpMneHjjRdbDOEq`%6s;v&N3GBZc-06Gl^uwiJ@=Q|-7waKTip__gjl!{ku zqEDRCSzS0VBT65qYufUj7WTNJ1`mJ&^idy^!|$CC+$U}K1Y=AaD{ZaN#*5DuK+WeQ zwx)Kx%>12=*Ga09GsrPKKW=%jjlD`qd+yb~H|-z+Jgu~FK0eqV!wmk6)M;wdSAZAL zkr1%$v>WwPChQ(iM^g*T$~rul21luq?)Z6lFis0z2wc+Jh&?hG^X;pnyw|H?S`W)_ zY6pfM-o2fo?EFlYjGN`C*1*-U&Q^F1J%mTL1Bps-q&^RDhu8JJnpt{o}(w z6GM(Bauk<^Y=<0NOXw2g8Sa(lH>*I2&OKZhD<}8=SoT{HyKxoU34NkZkBE) zE~eL9nF>^r!^=wh2a$Q7)}sm!XV_|qoEiAO#8>xpRES*vaRI8KS-tETovrLkPvs-C zB%w7+%_V~{_0p;%-pL$quT1V=l-qYtH)-!u-g0#rm9H~@z%5m;v!zPtb_{QLw+l~l zXw!!L!!quE=~`dbC=DW@Wwn?EV!>4!j$X;63-LHO-v)Pv>Cblm^5`@2BmAgqkFDquQ>wP=3=JL5c=q5F9ex zheuF zA32SK;AT+Ri*zjdA1Z_*+4|AQzLIY{1=+pqt#U+M>u0i;wJ~*PwnF`tN=zEkAZq6} zp4Ha-B6OT}i7gLzq_zl&sT(~xH`K{|8 z^{nNK+eIee=G%?N)+!s9;%@~5rYLh6^2pS&dj)Bf7mClkcx_YII={kv^Nc$G#`ER6 zF=S+feCxr*FIk|%dbdw8}}>~$Vx9d3jB?p2X&r|9&X0o^#I)4 z9)O>dx^=>tN3%sVaYtflG)tPoH9$OW;!q`AU%y36s)2D7s??B$obeM7Y(R4{AE@S* zCVrT>_8P!=VzX!*b|0lTa+Uc)-bL~P)Tko%4@WvxqR+~U>_4)SBf{^A`F2z)Hj{s3 z_0i|XX9bd=U?km)3V*T2#)ddVMbWY!^wZ=k5^=6;YP?2FsGuiuNq~}VmfvN&vLU<3 zdi%k`rRrL#9|zid<9gq+V=q|BJKwb=96Nes-K)XorN*&iR{L5q+5ULz-Mq|(&&t?^ zIv%6&sBcnA>z?Gn)Y-NhxuAW~OMfHuF{xU>kkM4o|YEF=Mr)9v|^o&4jJ*yg7dt)K|TRHX{pk;aIEuJ=KViF-Bq<< z(UyBcf}rlWR~?5z^38u1cONhb4@|u(u;+=i_eo;1wxvx-KZca4HQwB2Vww1O)~zO} zRVBJR1)ge@{Oj=7Fj&&wN|ANYXTxg*MVu`pzc~6);G%caQdOp!=qQSyA1Cl7X-`RY zi3+*LXf5wrY|4*D;Zshw2xe(hbaCv(QU-gCPt2nhrF7Q~U}Qfue_3TJ7=xk{m+?}Oz9s(yAgYQ!aR~*%?9bj#!||Um7fMvX{T22 zjp*qR*CSH@k%=B!H1N-LWL!)~MFOakFp{68|H7oYk!;ZO{{1C~Pb~~OM9214P@bYi zFg@t!aEb|VP;bgB_Lb+&Qd(>Htg!o9qV|B1J?}HPbod^ z*pRrOQYGF`tMde7v+o4grOTp5FE4<~!wVYgxVmAG=UdMDn{ zrSzGk`{#JC=L~)!aPd7`_r{qMw_qhs+QkT+%bC>TAKqh@MTo!K4AFaNlAbCuk_qmo z^DBLFYN3aWST>PpMaM*qr=3ZHS0AXw@xMkC-4}uK_0{Tlf*8w)ESVX}i|xBd22H>R z4Kz*q)j49lBJgfoDhtRP5)L8i>MX~6VE98eHLEUdS0VhfX=${C;LWSf8mnOUAXF># zn^PA#mHZFo_(RO~ef>yOXv+QYNnhn{i{=Zuqc8B55<=D*MkRct+;ZkS=PSpgWJP=v z$Had$%B{kF$LnhMCZJNT@~JuU(6+mV)|Alg_G_SldTXo7Xa35i#Z^XT(zsvvKYU?p zD^6iLwXXR%7zmpK$m|sCF*2pYU5}1Ibx{VDTE$pUKj)gmxu*QBw^D0&Ov6P8!aJz- zl(Tsr>1m75AP1e^Q<-^x2mLE5QT|Etv!{`EHB0#F3<+jQlf)*d2#9g=w>unsETH6c zb?}}^jW|@GkHq}G_ls0yh~~Xf3jNi-u`k4ZycQ}^F{7ET2jvZmaiWaX*1p~iuI6jz z^TiI;8wce->Ct1-=#REW-}To@e^6LBPh~FErb0sZN-+0=;}b>(g?Sg>FJ|QXk74KF`hCrColb;{R_i{%D6@Vb^QJn~Laq;mbdnb9VJ3?ngUPJ$~-I@vOTzOjP1IYNw za?QEP)`|55C4+;g*u#$B+Le`$Z{lprTK${mQUH^ORXe&?OWrAKrdcK}RSj$-X2W0H zK&X2dWf+TrfE~@`3-O3$mX+z*B?wa<$j;Nz)PDr zlR}i=S8dv9H}Y|}r1r(U{4wUYg+l_i7Z1<4bTrHl*Adsy^)JmGR-SPiIenexQljg^ zxgVO(RxJdaQpn$f?meu%rIT$N6^qI2=GFfdP+pejmx`~D#GP)7L&7?MXiG2l8K`xS zSmYG}CuSK!*qN=j`oqG%EDOL~k!QRs*L?ToKkbEE1py1z%20-U0&4_`1?z%tpk+`F z=9szNgR)!sV|OGIhv!S?g=2nNQnfqN2|OvNYc02U=v;d=r$?K+7$+gXSAHg{=P}?3 z<>nX2cvH*hA8>>Brlano2R8s$v-gPZ_a@i)3WSHM$?MpU;H^mJwB5lWwS@#Qdt-3! z&jVt#y@@OZjAs)QObah7hL6i5e&{!4GE^zd9dcWB8fbr3X^N_P zV#4Jp1LsacDUDZueV*mGp~Atsg69 z>=47nLB@COIa1lAp1wB2P!HSysx6b2Lwat{&e3<8LD&TDbD=@pNSvDSSisUgnVY7U z(9|2?Hq4tauf{34E~kUxnb?JAGB~5PkX|(i7E&MRT#M!6IHyw5QWY;qt}2MUlm3am zeaG{J@uJ(OL;FhR8@%53+}xE00zmoPht`}&NH2&s5Co=;5fFr=;Zq?xPa*qH z{l?G2U(lilMJ+gXNjV*qxvwno*5VaqPAVcO>4NjzjY0VhGoO!dgb})^FYm zG+KRS`QRBz=)Rqkfh-tbG4ln_L$lGo`(<1b zA6JJOx%T;(hc?TY4ANr!FKJzu>K4j*YCdGq_nN0==ybQI-H&NuWF9(TWX@Yy44yMg zF%@5tBOd|!0kb#v+)>=ZsomeaByuZw>E+Di%gZPEKh)6HV5FthA2VH-P-=Yq%_6H4 zrU?7f8P8}pZ8$d?2z^csk9Iq`+7DylQj{=lN(GPR@0uY_w^i@bEWk@ff+sc&P@+t8 zEmvtPK=qfB!ryHVlsT9p>B`c-sH;%dF~3q=jPz4|cuKuJ{xr*btt!Rr zC@@4r0}fF7Lyhlk5Nx}ITX!5^V0=smQE5g7HcNT$t+vR!Yp*my&&fRGa&#>F zS(3B-gBj6Er<4TdhO`6@L?TOTq97kQBQ7Wy;`>lhgc)FW21*S+$m#fSs#FJ3V*cbj zSXRsQFOwP<`))JtEgrAxJpH`(1*Orm4Gy1#>BiFQ-r_L|ePpHF1Fj>ie@*}WY$?0m zav|biAOqi6!XzYEB%vFTmjcYQ1k6#It)8qjkc50fd`?=e55ETK&78OoN0L(M?1|XD zXuI8rHR!27S3Wm!6a&^DfN~}{^K%C+Fc2Ys?X_hAjDYnN8W{Y$eiEbvkt(Cjg`d`mY$!#UtSiivh586hYM zhAEj-SiOP5G3h>?*n6lRK93x%wCIM`cFBGatvxS+JU{S{TFaAt z4gqL~WYm4tI01j6o>%!s=0_1li@9DyyE)7eT3~nJC0-t3`epyP-I^=E6U{tvb+gCN zL|$KQNGWDS#}D4X09VQ`E0QOTXQIbNPz{u- zWGg9NEQq)F77eaf?0v*(I`>IiZL08mI_0?s?EK}QA73(R*1>ex-c=dYuR9feM%Ry~ zZTsvm!2NcFOyNFJ#Fk%_C;GX?tW^Q95HbVNRwBq7-U$17em^fQ6J=I*`4=XR+o>0GFBllcBzsTLKWFRxa;l%HTPmb<*3)^&gsiV! z?E85xYJd))l>4*Zt<=NqQj9v5fHm`>eepl=8WGE&q8kWK+Ms6d0}~TBSRPfoB8E<& zA`hyiN{^9=z9^t8V9rr4w{;1c37g8kG%xYOIGGzplAJ%Tiyt)?7a1x*@t#{HKP#KS z9jP65T-z>MO2v!odO<~3=(5sMrO5hI)HNwL?vBW5b_dWOvd_6WN_{UKwbbgRQ-UeC z$I6}$7rOcn?YX}0U7g<-v}LU0rhoPZ9N9jeRc0LgKANd-AnOWc@QhMWq-OS4^dmawyYg0U3#CASQ>Q@tmZJ5h9m6`vgzm<7_j*H%U-cg~t@(l(l z>p(_v{$t9!)jew0$!LDidzi34fl)Y*MOKmaH4prnc9IuR?Q{a^Vo?~n2XQU6It#&S z6-N~U0v1mM=AYvY_-iDNd<9zS)x&%3?em{={(5ADk+&JvPwf_r_HBGP+LKW%mg~Oq z!ICB^rt%G4#1Ha`WdLI9X$u#ieSZWAi&9g~6cQAKIGLBmfF>dwG9W>Ek~yT$yXQGYxg;s=3I`^EP+y*u9-EoS>gH%YV1{ z?dy9`lp}v;eWX09#_ao-9p-yQ|%$2%dC#h$p*BB-pkO_GD|b#Ozj$ z?swXS=Jre90Jyorn^0nb_rnU!ub;vKG213Yxh}sAKmVEIr7@~oJ_%X#&>e2hA0woT zT`V^G;r3sFyS?0D#Hq!kb35gp28G`DvyJ!!@2zdevfO30!&P$s(WlS#UzEbVibS&Q zO?O=#D6(1v%(xWBX?N{ye#!Te*~E!#VBY^<|G+X- zlv05I?FJ5^LlDhm`|1u3l9n_CwvCJZg^h?t5avz=>EYsSAa%9W&CxkK9r-IIsr5Ki zkVP5k6{D7Z2jCqIVa%ypRWy=!{= zIsUID^T$`Xh{{{ee~S0#M|lK&hg9Wc0ctpa_d!MT-fZDdgHf`_M;gcjPrPyZ$4~HU zM<@q3b{}(oHxq*0%dd3%NMP9PIUbCkw4`6CQ7V_vzA|Lm^>sV`d>7yMJo4@Jy`E-2 zy#W6D(?7prL_!M$@SmYPq3*T}-_!>9#p z;l9&@;tolk8mEg+pCZN17>he@7Lj5S%g zZO9%mxkI#+E*HT3-8v>_5Mp$~L`lt}D8=UfS)cvxhsUwQLY3Ne1+JJI$doE-z-7fA z5|8brBAV=f_dopW&m!m0Uu)O+75^7^>z55K+7IiCZh>KJ?_WRZcZ)s}p|@q+qU@IW z_j&M}%IMOi9iyBk{-Ynl8p8+&djv19jP7wUCuT5>-IjUueT;J zB!GMWrZ?Yse$Z(q^{yefOdRhCue%Bwb2UaDF?H2pI3-158c-0xS#kK++VilnVgKm#u5t%EotR^HupsNKl~ z@k1Zt65JaDR7=c@bTD55VX#dZPq#E8R|R8Sc689^dLXa;osNT8D{fvCT3LVycezbObHF(M%P z`qUgwKaVbS%NUawQFX!9cm>Rtww|YF7WRS~@5W}43CPPc?18`e$1Gp_g4kg6mfF|NqAsFl#b^YZYm75fAdVcCzm757yee zW7q}Rfh|};+1G+_reQd3n%rO&ggQ##(TNMb$;IG^&<|z6BKT$%Lm=Od8kTJ(AS;Nr z1RjsYTfnpy5ykUz-QfrXr1I((8zfsu{Ig8`{Sqj;gjz)BGVvJ4q?G9fwGl%10^Z`NRbf}a0iqU1p<{CDTjddBgvHNQac&OzWW`SX79+L#xsK8DA(t9vl zHUv1p7748Zhq3Zf#E6~2ch9M6e{*ON2!A2sdgf*Dz)ssR8jU|m5V}5{NN$vBd-9v_ zI?$y~x`bD%{NSYga!~y9w?%TuV~fs~8({ygSg9_b&wyeGf;s7}<7+nuuk*CZ$sR96 zqd?+u5w68zIulQR`2?=WUeNMYtLI(H@`}|!vs)5vdkiSOyFnbkRoYzsrLxZD>7dpt zu-z@iP7C19QGq;vND&PeoC@z(5&DKfu3@Yc?)&g73C|kT6e(YhR~G(C(KA#Jc zynHYe%DFvI zNwKtih@{6oj>GxviJM_Q7>uRJJ_Xi})7?Xjl-7E`qsC`2uV2}Y@^}h*H#cB?DI?Nd zT>EY(I7a96I+D%|0rPT9r0Obs%qZ{V+?Pdn*|f2K;e`JFU4Ul+rUBcwtSq{@BGEp$ zF-!@w^D=MOn+_0V?$NMm`uH{5ViOV~cVv<3XBL11|f?*ZG2p62$1yB-A|y}DxKu|K@r}c1i}TncTq3lmJ$JG(00mQ53Coab+yma z&4T*B0!pZ?$3Cf))=rj_bz@ePM)-uuRq)NNR*Tv|cuDP8L&S-vb2rH{mhs+-ITyD7 zTCn}**0g+tJXnZs;x@-(4+Ukj5}ql|5>bIlCL6KE(x-}2ix$GI?nvsui*Vaei6sVY zwB{i+V5?|synEOt$fAFp9+JZ^@(r2RUL=$a-ltw6M-Bv zp`u!7tdOkIR%ag@BsL33lB(squu52l0{U*C21&&<8EpI)IkIjrsH^=MeDT}$`o~)E z!zaOJRA-Ur;qjoRF-f~s;cWj1{S@3cl%EnUO#F@xl{&c3!xl@n@G{TUNVugJgg9^x zW`f-J4PY>|o^x<&DfB`P7Z<;2WSk|srVkt}t?bwO^6BHGi5ElYBqIcFx;{3Q{34kY z|6kb?KU)E0F;Fu{3ZYRTW+R035|#GaV@)6$CUqN!d_IbS5uhxz-ZJk*K3*73eJ0Fq zCj+?rzLy8)9gHEeONB^%1nD4UhJB?#wdv=G`Wz=-N5$|DdcWAL_Cv#LHqJCTbbXe}1aW1p<1D=3(YV>W&?W(CT2I#_ZZ?4Za)Wddtuu zLw1NY1b4jAv;(AI69ya!McP-eBasP*GJTy~%T0L1(D2&%=vwCB6FF3`2H63#6v>G* z?uk5Qc(H#mBvF!4K=uouFCzJCz!JO+=fk@e>i++Oa}4zm`0ig{zcxt-%0r}dc5u`3 zY>xrm@g-s&2QSuw=9ndzNoVE~04nWPMZu}pevF907KQ{NXQB}U5v0S1a*~f=c@@mo zfnnUC8b?=b3Yd@c0%@rnH5bzMBb6Ko76t&>ogC~3fc3diMUgjL9u;u+&;z!`^xIyrmAyoHBGPAHnGyX2Plo}_v-kuDX=)BgOOYO;(r!$R3 z@F-2#6?C}Zd^tauVJ-{R;C1L(ZtS*=yVva+hflJlJmnpFIEiu7fXQZK1EL#9=Oh8N z?%R^Jv6}hLBLi|xt$Nv^xRHT9?l+%ahY;|2n9|$0ZEFg{2X@}~l-_sCAWr!7^z|IG zbNhrik71JbEDLVPwh-idvo>w665 zrB&HQ*YA)&Sw=i(2Tr{zov%i69L~TD5=sd_#x@xez34|4a1@&-FwgT;&M@x+uhbSy z6gEL$UZrk1`9h#=CG`f<*SS5s!PdSxB`V9H@9_l)UcF~{wI4?myoYA$PN(^9!5_0e z)EdSgF6gxaU$tPj+d(DgTE}$j!x| zfgP^9@Xq((<<*(vR?iKP9>Q~HfAO0d5S0P9J8|o_RxGmlk_BXK2D0AWin;;Id;y$< zTsv_se|Vro>idDFVPG9b(rL5quOP6_x-I2Vw&Fk`Sui!%x0)1Nvo=dbS+IXaIM0Yt zY1Ri$QI)!9?EleX%J?AtR~nG#Gu8PO9rWfNUg~ya_{J9cI$r2H(yM0{_tEgn%Tl}{ z!(^NBtCqs#7Vm`*-NAE6cd^@%iN;gjA?4UnCVQB}8ma4oc7+m^h9%+oP>0d@A-a-F zdo>v*Ln1gO*i%yH8CAR|^U#F6rVlqCuw!0TH{bG>w82cmcmg)_Cu8DRPDq z5rFxvI5?m?T!fnZRZhmf`2GcK&eh(#AEBATk~4$jEi?6o{|V8s3yx?0$vOM$N{}f+ zB+^j}ucw}wz;ew4fy&On#_fglyL-4_yPl;e$_J747WPnBrDN0LvJSXWxOqJ|<6ux@ z@WqVcVZpcDAJ*T}=!hFD0(J`Z89huM*7jkvIywVMlfYMFf8PsjSB0%v6#4%sNFte# zxP~aE{Z^|VRf`M>b~VTqQU_8HxekrV96Z%B5YH)`<|EC-lmkk1UpLE$?pt&{|%o1LJ zB-1DasYIkgqVcEMBOA>Em*t{;0fbQ zBCB1*Hbe-TZZJq+o=)eOc9Ly*0w&jsAbLS;@AGvV{pnkQK;;Z#on=HsRS5Mt`Mr5i zp&-{Va30^~0$yc_P=wZ@Re#g)%LcHvjP$Qc&ot%MU1~vKB&r zE<4NY+y0c7-=-;sGC$9RkV%N~FtG%KW|+BwE3oLbC#IqY+mnkxu-^>r1!B3^{zf0m z+YoESNX=`^4@(t|0dcX^;nqyM^Tg%-S+@bJmh)4#H>Jq(@-dzx= zqY`=oyeh;VLKv>ltPLOVbh}W11d1XO+uy{P?`1GpG#POZO+ebu6{1PnCO zdrwuZMELGC{(&{jK~0v;&KZ(#@pbAA&y^DfsUV-QkBwG96DqXERoMpSI&`zH_N|ZL zzWad0lNJT2CJ1wTc!<2fX9p9Sq8ey&Gsmx9M$~Pe3Iu_>S$#bSB+xakQ>( z7;fl%f^X6k?M+&ls??MVPK^X226qYRnRoBgOY{ojcY;lbnk+@_%wazaju$|OABvO& zU?tZqzI`YGv;vWh+4b2EcHmqRqW&h z&7}e}Ssll~!Bl)4#6#kV_vQfb+p?Ii#`}{a5oP5KC zAQj*Vo=`c4&Py04prdriu$@2Z>c{y9LB{)F=Ap%ln$37x{!_v$ibIo+5PB6)&AOI* zIJol9&C>ysJRFhekj=>bGI0H~qxoT4s=m60xE?_y*^(5JWVYJ-Uh@0)0J|10FZqR` zO{~g~ZIUS|N6+x8>mbMsB0XWpYw+XpBxX#&VIJ8bi%wY}1~2;%{S!q#;PAkMVk%

    9pO3@8Onj!Y60Wwz(C!H3iD9MJEVWHNRC1&7`zQG)g2zRI#*Md z$i`iGup@nZnJV|c<`Q37>WP_lG%Xl^?tGMzjKczFuuL4m<@1_Y1{eaT5H2q;_^yG~ z&JFpSVT>Z3!geEcSJUR^WOsr|SQcb3^*Q=c2GQMa%MU>nsYWr~E305N6>&?>hCqja6W00_hpipA$%(%g67?>nv zq~Ao075I#fHhYni&Iy@yqN6h(kIukQlzoE|Q|ZKJd!V>7^lT|_$J5ix+Q!ZO@xbub zo=@Ytj=sMB8ROwbC@K@d-9M22-k2r0Nt#>D?u>OJEkOd3b?b5x+5jPNDiu7KIe{$l zt6&3>4PjzE+DMa-Ygoc@jb6)<_gGz&UVsiG^jW+Rv0SKmGFW)r7LF`oH7pV}l_8Rj zPyKL=SU_iKgUD$=yxrEWtbe>S5te0BfC|KNrH<$;XHYm-0i@yT*V&~teIVMMaPxu2 zOx)2Z_%5U~g>+S)2n>l4nAHQtHKQBhQX||efoZ2zkC&l zmw=eNCIa}CdJU?km$RMKau0#mG}J?j&BA{Tb_qYyYmuYMOJk2_urLJ%3n&~>u$1{k z+>wYvPi+NSi4{u-)3KG!M-^YlQC%a*LS_KeyFjc0f*U_TrV#IRFauihOIv#>2f4;)#wkI&*iK=johsJ{8eF@1cGOw5=3!NYea1jK#XAa;gdU6c zFCVfo9P|(ajKOyli%<~3pZz|P>l>M~ctv_)KKGc)wFd`C>o#kd@**Hdc zEls}Qz0`wraZZo%Pdo+%W7rgeb2beKl7Co|rhBB9N@3?M}IVB_iq7fh3*$MAU- zq&*MHxQjB+)Z&gTrY7ih|jXF!FVhdp#B8V&%G)J-Z&C&RB#i6`JLpNYP2OLnkd;k^b<}{liWLprRrbHvH7W$TH=8JxjsHCRTW?~( zsa>oSaF3Oh3S7H#Dhnx)vC&B_%P_c2;-Fs&6oNF36WaMk6$M4@+bioI)DvI|76h{7 z4czOGX9$r>tOAPbS8Y25U@4_zrCc=zcZ5(K)V^jS!5qjSGiZ^8y9I`ZjCvHyccGJh zDn11$=y}~~+{auOAIyD2ZfY>@9ML^H=ss=7%7n3I4rr{ocZ8rr!2A19{GVJf@cthk z1F@e6yfu>3d><+Qywd#eiBY;rFjQ?cjFtAS-GP<+stsws1THrP7ZiC&5${icX&65& zDgp`oFS{^zjB5+=h5(wNk8g8{K+Ytv{<;Q12Fvyrv7U~w>10LL4Qd{$4n78^W&!}~ zcQ&jb5_K9(B?N%Oj?W2Z-{v_pbmrujw>1EZ*9Kg(ApWJzJ7HwRx&xDs#x^jLyaq6C z)Z91dOT}_cihMwpQ+N|DDee2AJt&|&sGgv?2A%4dhW~r$fj`Ft?J%CLC+UyGRs8Sc zSD{`W6=8EJ;qMjGMVT>RY6)W#RR7`f2K?XHBCEIYP_87P8vM$9xP}z6uMAg~T!kfZPKg>Z*fnz$ga2;i1!fv&J4j82R{ zmw^O(t~ZZX?=cr6_!e9dhe+97)2HXiz4DOG{3YDC1w6-VCSU~+a-Ltli^$PkX5XJs z_29Mb=auK6IyE7aC^JWVxM5Y>J-ToiJ5;3v$oUAoOWjzWxwjIqW3jbVz{KnD0@8B| z__tD_LWBdo^An)p=}c-weL=z82RA8matVGOZ-0LLfBOO(h4NE8LPj3)*Y(7V6G><> z(G+6d>D;Njj%H%gNOEhcmBc|aeh9__LK)A^o*qCI1F=yS%nb6oh$dt8{|du|ff&xUx`!0$V3l?-k$yluj%5U#Pj`8RJ6DwE9wM`k=f~G-p+@>3 zx!G?q4fqdHXg%WgkhL!g2}`Po7itP>`XT+(d*R&AOrd}DR-D6iC3&I{UzRZ;`$+)C zYC3A=S&RxSQGdPuKi|loU&u&eL^HE880P%#fQ^$m^5yg_E3t?IKV2(q*K_)w;2?A^ z7FdoVS|3usLOm7>mdPIx)9KVA1zQyUigHn~8w2yDF-di$`QfTEcB68~c;hM<{Vxh# zczKzQ90BG>Zmp?liz@Nqw?kVWpD#wHT*jZrp{WN1`P8f}%u^O4wO`vfr}v`S*t!?s zp{YCyKV|5>_~)7Pn|E1kzuV*0n^3pI?P@}?V1juJBKN3pa2U`*gYU94|7 zgz_*B!mi_yhT(}n8BRu6{f-a7;6aP$o3Q96z|BOi549_%780ZTw|HZY_=Ph<13^^QmglCzF4ZX7QD7kA$-x z-U>XyWYxmvuP~7PbqRb(nO$E4*;8FVdQ!lT^Rdno}eTvvQuYp4l)q6i; z`oOIPGsJ%KA}9#6o+FYCwI`FfZqG6v?7*4c0k;9y4Ghu&HQtHlH1|I?qF*l4Z4WZ} zj4vij?Iz<%?h;q(IBzV=ZVXHPtw#L0cBgpIZ#wrm3K{;jhgGBy(FK3?ajOjGY{QZq z?-O%$tHlU9!H6 z0sWf*)Se+81lSfG9Br_D74d86R>xF7jq9C2aw77txT=wE#(f&iolB5#&v(_ZjCpj= z9>02dv~IK=SO64!49zG0*P8y@0fel0KTB5R-vws85HdHI^+Y_(^AlN4i8AHBY=ev5 zLTY>L=u7x}oo5QF4fmv+qe-8L+RxhFJU3c>ekbUC7sCzJq zSUg_0od2&U_nXc2&ll2q4*jdnGued1cQ8g2I0QD9t^K-Sj!m2W*NmOgFflQ1hp@UYc}cTF!Qw~( zI>ZgWIu)~-399g&+E1PVXkiU!cqWW=ro#j}RZ65K$cRIZX2NhamE6Dx#yIyhqUd=N zzp?$VqVw;UW<{7xKBWP|G9lwK;9V%vhhf)x92*I8pa2bkSK%=gzh!W?MykKqV(|w# zSAMU?1d0r>hVq-h?YxOV;`-Lf($9ykccu8jZYhMG@+sWmrmBDq6jkDhC;!z>{PI}- z{ab|-k@J`onzI=TV1!*>0bqCsbVVJAfK5Ccu?j~#Rf3A?LwMg?i2`3La;Uv~86Y_C zaE9b#r+&WU$bIZjj*SGF(3qIhpT1aR*>B^mBJGD{!7Pl{N%zRq-rA8H8vI|&239WI zpZNNp!PJH?V=@-3J`ita+i#ITnFrV8IfXOdAciBzg%NPKDs~{KjAQL6gz%@iHI+Tg zq6XlO#83$hZv!hmD`s0QJ<%!7_*B z{k-5&s_n(IKhMp-KH5#$W!coi36J~05MXWYsQeytNA@DhM`T58pO@Wbtu!qcVS1RuEF|iD}62W`x1hc$PcR7{!#1c&L`I? zgS!M2@PkhwJ<|;+hT}m?6$iqfA-77HlTL$06A^(KI0GYB;>+aIwcD3>6Evbz=qz*EpiGcQH#~Ln3P6lyU|I3y!rIMxdT{}Zevh5@!EsL zjT*vbT*poum3I-RqB{ljZ68gP?hGLw50f5)QJTYU%NiW~?QpFVFg=5AZa#-~{mCO5 zYFX@o4%NzawL4nQ)@TT7DmA)z3qenlO{iDY~uHhx@mFgx7_P=cm{!w}b4V!?FbU@tnfFLsXV0z&H63YL|j@VJea)vV{3oO8{ zf(v&lL0>WwTys!=J2C~Bbkn&nJI{Swg1T330yq4`17+xg>;?(6tdUtW7x1o?J|IV6 z1z2%um5`{TrSbujce;y7Al4&fMtTmC2J41JIGiiB%-#vId-e?ET zuNv$%yK*)CQzPza=R8`%s9sSgZlf``61$5!DMEU32k=#CPA18;``1rFssOJ-@)#B& z#>otP9R9MLDfkqM$j@~Ht$2_vj?0p1(H6|tSpNc8n+xjP1^Y<^prO+svh{?$& z%lyFS5X0>rb`n>cncw-e`#OaRGOvMLdk_A_txv&HMm<^-1;63z>^u0Z_ddZ$@=nn zDAAnWy+|&{iqGuEYx3UPQO!S0@N{<=Z~AZRLcetNBYXibp{og0EOGg~^kh^lShd1s zR!cuR(!Gr8&U$(VXNV=&@$oVoAN}#N0;n7YMo%+;)UWtg@lxN-6uFL$_ey+XJHnc0 z-J)1Lt|Wr)NvFZ;SQuS$Cy3_o1VB!<#rLu5{F#PucmU4^lLs*GB!pRKoOUXOOA59~ z7BLnfT|w1$V=edy<{OSxoqsnT&hk-Nk6Kzr6aciup|I@>^cWOWEyr-Uf}O|HycDhl zGpbnrb*uk*cB0Uglj{Mzpqax!zgHaQ!W2Sb;Ng23bj>koZdW0aI(46}1)b#I<*JM` ziHfHmCUX!7F_oV}$Z28LuE33FTM@35vwoX3%*4x#@2)->q9tL;tDGH9rbtfdVM=@} zkqJ#EwMik(tFT-$15qa|PN{7_R_?WXyhd3U4*Bj(8|cm z$T?W-?4wxHnVqwDJI0~N3nDvN7=LNy_;v4(|2_j-Y0%G}Ewym z#2XE?4X?x|ZX)S;?cqCDu8O>$xzJuE!1C-0oDz11_YKtJA5Gjd*v;_#?dxHV9Ke9f zg|wfwj-+BVG?>Q|`sri6cpSNrirJ0 zQb(Y5w<~Fvuc^*7`L|HlgS+)-Pd%}exB)nge8$^iE!&k{SuQ27?so2GoE-UNWC9&* z7T;d?9Am@S>fi4%8;35TQssm!2E^Q5%T$d!KKKzV*t&#ia}^v*q1`Qu%NyMxsaH%> z+2o7rY>d;F9B|d!kS7tY4jm*pDkJqFDP0dYWhB4nta2Jl^^u=DO-L9%>;&#>e?3-x%zOmK%xws{#(AuHIDfJP8|@!lrw(K@jjurJtj ze}t4vdjJijPX7KbfC9&v8>zSvTff6{*XJY`q;@Pnzzfw;j!K(=5~S!e(1(P98+T6k zu0KHZ@r4#GGzX%iRqij?!MxS1#**C@dS*7oW?s!EJ@T()(13isiyCYCwv*=yw911in0F}?4`&!iv zu?ulIpDqCzi+)loX5|u64pvvm4`n>vhbObR%mF-U5umH#Eq)04*IJVKO5FNT(pXIV z3^KHR^YF`|MLoNEe=~3>;{YSR1G*G#bs-3t@=>-N)EE1)MsoMGKQV@b0~uC)u4jw0fE-vy-Z zM&OM-=xa*7u$2-4B>Fc0>gsz2W}-WEOD#CxzNCe?EPWctmtu-PmJ8_}R@yI2&S(Rt znzq|t_XI2y{tT}ML~{m0B=jo!bs}l&g3FcwjavhGOHZbeuec7lU7WRIE;AZksT}`4 z;Gh>3#l=8I@wDa->%O!^Fgg$$CIW^RG)fdK*x+y!_;Gx}EMKQPuBYuAk7jAI2)Hj9 z?Mhrg$TQ10;JYINr%hR%S^?YLQEVi(h4gH$>@X5<0s8y?G4%(DWj){O3di%)4HO&5Ui(#0iV8r01dPXGhbO ziK=k@RfzVS77k=Kla4wefl>HZ6^jB8XKSTfNUF>N5iy_$L<_=l*v;>V$l|WN+cj>civm&p-McueIdtAQ3Y~ zBCw>8aUyRFh|}O(%AXM)D{L2kKXELtiSZ*gg;5XYa;@dC6ky;4oHAy7076!s zYaHr>Z;uP*scc0&TjO~0$0Yaa9bp<4H{N)6NF!eM>Nz9dZOut&rwiB(!T8xrzF++X zNni%x=WZLg(pec+3gu=zUA^(qt<+dV4EXe~BKV5`MQG2IOzpqEd%5srdE@2(tEHuQJ#EOAY(~#Zf2Zks< z?Afza>aW}`gFLfn`J3{;mMHWsV>2XF;x1Wd#N=?dCLBC`C{YAlp*-7{M!3sSi?dJ; z+eI*4W5-kWZ~q8BQgv!rmw*cyOF4m20ueb=5dsVy1t69bw#n z_)-u#P++$c(qCwuL?%9o9aHvh=3(;W6Q6=zl0*~E8o0`xfzZg&(os+;Xv2)^&Xe;5 zp)zUMkr$SrJuK+}DdziVPJJHDXIfS47>K|U8&jRN6fCxynk)f^wFW!IOgIBFVW`SS z|1kKRv5vf|!3amhm*tw1}dEG&?E<@`qM+!$S>W+0>% zpD;$pqq`#-No?bRNdcM)0if~~+9gANFM<*j4bASKdVll%kcl;;JCOT`&o`YsZeS@q z-aohtBp`gTrZ@+%aR^>SeZ(b^VVg?ADY^FXK|Qm=Nj_Rcv{-$1l=6A~1UMn`BhV_4 zt%MNjBEf7@?1-X0x#loniUjY@k|FGI%J%QfyyM7AK>}DEsYGsxCd$;Vy0~*n8g}croHf4E&`CoPb9f= z8yWEI>pon1InNTs38R(AF8kVdoll}M7me+`9_RE^?5u9C@Ya#Mv?C>B8zb#|knWGr zY4wbvPN_2luzdjqp*65gr~UDGf-9uOR=rM7H#|@KkJok^+mabT27Z#v_%`Z4Zaj%d zP@=Ni;H#v=2dAQ#0vfOBW?BbT-3w@)&p`zo3lK>h^ic_j+}U@3-qg?aVRob-H8>Lr z0S{XkrY7ey^RrJQYd+Er=abuzT_*U82)p(GS2E`FB4&&XY`asJ1G1=Lh{^|gC;=E|TxepKvpWD6cWW>+v4(^BqzM!CM#x+P zCxeA*hRJv}^yV$16g(?_+RR~2h0Jt(9l(S6;EF4^`QaTZGa7Ly3HJq_v~abr=LNaZ z84E!|xOxN;E!U?+V_#7$&M9~V*R+q9e{J`C*Sd!{cXaaeAm23D;t6D(Go$XiQ_I`y z@g<|I0qTLF8#nd^KFo|lA-u?$vUdM9NM;p5Q!G$fnol43{vC8D&@%=dr(KgC7-A@QtBDL- z>XTN9k8FWJrwB7_8i z5Y+Ql;Uy>dW8wu}n~VhO$vbhtYzJ^$KT8te4`D-Pz`a%d&@tscAKZuDIu5knOA z_2Lc#>NF?xTt{J)!DN$sDBAgU8_@dsg0&<#%BP`L6@iIHY6zJ#V{`sHMC73MvW@1{ zBp4CL=aYX9n?zju?Lesif%wrBawNaP+BDBK%Dq&UUon^Syd5!ne_MU1k-Rz@x}A!X*U2iZ05qO^qf0bGzw*=(#9FJHX)W51)Lc5c{xbusnjiqG#SoyeiWMG$S3 zkl{yMT+n8o&pz}?1bgC0JqI0ogAm8x|wXdoE2k{_z@ue3f-euQ1VB^Jnkm= zE_A`1=0ykoycrz1`H4Y{(@431z#%PHiSzLgmRA?}3)mWSHWNHKrXB~FWMd69RlKC- z^?~TmXL9N4-ldm6?3z6 z)2RcnLLBJ=(~QDtj!b+5ZESC)H_|0 zE8<~tEZ-OmXxs-~x}4@@ngj}%sZh2JETrfiQ~-Pz(F&K;ijYb(U@ov{hS`6Bz3=qW z{aq33vD5EyR`KpMk~9c(rZ1N|7;;kzWJLNmwd88tRZ8l%D!6~{PnpJ}velze^au%eq8!!?Kc_e?iaGZxu1R^3dP*Ple6kW zE*zhW{;URU+3-2g&HLqS+>!d(_dc@9^LF!d#KU;0_9;Xx$MFQa(@r%Y;|+fPNgmrk zt=P3~ELow#N<}kbS#rYMEiD1u(zL{QY!&7a;m))3Kp1{=V#HLbC;Bp#ipJ1sQwgNh6G*gRtF4``Ohl999v8Bn^ur;iI+ z;9$ADSJ`F)SE>_+*r;#D@yaNS152oFaB~UD+gDBAQ~JI;*w0J{O-fbea@j~eDoA-+ zUz4HnvloU9W(N4WsU;AC98dW~pgRE9*CoW~>|^|-+MQ=~QWHZ}AUPkRU_gYu7(z%N zDeLb7*p(7hV`K>_mrnzQq*(PAseX`IUFur@cleh61cx5r$Sso6;{pebP>+c>U~BG9<`na9f~;5 zoXXXjp!8x?JW z*#;BQEk%`^vTlk!<`^_<(MH!mEbeUk|7x*pU68Y~_GS7l@n3jlA~gYe$~A1;5*_N+ zl=Lz5!y=0a-L&W3wmv~zG!mHM>8H@nN^OpNk2aB1e^$M=R#eJr*#6?;OW^W&_Q}sP zQJ>}boWIrN{!a#diKpQ#PArB^}Wn!u=;xH*G_6MKg4Pod`?pEg#nH+j9%B7wf| zrhMmF@ZDo*DM{R$^3fYHV-YT;OQ-8EN8h=6jk^273~6= znNOyu*C;J88?@miRsL=j$%CgM%((1xNu)`o>t?}=7_Nrz`A}?J)uWqjQW1*!sFuyz zrpt}12svLkR_p7n5a@cQS-iK+4-r8s9ol;7eYDHJQv&_+WYmc%Dm5lJ8b8)^P~#JoP(cRuKpCLin?qAdho#HuC55bleMmHHC*_PI zR2wyKt_`dQbbnq|N=p|TChLJSd23Ij9_7Ej7tQN8y)!rjJOmfHH%~D6s&@;9FfC7&|~n(i(~4|)n!jn7bsMx3P-oV z%{|@lC@fQm4$s{d{M|`-Bk1XTXeu`PPV0g;xkl3~g>eME@9L}_tr}uA9W7c=*o#K- zCT0=L7f!G|nfW{x>E4&KVikZ=Yj%mHotN!Bg$+Qxc2(AnIM!h1t|@l{-Yf7a4Vdi9*Su3rbtC zui{CvI14QkVruPmf-e)@8!q=K!q@qoakfVo(2lu;{Y-jKc9p`(Qj!Dvl}#X&vm zGcjwoEtUNdJw06i!zJn2{DK5qGE!G(g9*S51A?bU4^3^1I+m!LqRC)eeys6hVv!UGnvk%%NRN50&{FetwS6oN%Tp=-P=V zluxbjE=`C4vGTokI~YgB$tOu+Uu}u zLHcAiHA(p}?@IC-!b*%%qT^;{Y6t1DSOH<1#9Nu1$7|=&}J~k{W*mj^sIN&uU<=4a?mUZQe z&QQkCSyU8mqD^k**zIhs(p+$x@f1zgQ1D|%J4jm>eVymncr9MoAj$Ijq;3_-(HHK8 zQk?DleDv*ITnj(jb6nRMhIC&x7ymd26Wc%G7w-{gW{xI(@xy!P<`ZhYGhuA&7q#Zo zxBM(JbuNBu_QiRpbdXy5f4|3A%2TM5pjmae^d8gd)%nv7brtpmP8ITtsd8f5r%T-n z6LyaEjp{C$tnOd!kLubU zm=)F1pur&K9^%gxIuuF6okzx#x>t{R4-hrJ2Xf%b7^7P?=#*%;T1!H82$HDq--FQk zYU;kCw`8Y5Zpdd7HjbhP4|`IJc=Q#=M(6ikS4rDTmKQ=9NzkNLddRJ~ zXM3NE#?YGxZ2O9ztM5CnH~bXQ5pXE_yyJ>ziCcBd(yj2lcU;jg(k`M^!BTn#cm029 zyLfgGS>uj{!gsS@gRMznIy5x3EhX*6ed+f$pskJ@j5sZ+pRJRG^_(7Rq*y{s#Otty zs;8on;Txb`ty&c3S7j{P%j)AWfqFeS4|vuLB3e?uT$Oh@ z)NHo2QptwTdJwM!T9k(N<2;za@h~*i9U;T&8n>{FqOV3)()GAEbDkDpNdxZU$!yQF zBys%D-{^ds9;AEPs`(WAo(4lUN}p}bYpq{;_iWOz4o05faN6VSuBd_WfE_2%0;^q^ zPaV%L{hCspzBjwL$I;`byDI;0mFRyB!Hkk?xCu4WrAYtw9g8}BSIjd<-T(cWc-^x-UJ2{f0lMD~Vyk>n*!aqt-AW+{j zv{OgE*lYRX(wdEoS7K=5hcE9N7kWTuaJ5_%5@CP#a&L2=>`+aYw$2ZTN3v5(s#DLa zTr@xUCBisyhc?*tSd5I_e~Z!~M~Xu7=;La^r=W+oV)1s6na_S}J>=E6MKh2#h|t zMk&>H0E3$m<}3z#=bHS;|4Ul#Hp9tWjn+~&lQp} zMr?E#`@vMMK?5a*xb=8h0xH&Iv_{I6*wBPQ<3S+>&Y7kqkRtitXse-SzrlQMz6kxH!jaH>M*TO;R#1#jpX`pFRQsqi_0UQP~g zzB;hxZswALqk^8nlr*WO{$S6=_hlSd66O6gv|EvHkN+j@I{*OpAy{xKUyvupa_GjcwSRO z^DJ28_yPA|F*>%fDB$#}-}myzzd>*RxHu{!q2#KZzvz(t$A2fQW`Nyz8Dmr0Ord+c zosrSZ(dZ8+W9YviR%N2=<}3l7sH=X!ec0rH5d)=scVE9J?h+)d-dAD}5}Ep$`i(YH z%771-*dQ<5@6L4~i77;ezsIx&C7~CpZb~EQ?s;|v*JuL&ce9Z&{mD!Oz?}dhWEb$I zHK;XkMfuZ#FjSLjHP{CG3)AuLC~XG3;Xu$l=jY)acIGJ4klfb@3j(J7&~Uz%cJ^e` zC-*qh-aUkUUD;0D0!+@5f7qt$H74?(Hiht z2k+8jURHd%ecGCh>8TbD6|&Rfma9UBL!I^EoEq1Fx;t4B z>(XT~uojADeIMnq*W%O`kBMLWsTVu!GD z*HJxzEB2pl`~ufF-;{`ytbBl8ZG?A^{~v_pKgy0oQF38Tor0P#*JvJbOTi)!*s&4f z{bG7yVUJf~naS|il?ymo-}OQ%u6B8Kd<>;#G((Zz#k5qgZf0tAbMN);EQSicUX&j-zb>#22iD+_1Wi)hpQAK_PmxSag_nYhu zIrXymoD!pJGqPkdL*yNkx&5xEQyA5Dm z_zm38NOGU+44mwDLtSGTL6wk`O0g|bAUDLFiaSg?~7YH_shE0lz?Gh z|8cNPvEAIA8J4zB({o#UsT=iK^;r}M?FNraqx;52r$?PeUb&AI4KP1Zq~$|Vx;n8c zP+Q6wor_O=7O`+d?<(DO9!lAVchG}T4Qik0S7Q%dQ{L{OUO?p@2on{Pcc>bsokr%Vu;WUULWn-UnUMbt3^ zn>RPWwHr1~{pej`13nLQPc8^6-$b8uea3%e>J}<9cs@cQe(61E>)yFJx*l6x1-XGs zPosaUd)&?gof9lQN<_Mf<#&23EX)F9u?(>aMj8TmHU)A9p=JUZCJAQ^YrRCac(#~l zrcK{`!`UBGXOVmP^UDF(WaT-WEl?{L1^I+CP2+48Ce+(EjkSL;%yd}UyM zYS8t*;D11+KtF)e?dQv0gC$-SziG^;Rto7G_d!3upZ8r`i0PNWidWTx0Efc_Hi#sY zkUcs6lnX_QIYl|OtRfl@Ft3Bg@XVPO)7U9gOE5NwM>@<2y{JQ@dL2)FdnTxjJf>GU zgq9-}%`ZLTdYf07_d`3t7V09LR_)h4EduN%{ay7uaBk>*(^pj79EE7C+c51(0e%8X zqwW%Qjwjp%3`9aK^E`}NfTl7%B0XLSz@o$Uh-_c2s7ym^U zq1&_`#8p13ZOKh(>x zI{xAYwXU1A1})av{#L}t^^Ri#SQo{c8WFmAS{Y=DkqB|MeH+b@Y=}x3+P%hYFHVKJ z>l(L5tvQl(beB{}xtGKBK7CFDYpiScjZ{>7wzppOX3c8U!$1t-<$%PjNHX4{{O$Pz z8T4*)0+uL#^VOQvjgc-^jt=kO&>u88Z&ttkG6@AHp%?y9;rZmAyaVgCH>i!F7_32!N> z=#6d|{+>sMzqVrd47ebN=imoxSXx@t*3c<=m9r}Ag_?>+i>mQ?o!C-}~c zalJ_xf$GcW+zI|ZHXJ>M=)+$!){|DW7{gzz+(bVjKJuftUp|RiH4q5aobJh&{u|q8 z8ks4e%dY>E9y?i2WPM5b(dlbQ!sHrXpog=J5gXk~+PhAc=N)|Ez)+4o?)*QN$UiwT z!ML+Lm&lKjnd(;9K4@0#eGpmmrKaxmYtgikWjLwIF29{p)pJxgdh@^VoZtL9PdTc? zh#&?G5t&0p*gu#`X9FX#CWy~%IB;lHFPbhE;(&?u!blr#mTb|Z)p#9di|`B;5^+Fzfr<24cD$%F{PB6TS8M;(DlAPd0a6A)XX_K#k! zj5kr-QrR5>8?U77A1;235F%@S&&vP%*rBG%~S^0xpqkE zK5D+a3((_z!uHkC%KqG4>?>)Amm$9Z@R`HaOTVG={ryM(kFOK&kPCQ5CnDM@a0eA& zJOG_UGO+a`JA2SGRAA${6{cJbmUmtc*Js*Okc=P2nSxzJLW%In5VnFFE$e8V&&0`l zh(pG(2Po% zkEHn%u$=PKwg?T-s2g4BDifC+%YjB`?ZfL+0p_^`?NWA~4Bwzv2qzac($*dNghV7%qr?*MAQwrGCT#TFZc@`Bi_ zsbSQJu$NqFKWMeCm8p&BnHj*ga!1^#fL-=T@#a^SES-O8>p*wXq;($wylNsNogm|2 zz)KPFA%WIF7OA4Mw@pA$%=@er=o|U^Gr+k$4uQ^O3SJ144OWfOd$rOS*bXUx243WC z1y=xsrQoE1*=3Qi3gSF%LYPJ)gmYD2IIq=@3uEj1C-MAu8|{zNSwKEGo5=*K#-_C! z5h%Q1O>lVD1ycz#w?Tz0!Y~@ly@nHBU#^0KC+#ytXx2>G+X_ZOw&x>x^i{in_EM=| zdzBsWolE!o8pUXwcrMgKuypa&_oaapx0$vfJ`5wo7`$Y>QE}q#80fxb3EKXqfO`ue z@QcsFYNffhwX-Q-W)Ni(w<`j*p-hELdzT;vsc!nB-Wj_*N`L{osamT|g3=XJ)IA%} z{IrQ?uX%;(aFU(E-pV9nvXB}^s>T0r|G+Abe|s%dg9lVlvI_Yy=ZFMFnvD{Ozq{ZV zaf!jIOS(;CR#&hiu-bn)L@-Jxip_wp%qhWw$w`DOaUz=#cJ-x)6-^^Ph^D=$eSb>| zVR2N8e%M5k1`ijwGIrh-v4LbeTNS=rgLVGZBX$!|+B#3rYWuXZ7SI9lI1|O14f0Ic zs)!Nhjg=N=toi@@QTy-nDv_P+6FQifmIHT_-?&0*Rlz_an(5f}7}OPHj9RVmLDt|f zLcx2i#$#B4Fwmb-2Wk?rV{#gRjK|Fs-fYS2){JP4V~|YV3C`^^+2mOlFjA{^aFT>y z5IvWT-8;iT6(+FJ;{wCIasvr$m;v~}9IO=fV8|PFJpWHihW~mO!K11??KeA+z`vL5 z-GM@8STEj_)$34R4c%qN)bSK+Ci;Uwat^?D%A8?Dswe{Rr~ZW!NJMc5o2cppSx}a7 zn)EP&_kX{0)r^k9bUEZa@5D4IGm9D>-5BCF%>uUV6(o0THCy8+@RW4Hoh;ufbp6)( zh%mOOVl@idSS<5D6;J>5lm6{LI}Q=uxZ4oYL6zOnpp&9@Dz=mg1f!x7VN7ZSF&{)| zd6|w~WcUaz=3}a+aGoUmW%LM4i>DZ$^LCNZnfMShs5w<0=U3ao2J~iXkb*@K8O(_H z1+)}i~AWGtA8#Q#O)`*%V0*M?Sg=1F`^#1vI!wX?Ze zuKNJoCwPnyjy~_H7G%b}Qu9sEy-TtkqbS1{3+IQ{=;{QmKtYDyQES@3OXEGrjitLM zd96>N1lFNMF91CXj-L}@@bwVksF#AGx^~2(2ut+;dxs&MnqcEtp$LiDCX1}Wdv9;rgL^#$TrZ`u<*5}@VX8SGN+|AVd zPS_YsFqU^H7R!#9n;@EKm|999TqeYTX?YIjAJ;kVWCZwb5$9-=pV0b^i0$87`oGYi z#4&Q%;hMnG)))x$VCi)PKBnvqLQkDpwbCda{#)U4oFwTGeR=gconUAl4M;A@I8O=0 zA>y$fvZKi29G;&TtaN_@*|rHcVeZxiYUbT)>D}b3TyV-4zXW4!lCnsXPe36!w5(xE z`x+donT9>vSnb2g{x7r6|N1!r?@d-MqccI{x4;5wB04lq8K&Q)ne|ZFze;y%YHYPE zs^uM6{_N1IVW4RrD|k2#Av#yUSj=vTPlrX($92%{i_kfuO%PF~Kp7FfJl{MKc;JMv z&=68QyG#}k`=5TcEzJPp15-R7lRG-F~c(+F*;=+K&p<>;fjex2H@Ja$()ape4edq#?mbvjmo7H}bEOMvP$xE23mw2o zuV{r)rwzeQ1aZvz2)Mx0p(@YkymmSu5&)YFn0!b>fT$c)z~ve)aF8LT-w`VC0WGs5 zBZvFo?)3w>_^v?)>}6^$#j99D12A9z<=#Vcxf$L_7jQnERGzl~JjtnUd8H@KNh_A+ za(fFtD6L8sPk{8P;@wTuZ3*gF_f!b-%JknqgyF&wJ_kL#-Q;JK`3%&Ll1P7mFbI~# z_k>LfGmfPz-Yj|?OT*l%|K zV(;^-PvViIpY&b6b5>ar!CfZW{YX2DN%8BNf!^S-6NrTZ3KKhbPf3g3Qk*t20GZp5 zL!Q^$L=rKs6tHLmy;`)|yEmirtp}_S0LF1v8r-Zd6a6?i!RITos zEN>@BrGRhtJLD#&5Q6^bvX8u|d6kE7oHnTP-g0`6UWW8m{}K?!fCtynog1EG3V}S9 zkV%jW=Td=ifj1Go+^B2l;z;?+WqO07C~uz925=v7(d0mYH%88l)d`hC|8w#GDrQ{+ zwJ1lxhZ>=|;|6U(F%iK$(_S+wguEIy{6#|+Oj#ngZF!CeN8KzVvpK!@H>4+ShE$EKX(0Uzhn@~h1=8T4b ztBfmxd3g~>?uoya`#-;MqtoHc<>@9VE0%PY#uohE7+PS&EzsLA30G`ZyK^xGm zrq5qP9iXJ{0<(BKtVQGe2HU*bq9&GM9XO-Ou=+>lumnkTye*@!$Rg@?4h17oZ%!&h zdUtzih&To;d|#NGe(9cRVf-SbPFfSPebS%LlE<)7hh|!rUtJ&;MwP?-AuWsg1xX>TuT0Bv{L$R$O@vF1e#w-ydUo8_yKp$*zM~AA$ZdSS??-! zJfhIrQe`KPXl`wVt<2iisDHlmzb27-yooRPOz>)<(wqY$vbZRf%bqW*J|7Xawz|is zg8kOauW|yRrC%#shyE?sG?D@<;G-#(rL?w<^rc`c_W~~z)fc9paCpTkzi2aa)-l4S7wB=d?Z&(qux#m9655xG?NEH=^XpN=?x9dL;(1VegO zNnBJ|QXSr=rK@Zq(Y76@6Y%($Xo;Glqv(YmA>neUR6@jumC8UNB-T*quL3Ffi)K(B zWpoW{N5=g?Xd3%?FYwKv?~6y3!FcNSebK+MO8BcAqtoUwCOb+ODL!A;)!79-aMzrh z*W-K`2qGRMquPJ6$2f=y5S7I*5eGG=6dZ8UH@~(VT`YaNX}89d9!lO%RT zX+A#esC1j=2$t}&hR5N0w|FR=*v6wqQKyfK2C^rAXT6W`t>QS~FpX;1&-D~5;O{M} zpbnVIu5N?MQ3mt&2>9Mze4A6reHq{XFac9w{0 zk8+?KT6W2qJ)l>p+wfZdR-E(4W4%Ei{G(Q?GD=U3Ta=od>d9M3lCVA>^dr!*dlq}# z59xk7qzDjE3|xKEa8^^M(nnr{WA6|FB-)Kcbk?#1V>i$9swIG{x!@%}hn(q@Oh+Zq z=0!+UUV%>?B%$z~uy8AlXOV0=^XT|%3Kn#{yK$a=qZ!yOuwIl*?RA44?}?z*b1?im zPJj4JVYdM;90=i5W2F&1R)DO{0boi+Pd)9pGW_Z}3{n2gNi)XU}SoKck>U+L%`*6W8mto!3YZ3AJ zubGQ`>Gcnt4fxHMx8bxI0ZQ_>VpFN@9vj6OelNc0tqv9YHG~b(ZQTT11=Z> zWYz`+!K>#?{W}Pg2QsD3eW-z_>`vqu!wVRo!F=<(EAc0Wa4r z$D{5kn|wpit$(SR4~XP%JDAZC)gHm>hEO@jZb92~$lN7<<`!*h?1pa=ZXK)yWI=0@ zW(s-dx>57P-d)JR=@RCm!koDK0(@|qlshXdTjTYCfzp7!ik?ESW`ZTi{`|Qh)7G^& z52_dETqsU9XMl-)eYFw(;ztN}g}}+mGbnbejfBz=lUwNqo0E3~k^IjczZ*{HyWJlc z29Z4oZLwMz%~UHS9`1zh77hxF-5ZNJ3(U?h9f z$ZD!>1=qSi0|Gv~a2l+>&WqVsFtv%;?v%00Q8eIny*{(iD*qEe#*2|pw$SBq{rkv7 zZ(!_RrS}|O_w}~$sUKY_axeF~>JYV6{D{2Gm|O37RMi@IOh)jj^5|zwpkty!LLNV0 zJb)l4)0Qj0XyvFZ%I#4197ud6C`4lI^HYu;yJc*Yrul>F|68jDD`x+pb z(>v4X*?e-pgFk_VNCw?j+h+DjzR|NCb&khm`e&n3a}1fl0eEem*DTF2Pdl$Ss1e3l zAT6H82ySMwiZ(izgM}%AiTBK)6n<*-;!!z!rc;>Y%224VVBfc69;zo~E9Oy#Yx&k8ce#x2TWeKebKy3Sge$C>|xK3~DvcPxLIYyNZ1 zY2N{sg!Y{Py7UxooteEx*{I0J1xUxOS|%9unEnYf^(Bl8?No?12sO85jdK#kV)cgx;}1S~7m7NyFxo z6|Ph2&7Z$!+}pbxN95O$?^bkzWBx@Ao|L@8N#0~uP#8yu>(b$6yrIg=TGd&@KKJF z9+Bb(dRVI<9=t{pT3xG-nkgLmZRi(-Q^4UmN_VV<6A^-r$P+P}Y^PQ&&W7iaXiHcV z5b+{hsahs%=tFPJv}#48XTk^Ud$lkMsz^lxJc*UJuntF@gzmcPx#GT!iXs6zN-Ec+ zTy4+qL%)78leBv)5YlLa;}@^GkEBU7spwq|U7LkXP}U^+Kt19(KQ2Ym)fq$My#J1a zfSjcALeFQ1 zp)=u8x8iCl18=7B{%|Myo52oYyvjVoR6R#An%yYHpNE1;{ioUbNVd>fLMtP&%8x4^ zu*yZCDe-YJyG6i7(mbVHP~^$PaL|I%MzRb>TT9c7oxtN!JTUKtW} znlSj=p(ppzCKloESK;xBt zhS!dS+U*=wi#7U`O|47Zr|YeE`DtNt{ef(GpV4e;GG zo%hhU`#DisYKb)Z z6|OLaZ*5Utv_7s}U2i#CG{x+a#-@JGL#$qTI!e@SnJ;;3yJAVz+}p{=+r4LmWSW1I z_7!0;vAGcqeKm+Z|h{mToWkA_!St!9>SwlHpurZ@Jl=HMTo z#|^^ZgZ*I~yVf(wKUbNmtUwTb+=s#ZmbP_fTMTi7>nY#VwDBtRhfxYY7x@vipCm4B ze8yaW1UH4w35{i(NXoiG^ugOMSw?J_e>imD=3=)RhBS6vKJw+r{CFyw_=)&5wlucP zm2CzG9KH1O7ut*BvH0VdWY@Xvkikaor;Q&nop8#IZgE4rV{}vv9fa4ynx0(FlEqOk<23xfTWK!cy_?_Jn%dP- ze}jsolm~Obn+|CT670!}vz37%RFb4UdUGPz4Eb2iqV9%}h1%0t$HlHq z;?#Oh6UmbaORVl;P1^mh9JRoYS(5%n)f@SLzNPm?H{6@^WVHT-C_1!=YPvmePM@mU z@#F7s3vo4(QE3Zy7xLJnMRRLKS8JQS^<;+Io}OF?plT$E;Fsuldc`|;H`GQ<=|1a> zdSQ^wpbPd8?(qX}qwl22^mlnsRy6>*&^%*0qLHW8Lc?dnqq;ueopl%db%eSqbuZFT zwIyvg1@Q5?ay~uF9?-nLoQ3_dMf;l2jrba)&YtQiVxwGXZYy(Sy3b3iB5qly_(|eP zoKA$zEAWSs^(T7D6LNHT7YRI43X@-cwefYj4uLeBqVq_5V*@JlD0@G*mL&N0jV1I} z^d8=+G%}Okj`L}ANSZ4vj}P>Pv8e1Z(pgM|RT>HFQyz(PhVSf|iCcZo-ZFm<#*l>lp{ApySQ5fyABau~US`mcz40Lt z?99sHTK|fjA6l9d|CVxGIjJlC_G`-odwdZE+~Cvx1DjRl$?Uuym3S4NWW&oB2$!UDPXc1%akl;+3R z7YFBUF#I+RIM|Vir-3geL2M@i37t!1B%mPh0nVDP_xC01e6fvIhbkV{4}K`k_oY6; z%vFWYn8e*9EFXwvG3Dgg)bA2+4=%ri-~^VOuk=NN!XZ(a_&E({bDnNQikTr?jeA=9 zL!>hIj7^Gdqu8k*koJ;IaC53C-G1fcf6{~FEW~MeyIC@q?`e$mj(x7e=2H%?*I4g7 zR^^m2XEA2Ijd@FI^20wiRjyYSn5(;06ic%cC7(5lx10>E^c*KBcZRF4Rod1wPc1tH z+7KS4t886*;N9=R{e|AeLd9ZLhTAH$hsN%e{=co=1&Q;BKAviNTthU$ec7Jw^mp@KL*DZ=n{p&|FItqbp0A0MQi+oVeO7r4$&q19_2 z-s43pLo@T+fW;0He1fCJQ^LhGzY^w5MKjJ&1#b7Jhd5GIHRLFaEPZ%BFGlrwx^CrY z;PR^hIyQk$)g;$Ox2D~hVNxMC8?gVgT zX0&w(RLn|V?t`dBR@fmn~|9Cwg-0S=Fig{NqLHc%0B z35!OD+}arLb5Ii1&@@bZ5D>V(o)B1(&w&^mylKi(B`5YrLWnl|PKytnh0mCw7$y6R z@@wa(%p3d^rEB<1N8Gb!OSz+@&Jb~mPpk6Hc=&5E7CAUe63YpTwg8O(19R@^o5ZFU6O%e}&Bb?QwS;MjrCw)nf5K9_vMQ>EjF6Eyg?D`>12w zZ$5r8U5pHxy2zF8U5E!B0l?>zENx1yI{$}sIQXiij;7n7y4>s_C<1;PsSaX)u0gt2RF6R0igSoEPiCHiA=zh$54D6?o{B zcNzP9e}G{r7jRUiTinTMaKZ5awA-(&lor)AUn$MPO&E9~9o1g9B3u zu|$nzw)Y##hq%wnNyVwqu`ZRF6O-d+wi}P8ZtvMan79dKk^g}F~Rbd{15nKAi@D6m;V;+Y)3D#Q5%gdKRp;qne|2_1wA-8AmIp(VG z!d+tn%2@Rrv`4RjR@IOE>e_obd}SgFYP#P|}X?+U%giJOEw)QL@B1Fr7PZz<`&K{-0KWNePBQ(<}03je

    J63k@0Q$CJ;TNk^5-Wzc?6Fx=2fXSD=uBP9pB%D9ysZn(Si6FxJPnt>z#&>Rho@agDrUqD+l z^t*)>Yk^tR_-0U9BqmIpFe{&C+x*<59#}=1mBm;!GLZU3a1)2*^=LY^{)|0mbw`=> zeI(3jm8FC=8!5KG;9y{|xF!AUsX&Yi#f=K!ADg{K5l1YRydgdR^X92((?)SPW89wy zfNlTSs_z%C4Y_GB#farhUHuM&vgrWo`IIE)-v*A_R^Z_?u?7S!aKUvQq}s}~W-4&E z&XPIS|1i0^Nk4HFr1kau6ys}q6R*$E8cKbl<6ix{V#Kwv77~{lH$9UKN9rMAmGa)t z#;wQ4HyvOe`7!4-^8?9gB*3?>>kx$wk{>pvoOf0uf=a|NDEvMv@Osi5fyl7J_cX%) z3gw~56apzd^c0cYDK&CHjJy(Gt1|~PW@l1PUq5xQTEbI7E3yltFHQYZQ{Vy8`9MU& zl+c6M*t`Gv&o8LgM!w*NQ9;FWWZ4xkgvu|(`+HCNNWY%X2pNV;;e3DU%Hs9bbv8(K zTZ$2LUaDA{uJ5VJn8d&5b<%Jyt70ePHZxd0xIe$SkQr%qlZsd-Z_yNAW#4)OECD}{ z`#M`c3RtLkdK??Sg_sEeF^%G5{%uZVIq5RD+*_OmdK`J~&xw;8Er z2D`B}JDH|*nQf)>R-rh%Y7qO^=ZWyQLS;o?vpK{WLVJ_2(=cpNTLzz4<)!yk;2&K%P?DFTvoq3E1r7q{)5Uunmo(SjdeJ2uDvr1X(lDE zq$Ll?Q)~xE(3Ls;!zj)teOHmN6Ur}%Q{4M&q&px}(p{ymP1xAk7^vU>Kpfsm$WRH>V%%M=^dS=D<^L-s_^+=71@&{Xjk<3Ac>`wrAUH+&vY4g{vX#ueO<~e< zMv&Np_Z)M#r}sL{0T;!xuRAQ(J^pF0vXflx3U<`Ty^{>RZC2CE_hvL zA*k9hUuCpoU0*WxA`Dzt8M=63WxBk6??rWCK^J@A!Op~(=0|A#hoWm{R!0DIcY-nL zzTI$I%;%hmB!v4)%q>!(I&{(&^85I=d>=R9?Ts&F?ZeU9|IxCZkC+&V56^92Am$Z$ zs9rDBIn5)-{V)SB7vu-^I%-4#mkfF+3M#;=DI|!@RG2-iY$?>SbQI`+PCz%JG0L1E zv`c)q8cjgYaJRqM?sR#qSiVDjX)Hmshnvc->0>FX1sd) zD2!2j%_qKdINx%?fqR~qXe_}g>y+)!Dxr64HPcy-|0{g||52Dl*@*PR5@SZ7z)5w29$t^b!(on4&p_vd&rRFhb`AB>Ko_fQ?-V1y~ zO`0*ItryHY-kZO!vZ*h8QM&oY($V;5G|&{Pss|ZyS(J5E?|h;5sf?M@tUPbQTD8LI6k%$Rt3tE`_a`n!S#hS_Z{(nG)=y?s5_Q$YSE{lye`sUyQ29uq zmKrt1#dp4!)Krx#vVaP(xifK4r+Si^a{|WPO~h~VEI&U#l`niLPRek>doS;CJjHl= zQM$}6?yKn+PH5|n+^Gy0*sw5o7d0Nb{)oWBuix#Ppwn)JVLD@JMh4w-b$-ln-#Tj! zPd-8ounS2F4e(|#%k238oQ~=Sbh^l6iMA*ut_-pY+Ly~_=kGlsFzi0Dbabm+ zyWZwj`l1rAiyhUuz^q66MvLBOS6h8d;SjUo`0c5XEUYiGT2QbceK~pX(sr1tB++#0 z#)l)1bHm$Psh3`H%YjFh^+vQNoEpLJi9M1`l8HPd$1PjV_%BZPJdI_o(tplFGd5HZ z6z);lH!My}ns)$9I5+RxqCOe6Cma32CsT(H2r#l}$ZlJTXCztbI`CQ9#uTemeyBWDE-H82O%k0%|(bRXZ9pFt( zOSoh**>|p-o<70t~CpkpNf-Q^!TG#uCmw}A=fXMyS(owyM^TVpQlMSgg z6Pk__pJkl)t`(j;qLh_8L2hUBI{SWnk1(;oqQUs15IY8rtosXFmdQ65@bYr;ZV%=* zs489k-9b-w*E@J)?1<^O;DXBE-}&9Dpkm(|Km(ntkH|NgH{}G7O*`x7I2oSPN~m<7 zZ%Y*y7tMO(oXu)T7xt^)|L;3QwTvRMk?&H%(Vg&r-!7^o6v88oaK3)ImHU-l`bw88 z^E|{mJ5dy7*u|?t^J0GT2=PVW?Q?qdofI+!Vug7wEpd}0B(qq6i5ZXT9NcN*cj%0g z`L)jettb1dPb)SL!i#ZKY5Kzbw-3WAkbxJ2T-rZxWuH5O#EU#-ICRXNhymjURny2J zxlyam<52k}RCGV3Is;I>6VTGs>;u2vNe5rX=8yrZzwX7qKf=T~0wNRJ83ViYzx^Z~ z`oTvoJR?dzf;dV8*%{Gcr-%*rOP$RC#-A6!8Y55`J0R#XP*I0~4Pqwp09tGiR4*ey z=SSdScP%L@ssG2>`sZK3^OoS=*Uz&nC%>IAG_os}X4b+84(#M^)dz2n& z|DWf2a5S$fNldgGZs_!X{6@wgL6xv6m{(iBjAZ=nlhNlQK5{0g6;V~ehjnky18>BS zrPuny+8qG2-vpqG^cx@|%3^y?5`5M?HD`bcmk*D_xd68R2$a=R5i)xHzg@36LWKZe zqyTjL#u+ih8G+v6w9AYm`G0Oa9#JCXCjb`hGL%PNq{#ga*iuIrsVgLK6?7M-pR}w& zL}~|8U*&7MOzl${iA)eWJCe&>-UT-;St0hljlkbl(Vwqg{|3PcxecJ^RN}<|wIB*F z=Jw+&Z~wk7f>b|J7y;wVjOKwVt@lOLUxHc66hks5Na~&@qxu?1jsca9efu3 z+ocw-NDi@8XxH3iP5Ac?{6D^$J)O}+WFoBJWPfk4*0=naNg>Zl(j(xxA&xM*z)bg* zuyizvu~Hvz0Qrg;Dx&S@a@Z5;*#F~O{`;}a8YAC)0hM#{a0}@#$XO%_lh>2dv0_L8PR_Lo`mpow>MW023}gOZdQXIL()?3 z2C|WX96IU;b#XC#OG8J4Y)bzB9v*eb21CBkqwXn0f060{o_SZwmicx<|MT(bM-VU` zX~=@#ynpA8O_lIVI^H9UbiSG9Y9z3DJR)02ZH29@K{Ztd(TdDencrJvEpH%+ZYM+O zOUICOOgK`mfI%@?XOeKnOhzbmG4ME;7mUAbB6vH(n1hhe=H;4Lr7DNOKH3qsU(rZ8h=4{Qvno_dXgC2r+c4C~{||fL9gk)I{vEmOnU$F|2q76o zHYF=FkyW{DLRQ%;q9KuNt}?T-S5_)r%9b5M$ljahIJ@iq-i`15{GR8p=a1)~`*lll zo#**EKcC}xAMX)DvzD~oCOe(+JlnyC?3TD$BQrha=c6OrNH){*On)z=s_)kvl+_~1 znFQ>w5WF%Q+Kt4Kh-`5+LwTxglm*hLa2(wsSQOK^HLNjW$@W zhWzp)x*TdrxI9a*_2`Gpz|0!XnH%(<5DT)|L|75U(xE<0a!FDo2AMjV&LLfUNYJ5b zM~Q{1?z&OU%Ni{la2>?i1THCwvH?I36EDCIMGWL}{dc@^PmbPGGdlZ#by`4RZK9_b z%tlHc5ng|}{8%i>4vOrfWGiZ+Z;<0ohx!cnq+bz|g;_q8*N}P2#hr8i2DA{L=Y2k$>hLGwtqs@T-X)(_swaXL8kJ-dXYNRLV(!L4#&^9) z+;8Xr&Ba6+)Fr}mHT#Hj)imEdfIDKuD%a+LPqLe7ADvA~HAKfNvM*lb%!31-aG)9N zIR~^qYoz-Jdjic+pN~n(WZ1BI_{im%RG{DSHR5r-csl@TyLg|-MC}is#sF0!iw z(v;;&*7t+}s92teQn7-OGYO&E7e71x03%hSRu3gQ;}>u^SV3r?0g!lscYM6+2}yw( z7K;$|BevE+Wx*p{EfdAyZWrK-(z^8&qT^~rX_Wab+c`T2fGX7!aZ)|8`T?*JjN|9L zH!#bbZSt_$`JIO)p8%ZT4?7EyRV8dB=w&s2-&RYy;dZy20VT+JY8Y`-hk}ctt{6x7g6Eufk=lY<2zj%2PEudl22ac%h*KI z@Kf=MP~~`~#yTig4iZZyO- z6VA)Bn3bmowmFUL0uqYh<>GyH+l$3&^lj>bJ|u^f0~u}srL#85rIS77E92NItI{nW zewy7-GqeueS*aQHlhB9(QE}S+7q~+1cJfmjjlg-MAIHoS*ApJlM759O-Hm?lGSxM7 z`tAF2uwfU|HHKzRa+UklJpSoe@!_GZU%UPow)lxs?3%ti1yaH;qx~QnlM8g>V9v z+=^$kh5c}Z{-(;JO0R0Wj*8|TN+Fc3zmm}!$%fl>VWiXSr~aJ0>U`CsoRhv9Mp(Xz z2SZV4dlTi-M{|w`OcL#ZXK5F8ptenu<>L8Jxo$qB^7SL2C^~WNO-U;Uv1L#v9|H%L zGpQ%T5{r*fW}c5ON|y?6d3vr~H~fSg$5nSRaC?ZWQY>I_;6?UQf>Yp5dZR7g;CtG|>g65QWp<*DrEi~vyAn4w3 zymg$gHsKUEr78TmHC!{;y>~dFE&aWjm6tVTnIB^7XV}1hp zflI`{6t!(A0f}l1>{RQD+HyX(_u^nu-rgr6km0<9frKjC$FN70nkC;SHM`%e5HXt; z_2^p6qQFJ}y(ipnQhuN|%rQJyXyT!L@lIL_8@Z9FY&SKci4nRyateJV$WnefnF z%Aq|mO2xavxBlyyv`;sSWF*&PuHZ;|#`#GxauL~{2M#AoucZZydjn-U$P;2J%w zX!)!x-p)B_PGI!KiaBOa$XsRewM#IFHBR!TiwHdZIp|QIr8b=@80y%bQa^joammN& zmtEygUz*%TmQy(1BU}<1$Hcp|00Il3l#q^8`1+?QVR}C509-!!9Vy0l5r`ZKyI3t# z=`E7pvA5OCEMLBx<{@RR7 z+2dg*)oIM`jhb}ZJtmIWB8=P)qBo{u%~=Op-&bFjf`%cBBl3ywX)U1>C-aq7w7fi_ zpX19CCUhVTvmOnKJL{GDi6K&Us6X$mA=H9*!R{;y{S+p)5VsNR=7X5U!z5V9MZfSa z9|eXgnabFHu7-eMHXY2Ix%b~^LALqr#f04gXrQ{0sc;u`LD$TVb#!7kUO-G#Nv~G= zV}#MGlA~Xmw>;i*Xr|)MQ6z!Xoe~QL@+hwH=MQ|3C?wX{p19W^48(gip zykrT-6E9)vY0J>R%3%gZ z>ns*ZBVG7VM0uQHJS4viK3#o?nT!waK`C)ov-g2alHOC-_|%zxGXVv#MKYYk9T%3ao5bwx*2qDySJa$g;2=(@R729_*W3RJEukm*t)b|PHmmB_M9wKtBi<9PGch@QDgrMLOm zXnhzyt|aVky+uD)YxcV?bi-k)xgwJqW`5_D>;gVMzsmp;ocl20??A_@osP8Aq-YNl^sU;{9=dVXV=^zF zvZ@0?JDON|9zpyNl_mWiOzY7j{R4nQi5=?D1K7ytWbpBceGxV6XLy}2!@Y`|0vw zOkqu#D5oIIEWd*D%Xj|#rJ@$#%lk&rqrdK?zih03eHluIAjGfKO%D9_DF1Ye6XoCv zIMod=-v8fUEnIRpo0PZw|NrQ}J&FH+*Z=f-{NF5?M8!MVaS^H7#xRIMX8O+|f5>U7 z>qOS1Df+kD4!=O2`Vt7Uj~kS=AMb-c?m3(&Ef?!Fe)+2m$6?)`JrKVY2Q&0BYrx}e zN5DYE4A^f?l6!Oh^r|QtNQu-TK}WXbka=>j8q@w@50l(a?~vj-?|lc8hhraS@fcQ| zy3_=KxbGGGKmB9B{aK<3^4{qV6l8nAb^~YiA*h7oAX7y0zg_4rS47B0X#~H0-bTPy z5tPc)O1e+K;s8?!=m{&h!@n=7>xMgsy+;@ca*c#D5RvwSF4OZOjGgK$ z4>KMc01&%W7XWRvcE+<^8<;||_U2yk>um(^Hxo+E#-dZb8&H?oK#}qhT3Zdb>xUgo zpj3W#VG!^xXiQR2+?nc6ZyPvuXcvJB8Z~^C0P*O60;G`1qmJra7s$V_nGFg3REAON zNR1^f#mS5v2MZ5V_zd^JCX`68^E)s}09 zvkF|(pO*k-5RJla#6tZCn(HIab1E%wrS;#M%$mXNS(_hLp)iorDgTZ_+pdXJt>1$T znhw2UTN?l!lbPt3uYm)F^IH~|lJf{;iB#9?rscr5>a&XYf-p>M0CcyF0p-54G*xt( zl=pX3d>Ee(Nv(rs@XYG#%e`$2Wv5EOfUNUE);W5Dj$N?(Y^159?5HI#3*8@o9UNYq z0e&lgjnFFrBylz^+f#b=HL>O%zaFHbAz*O~C4+w0Lh3EJrA;H=y8zku9Dja5^k$-W z0M1_gOCXB-R${};RXPFqr%S67KKI5IDWf&S>by7(e9gYZ=%1X$tFC$J)(iZ>{UTEA zAD=-nyaFQ9sQX#Cvh9vF9joi1vgAZX2OlAVg*fJiyG8&9mh{e(95<@$vjxYf)jW__ zIe&>V+c*!!i_|gVZ-%;n0*>@zB&dM~*6u!B%ZEfyU4~2{CYX&J!sV$wMf#6ICsZC+ z)GQCIh+GU6#)3Wz#fgqTgC&X!eCby_);(bEOOk0wKTqqLq)Y>H#Hfx;-Tdk^ zLsZ0PU4aYMN54Jiit;z_@vY#Sj{K5!j^TK44^6=wFju;OoM&iEOHA1;+s#hHOgTG4 zi1OwvVeb>nnQ2w44qyclC-DW|rQF9=qmM7^dtvB4#kyp2C_fprrXAFPYCNsm*S_rJ zu+i>DWcl91`=dk>Ne_xLU;=M%E>DgfwemuIjesfQnZn7;y;stEdcbASDjj!F>I(r+b}6Wxa7FxZ(~ zd}zuhr5I?mBxGNem89Nf_G!R;jwyejeD}Dej$xUspoPq}Z9hXFn?XZc~FZ#zq1%H?s@C;=rKKnf7qf zHO?Hc8#qdu+k8f}B`HOjP2yTGQw^XXoHu-gtUi_u=E=FFMcm|=_^GN3XTs?ZIst85 zr%~LbdX#kBfo`}J{p$}Q*`-$SLF2>2+?StQGl*VKxQ3+`9j1Ao zq?`o+Mxt0%xOLnWh2>FjU9o@axcC6e{*^f-uRQy5abuiO%RO1H^9ul^_W}-Y1vF8T z9N#NHSMEMEcvu4f;p`?u#$gCPTFIG```~rFJpISzQ7sor|C35na7xTHq$w(K*2}oy zjw`*urNTs4%1tJ{ry5cwiZ-I(iio-f!zh3tCM(xiVWRi#VQp(iV}YG~cp$EixZu>F z_ui?L7+VKvR>Vy0HU1^@-klL2tPf|Jbi+Cf2*uiD$+2`v#`iFS5rPjRqp>df;0~P~ z9?0}?^(i1IDf^BifodmPSPo*Pk_PX%s%&O?-)U17JI<+%ks^$+Ygq)H^yrq;+aPFX z-Ojt%)Egx4eT?8+&X}U4N3@l9iMqKl{`&)^x=9d;TDEeKs%z^{m4FY1m~%3v2|p?3 zg6DjQ(Flox+Pb#*t(B<>TQ+t4U{{qk7_>C#&GU<_pL4W`S=T` zN5kD~Xgwv+TgVX0EnVOs*K;acXrsxnk!dStr%Kq*Bz&}QS3ehUj@I&$55tB-PN0V7 zR}*41g78kpcm=Xgce3Bt;PNh2JtYXzRzO=i@9paBn zoEK3#{$?NV31i=+r!1aK7e*iNa1ecqS!AEz$haZ1<9^%rR*SIvpbe_+$mHf2wfJFP(?!sokhN# z)}$XN1X@`Aq?rpFeJ-eJo_=a7b2prcIjvL)DD0_Q-r!F(MZ9`7?FN0$<1TwQww= zn~LF>>;@|7^q141fH4q0XtN0LjPer(h3+uV&EA1B>IzZ&45#tgN2+TXcp6%}Tf#r_ zDu9|tV?1fQdw|&KPpOvz3RD~`;pX@@x|QUu=^M2J@vfhVbl5Gy7YUU&4@NJa&|7z~U!ID7 zK%x(UZCiP@{9`KeYX-<{acI(lEa1eSPE8!?cMrLD%)N zfe*HW#x`xJKAYtStwY>|oBzj&rhNaCQ%A&_!WQtOsD8pA(xh-ld8^sGBYVP5IS+aJ zr!7y0IC81DaE*uD#6135wlC}HsqGH>>q17VhgzK5bx^uI`X&4=*7m8#jIY23y#kz! zQoikX8Y^!NS}3T4^9K|ku7kS2jAomQdLMbNS`|!*P&u5#^7fn2)<#dDrU;;J9((w8 z|MQX1=ov~);b1U?NGV|VAQ#^le_B&PT&BSvfn`WvdC_EyICmi3oPJNg@t0=rgbPvr z;qf}s)Ow#1Vm-Fz-x?exMWr0$M36|{#YRAG%_N?N3J{6!ZY{1CC3&Ajzn-h1bz1Np zyx-VxH>rGpMhhcxZ1et1-X`cmt^jK9l%_-a7lrb#=2q$oo?~V0Kxi0tohqvw244?x z=tR8+^Uc3*`q=WGFPzv^xDxGKVgw2i9m8k*M+iys$-c<{)G>0ENd=JSDhO#9rPH;w zIO3>Huqu@u3w@fFrT8hYcacuDklakYDtFT4H54h+yrdhIz;9?Uu+#cNDjvRKlzi$h z4OVRv{cP!}x98CcG$x3-rprT3mpg(W$hA>SKJRY&0MZZM_MU;6LE>GMR*`}a6>$IT z#MKjhe3>=Ym9^dw4ut!Bj<(94=QHSj0C%SI8xO`7L|*H@2Yea4_N$$zir70pdQVGO zZZv7@ojOVJveGKDQld8DITHMv!9M2WclwE|{7eo)p zdIxk4{!A3+tdJ@t$yGqpFCV!?zxxQKMsxJ|HLl(dw{L3U%62m?jp}ny?MtrJvIxaI z#zHU3#~eA6*c{h;>%OI8lu0FeD z)Zgi$9M-HI)h9K-5Th=ci;E6m?(Ung-kABEZ_f;#pV>55Dwa3%ZqKKjWc|;BLH>{J zh15m-OXKY8zzOL?rMnvWI??-DcC;;!jAI6%Jn5@P7;>H~`3a*5LxDP62lrJz6?I6# zJ46d>{1NHAFSnov%!hAr6{eI|J6)CGIOBLOkoOr^z0AD@wq)o1U6i=5_pNp0c%nD9 zT4!J2(y}7lun*TgA34Tt#3Z)LgSkn1`671`=S{&AmJ`w`iwe?qvYxcKR z5+WHt-sz1rymj7>=yD$QJ0g11f6k>w^`*uFXbxvdp|`K==NP`kbqj~JW}Ei}SeTb* zkW?Zla|^3Qw+K81Z&M>s=h0e9l1U;d38|M1Es|VcYr0Ii_1kyHapIS%1(>qn3 zwjyrWcAC8E!u*#jXMRFoyrr)CVDE55Hl@RO+KHtT#cyB|Vx!2i3qS#izVTYB&PXRf z@lMO9(TQS-+bo?|s7ocFdVam3F>~_TxGhy&dypmkLLa~!c%RVB`kL~~GU7Yp$_t(E z&|<8MBBB(ArlUX!ArQiuP(v(61e#E~r*HD(1yuV1){#?S7| z$&TfQ%ijQr8Shhbt{Pgs0)$6p39EpbG?0MC+5x1J_yaD2S%QuE{+reOKixopnsuXU zFwhFlu&)F0vMEOJ-T}_^s`#3YFyt7HLe{bqyZgxYCO?TKU%q8C5f6? z)F&we|E6O&+n$<4Jigb_vcYMs^?uQVQe3~FGr}<_Q;1TsOGw+u0G6W;Q^D|;zm_-?`lLFx1!-QZAE{;&rbU*N1 zI@EUWSQ(LQHy@Iuvne?Hg$91!CD0XziTKk+sbac=SJ2-NNT8`YsSvUOC~ zB%)HeP*`Zu_6FrQ&K%NcHm*BqJ5c$uVJ>5lXM;6~)QgN!(5^|(#Uj@1ywiav6hCbP zoP4;t48}=(?-5(~a=RQ7E5%LL%j9zOnfD>r*$v8(hK3hhg`Qk{gSJ>b*RHq-d|o8a!74ynU-m zY=}6Zp>z@LJg>3rfI3Do=WF@h#&=M#2woEI_V$&gsh)3^r6~2}I+VuxA`7O}yyhcN zIyyc2jPkGJeQWg#fUrwsg1$pJ9bYMEh?wuaCm9M4-e^q^8P(CZ4+!bmJ%EzEf>XK; zJdFZs)l)SH!VE+Y2MU9Bv59AorVuhQ$D!H=8q-TI&Rc-I6djbkJt8Kd7npZ({63|P zEXPTQg_*94ZE+mQEn0?BF6C<oWb<13n?V|x=C^9w+_T8-&x0>R=Zn{q_Ex6~@yw9h*9r}ZkuMuNvR z+7UPK2(|gpj$R92E}hAVzz&YYeT@xuwM6>htk1hQU?z9YMT*9j?8{8w8azxDisYL1 z6B=Aij>U3?^4C&Fw+-=JlE+5^Ro}0r+}xHOb`%JJ!#A0G4m4+<3|)s%#VxWF;_a+} zY}b=>F3<7-%z@kHh|y-?ZKugh6p*Sk3HKEU-_S{r2P~$%}^=ZOdAATh))OV&2?5 zBdIdL;y5EShUXa17LiC?b-&AO`$3gu2iK}sg)NXgr0FKinHB{GEc&sZk_L&Igojp^s>c-_O|mA8Fv|gtZa(FW28=Ct#Hb^t zu2b9w$Yl+KN%nv%aC+eq$EtNF$Q_YDcw7ih-0#qE+?HSrLfLNl_g?T^px%TU&jvD5 zY#ptuCOXBKDk7`}rJURbDxk;ZX?no_iri_N4f?W7aqp>IP~;GU&jMd!HO!qJmy%L} ztjaE7Z&Zm6@tj)lFd36@7rYL$tP_eHv3E9={;9@NkY_WzLwTHu_aPPQ%H%!9NUWeF z1?(GtKLh0dXk`;+!U@y&2MUP0odz`m5OkWXVfS5u@k9?W9Q7GL!0@wV4{-!UT@+d~zE~pr5bnPhU<@gGZ0YW8M4|pcHk%^S4Uy+9~w_`;is!`Ypdp z2VCHjr~`tQ?ez%T2A3Pw{pIY{%iEH0VDw9HvZT%E0sK{}#1ftMOri9Xh3Nl4TclguPb^!;i=J$tM*;}=jZzUAN>2f z|F7I;A1=zjZgS}KHyd{ZjD(T+mX);_W{Lt?hThaj)SC+UU?B#rprDdN{a9WK=cRC- zAd)5ulqrZ!JCEx?HZKr~^AX}cMDr%JmOc4J9r^9ivXvvdP4@7+PssJq8XCj#Ee!Zo zjHr{P1WEtRTU}QIQNv5oe>d=QM4XEe(Ox^?0jpn)SRq^ALIN)EN%tEAY~|Aa`R+e4 z&>tVKUc=`uMJ~enR2t3}%t9I!*wM@;k~quzHL&je5y_AI75!p9sBCV4F0|Z0D|i4{ z>86V_dDjWGPWeDyM;Bru#gf`{^MIB#zkGljckcI7lt!s~cXlv=Ryk>psu1cjXQ-xb z9stiKFzMp{SafOskB{(=<(Ifc2&8j)Tifh=kbHFK>t{)hoYu`R8pPX3ASXm`*&xbX zsN9dfWU9|C1o*7!6S)1hd5Tzle4h58jYpgmU3?kL!Ee;ieyxGp zbv7>`+~B&RXM>Psd+y1`Q?G2yq0WGOw5_lK&db1E+ehyT69T_M;s~76VCrMA61;DK zpXvM6`Vey@N|A`WPnp>L}fqxowKENWe6b4D3i;LRIfyb@A zub_x&22L&-*!>8cBsSLCd#l@e!h0`yE)_oxdrh2MH-v4^VS7&NOz9TGxatovjT z-DvZI_s6zUP2%szvs6VWO=o!f7jZH20odG7E240& z)2Kt6Bq|qKVo2MD%rAlOU@z7K$efGx#blX{rHO0W88k2TRH0c8?qzv=ZjTQ;aT-rO zFemz3O|m%I*+agUnoeiogcEjbXN75bb@UKbi&_VF@E}eGYI9#1)e|BBIln1Bn70qwj}_KFc2b1Ts9p9 zI{tf)eJ0zqy`8#gzjM0fkL3#6u#&&Yt1DeV>H(2%HT3*ulbtyiN|Zo1m7i0&feqJ9 z%C$kLKTs+cS7@|Dn3Vt_F6UHP*oPdOy_52v->(Q3ckJmwtc5M z34FP+OKQ3H-ydQ3J?=IaI|`I-F@vf)TSeb8AhO1wRa7BJ<|rF zifMSbjyQ+lmO3pWjOz%S(=#Q*h_HP9annb71e=3^qED!(SdW$N?y{IEdRzu>e%SKb z%s6Uj8Qg-#_y2X|)2d2!7tnZTThnbAq3c5r(l&at{NZ@dGw>#*JL2e%Xi5QmNhK+P zAx2L)R?)l%{JG5-bKZi8&z6p@AahI9<%OhhiOk6i z@>~rQ31k-Xm>U}c#GY;-{#Y7$t|zY#5@(%z745ug;1Y$)pI7?s(%WGeliJnLc30#~ zG2upWC6Y?Q%=bh4Obg%lCze)?D-jZ~qjOC0VlA=q+w6Z3a()yUqcX@Rw|n9|(`NxY zO%+Ls+Ls{UtLwo_){k08@=`!_$^RKzK4-AfW6`Mc^k5QoOe+M5!#z#PR|vjMk5=%k&`3UPHipL%Q-e^N4LHg3U`^*f6^4M2B9H@Xa z<{$w}M>wBA?l6K4t@zIQ=&eA9^heN}eDh=3K7Vs`)ch=(5s6uuw1?TLnCWQRrX#IS zCMA--(@T-3WAb{)gyXMzqMi#Ug1ALimuE>bB#-Fl(f;>?AnzPP-aYjgtC92;VMK`E zS|TjU1yyYc8xcAdj+v((knv(0{l*9^lBC~J-m`8?xrbP*vfdn_5@`aANRO>r#=^|Q z#wf0Y3DRz2bR@Nkp2B)_9`qsT0eE)YSCoeE1f)S}5m5?Pl2Vyw$f^5=03oy-ifI4 zg%@IA=4iVGZIpiVS=XaklR<~>=R!JXFU%)uANdYJY7t78E<8Xc>SS;ays5FkL&!PT zeUheRs29u}wv8`}b0@wQna=T50u`rP87`OXvpqsW=;@@tTl%P@iKKLv8wp2xl{ihK z#kc=p+^49AEWX3cOmbA8?n(}&*b^tJ4a#U~4$2_Rc82>1j}ge<3lX2xjODqq;B~06 z<~r93%X84_3O*e0G%n5&BuM;%*d3tS`Ian3bP~a?Y!`L9-HRnZZ7^z~?D`Uu&%)tE z$6m|sCr47xun=qnf4@_AQ0`Hb+q0Ni$3Gv5lx)=)|NBp|o^@7m5|JD|(%?%O?*gA} z9hb*90#Rx|3!k_OV05-)5H@fe?6iA~Kf>mO_bPxzq2Pj^4$uo=l2KJ&kvrKmvX0JR zBN2+@(Vh#zrhv94(Gdk1pN3^jCRRUcT`4L&_(VG{$8cFg{!qR%@Bmwuh&dJp&D?n- zfdk2womrPfhD5`bg@$SwBu-ev z1m_j$?D2kCIB$`eyEAVr5vSYgWAX3hn$H67;I7ND*-h!)Kb0yw+{g#0pr$cTBqc~M zu*;R_S_~Xh7Y;`BR}thbt~L<5y795Z{@QbB-l3l>2^2VvaCL{|NyPP^cyKLYb&+#I zL7h!RMCA49sK3`WryCAj_U1Jyihr~OKgt(JVoKwOsvk5AJK?oq#M4=t?(GCaJ33t% zlNw*tYw}#qQG1~>LOrCE}|4j&NB7>WYb--O-Mu;R=p-;iOWR-F zW9_(JL47zaVtSLzS3PSu5tA?f<2RM<*)6B(zklTS+vuZAlNNg?4s+oh3Zk2+^hd6P z!l)Js_Sh&pQR+t|T3LD>@WM@*>O){Al=KxFg%dc{gocVABDq z;@XY5R`@_diz+Xj3aZh1Kw4gO^~QXakI3hBm||M~t&Z{bF1Xltfwj zrLDr&U4x3gf)=fHFv`4mv7e~O4IDa9uh8Pn;Ch1)nGcn}FuPD=)?XMfQ&04X%zeF}fj-%P}icPaeAHF>_@SNbn+n9pb8@P<7hz*FxABLV$Bk75X( zBS=0OoS&B_b|5&v(pqn&piPx~WyTsFo7Td!l19W6$Jyu-z%N?LIOxnMA*+kIi$LNk z0%CjeQfa}BF;yg`us;usT%mg^Hx~c1Khxj$KKy`>1A}o3{JRT>^lRKijjO%yQV~Y3 z*FRBhp#qeb9+x<5zlg1VWhLbLG?0sqC%O+~3?ZH4(4~u`F<=CwaaG?QPZ$!3k<#+H zIZTG4B9C)7R_5~jcZev8NA2_@v2z38s}n6B3dt@0lC-#Vk7q`-vV*Xxl zWhkLyfYK3Fe*d3=@b`?mG#kN)*mz^MTH{!K~Wr31(#P1HgGCTWYfW%h!$;{jsY zkzD2>{5LxA>(=z`?yCtS`_nzK%irEX&bPP#QolgNjN)rBfVGBMnni!icR2#mmjH`C z_M=ne7c9KgLo3o}U-v&il%!A%C@1TFE`+wQ^e#I>O-2G$Q_#U}0L+>orb_URbOWR~ zoUPba@Br)(I6n&0=03g4i3IJz;au0xO8v(d|F3ILw8qN_|6tn9_1EJBuOfIaoPj#o z4VIn5&R1c;iL~h;{nmToYzaZa!Vu={@`h8UinLU|xA z-UE)iGB^al=f$|`!r_6qMkqI_PlLCp0Lpa=?w~U;rp|r{yB_N+g;;XEL1LQ#cD;fS zzb%Ze?xluw;wvEV1Vf|f(aV8eREC|9kDP@VDTCZ#6UNAX8a!B5jFW#1^GFe>4m3l3 zulImhM@$ds)LFpM@N}#kn-lKXMPj4s?oiw8bQ<+;sD=8SaU>m?iYXFt`l{tp;m#lU zi3zAdj&Eh&9?$3pOB`EAxK``BAgYxP9ivh<7L)}i=j&o9y)FSMftYy}_L^SAgww2H zbqnC2FK!+X5IySlf#hG76la;#Qbz@1n1HykR7=DAdMVV4xGfCPo7EbLBCa_l(KFM zaI;ZTsUZunL5cur4s0!DM>_@DEc6lXiLgTGawN0w7+v(CCAK3XxVUD~(}@Tu*zUo& z@e=f*+t2FFP$G9(#6DtpobC>QyEeUC8w5(yOD%vno37qE$3jy{Hu+3ZtG(Hawp25&0eX^w z^IkLyr?sZtZHjDju$o$KYG}=!_1r8a`HIC&n&8q-vL+dR`+!0~oAa_S?m;LVCU6f4 z<~)92qbJ-)vxkz_m@1x6mtV%!!_)O^d((oV$&`ci0Rm<_@5z{rrw%Mwxr2vLY@Bw8 zdj!#5)-R25lLBJq{YY00yoG3MNa>mp8G9dYBZJHsU?!bv97C+AcAE%QJ-$|fxY79s+>eqluKYBYwxVITVPvcL#fkU_il!LTPgP`C@I-3L6@*iT0MnoIzx{ zYF|+36t!MHK6BYo!CD_0+gb`q_b>PnqC^A&{$u9_Ghy=BsrL9D>}z=WGoY4Ed5cJS zAa(sV(=KdtWgdWsSn?aWN=c&}#sS>menb_Yas_o#IeKXTe%ARE@Ui0(5-uFMywofV zu{UG5Vl>S2Z3#Q=pKUa2XazKOUyT~lgeP6gQf7!AdqpAX7;_qWyDZ55^L)h1{}jf3 zD~KUo;=YKj&~!x~IiZ{B>3zx&vhJtrNV?p7!gVNsURjzI#$}YZaaG!j!7zbfak6AH z#hYn4;@@`g3Hr4G+SsL>7@_a>mCLwXPU-*#6enOs6WM}l1 zf@rkB#k7FpmNR_KwFIR8db*S9ZxyH*4}tI*zFWoIYvYKYQZyOy#VMDdKM z>DA8!p1*5^Z^u`7JUC(}n|*lv?X1XClhUPgpTM8~cC4|PwWYoUEW;-OfLulrsFl^}j8aK0-=kbz5>;mT#q7 zy`ztW$4cD$S>|J)1GdwCM3&kR^AWb zD^=XpSLC_5`8wuIqJ;sbfz64;(?**s(;w`eH#>+Hav!`HXo?dv@hN7ZktkWurj6b((O44hmVspkatK2mH)UBno)3b2A zDl=u{(3RB~7N??Gq)3iKX&Vvk?&GyG1t2(jcf8<8(RqD+eYEz=nYM}3Qx?kZL>kTB z_kDeF+YB`{!aAL;+yYIh?8)Ni96bv)P9BG69}4}MTgDsVfBVEJ7|&YbL}`B8?gUwV zSjBHCSXyS38gDPS!^>&NXP6p=ge`RE7-4#S$m7XN94EpMFlS+<_j&`^sd8(z7?XX_ zOOoHq)7sXSm97~4L5oh*BgpE-ULL_y()l*AXKuDmWuIRmwgI?DXJvL^_ErXQ157L( zi_#+`<@-TUWkKFieFui5T0QT9T@beov2xCjWv^U;0c3>pH8{4yA|uVdc1dzauvV-7 z%heD@!*(tGH2DhhcYNM(AtfUb3CYPwBVF%+i~AvJK+^@lj-v`S{VJ&)NN`ZphO8gE zhK5Gp^CwPXApxeZn$r~v%r6p)Dc$Zi-fnww?c7)_@=N zNrm9&m?Ed>2hn(rq>O?J?CjA`iU7$un0g^$rE3hD6fErOu{U~r7+ASGYtE99cSDBM z+mn+oi}q?Pjir0-?yydlej122m6> zT>ML!2IU{EKNVk3xH$_$VKNISFHP94U%h)>*wWKh?|Z{mL;NjNx6}(Pa=3ETC+X`rNmcL#Ct(ak&f6Uf<_{#^1h-lbE_Jb&zu z|7wyCAuna!+nT?gxhoxFZ#Ev;3%6`lzXomP>RN&X7Mt*O<)K4}-0ix*z3f0W3ifO< z)c#2D;p!EFOM;;8H{rLlX)ye_hs14zsGlxqLR!%EYEOYhSZF94;;1?9Nb8JG@$#&A zpy4^Ts=3Y;M=Z^UJ(zBZDQ~KmM+;js>GU{+g)fQ(=(nV+VlWtG;~@MB8d}=Z9_^E5 z^KY1*SBNl5Ie_zOJ!tjcYaJ^sEmdXum+SJD8pNxGNu%p>OGkAf!@}_i{V{-SR3)8M z7va4Zn~XSa4HEn_2ANLKa-ieuvNAn$S0|ieMV+wjQKnvZk}aBrURKa;=bcRm>fke9 zB4O@y_*_TS5=pn+$}1|`B2Igw_x=WC?p>9Wfvcm^vw-Q6aZm;2;i_@Ik&FPXp_BGi@i00d_wZYwd zX~#Cb$|WdXL=I<|bwsd!!#e;!tYT+l@{3Xda5Aun ziiIhDr@O%75n|Qo08Stm%0CE`W$%Z86=m>GeKxSF_mBlXuGDcNb31Q0HT~mpqKT<3 zgZN~L&$BR9O?#tQo)&G`B%IsbEtgmws3iaN-%AklG~6Mw<=TuJ2GRHXdn?8|EK-Fh z4NL5#0dI|SsG;33$=z#^a$uJAVBu@u z1ixG^Je_gsnrxpF8+G|9+FqdbLj!IjJt;!=hwNusEf}_pAQ>m) z%=61h=4{?6hMkyhdSDi36Su{JG1+B7u|WI>eLxaDD(~h|Qk1cg79}<%aBIojt>tE? z_Z>ulWcrn+KW$Zu1-z-aVb(<-2j055W@vO24=W&7{KvW%7Zye!k1`VRu~pvvELe~G zFI(gHeMRaiz4;Oj9Z)0r+XBps0s$|@f(gji*A%Z|`Nw&Fja?PhDR*nB#x+Wnu$L6p z>VzajYhU&PuUoTAqlTY6Rt-2xWKzX%f-vA&zEIOkeC;mzw%oU`U%vzTjoh{%Q$4a5 zvWQp0v>9e`V&$U0uFGHV8uH2R=_h(Vvm*Sg0#Q=;9~E8&nFYpZuru(gSx$51S$X-6 zKwg4p5153l?NY=UgeZvcK`x#wr_Is@PxOeUT6SVYy`|f z!oWVSdBrOKM4ZMj0Bok%hh@Zah&J;55fK>wD&PC;xs70Q`4%5Db;F)K8PC)yL>L}m zdU7w_`OABT?w4*Z+JU(UQfj`08%<^oULjwSyS+HINxBSSAed1mAoO29BM@Os@EEsg z4&LGbD?45Qy#%_s0d3|47l;U6Fw+@7Izht<8WW*z8o~NnUQr==@BlFZNoOmV?6}>C zm>p|Mh}_+3+FiOdOJB7nUpkG1G@W#M0}!3<3e2B%kY3JV+1;QUqQT4uYXNv}VA;pS z#ErNe1Ei&~ROV}NpZPR9<60tmu-c~;Cd3Y@?H-JE82Ps3B>JUH zh-q!}A|P&n6IYNxUcDkXR?LD_iHmSh+sB{mPs`x1KWiuPIh#-;GaIIQB&nOEAUq=C z9n6!=K7GKK-080JszT`hj{#Z?v9b&3uQbg^!lOnH?5>@=*EoExGs8*2!Xo{Bf}{~5 zG=L4jnLog^z!k6p#QoqQ99Wix(-%e&=eEF`#PMBFA?164DRrZR6CEPMg^}&az;8{( zbE3b=bARX||9(yam-IIo_QRMT1XgcMq?&mMH_$tf1En>cKqD{O8vI98*UDh#4_<=gu8)HMv=rp4v@2b&Lm&o#W9e zwY(isbgv}dw3V-1e;rI~ssp7skxa{bRw^p0u*Z*0apeH1;ectRfb=nhrjcrjo0pZC zC^~qs@lnijgkKqxil! zEkc8NoZ`%!H-Ow-%4RJvZqAm4CLB%l-vsfDx71fCu% z#aB?zxG%;G2yQwu-UlX&Tc%DVlTMc2ksc8;6IaAEGllHJc1t47hxQ~iv{3OGcqTF8 z;{S`Wua1jq``(r=Q9?jaLb{O_kOt{Sx|D828c9Ww7Nr?VQt56`R7$$LyBmgj_juI{ zUcc|>=U>Cjaps)8*IxOoXZi0-ATZv?69PrvFAfNwugiPHx-*NudZ>YlU(L7!s+ z9UYmpU_q$A4A7A~EMKp3!N|=&u>6MB_AZGKhvTkj5xZGrfFdoCMgf=_&=Uc26;iMu z(nefDLPlCT0OoPYdf5Zx=9aUv5dyvw)H5Z%Pk{szn@z%SVdAx(C4_*0fRp`R!?nj{ z=6O4yIoy#UNd}IZ|N0v=LOi@klQd*YdYj1jGzX>(>9Z}z!eVqbw>tm=Qb^+ zw^qKz!`RjC^wW~gM7s* zo)(8cr7Aq54uaP9_O_UQEk5RVR3mS{N*fR?#Mgp478__m$kTlS!57+lpA&DwO2vSX@ic&qGSh7AO@LZcVl8=K@9<rD|IzDJSEW;fKYGbZT$;xKi;PwLiB^kOIS?t-l@0nib zx!O@Tx&I(X@K3kZ6U{8Y7XLJkO4WDqv=ZyuA8egJG;t;w);1hIo|}%$Es*-70+urz zcu0Zrgs{Qw6`<3*Izjh2+b+gYb~dAwj0{k~;q*lsgZi_U?|Ey)Gj9yka#;4u(#J(o z40@CzQ19M1b#0!Wt$~((ms$8 z7WP3a&CISn7J#T30TPV%d2EUY_gX=eCA5e-cn(?FP&_^`Tigvv_~rK*;sc@D-zD3h zU<@95ZYl9g2mUr=h(xe7NyKQ^ix-F$0JJQJ*(S*fK*Z7(f#sfe^56&~@F1Vb+1Yzk zyUg!#sEB3WXd6x%A}a>b0`cr*mKPx*;db1_$paWU)X~Vq*?d;O#0Y>Vkfo)i%^$+( zP?Je7w|`JG$RD_K8h^|+A|EZUR;4MVMx++g7J$z zRX)ZD8eW4l{f!!@C+MtusKbt+rWaT9%V7N!o*#eiiG$(}{dzBG!J!fm81L;CdJgQA zE58T=6)-VvXP^r?vi0SpTbRI;Q_yD_El2eIE&!_xjNK{7hC>DsLOKh;ak2NLmOE!> zXUoE-hw?bBM!N=_yu4*&m#6&R(Y^9o+a@cRM36Y#E&SbmqpBmT3Y1k{K}a+QK>qDq z2Yx_Snqj_H6QI9tW5&$3OT1=ses-EpY%QZ7tNR?J0v&%$1jda{uTxlaZC}adj{glK z#@gY2jqGKyS$&rCce!$b$Hv?Uhj$l;&eh7}Z3CD?+)K{4eq}h=*mth;?}nX#)-SxA z0|2Fnu73_-*fOCc{ND)K{x6RmsJ=S|SolH5~nR{tHu7PA0uTL^F(Z_^rVxT&bbYj+?U(OHi;yuUE>&IJ;0 zCXZ0d$J4U1vhLe}5HBeb3D)=N+k?-dXVq=DvXP{CqN_!I99!~>3!s%T{u<1N0O?(p ztar4)!b}>dd-&UJxhMsg3ZNf_bUn+Hbpp7*u!gOO63)9*02LbsnEb?HS~Vl9Gs?Yd z6$>O3-@>p*9_mfmpri|-#u85a+A5fF)7GcD66U(!E1Arf7R})4?5ncn?MY6`Pkruh=ocF*GA+3{QoYxsByOy zrkx2EVf^H$UW;h|I9I{qLhKepJ&{YjWKeGOznaBI0OmF|;{g(gxhLSfa1dgD;7tX@ zd)uI(*9`Kl#(-=}z7(Bb9)SVi-6@E!BnjV2)^UJ_1J8M2_bE^jCiGYXXCRbn24HJO zSc%xoPTbS8_UN-}N5s2#lmL(A%%9WIy8Q7#7C{H#|EvpNmy>2Mxr4`}2N4G65Yy;E z5wPdUOm<+>fj_bm@qL$0M9oF7*3{W+Ywiy={?R06lJLN@^hwa-uuML){=4*+!#@IG zjB0`FA`La|yj5%vbg_&SkbuL&l#~P}qHO7LQDNciXFm)R=-b&@qu0T~oNyG5FSXln z32xkoK2ADF0Yok!U1gAd)R{yuuq3o_OnYbiY{ z?8t54yX*i9&0vu|7Z2NbYGjlO(^l2K&psq^=fUAYKjevT_{p25uy{#>xN~)+tm8Hj z0l|U-?rku;Nf@V-g#$KOsc>SDu5wS+s0bD3UfVzU-A;d`RXX8a-9UK^k@AT3pzPKH08O%Xe)8f;3K{14FCl%O6S;Vh;Sk|jlJu?2uJi#d z1aa+LE5b5+B(n*2?Z-o(p_ikmEjm00mG($bf`yJyHvR_WUQndH>>$y&JcRkas)WUE zcToxEs_;Ak`S!WmLy{?Z?hH~%#gw&&BZEt;*>NXD0Aa&=;uGJ z&J}oOcqb?Hu~aXK^4t|JP!E8M2Mr|M5C4|L6{5gKg~1RtDJs;Mi{4P{nT&0=m3E3s@}BPAECZT7cwzPx05N^tu^-dd8V7 z@KDVp(D}$_)=BoLr5n9a|>TcBU+lRNU&v7*qrcC~2b_cHxliq3n8 zO$J@}*4foH5qyAA#MM!HPJQnN&^$syb%(HtM6O_bd-r`;H`vKeqJykw03Q_X-G}Gv zPo#g|0;&?+>GZ=4#GrrxoKwaml`wPUY`_%w!Yp(N|FT^D*difoG*C^`?vDS#%bnDY zxQl^Zdn1e8Q~mUtfQjo(p^ad&BpF@|LI9NuKM^x-3Y0Sjg?i&m38QqAJ<5?ihcgPywcaXF^ol92at zCq2C5L{j?SgJ*|WxRd9xUiR&kLr{}reA7tb81BI7KG$(gp@$Rkcpk>0omBbU#22@0 zhR<%C){mKh(@s!8 zADWe#0ol!OER(x_fBPQ5fG8CM->o#f36!Sluy&2=$Q6tQAJ@|4N7*qI1cr*Qc!c!!c z+g3?DXS?d{NHJ5L59j}BX@ELH)KGnLtjy;W34D7srNFUEV(}M?@#8>rh9P~vwf*&p z_5bN=Zy_>ZKCw~71xIM<>BEb0X(;KbAK<(V|IjC`X&$3<&r80rkd2ayOK*A_momkC zY^=SoTlphP3=YY-m{#LAx9Z3f2K8)##3%-J`!EQa3ih_mD%b$Ue8gi130ekGTRCCk)ca!2~$65z4ndm zVQD+w*{Xy>^c+bIv$oKlh;h%lsO`W6hvO2vcgY9>A38^#dhn`qZ)g?ep>1dmxLLik*&R&}=>s64w zylceo>Q0VAO-}nqOk2vOR3ILe2KudXGc+-^%U2qcUdjIBgWiwj1}VwbSOP8N=mm>XW~xJZIlofZ}sn*nN8oq zO^b_O-(cicmCOV`_T@6`gR}FSxWOKcvEu zVKZYwkjc3{mVuaWVp3h=Y%MX7qjAa9leliE_z}cPr|dy{ynN9&_UuKpkBb`LIDfY(4OBT=c$O%*M}QO+<&AK1!}@vuFcPC$CLN63L=TNx%|M(6+w`ZS@M@@H}tC zOYew2Z;zucPjL;zXS11BUFyrIqb###AnbqgQBa>cjypFheEPBLLa_SWvEUImtT@)0 z%go2FQma$fkEm|8kLf}5Uasnf`3Q3#PljF|vVqyA1gQELE?YZGhw6Dy4aee$XK)Yg ze&w}PoPOHe-u|xa92#(c|2e5PmmFlqL(^p=XTWG9mpI)**eo}00{q8%9sBopURi4SA%e2IFh{NKShA}T_SWCEv+68+Iqg0BNYwm!aAYFtLl)-A~N?%k}Pm`*GFidFT6w zoNb;L&+Lz9&NPLOEqUA;r7tObhNoEveaasEK`<(5h8vpHM4|RlsqIBp%)OH0jm|Ek zt9=FJOqOcQ>>CK#LVi34g0yn6FX9~e)3rPFx)}>&Vr(cTmP6$&Kd2NSS03`|^%guO z$Y9VUBrH_SMb`MzNTcOL@Eqc?=PLZ1Y!xRc>%I=cJ&;2nbGq`%L;eyHA?Xpi>yH z-8?2T^)zA3*zT^Vfd~fIhY2d|3gyV^gD7U+z5;lUq6{TM2LtC%o77Ptj5(oZHyQ)HgU=@(#vp8OxDO{f9qrr;6&f-lg# z&XK2@HwEX^LVJQN417&o^8-T`MxPw;%iHE^s5l{I)l98lvfbCH9kp~ za@!}gAmZQd{JbYO+@4v0n`djMExqP)y5xh~7~0Z_J+OdbJ;vLfb?V1CU~0;+m+Ic{ zujg^xT(^H3p~5nVft%xf&DQuhQqDvj5S^vkp8Je{h%r~JbXqY_f6(Rb`l+S&jhS&t z=7&_s{YOY|;#vDDoi@zVX||kXUvRE9`70UDdN5SIinNZadq-C$f1n0gyP)v?Su4fs zNLt$0TBZwf3^=e;UZSfhP)eVzLlMdBYk&&K>;=HgOI*N z1AbK8fEjVUDT^nsEbB$@vdfr_>{smaM=yL37m)v5CW8G!1ZwZ`mB8s~oaUDA*|Rv} z(g6VsWBNnww*31ZU3ARwN)AMUO-<=~aRI?KBw}yekCZFipf6sSY&wRca0Adt^PlaGXZT!z2yX}I6|FCIhj9O9d zmXpd_<#@Qt@bU3^-x$$Vdu#M=^u3%R(fB1{hw<*^)Hz1lro7IC3`|YUf#(*x&2K(P z$2rlZ2;TvwHyq+|I`|=kp>BdZZo4u6zby+TREk4`0eK#o?T2zY&*lvI<(_>H&~lxq z4wdK~cTt+-&kl75C<$2pe@a8L+9;-xRj43;uHCVBnz{K)!MI#pXp*NwNF zbh=dsVWelXf<}7_GR70@knks4zCH2Cx>gh0X{*Dv;_LC8>Mw(L6I!}?ni_o5yLQtS zac_n{mzyr zGo)!x&95sDxzFtGycV`w{5FM<0>Ab=!C|@kVfaXKjvW&y+~Ac~*fh1b*z4|9j`p@7 zD`~!dZO#-!NRXDFFZ43x=0nYgb^8_a8R1ULFLqaZ%DSD}6Xdyv7>dJJPEyxVvJ`Mv zyb@Zd>e%&NEQ0?MH+V~ueY3FO)$6^v@!TYBle0-=<&X3MUgn9meUONj(85Wtdg!=^ z(R8o*_F0u}OC$?-w2&`9UzyByuQueY3?$efo)jbKEt%Qz{BQM!Y!VO5?Oq{k7-_4x z&T0;EYH6uNBNi50CN6VCnIJ{0J_Lb*-G_3LkGI~ZypQ+b^^kn5Tv)VTX}AB~eBj~b z@yY+}K^>AWrxw&pc_VMW>>hwWiFcJNTkn}N6+Hh6?_EGx5~D6y-sD% zP8!d*27TL`fcGtCI`I`_0b;DXICz9yl<@Q@9B+4$r-^*QK4f*YG;Q?BS?(?=#}^)l zwt%$u!ed{7w5|D%EG>y=n-km9MRjjeQpgYJNd`uo7ioD<{Ubq8a5v`ueYIjPi?~~L z8Y`=Loe(7T*@PJ~zd+{aJzRj@`|5*wEQyhMO|LNPFCFN;v zvwdU1<#f;wO@7FLj`5J9$x~CLDws%FT!0Ey z4b74nSZ6ajY_ebLbueCRiZdDr$)OgS&Kb}TPi~OVR(ZaQhk5Ou*Lu)x-h74rY#kGM zTzq_H08wXlZb?uZ13|QAkK=61eDF#dnV|m5klRcJ1zYyKr|+6K?RGbXK_l+#ciMRj4QI;~0+}-sm*9vVXck zq=;?OhMA&Cr_;JiSd{8vfifTmED_Ch&tt&v($OLL2vofLJH0UnQs9tgsO2J#)V{qE zdPh=o+%%>Z_Elo%+{TxycmrzB0`OZ=C?p;t9G%IPa|y?!u#l@kr^9b&!RW{|@Ox_w zJLv)6-|foiZBbsx<|U4n5fM3k_GO0q&T1#v&6AKf#w_Hx`ypfM;}wxh$>a zu(oSvoX;z7ZEEFsotLO(@I7d0a%j+tf!k+q+2Dkqm zF>lGsNZJ)Tzg&K|R$}J~ii{q4*Zchw!J-mD;ZAgG#&d-VIkH$)*=Lcwa^|H$k0=_W zt+2aTS=;xQ8O0uOMYxl?Xt>!Dl7YBC?{2V!s%ml2O@4VBB0;6tiqvWcL5WtioY_ws z_vr!&n8V)p-(ak$;7JcKnO^KHC>nJ;mNoC;`g(fzFRKAp_giRAqS4-pHwtm(>N61l zykSbpN5co6`WpQA?7-kOJ$8+-niP^zp~?#yM~E2h1(QyB{xj%v-ev!c9+SCORs;7P z%hbxu@dIGtin3E_43u2pj&N+5+0;|gfIu0_wJ)sZc*IPxW64}C5!DQ8i5+p1elC`= zVdXC`GMfbhN`zOYo7Vk^AY(MZV>Nw#W4?3RkY(^l!Kd0kDLr!#;5IDXK9 zP*7j5LpANqfrk&{3fl4}GCnLrEA@*MPo@d#?)GtNOfLwYSLD4?`Jx8eK2B;|3R9inzpf|HLe%To%NJXCV+MzP}qu?v3hiqUZQ>sU6h$rbrs}F0A zc3`cAvcrkEuI_Vsi*Ay}%elcHcmEI#Nalkg#a^T8%nt&EKl<{2XF1JQ;eF&tI|n%{ z{u^Umuw?&U9|p3898DuF;un*||KT3%g(q5_B-+de*a<UvSGPNbtl4VJ$h9_kN=2of*~k8+GuNDWDoIq zNe`-8qBTW21b-$ae{4{&Mm^`|C(h2#5n>3myK_XeFr1CO4`J@!nz5}9;lAgeK_-?# z*WC>U^-Dp;FF^%}?tH+WH^zDED@+L^DGkEi1Rb$V>I!gc2I%Ut2SEh6#~PQi&@UNa zMYozV9m2of9;yzm9cDo199X?pUnGopZ*;z<&&Wjx3_77j2U{0%{s6bF0&>ycTqi0l zE=2>sq=%@)8(Ds_wdWmKuF6Xe3rgloa~N7+#mDpkJ((qZ0s$OUW$7 z4WVe0S{L;2rY^vDOyp#~{#O<+zQR-$dd~PqmC6`?Dq_v((s-#qPy2<#?~MwFe{$ph zbHT-*dkD+LAYoNqxWT`jreE*DGaeHDdj0pu|NZF)7}FFwnbUtNlNW#fmoQubhjsJv z;FfxR|+Me1E=@HmB-wFITJ!N_)Qh@6u_5`d}`Xk zWrLb~NszJ3X5q1ePoNdgV0-EFfJ{+YnSB2vaF18jDasv~eawjt?G=g_)w`n`bDt}U<_|t8c%7Y7((?`*>i*dd z$YBNUm}viWZu!TrGAL?k(Tj_VQ|F6B{r1AV^WbwoMH8iFQQf~k`mErC{^w;jP|+lM zS+B3}s#nOyPRUBAdA6kQwZ4^tzMUsI{}sa|@l5`n^E?L}K1tf(1v3qHh~pXD13#iO z{&{pD=ROaplJxy&7Zzmn^b*kW$;tsd#giHT$8!55p$&eDgL1z-%SrZn3Yq|to}hBr zc8R2qx>W%{bMs^}z`T}`1kZe~_yv{tDeyk%09&3Z^cnfbQbOsI2pIrc?dbFS+HoQ1 zKk_8Rk4?+W%%xdKPC?OD48NB;;(!Z>XhC+@bGt2t*sWEW;Q#cjO!_^5+KeMmRqP-3=w_bkeoI4HbU$dW&cI@Y*b7QV^ zaxn{k{#>1qJIvQ2-J0$G>=RV8f(*3tzDu3u!WqieEE$=)08$|5};+07?$X8u=O#(&}puE9LyOXH5z~WwK*}v)@vyo!lB-A-8E-xiN=WG zV!1b&iSZK4iU{A-_irrnDv!=q=65Jrs95zJ(Sxdl2 z$3QnejqNaQsO*~??yMxrWOZ8=`xvaG=KW&9_DJ7zosb9GcjvXg8GYSh8#_oJq&_QM zq~Lk7nz`qoQp=NuECEYHP>(%}b6D&hvf9~Ic=F`+v+XVTp%Uwlv$HzP>S>~l@@#7% zn%xza1NI}1#%nEeg)URaCdZ-^uF91MtGdY{HB)JVr@|q`JXUEX!SBwY8-jyzZO7XR z1g)T47BkoAxoP-1I55f&W1Mp!Dk^HF*E%Yk-nl)20m3^mX{Eh$#5Ppm5g0Gv*dpDh zZ&Awq+CS{g`)@5wWgTJu=@HlIj&St^uW!XJAOHhZoEw_^OXNc}PpkGen>90PX1T1>oa^B1 zcZ&HwoL&jlcE05BfHR+&F7zBNzfk?ttJ6Y=^_>K#QM^wPI_!fSn?jUk?tVm_O;`|eRk>u^sI`#3h6$WLqv|vZ3*uJUy zT7LVJL2TFA0#fOKh_25yI<*c`XZyo4bGbC%p=|mnsGw2giH@Gz`T?8Ayj6wysMtXR zLapc4XIIySHg&3=mc=PO`HaMHZoQ+T`}?O}Z^Rf7zR-|*kr5e8=}BkPRP}3qVt93J zEvnIL6E_bIXQa$3{9wYPReDcCo zk+-*9#47P_>})^v3S*t2i8H{e>TY74nQfXvD75Wh23-3UAia@3T;&QN@4Q%@6B$Oi znFucOzg!kP#9dpQ(~(r>B22Z#8@GU#R72v(fBbqcESTSE#%((#MP#V@Ne##!_7SPL z)gwxluRH7azw&p`k!&RUQRK^J%rF&e3;{KOTX1c=OP`P z;^s=s>-c7?9~Ul`SVXWlAs?PlK)bp#U|*0%KU>o{&GdUjp2tkGJq|CPp8!>uu^dxM zn&kmWx9ud>(pXs{A>~M!d&ZIS`D%>AkgZ3#$MIg&T=K@Vj+Iw~z=YvCB*oyo45^la z?%$$Cd;QveeEGRa<2@rJ{Y4&qk1ek`_wy4~zaQ1V6*Lx-qmCQ;5UaQ!=$sKc(W@j*Lq+=kPE&58T8FSBmb~L7EyCMQ2!me2! z1+r#guD0iWqh*D`j!E2ZazKd@+fFGx(N!59G@6sHQ$@#4c*o0NCwT@ zyN^)-v!tNpH@RBP-K9`+2A7#HTNK;PpRa!}$Bz z1$#lybN=SGHrAPIWgXEoR<_2$QmPqdTzv}XTgg1B#;t1hGx={)3~A}sROT2~?gXFq zH}FF9{Y|(5V}b<9xsSur@Yo8S8k7FxZ;v?Q77;C<0e#s%zY}WGq)}^BU~amSj@j>U zr^|k2jlHI{;o4;%)TbW(1xjf}rMX<)>_E^pt=)!?o|0=lUfxG`w*jC5kCs&<;jpVN zmZhtto!N3ZAp5(lu0u;B>G!8#Fk0JmS?w_bA*)+Z42??NGg4a*v~$SDsbqNgNUY&C z(otI^%WQ`bXZ_ClYnZvw9vj@V>+b7s6Fi`?tJi9B&iD@(aoG$u6`x8b?A_7pc~D8< z9_L9`x3lg(`_g7CP3o;(PhtTsjdqVw5cjJ^6=iL1TRXw~lPhisU4}GG+_ihUOCw%M z6_MZzV=TL_pfV8>utZOyL%z*)HF}w)3oSW_s^g~Kb(l4CU412pjal7U=+tMAYw%bt z_f$ng!w5;e`jIaKjKXpGdXcXRK%z*4Mwkk(9@F-4KE~@zyunS<3{A-Zz3%w&J7{nD z4j>rK9@hoPv()SYu6dVQ^+~&F!jUVS^e9j<3w+`@?(%hR*(>tv%X43MuSd^DD}!p% zW1O8maFkcj1<>#?@3WA;Ag+JAqk4f-xS^ns_ex7}={kJyL$YzVL-EGftLiG2S4Cw2 zxn=4> z8D&qXOi*Ziq@2BlPW=9+fJIPo5j^Lva0)9fwf2n4xz#tR;KtZ|HaoFR zs;=FL7j!Pwfz$w&-vR!$c1`&((F*DQ7650F?R;r7QSvnIcwKscJ6qRyzmbO0&Eqpg zH&ipmX+bwV;hK}#%WDJO$vc?TE@EZI`c(?K$C?kW_)KEl&^Wi={wlr+;X(N6465o2 zoj>UM(Q44?g4nO!lRVrLzg+$@Ze0(92c#ze&G9r%l6^gaA%V>tl(OCk zi@uCAe9ElPcD-747>nFMdev!GWbCU} z2P=n+C_48ZQ9KCr{Is4!Nlg{Qh*BxY$Dk7O%&|%PAtAeG;ef{$8d{2qff;b1%qrYi z)$WQ8mY{}OYjede(Y8FySK~mMRXCeDZ>c+5$eV>*Y4$gWdZdPoZfkC%qTH&Wzy_SN zyfO2M+UG?b{PiL##ul)YwQFTV)?#TA2k)MLB!*hpOXSo;WrtWCNWYj&9o+Ny4F3DX z?xF)E?fm&gugm*;7|A2jwjFX>+2BzT)r5)=SUDvPJ zl~%Z;mGnX&Y-UOLmbxFS8kbxZEbU#RF{Rs>!(r%GmZI`<@T-ST^LYE80Q^a$-1Y&i zLnq6euSKTakf)9gM|MkA4w|S%=`lC&y7;$7ehdVOQQnc^3@7`@8m8hhc=S@+3g{h; z(7t+11*(d*z9q5yYdzLEGdPqqG!phtnWH}93^BsIMkbVljS@CqqgLCq4X1SMl@Vq=cy7!yqiisPh<#JGU_5HWXMTKNhH!Ul#SIz2IJO(nov(SET zh2?bVpuI4|4{%nR?i>}FiXrHKpwC@fQ6WcR)X#XwBh&u5&s->5_Lkc5x;TP?iS`nI z;`xm2sB-~GuL$FJy0-m};Dji>1=b-6S~;fB7vUf z3E{C?#<*Gix1*i5xWr$WJn|2zAdxi~aQ3)f1}{(@QMKTytLHJL$z$qKp|7S!e|)gY z#*&j~?YuVL6H9NHy}Qm`uZ=5UeZcwEQ|H;Uw6&pul%7acwb&QjTje7yDJ!zqQ+i&- z^LX&veVc(}zJ-Clt=nJCVq&U$uG!q)vK>wMWzTHnoAz<6ILsC}^S>|#{v;CIDe=Ey znuxAc$}slZ~QmJe|TC{-dW{Sl^F`71{|BwZYz(K({6^r#(;++yPk^nj$Z zf-wXWIdNQ)3(UHp?$t%2pk&d8q@`Kmz~nAr>}X-BFDq-=TnrDwISivkeSKYX(^4CoQ>=w@q%=gL(kpb?od*q8Ou78 z8Yz~0a*g-Nbac_GdGdERU$cc$rg_KNPT>scs(s@4xnh+@h_NlkKFXu94Y%wvsLx>T z&QqtQVYvsv#4OkEL(9KIhX)`g&NdU%j4L9l4nai;y3O97`wU)+WZ3AkP?ninRwgZR z0%i^PaY!oHzyb@uHPVOP)EoFWTB^(R0gi1tmZPBnR0Uu-!VhQTRp8E?vQ#|f z$D5GaAw0Sa@C93FDTZ8H-SUv)!caBO;UEkGG18Q-?p%+)o?f+aBKM0s3i4_e+OV?; z08C2L+1HD-O0CCf0noLYXnmqgV%&A-;STRJvpN;q$zai(C5l{StKstTScIbbp@mwz zsT0?sI_IdNYz4Z}&XOwk2%<10XkAA{4L8Bs6g6n5f`Kwq2PCFR9OLe$u_+cyL^!cl6 z&XJnGv!MUv^nL)2>P2ECLLp|woN@Iqz-6p%eGM!mOS!(l7l(4S5;~>Mz1WNW{N+{l z<6X2@2WR`S?;_Nm%?b(9)@?-z@+lAnLGFrw{@f7Hg-{X(v^n~XX0E)pTm9}mVqpQPVhM~(7Xq|s;v&z^&d%JXkHEg+&BU5x zIG4+F5Mz7><~t2z=bvk5LyDgKCdmeU7bk1V?1CW=k}BbWjxGA;;M4+q>um2=sFtJe zm(BU#X1`KvPmtm^q_C~t_T@zGQdmt29PdArRo(4F(V$Y@ZrX-C)+)+vEmS|o?!isDE~3_LZ>+3z~RS=PsfGcw=s@# z5tb(rv|zhcZE2jmsp_`3#!}W+UiFz7!m{(G(Tmp0eGiG}DX%U-U0dmqdMPGYK$&P8bznE{G?Gt5Vwk2jn_j_m3iV^g}&a>qb7EtbYtvFCX;UjU`MU#?c zPONFDNjP@X089htlVx)NaKR>wZ=NBq(Gy%fsn?c$JwKfhmN6^J%gmP?FG-K4qo?Ok zY59IO%pGs86)*j#e*?4*1a;BWgNfI~4pi^CuG^{hy&iGpkQ5ld`j91Oekj%7b3;_l+i%5H^pPtt(cR2x zHQ74*SrG+~qa4@LP#M$^Q85^1GmD0+~=%&jxgjPp|y{p(NmW(oCxwu%xq)n!o{ z>zpS@`qCDS^4mEZo(gKuN(b-Ty;muOYJZc9wfKgvmZw1rDQO$+HCcr8 z;Hw`oEw9O+D(fR~z}iLDEbltsAc)dXi2`|e9}8&H;i1?HTENXvAG~pBa?g7s6P+*s zg5~C^K^xwowOA)f#Svkm>)+_yYX<@IDsX7hV zG|CH?Ik1SZl3Bb0%_+Jp8r=FELC*X!|5%un-q}7C(CxbqC!~J@1cX;g#}^PS!`@R1 zG6=8S{x4yfcLzLm`R9e?aP3*rQU*DMNyFq#^2SLmYy!X&<=rcfr*SXfKur0 zz+D%>D_T{D0ov}v!L+&928mD-re)FJ^{PMj0hI|Xs>q6G=dEAnJxLf9#+}sN-TkaG z5=;bW2D52Xb*r2N`VLCE)%887qFD4JL0f$tXdcDDFb1R)^A5uj16Kk8U9>dd%DFA* zsRQUBDFCLg)~VI721bAeC~(?p0oM= z^X#oDT> zlt2*P0wH3Mktiq{8$f~xh=+D`bR6tqE&qP_KUW@6%9~Ea7g46@-w$fhimisavohh3 zoQ?o5h%xw9lRZoQ<5;tA7zg&-vr?LX;C3jx$H@VVBd-b2WMN{$vj*eP4O8Ioounis z!@#5iNiZ8?O-`T&OmWbF?3xA|^uHIlYwUD@wD9nJoq_z4#R+Vf1vf!peZGe$NE?_`2jH3g=24F$rv z4;UbOd~Ix$sq;Kd6@7J08AyYzU_TLXck>^AMUMfDA}{>>jywd~UL*@sXgvtJ3G&|# zni&V3S;F#(0!%Qe3<|p1+}g@8K$?>wetgexUKaFl#S{qu5|p>rqD+7xk`X!%#%&fQ z{_i7Z0UN3}{A8Z-m!t~4#{*Q$QV|2WaHxQQ1$SVH_& zrZ-?^%zDr|_t9d~UzfvM4B?(mDlzcfk0zVeJ{g3 zFZ`5Z6%5~?Yuo<2Ie~*0u5B2LkWh2Il5_FSojbx{nv0T+yQ6wbOUsA*VnwQAVlL-J z+|<UhXBvwp8Wq)$`WTzWJ|~)K;PG zgh0Wu%UlZ{j16RUv_b_&OPU+QuEUq|iRO3p;`cKDRINUputDOx>uCJ{8u5HY9R$qn zogFHA`VYRK57)-edi_>mVPUov&R4x64V_AdW>|?UvfW+|pF{g=XR;`4wr0xON-qUa z!C}B0#d!yU=`Q~AM@pI|!Ljj)hJU0|{?+sFELbFm)aJhcIN$@HSd4P{*KZOM)(buX zic;6n^-84-?5=ub+c}^E+jGBs5i=c1^aB(rE#L%GGBLH?&J`vHj4P2~qC_*8z#?aY zF_x^!#Ky*U!h_WK@6Mih?XM%OhJ4Vwc`D74dhp_fBEn6w-Er|=8N3_fT@)m9J%%-I zvr38X2|FI1_`SzjjlOR8QEGh2;n8W8Q*i@!!#nSUA>TpEqD-AQC5>LIJ{~(Bvy~g) z*6t``XSW1RlRI(5O$mUE7tmY5!6Tw#kqN07YYJcG%Q6hK$3W#5cO3bCiWibE|ZCNUq)+vyqQIOJ= zJYrp@`<@r?_itQ!(aDJ@i`~t+uJS5$yLl)y;~|53>Uhm@D#CT1?1qj7#Ge=YxWR)N z$&%P%SUuii$N_+dh#TZZnD&->Xj-wJ00#fQm6U2hsDIKc*vLY;7&a<#wZJAeY!92^ zV!D-`@|h6JyG&9?lla+Ib*KAug%)Dx*u4cCwa4k@Az(I`>4N+8YnsCG#};9LTdX9> zR1WRuf?T>;Ap>m;)cnDI=cM2T{VEe{t%8%b-EN8pA<_skJ04}}->cW=ITnsgWp=y| zR9!j->whkvsk!5m<-%>hUH90oD#W3ge|I>4M=wW^$J*(x2h_61i#_D$9_ z;3bs;^MgCSMIZ2hIn=Aqz!_=($oThVPYOgu&0i$vZn^vGb6qJiU-IFPUy5&Sc%2^? zWr;lg5DHFMIv5HWQFVUUD5$5$lKX}At9_?1N}3Cp8b~dk{|&IK7k$V7%Jp@x$xZ3w zMw1J6o&^;=FCctPT#ZO%D6|G12;<(yMBVTmP5lyR>-C##Mv`q?v)2FXwq_8)lE&vG z{JJZ|VI>1F08nPj!t!-}fQxl-A!kPkXKo|Uuj6%TYdYT|xgE>~II(D4{3*?<@tQKv)#h841L=Mk z^BIy1{1&@|97c;_u`^?_e0ti2lsP&DAjQI{3!P7IOp?OwYFH^S#sf_t5A|~6)GnS>uTY0U^ zf_r{DJ@1Iqxh!@Ls!Y>k%EsR5X;-Flyi`_g(l$Qae6vJ+KG1Alhj2}*#_gQq!_=+w zjw8%m23xNosyb2*NVq1HM-(_Nq4qjs$=M#gw`~(feVK~P8OQw>mV_+21lfadu&<&5G zWgg~3eSJ&C^WgJ?#!$}Dp6{%^7DsowNo+?L+B{d^I4tCNwfa7K+<26Du3Axp z_y1pLti=TQG4lEp7t2Uy&3I3*EphW9OPRpFA!sYcLdL|&Ku33mz(Jn*_wuc!O2PB2 zUGXEi;9+ZeW9ssicI}>`4uOcXxt)cKGXyBNMGpxcn2{mvbv9$XbmqQ6?>zAF9SQmM zLO?932~!X~Z;MD|w&u?I=~)EMpF!Ki1!dk4rWA@{HRO=wsJtI$Jjc9k2}X53jXgc2SQ^Sml-xL;l<3~|*k>p+Z*M7es9InCf9$;{=~;t(tlZ}e|zfj@JH{aq6xJh z?c#z#P?yj{-@C0$MC+wZE$MS7C^fidwKi|#x5KxVnD|=@1NF5xFuUb-C5%C>nhqnU zR~2iPt39c2JTZ)y+|F>CGAQ6Swbf42_nw(?S{l!9=hJa&6!%RdGkHyvE;#{(_Z`EQOr_|%Esc?knN^M=_t;txM%jP~4iDb7=sm_WWDOPXiixzKw z3KtPj8nqm-5kI^v`Pj(4u8IRhc8Zh-lPwvCg71=C#%`VU3CKN9qp-QI@4-9j^{LEq zw|Jl@m`5zeXM4#2(fUU9OFnE)r_M@aZ`1eiYMnmcG6+gU)&?swPhJq=52d~-kYF_p zTw_N4!Dc*XPSZ@ri8t6w*G%zvI_Qk8M_$Gh$0r_q^W{#N9IIJvw7 zNl%vG#=dXHGC4}@mS{o{Gv7ndwpG%5`E81V=yIj{uChvOsrRty@X7*?(o0y)>TPqVj`32Fnj)w5sf}Da%{<7EnJVwZw}(Z?HR6$`CjCAwNiO#&55Lz~ z9#lIow6*&r9JZL(Yul;YXWX(osqo>ZC%H{BcO8k*UN|c(2>k zmbRAFVVg^W(={SaRJX6KisP6=&rQAK?cYw^{JjS$n67nrsJRv5CDk6o)s7$u#CVek zRo;FgJ9aJlQbkJQ1>yayT&tB}9+Nn(AY6j(xTYP<%W(sH9l;zXoWJqX%Id`y?2kC` zKfRum>!o=YD$WZc8{hlD@UHjUmOayS)O`#-4;O;hs7-M_8zdyPWjy$t2*uGNx%Pf7 z5(WvTvz!6hg2}#H3#ILLHG+%FQ%7sNa?W&c7!}(d$-KcjKkOMyhaov}Q`^J2o5QlZ z{cP_};M?M@h?y(+u(U6Os|_|fOW~DcvDGZYk_XedPF=st_gM|6`sh`G;gyA|TVe#%$7F!-Dv zf;Vq4;h!#-bNAkSAD_AKwZ?U?t7PtHBbYjcd1gT?MoJB-m!TiVy>zGCcr*lOhTn?vYQ z3J?xc*P{mv^eak$Yh<7R!v?>*v@BVs)ERXT6S9Hw5DrUe>?y{9WJUK^`fxl40@h~Fwo>%QM5l}-;%w7A)FCI91|caFVv=F0~0 z>~GmlK1;~27dV(E8vm>h6i{5--F^27;+-@r5Y4s>c=#A*z-Vtd^qu|V z4GNtJ_R*$GLZW~E`F~;wL+jH3_0QPoOLFN9dsMvhbz@$7TX4~I^S#DGbG?3VmP7&Y z+G@I0MzUMgtI4A8%`yWTLdiL_OkP30P1aD}6acn{RqXf-!|9EYSAltb^B$h(ez3Wb z+0Mg7s9Z~>;RuY8fQ6t@Usfp&z16ljTgQKW)EU=tert{fC4TU*deeR&JELE>I;zca79QZDR%F3#U7kYy4-rHA*l!&WX=C9I7t=w}Ya5 zrK>_cB<<`4qh>s!j1~rO*0cPT`>yr(f+_3XAV3I2hDY*L!H=+F)Ja+wxm>pFHw?}$ zHT+ww!&I-b=xY3I?e|9>hePH)vh_O-!=B?O?^AIgGC>R1=*8sw;bLyS6wgSBR;zKz z*;-LNGa_Qp|yA%JaHACnW$e~E?A<^znGhrHagOL@Cn1C1y9~$8zP~T z5EDgD_c$w!_&7Gj*=5)P`B7C8YuL0;Bc1tsx!|e_d;ONEO9m*1gjpe<*ygK}2by z!^zajq_4^}&xj(0q0?JJl+0_7618m~Hb>!eG8s4as(fj~r(UUA-*QZVXJWc1PXtSN z?;(1}xBb*k1&<@;XiK1JnFZ}8@lWqt2nmw3xvHBV`&!FIBR zIpZ7y_C2RVQf8uqCR?G&Q5*bL1-hLJ-^8wNp}J>B6VZCdQGqQ%PG8w=;4?m_<2eQV zqz9=6^*&0<#(k$>+1&l(^hlAA1^AY*{(6)^e61jryeTk(k`5DkPZsjTB`Aal#`!v? z+qgMnO4&_Iq=rnYyTTrGIr{fcFEe-&kL(v>E9!4Hkukb|_UB-FE4#6tjq(*f4~?B3 zwb=C|@#Um*_=448lmi`~>oXuz<b>U3ohYY4)fN*S@wGj#DqM1JZ|2cz!8_@2A&~;Btzz+!k6X1UFJ7f_^KpKg!Gt)D zc<~eGPm>NJ@FPq!vyaN{dOrvY|7FXrk{)UD=EYUu|M`o5S+rE#>5b~ycGA{0_v&%Yu)MsQF4CKe&_LtifJxGxkO^x>&rn+{uA$^B|hvv2UK=Xu4Gy z`@n8tvT31gAo?BXjvvM67{aCG*;C9I2BsN-t2=k~(d2yyJpcQvP2sLI*{_ z1djMMMI79HN7H=DT4IFn9T4E0Ao5w#)j(^f!+C3eNTd(#S>OcU-b}nmLe^~@yT_Ytn5%NWHsXx!!)7;~);IK4ZYM-VlrU*m) zp5xbeKH;XcbQjbWsNzBa$GskG^^sn)YknK|t)J zf`>;jx{j=72OqmZ><3vT1lM9ObN*M^i+_B3k{;us(#0bI)xSIZ>H=`3S3K?EP|)J> zq9L`1OzAnNM`NB##E-L|+Iyz4UUqW)DzLl1Tn4Faiupb~fUr2(duai70rE1W1{Sg0 z@4PuT|IC+46&VlDGgYRUn(1C*lwzd(zRVL-2*!{88MjHL<`6qAo(LYRt3H$N06lF( zIYmI^$jMXZ?$&wirnHnJDLemI0gvZW`w7g4n8&)Wlb=+;!7M&HmWd$)`Ok|ne|;EO zxv-1#XjQrj`FijB-xz2FE96!7pe682X6yp7H|JYuP+(7UD2?YwmKwP~UdWJ!Sf>As zUlRJn7~5&mc^7=_vdW*4(vRhm(z*z}rZ)(SGPd6ofrm_0CvGgbHx=^^ghP)t7vqCrcgmmw{vNE0YU#()mBJa557>TQ!uk97Nuaf?K}zJ<_mk84 z8$NuR;E9~5{dOjqeRQZM- zR2t&O5=l^&`#<{wzn7{`q`ko=-nTgJsi12g|2lso`HxQ*!7~VQs@5}-`sqnFp7S?r=9k|re>gY(VMGQxy=gy z+VB7QLF$&DTR$ag|4+E|kH2ub<);j^!Knwhjr%7>H%+d=G37KoKfT$XPvDowLyFp& z)Jgd{E%(c3?P37}2N%O}eak2HCe^R=cernw{q3p!=($LHpEs7&xi$at*k_!wYe`|F zW3Gnx?QI6%^xLnzpKb<|%71-;)H&h}o`Xhf!+L!L;ev3*NYtMf4Lsg_IX;}dfobK= z7nD$?ZvlTQ*%tD#`h6M&KZ=C=1sxfzJNoz&H5i(&zx_RLbn@|QeF#IX?nORl-;35i z*o*8JFJ0Of>?HolL|H^j#hfi{Ent_3-CQV6M-_Z@v_8{Fw6B{nj5LDJc-T-bS#9Qk z3E9V9d{6}c6A^N^JwZRiTyB>`@~O>SM&;N;_|vVKU$EL#bK=O!)_=m(e%vYq0CV{> zj6r<)Z%)Rsvyyt1vEd{7?<@JY-#m~9S`a$Mnx9_y4;%LPZ@}lQB|7#cfBUc>cE%Yz zWFKB}!Y>Q*Z$1?~qUXQ=jALK^-$(rUvj1(t{=16*`B47%EdH;i;=ecgKN_k38lC?d zonKerzt`pe-`6G8KItIIV_STC$x~C`XLrVO_Dh^j z447r8KkPd0tvBjTU^U{@t2BfaU9BxS5v-{o^7=pS-ya!bb-Gkc64Nwz7S8eTB$wgr z+T?=TjUI)eMKJdgomj_&Pl7x;Sj}vq_sqThq$%~bzZy^ouBn^hph3DD9rivqN5MF; znY}Pws4IOHD8rkJ8OZzf9vzGBeta{Aqs#QBc4H)ks!>oFo$Cm%9_lFI+$Au@u0sF} z0*u$HuyS9>h>7-RnSA7lDbo^JshsM$AiDh8)IH!SSQbv%m%-KrbpmyJi#e84&7lk1 z^+(>+Hw>jjfR0nod2E)JEKZckx*1F_?SaYDb|*@g{+x3D`(@F+(q(#*bL|`jFS)$Q z8`fxIN4Kd^!Q%Jj1ll8DfoCRyz@WKIFfme4Ls{_RZOU}H&^CP{+9y(bpBN5bgC`8* zOlVs5*{%WI=xZ{+eR@UtYQSy@FsCZeKy`GUB;DULl3$nVD`E9C*%c`7b$=#nx)oIU z#mnQhc0sx1;!+eCx|%5&Su8CR$QY#Jy{I1goP!-V59XSQEajG{5lF~@G3VaZU^Ar?AkL=0YqiZwv~#p!m1eHN9H;&ZTM5VPIX1`c=|x?r>m<y%=w6$VP27J5p-cwm0_wP}c?(+s_i|0pfRt!cBFj0Mcp>cCgk?R`v;))>hR z=DaC@9kq6#bnpscL0AP&wS-XhPD*?<0ds`e@U4OLD{k}B0OHq``}L6dkt4$$N8AM zOY!yTu%Y9r{eGwV+e?}r(6X;MTOrLG%&Goyd@qR1r#gYj;&K|J#YRm*xhXX()f{Jg zSm|$gY|J~2IJ9JdQPoK8QNsg+!x@8OOzU^-f{L$5O(v|B&wi}76b#z7F;L9B*!w;a zD6%ZUROj5%+4~NAgQ7VQQ4DiH<6~2y%G4K(tJKS5+c`fA? zq0fnxJpjhA_d!;Y zMCzlI@g0(T+ifyafK{kI`@X&6$Cu+M0hK`TAs|QK#u%Mrl-LZ0Uj&}<=yp^ zqme8f0tcBJN(5iMzMVC=>rX^t*LRKGNQ_e7?QzhFz_wyADV0n|1xzyh?9?ed_s*Y0 zqO$m2Ih`M!j^r~n!xN$byG%Z#aj*^2q{gNC9#c{5|WaBcgu!7c^!i&R+zRGSz7ZW zqHldpZ{!sb$Xu)-qxljj<;-rg?)E|R#^s~0r1v{F_R&c0epV@-2%5i+P#gj_t;eng z6Kz@?aE=O;GB{IY!G?s>_{mMMU=E_GdX|i47?2Pi$S}&9Fa?It@@mNEwg^LGfCb|{ zuJUQ^&&x~R=bgD1DNQ2IPv_WrMMo}-xH3SI4%Fab>rpR3y)@*nC^l}`4wu?2hI(%eUH6`s zX1JfS(|Emj;l{@@%{bwwW)xi)amLiIfvFKa+jm*$iDCZ$n5^2Pg#@LVLRW@Id~ldh z1Zm)2t;|*kan?>x3^H=;V8zvZ=-xG@_(;NTFO0PT$M!lHT#o>YcuO+3wiX=3wh!c) ziH`T9A2T7ysrW4(Pz%~UqTq!23Bnp+Gl&E`c7}w4M?l)B^F-FhcYlgOB{RuImqH4r z?l03EnI0}7(w+))fu&+=#t*n9``-N1l}UwQq=0keyH1o}@mbeS1n(Gmf%&QSU%5ih zopPrVu+c{9I`4wX;s{7wzqkb16TNbqY>!9sT5?-KKnY-yDZKyvleMw~j7p?aXe#8| zt4n@oTWFsuihO%Ym>K*EJ|O^RURTnptmF?YwR zA+Y-irU+IoGEF80nZy#!A3wEBG>NYhBVLGdT-%t8Vgd^I>EcSN&NbN$+kY zvBc+gJR;iH1)6ZV=J3iE80$^Xt>sh3*&fgC|I=xX#y<+UI?ognW1bbjb`8kC(T066 z#=8NukK*H}EJFqB-w1 zab9#MZP>w1sn1Z3VP`xgyzdfFkZsG~kW-}TNmM&m7_cs=A+i6BBy%$6yF1!E+5Or9 zbVCK^Iuc^a&7R3#&eg9I5p^{sy)S`mGgTajKx?i9V+6 ztmcBAh3i7Yj)(Fs)C*E{y~$4A4*Eb5h2h9_g@hcYm(aiZ=3hXHE@=W0?`KUaK5K6` z7IO*&s_9_ozHb)z)~R~yJB&IHWVp?+42MzOyf$v*sPiS{`=D`n#?4NlbTgc;!J7Ot zS$+2UEYwm$N$!`4u0-SE8YPqT%8BP^)#yh^d&6WjLx{&9)hso*@>@YmwF`)Z#bl%q zp~7f0T^D0B14}f+{sfVA^6zfrMs-ym*l&rJ{*ybb&Xvj}DIBCIzI0t#5s1KB`3z;A z$SW%FIWP86oHqqh_71BQ^O3Btm9e(JYbLbqwXTr*k-!qc^zO;FQH=`bcDcN@9D{@R zw2vGHAHT|g(tyQMX4pngBAA0WXQ_Mu0@q@*Zxrg0rPt=KtTI2p1`?NO!Z9*`wlxQ` zrJ$uDecO$vHINnWuOQSOXnA+Whv-BA9@C;F6u4+1vfg|M;5j_;sQ< z7Wvr#xa;UG&pdEyY3#hR0k^&3=)D}yGq%3KzqZw63i1|Rr)+y)9J>AXX&&T`QT5{c z9JQy#mm6aaB@es9<8Aa3pI?2>YZV0sC71Q*S8oDaZP0(M+3R3)KyXL`UyJE=nywD0 zT-nui0fCy8Qk!!}$FQnIDme!jh3vbV1wybQv2sV#$1KH`kDR(?hd7>d0VVED_v`_A zf+4T%nsFtN!EF~SUfXr}4}$oA1tMJ~(2bDw5oLP7NFtZDC3`ed^>iJPJ$$&>`=zX3)=6(k}+!$9s#br@D|yU0)ASJY%ikcUCosigE36Gv$oC zWdYAeW(7ILTaLiun)wm(ihuq@BALh}+6dg7nwKiW2SVPc77#cmukk_}nIz|aorO0F z+@D|dS-7`edG)Tfu+U+unN#{>c4l%sd;n0C#caZp!3VL_87e6fL&DU~4>FmapXn4^ z|FQuVR6z95ToR`v0z$fyhUcwYFg)UL@h$D@BP32u5q1&p3U729n7EtDX~;6%vh?vR zk0KGB(}Q6sb^~W10;C94{9v+*4OMTU3`N8|k3OBo7}x-FIjqmllEG2@WF0KoVSH-e z0WLW5MA}6hMtjkZ5Ad0Gq_mDe_-}3;CUFSL1rT8HKn8P|5L44bCRioR8{A~^A>MBJ zkrc76cj@^G_5Wm5-3hA|pUHYvrNq$XC~8EQS6qH{hB)9H45JYydALKSLkp#O=6Hm# z2QWX79cfOE9Brr^MV>l$`GKu#)r$D4yNWK-%e`O4M7|P$0_`{>7UY+30q`uh&*ibf zZWP)K6>}0_;Zu?6x?RhzVB!i!1{(=aNzWXH`)s5yfR%J{IRNRPGSG{_y0D*BeE1GF zG9{IGqZ9~UIX$ETg&2Dya}qIxo-$HRAX<;DV@Jgh$xT!71mT!3Pv1=0RorXh@reKq zH*Tf==x|xX=8{>rJV85I<~6qRBIW-rY6sDaxO8eef%f#!6{g-hCgE9}yJT0?@9Uf! z7VT}2z%9Q;?snLlQJps$4g|Q5R}}5U{)T}v zP}A=g>Tak zH&qOU^*#r+N|HB9qT=Y~q7GhIn*6lYucdnG5)G4wecr`V_9@ zw}}godsfk#SMuFQDjjsB?gfilwVY(CWLjx~qRP=%y2e3E`5KeeA0<~T3F>4X+#_h4 z&TzBIohuk*=xzN~;?q!0UO5@WQH<9}!n39&kv7<=;82%cJ-ghF*8U%s7vyA8C{iG+ zytz^WN^r>hud?5MkKyRo$Zv7czuu6h)+=z_h79iE<8ziHt8V`M8L644H&!eump%S3 z*iJ5T@NH_mn1B4Ie)QKt!{wGyM@q$iIDrJjr4Iqys?bz={a=>-KmFj52y`O!uI=y} z|9UTv^7YccdI9|Fm%sebr3S<)T;#pK($Rm=2b3<` zea%oz6yn7I*eOq>|8~cvSW#EIAg##1aQ;=Pyni8}fBkTa0P-;OzWdld@Cp3Dj6*Ob zHCK(wCNTXyP^|Higdy1llyt5%P?b7@C zyF^W&!hn4g5M`uy0g7K_(yuX}l(Qdb5Rsw4Q^$X{PzY1n>ml>3X(q-X*{m}$&M(n* z%-s@vqwR|l;AS`WmI}-_!F<5`b)E`tXySW>KQHsx#rX(4iWP~UfA`1B`K@q2*!Sz+ z-(Al+rMSj*^R$=40=7Z4-KBdJ{^*#tM3LjPc!GcQWZU0lZ(Ds9ck2~yg zuKb%1wq<#;_W62dJ9iCd=w)6eI)_FW+Uj!W&q^deJ7(zPT!t+(A%ev2sWhDU-+U5j ztc176-rhj{h2v@0@V$n2K^TH;nt!%JxHB6&=O{4F)`Iq9i69?|uk+YmNy^Zt6?L&$ z{FY^M*yC z2Q-NQ3Cdfwol0h__D)CyudA&B+> zEgr^GB?JypN4t`sU?ByC>^kanMXI~TzZu`36weSC`NjJ*l#>N8sP3;G9n_ax zSq4$w0*G_-L=tyCG?fkLC(wg%tP~(CjtM({pP{f#TrX>zIig=8!EH9qyaxi`mlHEn zd^{jXthh)F;AKPFL6B#l3Z4&1S^eXbLcp_lmK#Fu1kOm3>EHU#Jz|Qy* zXxo5NZgD_4EdW^6s<6Hi_TdZ`Pqa;06w}9A$wW`Pzdt95l3=6^Zy%WQUuTJV^k!1p zSL`7KX(DqL`G)1cOA#=ZB64-h*lAQuC!{yX2iCy*n-)N^Ke2Mwc43<1IqZq)aNm7n ziU(>VltXtW@nrU`ra@NLiLWNH9*24d>Wj$}OqU#152qv#nQu9-=GU&ZEsrHRG*g9! zY5iJ*0RLSPXi2ZA}UUXwBP`=%cI*cPZ_lcS*a%_KQW7J`Pf4zO~bVhOD( zw8p!rqkYr{2yJIHW=tibTe)?uIcJ(R|FWPz_B8bq6g9jNdVY;5UE1q5gTXQb*gVUE zx~=;VMi%{f@;6HTyAY_o<+neZVBguPcCJ`x;@Qa_$mkK$j`$uOD4o)lF_fVvCiSCg zDh9ntI9r(!-vWvuK5fUj8JzSa)8qh>x$RL`0}3w~$@$5XIFPChy(b}>+;Nlo4h}TC zXTS}^hG(Tq`88$>ya}QmcL{{{m(3*=pq$?+hVVrq03e3=wqzfCh5&DU@6E4H06NUL z>$zJL?#*e99+5l*wkX=4a#HIk8FON=UQGGBQw&FL?!*!2Z}C~l>`o9#Y74eo?MiX{eB0*z@Wmw> zj1KpAExS^0JKK8`s5ZvzxJ@2LZU; zyQg1D*rshk)c^bf)7hq2UgNbD8ct>@ru(#>0J0Pqq{Jg|eUc26DO)3V`A0AaTiNNyd2kr2hxG{AItj27RpMs!RC8|)hible~F?UOz6+4o?;H{%t(2W!G1 z^K+doa5!u4X=-7{nw(p_1Nl?C5B0|PG+kC#z!NzER~54guVOy79#D>vc`-ohx1A5N zkvlNOJkI29Zp1w(M@=H+o~A4^wmcK+mb?x*OC0RJ*xT%Lg%;uFmv(oJsEh*_9x|Vu z18$^GeyWBLz{9{3u zpf*ERpNVxU);R1l(kZ+l5S0I)os1#kh0E@rVM1gCgpj%mFBg7NBhYT7#1%m>Qqn3r z4>O@j@-QEAhv$^P%=FU#n+>Hwz3wgTEu0!aXB_CYA1pX%=OHZXOjjMu0u3ukyKIqCUtt+<=-)VS}pv zPC%6a^Xsd8k7OpKil!N6nYFK|J)}?|Aem-SyVuXreJ#cAYFHk*Aurf=54gr?z2S%F zj^1Jc7Vl-`UdL9av#{{FG}fl8LMC)0)ZQ!o^QZM}^|dK0!qn+)?&s2zNT|n!9>prW z^w+uwzfP{#MB0rvUn6{WU~y6j>_AGvzN%m6;p{H%+e}KH=PsaX+xDhEEJKX-_?0dE z`U4m>5e%>th-YsisZ%P;DPINN_dei*^UHJW;9f%v>P7&drDKyYtU$lSV=isQ1pPQ48;%|l&# z4>AE4&fVDKy*dn+eyI0j7ry~YchrNaLrmR^%@?r9?|{I=T)r^|!#gUks0UkjZ6>3^ z2JtM|S1%yq>%tf$C1iEmgrCm7i@h-Y3!6X}F1p3*zO;)SVhn`T@9Ha)}#(j=k~tj_H8T1F45{=vJp9;IRd) z)N`SP&Hd){+wY@x9*hrvIoH$>!lDq}m-zhMuzP~K7VT4$bRiJsB|O!xQaXG+Gf;o% z?CXlRSrxd| z(w55`$Kxcla_YClOK3Y<_~IAP5=I3jwyr2J3)B}GP{gU>&yn`wl8Tt>_V5Ln~iLVroA1YH)f0tys%Ac9%WIj7qAol zBxX9Ij_p>MAZJ)Zgn62Fq2X-@t&#zb)luQOMD_JC*+PY<_X*zq9YedM4VX2Ly@kvY zyuNn*?r7EWmXg5o#POn^9X?~BEfkV{^zBZQor!!K0Z+^3109kOF6KBR_K3S2R5QRS zDA?Cx<=Rei?QLNam`#h522iM+bw)z{{{rTFIy)nxb<32hX1llqTWo-~rh{TPq zn)Oyba{SCPWA^Q}`Fo3SPf9xZEz)DPHQ)sXL5&ctAyD8Aoe<$`NE1(1vJqu5KbB+p zm7f7I`fn2;5NYeR5Ca*_49{{f9HSv+|`D79AKeg?4k+~MMTph<~ry7WgzPNrZv6U-p6 z+3mJ#Cthb+ERM-OkbAlc-$?(J!bK}H9{II{9$@Nq3=d14BW=9}y8G8Fwz2NzUGuIW zR>O?e9sV3=cjXc6x#Z*w-KV@nb$#;F9;Ce)0FiYpp~y1Gm~?GI)3TrQFq0TEWoX4nohJ|{gOk2ou@@F{v7;l@$;B5SW`AiWP% z%h=YNLJNSDY@xEdb-YSRBDdiT z&aE}Z$idE4IDtXq0moPku}mPgsV;a1VnIDAKkzAy*2pt>^H(2FIKXwbz53+Sc|jBN zF!P&r9-CG-g4!^rMD>cgL9(4EWcrGp@A1bMjz?JIXg9NqsFJkCGUYhFjN0*IwRRrW z0D09!o|FKQ4+0_xbx5TNEi|os_feNoROX4QwpwqUGm|~6f(!$IaP#KbX90>=zTOvO-1%ZI@fPSQ1`J(CYR+<3 zGCuVI4Z+j^(=t-C-YLq{z7NCWi-<_q3=CmD_Cnya6k-T~yft}wI^wjGb!53j!XUM= z&5G~^&=%1N5bCBncZ{vRf;(C6HP4or2zvMAK0bB{*-jT)%+wfyu8s?!v!-se?d0#T z=&iaG-f4#9o`wv35YM7a_sz)dK9_}tg>)G9d zgia8Nqx8rbp+b?ebMbfg^Z&-G#|#*^*pHv8qKPS?1RcE8EK9W;0P zEu{UyfLjYfSGzVJ9n}#@plWjh3xF^V6Go^$ku42g_ub4fP=XT5_qDE|qOo;l^xpNP z$g~tW`*}axLCEOo_+{gg=zyVv`_m5{aGL3EB3&MWR=cKmD<~8E;A1iFvmgc!?fSS~H zM2>cqqiOUV2f&sLIg#tx6C4StE1JR#wpw!R$B{!Zhs^R}`||#IwG>l<3qY))^CnJ4 zGmu!w5_J)erQ26=2DZgpCSOLx)|48szwfY0!K0rjE*21SrO8uk2w9n=LUqv@8$={@ z)9g!YP1#SyopN_;%bqVHY+88lf1{* zB6SJE@jbS`1n99nIQKfMU$*R^se01G^qK7b{cFXJe{(?ng)JjwN z@x$;F|IG5nKb`?*%dk3cZ)w$NxcRAqu}{}{w;yF8wsg} zzmz(Oxsid`P8EQJ&`(aiI=(G<_}C#4lKiZU?mqJk-IlClYYiAE*gX18^YF#_MSN@_ zSRyVu7b>WZ7|5+VeS|N~1+L33_CR73{|h3lp;R{!pE~pYY=80B8R{A(fG#XVN0)l- zt~o{riM?i$@OL%&jOvY;>k>SMZ#!}Mg&kZSF5?V|mfC%+#1%C8DauRSK$BkGs|!N) zoq+Fp2OL{zah&b3BMykQASthxVW=K#oCr@7YSB&-O2_}D6Or}b&q=%C+3_?HzWVtL+;@gUl7eCvX%69A-N$08XdC6M=l^q9U zOK-gqVW_W7sQ%v{jBw{~pSz-UJkv(sPlfp8UWauSo17d+eS9V2X+P4k_=jkN+?+Cc zb^mFWVKM{NlvUIc(Yed7e?b2bp90{X{Rh8DdAgr zv>(MTpM2YPiwo~yTEBp;JA|=QsAbyQ!g{BW^os2q78Jk zMmh(KbsmLZSg)={^0hJ*Fo?N50o~cWsKq^;sDb8y`cEy`B3kQB+*)YSaa{^r-w>$J zEiuDomLLGN1hO{hVq1a;TBkgyvXa=U)u1SeNM+jDy-V5we2sD1w6ne4t+D+6YxW5| z9Jtmcu45J;b?(g0R{7i*j^1+y`|K)-P1ef?_P%AtY23cwFM7{;Kh)C{J=`2HKp`#! zE=W)AczNyeg|X#pEv1hgTD4>`|BICT@q;aSt0c+5VrHeJLAWWBzUAwgcLCn+HCFAl z+{0z>`b6``4xHRVDf`f*~D-Ae#*-n<=N%*&e*n-+(EXJeMNLEd+fSVVY)?mWF|tfMf;B@dGf=3fL+-mYi{J9#RrZcK?g)OY9ZaaHqqD>m;$QxKJXQ zT@N1{BwY(xc>8t>UqSe0t#_`VMo#n(BPgL`MS6m$|iZu zUaJbeENE|h-0TqOG66TqqC4!u;pf)XGcxgFR^P1%WwqoEM~3*UZ)(q?i$aQKrrNh> z&^n(g4qLa$myGIk(QN|d$1Wq}*{r-TyCEf&_5B{EHCE`d#Wek2&OitG{1zxvVF7w+$s~x9hDyu& zD(vTw)6rqBfL?~I&_bx-80$Cy+AWFtxrx(y2UI;2xgTm#R15GtukcC2gPRT?d z#CRzsi&ZIcVqa%!Hb^@dIEX82Co)|HRU-^&_w42R$^y-VT4Yr_@lGXZJzPASE+4K8 z(KSy=zUC7VkAO0fA&oFV@L~W|K{V-_f3Ez7Q*bb&W zel6o*;A1nxXa9Df#l=B9a{P4Fk3_v~(G?tX6;&nTd!3()1 zomQ{(Me~Da!(4&cUid+20WBTP`Pu2WDxLV8-1YlwKSX&)ASsX80SzlNHO#rWkpkqa~&~!`pi=ZBpwAoM?5_MEvXKqsRY_&_JabCe5WJid!Q85h5#0D`6x+C4a%K@j#T9009HmZ zJrKctXy^1UANk`{OX1Fx&XkzsMf5G+T+G4bFHCvPgD@gkGKZ(-s;(0#&B0$)_o}N5iHuaB6QqvN+Dk_O`ooz5w>O*|c6z zz8*p()^XY>%Vr=R^MoTgXXi<_w!sEhIa@#FfHj?-jd2nntD%Z~7s{t5apLN2W2mXXi>CG4ieOWu{!ph2 zii{P>5VVBJfc4_04?1IcnUxZSit4IYx_pej>{hOuzDj;D=S*l6ltnD@koxTOYWF0r z+#zQxn=P4H(jK>wOZkU|Of5OXKX)j74@6j0h4X#7SorqzJ%4^ zhRhQ3hM1LByBQXOpLPnHcV~B{kMap}Jrm?OePg?u+e`9%hIbC1`524uYzsg$E9Z8# z>Po)eLcU!XhzxWX3?64#I~@9ad8vu^ZGDZ#=+X*_b24h(G*J@ZiGdvBR7sa@A>~BI zVQb>2M0D^tr6`-fB?}|o>AO<+%yCkp<2Yx_wt@DPY}cBB#hx$|muMyYi?5#%T>ayp zKtIY!`2C(k^fEgv*9Hl4reNS>1%6icz<^X_2e7PtYo)ztTLY{B8IW~& z`P4Z044KA|0}{Y{?@O(0eF0x0(48!5_2z-P*8H8p76}1XsxR}DGXg9yv~_OPY`o>l z`@NG_En`6${c@2JVEPpG*t+Ql^gV5{psrP{?B;p{Bwy?)4;5Ymg}WT{C1ND6K$UWz z#8C#1x8(!hkQbDXp4|SRa(P{F^K)pqKlADroQSQU!(?Nhi*uOztjDaA4Jgy*h}JQS zn*{4~?*I$&V%5lQIT~_Me&Hj+uqau|vMSB^Oevn9Efif{PPK@8iF2Qg20MARE_#)5 zc1Z-cRZ$NYJKUMN*VsTCiw2sbsSWRsw`Oe``6%H|svi=c6XT~F@Ji-_vq89S7d3-v zA88iKFNUg!vQg^EH)QUA$q5l24#eI+xPeqy&$FKA;FXIl5Eyftip*bRm_0R198!(N z$wu+U@bVlkYSmLaC9HlpFE~=T5KF(&(C`W>0`f*h7Od~SmcBsc1QkcpZ^V&ECmAE! z3n%Z08XL2&?`KMEW^eRw*UpJIt<>^INWiW+;tOnzmafG{p@F%SW9wP#%9X3eEI> zI_59g*NHGtSV-7edgJgU?S(Q(LnXABl^z7-an=11G$;)^ATXMI*~`50R`P;nBLDtF z;qT10yR8hPY^$JbyRG7lG<~L6SQ?1Pi!evuRbo_0xF@uCK9KmlPTZPVu6(ub$3R;M zmBF$nT@ZRkT3EPP-=+-H=$`j%hjx;!)AwE=sYe?#W$yQIOhr{(|hdi%$t5+y~XV9eLcmfJq z2K%;QE7Q$2youFNU6R_>sC}Q2PeqENs~}tpMT^m(1i8(wcdVFxR-@Oj3{<`o7ZCYC zfC&Z|&y$27Gi)nH%e5c>M&5R>$9yj!|_xsU&nU0xLP>IugSv0a7M zOW#hR7@jnMLKA859_6Ik6P0-!+fY$NYmj?rv8F83=iV#HZNhxz$`ZTN(^9r3(Mc29 z;;a9Mz4wl%`tSe83uR;-GRm=qY!OFf$h{)a}4ze<{ zIVkHK>&W;%UtRC_bzPsX&-eQM{{G#5|GfuZ=kZ{KGuJ0kE+7e;;j31-&((wouyb5r?ggR$}(m#uY<;Y*Fza+YqX{sM?l{*{;WYb zoyK6{ZlM>!?K^(KonX!N5h8EIj&CLi8UuVO!4v)!8UuWH0|EfQJ9xM3>S|%K>^c{)s`C*rXjo>*l~@0pC`I* zZ*5QMk%qm>Y-y@h57eH={+z#FPJQvF!7l=?<6W7l0X{7t_~=|0TI5`0+3$i_JqDYa zJ2!6qb+TCmD-w32T;Kj!^Kz{faUeYKNDtrldr)Wm@_(FcJRCuN8m8}P^*7o#X!VMN zlZU=WiPm}Vb4v%(wtopzj?pPBIBjidSKZdRuCE=b{B$TBF-O+kExQhmhv39m$ksrE z)Ut*?oQnEb{4zWeiEPlX{nB~!Gu_n_oWv7Q`!+vfowx~GLya0c z!|i%{o4hOaAz0=QRkk2XAuh{lqq5Um+Tpym3R;s6cJH&E=f3Lwu3;3@Vel_x0mmb< zYbOG@(v6IQh|_iY2cHBevcF|D3u#VPCt1iPFIL)6er>+xpu14&b3U96<3h>ljR2ak z{Je3z9fAVIG&3o#n}Ki6+XRpFS?Vu{Je6lxDQsi6W)^)RlS-&|tN*=dGw~*g|4A2e z7=wOmiY$*yZVBDF5OTLO+V_^+3SPWhZ(`z`1Cu(#pWwv0=ujHCL|X9KT1D#cTwOtV zZ_IvtAoHs7gFNI3w4~VLJBUKNsXp6;Fr_q)W>{3|>^%s6E}HVBOw`{7AiVa`$*QVF z>0d&%Spt7W7k{!1&-ky+tF_71Q26fvSLC+A(FbB{(hjLr8hf5(_7L+-tBRPLr zO42PbGJhri@d>GacxAXG^2(c@!Su?ADtbQ`M( zp3HPl!GK&J=^9u$M*$g3w-l|UgL00k(_$-rbF0Zzm1UNq^V+!hk*&!h^}ZJdPgbyZ z)Y+~kyRayWXkoy7@{8*axAB56_l28wVrRrU>1QccZb(wr&5im5%MdG(WeV0w(1vl! z+gV1Ng=(3h6wH1OMKC1$`pUGo{K8v+;~*FBcO;K9*Rl+lm3Z%WL`E%qxV zr?sDx8XGpnO$&Tco0+rfH@-Kz!6G82&d?_N@06y0INPma%=XvUC@VsdAX}>Q{ngu| z>fvRN&fB}1`8brxp9Lb%*T@D<&SDNDsj%kNEcQd2EG>J7$ED}gE}E^nv`kCd>X`;* zNnHDiC-s6C&z)|eH9Oc$WryF)p|S4^n)}F_1y2alc}jS3WN$b@J?)N%dYF4klO9`IYIl*~T7mmbcQ<|2ZVAtpxzE>No7MD8eJ6iMR6bi24u zH_UW1k|Jtc;4m{zFIP36Sm)-^=5O?sZZv%-QLKQYagjacL4i+eNsx;uWuFpa(pl4^ z^R(L4*heWJYDld$)<$A>owH5)!^JZ7=G)laI?XB8ULJQe-*`CrK8U@+D2pP*L&hEJe9`<7TRwL_>!9r2TS`+m#AeRCTRhPq+)y zECsxW>`~Ja@fo3FMT%jq4xh2JIlev2N(?=E(OZ!I`1zZQxHnq%EJ%5DR<45JOZ>(m zvV)A<-jD5DY8`RT@vr)0jh?`doNpq_ zqQh-`NzS5Pe|&o#El6v1`&)|mb~w|4v-zw(Qd4KroIA~INa`>W73H8#8&USr`-Qu` zMCiy96jjh^IX9QPr8P^C5Xp+d>b`Vcxs z%nL0xZ-geHEhtq1;3l$6j6$TVHsAH58#)4HBcu z`hJWJJhFbO7_u%Lu%uSTu7xjlHSV6I?`{ z=f(OTw8>H2csJ&BLM`!}uQ$-v#u_er#e;FYyh^=k4GjJE3l3b1)KJ?ZI9R!x?Eh696rQ>Bu>L* zhwO%i)AyR+Yg?izu6RV2e3WF;L)IaFC}%$w%YKeiWvfMSc{ZGjoDu3s?Lr+5a+AOi zIM-(Fpk~JSGqKGA%@LYsX(;)0P`3y;iGrU!tqd;gIS%v9mvuLGy5u*4Xe2-KMyjNq zqDiT#EWOY_d|1L;AM56f4H{}Kxs&coIMnZsZhlS1t)CsiZ5}Zl*DRUI_Vk5Rtb?ZW zH&D@dhO{tbH#!@CWL12iu;-OGc@Txah`fs^U(v<8iISX*rsv8G<=lx_Wz3bGtM8;e z7pfR$?RqAI*eEZQp3EePDM>HM_geNdthPs*TBa$3-zeHXh|`=R$9d8!K5f74AR$UL zS33AKC7;`OUFGOrsK%x;JKc0@-!Rc7H6WC@g4IPOjg+VWZPX|m!Po~ZaC&pTyCKyO z#^Sou!`Q2bvm;-eVz%^iIXbiyu(S<#8kKOgy-6qR)#H&{j;lxteExNp?5e7JGx3i z!zi`?NM3s0cBNvBBSKi>k^< z*#+d~u7S1RYpwpJTYw1$yqEMTaol>QYkK7R8SoxNI@kIAOg8AvqdTUu{wl%?Xwk=6 zi|tk(aqc>{2H*32!tCURV?VtvOs&!6{@uC%TZe8D)qsvORZ5^Znu{WiM$>?lOtT*@ zp^(!QYlYETO2=`raU!fICH-KYPp9HtwW{}_%Vl#aI=8r?9Ol55^}&o}Hh7Z)!ewNi z#Nvrnsm=?;gHeOW>QsHyo8e^eXRG>an1<^?#6_LX=V!hama35IZiK;l>S`>J6D%w7 zxS5Iej95G~srv9(Wp zrna4TW9p}YahTkL`bFl+;V=K#`=UxZ(8aJF7Zr~oW8w~si390w=fW8hb(DuiMDv| z{Bwbff$ZTmNeEuz3EQk(Ic)r#5>^M_^%kj5m%Za6siPv(F{L6e*SoS+EElK3c%MgP zm@Pjue2{kyY_8;7UN$3tZo=_XiHeIpp=@a;SoS0J(4b2-k>|fp_!qH zCaGeO@1rK;Lc@dU&tjbrSbi_$ycu1rBeItOJ`kFWRCNCZP(75J`t9@UF7%k-rF21n0bxl2Bk-l z#8}M(m+KGMTv*M{&PI+9Sp)Bg9|lH2Z%EqggJ9GFlOe@uKN!a#`L|3tIE=Q$fodwl zta$EzW{ntQhg{L)piX3bK|13*{=5Kd8;#~yZa?SRdTaOtG`X+?`rbz#RQN?CDVD- zz08NBF2FyC-#K#@ZuypP{7efYae=wYiO0{Y@AHHSRkzt9UXQtChdqBg#K`n8?Kr+} z^W)Els>d+-m7DReR3tkhjeH~TqC40MmN57a{%^j-#J9u@O+c8;SmsGJSCQg|4ET5m z$GeDC+SxeC8Rx>hN7)g+l_5{<2#3xsZmjLDBKKwtQcFG{=bxW37+c1!B7Xju9ADdB z;)@P(Jskf+To+F|-ZLK@qubm5f+f4ztgT$|rLm9gE4}F$`YX{TL37DVQXfe4H#OlX zk#eiXb4>B{Tt26?9&pi^B1bqro(QJU)w3uw9E_@QjS5g?!Sop2#v##-<>xUv05QpueeYZ9#fe4$5Q?S8 zwV&&&`Gtc!8p1`v@4QT zKq%!Z%7(p8gVsP*@)C&w8SgOAVe)i*nfmcpd1G1z4l9eDJo(kdVSxwvzZP(wuj&qJ z(*Nop{_UMhJZT6X8V8<=&IV7qZUi8yXId8Hc90d*;kAPVV()6HACD0sZ>A6>VZ^_{T`@XYXwhe|rJgp1Q21 zk7NuTuzpR|a<$~ud20uxg4wp$=rrwNsh_C4+AAySmIE4vpDgV0Ok8nQ7BcpzZ0>rw z-p^_5UAtZBuitjB!)kddP=L@E>{l! z49M;tnD3n*J{L~FdY2Dy_xO&bsLR>QH0_9%aT`I#iSG=(@73lT@#54-kW%ulCcBSx$GCqObeMZjz}I0$yjKvuMEA?FVtlw zJO|Z`-<%J;Yqv8UcHRF7pMI;pmjh?%`$`PSM3%hA>H+oC=#|+zHE84jt%swVZw?N} zqBUe~$FD!H&l=bwl>RTLNift>z9~L1^8*}M4FyCP*{&9|T}mcG%;m-OJhzcs0b|^a zZ>-pJw2ssKl-8&RR|@AOyP9>RHDvqO7sjc|?(SCYrvRoEmCGr?viqMV`)OiR~#tBh?^kba^F&4V~@ z*(n-%T&|DEnhPe2e3~+EoQ*3D1!M+uWy>(@`w~$MUv+FVkK;*~#~!GpVO7|+9+cnA zoqd+$;L)?P1+fjfIqg|DewOy~YEx<1bhdj+Lb{0OAt^hL+MV@F7f$y`wa}3@7OSzL zcv$fcUbOnAgTGY>FqFA3?by}Os~7tk6vW%6+u>jj9?&mF>G#_wmEB-A=WVV?RmKtY8C?6lL`rsumvaFz-I`C@fZL05K zl7+WZjz!i>yr1m0BOle&dqc-c%Y7xI8`&8-rx%j|okF@h2(xYfBV?mMZ|;4nYqIJ; z$_uf6GIyM;lktvcx}Ed`X%x2CTjb9Ym@bz~Ok=1uJ|KqSHQB{)26i9H49;V1nDe{G zFPD2Y=%YqD`<|(F+ejbBzoN#H&lHF^rB%50&!Izp0J};STNfPc%gJWjTP&e>c^_bo zE;?O!`u%)g4&auXx<0$D-Xe=+dQ&v5-pH$!GBTYca_?YZjXgk}Ng@8GJ!hjeiHZ(m z?;xuiDUJW=(wY*S4)+y;X>MQ3y36W;fFJ`!oWbvJ>t$JYTA7fHwB zq4XaXMHaWwq#ykOj>4-LVZc#N+p@htQRr|~1r5uIcUqtikw7 zZjGPvyK07^^0VhH_5rq;)t&VNI7tn5H$hN>R8saK?T7CsT32tsdw>qTXGunW?clET zu-?_-B0GZq@(_HWdjwrF(1ogdiJ@)d$R39sR#ZnP8&uzq1qIh78%HBd2e6Ip~`ns7JJNH_P`Jb zR#>hV0q>nQ6d_dM#hfHuI4p}hrM_UK9&GV;`E3+Gfrpm-s%(!Z`DQpd+;^sf1qdNm z@e`lH$nW(e`xog5^PriQaC*)LV5l1S&d#o&MDnn|=3cgl$669!tWGdXE5K4G6cH;gaQa8LMbEZ?tIzgxS`Ftyhv{S2Q}qIteE z_U^0nD3PjM9I71Eku@`2Ac~#(DWUaqWasn@63q*_g61%QjThD$+`)hhMwiE~D&fkY z(WHe&IOO!E*bqO}+j|jzNbFCnobs4ipuQKSPw*MSsz-&qN}Py4&DjYJBHdpzOdtt0L5E5XCX6^dgthDu#l!7%hZ4_U+ymxo4AK8v+zx`--p6<<_~j{LRtI*AFUFGkZ+ zi;I^z=-`gibQ^;dXRiwnjQq410uR$a>&ov~#4cMw1By7GPj|7dV|(!Stk^38{w59b zg$rtJ-wcQ|r;4@eMR7H9fyx&wDmz-`P1%cSD4p2R>tz9~_#OLQ)=kaoWp379+kdN% z{_&4N#&pb^L}%bAgfb!G!@15A&XjYQW^>C&GB<~?fS@Dwp=FV+#~OaoviYQ2+d1p( zuZIi15_l}+W>pe=j?^tt>`B#}ebg$IuJ`wn>$NTi?d$^jskg>HZcc#uVzgrD=fdu$ zjP6Od*esviFz(o)DdzD|Bs&iUF=vBpiQ^FmQg#y_PZI!*3H^U|ts}ji0bz_UhnHG@ zCxWJVxwKOtKRXV6#<` z5->H#MA#;0xs4LfGbg8DMgH>hm5>MY3pO2;X7Z&AGOu0s`mHSl$pHUbSGS1!6}ghK zOq|iv{x1{P(7Ex~nys+Bn$NyV9W3PrEY6HNyDz}5Wpg?0IedDPiTb6|RVesFk6HdU34 zi$Vik$$VGGjojkOzE^^mDjYyULQ2_^KxWrzE@l-$+uvz!j4W3F-qm*C3Wnl|qBQ%_ z-eH9E%KDu(#!_uEbF8r#+s#SWDy#HyLhM6FR-oM(8ev|Mn~GM>*-cX3t9$HkzkRPK zYjpRN|4-Q|f>tDBvsVf4KTbYo4U*a8MncK+{dTuhIeJ@^?%!zSzk2emR}BTVJ;lR> zO;XQHwdpqvur7+*y3?~yTb85g$@mP=C&-2;3TLv%0kvVE(-V$?;0}XRntK5$w;;ks zWL<--OWQ^Wv85z){?agz!vzl=55_SZy|({&ox&mR&53sDo@Fq(7t-+pf*#v#_rX*L zgU?~yaqPNUr7MZ$84pa=cuvJ4>}(X6@dLM_p3c^U?9O#W3t!Z?)Vvp@70oc4Us(0X z1^6pdy5^O!)Mlg zl>6#T=W=yHwABR>&Tf}U2}kFn(!(u?^n2pe-t4j0_nJt{$qby+K6+42 zypoA82Yj0rdNq;5=#Q`nD`0V=1rtMeKrEGp4wiZ2}H0G(^I6w?ZD|oO(#Pnc4)$ zfp~(_5fF$lAQzGwb+iv0G7#VGE-Se2PihTFu#1s$dYWNi3s%7LM{CLiY0((b14r_( zt5)&ZI? zZ#Y|QT%UP?aogsTyRief1E;DZbkXcbAPss`f32a8!P7hP69o zcfq=v5RGSuC+*=c-zFoKLCtI|-7{@;E5NkdG9OY|8`?`Z9DeRW<)|tYu5`uI^vpm` z46R=EzrOQ)G#$D`y&zzrv!f=Di&v`Xc#Zpb;erpT|pl`a1GtmzeJ+kOwL2$ZrbuY(e$q zLgKNq>^cyjzn_{VQF*MxKo!C;4rNEgM>%zn&X6}Tl&_f@l{VEpN|Z5LYKF^RCNW3e zCu=SVQ>NyvbYX2g!^M=t?~{Nj)%C{Wn8az<|}EHRnEuC(eSlB61jabC!&n7 zormYAX-D)9h)+foY(VZH4|pR_ZCg^?4s%Uac|E0>6+=7#B4=AW7UW5=xdzfW+(OY7 zCkXc{D2V3R?YbGS;Up%M=YL!OR=!vlODQb@xSfAa`WJR3Y6bh74L5%A-{M2flv!&! zd>YcdPTOb8=9jbKNOB%ikD7{eEl#A=T3jm9Sx4K!=j75v+2;ae9FAlZ;;=AAv0d86 zh`JWfON1Af;;H-2H=z%VYb5$Pvab~@`F}a1bV{Le^B1|c`<_T+UT2F@`|ibA#X3=# zT|x{tsVgZwd0h5#s3h3~^wY-OlU$`@$QS5|;+a<#xwlG7#0ODnRY+eQacqD-AwaI( zKOk^gHl*Vw88Pf`=o_vyY=;EY?a(!}cr4lk+(IAFa<`$fH~If+V;btow`OHOGNDG; z{<9jeB2ler2yQA}XoSde!G}LwT5#bj6Yp=9k?YQvGF+2BPF|$J&c_WzF+?JAivbsp zuN@u>Lo#M{JAZZrgBx2GV%_f9nqG&VlR4`?#Q9nGbqp7b+H8G5BbP(FV#y~Pds8=Y zuDEeIvh;K~jO#@JOE5e$ZMuc~3Mq9_2D6rUN(Lu~QpaOuxoG*9yX~JRzm!Zk;SZ+6 zC0I$P0O?+T-mC*f+9RbKIX5qerMKkBYlYZx^II0L>ETGTErk zi0jId$};Ej5$ErdPjxyk27sCKO~G>R^QuRbmIAVQxL+xy6iKfX$Shd(G!W2_e*i&&=xW6Yf$UPzq@<}&2){!1Bizi=T2vy;51lyD{itWan>ThLVkHL zDbV@FUA;C7znA^ki0H>+r_G3WRfEOllX}rFnh)6g(Usg>NLs=vn5v*MTJ37G2|*;L zW+{-&c2A^WO!s2%OKilqX1T^a&hwg%uo99!wIMIpwDPr-b*naR!*nsxL~P7KC0K0+ zF)fp1ic@?Oa@10YIrkqeBf3GJs<$6IoAOf|?^AGY!1QjvaE#gbHF#!|Y_9V4 zQF9~;UPXpVVsgGT$L}!g9gBsfb4UhtVfw@I0ZOUw17*#VJx8Or-1~NrJZ~n;4l(_n z+^MU#JKMdjG&yyrfBEpR#B=it;<T#=O@OS?~C@N7heMhg4$+c>%R6KhU&Uz5!2f7rAJpMYbBytYN zH?=N|A1PQ!4JFQqBTFS~YosUEe^`!oL#J4SI^Wm#4d&Uy?YQfIS8_oCbj*$=&Cc~j z=|3@se;##K)I<`kjGTwpP>@Ft1G*ro-PV|?Dt(tenBC=6TiW#42xkK$U5T)oY)0)I zja>5uKlE-)Dr3nzXsfZJJh^CyojBJ#S#jf^*GqX^|9nAG?mzBphDWT+xz0Yj*6v_$ z(^fVJxV^pm4ALVWMePDQA|tWk`|Mw#o>oO34qNn!xAB1V&jilVkw}X~9bMb%*(_eaI#Q^*<{5;f+bvwGcJuP z`Dpc-%Ro{vYWJTP`X?bwf+c7#a2uoR*d_QUz?2o&ki@881K7>Npfs$Xg*-4Iy6r3! zue4tY2+Z&7mSq-`vJ{O<`fmu{^y)p6_4-7-pzZ^YA@dKPzMa3Lf>$8BSk6p$gZ;%n zFZfr(rwyDg6t?(_@`nE7tC@^$U^!i0=k35N;A9dRS?W7hX4?w5jCX24lXWq(6|z&q zfX=TKG%Jn{>(aWZE_Yn=C&vFx5_4Wm$b3f(ZO^Sj zrI?cn#9a`A+{CSRvxsvhcGRruaUH|j3zqv|e;S=@L3Vl{jGHb3jfX-%z zl(&`XkjH8A&p-0jj;Q-6Zv2N=a{9kM;$IK*%@oO5{jJx<1dTW0Bx8i;1g>Z{B0!=4 z<74Mu_}X)81`&l&6$#ej&xi6ami`~tk7fnG(WYf+ zc=ykT0ABqcKl|5Hssc|SQ^Q&QuP*cd`g8yM?f?Hq{=e}?N<9e^nujAG5Af~*h!?r( zp>LU}6M5fym8}`lILt!Q4uE~@W57>HBtV%tx^lqOv=y=`xtEqPXcwm2@)Ckvb2+}Q z%M?!G2@scU7QoUPmm#RM@3)pHN?m5OBsNtrmNGXRc(<&$96Ub zH~rEKldlR^$(Aq7L2=LW%}cK~y3P$y{(h?}fC{80OCaL!Q}}=X9#}k6-0cibW*!Cs z2$4V|a%Jd*8M5M9C;%#HT7grG!SC$~QdwxG$)UpTBm>h$7f8NwNsci8ycOt6Bp#rQ zLDbPK0KPScr*_IK7@%CM9F4hC1@wb(TN>rN)Q z9pu-`*(93X4(;2MGmf}xqd^pzLjSsC0v_b_>1~4Hl|V7`a*P$>pBun`?j)uoWSC3# zPUoM98i2aWq*tmJX$p_mTc*N#=T``@kJCh7{j0Nm#ppHJ)Y|9Q!OZM4zeM5@Ki*XT?1 z_JJBuDirSXYY93T;h+zw?H-(fK6f-N(P7G*>X@JWwWqspnZdo*o%N=)+6RJz;^}{~ z`u_Dd|NR6p6+6kTPq{e5_y2lJRA2|1Huhk$0v8nIfqcH&PN03NB4jzwf-V-|4o}sUH7xzY?H1lp*v~$3s}%4u03}I zAa0SSp4TSG==0qKiZBMz+O0b)%EyHC{3p0EnUEOpF(1NGf{Oy`bX(U-<;Z&e_&IJTmQB^%Mg6fOhXiF!h5AP-xZW zJL%f@S+jk*etNYF!cNyMY-42>mzD@t5f%l{tN_kY!qFku;?uC3+Jmb&DIZ`4`hC-DOnp7XV|%CS|8m^@UJX}?ly~n$U$qK(R0DKJ zZ+nloO^$Vbf^8~fjTM9aXkte{Coz6=Fjg6ub@jkfbi|ypfThPoc9BA=bQJRu3h(cDgg?! zin9p^z|~g-h|r!*KA97uoCE?d-4X!24qYkl^xpH>Ds|xfVr=+9qa1c@?{^2yxf*f z!F(UNeeUJd=#LU5L&)#%)FDm$nbW&qv#l8cW60-xQe@5{EqnS^Ly-b>+UjF zl+c|5z&~rfA^71Q$>hc(k(ifmG zsxvR`mSWlRn|te!w!x~7aspJZwu7E5G&P_y_01}?@85ou<@u3iMSpdBLR-&j?C6zU z;dQQB^^n^!>yB+Fr-D4LDfjp0$}?MT{|zeruiNBO!egQ+tq6}~Hnl#0t;%&QU(-b_ zef9zxzuz8gch>k)oUhSYC77s`1w%$-GIU>Q~Y zEVe3d=|sT^J{sKty>r98U_avF9|038gDW%PuO-ZxJK3r0YN!jAt^%>aon#P>Nw`P4 zuP7qMan=7ZwjR(^TLXx>nBcEJu>QYJ6}5R)ra#@$o{soDH|t9p^nd*J;_FIDrdG^Jcicni%5BhqPi5@RZ7tEUdv z-VhYh_=JVL(<<3FHFLsf(K5o)xNs%EihJawc)+D!)k5WffHM;9L-TYcQy4q zEMjj>Uno zt_aOeay1`zp_jwG|E;_@NycBy92U?}PKKCqF_^J2@Eo$u}1Dd8v*~zrY92lG7q!4F*i>)bW_Nx!dt$`G^d7_pF7%bULQkTNfW*id~ z$UEL$_rV=vJ}4V0wNPYQ(wYUY`tQY>_GAZOWRO0&5{s}FDZgRUEz(7zI$~NeT9>en zvs*No^j}X~YM;QLi@zXCcS_Np0FBY1-xu zt(A^lW`{|~`PX2uC$KGCPCQ%fF`*brRVR@Yn6$gsGgF;N_;llTf5FePW5{+}%u#%Q z2yE~vE0i?*r`M`~q>%IHi`kOb*K;cRlkf3Aw!gFbl*;T4@eMT86@EGrTE<8^h*R+FE(IxDn@1+; zbQu}Wus#U_It8p2*&*=B$CjK7d-HoI}?{1dVey`BQ2>s}2o^k@dgK%Pm1F-B9KYY6Lwk;c2eK%B&Yk{2 z8Yg*E!fB3o_Or8%L>!lt#n13oPfg5aba|5WN;E3rK&*VpOyiAMs2*n7p2=fL@g8f- zt>{yQ3x?R1T?X@DC`oP8d-GdG-6vB)>b9?d4*FW3!^lR@REZs_9^9vj^t?t1J8cn= zR81?`qATrEzt)kIO$jV$df(Vk%y+*KfTa1)PAmgFZ(ZLsXag)XOf`$+XR|D3F=hRT z$4}QUjhzzlu!xp#yH)YKvdrQdB@b5ImzDxNtsG%LW@584n(_Uw^3l?5+;g%_%hB`l z%-b9P^#K0OQ&TD0PCF4>Ze#>=Y9M?BY_-;Q_m7`W`13nzN^P|!#SxW2e+d?Uy3$9sPx{c}!$KvDBr?yZnoQGm5bId(+ z01$9{`k5<`UF&A%Q&Tc|+9Y?o@0ZqwM-RAr3WU&ODJh87eMfu9df6$i?b*zK@G}95FI} zd9e^J*5t*Fw@RETD0+1(zrXDhq|J6^>*RL-s&?g~D3{VAMYJD|ATi0ZYo32LlLR)J z(No2mfA~tab0J%lj*2wvc+j7(QI_jHhijJu&u(K)%Kt)C{kLwolSI{z>tn@q#$Eexv*La|v%dH%5#wN8?dM6u7S#A18y#{+3Y4LVX2DG|o7%rIA!^CCUx z2{plQm~%5nvO;Oiag8CZQNP=mi9B0` zrjX`|OMTnvc#0KDHCc0}atX8pJC|@%F1mqk7{~2#*r`|d%w%QXFDpiBW&i#n$)fTi z*lBobYnRQqBHe;Cj`((~M@)DC$ z_X%$Ep3mn?PVZJSaVeIozmIx+ZEV6-oMmF>jv{; zbGFcMvN7}xy2B@PpiM;iU;T67@jtNG1oCL_pi_d6U6L-B8W++z?xbZ*pNx5!Q@^D|nM5s}?Z$QevN*CYweH*vYeEEC8^6HG&bo=VoksPom3dWmj|OLq z!Y42pa7%kE8lB;2RDqXU;K(~UKF1+;jpweTQ_BhF%wixVtxB~Q9N<7GKHLG@BO{W^ zbYio4#2>JmS$Y%hOF6oGUrQh%VPW=o)C!L$wdJ=Sbv?-x{9Nvmii~hNce)>&`H|@v z{GlOr=YkTnAxg*hqy-IR&^?YA; zldFq?QCHknHSPQP;Vx`i=`u8kEw2X40qK zej_sPd5^~{y5&>6I}c8gtv16*YAyUzo<`|VTfAC*9AdDk%H!#rSc`MdbhMpiWmaX+ zs4O?4;!%<3czNLim#3=y0hx;PJvF)*=V-nA`Im+h-wG7z4(ngmA|n860E7zln^p5_ z>NFL!;yvm%Z$axv`Cdccdw*$6#;x?vm9>t>ISY;qzx_}xf41%LJWDrM_wBeU&-RQd zduqo8(+?K+>a<8gGZt0uQIIe)2NxKbHja>Q632V3tQd;u9VLI@hU{SG$MxrTe|bzU zr?B+7xoRU5gxP6Qu<6`4hf3tqLFNfHgho8iY^EK0OvZFzit$B!8`igoc?YA;o22(} zz*awzdRU{{lAL!iJ9fM6A$ac5GQl6qeAI^U3wFgnJPUR#*7#qFj)nj5Fbsi2@IAjK z)PII7;P&tTIbi&^&5h?NJ;Y4ZE!lDV^%$-Sx~7`49|#O9?ogoDrrS%^8La9n*I68p z^$~T=d5fTZ7j^t3_p$18CoK(SjF9yAiQKOVZoWhZ} z3qWxIZ`b}UWIDtM>99DDb9ys=38Dfs*h>gQoBt`;)-|p^^#Ths>-WDOvd;=nCE<^}AKXxi^J3Swg+V#_E-fABn^`P`Bc30&zZ+CM8$`;cK6h9??x=zHtp;$Q zX`QbvN70Btb{@4$OzwGtC%ub5BChc{KO6F?qPs+vJp$~+qU8gsIzqwcc2&*U3j|94 zJFu^0`U0`ZALL0c1Om)svTw-~9?sRQkmL*i{{Fxt91ya7j(?c(gz-@db~d7|wf}k= zZ(w&{upM5Ix)iH`p#_u3bgLlYH}q7U|bG-B%J}jl>xfK%MX#U~C20 z+DOMM8?IFY3@OHgZ12^5S)o@~r=ooAwdqt9Y_05zPM!%syZ765wFkwNT_d%ymo?@grn^var*oLHJ z_X;&;B&2QyrF*Fq_j-v0VbG)t+_zMhj-bxY^nz<@3Ei(FFvO{FSu6hDqJIhAW(K*+ zr)YV#Wb6ZsIR~odqo4uFsr(V^>^@OQjkM(kjGXQ zEI)#IPgx30hhn%2Kpa~Pe&&jcJ!On!ENJA94=+B4qC_e$gfgPf;x-4@UgP-5yUR5= zBbzPau6}bYcgV3wLC!NQHUpAx{?7fB5&P=9*3scW#3TA0!VB+a$5oYWSjf-tu`@+u z0Y%*CA{H9RUxsg{M*jfAh`RV820f!bglIag_Vop+0Z3+VBs+p`G%ZM& zB~QrfE8X`@db=F>dU;Y$<$YpOV-7C^N~p{z zSN(ydnq>J;Z{T}0?7Z)VTcb_b!~jF0dxRxu);9}fIFF-|!B#yx>H}*oF_*vD@YDju z!lQ~41mL$cF}Qq_*RHVAs`HE)#4DE0#ca~8xPd0-Eg{q)1*E?1wtP7IB+RAzABIe6 z>0(}`A7J0Ud^QF!6AO|2*cy~-PGMwyZ%9wWUX5C^BWn}g*xuK}c(iaHk0)cPcEzJg^*FyXt*D?hGD5l$rd#?P@Y=_)rF8&T`bh;||7Lcl!$~;Ic z8#cX;4|n<6{R-IH8`bs*C06z-;7FIvPHZ4Em~N3eg@|%F_;?8V=ahKnneoc0TXq%f zGiTEv1+v~(wUM--odrTWd!XDW@k|(H&K$^DpU^HD7j6gq7=y3v(_7GZNM%oPx)gJ% z>#SS%WxdS?Vj7+tcSJ81Olr)*{+8i9mtlk7!7OF~Xd;mpm%N zE!N%``{hV5+Jrm#&9SudzP7(31nkLL0m7G>Ng}?kCdss~BSM?mBT+?z`$gVYD%REr zJaZSs`6e|JcmLZ8T1sk2V$yg2DDC(40$no((9~gJ-a%K_Aa8)7)w#FrZl~Cg3l@@T)UPXVVxl3arYLg7{}CpPC-YNtr`%kk~|)N6+sL2fF66k ztflfk0~i~;e+rQ>6N&7)5;+JaCXAkUsnYlg|L^-f9O_3Et<&K^7X1e(ox&jL+L zd&1oU9mpIAWtps0*uRW-N`|36Za0FWB$340D4!mI+}DbOTt{D3SR7f&=YE7_6}A|0 zQN441P!e$2TiPDW%yQa`xt(aa#{=@x`k=`yYz1bGFBh}M9jiY~=g1YJteQf}za*zA zOs&AxuHu=;H8}T7k2)%nW>H-8KLHrk3al;>&8HZ(U(jnIILQT)EUqm*8)lFP->CcC zvnl~adf4X6USNE~c<~zf+zC$VYe@piNy;XIy{q8O(IsAp=D#r*38Bp!BC)P)$YImBLV~?6S}~S}ptXKh94>sqrn=_)BpB+yV`yTrFIKXUjSnb& zl*2xQY}Ss%Gl(nO|DUl7J>q)z_`uRTl~so&+IS9lxMKJdKC^e1 z=SQyeuRrW*xi~jXUi$4e@BJ3Sx~z?^5*OuP2L3i}%D~%dDdX6asNnM{`>l#eFUu^! z12_F|RLx1S*i<-ebEvDjn_P?Z^Y*LjEM64EWL*|k_{DK9bk0tT%Rd}b3@`N-{M@4d zG+mpu?uEYbp&NEgZ5B5)*m>F?HM~!km684n-2Za#OY*OCz*hd8XDhY?Yx&qt4y*dl z|NpZju|11^7P~Fgq32rfghrXq|BhCuba7X1%g$jHDmGUVc$T*)rX(78{k8Y5^)*km zj{+ymW^XG8e%%1`s(@yAMDLA$Htca2(iyE*4AeYo3|v<{T^vIoYeL`O1m>#CdyldD6S8dN>CY=nw~Drv*}HJ?R=)qFe-bpcyW+r`%#^AoZ`4A_{@O*EPaiv;6I2Y`3dMFFdQ z9pgmdKI;Vst0Cb2>(f|Me literal 0 HcmV?d00001 diff --git a/images/image_optimize_4.png b/images/image_optimize_4.png new file mode 100644 index 0000000000000000000000000000000000000000..8087da16cc4e978c3814899212258d94bc845452 GIT binary patch literal 483522 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

    RxA%T3!ltS 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

    IDtFljzph20wi}UBWaBB;|$Ss76 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
    ; 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 z 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 `-eHEkBRvq zt!qu|F-YPI{ZpwemF(9KnwORg@Fe&TA22JbV+!XKSH z^)V&%P|fAh20BZBY-%Tu-M$&UacSwNwSoAyu4X)-Vh@mP!^Bf~CJO6><&N<@8pyk` zfM|PLYx0L0#Pv04j;o!9uxIqUzM<6PLkBLKZ3;lZRzlQV?X?C0^m`3tKm|D;t2x}O zl`)KY@s5(u!)x<42&iO6U2kdRl0kpiK7A?gE>0sEHQ1kv#P>+E3@h?v6JaVS`P*UL z^)wmK?ksIobEsq5VsTq!=YKaYKhZN3w`X=f2slT%NiSFGNxWoGANbG@!qh`1po0vr zp5LjwO2i%$gZx_Li+B9DhRVR(@puQxDGg;Ja&qs^}s~( zc<{E6oEvOzi;iX3YttK^qq=2E5~KJ5-Lp8+G!Db#|6#g_TL{qbDopi#qKn7rW;48}TM-6Gfi#FUa z^|W6AkCVc5)~>#m(_QTFh_h`I1?#wSDDf}@fDCd>u!m}D$wm&Tp8_Fz3fL#+=j)M7 zxjS1xt*sYTmk9>qNY~pPP{&Ib6saD_Zb)~#;~{G|b8>PbjRGNFq`0r~l*K-G4}YqF zui{Rcv)5Semr40C_xMcUEhwYSO6AM-;Q|PG8cX4Q4~!;?@@m2O3Ypas=Zo@FYiyrT zfIj=Iayyp$@ve|H95TK?jt4SR`pIi}cb4usC?wbol%>_tFRm#u2}u4$=y z;)GNlr6knY8yr+~Jjbz8@XMZ1y)Ah`_|aTp1X#5%;E@$(fV}N%ep?E90JhL~Uu4Ie z8gQ=Wv%<-D=diaxrZ&=01$3lQs?{DTcE!y56GN}aC-hA&tTVnT;&f2Mt}$Fgn6@-8 z-LcpO*}Y9pmml9sr}xeevC;sTDObJxJcV|ex4AUH2zFZ7Z6v{_z&(>o7cP>+O226t zj=2`JjmUw-r~+Q&`61wqR%k4-lY*Y>yiEWo7&C_@m?WHh6FpHml+2UA@~Dd)!QcD} zw4#c2IByb8JT>cNMiy#b46=OGg?`a)9~uULL#=uCUSLEB+UyMx*r|%+_v^SEXU9up z=#qz;_U=$Pvs|gcpb=r}o3{~O2qA^d5_WS1xpt?7Vi)ruP6Ef9Vh214l-Q$dpOck# zf1|^*R|Fn5!7Yt#%ri2>McDw0Rb`J4Mo+P8?45iTFMpGe%)3LU+J#!a(l_r!b9u~? z;iCU3R8hSSnXOjCE*~*zbzw<(oEcHOjhO~$ij^4`j)QGlkWXP%T|pRCI9*{K>?=++ zO9*^U-bE{YR-y)5mRy#^>I!yB_t#Qw6@?P zOI1p7%N)H>>XLij#^*mpXnJ34xmBNM-PKF@FsRHGFff=5zp5Ry@v(GVvl| zVi7TuLv`f^;r;=oCJ+AV!i$_hw=Jk5c(#Wo4~{a`Le1w|j{&D3zJDe$I8;5yh;A1( zCLcIZYIhyVh>;IF%Cgbhjc=?hDv|G0LA*pyn|Y|7{Z2#uBV2=Jf&hZzyJgqJ@oWHG zc^#S$Vju@DAb!u@0{lg}Vpi==gnWl9EvX@7bh03Y#s;tOr^1`ZVA7vaaZJX;d+wWD zQZb_w(|V_t|Hsx_hea8!?c1b)fFhC(Axd`$L#Kd%NDiISEh0!ah@?mfh?LaOHFS4N z!_Xig-Cf`Eec!$JZ-09q$NVvR0OCB)v(~-t`?}6+ujdMdOnQHF`A^WghA?i$J}29Z z<4`+?y65-p-^9@4OSdE{?gqD`4sd(j{wW%)@%(Oxt@aNVz{P!}Z9WJKVD|a*OC`HI zIy0BQcoD%|_kPtqj+Fg-*v3*@g8MDt0>K1}lr)RydB<~AWEUoiw86^2#cMUv52o@q z4L??AH42eN^2vM+usN{DCtjXXnz~;cX6A|ewK6y9R?WK$4QEJK!81>0svXrDzMJ_> zQE@FR!JtyXulf4)o4iwxr1H2=wx9@YKtd;HPQ?%DKLjFvhs_0_5GMK9TxLVa<3_cg zugqFK8)nWLi}q$dwin#4_Eo(Gu7#1SI}NeeJjtNmY@5m5#JDP6v7ZOHT=}<^h-Te< zsCmC3To2eL6=kD-Z~@qJJDjR`5qh%0^XvHX#G>Jc2KB-#Fe!=rtPj&3$CRajkaEnI zXirW>nq80QD`h*b-0~gZy5ze|TXw$qxGOnsK2@@$emjztUvOFdaW4^A0#E4+!#hzH zY-isJy6#t7ZB6LAUqw+hlv%I*?m42@kQnLnw0Ry2GC5?jlcCf}?q^hKhtvFR1t2^p zMqTimVZG~|Ixu@Sq@)O)CB{jMO?53G&qQTPQn<~mN0&QT`gL?)=`jr=*8o7I^r2yh2C&v2jB zO-&s&=Tfbytzp=DcXS^}jI_@e)X~>n02`^M-O{)H<9gdpEgRAmGCtc1Z@gl|rg5DkjYyFZfJMN)#IEp#!Es7?bBYwuW=LX^(m9?CG8ue0>R-JKj-K7}3?X@)L;V z?Xx+JTj4MCiYwnEtLc?~6y?wi^=%<~#(DFYsYTrJoVTr=_q}#!iDS;3=dO@hCqWKl z=nN)qdimjItSkIK!dKZ=3U<>sSFT^`#$O;$r^^l8#TJXQRv-nol(^L&fvy?}wAZ+5 zquFdQFN);OS`qhS*oN(~Mf`lJiDsNZ%^`>RMrUov3NlgvYW>?B_F%Fik>}1r{wr-F zv&kTRY^}_U;3w9rlFEn`7PV|vJ|vy-4|7=@Ur=~(+gPO`P~KV!p{qVDUHQBbrd<;=y+?n`fhIL zS94ITX zVNN>!Y}Mw3on@`ZSsu)*@6>eWbZ<@Q;rv!p@j=s2yi}CuwIbCNu3nQ%n|jR{hk5Gd zI3#hRc-r!HY zi`xP~0L9Ob>0j^`X$~C&JAhH!f%wcl^Dad3oA9R^T12|%kxc(F{|0pzP@489HWgM2 zx*z9`qO-u@L;#l|7iU;$O&kG`s)pM3#o#`T`~}qS>UEa^eNx*?pM<^`znP1(N zOPpS#C!Lqsi!ot}AZD0%I-r0skK^UaXcawJC^LJmdA9qwmrrZQE^oQi>xyq&I*xh# zxTxf9gVm_a_OfxJe4E}P$^HDv^amv%dJJyRz#Ty;BvEV-BMbDadfh59%gwPS*k`~oIV{zdV=4pal_=mJmbJIX z*B<|!oUQ)fS5<6w~{B=W!i zNS*(DHCku7$+QQpvgw^S|NW_|sWWhJ(0)W)pz67p5bsW$OBKsusLF*UM4_qt#CL{Z z`wBp~)j%)c!a(!~vT84PQVN6R4rGSOBWs#F$<^y!<+8BR=#uPa_|$6N(_MHzvC&vZbvq-)-pOrf&4P^{5;pwZGk@thSmh?G(ZJ4a8kCxO!zH~ zYq1uEI0Wb#%kIDY0DHKOGiDE53wg0zoD&^k3HdACT9Y~a{MUyH($2HQ90s9f<^x6N zg$6gNNFT4u51MeMj?g&eE3_`Hh$oewBS>Ra(IQU(+e&2zId0hz%3HtCm+Xu~7jHez zTx#8J9~WstX(thldY=uH&9Ezgb51uuv9-g4@P%-)W8^xM6%QeLo50xV%#oOC9bdHg z`6wK=<>ozooWcLY@w?Ghm)7>8G7b%%3(=?JMaWggWTM7VbVm3!LE`aL;{@b)imC-+J@%&M+vCWTIyQSy&XwX+I z8rOZjN>!E{BXPoK_nGl0X&Gx8ysl*C64GA1upU!(9-x5QXE=tqUxUg|z0%q(E3_?G z#Zyr+tH`l>Vo`LY+R>{6v&$%7L($Ffi=zvn2@;Cdi@bG0Yw ztTUbw{Q@j1NY*QnP&QCOti^>#pCCj;MC=f3pHZd6iNFM)JbP-ydQ5xt#KXaJt|dy@ z*6nmV<+GtL{OAFkrE|PKNm3eF+)D{sPEpKV9Kh+4{y>9e)th@CxVL$#S^xaEp4uvn*8Jsig~ z`Jv=!*Ku88RbIGhwaKIPDDq%u-mWMkpr+%tR&_478ZCM#3&YGm*>`m1#QbfIm3wD2qP}SC=_g=gZV>3(!d?*{+338rJ-BL^wxo@1& zswclTmmyBMYB?>FZb96}aW!0qYJI-kxMOmxF#Yq@Tqba^go_ffr8S!rIB?t!iIq2= z%GJIPC}q_+C?EbZh_PZ=JEm8P$ubxH;0J$a=|Z?22)EPBa}hU2S>1O#{*(L`S6zAP z)ypiYnif?#j2(#@tnf-cFxo1d@<&{Bl&Pkb>UsIx-8ywpnN7Xx{IJrAUhXJK+2U%u zbj>@MshIr0I-EZ>EdwR!o{1>Y)3i4~BOcw54MAfk2eDj;O>`REGqt_8)hL{7Lo)JN z#8F$Pu$FE4e|8>B8paeJetEe1K#%2@*l9#G?;$nWn1J%`Yz+(FjD+^e`V7~r>^}vj zWj2!%<(}JJAkl9loYQ6B*FUtB(l$pSK_ag07NJgKHGd6_`*ahsmA+b9|8dVaOVmub zX@?2nD-m!{@wLUE9ybKN(6EWwY>JYW~h?Eyb*r#(*ooQn3~!=xTzf5Fh}D(FMcvC=y!U-RiSQgFU z@HmxHOnEltD6X=X6qBm`sHu5s7D*=#6k+WHdpI&wE!w47K0|)l$&(J3mp%_nFaeWl z`8IEg5Q?ZmBP5czRx30;TN}7^7L-Vv3_-pfLfH_MxraXz{$~L2Z|7U^heZnlUkB&h;-~uoj0O$WV|m6#n4mN%kBxFw z-{0R~9Ivy|qD;rkzh|2PFiJb+t*wYo;dr23&WfhN+uO&R77i?R6ApKRyOn zLj6gBW%tx|(lUOPnL*;J+<1ue8iRl50p3j{`t$(=u zZ!yp*GkLJ39YlwSH$5#Zm90_F>(_j}2EtptZz>aY=Dc@j1rB%;YV)YUu<8p3gvUg54Z%jJFHJPQ&6Z!aLqNrp+Evg3R>D*4_ z$zdW!IZEoGb} za_d65B2i>UsMuntQJxp8sXUwptTpm-n3D#nXmziaZun+oD<59(ZXqil-`VR9bvcmf zRKH`2V_dpPR^BpMYIQ4UU(QC zE#9pqN9DZlixk$gQ;I{W{EosBbfFQgV*-}ysS-2=%zI;bVXA7E#~Yajd$O|49>3CV z;mM$jLRe(OKNNv_pBwnT)#^n=lvuK8Od1RMkvnsBb-n(V_hZ%G={*U^&(Bw7_J?B+ zKDMLim_lS6v+qlJ{tQrmDaN<8n8lm_An6i_8EBvfH3@YcW%J?)%;o1#^^d@2Myc9 zg>SgAF<(BR5Z8h(7rc5km4waPL^@m0{7h-gVH_SY__pV(bo{ufP#|IR-pZ}i)kxYS z^lsifn~=;Bv$`r(69lVv$lUsrIt`Aa@-^p@gxBS-lX8oVUxO(cXLMpOSYYU1d@qV) zQMR>e|8q18T5m>C;(#f0TmV=NEa;>nEfTb#QO%m!Ano%xn6#MFB~LjWO~K4!H9>az zLc&@x{@Os|3yCb~28r}-?_~nCl#u20M{TlllFf<2eCbtPYzzom58=z7t=b36V(&0_ z%m`*7WC2zAl*j1^sI?Qa+Az zLG46+JXc85Vo)p>r~?%3GzxVTeI5lR=z$tb)gIsdY}bL+o+Jv$mYVvvtmCuoek!F( zNE^qZRuRP;kI+`HRp*AAvmRa7Mv(TOh9?-!W;9s7*zE#&XCsw1n(C7~GaoC20s+RV zOekcNnVJL3>wb<>s;WJsvVF5Jji5=N``_SdQ7_x_iSX#et7T84&NxBl6@9FOqeDNV*FjaQfz(K_>lT2UX3>y%N+_j=36s>+Lt2md!)(>GF&9I zgS;7B|6HRIGNA!X>2ZEUh)SEl`1Mg}ID^p(BbMgzs5Ko%=go@Vfv<({T`!6oSfNx~ z@8r-D42CnilsQ)H#-()*e=|+3Dk*qOySuM+HYGLun&e@9#)$&NjQ4Yb-?k;W@y*>> zb}0qii=eFiJ{Fmpx%~`NChYc+5fP5TJ25PDroNJQOP+D+>5_CjQqQVkQohD`-==Xn zJ@@(G<(jQNqhLJ4B1KVwOqXJ)i)h1^7MfsJ%(=F21O8hnf)5E9T-X^quZeDkL6-efRPUvIf}hMYCvHc7nhWs8o- zGGWKi zQ3j3Q6u2%3>dxxtw*2+fz_?Z!YE)Vfo=^y;UhAYL`V@^?Wzj`#ei)u=P7c(HLD3ZtC+M1B-dO0m)jQruZICFB#|&SY4gkUG};L)#Q_ZssgiS*S6$UXlsQGf%UFr#zOwdf z-zk-5?~U<3WHlxniit~-4#spP!^Xq_VOZ^+7nIPYEP4@*+Q|?}W&NCbX*}QI>Y)44 z!?;d+o-z3k9{Iy6e|jG8k#1NFe%ElOxEV&8kv^(@7TItJ4#FjgS(Shtfuj-TSgI|f z(0=<3V4D$nJ~noi_uje(OJkhzRV>;08bx0?KfVT&X=5I>t#tq`g&(mq5${RKFzd)71`(3Bo((_f}{tB==ETTWUaA~h_Ck%WV~jD z&R09OEeTheV92N`d$jd=Tc8y=L>kQ7ba56jd?HpyoZUx%c{o`xzTHHAQVQ~M z0c+X5fLa`X^X4K@`&N+;^BlEoxUC`h>lKB*HYl4OZu-w+%SqGHf@}y*KONlW?5NF}c;2Uzk2PQI4{*`u z-!x2KNro1CZOR-5iGO+etK7$@wrBH;vMy805Ks0{qEuJ{TV~zaZr+xBqp(|dp|KP* ztiF1>;c|aC^LR3r>BDw)RT9!s
    eU>`Zgf+v&2gUvCfab|rwbBWGX+G2Ek;^JgVT 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�I$3ZC>LA2#a4uDZj`wB{!=2cbWm>NoGxxE=nk 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%0AP^qLkARr@0P1Oo&$NKXT%^0 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

    -}8QDgYkow);O*`~OxJw>LQbIgHgVJH6$^ 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

    ;rqyr&&}p*PX421dZ3-m8q5%j_ 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 Jn)jrA|37Ce@=pK& literal 0 HcmV?d00001 diff --git a/registry.yaml b/registry.yaml index 30f82e34b0..d78d109d20 100644 --- a/registry.yaml +++ b/registry.yaml @@ -4,6 +4,18 @@ # should build pages for, and indicates metadata such as tags, creation date and # authors for each page. +- title: GPT-5 Prompt Migration and Improvement using the new prompt optimizer + path: examples/gpt-5/prompt-optimization-cookbook/prompt-optimization-cookbook.ipynb + date: 2025-08-07 + authors: + - rajpathak-openai + - corwin + tags: + - gpt-5 + - responses + - reasoning + - prompt-optimization + - title: GPT-5 prompting guide path: examples/gpt-5/gpt-5_prompting_guide.ipynb date: 2025-08-07 From 35a0b53a9abf41ae5a26a34df24a202947cea113 Mon Sep 17 00:00:00 2001 From: Corwin Date: Thu, 7 Aug 2025 13:45:44 -0700 Subject: [PATCH 2/3] wording changes --- .../prompt-optimization-cookbook.ipynb | 22 +++++++++---------- registry.yaml | 6 ++--- 2 files changed, 13 insertions(+), 15 deletions(-) diff --git a/examples/gpt-5/prompt-optimization-cookbook/prompt-optimization-cookbook.ipynb b/examples/gpt-5/prompt-optimization-cookbook/prompt-optimization-cookbook.ipynb index d0f03db9e7..99b8eec4ba 100644 --- a/examples/gpt-5/prompt-optimization-cookbook/prompt-optimization-cookbook.ipynb +++ b/examples/gpt-5/prompt-optimization-cookbook/prompt-optimization-cookbook.ipynb @@ -13,11 +13,11 @@ "id": "a3942231", "metadata": {}, "source": [ - "The GPT-5 Family of models are the smartest models we’ve released to date, representing a step change in the models’ capabilities specializing in agentic task performance, coding, and steerability, making it a great fit for everyone from curious users to advanced researchers. \n", + "The GPT-5 Family of models are the smartest models we’ve released to date, representing a step change in the models’ capabilities across the board. GPT-5 is particularly specialized in agentic task performance, coding, and steerability, making it a great fit for everyone from curious users to advanced researchers. \n", "\n", - "GPT-5 will benefit from all the traditional prompting best practices, and to help get you build the best prompt we are introducing a [Prompting Guide for GPT-5](#https://cookbook.openai.com/examples/gpt-5/gpt-5_prompting_guide) that explains the best ways to construct a prompt for GPT-5 to make the most of its state-of-the-art capabilities. Alongside that, we are we are introducing a [GPT-5 Specific Prompt Optimizer](#https://platform.openai.com/chat/edit?optimize=true) in our Playground to help users get started on **improving existing prompts** and **migrating prompts** for GPT-5 and other OpenAI models.\n", + "GPT-5 will benefit from all the traditional prompting best practices, and to help you construct the best prompt we are introducing a [Prompting Guide for GPT-5](#) explaining how to make the most of its state-of-the-art capabilities. Alongside that, we are introducing a [GPT-5 Specific Prompt Optimizer](#https://platform.openai.com/chat/edit?optimize=true) in our Playground to help users get started on **improving existing prompts** and **migrating prompts** for GPT-5 and other OpenAI models.\n", "\n", - "In this cookbook we will go through how you can get spun up quickly to solve your task with GPT-5. We will share results of significant improvements on evaluations and common tasks and walk you through how you can use the Prompt Optimizer to do the same.\n" + "In this cookbook we will go through how you can get spun up quickly to solve your task with GPT-5. We will share results of measurable improvements on common tasks and walk you through how you can use the Prompt Optimizer to do the same.\n" ] }, { @@ -27,13 +27,13 @@ "source": [ "## Migrating and Optimizing Prompts\n", "\n", - "Crafting effective prompts is a critical skill when working with LLMs. The goal of the Prompt Optimizer is to give your prompt the target model best practices and formatting most effective for our models. The Optimizer also removes common prompting failure modes such as:\n", + "Crafting effective prompts is a critical skill when working with LLMs. The goal of the Prompt Optimizer is to give your prompt the target model best practices and formatting most effective for our models. The Optimizer also removes common prompting failure modes such as: \n", "\n", - "- Contradictions in the prompt instructions\n", - "- Missing or unclear format specifications\n", - "- Inconsistencies between the prompt and few-shot examples\n", + "• Contradictions in the prompt instructions \n", + "•\tMissing or unclear format specifications \n", + "•\tInconsistencies between the prompt and few-shot examples \n", "\n", - "Along with tuning the prompt for the target model, the Optimizer is cognizant the specific tasks your are trying to accomplish and can apply crucial practices that we see in Agentic Workflows, Coding and Multi-Modality. Let's walk through some before-and-afters for some common examples where prompt optimization shines. \n", + "Along with tuning the prompt for the target model, the Optimizer is cognizant of the specific task you are trying to accomplish and can apply crucial practices to boost performance in Agentic Workflows, Coding and Multi-Modality. Let's walk through some before-and-afters to see where prompt optimization shines. \n", "\n", "> [!NOTE]\n", "> Remember that prompting is not a one-size-fits-all experience, so we recommend running thorough experiments and iterating to find the best solution for your problem." @@ -89,7 +89,7 @@ "\n", "### Coding and Analytics: Streaming Top‑K Frequent Words \n", "\n", - "We start with a task in the well-known field of Coding and Analytics. We will ask the model to generate a Python script that computes the exact Top‑K most frequent tokens from a large text stream using a specific tokenization spec. Tasks like these are sensitive to poor prompting, as they can push the model toward the wrong algorithms and approaches (approximate sketches vs multi‑pass/disk‑backed exact solutions), dramatically changing accuracy and runtime.\n", + "We start with a task in a field that model has seen significant improvements: Coding and Analytics. We will ask the model to generate a Python script that computes the exact Top‑K most frequent tokens from a large text stream using a specific tokenization spec. Tasks like these are sensitive to poor prompting, as they can push the model toward the wrong algorithms and approaches (approximate sketches vs multi‑pass/disk‑backed exact solutions), dramatically changing accuracy and runtime.\n", "\n", "For this task, we will evaluate:\n", "1. Compilation/Execution success over 30 runs\n", @@ -106,7 +106,7 @@ "metadata": {}, "source": [ "### Our Baseline Prompt\n", - "For our example, let's use a prompt with common mistakes many people make: **adding contradictions to their prompt**, and **providing ambigous or minimal instructions**. Contradictions in instructions often reduce performance and increase latency, especially in reasoning models like GPT-5, and ambigous instructions can cause unwanted behaviours. " + "For our example, let's look at a typical starting prompt with some minor **contradictions in the prompt**, and **ambigous or underspecified instructions**. Contradictions in instructions often reduce performance and increase latency, especially in reasoning models like GPT-5, and ambigous instructions can cause unwanted behaviours. " ] }, { @@ -896,7 +896,7 @@ "id": "ebd5453b", "metadata": {}, "source": [ - "## Conculsion\n", + "## Conclusion\n", "\n", "We’re excited for everyone to try **Prompt Optimization for GPT-5** in the OpenAI Playground. GPT-5 brings state-of-the-art intelligence, and a strong prompt helps it reason more reliably, follow constraints, and produce cleaner, higher quality results.\n", "\n", diff --git a/registry.yaml b/registry.yaml index d78d109d20..c9c9f4699d 100644 --- a/registry.yaml +++ b/registry.yaml @@ -4,7 +4,7 @@ # should build pages for, and indicates metadata such as tags, creation date and # authors for each page. -- title: GPT-5 Prompt Migration and Improvement using the new prompt optimizer +- title: GPT-5 Prompt Migration and Improvement Using the New Optimizer path: examples/gpt-5/prompt-optimization-cookbook/prompt-optimization-cookbook.ipynb date: 2025-08-07 authors: @@ -39,7 +39,7 @@ - gpt-5 - responses - reasoning - + - title: GPT-5 New Params and Tools path: examples/gpt-5/gpt-5_new_params_and_tools.ipynb date: 2025-08-07 @@ -69,7 +69,6 @@ - gpt-oss - open-models - - title: Fine-tuning with gpt-oss and Hugging Face Transformers path: articles/gpt-oss/fine-tune-transfomers.ipynb date: 2025-08-05 @@ -127,7 +126,6 @@ - gpt-oss - harmony - - title: Temporal Agents with Knowledge Graphs path: examples/partners/temporal_agents_with_knowledge_graphs/temporal_agents_with_knowledge_graphs.ipynb date: 2025-07-22 From 95e380e0c03c2d23834e657df304a30e2a8fdaa6 Mon Sep 17 00:00:00 2001 From: Corwin Date: Thu, 7 Aug 2025 13:53:54 -0700 Subject: [PATCH 3/3] cleanup --- .../prompt-optimization-cookbook.ipynb | 32 +++++++++++++------ 1 file changed, 23 insertions(+), 9 deletions(-) diff --git a/examples/gpt-5/prompt-optimization-cookbook/prompt-optimization-cookbook.ipynb b/examples/gpt-5/prompt-optimization-cookbook/prompt-optimization-cookbook.ipynb index 99b8eec4ba..91905adc47 100644 --- a/examples/gpt-5/prompt-optimization-cookbook/prompt-optimization-cookbook.ipynb +++ b/examples/gpt-5/prompt-optimization-cookbook/prompt-optimization-cookbook.ipynb @@ -27,7 +27,7 @@ "source": [ "## Migrating and Optimizing Prompts\n", "\n", - "Crafting effective prompts is a critical skill when working with LLMs. The goal of the Prompt Optimizer is to give your prompt the target model best practices and formatting most effective for our models. The Optimizer also removes common prompting failure modes such as: \n", + "Crafting effective prompts is a critical skill when working with LLMs. The goal of the Prompt Optimizer is to give your prompt the best practices and formatting most effective for our models. The Optimizer also removes common prompting failure modes such as: \n", "\n", "• Contradictions in the prompt instructions \n", "•\tMissing or unclear format specifications \n", @@ -89,7 +89,7 @@ "\n", "### Coding and Analytics: Streaming Top‑K Frequent Words \n", "\n", - "We start with a task in a field that model has seen significant improvements: Coding and Analytics. We will ask the model to generate a Python script that computes the exact Top‑K most frequent tokens from a large text stream using a specific tokenization spec. Tasks like these are sensitive to poor prompting, as they can push the model toward the wrong algorithms and approaches (approximate sketches vs multi‑pass/disk‑backed exact solutions), dramatically changing accuracy and runtime.\n", + "We start with a task in a field that model has seen significant improvements: Coding and Analytics. We will ask the model to generate a Python script that computes the exact Top‑K most frequent tokens from a large text stream using a specific tokenization spec. Tasks like these are highly sensitive to poor prompting as they can push the model toward the wrong algorithms and approaches (approximate sketches vs multi‑pass/disk‑backed exact solutions), dramatically affecting accuracy and runtime.\n", "\n", "For this task, we will evaluate:\n", "1. Compilation/Execution success over 30 runs\n", @@ -106,7 +106,7 @@ "metadata": {}, "source": [ "### Our Baseline Prompt\n", - "For our example, let's look at a typical starting prompt with some minor **contradictions in the prompt**, and **ambigous or underspecified instructions**. Contradictions in instructions often reduce performance and increase latency, especially in reasoning models like GPT-5, and ambigous instructions can cause unwanted behaviours. " + "For our example, let's look at a typical starting prompt with some minor **contradictions in the prompt**, and **ambiguous or underspecified instructions**. Contradictions in instructions often reduce performance and increase latency, especially in reasoning models like GPT-5, and ambiguous instructions can cause unwanted behaviors. " ] }, { @@ -130,12 +130,18 @@ "\"\"\"\n" ] }, + { + "cell_type": "markdown", + "id": "66ae7a26", + "metadata": {}, + "source": [] + }, { "cell_type": "markdown", "id": "01b0e8b3", "metadata": {}, "source": [ - "This baseline prompt is something that you could expect from asking ChatGPT write you a prompt, or talking to a friend who is knowledgable about coding but not particularly invested in your specific use case. Our baseline prompt is intentionally shorter and friendlier-but it hides mixed signals that can push the model into inconsistent solution families.\n", + "This baseline prompt is something that you could expect from asking ChatGPT to write you a prompt, or talking to a friend who is knowledgeable about coding but not particularly invested in your specific use case. Our baseline prompt is intentionally shorter and friendlier, but it hides mixed signals that can push the model into inconsistent solution families.\n", "\n", "First, we say to prefer the standard library, then immediately allow external packages “if they make things simpler.” That soft permission can nudge the model toward non‑portable dependencies or heavier imports that change performance and even execution success across environments.\n", "\n", @@ -249,7 +255,7 @@ "source": [ "Now let's use the prompt optimization tool in the console to improve our prompt and then review the results. We can start by going to the [OpenAI Optimize Playground](#https://platform.openai.com/chat/edit?optimize=true), and pasting our existing prompt in the Developer Message section.\n", "\n", - "From there press the **Optimize** button. This will open the optimization panel. From here you can optionally provide specifics you want to see reflected in the prompt, or you can just press **Optimize** to optimize the prompt for the target model best practices and task. To start let's just optimize our prompt.\n", + "From there press the **Optimize** button. This will open the optimization panel. At this stage, you can either provide specific edits you'd like to see reflected in the prompt or simply press **Optimize** to have it refined according to best practices for the target model and task. To start let's do just this.\n", "\n", "![optimize_image](../../../images/image_optimize_1.png)\n", "\n", @@ -444,7 +450,7 @@ "source": [ "### Adding LLM-as-a-Judge Grading \n", "\n", - "Along with more quantitative evaluations we can measure the models performance on more qualitative metrics like code quality, and task adherance. We have created a sample prompt for this called ``llm_as_judge.txt``. " + "Along with more quantitative evaluations we can measure the models performance on more qualitative metrics like code quality, and task adherence. We have created a sample prompt for this called ``llm_as_judge.txt``. " ] }, { @@ -613,6 +619,14 @@ "We will run FailSafeQA evaluations via the helper script and compare Baseline vs Optimized prompts side by side." ] }, + { + "cell_type": "code", + "execution_count": null, + "id": "c5849f77", + "metadata": {}, + "outputs": [], + "source": [] + }, { "cell_type": "code", "execution_count": 3, @@ -632,7 +646,7 @@ "id": "0a817cd8", "metadata": {}, "source": [ - "We can use the prompt optimizer once again to construct a new prompt that is more suitable for this use case. Maybe as someone who has read about long context question and answering best practices we know that we should remind our answer model to rely on information in the context section and refuse answers to questions if the context is insufficient. By using the Optimize button once without any arguments we get a reasonable structure for the prompt and end up with this as our optimized prompt.\n", + "We can use the prompt optimizer once again to construct a new prompt that is more suitable for this use case. Drawing on best practices for long-context question answering, we know that we should remind our answer model to rely on information in the context section and refuse answers to questions if the context is insufficient. By using the Optimize button once without any arguments we get a reasonable structure for the prompt and end up with this as our optimized prompt.\n", "\n", "\n", "![optimize_image](../../../images/image_optimize_5.png)\n", @@ -677,7 +691,7 @@ "id": "2516f981", "metadata": {}, "source": [ - "Let's now run our evaluations, for demonstration we will display the results of a single comparision, but you can also run the full evaluation. Note: This will take time." + "Let's now run our evaluations, for demonstration we will display the results of a single comparison, but you can also run the full evaluation. Note: This will take time." ] }, { @@ -888,7 +902,7 @@ "id": "0a84939c", "metadata": {}, "source": [ - "GPT-5-mini crushes this task, so even the baseline prompt gets scores of >= 4 almost all of the time. However if we compare the percent of perfect scores (6/6) for the judge, we see that the optimize prompt has way signficantly more perfect answers when evaluated in the two categories of FailSafeQA answer quality: robustness and context grounding." + "GPT-5-mini crushes this task, so even the baseline prompt gets scores of >= 4 almost all of the time. However if we compare the percent of perfect scores (6/6) for the judge, we see that the optimize prompt has way significantly more perfect answers when evaluated in the two categories of FailSafeQA answer quality: robustness and context grounding." ] }, {

    _!1EZRlJjp!L$Q2p4v{zK}JXtG3$%m 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

    }~qg=;bc` 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 `j4uxI}URzUL_`8$0gFSq( zQ}stu@#NOVK(JFOo8>{vDlA%CL1EcznSPkTxO-812(XheLtIC!+v1=Kc%IzAo(@T3zo>s)i2xR)sbD=9`8_;>1#e_@6J!Sr0Xr?CaSAbm;k} z(K$e0a?8w<_Gis~J0uo!PjGSxKdszs#P&0ftboRQI#s6#r-%L$0=-a@oo!xBkm50N z3H@d_vRb5m&}_>+v3{CvE+P2PB3i&}ItAU0DKeW}kwPEiklG{0r{)7tf&ib)(_1{fJq$A{OCFgn|}w%~;WcWKlbgIn{o4fRxXo9|>; z%(OzJ2P%?lBiv6zud5P6uUl39vkwCA>m@NyqWsXy;{&wl#kFhyUV8uPmfU}rd;5<8 zDfKd7QT1gocJ*5&9+dRfUdGM=y}A-`za2kagWlQCYoJ-T%{0tuwbl6r0=Z}NeP$b~ zwI6C;)-6rp7;FUmO zj*D^jA^XheQm+YgF%Y;?`qVqT-9{}`0o!!%l)DE&yOjJ+d#~f%dyH6R5k-MuRQAoK z+|r?YQ3yNQq4U+!O{}RMyXWUw+w`Bc0I9Ml$pKoB5|xkrviYVPNMovYeWDBhNq;e? z=w=``5gxr-&oeb%xSHEZgh;%Y1$6gb-*t=2EEA=*7q8V2;uPvIumpW)60B!|w4*<4 zYm6-OuJX-t(1y%&a<@y#cyO4EWG)*#-vAg;sgi{LagGo(TEvlzo_2 znz#MXm;P_OugAUSs>-eGjK}l`m`fxOwg>qKPjGD|`B5bOZOJ9bmnBEZveSe~c06hN zSbbIu;9geE-Kr67J%Q|>PAH6XF6nb~G4fl8Yu-xkq!D~Qy;K*6t5dWZ=9T?Q8#zG* zD_%VFvEg~7`AV=*JrTO5lxbv;@F5&9vB?H_?~6n=+Mh7f;sCpRnV2h=U(2X9~q`+Q0)l$5oJ3~zY$!pUNub>Uw zHo2C-#F*H`BpYqav@yaDd+HMTO8?edxLHP26-5;(c|2>9wuQ_K3)(A+ie@!EW=AzfWCbVCYRv+nIa852CO%8o`$1e*)2?VQ%M zjLzismUK)znJ*7C9LxuBgMaof6O&F3eA|VH*`ge^e?bQS6IcLWuvdM@K|}AB6Fc#? z9@Xr7MWQ;Xpw9JS^WDz{ogTVZR3_H%1!AKPUGaXZ`vp|wJd$q%6Gb144-K6u?fXe>=Uk(P522ysL_xn)rkLgFR@Kh7>jr^E&6iq0rbcLd z4SxnBiJn>uifr6Q)&G4g{bI^?`Z_Y{>#f~aRefit=`)?6ixFLB3rs9*)sk!U3@@3g zQ~A>#0z{q`pYuRyIt$H4A@#OUkQ#es&es)3^TX4Q>@rEq2#(p|;AXyuq| zs5<4`uo}}qd@8!xKPfWiOJvqaId;YqU8h45#ywGtIfC3C16_zbX{zzsw=thzd4D=@ zPyeo?NStLugxlqu6Fk2oGG>+EqaNZ$e7@a$m8oR@3V7no|Jf7cYyA+vmYUnmw_X`M zQ*m1E3){(=ZGw9VY`3WUL{wu@c+I18-lL)!V-YMHR=*wt_znRnhWju8MAMsBKJd^QE75Dk8rqY*4E|K2Egs zxLvBfnX?(yXzHxKgsEr8FzlVj2UhJfkTa|9Xyp)StX9CSd=D|^(-kdwAkZ#G%e}>2 zB{LlHqG?3LUjyRI>+#7ckx#;AsnQ-vgHHQ;mN)_V+nqJ%7cQ7^2f(PU|4u<13%O{?` zR^Dwxqe#V40b{u*TK+dThuZ2InSJXdln?t~yk+ zw(y@rDz50C-b5NnPc-L9_HwwvUD}i=(oT zTC1tu1jf4F9!+W7q*~An{uYoHa$}8+6WA0qCQyDSDi1p>3S5|>?-KRAkD|s`;8PDG z4Wx#Fe?B5N0gZ*CiUtBg0{$KWn8Hu@o@w4l&^$Fy*+|ETn*G#WgdI8z_xb=x(<^Ow z@w>Jn3`RRu+i$@=6Yqu9^1N#w_#mt(H-B1AXE^L#3NtEYtq}TIVGr(NVvquHZD((H zei(J5`}H#rI{nuz@V)a}ToOZEQKs+G;Prn!`Y(L-`-^J703d2`zICDF=uYd1)J@L> z%ZEqczxNwwUex3qb;b1mZF!}=gmge9ARjp$$`lCR=SMS#LQEE1y}tmKBi>o28m?w2 z+)#GtRKx*l#oLC#jT#LL)ZVJKoyi|8S~>?Qq0E<=$eC()17=jK)b4WsYaZql6C&01 zQ8d3QgR-DTNmsA%og_bKy5?bPYoI@jX3-GI*1W7VsjL;BjlR|%XLT5_*urqe;V8Sh zgXC}ETdF1$A-r$fPb3<8$6<$F`D0>-tu#$ND%XG({$#nvM1}9Qe1*slB-)^rCZ)so zyHoj2+D;=HVj(X0WiRK<*22udAaM4-<-z;w(r1J^H=1;-J8d8Noc#Wr^&qLZZM>q% zO&B4!YQIrYm~U^-sp+qAdzUKO%MlO+w{g{?<@-67v=iE#)9h6n|H6eCR~;yx(U5*? zp_B8slF`u{0R~@4?fSp&8FtOoX_Ea>v z_%oOQm?jCO|IG?tOu1MsTnaud1Ai3(%v#g=6umg^uBy6dYi4!TI_t~ ztYc67=LY9MwrfmbuUcym?=LAN3e63#Sv_{5LJOW))Ryk=G-&$zg9c93%x!urfWKd<$|RGyLQMEH~r>n{7C5|o^h5Ls%5_|U~vmsd{Xj_Hz&fS z+l@_m8xKlXmeL@?byo@WaVr(+l+QqzVLp51|KL}fbkj5{FwFIUYw@JmW2OD$=`I4l z{Bi)@(_UFj2r|#0_RhR%wgx&4a!HCmziYO;%)i2SVSd;-(ltNIZg_fO{Rv`F7IAA5 zlg7FRZ6%T@eANRnu-Fip$rbz_`?Zt*i=RnHGw&2f7|coM891+?MaO=U<#V6ZU@%)GeMZBe9s&-X z@vLd;f)>gVd^Z|f`&@`6i?UH+V^Chien`ONv8YD9Xf3}GFj-f6ydrXNo+gW{B1r|c zA;~lqJA)C;tzP*UVa~?+uodov9BMO%>)7aolBevx(BixBa&brAxK?FDIFMQS%HOGI zy@`Dl7$dRzE%FX|@%rBaZj z8kV^NW@fcybJL96Y{cRGHl?Y1zmS_c>#Yhmfa2E58jUI=X%r-Wq1LQA7yF330vDMj z!y1N>k(dW|*9aCV!UFWR5RDsJ+9xKNE zCE;u5i30nY8&4qJhM$&Z#aRmhl4L0c1vV#6gtZ;!|8e&~Bvy z=}C*>F@LT3$lPLnqj2Zkho09)R|#6scXR#Ruh z*_HHYp{(i(WCTh3ZFq?25RA8mceslFUJO%?B|DQT~uETg?8lj=HA1XKzJdD7VvNQ4e z(4tAV;Vla|FF^*90_C-k{C&885@m-L;%2#>Symd71`I98Q2O#@gI)#c*D-)AlIojN17t|F3H(P`=!R~P4E=+va+T-sPyaYFc&Aaz2t2maB4aS`xj z|DVr!w>#M?Bxi$tN57ddFd(duDNuSlq9%QGPkzhnZ7j99wA51r-OsCh08}N9Ii9zD z)Yn<5E|trouQkW+f#u^CiXmD~VGAG52Z~xbI^&{1gUoSKn6`w974aPl=3D~*S^ zbeI#G0Sn@FBZuBON>}Lp%L~A?BV8d8BXEt7Y|$k$b}}ZjeR(#$>ZJvtk%<__de7sS zc;Fj0ma(2@WFVX8$E;h7@Fjo1hi%PGZ%2Gm z)vkOVV{(X%8vCJ<_@Nke*wIo8S`vN(Emd^JTr*QbvhCTQ!XV=sS#-qM#F6U@vNfU(J#;OAX^ha zy%_flT-+B=z(~hf$4p__xfW{;8>KAIg#zkUzQQu!@-;&X7p<~ltC=Zvo!^4bt$C&y zjQmt@GL00AMaSYiWB>4Mpy!UE>9%RFM6F_zI9CQ6lOUT5eG< zFa&{F0v}ae4V4$k1~?UNA|Fhz&~|Gj-Am*npw}c}iLKRGRlfz7k{%+XAv!9P5=Lxf zZ>uTCOw94om5&J+KI&!b3(*9Zf<1^65> z{eToF;%V`9IMOAsV6a2@rh(G&sQ3tvMQXeC$4L@hfgJdxO{)uOSK4(}Fe3dSd+RKz zbjmPw-Hku9YJ;XgeM+O^Nqy<=uLVYtX9UdwC}65>**~lV(oeh1^Fa>zIdr!Q- z-wGu8Gc2SOi)(qQl3op6YZye_D(!2Xo&QfroC90J-LA1OTP6MIe|N!_7vK36{$PcY z(;?LvFgE2f&kVjVoh5@t<=KgA&| zFWeTHyN)ly&EPG?z%5Y9>b3Q>V{EGqtaM(P5zA4K$ITru56bvpv7nfFM*nE$$qRmP z*z_x3w5*RqK=qmOGq~>1hIQ;#SXXFiR@&$y`xZ!}+S|Wt`Y<+1{i4jw#y7|HcbJ8{ z9Dl}l(;rL$;#b-Ww>xLQ{9Yy{lO~0+G_9n$S$)st2=>`t5n`vjr~7;bu3Q#(H|fk! zwSDFH{3`jJ15LWqhizVHv@q%cs_$@b*D`wuq@kF5vYQ1Q zUzhnIR~Xl-7?0D}iit>^HIZN1UzWivWEUO7{WgU)51XITy;5~o=6&BA$LFTQ(_ zI5*_DFV?HNT9&;rGs(ylxpVvluHzh_*%^*^^MIr8^|Uq|mx-upP$64mJ&j?QqFjiR z=kK^Ew*1|WR`snQyF++p>z~*o?JY!JI#+$GMa1>~6Q(9A5eDWt8^agkCySOAH?wC6 zB~x3ec8QDk`gvDt4icSE-_KgR?kl&iKI!*wpf=TEtuS=hr9@$G`+^#=(Phv@T}!ox z_{9b{Qv|$k5ci6ZjfO-XEha z$V%$7f<;h2Q>`7ZWx#!kcr7kWn+-WL^Op6@|6PA<+O?;wj*WKFr~&@d%GTHe z>^|H47CyIE&6@=6djXkLM)K8{u3`Cq$eASVZ2#&;zLu(u>6R)_pXSweSU%{6V{k(V z+(PeS&%j1WOg2UQD59d=#x8K^jFR7iKb&0gJCGDfE5mI9u7p{^5%Iv$OJcJ8;#dhY zDy+Zp7v+7LPEK3V9(&u@g4=tZ3@v}8g#IPQZHFoO`l83T(9?A1jx^d|6AQpKph??9 zeMybQZmGWkCL{uaPiKDA5PngRIR<(m@7Teg)KZHlf&5L-j!Bh!0}i*D-1vQ4cRzFfp9^fOI1F=C3tm z5Mv|y#LwgjSv3u8#(LRb3bW}_7)E_uvt>MH{Tk0lVu54<0@al0}Y7^$Olr)3T5dhy9sErJmM4w`>p3rrw^= z-ui$PnDmQ1`C;?yd7|dEUj^M8t%p2^GEz%pWu35?s3%pB_zfPFv@sOcC2n_3MH*oj zsICWtqM7Uzz(~P6nftg?HD2@Xjp~|c3zS1cwn>J)hM3}qz;|V=Et_i!41euJ@`k^w;3xTXQF?!si9QgX1J>$<@XDR5<6w5Wb%wT-2eh)GUuK zQzu_+1-8^Zs%dc3w6CzMF7@=8S7YdBpVogkVgIQJvxe(Tgw6*2Lj7HE1=s&v@W(A%uZZ>Zl@B98J=LL-kh^Qd++eK+I7*ckJ9p(e7Xw6E^nlA%T+ zFD}AISS{r_6n^$~`FC~;KtFl@=<-l)zE7^(UT}m}AlMkz%abf%z8s8KJKzzBc~ciD zQ?NO>A4kclIo+qHJ@rY3C`7+Ar-I~0N#rG)f0%hkOIa`nxUYl zX+1s31Lj`RccXr}as@WRr|S{Nbf$9Jx!g8`AsFEQ7^)nt?^r&{xUUD0{*-zGgHgjw zV4^iH`CT`4vUI@ld%jF!{?rpQH^U%u6O_q=eJ+s`fmW9!fa)L#viCy4WSO2vpsH#W zAQJjN;!i=~c7W5D`x+3hVYOo|+ivDWJ>Y)uAVm9eB=Y7x!IM@4=SteVH>LwZ{7!QR z`D}nWw_*sGa-TacDztNs#&!&nKG2C;MYotT{d916c0KiFNwrWLZ3sg{`IqAx+?NtL^&YrDF75NKk1Ob(* zvu5KXVk>P*1n(mz2t5vZUUJyvpHEhZ6yB9racVloUW;|9EYl+;MCMCGqb}kgriyDe zETT)=cu?TUx#{z^xXk2I{|bKt?C*kzc500RMfQfAo$b&I+~(5EiignK`1v8UiWoe?``%L=5}^bu%Nn z6js;vHR9!>CX;tvkBVCGCl)Pv=it;SN5mk59gl_%Tcyelz4$V{=gl*#X#lFOx6HRw zK>fquf+ye+D)n~`nW{e(`K{pq(*05RxfMTZ0CapFRpXlMKOJ_~B@l3upH>x53hE3? znh}rukPBV4KQ5hz+ywoJr2q|G5Op9h_a9|^x(6zfN$i~}vE zGA%kT!RLqlfKeiEf3W&+n5iUFLMtCsOj)vrBJuq;E_*>5&k#W-W83k)Q}T;cT~WOh zJPU2(6m}Ck+zj>ex(QSu8E=n9jt3Id_`s{^ShEqsf;u|t{Y=; zy+2<@Ypu7ZUxQ{>dH}^jsejaZh(quK6Ce65u$f>k!588Zz*RC^t{E#@&r%lzKw>h- zxSm?LBvLQ6WKvToxW0+vbIgI=@VQ;eNL3%tmOl>BmZ9&mr;dLa#J4jBZszbco!|D4 zH=^+L7dcdp&OT^&sMKchQkbXbH9_ChC}}iy@<7Q9e&X-qkz= zL7WW#@v1i5A)oe!opEM3=k$MfBL!H>ujH&3#+O+zS*uW~VJ!U*dF>11fHM8s1=}Q> zKnb{7Dy-ni>xC(brgtq}wxr!U3-!FfUt$K!m|u)3U5nJrfJAr&NGf$(@yc=~leLGa zfZ=2anBik7*O&^3Nkv`Z4-tlp;%|UM1gZx}E8)DMJ5>NE>;Wll61p3;aM<(b>|Fnf z!nq!46`4%fR)dP@(ohPZIL&p4{%Up6&oRyra>~vlV0btbO%Py%LFttO5Rp|W@!id+ z6^L$NOgn}TsMZPr@hALB0_gdaKe|V7%mZ;;(`~;9iRW7yY9#>x@VXZuDDvTst_10g z(4l2E?fJ458#wrkfZr818@p`C2+F)2(O#Ay{mIQxQ#2I8*it3RpcJY&g?Urnjx0c@ z2Oj~|0QGZIvkATID!J%LR=$ZHuF0j5u zI-|&B7Oz047~vO>>R%(WygK4UjgIG5Dvelut@lJpf)xVH3O8Q$+xLCEy2Rmb7Vf8xz1wA;v#6{fQIbI zg}hu6Bh3o9yLcGLYEXVds$;Z@k1$-bEia%h%X_kTW4As~n? z-+1SU82)q1Jlr@%`dUq=t>8M|Gq9=TJd|D;&&Dkw0lCNxyC@{Weaxdq5F!s~d2`DT z3!IZM{fH>o+}q#~3%$|eLogef!rbpJB$W#~+wQiwZdHCr{qvys`<%g~w@ z2&jdRD^5=nwK%L+lJ_%{g$X0&rSnTK7y8c&lUQ+@a(I(wd^=uiNBr_ujkWol_t(JW z0{~JHp@X^`_Ke0uu?4i`gre3K;bP!~k4V!NFY<&}XO4|8%~o4!<^x+bzW*{Qe!w}Z zSIC*&dyY4(2RwN+IQYjiU+ z3B$WYHn%DHu|{mFovtKBosjwOZ)-W3K%4YU&tzkVXSwyTCws1{_y7&5nCu(YzM(!m z)}i^lfUWb7Q})qv)eIQy%b2G2?=yomao)NbnLAjPk_?UY!XjFtrerQPv_Wx{+e_<3 zzc^_{2NmwiHy-6(A1dk;c4A+z}Fn9rhZ;RJHb%~2^$2ysx+UV)$wuwOA z%W&)K10s-mwF=m9IFwXd;K`@x*O*aZDH!*;MK=o~9$jBywH&~!hx?tGiqsK942kJ! zl7!rG$w&0TU^%tFH7c}13Z8jhvdHH+ba|pb6_#COj|!5?QQN!ZxE=2 z_??ryQMEB2?E6YECKkDoqv*&~GPS!q#t%TDnNeyhnCDNT?e@oWBTe{UA_*Sj*zSP7sx?k9l>DChW_D%&Smkp=O_-PVYpO%b`d*65au}LfVo}Kt zpxC`#nL;j4uBWm|Jwz>k37k)u-tjZTK#P|t#ha%DEyS@)U0vEh9mL6Ao~>YWh4?P8 zbj|P6tOtL*X1aCc4$00N#K5O+T0=G<+AeAGUGp$m$IbpD!}1DzgDFM*Lj5?~C}^v`o> z+kFSWfD~6QC{YJ`8Q;6l3RfOc3`1g&Fu$7*d>C%10I;131()+-2!(<`jKh{rddT?> zI>k$K!2AJEUWp zXr+Lz_fVz4tAB6&tzvYWXQ!+jZx_h{#U2HKZ+lUs0=1Wr}(WE->oj#+av`*i#*nUXmJH-MX+zm3adc5ms@l| zqYhKBg0C^QvMT?2C~YiUCOCt`EC3oN-y5UX8Ux$SJWun(hTtBMyHc*5DW*6S7!$6Cg)dg#p$k z^2J`pt52j9@*bqC?Mk8_+5(BC^`I8~8`yu@7OH(t0+a}hgZO^L{xfTA(6Pf|Z>7k7 z>M-rD8&UTkK;Jcf7>JXgSxlXR^dG9oY(LZDGAhfR-CmSIg~JM*s`t&N0>!Fle!yt9 zvE~wFM6F-NU>im1447_Ey!GUymcd|ZfatNf(NA3u__;cMw@FL8Mgk(dZO}RL{rY~7 z`|k*WE&ghb)rRD(ROT-m#y|(T3W`DBEP|)E9;mxd8%-aPlCv&~wEY_L-ecn*{gOLN zuPpCduWMFKa2lVg{;u6VLvIk#YrPQ?mkb@d>4M23Ky2_pqDlA-B0S5T*m|~o<0##` z`;v-=l?<2yT>#A|NsB>@=~vtL`5NoRf@cbmW(;=RbHh7R(Ta7V-8Es6oze~ zawa)vtWqTBW8_$|IWNg+WEh5FhB0H?_qq4y^Lf2L-^1tk`_psVtBy0I&gJQ@7;d+a?mww@Z$a+^lA~Wej24tbE~frLjsQK$r5tD8jJ*5c!Wydt~pjYI_c+ zRn=ls3cRN0AAv8l=5~4%N=d3V1yc@H%skf%@-7wEv>Rf3&XC8b0ec(0jY-UOIu$PWT@!+MCdRHq%NM8O_gxHtb@(m^Zg$uBd4S z1BQ!1F+AXrU{;44i(y$E9f{Jx!pFnCZP=2aPJg)Z_P~obH!P;|4m{uTL8@Q+6c;=7 z7FadPd!AnG6E@F0J>nvecZtZP?9FyrY@Z9^&3THgMT~6qJoBc%k`@QX=g@2~$k$9g z^*I5-s@5j&S=9$2@F7Xs*Abm(jMt3yr$q z)ve7tDb@y!mor$4&&enaYE$1McA{>xbtWe#Xe#W~2%h4vb#puxq(%0ji>^5V)O+;wJ1e$Ik?p=U`;IkX<9b>yZGiyI=*~OUF?a6H!)*Y3Q;>ax&~&=Q)%$f>+M5T1Cq+L=w=~UN(s~ebyTo#*Jo3UKU`mb% ztwdDpks~1lY{W<3wFt>5RLY5)%Y6etKS?Fm+VaaYbvhhzcX>?`yWoT*kF&V|9kAGC z^)FUc$agSFLAz||1WGW8U1_kyclm$O-iR_aMD|fTKc78bj)rPB$Z=LdiTwl4i-3UMJFq`vOb9F-NATstB9_PN|V6v9pPY zAw8o9GX=yc(^}EpwHa@es6(!7 z38tA|;Xa7(*tY?&crJcriT~WF`REA?o#L$k>#^VgGjh>rjAp}(>>WZ^cyZB6KvK}s zUd!HO9&!;q#Z$yBtM=;9Ux|;&LX~{JYj~9E3Z~*kOVUS%A{C%kfRBLwvdoBh?|L== zhyVpz1z0v;whz|%#Airt&%Jo=KL9905*f(ByYuYyRz8ipA=fCPL#1n#-Qcf{xv8kKpDbjsDv(~iUpCuY~RoC%MFnz79h$=<|7QO{D0d8gGJ=&^2|52cmJm<_+EUcPWv0qXE`WkG<{P*+>G#J z`CO?B=u96SGW8zXuBMXUA!i#w+dvP)Bej3|>ZrX1;vV-}9b_s_8O|H7B{_2m@8pvc z+X!^i23fJz(+Y3?JX#SXj<*)uqvkRDX}6e!(`B^3uZz)SRo8_HZikQG zn*Iw6WCP+bJx58fw#(9)zA=A1oO~)UP|FC$s88iiB!%mUojMcc+JHZFEezz8H$3dC zKdY^B>2GO>-^+YaD^A|~%zlVkd$7=F7K1-6J{z6`u;yzn&X5de!As|FIQNQDt9U1R zoARwnGVq}cy)sKJ(>;CE;2E_#Y3xlO)WO+bkgqe+`!&>R&Kc`jw7>f;HCY2XlfK>3 zk->TU_(gxT+9wPE6fn|ma%#~E*ih4_{W>I!#p*u+iP@!AM$}qsB2WK%+hWhgbz_V3 zf{DGb;TUEhpt5xX=VRIC8ZoQTfxFo(HGN?+IECmdbmkup>VG}=a_TQJ5;SRD=&w1i zNt^h~Ip#gIJmrnm?*i%W+2D77+AYv59j+WSChvNRZ}s(%K5SCtCblNKZ}XZ_(2ip+ zqE@D+>htx5_1AWqN)m3@3E{|?LYq?jvC;%PARfv40r}U>Cy)BKDcU$MayOD*o9#p=RT2u!hYIXNua~&10 zNn3q#ZDZlfU_ML<0G)h0=9!I@;kLBuYOdsl@)9R(H~Q6m?kO#F$HO!J`sYI=R4KO> zJN4Q{E_Lk8Ju!;1EV3~%j6JX!-k6AIeC=Q@dcHl>guZ?Z*S)>q#xf8-C@`szNq?-QWvb zW1d>~lDB9gFFy88Kkbh|!(O%Iu${|Sg*#lx;t0E^LC-gnzFMAaxs@&B&)EFU z!sOX$y}Xso5TY@&adJynvVnZ_%KidWQPn0edYZq=Y1lll{a8dIqY2?4l15(_7HHea zVnOn*jk(i{F7Y?@%#|u%jq3SCo$wc9qb2jsX7TR9eEeG6sPg9HszOw}nLl@g@e#(S`s@T+6k8w`})AMC8G1!O3F|Oq}_Dx5fUq z>DM4loWp!nXY!62IkWm>Blfw;S3)_6osk8y5&T?$e>$L~rsao@rMi^dHF4-;nz@;Y2 zN#msy|Cf1xg(>-IO-m1;U!1}`l>P5-Q1Y)bmk34bzsJ?! zUwGXt494DI2_c)srecO_DKb=YgfZ-u!+y(lcv!Bio`3H1Ovt5;=S}yO^Go-ii}Ed3 zeZ6*K4-MIPY zN+1=J-!`xgH3H#^FsolBkGA-qf+F;sVZOatpburLwB&Fn89bfDr6pk@FDz;#XtWw=ZmdH3QBS!|8J`qAGOW$1QY>ux-Z`WwEWblRluJZe{+w2FI;k5@)U8j8T4Rp`o@?) z+09qy+`}EC7D2+FS?G(LBmO{Op+~8ApvmD0z^tuE;%)I*2tJ)rn!s-%^oU1D9ZO_^|hpOfe_N>8kdOk7+n(DlDmF-uX&ODv* zo@sR`Yz*}fZ~sO(f_umT5T@7edzx!U>5r3 zYS*1xBx$^Fw#E>VhxT*47R8c#HK}3mJd2uOuF2Lb&&%2BdGvjAZIV0Hw>6nd72dW* z#tI@Buu)*B&!gy}bp0U8E3#I_-1Vuse9T6OS)xdmleRG)`G>^{pt5KlvH1A*x41Wk zV&{SWn{7?<6*Y};u2$RW(?6_4%9-0JH&3fWb;VRY zQNAg)iUGr~=bW|J`4z>kB;g2iPgAS%H9{}smM_M&$d^&EPn$?SwHo( zpgH3?#+SklUGjNhY}6xwAO|h_U|vBTqN5$Jq|OmtJ5{v%|Y9l-sLOZfyM$#$Wblq_kbRKK@%19yh8nUWeF1Ltv>5NuThPC_yTIGxPSa_)*XY(S zF0f}A2C8eZNtO>SG%SjU39(2_loWXc#5D>J{d4gk*U|G^URj#dCtjGip4e;X8NwSh z%V=+8Q9S0$Dc|+Jy1`*xo7{y-yDaaft@8=Pv;Ih}J%}o`v6=JE7H{){j%HfJ&(JaE z-$7(4veA=xJgb%-eJLOAYcynGfP5M?e4lXWpLN14ATJPsZr1P8Tg1#Ds4sb{7p=j!sCKwPCnI|XbY(0iWe zST1+)dZi4mjO(i-f(b;KWXw|XXfJ1&Vycx#pLiZUU|~nK${7pbev?SBHzN<^pYinN zmcxjt?T6!Dz&d`N>#cTUb>(G(q+T_AO@eMh7Pc1I8%5={= z^HSSCHJUWvA^y5k_>a;iohPoLr06?BaPKMm=i>iy?qb~D!zrUkeyr>{#ye))D8k$} z3P}5zVQ0gAWiI}(ay|O0?b460r!c23E1qi(eYJn<)B%jk3K-^8(Ry@mj^E*ehzCSqqeuXc%7JpY}*HMb+0 z$&L2U4Ygl2PAYEx3x<@o{C7mczm|>49}wLMwVbMZ_*er#uk(hs=;o_v+Yfr;1d2ESRGEpR7mSCzQ-ICQZLZzgi;CZ9 z%WFSA*ak@7MlIA-C3p1l@--Z)hsSx}Im6$2`Ij|6=oHD?)Y#X&kj1jNKP{FSk?PVfD*cEqPJ7J0cuGKNHArpx(^r z;^ju+lWRWv95Q@5AD0P|zK`<2DL9$2*A<6wB|DQ+6+ikRO`m@FlLyoT$<>MXZgrMd zledi+lqLmnX3`?LI~DX|Wjw)N92PS-1cEgn<13r3SGx78UdMZf-h4}LGbV6DoBNN* zk28n&-6F8i&C|TIF2g3>{p_b&V4k6zfs={xUJ@G~Tc*@AXupc@T!S8wAleqN>XxLb@OmJ+eS}703`-!t7^CZ`}?D5UUel#KV zbCSQCYC_Xe>!#jAAc2TB5Rg`y!Z0QHumMU4!*+}kL%_yq1@ehiiS`Ec*X9Y9p`BIz zsM0PhWiwzz7eU!@>VtPG>OvMmwo_1sy!Xs)?oDq{4)&J)(m!VcyFu-5VnvMjl?rT@ zJNEy0R{!(IGGo_cu%cdw)6(`De<{bBg4NSBRdLPfRuIa(|5SMvfOR{kZe07r1%zm1 zHo=~K-kXB;j2OC{8T$Ew@7Tl(uCYF52ypa~j=$ zr?L9{L2;&_H_a&;Y;N8wAOt4FHWob*wzuYuHZjg#oEEt;9>UxZd5kqQhoW~6F-`}+ zdk%8~3Jzd^v~;-YING5~7!v~t=Nm`9B#%IKvM+isD{jX3m)O+jwUb5w&WGam4R3KBympmpTyXf0kh@01ai#{_bElB+G)X_4<^bCe(4g%AE7MIS zxo=n2fcC>xd96*tR3{LEmH$=Po|zO<-pZ)h?P^PIHJLM_k_K)&noEi{#}8i}%>Qa( zba61eX>|)_)G&3p^!}x0&g+#l%cRnCHo8_hhU$1@+_CpN9bp$v14NQA9!)ZN!?00~yO;Zd0=gssX8BY$pB z^~88LO!M%S%na@pAQRgX;=;znisY1^PH=#U<`Ha0i}CZOeq4wAGh$KHl$MNJs(MWpEvU@q?a65Pd*^ARp1+f(x*#@xqu$=m zmiGyanrm~mNOjMLZATAS0Y-c#*Qc?zCZ*oXPP;^VWx)f5z%_!VxgY*D>6r|61iU5_ zC2B+B7_bjto`>GsB}B&ircZi-+^gAx99+ zQ|!LP0@BFdQcrIuLvW=J_m<>%vy0m%wg<=Es|@gicJ7-RIK{KsPbJ<+x}{@A{mw>L zo`J)v%CG;_kn?*_(!9c`{%3IoR$LFmjXd-SA>jXG$wlpPDt5|R6nYkhduDk!my&8lkkY19jF8h zN&>6<>tLI8gULG+KcWiptpeQo#MvJ+z*N(j11O}=8%`Ze%*bhoG3Pq-@ejJ98Argh z>xcHi1#@TKOOG;=vMiU>mU+VTQ?VkZ5X9L3p)|0OQ7zT*`PO~&ursQ?x4v~7dI3$S zkCs>2S|q_O&rp?TzIv*QZr2@ffLh2bwve!zl3z94yIaBivY*99bU#dr63)&%Mo&bYI zX$FINQ8KgLwd-1>v=jI5Gm1ZY1&b9zd(x7dp^AfF%*xzQJHPe6{0N|d_iC0+znEGO zcFBt0XIE=8_xbSh;dJLv`o1(YaMUL}lAP}kn$D2QviT@fwdX$_o~YHk4G^fO_amGA zijWh-<)vRw(KF9I>}*prkvOs(Y6I_VlSjaYeZZH2#^JG?OT%vJdqzbh^j>YfZoz+< z$xYDza1Vc^@x)*~tNN)F?%FBt;>YtMF!akVK~3Fe;Dh+ABDw5u})>RMe5a+3S2iR~eG5U_sOp*vgt z$Uif0se#`I{p&w2mf-$;pILhLjRie|M(h1 zz@-^q7#nK9p$P-g?t9b`htfBq&7quiROn!gVEJI8BzqoSS56v4Oof2t5C}}@^bN{) zUDt&asF&w038h;#0DMK1sc_4}7SUO)d&JK(b!#iv+HF>;7)tY*S~*un~x#+KA%6J@*+IHHw= zCdNfx@d<9_IUq!B-vZ?S&Y{~YPo1%c26A!WIq>Q~;H z^iA7JlVZ=?`5b##BprZhH++_gN_qzuGk6UQkyYYRp}!LS_(Zpfj#%Gs5$}AGr7k4_ zf;Fc1+Tq-I7PNR%2(WAk`3Z2xeuhbflBNj2?6r7K8fKReed7GM!RbG8ABzKNIQm{r zU#n$CyXFf0i{?#3e0}Jp-5l-(&H3ajeL~wuODqmXmq_BlT&y(3g=OI&zr4IpL<(23ibpBif5R@Ew62oj-N&2psGRz z6*woxrG83@zQnZdX+CE$^bF8F6^0>it(C$p#?zjknoO=HX}|8}a9AhDG|r#b;v65^ zsLqG8JWEW=5+ZA+@!!A!t7Zvm;Sk8vp}Dpx1R~)uu6;V;I^HiwN-PF#(VlLs_6tEz z*3TTO<)QY{cxUCSZJ(y!P6IHpmmS~g4YZ(z+m<8SR)pQi!zLAZTUnZP6*;hY5 zPAdS=_AQ>v^PE259vKu^`&IF-BeWupoVe#CsdKznZGOyYIrXi#1qKTw%bqs`giBse zi#jJqh!%u`E{;P@jv@1aziK{@C+Ka)<+lX`5O<1Lec#7zX!#`8)ofI{1!Pfl2XG>K3CXk zutim&y`Ox`DlF&Vk^7$^SA@2SrN8F011N5_owrNAPjk;go(>BU-1)}wa9{Aob8AXN z{>n$OI>(-r-EK$!iva7{Tft z7n>V~xc26wn}Jl_P}oN;6|{Gv#i|k2c#NJ{6O3^Vb*`LJ-`hWWRAjl99V`A_X?*)n z0;8Ga9;>jrrb}7yGpp&7@A6fz4?u8*#x z#(u==8e>!DrAk09(PRi0yd77N_;24`tp>_Ld3=Yf+tIc9#NF%vJ~*^cx^^L)*F?|B z&%xk1&9*i@bu1Gm$5#l^=8B$L9 za(sPC=45OgAc~(R=4xq<&asOXBwQMlBAY<&#EX*0uaAX4^wp3Pxrekg&GLPj5BA{Z z74raGZQ@{_PmiTjkEp7L5|Efz{MZc;q}iS_EUmZ*K!)7|Pp~ z|WYPv0GQRu<+IPe{&!q`E%0sB5gn4ZZN__)edF0 z4ExoX4#y4Rnu%|uNi{!+f|4XL=cyaFbQvtz823H{qM+}Vf^ie0FHH7v|m;mMU@ueetyukBKfzSy8KRQRH{^~rs^L-DrfAN;lTwYC)(Xa6P| z`6e9v=8$)T7+4pH{LL|gac=y$-WU=1{6@~x98qsfPB4s(-Cnn3Z;bxb?jH5G$Y1cF z`uDEkgR#vYHm%@1N`pvkC{l_|*y$j|?GP&*4ThB6GxgfRxpWZ&NnOiI-%QYmugpEH z&y8}Op({#o4_O?*Le|w7oF?sS-mY&pfK2+4+?bu$y%Mre8ca@CcIU|Xxc%Y&_MCno zzq~KDu(T;SE;)x9M2mNl(!>6~Bd{IM%y7axZLLgxWk4ewozBVjD*J%qZhn7OqCsV{ z0EdSvp`x_eJ<=f3DI)5EYw;TQuB}Ca(AgrgEo7I{5|&JCj1^(nP!0C`<^NtI zDLHJsY}VFTOr!8yXHWDzhP=eFM>} zvR|R${w#sL*X00_b9KYw0wDYKAq!ZUaq+4Nk7#*Fzi^!)j|Pq&>_QX58Plsc=9~Fw z15hZUMi@WWBm>X!r$nlTDS1?7k=1q8`kU zdKA>y@{%DbSdk>5<3Oq3OxFDA^um%)52pY1wLZsBE{_xRKYgOD`DhTjqrI9_Satkv zf~?1(RRn(qQ6fO?eORX8q(Gh9(fjivND$yNteAfeHvYPFEIWHG7s~SQog5S0qPRp?^WqGYZXf6TOYO0olMxj*}UQ23>jB1H%Kee zIs$u=gZ?qo``Hc|pK7HL;Pi>VOg+3#wjVJFc|cB%txo^1>w=$xk(Yi;wRwkf?S@jV zon{V4HV#o2jOr7cjroQ-6H4kz21=IEeKo%`%3UPTQ*F-nK34}n6ZP3)3FOeseS}YX zb)42|?vO;Jf^8>MWz7ao_~fgtNjxgIPw9J}Mu1*A9QX%yw=4LtCQ^FTdVRzCo_P?S zpYoSgwy)Q#!%4kH#W{V`G+yc)9Ddfr&04Xc2KUs9{0v+EGw_wc%HPbE<42!+zlF1( zt?&GE`J3XL#KXOxfOlCkTVeq%X8G@*4V3(>E=27Y^SFhSIxL?)yiR;38ztCy8UL4u zghTQ#Srs|mttw|BW{BYVcd~>1LiwDI?8w^XE zw8$TuKN{NO-ZZUkMsYn?Z$tCWgd~4r>ZN;$ z90$KC#LI@E0neAtjzcp`zS%ddaqzr^0m6&dp19LKT-BC+p>Cfh&!O_Dyw%7LlH&E_ z5GO1U?N_YxTDO;hSbqW)~h zJ$tR@omEl!S?nSS>*4S@x>(_HwRv|sb|B4{`~6uQX5;B}kFJ1Pe(=SPM~1V>u-{*? zGd5pdL^MCB3tJuN>hT4>EqZ5FORzeX$e&9j-g{7r7@tYoKRuS2deq|w+kba8$r_o6 zcRJ~t&>x;)mAyX)$S~bYx>tl=YOE|`g(kd)Frp0JuG$mOmU#iiiPT7F@jXCQK*+3h zVyYUmqT37r+g!QCa7w53@GH`+Bla!va_BOr6BSoP2DcmrSwPEvaVsGqAV&=Y*{k^FAW=?FgY+xpl#IP>tr3L{Oct%F0O zocndwrh_;+%&nY9cag)#$ddAUO*pm{?$P>lrxd4H+B3Y+jb#LxzD01_Y{stXYK?EA za1e-RWpujE=h=J6W5nfIKT;df3vw%*UU?=9iCBLllf9Dr3$jhwq{%+te<%6+EeMFN z#ci#{t*YYuFx_QIS>)-RE3>5nZYe46p+9i@WW)(X0Q&lr40clHGCWgV{^h)my!E{5 zU*_~m!j`RM@4e4Z-Ll=OJ=N>t*+VI;vS(W!o{B(!KHU6kQG_}Dw~#N{AE29MVHwTp zdW4F}EkI~@R6Zvf^;J+%1e@((X@@kw(uHwzVV^kffDlEN$id}q^E17ZMT!vm+NMQL zSEWoPcRh!O_m{?Lu}pT6Z;s%mncNcQ(X~lllu~(~UcTQ)KfcBBv`vk{pzp#kGfm*H zf%8{j;u%4NhDT_R&<9(uj?|poet-$3*x}sz(;?&eoUk@;-k|sXUhA#VM0Q7A+z?){ z^x3+WDeoq~k-aAA{*d!vzrX8f9kc-q3KNWE{(B{BCs{+NoT1@|o%Nvw(|mv{7%YW~g-A2~v8%6Hvs z;j+Y(v1HlpJo|23=@~3~P9m;6dN1wLMyvbYtO~^XZI9W%E#j)RW%LqY7-B~?syn%^ ziRQ8cb$y5#Nq+aJ8wbfh>eQehP(em0$rp^YlJazvzOlP{9*h-a^t_*T)L5r#F&`Ma z&t!Z)s&331{y^xt>w$F5)s~+C9_HC|%Qw37Er`x$2~IMH`&x@VATGqpU`=)+ zxvf^%8LJX^hxc{w$+?t1RDj=fMw=Ur%?kr@!hA`NgR1h7`&2`f~S2z}RpTZ?qZXvFPO4GpJ0ea+Y9sc62EQjM#M= z&gq_WE@Jofr`45J%BA#BceGT;+73@GcNFb|sL$5My&K%bP&ebrsYPlKjf)-*IKaB0 zZ}0Sw_-DNLPM-H&yDCHbt;J5drP2Xf-X2)Xu5=!9O<&%wj-i8bm3kLw04eoX=m^Nc zGv*Zpv%VU$ZzNzf6M9Hx71DuHWyU;rW-HVDC7v+i(DMmA?(4^&9qV;v$$Qm0rhMLf zk>2odL?CG5Pl`jLIE}Ng$H}S*x)5$Npk7yGj8+p96@$#F>v_7_Wydq_;+2R0><)qF zD05gM^eAD~gS|e4Lp-MAew#3Cr79obO?Z88$omn|P8RXQs;!yqhPGgpL#Z!;C|kHL{OEKZd~^Hr~y;;Kn2ZGMJtP1r*815PRig( zw!aMNywSB2Y0Z`6K%_<@=+Cl_?7c8Cr1rT|^{oC=E2%}LWZ!6iz>Y>;k2YUjkFF*% zK5u2vQism6)GSFaf82OhS%Tw4;(~UDqldVF)k^;BM395$4^TixS9xBJPH_Z+G7UFa z+leM{qDAQr*r3noE_8(rfxKt>&R{CQluC=xM0X$z4Ex z&~mD1^7U!gV-2`^P?C;geAbE#3x_P?^xRM0u_1tcJcxOUa^Lsrk~{m^OZkl#;8~ao zZ|;r#Qx@GhX6w4ru2Mfg<~Ol7498jbxmb|GPJEAcP>Ha%~-r69l|;B&~4 zeF?E6erG%VJmr|8E3Hx5h^f^6$Zi=a%7nJO&Wj4y&cn%Em60HKy(25!6cqH3vZjAG z(p7H_Kflu>LXCB;_VZ|fcvPLUnpJ_6SEqqDE;fJxh&g@uRcD@tl6L4|;nqM~2G!7S zX{vAJ%0>u~4oyqw_t5;h0f#axNoUW;(2H;aiQ3&z^1i!irkE7SXOO8X#5hM@b(e2tzF1Xw1F5~7*Bai*g6 zazLkw5kxt}OqSX3eoc6;b24fIMo$WiBnPa*-Yt>3*BXR4Q`7N6frm9#uuW|a;xP~~ z>=Vb(K~szDv5gA`kSN-drn9P{Ap?6&K-QKUNn^9OEwYaaAr*RQBX8Z9?SZ@;$AE}O+NfLnX#AgN%T zs_!%F|B0<_U&kN>?frZEI_?2s$);M0rvDXH#Bm%(ckZ#(b>&LX%SXw?h*2m zLkW1UPl_tfjaXA4;1o%gIvay;>#D3hH!*VY^l@RlHkr*DiI+-;#!;o|oEf5uu2!fk ziD-h)ki$L>$Z5$g=A-PLw`Z&ssNz<@U2E@jm-(M3r{$Kqu`rVcuvak6FkN-rpYdPU zh3BsSct(5e_tvVPOuQC4+303@F0kDAw^o@A!&>DL$Q1LB<}vCscSK-|#I)!HbN2>q{mpQMXKj_`<1Wp+_$zq5>S4V=C`#n)4Eou3 z#CMEwO)IhuJ69Dx2Kjdo-g7;~9wo#vqe}#BK;quWbJ9=ezG}}9-cqV{!tcxXiJkMI>37)0mNY%uA$KhIPtd!@ z1=RkvL$M9Tf`qF@Y=!(!h9uvbL>zYR^UoedfG;poK8%Ba)|3y^R#0#LJi?5>YVYr2W}jBYoKhhb~Sh(>pI)Ihvx`mMn`jI{_$$TeKg zP-qX=)S%U~km+vP%lomp_f}>-F-sddB5zLUm(3T5pHWelOi$1fh$Qrg>PPMo>8-_$qY>@)Zxf4`04*ipY7 z^Zz{fe^U(l@X&!Rpc&nE9bH@ezwb>6kG-{DM*)C<_VRb4>mi7Y;lWl{#Rp5(=%dX} zA7qZ!i9iAeXv4Y9CGI~_cnGHIxnQ{`fYoqW?s%pFztn*)7W?P%au$w%b) zaXKr2F>cKsa8(1j5JaDY8V z?QuRf+AjW4U_rqTU2^6R)krk30wqL)^E}2fe+ZCd;6D;@46&B7rUOTBaNV^FKPiNC zPW`dh=?pX@r6Dm{T z{>?yPyJ9~xIfm}M+b)z(knT}^n}w-F?^P?Bs;9+|xzL{gzlPRjW0msI5BdQfvv3=E z;CCyha*0V=YVLV>9ZLv&h)QL6Q!6&xN7hm*>1tW|+f*KvyhVD{&tSGnOoP+?l>F63 zNydCGhe2bu8f1hxqvP7k^YQu{hE3~^*P*od*MjFP;*X(A%|L}yZ^o83zrH?Q^r%~s zSbmyzy%`PhCE;1oKmVrIS{8e2DcHu7n%wwu$?Ph65US>`I{oEV%FNUQL9yu>fAX^jNcqUU60F(w2uaC*-+lkpUlMLYVn@Poydm7ZmB+*PefloR z?9Ue5yGNAmujX&#V}bM}_ckOAa^ zuxXm7fNxG8{&OAhZF+msy*z}fkRg2;RbIVVW_=$|=u@BC81+V!T{!xMe6O*zna?$1 zmhI(R0>ZQ@p>$=~IziKS$k4B0LR8CIkUq_wu1@#pH120*)Nj%HcMob!KlOU(qMm2Z zTX0B;zHaj~lyl7Kn@#>o%I8-oUfgw9?aql;#Mjq5r%&zaEI;i;nCW26MS2%{Yw9_V z<#E-2EGr@gCKD1B3Q)YsVRS`W5PG(QPv21>K+kFU4Vpn&or9^Cq@Bw0=Ln68lSho) z^E8gwGn}Lh3JGhvgNC6x!Joxu!(zy?m*@WDq46CdKtHCA6?21|819DApS34gFN)mwMoY1;@!oK_36 zq_P?of)L!KZXJb;R8q*u^WOBwQ9} zFQj!x=U}(-dM@P)M5w0!n;|YSL!>B$vnY!7tv=H9pwRm4b3JF$X*f);+=pc{jDEQV z_yvg2nkqF_V;A1PJEcCF0S;rU@si^I!#(_Sx8^uHk}h&&wjV*)NNK9Ks#OuFv&7>S3g3r7`Q7P1Rn-a-}jy z{TDrmO_R^$iTCoOd&>P~mW2U<$}@T8zWEQ%#x)aj`;!xKJG5AG=&UwFa4U2dZQdh6 z^?MCR?_o=9U!~5w#EMRz(=0Ux=vB6=Q~%{SYc%EgTCA9V)TwkoqN8d0`a5%RR;EbE zLOW6ZE09%Yeox#kgz`NH>%!>#tUfA33OD-wo<@LQOu<$kJE8+magSs7dtp2m2Case zoF6DGBO{k68=D=e=kM9ybL#R>JY~!GH~Ka5+JIy)h1ik|X}cfk{h>5FR4rG&xtI^g zTgF5MjBuuiT<%WLAlWw$??2B?q%sIb@GUbgIgwmazx>J9j6+G1_cJf98t|u-)XlzR zH9M5a-K~dCP`XoTW^#g5D|>K)xnCn7Vzmn$u)+*X0g|tKhvVrlrPAw!hfJ-Y_ol-K z`g8n%x#HmWyb^@H|82~((Psw{jGhGCve!NT+do6y;5IOYdS~Fh#fRY=i!IS_=y+ce`97{i&cU0oUw>W z(4L9lbBF5ms5ycKrsZ}L=2{&>ASK|}fam+2lHB zcuV(AJ$SfHT}n4rCsMD@x)xn5qCzjdhlhUniRVsUl}l9o+0)NefG@;dQt&-2awLnb zT{G3@5ZV3ILn&zXo946fvnor6_i1(yjPluW|s`o7~i2rM>1;oSo*gcu{>O*WkLg+45s`3@4mIqpIL>i9qUiSR_ z{x8@eY-{A#y(hpGg=7Mzf<6yJUxi1c^2@J^N#Vsa_TkU+$}(=)TuFnLSkn+49)MtzpIG z?y#DaW{{kjMjH9 zn${bIS)G`DSTLxXSpC3)^o(crV6dTp9#rL?>`q|C6mT_EJhdAj=&3?G@a-SY{~X4Z{!E_ zdj9|3;AyMHsfA4IhmlJL?q4?!uQ80)L0werFTzfx^rYGm6sU1Uj^<}Ox!)mOub0di z$*TSy9}*jpk&g5Z1>|?#M_ z^8X)AjEP5&_l1nlB==Qj-olK;}5`X^7vuX9x20s=s7SYl6HF<={_oKtTj5T5*N{ol%R zMvlT~J+@ek$1>%p!wnPrOZC{E#{MrOWtDCb^Ne`yQ&nH362+gHjz7H|N{k)I&)Hg+ zQysFegH~mAv09EVY8PR_A`0+)TWV<5s)3U3okCkmE$@fwUT2Tqp`H1!vyvu7wonfD z(_llUzb&uZ+-&x9q-Lh29VK2$DPBmXDCoQx&CRP}9)GJ2gD*IGQ-aGAmJ znA-nd(pe0ltS)sF*GoUHW=Du#glTY>rm!wY+5hyyI@7w9?Q0NpFQEHs2t9HMJrN6VHsP=z66>Y(mu&9>xopUd zlBCf=xuwxH+z00tOzY&TH>BaGHwC@5X<%dMED+uFDJ5;$QSG}308WtSpb+)Tf9Yd7V8tVFE^x#(mf{0y3NhxCTE zyk;h$HPKf}$kK;i=29H0uAC@uFV#R<#t(eAWzd|^sfLi;vX^%z1?knDuHr78kH4AA zZ8<+|<^3{u+!B(Gr^U`l-TV>2XlRplFB{Q#p-77oQ%mu4U~mR4(q;uXpy+4n|6 zz{|jsz`1V#RcKyS4-HA}<3Z|-De3MQty%^RKGU8R+8zob-d(u@PONX(=zMNdnEGHG zyfs8@<%7&Q->ugh(vbQk#Tr}Hk$eIpZY54r_DK_ePFnlzX2g;pZqkbG+rw1{Ju90~ zlw@oB%g%;O!_bP;^xD6kH$4gC2G<*mOQxv*ak;9!J*9E{TJBv57fX}Y;>+??U} z`#4?t1)$l<%@}aZQfU3c|{9t zU*U}Q#~uZYujRaX#j7bs_*7e3;sL2ih9(JrC_42?J)alXntb-=fs||t>eQ4k-c%uP zE2B72j#PC(lkke$6#?zZHK6q~QeCXURa{dq@LVy@E=b?j8#i@eZmK`r&j1c&&~f72 z@Ze;_1~JEcQcXfE4-oHl9ArKV^ckZMDWgi6u)9*JT)@H5;?L2%73(ht9ydk5{s`vj zOi`_#`GhM~-E&C#PJtty^vAD%Jml;CvA(2?dD-z^($E_QaNVkCVQu{)W4vM4M1#RH zGUM_>{#=XBR&cSYW8EqgHPDQ6OLA!7waQbXIxj;K>`>wpEEwTw%FjG_ms4s({)VY5 z1unS=B85R#nqOyiXPiI>9T$=O{I(FdtUW$GeU0-v($+R)Cl#553dlGfOn7ei}hKDc-cm z2obQ1>U~$N=!8}}pZH?) zH2cWAvD24i+9%UZ&+5IfdG%Xi=_YSwvz(A2yCz8=quNzQgHHVUE)PipTt*2WaQq;BqL|dgq2&nfK3?I{xhSO?700N9+2arv+;2ant%dY$|S%FKexW~AQdEO+vii$0cBuu&U6rMcd z0$!w-XgyP8s2ivs4)h2t=Yrq^I|9v!d{k`5r$gCVU>7#=A$HaW9l7!&ONT0DT;(zT zwXqxaneD6NwsY%oZARJCHlrzKFD|78KEm(NeTH0ZLzw{~xe&F2ked2W!trL`M(ZH8}$pEc+j&&2L<=akro`_6OM2bzE0+ONmInQ|jB z;XonioIWV|c$aX0N>N$!_r9gML}_Q3A#v4DFZw$jAb^e#P7MqXJVO$OGb?#h?xz4) z_|kYvaq=auz3LWSY%E}yAQ9$Xnn8cFn zYeg_s>f^*kIe063A%Sag9^;kv76tl|73V+54b?9T<5*>u9cBCb_=^risfxE1+jbce zrmSe_m(j&$t{bVkhPwdo2X!Myua;*WflNJhYm3W_^3~yV2g(AJmh+b=?rs}4F~TEc z*BDCL<6;ax?Uz53lh0>A16$X(=7J}yT~5@YO?7kn{YZe^%)xYhyK3SleJ-f=<}Bc; z{3Rtf8Aw=h+j8-T-~qb7L%-L9jRiLgo5$c*{Was38EDfNu-b-pRAC7Bt)fnCRdM|( z_z~_NIaB|B2*nt@*Pt&`j)?A4l<6ew7z$3B~iVP8VUDPZI8X8Rt1BZGa%`da+!b*S3x#?@CAc^nU$NZGf} zikj8$_}bH+$nfOGbn1}+Sy4`~%`^*M);bl2GjgY6*=D(h5lViR$u3X*kkYaCT(6*k zdn1!IbYaYBPg+r(bnZi&d8{L5Z*0yB@|qdSwA@zcW8&T=^zAO#hGIpG^R)^?PK|rB zF!6#PH-!i8ku4P7QH#yr7B_k0+OjI{_f_tXQX*6Y5_5KpZY4;5VUY#&Yh*OsUcol$ z4<}jLO1fRN@15QedevCFr!(;JFUhnG{Qv&t5S}8Uq{la|GuUx-Az?w`?5mYn-{n$b zz4p1}VybmS_y8AYFf(ek%Eji}<|iGNiDVJT-c>C(T#g;*Qg9i&(Ma?r?d+~cbO=?z zg~qe@*xf8KM3A6f+$_1=9~9(!TYlCq<}Ma`&fcPRk|*4m?Ges4u2ux(G}j0})jSjV z2@aY_{Am0m(i`J9qM3h>CS4CeVHRC!otp6ZSA08XsC08U2Dd&4 z)RerBP^`&G*R&CFLuZ!?UF=p;1!j@=HMczueNsy02G%w7WM!r}Q^|g<>wpN4*yJK*MKV=6JM|ELmr?Chic&~AO3wph!qv@qvpviN6 zL>zHt4xkW*TdV+s%w9sErr5+5PdOxk{98|yuZ{qyu|XrryeztL!MS0~nJ>F2Tk`pW zy|A5f@5nnurWQq%d+~iW3uqk9-)sBbm6rv52~!p&zF#_j8En4G8v;{`!6vkkMzNu6 zj{|?thuwYL?B!ey(=)8P?I}EqJy=vZVnOjdSCbOSY^c10f|px}**8n{?Z1lUa{>|A zv6a(~NzI1t@#$(bZKh}drTo>1SFKq2=86f3f-OdbcO7@_EaF?$V)nkg`udPYT z(c}Hx!omENmm9#JIhBN%@GiB7OQFm;_(?oQ~F|TU-^~M?>_! zO+pCz+bbw2JK^rlB1W0PU9@f=uy+mu8|l@gLs!1I8zhMQnhz00ge>N#)IUYUiqL7> z%{laKV1^6Q_Sl2Ys&Xn(X@qUfw$OQ5v_TR3l8EBB=?4jS1J6MKYdsjL7e()9R<;q) zeF5@DKQgu~8FFnr)8kNbx49(7cCSxtuU2A)llVa|id7!nTR~QIY6_@mr0Cmh#CT83 zm|lrF3X}Dg@+rFrGrKzcM#-7A2aDelJ_Vn@w2Ko!VHbfD1IQwVm=5ykuAWm_DH+17 z-SF^i40*Lu%^gFMUr%dA>(#Bzz61w7ukP}RVi-T9WYk}>Iaq!;PYbySI~g=;*03`A zrRHoWX+!xj!$mCb>KV=5*c7jv6#$jhBHVmQ_zR%Ab@4!9Z^E=azW!G5yQwB0Y+3Xj zJEe}7a%!>e5-*S6uwOl5uf;^J)64w)R`}jvev_F`Zhpimc8Uc;D(YBYfsLdw$n4Y7 zjJ+L&sTMU0zIrHM0y%cIEt7C4bezxV>&dF=46qXl3|?3HWce8%rZj zQNnqbGtv~U2hP(g^+;zaL_e3=zYcAX&XK>#Q%@|3u2#6lGNUy(t;v%xR!Dko&2w0IksLK!IUx8p(D^Btx$@T`sHwa`BvsD{>7 zPYDgfdJi?cA!sE!c0*t5L-aElXS!~D`3w8tcJ}mRG&J^Bqd}hY?H8&_3MN$!rHKUY zIKF5I?Wx|+)Dhely}d7D)4nL+qgboYb5Sf?v}fGF^0Uy?=*&XiZbfeee_ICRHOKG- zt$KtXppxVQxHxzR6=46l@6)1RfZS&uJW#C=LVULBo#)tzCWTv4bk9;Kbi zVErpteWP#Pr$79IKG>taRk7KG#5!DkuoFBPQZMI^sC9^^Ha!e>!mh>v6Rsax+W^Av z*G-P%7=gs|Z;RLC$L=^)t7h(DKfV^3LST!lPx~ZriA|IG?0v5gPdHEzyJhnB?IS17 zmY~H$9KhUYF z4lJDLEd)tEU-eJ7SX`n&LO@}c-CbYyE%nAsR>11`>YS#0{?D}W#%y`>Ya`_mpKWAZ zN)g;boRxC6#=sU4G1hE*Ze5JI7=;O4Q1q7ir+21J3-uCJsa7zllz~1aCTuIVD1K1) z;T=*psdl0CIYlxgM=L947!3u(0Rm+6>xaPtKr%^Oev?ov*D_%b=-|AAhIe2=({MaI*8wfZ@f2c)M}(5yUTW?- zC>*|(^=dK`3-tl{Ac23+4ma#+^~@LLwNUrJBsQ)3M0N*ec|EF591)6UB^ZpgE%kj0 zMSoIP69*I24Tu+n!FeuCNg(~*x=-ioKYl1{>$CGB1Omf5iteqmVH)Y&?oBKrpxni& zGk@dUU?&;GTnf4?2JxHi*ZO%r=&Ns!?k+M_yCu)kYlsd0WFN^-s0*VQWBRr=ppS$bDkwa9Vx5hxlTH?mCj<) z&e+jBDA4Z>Fq=-UG7jHQF_{tf03Lx{LqQT?4AJ2GQZ@UckMF#;uO{QY@2fL);fu5J zABT?YjSAiyrQaqGPWjwzf!!9Xlq(1tZQi z!~v*#mK&{QBI$sadfj78r)joFt;Iwu`>}VB@3RuB5RH$!Euw^%DSF)RDF1?8hY}nB z9hj@i0OEXMH}pS5A`o7^uX56H%3S%*+&gZTK+~n9%`rvkUuNtL6MFB~qmv>Aw|FSv06BMweso;viyBlC1Cj9~Sqwnv`_K&Z90B)NIG#FwwbT}SH zOnktNXY95qP+ox2$KB?xf$tN7FBzub6}U)J*!-K$0u(j68Cy|ciDor)KGd8Y{JC%~tA`D2UhJ4%nTx7t8~f;l`1oP(9&ktVi=!>G5!QYUS&^d^2&Uz&^II|LPN zo?hdM5wR@dX`d%a)VO;t=ervAue7)*J;5<(C-C&6rpqtJM9tFU#nQqUE3(BRc>6Lw!ORFA8Fa?jxJ+MDdDhhF@QCKsO#;Dra870+Eke4(j)w4 z4IpM9cX6_#=;RXgv7HpGpgMW(MoaummB4JXN!Q{XHF#t;=Rs}XPh7n|>n`zx&dgau z>~bQPc^_4;wxqrI19Y+TrhSpBG$f9F9i<<=E2)&NRqTSS-mARa5i?MFfJ0@j|LwK5 zjg%-Zgx!lyO^^!29#s;L%7h~jJbO=y)+3B5dPngr7&!oS>H>7|ewXq*{0x%aja^MG zkAY$?quY~9ZQi7L`kx=?8yk4*pv7mbzzUctxiz1E-qXEopfxkPWxA%J>PlU0;A-l2 ztZCd$z|Q;&KKil)EZ{y*+k*W%aHTmyIm?pXs2V+gQnwrzP)+^Eg=hxL2e8KE|BBlm z+)B^wkFj)2Et}Utgl}TkS|5)C^e2_yybK7Cw*BKiKvNq^-pX&^4#y-^HXE* z3eXYL$xb{eYJxAwhLOfvrDuFQU0k1!%9|Q5fW0CXf0ZfnqQ{y$r!roRyYa1920*jX z#zze`SZ}PSxUM|M-!|#Rej-->iHJb~>dcPHsAuA?PB1#GG3MJ0`{lmTktB#g6fPjK z3_Q)hX8*-v3|N{MoAJi{#oAjZh&LPyI3vp;EB{o*?8S|2Hq?^U7JpzVOQB` zw7};eDvS(r>+Y7}NmF7q2G=9HWvs6Gl5+{{khn`RX~pvquHy-TX1G@*QcW+T%(u;6 z_Jq4opy7$n7x!c@ryg;oBK&K$i37Kvlo*1j|Nn*mC;uP4xXAR+KKpz2iDO64{I7Sy zczfd&xBG7DcN3lQdY9kt^>UyxD?JT^FO)v9j~1V-^=%z-{P3%rNx|tZB*E5r;Rvj3 zKX0_8aV6jvmZGvZjvdH#D@zCmv3D1m&v;^3E4Id>vC&jDhN<9Y2tstgY6~bid(Ph( ziFf-a9*5|-x%FcD0Y)5u^oeXicA>-@WAGr@`nmcTwB=NV|AFzY&UYfJm8y{MV13_hBtuGw`(l*9e1`3hi^7Mc^hYks&AEmGcLn#3sxl!f zAbjPSy_`NIVWBlE6PMztn%^0OD_b?EHdR&Cld69b)Jp;$58 zQZpXWZ=d9bSvAnffwHQXH0QhAVKdB>tTK7X2Aje+a}AcW8<=9y~6U*+8ir>WQ+6w zo$1>so&iQhj!u8?^V{<8QC(_Y%6EH|?P3dcFej_=Og;OdNrOV(D0>~7re#$Otjdvd zv7;r~=={3TGMcLrn0bR{i{5DRtjAM7&x{d&t?BrzI(4U8txZ~~#aR<_KvM|)Ue#I9 zmh#z?b{19<&3hKkq6X%JcRMSZ_i`|}z-^Y5>7MPtG!8H38rqJYanTf|2!Ip(ay){k zHYtbF&CJglGFICpOO&LHZNAs(TUmEQ8#0DO54IV`#&&L6vKQ%DjGqpNm`rR9VhAVdp-GfPa*xdahO1Eo+ zZEW^B>8be))Ju`oVkD^9#5tO)eVJZ?THs=gKDE+aImL((U#b1HYLXw+sjAmtJx_qVFu|l! zt;Bi1e=t67^$o!6YMG1qT)0(~?9v~nW0kT!TL>TM8M*9mzvK~y4rwStAP8+`N6%tB zQJq=ZV{x}Qj!N^mk*!Vla_%h@s~x)!P?|&l$hVl!XGKbF%p#OocDtB;l?fj&x~>CN zv=(D4223>Gmt_@xh)?T1(zP4Y*Opt=n4{)d-hhZ8G;*Q7_Ze%uwHQbQFmpe3q$+f| z!{B{v>=uCu-{&w=pdW)!QM@`J)#JFN`rb3)yN+McZwbhfJMfr*-Rw zfTlH;Q$G1|h`cfLaVUJ>k|bl*rUDtiB+&$YJ!B;fObwr(hM%R`3X`H8TR$glTr?xI z+gA@rJ61&<2De;N$xPBoN_lPP&o<0oEp~;>Hv66O&BCP;3Dft`f>M>YuuWbM@;g|D zpZ3JWj`KU=7xo0>gZRBj(LiS!=q$=-lSyR zfD3|(oAN|1R8e27LS4Ps2XqU~tPJYecKqGNbef0kl2)QQ(7zYGDK!@up9=}`h0?+m zEwt}=D|u0Q*j4Wi{1;8*@G%Pe(7MRrd~xdNIR7XE1~7UP6PnxQnt^bQcmXD=ncNof zn>z);RDP+JoF#>H5qGO*H(nSnJJZ$b2bLOV%(Z_kL2rbyyXT`e1o~wdy#7RQfo4d2 zz}^M$N0hRYes?upJ2uCGI-nGbM$y?(Pf}uEluw;uLUh# z=~k~{UDyNYnKbF306WqDyRZJH00ENhD38lJH@ZU;Ch9B-{;US>e-Qgj!&_H7yx=&B zWvTkLcZ;#8vZ-dfh4`?~V7?9`G@yg%TT8cT(vs%SuN^9keuIna)xx3|n+xko5h7P4 zp8c)+VEEohtu7%uXKOl7k-N2|azA6C4eF>ftNrSS#fM9O#(oe{U4@hz?_8-2#D4V| P@N?q0>oNKd7q0&|M%aTp literal 0 HcmV?d00001 diff --git a/images/image_optimize_2.png b/images/image_optimize_2.png new file mode 100644 index 0000000000000000000000000000000000000000..799fd4ef75719447584f1c45a72d6cb766e44433 GIT binary patch literal 495835 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 z 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⪙hlXq& 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