From 6db1dd9d716a50264632c10506e598d7c6c2b466 Mon Sep 17 00:00:00 2001 From: Robert French Date: Sun, 12 Apr 2026 13:14:07 -0700 Subject: [PATCH 01/17] Repo reorg --- .coveragerc | 5 - .cursor/rules/bug_report.mdc | 79 +++ .cursor/rules/dependency_management.mdc | 53 ++ .cursor/rules/documentation.mdc | 38 ++ .cursor/rules/environment_best_practices.mdc | 40 ++ .cursor/rules/git_workflow.mdc | 66 ++ .cursor/rules/how_to.mdc | 74 ++ .cursor/rules/pull_request.mdc | 37 + .cursor/rules/python_best_practices.mdc | 144 ++++ .cursor/rules/security.mdc | 48 ++ .cursor/settings.json | 9 + .cursor/skills/critique-test-suite/SKILL.md | 287 ++++++++ .../skills/python-codebase-analysis/SKILL.md | 189 ++++++ .../python-codebase-analysis/reference.md | 81 +++ .cursor/skills/run-all-checks/SKILL.md | 157 +++++ .github/ISSUE_TEMPLATE/bug_report.md | 43 ++ .github/ISSUE_TEMPLATE/config.yml | 1 + .github/ISSUE_TEMPLATE/feature_request.md | 26 + .github/ISSUE_TEMPLATE/other.md | 24 + .github/pull_request_template.md | 50 ++ .github/workflows/publish_to_pypi.yml | 16 +- .github/workflows/publish_to_test_pypi.yml | 16 +- .github/workflows/run-tests.yml | 54 +- .gitignore | 27 +- .readthedocs.yaml | 11 +- .vscode/settings.json | 9 + CONTRIBUTING.md | 176 +++-- README.md | 6 + codecov.yml | 10 + docs/code_of_conduct.md | 6 + docs/conf.py | 99 ++- docs/contributing.rst | 13 + docs/index.rst | 14 +- docs/make.bat | 70 +- docs/module.rst | 2 +- pyproject.toml | 131 +++- requirements.txt | 17 +- scripts/run-all-checks.sh | 642 ++++++++++++++++++ {psfmodel => src/psfmodel}/__init__.py | 2 +- {psfmodel => src/psfmodel}/gaussian.py | 71 +- {psfmodel => src/psfmodel}/hst.py | 5 +- {psfmodel => src/psfmodel}/psf.py | 25 +- {psfmodel => src/psfmodel}/py.typed | 0 43 files changed, 2618 insertions(+), 255 deletions(-) delete mode 100644 .coveragerc create mode 100644 .cursor/rules/bug_report.mdc create mode 100644 .cursor/rules/dependency_management.mdc create mode 100644 .cursor/rules/documentation.mdc create mode 100644 .cursor/rules/environment_best_practices.mdc create mode 100644 .cursor/rules/git_workflow.mdc create mode 100644 .cursor/rules/how_to.mdc create mode 100644 .cursor/rules/pull_request.mdc create mode 100644 .cursor/rules/python_best_practices.mdc create mode 100644 .cursor/rules/security.mdc create mode 100644 .cursor/settings.json create mode 100644 .cursor/skills/critique-test-suite/SKILL.md create mode 100644 .cursor/skills/python-codebase-analysis/SKILL.md create mode 100644 .cursor/skills/python-codebase-analysis/reference.md create mode 100644 .cursor/skills/run-all-checks/SKILL.md create mode 100644 .github/ISSUE_TEMPLATE/bug_report.md create mode 100644 .github/ISSUE_TEMPLATE/config.yml create mode 100644 .github/ISSUE_TEMPLATE/feature_request.md create mode 100644 .github/ISSUE_TEMPLATE/other.md create mode 100644 .github/pull_request_template.md create mode 100644 .vscode/settings.json create mode 100644 codecov.yml create mode 100644 docs/code_of_conduct.md create mode 100644 docs/contributing.rst create mode 100755 scripts/run-all-checks.sh rename {psfmodel => src/psfmodel}/__init__.py (100%) rename {psfmodel => src/psfmodel}/gaussian.py (92%) rename {psfmodel => src/psfmodel}/hst.py (99%) rename {psfmodel => src/psfmodel}/psf.py (98%) rename {psfmodel => src/psfmodel}/py.typed (100%) diff --git a/.coveragerc b/.coveragerc deleted file mode 100644 index 65cf15f..0000000 --- a/.coveragerc +++ /dev/null @@ -1,5 +0,0 @@ -[run] -branch = true -omit = - tests/* - _version.py diff --git a/.cursor/rules/bug_report.mdc b/.cursor/rules/bug_report.mdc new file mode 100644 index 0000000..a980ac1 --- /dev/null +++ b/.cursor/rules/bug_report.mdc @@ -0,0 +1,79 @@ +--- +description: Standards for writing clear, reproducible bug reports with severity, evidence, and environment details. +alwaysApply: false +--- + +# Bug Report Standards + +## 1. Core Components + +Every bug report MUST include: + +- **Clear title** — Describes the symptom and its location (e.g., "`Profile.from_file` raises KeyError on valid FITS header"). +- **Reproduction steps** — Numbered, minimal steps (ideally a short script) anyone can follow. +- **Expected vs. actual behavior** — Side-by-side comparison. +- **Environment** — Python version, OS, package version, relevant dependency versions. +- **Severity** — Assessed per the scale below. +- **Evidence** — Tracebacks, log output, or screenshots of incorrect results. + +## 2. Severity Scale + +| Level | Criteria | +|-------|----------| +| **Critical** | Crash, data corruption, silent wrong results, or security vulnerability. | +| **High** | Major feature broken or blocking for many users. | +| **Medium** | Non-critical feature broken or produces degraded results. | +| **Low** | Minor issue, documentation error, or cosmetic problem. | +| **Trivial** | Very minor issue with negligible user impact. | + +## 3. Report Template + +```markdown +# Bug Report: [Concise title] + +## Description +[1-2 sentences: what is broken and its impact.] + +## Environment +- **Python version**: [e.g., 3.12.4] +- **OS**: [e.g., Ubuntu 24.04, macOS 14.5, Windows 11] +- **Package version**: [e.g., rms-psfmodel 0.3.1] +- **Key dependency versions**: [e.g., numpy 2.2.1, scipy 1.14.0] +- **Installation method**: [e.g., pip install rms-psfmodel, editable install] + +## Severity +[Level] — [Brief justification] + +## Steps to Reproduce +1. Install: `pip install rms-psfmodel==0.3.1` +2. Run: + (Example) +3. Observe the error. + +## Expected Behavior +[What should happen.] + +## Actual Behavior +[What actually happens, including the full traceback.] + +## Traceback / Logs +[Paste full traceback or relevant log output here] + +## Additional Notes +[Workarounds, frequency, related issues.] + +## Possible Fix +[Optional: suspected root cause or fix direction.] +``` + +## 4. Writing Guidelines + +1. Be objective and factual — no blame or subjective language. +2. One issue per report. +3. Include exact version numbers and full tracebacks. +4. Keep reproduction steps as short as possible while remaining unambiguous. +5. Verify the bug is reproducible before submitting. + +## 5. Adaptation + +Adjust the template for the project's GitHub Issues and add project-specific fields (e.g., affected data set, mission, instrument). diff --git a/.cursor/rules/dependency_management.mdc b/.cursor/rules/dependency_management.mdc new file mode 100644 index 0000000..3b207f4 --- /dev/null +++ b/.cursor/rules/dependency_management.mdc @@ -0,0 +1,53 @@ +--- +alwaysApply: true +description: Standards for declaring, installing, and maintaining Python project dependencies. +--- + +# Dependency Management + +## 1. Single Source of Truth + +- Declare ALL dependencies in **`pyproject.toml`** under `[project]` (PEP 621). +- Do NOT maintain a separate hand-written `requirements.txt` for runtime dependencies. If a `requirements.txt` is kept, it should contain only `-e .` for backward compatibility. + +## 2. Dependency Groups + +| Group | Section | Install command | Purpose | +|-------|---------|-----------------|---------| +| **Runtime** | `[project].dependencies` | `pip install .` | Required for the package to function. | +| **Dev** | `[project.optional-dependencies].dev` | `pip install -e ".[dev]"` | Testing, linting, type-checking, coverage. | +| **Docs** | `[project.optional-dependencies].docs` | `pip install -e ".[docs]"` | Sphinx and documentation extensions. | + +## 3. Version Constraints + +- Specify **minimum** compatible versions for direct dependencies (e.g., `numpy>=2.2.0`). +- Do NOT pin exact versions (`==`) in library projects; exact pinning belongs in lock files or application deployments. +- For dev/docs dependencies, specify minimum versions to ensure consistent tool behavior across contributors. + +## 4. Adding or Updating Dependencies + +1. Add the dependency to the correct section in `pyproject.toml`. +2. Run `pip install -e ".[dev]"` (or the relevant group) to verify installation. +3. Run the full test suite and type-check to confirm compatibility. +4. Commit the `pyproject.toml` change with a `build:` commit type. + +## 5. Security and Maintenance + +- Run `pip audit` in CI to catch known vulnerabilities. +- Enable automated dependency update tooling (Dependabot, Renovate). +- Review update PRs for breaking changes before merging. +- Periodically remove unused dependencies to reduce attack surface. + +## 6. Tooling Configuration + +Consolidate all tool configuration into `pyproject.toml` where supported: + +| Tool | Section | +|------|---------| +| pytest | `[tool.pytest.ini_options]` | +| coverage | `[tool.coverage.run]`, `[tool.coverage.report]` | +| mypy | `[tool.mypy]`, `[[tool.mypy.overrides]]` | +| ruff | `[tool.ruff]`, `[tool.ruff.lint]` — use explicit `select = [...]` for E, F, W, I, UP, B, SIM, C4, A, N, PT, RUF (see python_best_practices) | +| setuptools_scm | `[tool.setuptools_scm]` | + +Do NOT create separate config files (`.coveragerc`, `.mypy.ini`, `.flake8`, `setup.cfg`) when the tool supports `pyproject.toml`. diff --git a/.cursor/rules/documentation.mdc b/.cursor/rules/documentation.mdc new file mode 100644 index 0000000..53a0a9a --- /dev/null +++ b/.cursor/rules/documentation.mdc @@ -0,0 +1,38 @@ +--- +alwaysApply: true +description: Standards for Python library documentation using Sphinx, ReadTheDocs, and docstrings. +--- + +# Documentation Standards + +## 1. Documentation System + +- Use **Sphinx** for all project documentation, hosted on **ReadTheDocs**. +- After any code or doc change, run `sphinx-build` on the full documentation tree and fix all warnings and errors before delivering. + +## 2. Documentation Standard + +- NEVER use unicode characters such as smart quotes, em-dashes, or arrows in source code files (such as .py) in docstrings or comments. They are acceptable in .rst and .md files. They are also acceptable in source code strings when needed to present special characters to the user such as degree signs or arrows at runtime. + +## 3. Required Documentation + +| Document | Contents | Keep up-to-date? | +|----------|----------|-------------------| +| **Module index** | Every module that exists or is planned (placeholders for future modules). | Yes | +| **Architecture overview** | Class hierarchy, public API surface, and interface contracts. | Yes | +| **Install guide** | `pip install` instructions, supported Python versions, optional dependencies. | Yes | +| **Usage examples** | Common workflows with code snippets and expected output. | Yes | +| **README** | Project summary, PyPI/ReadTheDocs badges, quickstart, and links to full docs. | Yes | + +## 4. Docstrings + +- EVERY class, method, function, and module MUST have a descriptive docstring. +- Follow **PEP 257** using **Google style** with `Parameters:` (not `Args:`). +- Include `Returns:` and `Raises:` only if there are return values or exceptions raised. +- Include behavioral notes sufficient to write a black-box test but do not reference the internal details of the code. +- Wrap docstring text to **90** characters. + +## 5. Change Discipline + +- Any code change MUST update the relevant docstrings and the README if affected. +- NEVER leave stale or contradictory documentation. If a feature is removed, remove its docs. diff --git a/.cursor/rules/environment_best_practices.mdc b/.cursor/rules/environment_best_practices.mdc new file mode 100644 index 0000000..490d8ac --- /dev/null +++ b/.cursor/rules/environment_best_practices.mdc @@ -0,0 +1,40 @@ +--- +description: Git, CI/CD (GitHub Actions), virtual environments, and tooling for development and publishing. +alwaysApply: true +--- + +# Environment Best Practices + +## 1. Source Control + +- ALWAYS use **git** for all source code. +- Commit early and often with meaningful messages (see `git_workflow.mdc`). + +## 2. CI/CD + +- ALWAYS use **GitHub Actions** for continuous integration and publishing. +- Every PR MUST pass lint (`ruff`), type-check (`mypy`), test (`pytest`), Markdown lint (`PyMarkdown`), and documentation build (`sphinx-build`) jobs before merge. +- Pin action versions to a major tag (e.g., `actions/checkout@v6`) to balance stability and security updates. +- Publishing to PyPI is triggered by creating a GitHub Release from a version tag on `main`. + +## 3. Environment Isolation + +- ALWAYS use `python -m venv` (or `virtualenv`) to create an isolated virtual environment. Activate it before any `pip install`. +- NEVER install project dependencies into the system Python. +- Record the supported Python version range in `pyproject.toml` via `requires-python` (e.g., `>=3.10`). +- Test across all supported Python versions in CI using a matrix strategy. + +## 4. Editor Settings (VSCode / Cursor) + +The repository includes `.vscode/settings.json` so all contributors get consistent formatting: + +- **Indent**: 4 spaces (no tabs). +- **Trailing whitespace**: Trimmed on save. +- **Final newline**: Exactly one newline at end of file; excess trailing blank lines removed on save. +- **Line length**: Rulers at 80, 90, and 100 characters (max 100 enforced by Ruff). + +## 5. Secrets and Configuration + +- NEVER commit secrets, tokens, or credentials. Use environment variables or GitHub Secrets. +- Use `.env` files for local development only; ensure `.env` is in `.gitignore`. +- Validate required environment variables at startup with clear error messages. diff --git a/.cursor/rules/git_workflow.mdc b/.cursor/rules/git_workflow.mdc new file mode 100644 index 0000000..8b0ec49 --- /dev/null +++ b/.cursor/rules/git_workflow.mdc @@ -0,0 +1,66 @@ +--- +description: Conventional commits, branching, and PR workflow for source control and code review. +alwaysApply: false +--- + +# Git Workflow + +## 1. Commit Messages + +Use the **Conventional Commits** format: + +``` +[()]: (50 chars max for subject) + +[Optional body — wrap at 72 chars. Explain *what* and *why*, not *how*.] + +[Optional footer — e.g., Closes #123, BREAKING CHANGE: description] +``` + +### Allowed types + +| Type | When to use | +|------|-------------| +| `feat` | New user-facing feature or public API addition. | +| `fix` | Bug fix. | +| `docs` | Documentation-only change. | +| `style` | Formatting, whitespace — no logic change. | +| `refactor` | Code restructure with no behavior change. | +| `perf` | Performance improvement. | +| `test` | Adding or updating tests only. | +| `build` | Build system or dependency change. | +| `ci` | CI/CD configuration change. | +| `chore` | Maintenance tasks that don't fit above. | + +### Rules + +- Subject line MUST be imperative mood ("Add X", not "Added X" or "Adds X"). +- Subject line MUST NOT exceed 50 characters. +- Do NOT end the subject line with a period. +- Separate subject from body with a blank line. +- Body lines MUST NOT exceed 72 characters. +- Reference related issues in the footer. +- Each commit MUST represent one logical change. Do NOT mix unrelated changes. + +## 2. Branching Strategy + +This project uses a simple two-tier branching model: + +- **`main`** — Always releasable. Protected; requires PR review and passing CI. Releases are created by tagging commits on `main`. +- **`feature/`** — New features or enhancements, branched from `main`. +- **`bugfix/`** — Bug fixes, branched from `main`. + +There are NO separate release, hotfix, or develop branches. All work merges back to `main` via pull request. + +## 3. Pull Requests and Merging + +- ALWAYS create a PR for merging into `main`; direct pushes are prohibited. +- PRs MUST pass all CI checks (lint, type-check, tests) before merge. +- Prefer **squash merge** to keep `main` history linear and readable. +- Delete the source branch after merge. + +## 4. Tagging and Releases + +- Tag releases on `main` with semantic versioning: `v..`. +- Let `setuptools_scm` derive the package version from tags automatically. +- Creating a GitHub Release from the tag triggers the PyPI publish workflow. diff --git a/.cursor/rules/how_to.mdc b/.cursor/rules/how_to.mdc new file mode 100644 index 0000000..61b4b77 --- /dev/null +++ b/.cursor/rules/how_to.mdc @@ -0,0 +1,74 @@ +--- +description: Guidelines for writing user-facing how-to documentation with steps, prerequisites, and troubleshooting. +alwaysApply: false +--- + +# How-To Documentation + +## 1. Audience and Tone + +- Write for **Python users** who are familiar with `pip` and the command line but may not know the library's internals. +- Use clear, direct language; define domain-specific terms on first use. +- Focus on what the user needs to do and what they should observe. + +## 2. Best Practices + +1. **Action-oriented title** — e.g., "How To Process a Cassini Image", not "Image Processing Overview". +2. **Brief introduction** — 1-3 sentences explaining purpose and value. +3. **Prerequisites** — Python version, package installation, required data or environment variables. +4. **Numbered steps** — One action per step in logical order. Include code snippets for API usage or CLI commands. +5. **Expected results** — State what the user should see after each significant step AND in a summary section at the end. Keep both consistent. +6. **Troubleshooting** — Common failures (import errors, missing data, version mismatches) and their fixes. +7. **Related features** — Mention next steps or related guides. + +## 3. Document Structure + +```markdown +# How To [Action] + +[1-3 sentence introduction explaining purpose and value.] + +## Prerequisites + +- Python >= 3.10 +- `pip install rms-` +- [Any required data, environment variables, or configuration] + +## Steps + +1. Import the module: + ```python + from package import SomeClass + ``` +2. [Action]. You should see [result]. +3. [Action]. + +## Expected Results + +[Summary of the successful end state — expected output, files created, etc.] + +## Troubleshooting + +- **[Problem]**: [Solution]. + +## Additional Information + +[Tips, performance notes, or links to related guides.] +``` + +## 4. Converting Technical Content + +When turning docstrings, test scripts, or internal notes into How-To guides: + +1. Identify the user-facing feature or workflow. +2. Determine the target audience (library user, CLI user, contributor). +3. Extract user actions from technical steps. +4. Translate internal terminology to user-friendly language. +5. Add code examples, expected output, and troubleshooting. + +## 5. Diagrams and Figures + +- **When to use**: Multi-step workflows, data pipelines, or architecture that is clearer as a visual. +- **Placement**: Inline, immediately after the relevant step or section. +- **Format**: Prefer Mermaid diagrams (e.g., rendered by Sphinx via `sphinxcontrib-mermaid`) for process flows. Use PNG/SVG for screenshots or data visualizations. +- **Naming**: Descriptive filenames (e.g., `backplane-pipeline.svg`). Include alt text for accessibility. diff --git a/.cursor/rules/pull_request.mdc b/.cursor/rules/pull_request.mdc new file mode 100644 index 0000000..66352f9 --- /dev/null +++ b/.cursor/rules/pull_request.mdc @@ -0,0 +1,37 @@ +--- +description: PR structure, purpose, implementation details, testing evidence, and review checklist. +alwaysApply: false +--- + +# Pull Request Standards + +## Scope of review + +Treat the PR as a **single unit of change**. The diff to review is the set of all commits on the current branch back to its **immediate root** (the merge-base with the target branch). Consider the net result of those commits together; do **not** comment on differences that exist only between commits within the PR (e.g. "you fixed X in a later commit" or "commit 2 undid part of commit 1"). Review the final state of the branch against the base. + +## Principles + +1. **Descriptive title** — Summarize the change in an imperative sentence (e.g., "Add caching to profile lookup"). +2. **Purpose first** — Explain *why* the change is needed before *how* it was done. +3. **Scope** — One logical change per PR. Split unrelated changes into separate PRs. +4. **Testing evidence** — Document automated and manual testing performed. +5. **Impact assessment** — Note potential effects on the public API, performance, or dependent packages (Potential Impacts section). +6. **Linked issues** — Reference related GitHub issues using `Closes #NNN` syntax. + +## Template + +The PR template is in `.github/pull_request_template.md` and is applied automatically when a new PR is opened. Fill out every section: + +- **Purpose** — Why the change is needed; link issue with `Closes #NNN`. +- **Changes / Implementation Details** — What changed and how it was implemented; technical approaches chosen and non-obvious design decisions. +- **Type of Change** — Check all that apply (bug fix, feature, breaking, refactor, docs, tests, CI/build). +- **Testing** — Check boxes for unit tests, integration tests, E2E tests run; describe new tests added and manual verification performed. +- **Potential Impacts** — Public API, backward compatibility, performance, downstream; write "None" if straightforward. +- **Checklist** — Style, mypy, docs, CHANGES.md, no debug code, no secrets/credentials, no warnings/errors, performance impact assessed, breaking changes flagged. +- **Notes** — Optional; delete only if not needed (tricky areas, follow-up work). + +## Guidance + +- **Library-specific** — Call out public API changes, deprecations, and migration notes in Potential Impacts. +- **Required reviewers** — Tag maintainers for changes to core modules. +- **Brevity vs. completeness** — Short enough that authors fill everything out; detailed enough for a reviewer with no other context. diff --git a/.cursor/rules/python_best_practices.mdc b/.cursor/rules/python_best_practices.mdc new file mode 100644 index 0000000..6faaa0c --- /dev/null +++ b/.cursor/rules/python_best_practices.mdc @@ -0,0 +1,144 @@ +--- +alwaysApply: true +description: Python coding standards for writing correct, readable, maintainable, and well-tested library code. +--- + +# Python Best Practices + +Apply these rules to ALL new and modified Python code. This project is a Python library published on PyPI and documented on ReadTheDocs. **Minimum Python version: 3.10.** + +## 1. Naming and Style + +- **Maximum line length**: 100 characters. Enforce via Ruff; use editor rulers at 80 and 90 as visual guides. +- **Functions and local variables**: Use `lowercase_with_underscores`. +- **Class names**: Use `TitleCase`. +- **Module-level constants (global variables)**: Use `ALL_CAPS_WITH_UNDERSCORES`. +- **Private names**: Prepend a single underscore for names that are not part of the public API: private attributes (e.g. `_cache`), module-private global variables, and non-public helper functions (e.g. `_parse_header`). Public API names have no leading underscore. +- **Built-in names**: Do NOT use variable or function names that shadow Python built-ins (e.g. `float`, `filter`, `id`, `list`, `type`). If you must use such a name, append a single underscore (e.g. `filter_`, `type_`). +- **Falsy checks**: Be explicit about what you are testing. Do NOT rely on truthiness when the intent could be ambiguous. Prefer: + - `if x is None:` for None checks (not `if not x:` when 0 or [] could occur). + - `if len(seq) == 0:` when you explicitly mean "empty sequence" and other falsy values (0, None) are not possible. + - For dicts: `if key in d:` then use `d[key]`; avoid `d.get(key)` when you need to distinguish "missing" from "present with a falsy value" unless that is the intent. +- **Explicit checks over exceptions**: Prefer explicit membership or presence checks over catching exceptions for control flow. Example: use `if "a" in b: x = b["a"]` (or a clear `get` with a sentinel) rather than `try: x = b["a"]` / `except KeyError: ...` for normal flow. Use exceptions for genuinely exceptional conditions. + +## 2. General Coding + +- NEVER include backwards-compatibility code unless explicitly requested. +- ALWAYS keep modules under 1000 lines. Split larger modules into a package with multiple files. +- ALWAYS write simple, clear code; avoid unnecessary complexity. +- NEVER hardcode magic constants. Define them as module-level constants, in a config module, or via environment variables. +- ALWAYS catch exceptions at the smallest granularity possible. Do NOT wrap large blocks in a single `try`/`except`. +- **Libraries:** Let exceptions propagate unless you are adding context, converting to a library-specific exception, or the exception represents a recoverable internal state. When re-raising, use `raise ... from` to preserve the full traceback for debugging. +- **Applications:** Do not allow uncaught exceptions to reach the top level; use a top-level handler (e.g. in the main loop or HTTP framework) so that failures are logged and the process stays predictable. In both cases, ALWAYS provide full exception information for debugging (e.g. traceback, `raise ... from` when re-raising). +- ALWAYS include meaningful, structured logging (use the `logging` module) that can be disabled or redirected. NEVER use bare `print()` for diagnostic output in library code. +- Avoid mutable global variables. If unavoidable, document purpose and limit scope. Prefer module-level constants (ALL_CAPS) or dependency injection. +- ALWAYS prefer comprehensions (list, dict, set, generator) over manual loops when the result is a new collection and the expression remains readable. +- ALWAYS make the minimal changes necessary. NEVER modify code outside the scope of the current task. +- ALWAYS apply DRY. NEVER duplicate code. Place reusable logic in a utility module. Search existing utilities before writing new functions. Parameterize utility functions to increase generality. +- ALWAYS place imports at the top of the file in three alphabetically-sorted groups separated by a blank line: (1) standard library, (2) third-party, (3) local project. When adding new code or tests, add new imports to the appropriate group at the top; do not place them adjacent to the new code. Inline imports are permitted only to avoid heavy optional dependencies (e.g., GUI libraries). +- Limit new functions to at most three positional parameters. Additional parameters MUST be keyword-only (after `*`). Choose a logical grouping of 0-3 positional parameters before enforcing keyword-only parameters. If there is no logical break within the first 3 parameters, make all parameters (after `self`) keyword-only. +- Use the Receive-an-Object, Return-an-Object (RORO) pattern when a function takes or returns more than a few related values: accept a dataclass or TypedDict and return one, rather than long positional tuples. +- NEVER use `getattr` just as a defensive measure if it is guaranteed that the object has the attribute. ALWAYS reference the attribute directly unless there is a specific reason to know the attribute may not be present. NEVER use getattr to reference the result of an `argparse` namespace. + +## 3. Public API Design + +- Clearly separate public API from internal implementation. Prefix internal functions, classes, and modules with `_`. +- Use `__all__` in `__init__.py` to explicitly declare the public API surface. +- Design for stability: think carefully before adding to the public API, because removing it later is a breaking change. +- Include a `py.typed` marker file so downstream users get type-checking support. + +## 4. Comments + +- ALWAYS write self-documenting code: meaningful names, simple structure, limited nesting. +- NEVER include comments that merely restate the code, reference user requests, or describe modification history. +- ALWAYS include comments that explain the **rationale** behind non-obvious or complex logic. +- ALWAYS preserve existing comments that are still accurate and relevant. Remove or update stale comments. + +## 5. Lint and Type Checking + +### Types + +- ALWAYS annotate all function/method parameters and return values, including `-> None` for functions (and `__init__`) that return nothing. +- Use modern generic syntax (`list[str]`, `dict[str, int]`, `X | None`) for Python 3.10+. + +### Mypy + +- ALWAYS run `mypy` on the full codebase (including tests) after changes. Fix all errors before delivering. +- NEVER add global type exclusions. "Global type exclusions" means: + - Module-level `# type: ignore` without a specific error code. + - `ignore_errors = True` in mypy config. + - Broad `exclude` patterns that skip entire packages. +- In exceptional, unfixable cases use a minimal line-level ignore: `# type: ignore[error-code] # `. + +### Ruff / Linting + +- ALWAYS include `mypy` and `ruff` in the project's dev dependencies (e.g. in `pyproject.toml`). +- ALWAYS run `ruff check` and `ruff format` on the full codebase after changes. Fix all errors. +- Follow PEP 8 for all formatting and naming conventions. +- Use the project's explicit Ruff rule set in `pyproject.toml` (see **Ruff rule categories** below). Do not disable categories that enforce project conventions (e.g. **A** for no builtin shadowing, **N** for naming). + +## 6. Docstrings + +- ALWAYS include a docstring for every module, class, function, and method. +- Follow **PEP 257** using **Google style**. Use `Parameters:` (not `Args:`). +- Include `Returns:`, `Raises:`, and any important behavioral notes. +- NEVER mention backwards compatibility or user requests in docstrings. +- Docstrings MUST be detailed enough to write a black-box test from the docstring alone. +- Wrap docstring text to **90** characters. +- ALWAYS update docstrings when the associated code changes. + +## 7. Testing + +### Test-driven development (TDD) + +- Use **test-driven development**: write tests first, then implement. Red → green → refactor. +- Write tests BEFORE implementation based on stated requirements. If requirements are unclear, ask. +- Run tests to confirm they fail, then implement, re-run, and fix until green. +- After implementation, review tests to strengthen coverage. + +### Framework + +- ALWAYS include type annotations on test functions. +- ALWAYS use `pytest` with `pytest-cov`. +- ALWAYS use `pytest` with `pytest-xdist` and run tests with "-n auto". +- ALWAYS write tests to be independent so that tests can be run in parallel. + +### Coverage and correctness + +- Target at least **90%** line coverage measured over the entire test suite (not a subset). Skipping hard-to-hit exception paths is acceptable. +- NEVER write tests whose sole purpose is exercising code paths without asserting correctness. +- Each `assert` MUST test exactly one condition (no `and` in assertions). +- ALWAYS test for precise expected values, not ranges or existence checks. If the expected value is only known after implementation, update the test accordingly. +- When multiple tests call the same function, use distinct inputs to maximize branch coverage, including edge cases and boundary values. +- If two tests invoke the same code path but assert on different parts of the result, combine them into one test. +- When testing exceptions, ALWAYS use `pytest.raises` as a context manager and assert on the exception **message content**, not just the exception type. + +### Test hygiene + +- If a test mutates a global, use a fixture or `try`/`finally` to restore the original value. +- NEVER write a test that passes by ignoring an incorrect result or swallowing an exception. If the code is wrong, leave the failing test and explain why. +- NEVER include line numbers, verbose rationale, or modification history in test comments. Keep comments to short (1-2 sentence) summaries useful for future maintainers. + +### Debugging + +- NEVER guess at bug causes. Use logic, stack traces, and targeted logging. If stuck in a fix loop, revert and re-approach from first principles. When necessary, ask for help. + +## 8. Ruff Rule Categories (Default Set) + +The template enables these Ruff lint categories in `pyproject.toml`. Use them as the default for new repos; add or ignore specific codes as needed. + +| Code | Source | Purpose | +|------|--------|---------| +| **E**, **W** | pycodestyle | Style and formatting (indent, whitespace, line length). | +| **F** | Pyflakes | Unused imports, undefined names, syntax issues. | +| **I** | isort | Import sorting and grouping. | +| **UP** | pyupgrade | Prefer modern Python (e.g. 3.10+ syntax). | +| **B** | flake8-bugbear | Common bugs (mutable defaults, assert, loop vars). | +| **SIM** | flake8-simplify | Simpler alternatives (e.g. `in` instead of `not x == y`). | +| **C4** | flake8-comprehensions | Prefer comprehensions over loops where clear. | +| **A** | flake8-builtins | No shadowing of builtins (`id`, `filter`, `type`, etc.). | +| **N** | pep8-naming | Class = TitleCase, functions/variables = lowercase_with_underscores. | +| **PT** | flake8-pytest-style | Pytest best practices (fixtures, parametrize, raises). | +| **RUF** | Ruff | Ruff-specific (e.g. unused noqa, deprecated). | + +Optional categories to consider adding later: **D** (pydocstyle) or **DOC** (pydoclint) for docstring linting; **PTH** (pathlib); **RET** (return simplification); **PERF** (perflint). Enable only if the team agrees to fix or ignore the resulting diagnostics. diff --git a/.cursor/rules/security.mdc b/.cursor/rules/security.mdc new file mode 100644 index 0000000..a26947d --- /dev/null +++ b/.cursor/rules/security.mdc @@ -0,0 +1,48 @@ +--- +alwaysApply: true +description: Security best practices for Python library development — secrets, dependencies, and defensive coding. +--- + +# Security Best Practices + +## 1. Secrets Management + +- NEVER commit secrets, API keys, tokens, passwords, or private keys to the repository. +- Store secrets in environment variables or a dedicated secrets manager (e.g., GitHub Secrets, GCP Secret Manager). +- Use `.env` files for local development ONLY. Ensure `.env` is listed in `.gitignore`. +- If a secret is accidentally committed, rotate it immediately — deleting the commit is NOT sufficient. + +## 2. Dependency Security + +- Specify minimum compatible versions for direct dependencies (e.g., `numpy>=2.2.0`) in `pyproject.toml`. +- Run `pip audit` regularly and in CI to detect known vulnerabilities. +- Enable GitHub Dependabot for automated dependency update PRs. +- Review changelogs and diffs before merging dependency updates. + +## 3. Input Validation + +- NEVER trust external input (function arguments from callers, file contents, environment variables, data from remote URLs). +- Validate inputs at the public API boundary of the library. Raise clear `ValueError` or `TypeError` exceptions for invalid arguments. +- For file paths, resolve to absolute paths and verify they remain within the expected directory (prevent path traversal). + +## 4. Safe Defaults + +- NEVER implement custom cryptography. Use standard algorithms via trusted libraries (`cryptography`, `hashlib`). +- When the library downloads or reads external data, verify integrity (checksums, expected schemas) where feasible. +- Do NOT embed credentials, default passwords, or example secrets in source code, tests, or documentation. + +## 5. Logging + +- NEVER log secrets, tokens, passwords, or full stack traces containing sensitive data. +- Sanitize PII (personally identifiable information) before logging. +- Use the `logging` module with appropriate levels so callers can control verbosity. + +## 6. Code Review Security Checklist + +When reviewing PRs, verify: + +- [ ] No secrets or credentials in code, config, or comments. +- [ ] Public API inputs are validated with clear error messages. +- [ ] New dependencies are from reputable sources and have no known CVEs. +- [ ] File operations guard against path traversal. +- [ ] Error messages do not leak internal file paths or sensitive data. diff --git a/.cursor/settings.json b/.cursor/settings.json new file mode 100644 index 0000000..1f96a68 --- /dev/null +++ b/.cursor/settings.json @@ -0,0 +1,9 @@ +{ + "editor.tabSize": 4, + "editor.insertSpaces": true, + "editor.detectIndentation": false, + "files.trimTrailingWhitespace": true, + "files.insertFinalNewline": true, + "files.trimFinalNewlines": true, + "editor.rulers": [80, 90, 100] +} diff --git a/.cursor/skills/critique-test-suite/SKILL.md b/.cursor/skills/critique-test-suite/SKILL.md new file mode 100644 index 0000000..0afdd93 --- /dev/null +++ b/.cursor/skills/critique-test-suite/SKILL.md @@ -0,0 +1,287 @@ +--- +name: critique-test-suite +description: Analyze the test suite for consistency, completeness, redundancy, parallel safety, and assertion quality. Produces a comprehensive report (no test modifications). Use when the user asks to critique tests, review the test suite, or generate a report for fixing tests. +--- + +# Critique Test Suite + +Analyze all tests in the project and produce a **report only**—do not modify any test files. The report is intended to be used as a prompt for an AI agent (or developer) to fix the tests later. + +## Scope + +- **Tests:** All files under `tests/` (pytest). +- **Fixtures:** Include `conftest.py` and any shared fixtures in the analysis. +- **Package:** Assume a standard Python package layout (e.g. `src/` with the package under test; tests in `tests/`). + +## Checklist for Analysis + +Apply these criteria when reviewing each test file and each test case. + +### 1. Return values and assertions + +- **Explicit values:** Assert exact expected values where known (e.g. `assert result == expected`, not just `assert result` or `assert result is not None`). +- **Dynamic values:** When the value is dynamic (IDs, timestamps), assert **type** and **format** (e.g. regex, enum membership) rather than only existence. +- **Collections:** Prefer asserting **exact length** (e.g. `assert len(items) == 2`) when the expected count is known; avoid only `assert len(items) >= 1` unless the count truly varies. +- **Shape:** For dicts or structured return values, assert expected keys or shape where the contract is defined (e.g. no extra keys, required keys present). + +### 2. Success and failure conditions + +- **Success paths:** Every behavior under test should have at least one test that asserts the happy-path result (return value or side effect). +- **Failure paths:** For each operation, consider: invalid arguments (TypeError, ValueError), missing data (KeyError, custom exceptions), domain-specific errors. Note missing failure cases in the report. +- **Edge cases:** Empty collections, None/optional values, boundary values (min/max length, zero, negative where invalid). + +### 3. Consistency + +- **Naming:** Test names should follow a consistent style (e.g. `test___` or `test__returns__when_`). +- **Structure:** Similar units (e.g. same module or class) should have similar test structure (success, validation error, edge case). +- **Fixtures:** Same concepts (e.g. "sample data", "minimal config") should be reused via fixtures; avoid duplicating setup logic. +- **Assertion style:** Prefer one logical assertion per concept; group related assertions consistently across files. + +### 4. Completeness + +- **Coverage map:** For each module or public API area, list which behaviors are tested and which are missing. +- **Parameters:** Arguments that affect behavior should have at least one test (valid and, where relevant, invalid). +- **Documentation:** If the project has a spec or docstrings that define behavior, note gaps between documented behavior and tests. + +### 5. Redundancy + +- **Duplicate coverage:** Identify tests that assert the same behavior in the same way; suggest merging or removing duplicates. +- **Overlap:** Note tests that are subsets of others (e.g. one test checks return type only, another checks return type and value for the same case). +- **Fixtures:** Flag repeated inline setup that could be a shared fixture. + +### 6. Parallel execution + +- **Isolation:** Tests must not depend on global state, shared mutable objects, or execution order. Note any use of module/class-level mutable state or singletons. +- **Resources:** Note any shared files, caches, or external services that could cause flakiness under `pytest -n auto`. +- **Database:** If the project uses a DB in tests, per-worker schema or transactional rollback should be used; note tests that commit data that could leak to other workers. + +### 7. Mocking and dependency isolation + +- **External services:** HTTP calls, file I/O to shared paths, or third-party APIs should be mocked in unit tests; note tests that make real external calls. +- **Time-sensitive logic:** Tests involving `datetime.now()`, `time.time()`, or expiration should freeze time (e.g. `freezegun`, `time_machine`) for determinism. +- **Pure logic:** Unit tests for pure business logic should not require a database or network; note functions that could be unit-tested but only have integration tests. +- **Environment variables:** Tests should not depend on real `.env` or env values; note tests that would fail with different env configs. +- **Patch target location:** `mock.patch` must target where the name is *looked up*, not where it is *defined* (e.g. `mock.patch("module_under_test.requests.get")`, not `mock.patch("requests.get")`). Note patches that target the wrong module. +- **`monkeypatch` vs `mock.patch` usage:** Prefer a consistent default per test file, but allow either tool where it is the clearer fit (e.g., env/process state with `monkeypatch`, call assertions/spies with `mock.patch`). Flag only inconsistent usage that reduces clarity. +- **Patch scope:** Decorator-level `mock.patch` applies for the whole test; context-manager form limits scope. Note patches broader than needed or too narrow (missing setup/teardown). +- **Mock return values:** Mocks that return `MagicMock()` by default can hide type bugs (a function expected to return `str` returns a `MagicMock` and downstream code doesn't fail because it's truthy). Note mocks in critical paths without explicit `return_value` or `side_effect`. + +### 8. Security and input validation + +- **Input validation:** Functions that accept user or external input should have tests for invalid input (wrong type, out-of-range, malicious patterns). Note missing validation tests. +- **Sensitive data:** Verify that tests do not log or assert on real secrets; test data should not contain real credentials. Note any exposure risk. +- **Path traversal / injection:** If the code handles paths or structured input, note missing tests for path traversal or injection where relevant. + +### 9. Parameterization and data-driven tests + +- **`@pytest.mark.parametrize`:** Similar test cases (e.g. multiple invalid inputs) should be parameterized instead of copy-pasted; note repeated test bodies that differ only in input. +- **Boundary values:** For numeric or length-sensitive fields, test min, max, and off-by-one values; note missing boundary tests. +- **Factories:** Test data should be created via factories or fixtures where it reduces duplication or collision risk; note tests with hard-coded values that could be shared. + +### 10. Async (if the project uses async) + +- **Async fixtures:** Fixtures returning async resources should use `@pytest_asyncio.fixture`; note misuse or sync fixtures in async test files. +- **Timeouts:** Long-running async operations should have explicit timeouts in tests; note tests that could hang. +- **Isolation:** For code that modifies shared state, note whether concurrent access is tested if relevant. + +### 11. Output and contract + +- **Return shape:** Where the public API defines a return type or shape (e.g. dataclass, TypedDict), tests should assert that shape or key fields; note tests that only spot-check. +- **Exceptions:** Verify that documented or expected exceptions are raised with correct types; note tests that only check "no exception" without testing failure paths. +- **Exception message contents:** When testing exceptions that have defined messages (e.g. validation errors), tests must assert on the **contents** of the exception message, not only that the exception was raised. Use `pytest.raises(SomeError) as exc_info` and assert on `str(exc_info.value)`. Note tests that only check exception type. + +### 12. Error handling and messages + +- **Error specificity:** Different error conditions should be distinguishable (e.g. by exception type or message); note tests that only check "an exception was raised" without verifying which one. +- **Exception propagation:** For unit tests of code that raises, verify that exceptions are raised with correct types and messages; note missing exception tests. +- **Message assertion:** When exceptions have defined messages, assert on message content (e.g. `pytest.raises(...) as exc_info`, then `assert "expected substring" in str(exc_info.value)`). + +### 13. State and workflow + +- **State transitions:** For code with status or lifecycle (e.g. state machine, pipeline stage), test valid and invalid transitions; note missing transition tests. +- **Idempotency:** Operations that should be idempotent should be tested for repeated calls; note missing idempotency tests. +- **Side effects:** Actions that trigger side effects (e.g. callbacks, file writes) should verify those occur; note untested side effects. + +### 14. Test data and fixtures + +- **Realistic data:** Test data should be realistic enough to catch edge cases (e.g. Unicode, long strings); note tests using only trivial data. +- **Cleanup:** Tests that create external resources (files, temp dirs) must clean up; note tests that leak state. +- **Fixture scope:** Fixtures should use the narrowest appropriate scope (`function` > `class` > `module` > `session`); note overly broad scopes that could cause isolation issues. +- **Conftest hierarchy:** Fixtures should live in the `conftest.py` closest to where they're used — a root `conftest.py` with dozens of unrelated fixtures is a smell. Note fixtures that belong in a subdirectory conftest or in the test file itself. +- **Autouse fixtures:** `@pytest.fixture(autouse=True)` hides dependencies — a test silently depends on setup it doesn't request. Note autouse fixtures and whether they're justified (e.g. DB cleanup is reasonable; injecting test data for every test is not). +- **Fixture visibility:** Note fixtures defined in a deep conftest but used only in one test file (move to the file) and fixtures duplicated across files that should be in conftest. +- **Fixture depth:** Deep fixture-depends-on-fixture chains (3+ levels) are hard to trace and debug; note such chains. + +### 15. Flakiness indicators + +- **Time-based assertions:** Tests asserting on wall-clock time are flaky; note and suggest freezing time. +- **Order dependence:** Tests that pass only when run in a specific order indicate shared state; note such patterns. +- **External dependencies:** Tests depending on network, file system state, or external services are flaky in CI; note and suggest mocking. +- **Random data:** Tests using `random` or `uuid4` for assertions without seeding are non-deterministic; note and suggest seeding or fixed values. + +### 16. Regression and documentation + +- **Bug reference:** Tests written to reproduce bugs should reference the issue in docstring or comment; note regression tests that lack context. +- **Spec alignment:** Tests should map to documented behavior (docstrings, specs); note tests for undocumented behavior or missing tests for documented behavior. +- **Deprecation warnings:** If deprecated APIs exist, tests should verify warnings are emitted using `pytest.warns(DeprecationWarning)` (or `FutureWarning`). Note deprecated APIs that lack warning-emission tests. +- **`filterwarnings` configuration:** Check whether `filterwarnings = ["error"]` (or equivalent) is set in pytest config to surface unexpected warnings as test failures. Without it, new warnings go unnoticed. Note if missing. +- **Warning noise:** Note unexpected warnings emitted during the test run that are silently swallowed. A clean run should produce no unhandled warnings. + +### 17. Other good practices + +- **Independence:** Each test should be runnable in isolation; document any hidden dependencies (e.g. "must run after X"). +- **Clarity:** Test names and docstrings should describe intent; report tests whose purpose is unclear. +- **Speed:** Note slow tests (e.g. many I/O calls, sleeps) that could be sped up with mocks or smaller scope. +- **Assertion messages:** Use clear messages where it helps (e.g. `assert x == y, f"Expected {x} to equal {y}"`); note assertions that would be hard to debug on failure. +- **Single responsibility:** Each test should verify one behavior; note tests that assert unrelated things or have multiple "acts". +- **Arrange-Act-Assert:** Tests should follow AAA pattern; note tests with interleaved setup and assertions. +- **Keep test logic minimal:** Avoid complex control flow in tests. Simple loops and branching are acceptable when they improve clarity (e.g., table-driven checks); flag only logic that obscures intent or masks failures. + +### 18. Code coverage + +- **Target:** At least 90% line coverage for the package under test (or the project's stated target). +- **Scope:** Coverage should cover almost all non-exception lines; exception branches may be excluded from the percentage but should still be tested where they represent distinct behavior. +- **Measurement:** Coverage must be checked by running the **entire test suite** (e.g. `pytest tests/ --cov=src --cov-report=term-missing`), not a subset. Note if 90% is met and whether measurement is full-suite. +- **Report:** List modules or packages below the target or with significant uncovered non-exception lines. + +### 19. Pytest markers and registration + +- **Marker registration:** All custom marks must be registered in `pyproject.toml` under `[tool.pytest.ini_options] markers = [...]`. Unregistered marks are silently ignored unless `--strict-markers` is enabled — a typo like `@pytest.mark.solw` means the mark has no effect. Note unregistered marks. +- **`--strict-markers`:** Check whether it is enabled in pytest config. If not, note that marker typos will go undetected. +- **`xfail` audit:** `@pytest.mark.xfail` should document a known issue with a linked ticket and use `strict=True` where the failure is expected to persist. Note `xfail` tests that now pass (missing `strict=True`) or that lack an issue reference — they may be masking real bugs. +- **`skip`/`skipif` audit:** Check whether skip conditions are still valid. Old `skipif` for Python 3.8 when the project requires `>=3.10` is dead code. Note stale skips. +- **Categorization marks:** Note whether `@pytest.mark.slow` or `@pytest.mark.integration` marks exist so developers can run fast subsets (`pytest -m "not slow"`). If all tests run at the same speed this is not needed, but if some tests are noticeably slower, suggest marking them. + +### 20. Test boundary (public API vs internals) + +- **Importing private names:** Tests that `from src.package._internal import _helper` are tightly coupled to implementation details and break on refactors. Note tests importing `_`-prefixed modules, classes, or functions. +- **Testing through the public API:** Prefer testing via the public surface (`__all__`, documented functions). Tests that only exercise internals give false confidence — the public API could be broken while internal tests pass. Note modules where only internals are tested. +- **Over-mocking:** Tests that mock so many internals that they're testing the mock setup, not the code. Note tests where more than half the function's collaborators are mocked, especially if the function under test is small. + +### 21. Logging assertions + +- **`caplog` usage:** Functions that log errors, warnings, or important info should have tests verifying log output via `caplog`. Note functions with `logger.error()` or `logger.warning()` calls that have no corresponding `caplog` assertion in tests. +- **Log level verification:** When testing logged output, verify the message is at the expected level (e.g. an error condition logs at `ERROR`, not `INFO`). Note tests that check message text but not level. +- **Absence of logging:** Some code paths should explicitly *not* produce warnings or errors during normal operation. Note where this is important but untested. + +### 22. Pytest configuration + +- **Config file discovery:** Pytest loads **at most one** config file for a given root directory. It scans in this **fixed precedence order** and uses the **first matching** file (the first that exists and qualifies); options are **not** merged from multiple files. Order: (1) `pytest.toml`, (2) `.pytest.toml`, (3) `pytest.ini`, (4) `.pytest.ini`, (5) `pyproject.toml` (only if it contains `[tool.pytest]` or `[tool.pytest.ini_options]`), (6) `tox.ini` (only if it contains a `[pytest]` section), (7) `setup.cfg` (only if it contains a `[tool:pytest]` section). +- **`testpaths` and discovery options:** In the active config file, check that `testpaths` is set (without it, pytest collects from the entire repo — slow and may find stray test files). Check `python_files`, `python_classes`, `python_functions` if non-standard naming is used. +- **Plugin inventory:** Note installed pytest plugins that are unused (slow startup) and useful plugins that are missing (e.g. `pytest-xdist` for parallelism, `pytest-randomly` for order-independence testing). +- **`addopts`:** Are default options sensible? Suggest `--strict-markers`, `--strict-config`, `-q`, and `-W error::DeprecationWarning` if not present. +- **Ignored duplicate configs:** If more than one qualifying file exists in the same directory, lower-precedence files are **silently ignored** (e.g. `pyproject.toml` pytest settings have no effect when `pytest.ini` or `pytest.toml` wins). Note redundant or dead config that maintainers may think is active. + +### 23. Snapshot and golden-file testing + +- **Complex output:** Functions that return large dicts, dataclass trees, serialized formats (JSON, YAML), or rendered text are hard to assert inline. Note where snapshot testing (e.g. `syrupy`) would be more maintainable than dozens of field-level assertions. +- **Golden file management:** If snapshot or golden files exist, check: are they committed to the repo? Is there a CI step to detect stale snapshots? Note missing update procedures. +- **Over-use:** Snapshot tests can become "approve and forget." Note if snapshots are used extensively but there is no evidence of intentional review on change. + +## Output: Report Format + +Produce a single markdown report with the following structure. Do **not** edit any test files; only write the report. + +```markdown +# Test Suite Critique Report + +**Generated:** [date] +**Scope:** tests/ (and conftest.py) + +## Executive summary +- Overall assessment (strengths, main gaps). +- **Coverage:** At least 90% and almost all non-exception lines; measured by running the **entire test suite**. Note if met and whether measurement is full-suite. +- **Exception messages:** When testing exceptions with defined messages, tests must assert on message contents (e.g. `pytest.raises(...) as exc_info`, `str(exc_info.value)`), not only that the exception was raised. +- High-priority fixes vs. nice-to-have. + +## 1. Return values and assertions +[Existence-only asserts; exact length vs >=; shape checks.] + +## 2. Success and failure conditions +[Per module/area: what's tested, what's missing (validation, exceptions, edge cases).] + +## 3. Consistency +[Naming, structure, fixture usage, assertion style.] + +## 4. Completeness +[Coverage map; spec/docstring gaps.] + +## 5. Redundancy +[Duplicate or overlapping tests with file:test references.] + +## 6. Parallel execution +[Global state, order dependence, shared resources.] + +## 7. Mocking and dependency isolation +[Real external calls, time-sensitive tests, env dependencies, patch targets, mock return values.] + +## 8. Security and input validation +[Missing validation tests, sensitive data, injection/traversal.] + +## 9. Parameterization +[Tests that could be parameterized; missing boundary tests.] + +## 10. Async (if applicable) +[Async fixture issues, timeouts, isolation.] + +## 11. Output and contract +[Return shape, exception types, message assertions.] + +## 12. Error handling +[Error specificity; exception message content assertions.] + +## 13. State and workflow +[Transitions, idempotency, side effects.] + +## 14. Test data and fixtures +[Realistic data, cleanup, fixture scope, conftest hierarchy, autouse, fixture depth.] + +## 15. Flakiness indicators +[Time, order, external deps, randomness.] + +## 16. Regression and documentation +[Bug references, spec alignment, deprecation warnings, filterwarnings config.] + +## 17. Other +[Clarity, speed, assertion messages, AAA, logic in tests.] + +## 18. Code coverage +[Target 90%; full-suite measurement; modules below target.] + +## 19. Pytest markers +[Unregistered marks, strict-markers, xfail audit, stale skips, categorization.] + +## 20. Test boundary +[Private imports, public API coverage, over-mocking.] + +## 21. Logging assertions +[caplog usage, log level checks, absence-of-logging tests.] + +## 22. Pytest configuration +[Config discovery precedence and first file only; testpaths; plugins; addopts; ignored duplicate configs.] + +## 23. Snapshot and golden-file testing +[Complex output candidates, golden file management, over-use.] + +## Prompt for an AI agent to fix tests + +[Self-contained prompt for an AI to apply the fixes. Include: +- Report sections as context. +- **Coverage:** Run coverage using the entire test suite; ensure at least 90% and cover almost all non-exception lines. +- **Exception messages:** When testing exceptions with defined messages, assert on message contents (e.g. `pytest.raises(...) as exc_info`, `str(exc_info.value)`). +- Instruction to fix tests according to the report without changing production code. +- Instruction to preserve existing passing behavior and only add/change assertions and test structure.] +``` + +## Execution steps + +1. **Gather:** List all test files under `tests/` and any `conftest.py`. Read pytest config from the **first matching** file in this **fixed precedence** order (only that file is applied; other qualifying files in the same directory are ignored): `pytest.toml`, `.pytest.toml`, `pytest.ini`, `.pytest.ini`, `pyproject.toml` (only if it contains `[tool.pytest]` or `[tool.pytest.ini_options]`), `tox.ini` (only if it contains `[pytest]`), `setup.cfg` (only if it contains `[tool:pytest]`). Use that file for markers and `addopts`. For plugins, check declared entry points in dependencies, the PYTEST_PLUGINS environment variable, and any pytest_plugins references in conftest.py files. +2. **Read:** For each file, read test names, docstrings, assertion patterns (focus on `assert`, return checks, fixtures, marks, `mock.patch`, `monkeypatch`, `caplog`, `pytest.warns`). +3. **Classify:** For each criterion (1–23), note specific file names, test names, and line references or short quotes. +4. **Write:** Produce the full report in the format above, including the "Prompt for an AI agent" section at the end. +5. **Do not:** Change, add, or remove any line in any test or conftest file. + +## When to use this skill + +- User asks to "critique the test suite", "review the tests", "analyze tests", or "generate a report to fix tests". +- User wants a "prompt for an AI to fix the tests" based on the current test suite. diff --git a/.cursor/skills/python-codebase-analysis/SKILL.md b/.cursor/skills/python-codebase-analysis/SKILL.md new file mode 100644 index 0000000..646051e --- /dev/null +++ b/.cursor/skills/python-codebase-analysis/SKILL.md @@ -0,0 +1,189 @@ +--- +name: python-codebase-analysis +description: Analyzes a Python codebase and produces high-level recommendations for restructuring, refactoring, and alignment with modern best practices. Use when the user asks to analyze the codebase, audit code quality, suggest improvements, refactoring ideas, or assess maintainability, performance, testability, or technical debt. +--- + +# Python Codebase Analysis + +Produce a structured analysis and recommendations report. Do not implement changes unless the user asks; focus on **high-level findings and actionable suggestions**. + +## Workflow + +1. **Scope**: Confirm or infer scope (whole repo, a package, or a path). Default to the project root. +2. **Explore**: Scan layout (directories, key config files), entry points, tests, and docs. Use list_dir, grep, and semantic search; avoid reading every file. +3. **Assess**: Evaluate each dimension below. Note evidence (file paths, patterns) and severity (critical / high / medium / low). +4. **Synthesize**: Write the report using the output template. Prioritize by impact and effort; group related items. + +## Dimensions to Assess + +### 1. Structure and layout + +- Package/module boundaries: clear separation, no circular imports, src-layout vs flat. +- File and module size: modules > ~500–1000 lines; single-file "god" modules. +- Naming: consistent with language norms (e.g. Python: lowercase_with_underscores, TitleCase for classes). +- Dead or orphaned code: unused modules, commented-out blocks, unreachable branches. +- Duplication: copy-paste, similar logic that could be shared (DRY). + +**Evidence**: Paths, line counts, import graphs if available. + +### 2. Best practices alignment + +Compare against project rules when present (e.g. `.cursor/rules/python_best_practices.mdc`). Check: + +- Naming (builtin shadowing, private `_` prefix, ALL_CAPS for module-level constants). +- Explicit checks vs exception-based control flow; falsy checks (`is None`, `len(x) == 0`). +- Imports: top of file, grouped and sorted; no wildcard imports. +- Function shape: ≤3 positional args, keyword-only for the rest. Return an object rather than a tuple of many results. +- Constants: no magic numbers/strings; config or env for tunables. +- Error handling: narrow try/except; no bare except; logging over print in libraries. +- Public API: clear `__all__`, `py.typed` for typed packages, separation of public vs `_private`. +- Library hygiene: use `logging.getLogger(__name__)`, never configure the root logger, set `NullHandler` in top-level `__init__.py`. No `print()` in library code (only in explicit CLI entry points). No `sys.exit()` in library code; raise exceptions instead. +- Error message quality: exceptions include enough context to diagnose (`ValueError("x must be positive, got -3")` not `ValueError("bad value")`). Custom base exception class (e.g. `class rms-psfmodelError(Exception)`) so callers can catch library errors specifically. Appropriate use of `warnings.warn()` with `DeprecationWarning`/`FutureWarning` for planned changes. +- Encoding and I/O: explicit `encoding='utf-8'` on `open()` calls (platform default varies). Consistent use of `pathlib.Path` over `os.path` string manipulation. Accept `str | Path` in public API. Context managers for all files and connections. + +**Evidence**: Rule name or quote, example file:line or pattern. Grep for `print(`, `sys.exit`, `sys.stdout`, `open(` without `encoding=`, `logging.basicConfig` in non-CLI code. + +### 3. Types and static checks + +- Type coverage: annotations on public API and new code; use of `Any`, untyped defs. +- Mypy (or equivalent): strictness, per-file overrides, global ignores. +- Linting: Ruff/Flake8/Pylint enabled; which rules; consistent formatting (e.g. Ruff format / Black). +- Docstrings: presence, format (e.g. Google), consistency with signatures and behavior. + +**Evidence**: Config files, sample of annotated vs unannotated code. + +### 4. Testing + +- Structure: tests colocated or in `tests/`; mirror of source layout; naming (`test_*`). +- Coverage: approximate line/branch coverage; untested modules or critical paths. +- Quality: one assertion per test; no tests that ignore results or swallow exceptions; use of parametrize/fixtures; independence and parallelizability. +- Gaps: missing edge cases, error paths, or integration tests for key flows. + +**Evidence**: `pytest.ini`/`pyproject.toml`, coverage report or commands, example test file. + +### 5. Performance and resource use + +- Hot paths: unnecessary work in loops, repeated allocations, O(n²) or worse algorithms where it matters. +- I/O: blocking calls in async code; missing timeouts; large files read into memory. +- Caching: repeated computation or lookups that could be cached or memoized. +- Dependencies: heavy or unused libraries; optional features that could be lazy-loaded. +- Concurrency and thread safety: module-level mutable state (dicts, lists, caches) without locking. Lazy-initialized globals that are not thread-safe. Whether the library documents its thread-safety guarantees (or lack thereof). Reentrancy issues in functions that modify shared state. + +**Evidence**: File:line or function name; no profiling required unless user provides data. Grep for module-level mutable assignments (e.g. `_cache = {}`, `_registry = []`). + +### 6. Maintainability and extensibility + +- Coupling: tight dependencies between modules; hard-coded dependencies instead of injection. +- Cohesion: modules/classes with a single responsibility; clear boundaries. +- Extensibility: adding features without editing many files; use of hooks, plugins, or strategy-style patterns where appropriate. +- Documentation quality: README accuracy (do install/usage instructions match the current API?). Sphinx build health (does it pass with `-W`?). Public API coverage in docs (every public class/function in `__all__` should appear in Sphinx `automodule`/`autofunction`). Broken cross-references or missing doc pages for public modules. + +**Evidence**: Import structure, example functions or classes. Compare `__all__` exports against Sphinx `.. automodule` directives. Check README examples against actual API. + +### 7. Security and robustness + +- Input validation: external input (CLI, files, env) validated at boundaries; no trust of caller data in libraries. +- Secrets: no credentials in code or logs; use of env or secret managers. +- Dependency hygiene: known vulnerable deps (`pip audit` / Dependabot); pinned or minimum versions. +- Paths and execution: path traversal risks; subprocess/shell usage and injection. + +**Evidence**: Grep for patterns (e.g. `password`, `secret`, `eval`, `subprocess` with `shell=True`). + +### 8. Dependencies and tooling + +- Declared deps: single source of truth (e.g. `pyproject.toml`); optional groups (dev, docs). +- Version policy: minimum versions, avoidance of global pins for libraries. +- Tooling: consistent formatter and linter; CI runs checks and tests; no obsolete or conflicting config (e.g. both `setup.py` and `pyproject.toml` without clear roles). +- CI/CD pipeline consistency: Python version matrix in CI matches `requires-python` in `pyproject.toml`. CI runs the same checks as the local `run-all-checks.sh` (ruff, mypy, pytest, Sphinx, PyMarkdown). Publishing workflow present and correctly triggered (tag-based, Trusted Publishers or token auth). +- Configuration consistency: tool configs in `pyproject.toml` (ruff, mypy, pytest) are consistent with each other and with project rules. No stale config sections for tools no longer used (e.g. `[tool.black]` or `[tool.isort]` when ruff handles both). Line-length and target-version settings agree across tools. + +**Evidence**: `pyproject.toml`, `requirements*.txt`, CI config (`.github/workflows/`). Compare `requires-python` against CI matrix. Grep for stale `[tool.*]` sections. + +### 9. Technical debt and risk + +- Deprecations: use of deprecated APIs (stdlib, third-party); planned removals. +- Complexity: deeply nested conditionals; long functions; high cyclomatic complexity in critical code. +- TODOs/FIXMEs: concentration in one area; unlinked or vague items. +- Compatibility: Python version support; platform assumptions (e.g. paths, encoding). + +**Evidence**: Grep for deprecation warnings, TODO/FIXME; example complex function. + +### 10. Packaging and distribution + +- Metadata completeness: `pyproject.toml` has classifiers, project URLs (`Homepage`, `Repository`, `Documentation`), license expression (PEP 639), `description`, `requires-python`. +- Version single source of truth: one canonical version (`importlib.metadata`, `setuptools-scm`, or `_version.py`); `__version__` in the package is consistent. +- Build system: correct `[build-system]` table; package installs cleanly with `pip install -e .`; no stale `setup.py`/`setup.cfg` alongside a complete `pyproject.toml`. +- Package contents: `__init__.py` exports match the public API. `py.typed` marker present for typed packages. Correct `[tool.setuptools.packages.find]` or equivalent so subpackages and data files are included. +- Distribution hygiene: no build artifacts, test data, or large files accidentally included in the sdist/wheel. `.gitignore` and/or `MANIFEST.in` configured appropriately. + +**Evidence**: `pyproject.toml` metadata fields, `pip install -e .` output, `py.typed` presence, `find_packages` config. Compare `__init__.py` exports against `__all__`. + +## Output template + +Use this structure for the report. Omit sections with no findings; keep each item concise with location and suggested direction. + +```markdown +# Codebase analysis: [project or path] + +## Summary +[2–4 sentences: overall health, top 2–3 priorities.] + +## 1. Structure and layout +- **Finding**: [what]. **Evidence**: [where]. **Suggestion**: [action]. +[Repeat as needed.] + +## 2. Best practices alignment +[Same pattern; reference project rules if present.] + +## 3. Types and static checks +... + +## 4. Testing +... + +## 5. Performance and resource use +... + +## 6. Maintainability and extensibility +... + +## 7. Security and robustness +... + +## 8. Dependencies and tooling +... + +## 9. Technical debt and risk +... + +## 10. Packaging and distribution +... + +## Recommended priorities +1. [Highest impact, feasible first step] +2. [Next] +3. [Next] +``` + +## Severity and wording + +- **Critical**: Security or data integrity risk; blocks testing or deployment; pervasive violation of a core rule. +- **High**: Significant maintainability or bug risk; large refactor needed if left as-is. +- **Medium**: Clear improvement; can be scheduled with normal work. +- **Low**: Nice to have; style or minor consistency. + +Use "Consider…", "Prefer…", "Avoid…" for suggestions. For critical/high, state the impact (e.g. "increases risk of…", "makes testing difficult because…"). + +## Project-specific rules + +If the repo contains `.cursor/rules/` (e.g. `python_best_practices.mdc`), treat those as the primary standard for "best practices alignment". Mention when a finding contradicts or reinforces a project rule. For Python repos, prefer referencing the rule file rather than repeating long rule text. + +## Reference + +For example findings and severity phrasing, see [reference.md](reference.md). + +## Scope and depth + +- Prefer breadth first: touch all dimensions, then go deeper only where impact is high or the user asks. +- For large codebases, sample by package or layer (e.g. core vs CLI vs tests) and call out areas not reviewed. +- If the user asks for "quick" or "high-level" analysis, limit to summary + 1–2 findings per dimension and a short priority list. diff --git a/.cursor/skills/python-codebase-analysis/reference.md b/.cursor/skills/python-codebase-analysis/reference.md new file mode 100644 index 0000000..d6dec01 --- /dev/null +++ b/.cursor/skills/python-codebase-analysis/reference.md @@ -0,0 +1,81 @@ +# Codebase analysis – reference + +Use this when you need concrete examples for a dimension or wording guidance. + +## Example findings (by dimension) + +**Structure** +- **Finding**: Single module `utils.py` is 1,200 lines and mixes I/O, parsing, and formatting. **Evidence**: `src/utils.py`. **Suggestion**: Split into `io.py`, `parsing.py`, `formatting.py` under `utils/` and re-export from `utils/__init__.py`. + +**Best practices** +- **Finding**: Several functions use `except Exception` and pass, hiding failures. **Evidence**: `src/loader.py` lines 45, 89. **Suggestion**: Catch specific exceptions, log with `logging.exception`, and re-raise or return a sentinel where appropriate. + +**Best practices – library hygiene** +- **Finding**: Library code uses `print()` for diagnostic output instead of logging. **Evidence**: `src/parser.py` lines 12, 78, 134. **Suggestion**: Replace with `logger.debug()`/`logger.info()` using a module-level `logger = logging.getLogger(__name__)`. +- **Finding**: Top-level `__init__.py` configures the root logger with `logging.basicConfig()`. **Evidence**: `src/rms-psfmodel/__init__.py` line 5. **Suggestion**: Remove; add `logging.getLogger(__name__).addHandler(logging.NullHandler())` instead. Libraries must not configure logging for their callers. +- **Finding**: `sys.exit(1)` called in library function on validation failure. **Evidence**: `src/validator.py` line 42. **Suggestion**: Raise a `ValueError` (or a custom exception) and let the caller decide how to handle it. + +**Best practices – error messages** +- **Finding**: Exceptions raised with no context: `raise ValueError("invalid input")`. **Evidence**: `src/converter.py` lines 30, 55. **Suggestion**: Include the actual value and constraint: `raise ValueError(f"scale must be positive, got {scale}")`. +- **Finding**: No custom exception hierarchy; all errors are bare `ValueError`/`TypeError`. **Evidence**: Grep for `raise ValueError` across `src/`. **Suggestion**: Define a `rms-psfmodelError` base class and specific subclasses so callers can catch library errors without catching unrelated `ValueError`s. + +**Best practices – encoding and I/O** +- **Finding**: `open()` calls omit `encoding`; relies on platform default. **Evidence**: `src/reader.py` lines 18, 42. **Suggestion**: Add `encoding='utf-8'` (or the appropriate encoding) to all `open()` calls in library code. +- **Finding**: Public API accepts only `str` paths; callers using `pathlib.Path` must convert. **Evidence**: `src/loader.py` `load(path: str)`. **Suggestion**: Accept `str | Path` and convert internally with `Path(path)`. + +**Types** +- **Finding**: Public API in `api.py` has no return type annotations; mypy is not run in CI. **Evidence**: `pyproject.toml` has no `[tool.mypy]`; `api.py` functions lack `->`. **Suggestion**: Add mypy to CI, enable strict mode, and annotate public functions first. + +**Testing** +- **Finding**: Coverage is ~45%; module `core/solver.py` has no direct tests. **Evidence**: `coverage report`; no `tests/test_solver.py`. **Suggestion**: Add unit tests for solver entry points and key branches; aim for ≥80% on core. + +**Performance** +- **Finding**: Config is re-read from disk inside a loop in `process_batch`. **Evidence**: `src/batch.py` `process_batch` calls `load_config()` per item. **Suggestion**: Load config once outside the loop and pass it in or use a module-level cache. + +**Performance – concurrency and thread safety** +- **Finding**: Module-level mutable cache `_cache = {}` is written from multiple functions with no locking. **Evidence**: `src/registry.py` line 8 and functions `register()`, `lookup()`. **Suggestion**: Protect with `threading.Lock`, or document that the module is not thread-safe. +- **Finding**: Lazy singleton initialization uses a plain `if _instance is None` check. **Evidence**: `src/client.py` `get_client()`. **Suggestion**: Use `threading.Lock` or a module-level instance initialized at import time. + +**Maintainability** +- **Finding**: Feature flags and environment checks are scattered across 12 files. **Evidence**: Grep for `os.getenv("FEATURE_")`. **Suggestion**: Centralize in a `config` or `features` module and inject into call sites. + +**Maintainability – documentation quality** +- **Finding**: README usage example calls `rms-psfmodel.process(data)` but the function was renamed to `rms-psfmodel.transform(data)` in v2.0. **Evidence**: `README.md` line 34 vs `src/rms-psfmodel/__init__.py`. **Suggestion**: Update README examples to match the current API; consider a CI check that runs README code blocks. +- **Finding**: Three public modules (`analysis`, `export`, `utils`) have no corresponding Sphinx `automodule` directive. **Evidence**: Compare `src/rms-psfmodel/__init__.py` `__all__` against `docs/module.rst`. **Suggestion**: Add `.. automodule::` entries for each public module. + +**Security** +- **Finding**: Subprocess is invoked with `shell=True` and user-controlled input. **Evidence**: `src/runner.py` line 67. **Suggestion**: Use list form of arguments and avoid `shell=True`; validate/sanitize input. + +**Dependencies** +- **Finding**: Runtime deps are in `requirements.txt` and `pyproject.toml` with different versions. **Evidence**: `numpy` in requirements.txt pinned, in pyproject.toml minimum. **Suggestion**: Use `pyproject.toml` as single source of truth; remove duplicate requirements.txt or generate from it. + +**Dependencies – CI/CD consistency** +- **Finding**: `pyproject.toml` declares `requires-python = ">=3.10"` but CI matrix only tests 3.12. **Evidence**: `.github/workflows/run-tests.yml` `matrix.python-version: ["3.12"]`. **Suggestion**: Add 3.10, 3.11, 3.13 to the CI matrix to match the supported range. +- **Finding**: CI does not run Sphinx build or PyMarkdown; only ruff and pytest. **Evidence**: `.github/workflows/run-tests.yml`. **Suggestion**: Add Sphinx and PyMarkdown steps to match the local `run-all-checks.sh` so documentation issues are caught before merge. + +**Dependencies – configuration consistency** +- **Finding**: Ruff is configured with `line-length = 88` but the project rule says 100. **Evidence**: `pyproject.toml` `[tool.ruff]` vs `.cursor/rules/python_best_practices.mdc`. **Suggestion**: Align `line-length` across ruff, formatter, and project rules to a single value. +- **Finding**: Stale `[tool.black]` section remains in `pyproject.toml` after migration to Ruff. **Evidence**: `pyproject.toml` line 45. **Suggestion**: Remove the `[tool.black]` section; Ruff format replaces Black. + +**Technical debt** +- **Finding**: 40+ TODO comments with no issue links or owners. **Evidence**: `grep -r TODO src`. **Suggestion**: Link TODOs to issues, or triage and remove obsolete ones; add a policy in CONTRIBUTING. + +**Packaging and distribution** +- **Finding**: `pyproject.toml` is missing `project.urls` (no Homepage, Repository, or Documentation links). **Evidence**: `pyproject.toml` `[project]` section. **Suggestion**: Add `[project.urls]` with links to GitHub, ReadTheDocs, and changelog so they appear on PyPI. +- **Finding**: `__version__` is hard-coded in both `__init__.py` and `pyproject.toml`; they disagree after the last release. **Evidence**: `src/rms-psfmodel/__init__.py` line 3 says `1.2.0`, `pyproject.toml` says `1.3.0`. **Suggestion**: Use a single source of truth (e.g. `importlib.metadata.version("rms-psfmodel")` in `__init__.py` reading from the installed package metadata). +- **Finding**: `py.typed` marker file is missing; downstream users get no type-checking benefit. **Evidence**: `src/rms-psfmodel/` has no `py.typed` file. **Suggestion**: Add an empty `src/rms-psfmodel/py.typed` and ensure it is included in the package via `[tool.setuptools.package-data]`. +- **Finding**: `tests/` directory and test fixtures are included in the sdist/wheel. **Evidence**: `pip show -f rms-psfmodel` lists `tests/`. **Suggestion**: Exclude `tests` from the package via `[tool.setuptools.packages.find]` `exclude = ["tests*"]` or equivalent. + +## Severity phrasing + +- Critical: "must be addressed before…", "exposes…", "prevents…" +- High: "significantly increases…", "will make it difficult to…" +- Medium: "recommended to…", "would improve…" +- Low: "consider…", "optional:…" +- Trivial: "may not be worth changing…" + +## When project rules exist + +- "Per project rule in `.cursor/rules/python_best_practices.mdc`, …" +- "This conflicts with the project's convention that …" +- "Align with project rule: … (see python_best_practices.mdc)." diff --git a/.cursor/skills/run-all-checks/SKILL.md b/.cursor/skills/run-all-checks/SKILL.md new file mode 100644 index 0000000..bd83107 --- /dev/null +++ b/.cursor/skills/run-all-checks/SKILL.md @@ -0,0 +1,157 @@ +--- +name: run-all-checks +description: Run all linting, type checking, tests, Markdown lint, and documentation build for the project. Check for errors and warnings, then fix any problems found. Use when the user asks to run checks, verify the build, run CI locally, or fix lint/type/test errors. +--- + +# Run All Checks + +Execute all project checks (lint, typecheck, test, Markdown lint, docs) and fix any errors found. This skill aligns with the `scripts/run-all-checks.sh` script and a standard Python package layout (e.g. `src/`, `tests/`, `docs/`). + +## Quick Start + +1. Run all checks (optionally in parallel via the script). +2. Review output for errors and warnings. +3. Fix any issues found. +4. Re-run checks to verify fixes. + +## Check Commands + +Run from **project root** with the project **virtual environment activated** (e.g. `source venv/bin/activate` or create a new venv and then `pip install -e ".[dev]"`). + +### Code (ruff, mypy, pytest) + +```bash +# Lint (ruff) +python -m ruff check src tests examples +python -m ruff format --check src tests examples + +# Type check (mypy) +python -m mypy src tests examples + +# Tests (pytest; use -n auto for parallel when tests are independent) +python -m pytest tests -q +``` + +Omit `examples` if the project has no `examples/` directory. The run-all-checks script runs these in sequence; use the script’s `-c` option to run only code checks. + +### Markdown (PyMarkdown) + +```bash +python -m pymarkdown scan docs/ .cursor/ README.md CONTRIBUTING.md +``` + +Use the script’s `-m` option to run only Markdown lint. + +### Documentation (Sphinx) + +```bash +cd docs && make clean && make html SPHINXOPTS="-W" +``` + +Warnings are treated as errors (`-W`). The script’s `-d` option runs docs build plus Markdown lint. + +## Using the Script + +From project root: + +```bash +./scripts/run-all-checks.sh +``` + +Options: + +- **Default**: Run code checks and docs (Sphinx + PyMarkdown) in parallel. +- `-c, --code`: Only ruff, mypy, pytest. +- `-d, --docs`: Only Sphinx build and PyMarkdown scan. +- `-m, --markdown`: Only PyMarkdown scan. +- `-s, --sequential`: Run code and docs sequentially (easier to read output). +- `-p, --parallel`: Run code and docs in parallel (the default). +- `-h, --help`: Show usage. + +Set `VENV` or `VENV_PATH` to point to the virtual environment if it is not at `./venv`. + +## Execution Workflow + +```markdown +Check Progress: +- [ ] Ruff check (src, tests, examples) +- [ ] Ruff format --check +- [ ] Mypy (src, tests, examples) +- [ ] Pytest (tests) +- [ ] PyMarkdown scan (docs/, .cursor/, README, CONTRIBUTING) +- [ ] Sphinx build (docs/) with SPHINXOPTS="-W" +- [ ] All errors fixed +- [ ] Re-verify all checks pass +``` + +### Step 1: Run Checks + +Use the script (recommended) or run the commands above manually. Fix any non-zero exit codes. + +### Step 2: Analyze Results + +- **Errors**: Must be fixed (non-zero exit). +- **Warnings**: Sphinx is run with `-W`, so docs warnings fail the check; fix them so the build passes. + +Common error types: + +| Check | Error pattern | Typical fix | +|---------|----------------------------|--------------------------------| +| ruff | `F401` unused import | Remove import | +| ruff | `ARG001` unused argument | Prefix with `_` or add noqa | +| mypy | `error: Name "X" not defined` | Add import or fix typo | +| pytest | `FAILED` / `ERROR` | Fix test or code under test | +| pymarkdown | Rule ID + message | Fix Markdown style/structure | +| sphinx | `WARNING: duplicate object` | Add `:no-index:` or fix refs | + +### Step 3: Fix Issues + +For each error: read the message, open the file and line, apply the fix. Re-run the failing check to confirm. + +### Step 4: Re-verify + +Run the full script again; all checks should pass (exit code 0). + +## Common Fixes Reference + +### Ruff unused argument (ARG001) + +For fixtures that are dependencies but not directly used: + +```python +def my_fixture(other_fixture: None) -> None: # noqa: ARG001 + ... +``` + +### Sphinx duplicate object warning + +Add `:no-index:` to the automodule directive where appropriate: + +```rst +.. automodule:: mypackage.module + :members: + :no-index: +``` + +### Coverage threshold + +If coverage is below the project target (e.g. 80%): add tests or, temporarily, adjust `[tool.coverage.report]` / threshold in config. Prefer adding tests. + +### Type annotation issues + +For forward reference or union syntax issues: + +```python +from __future__ import annotations # at top of file +``` + +## Success Criteria + +All checks pass when: + +- `ruff check` → All checks passed +- `ruff format --check` → Would reformat 0 files (or run `ruff format` and re-check) +- `mypy` → Success: no issues found +- `pytest` → All tests pass; coverage meets target if configured +- `pymarkdown scan` → No violations +- `make html SPHINXOPTS="-W"` (in docs/) → Build completes with exit 0 diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 0000000..aa1c9c3 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,43 @@ +--- +name: Bug Report +about: Report a bug or unexpected behavior. +labels: bug +--- + +## Environment + +- **Package version:** +- **Python version:** +- **OS:** +- **Relevant dependency versions:** + +## Description + + + +## Steps to Reproduce + + + +1. +2. +3. + + + +```python +import rms-psfmodel +# minimal reproduction here +``` + +## Expected Behavior + + + +## Actual Behavior + + + +## Additional Context + + diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000..3ba13e0 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1 @@ +blank_issues_enabled: false diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 0000000..5455c4c --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,26 @@ +--- +name: Feature Request +about: Suggest a new feature or enhancement. +labels: enhancement +--- + +## Problem or Motivation + + + +## Proposed Solution + + + +```python +# Example usage +result = rms-psfmodel.new_function(arg) +``` + +## Alternatives Considered + + + +## Additional Context + + diff --git a/.github/ISSUE_TEMPLATE/other.md b/.github/ISSUE_TEMPLATE/other.md new file mode 100644 index 0000000..cfce2d8 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/other.md @@ -0,0 +1,24 @@ +--- +name: Other +about: Questions, documentation issues, discussions, or anything else. +labels: question +--- + +## Category + +Check one: + +- [ ] Documentation +- [ ] Question / Usage Help +- [ ] CI / Build / Packaging +- [ ] Refactoring / Code Quality +- [ ] Discussion / Design +- [ ] Other + +## Description + + + +## Additional Context + + diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 0000000..8b5f6a2 --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1,50 @@ +# Purpose + + + +Closes # + +## Changes/Implementation Details + + + +- + +## Type of Change + +- [ ] Bug fix (non-breaking) +- [ ] New feature (non-breaking) +- [ ] Breaking change (fix or feature that alters existing behavior or public API) +- [ ] Refactor (no functional or API changes) +- [ ] Documentation +- [ ] Tests only (no production code change) +- [ ] CI / Build / Dependencies + +## Testing + +- [ ] Unit tests pass +- [ ] Integration tests pass (if applicable) +- [ ] End-to-end tests pass (if applicable) +- [ ] New or updated tests for changed code +- [ ] Tested manually (describe below if applicable) + + + +## Potential Impacts + + + +## Checklist + +- [ ] Code follows project style (`ruff check`, `ruff format`) +- [ ] Type annotations present and `mypy` passes +- [ ] Docstrings and Sphinx docs updated (if applicable) +- [ ] CHANGES.md updated (if user-facing change) +- [ ] No temporary or debug code left in +- [ ] Breaking changes flagged in Type of Change above + +## Notes + + diff --git a/.github/workflows/publish_to_pypi.yml b/.github/workflows/publish_to_pypi.yml index ed29c96..d04bd74 100644 --- a/.github/workflows/publish_to_pypi.yml +++ b/.github/workflows/publish_to_pypi.yml @@ -8,24 +8,28 @@ on: jobs: upload_pypi: runs-on: ubuntu-latest + permissions: + contents: read steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: fetch-depth: 0 - name: Set up Python 3.12 - uses: actions/setup-python@v4 + uses: actions/setup-python@v6 with: python-version: 3.12 - - name: Install dependencies + - name: Build run: | - python -m pip install -r requirements.txt + python -m pip install -U pip + python -m pip install --upgrade build && python -m build - - name: Build + - name: Validate package run: | - python3 -m pip install --upgrade build && python3 -m build + python -m pip install twine + python -m twine check dist/* - name: Publish package uses: pypa/gh-action-pypi-publish@release/v1 diff --git a/.github/workflows/publish_to_test_pypi.yml b/.github/workflows/publish_to_test_pypi.yml index 2f06ec1..399a480 100644 --- a/.github/workflows/publish_to_test_pypi.yml +++ b/.github/workflows/publish_to_test_pypi.yml @@ -4,27 +4,27 @@ run-name: Publish to Test PyPI triggered by ${{ github.ref_type }} ${{ github.re on: workflow_dispatch: +permissions: + contents: read + jobs: upload_pypi: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: fetch-depth: 0 - name: Set up Python 3.12 - uses: actions/setup-python@v4 + uses: actions/setup-python@v6 with: python-version: 3.12 - - name: Install dependencies - run: | - python -m pip install -r requirements.txt - - name: Build run: | - python3 -m pip install --upgrade build && python3 -m build + python -m pip install -U pip + python -m pip install --upgrade build && python -m build - name: Publish package uses: pypa/gh-action-pypi-publish@release/v1 @@ -32,4 +32,4 @@ jobs: user: __token__ password: ${{ secrets.TEST_PYPI_API_TOKEN }} repository-url: https://test.pypi.org/legacy/ - verify-metadata: false + skip-existing: true diff --git a/.github/workflows/run-tests.yml b/.github/workflows/run-tests.yml index adfe864..6d5b37e 100644 --- a/.github/workflows/run-tests.yml +++ b/.github/workflows/run-tests.yml @@ -11,58 +11,68 @@ on: - cron: "21 11 * * 0" jobs: - flake8: - name: Lint psfmodel + lint: + name: Lint rms-psfmodel runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v4 - with: - ref: ${{ github.event.pull_request.head.sha }} + uses: actions/checkout@v6 - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v5 + - name: Set up Python 3.13 + uses: actions/setup-python@v6 with: - python-version: ${{ matrix.python-version }} + python-version: 3.13 - name: Install dependencies run: | - python -m pip install -r requirements.txt + python -m pip install -e ".[dev]" - - name: Flake8 + - name: Ruff (lint) run: | - flake8 psfmodel tests + ruff check src tests - # - name: Mypy - # run: | - # mypy psfmodel tests + - name: Ruff (format) + run: | + ruff format --check src tests + + - name: Mypy + run: | + mypy src tests + + - name: Sphinx + run: | + sphinx-build -W -b html docs docs/_build + + - name: PyMarkdown + run: | + pymarkdown scan docs/ .cursor/ README.md CONTRIBUTING.md test: - name: Test psfmodel + name: Test rms-psfmodel runs-on: ${{ matrix.os }} strategy: matrix: - os: [ubuntu-latest, macos-latest] # TODO windows-latest + os: [ubuntu-latest] python-version: ['3.10', '3.11', '3.12', '3.13'] fail-fast: false + permissions: + contents: read steps: - name: Checkout - uses: actions/checkout@v4 - with: - ref: ${{ github.event.pull_request.head.sha }} + uses: actions/checkout@v6 - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v4 + uses: actions/setup-python@v6 with: python-version: ${{ matrix.python-version }} - name: Install dependencies run: | - python -m pip install -r requirements.txt + python -m pip install -e ".[dev]" - name: Test with coverage run: | - coverage run -m pytest + python -m pytest --cov=src -n auto tests - name: Print coverage report run: | diff --git a/.gitignore b/.gitignore index 0ef0044..048c0b3 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,6 @@ +# git +.git # git already ignores this, but some other tools don't + # Byte-compiled / optimized / DLL files __pycache__/ *.py[cod] @@ -25,8 +28,6 @@ share/python-wheels/ .installed.cfg *.egg MANIFEST -**/_version.py -*tinytim* # PyInstaller # Usually these files are written by a python script from a template @@ -108,8 +109,10 @@ ipython_config.py #pdm.lock # pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it # in version control. -# https://pdm.fming.dev/#use-with-ide +# https://pdm.fming.dev/latest/usage/project/#working-with-version-control .pdm.toml +.pdm-python +.pdm-build/ # PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm __pypackages__/ @@ -123,9 +126,9 @@ celerybeat.pid # Environments .env -.venv +.venv* env/ -*venv*/ +venv*/ ENV/ env.bak/ venv.bak/ @@ -160,3 +163,17 @@ cython_debug/ # and can be added to the global gitignore or merged into this file. For a more nuclear # option (not recommended) you can uncomment the following to ignore the entire idea folder. #.idea/ + +.code_planner_cache.db +_work/ +**/_version.py +nohup.out +.DS_Store +._* +*~ +*~.* +*.bak +*.*.bak +log.txt +profile.txt +*tinytim* diff --git a/.readthedocs.yaml b/.readthedocs.yaml index bc5823f..f167ea9 100644 --- a/.readthedocs.yaml +++ b/.readthedocs.yaml @@ -7,7 +7,7 @@ version: 2 # Set the OS, Python version and other tools you might need build: - os: ubuntu-22.04 + os: ubuntu-24.04 tools: python: "3.12" # You can also specify other tool versions: @@ -24,9 +24,10 @@ sphinx: # - pdf # - epub -# Optional but recommended, declare the Python requirements required -# to build your documentation -# See https://docs.readthedocs.io/en/stable/guides/reproducible-builds.html +# Install package with docs extra (dependencies from pyproject.toml) python: install: - - requirements: requirements.txt + - method: pip + path: . + extra_requirements: + - docs diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..1f96a68 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,9 @@ +{ + "editor.tabSize": 4, + "editor.insertSpaces": true, + "editor.detectIndentation": false, + "files.trimTrailingWhitespace": true, + "files.insertFinalNewline": true, + "files.trimFinalNewlines": true, + "editor.rulers": [80, 90, 100] +} diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 8446c08..9726c9a 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,112 +1,146 @@ -# Information for Potential Contributors +# Contributing to rms-psfmodel -First off, thanks for taking the time to contribute! +Thank you for your interest in contributing to rms-psfmodel! This document provides guidelines and instructions for contributing to the project. -This software is maintained by the [Ring-Moon Systems Node](https://pds-rings.seti.org) of NASA's [Planetary Data System](https://pds.nasa.gov). All types of contributions are encouraged and valued. See the [Table of Contents](#table-of-contents) for different ways to help and details about how this project handles them; please read the relevant section before making your contribution. +## Code of Conduct -> If you like the project, but just don't have time to contribute, there are other easy ways to support the project and show your appreciation! -> - Star the project on GitHub -> - Post about it on social media -> - Refer to this project in your project's README -> - Mention the project at conferences and workshops and tell your friends/colleagues -> - Cite the project in your papers and posters +We expect all contributors to follow our Code of Conduct, which ensures a welcoming and inclusive environment for everyone. +See [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md). +## Getting Started -## Table of Contents +1. Fork the repository on GitHub +2. Clone your fork locally: -- [Code of Conduct](#code-of-conduct) -- [I Have a Question](#i-have-a-question) -- [I Want to Report a Bug](#i-want-to-report-a-bug) -- [I Want to Suggest an Enhancement](#i-want-to-suggest-an-enhancement) -- [I Want To Contribute Code](#i-want-to-contribute-code) + ```bash + git clone https://github.com/your-username/rms-psfmodel.git + cd rms-psfmodel + ``` +3. Create a virtual environment and install the package with dev dependencies: -## Code of Conduct + ```bash + python -m venv venv + source venv/bin/activate # On Windows: venv\Scripts\activate + pip install -e ".[dev]" + ``` + +## Development Workflow + +1. Create a new branch for your feature or bugfix: + + ```bash + git checkout -b feature/your-feature-name + # or + git checkout -b bugfix/issue-number + ``` + +2. Make your changes, following our coding standards +3. Write or update tests as necessary +4. Run the tests and lint to ensure they pass: -This project and everyone participating in it are governed by the -[Code of Conduct](CODE_OF_CONDUCT.md). -By participating, you are expected to uphold this code. Please report unacceptable behavior -to . + ```bash + scripts/run-all-checks.sh + ``` +5. Commit your changes with a descriptive message: -## I Have a Question + ```bash + git commit -m "Add feature: description of your changes" + ``` -> Please read the available documentation! +6. Push your branch to your fork: -Before asking a question, you can search for existing [issues](https://github.com/SETI/rms-psfmodel/issues) that might help you. If you find a suitable issue and still need clarification, you can write your question in that issue. + ```bash + git push origin feature/your-feature-name + ``` -If you can't find an appropriate issue and still want to ask a question, we recommend the following: +7. Open a Pull Request on GitHub -- Open an [issue](https://github.com/SETI/rms-psfmodel/issues/new). -- Provide as much context and detail as you can. -- Provide project and platform versions (operating system, Python version, etc.), depending on what seems relevant. +## Coding Standards -We will try to answer your question as soon as possible. +We follow these standards for all code contributions: +* **Python Style**: Follow PEP 8 +* **Type Hints**: Use type hints for all function parameters and return values +* **Docstrings**: Document all classes and methods with docstrings following the Google style +* **Testing**: Include unit tests for new functionality +* **Compatibility**: Ensure compatibility with Python 3.10+ -## I Want to Report a Bug +Example of a well-formatted function: -### Before Submitting a Bug Report +```python +def calculate_offset(image: NDArrayFloatType, model: NDArrayFloatType) -> tuple[float, float]: + """Calculate the offset between an image and a model. -A good bug report shouldn't leave others needing to chase you for more information. Therefore, we ask you to investigate carefully and collect all appropriate information in advance. + Parameters: + image: The observed image as a NumPy array + model: The theoretical model as a NumPy array -- Make sure that you are using the latest version of this software and its supporting packages. -- Make sure that you have read the documentation. -- Determine that your bug really is a bug and not an error in your code or a misunderstanding in how to use our software. -- To see if other users have experienced (and potentially solved) the same issue you're having, check if there is an existing issue for your bug or error in the [bug tracker](https://github.com/SETI/rms-psfmodel/issues). -- Collect information about the bug: - - Stack trace (Traceback) - - OS and version (Windows/Linux/macOS), processor (x86/ARM/M1), Python version - - Detailed information on how to reproduce the bug, including function parameters, command line arguments, and input given/output received. + Returns: + A tuple containing the (u, v) offset in pixels + """ + # Implementation here + return u_offset, v_offset +``` -### How Do I Submit a Good Bug Report? +## Pull Request Process -> You must never report security-related issues, vulnerabilities, or bugs that include sensitive information to the issue tracker or elsewhere in public. Instead, sensitive bugs must be sent by email to . +1. Ensure all tests pass +2. Update documentation if necessary +3. Make sure your code is properly formatted and passes both ruff and mypy +4. Request a review from a maintainer +5. Address any feedback from reviewers -We use GitHub Issues to track bugs and errors. If you run into an issue with the project: +The maintainers will merge your PR once it meets all requirements. -- Open an [issue](https://github.com/SETI/rms-psfmodel/issues/new) with a **clear and descriptive title**. Please label the issue as `A-Bug` with no other labels. -- Explain the **behavior you would expect** and the **behavior observed**. -- Provide as much context as possible and describe the **detailed steps** that someone can follow to reproduce the problem. This usually includes providing your code; for a good bug report you should isolate the problem and create a reduced test case. -- Provide other information collected in the previous section, such as the operating system and language version. +## Testing -Once it's filed: +We use pytest for testing. To run the tests: -- The project team will label the issue accordingly. -- A team member will try to reproduce the issue with your provided steps. If there are no steps given and no obvious way to reproduce the issue, the team will ask you for clarification. -- If the team is able to reproduce the issue, it will be appropriately labeled and either assigned to a team member to fix, or left unassigned to be [implemented by someone else](#i-want-to-contribute-code). +```bash +pytest +``` +For more verbose output: -## I Want to Suggest an Enhancement +```bash +pytest -v +``` -This section guides you through submitting an enhancement, **including completely new features and minor improvements to existing functionality**. +To run a specific test file: -### Before Submitting an Enhancement +```bash +pytest tests/test_specific_file.py +``` -- Make sure that you are using the latest version of this software and its supporting packages. -- Make sure that you have read the documentation to see if the desired functionality is already provided. -- Perform a [search](https://github.com/SETI/rms-psfmodel/issues) to see if the enhancement has already been suggested. If it has, add a comment to the existing issue instead of opening a new one. -- Find out whether your idea fits within the scope and aims of the project. It's up to you to make a strong case to convince the project's developers of the merits of this feature. Keep in mind that we want features that will be useful to the majority of our users and not just a small subset. If you're just targeting a minority of users, consider writing an add-on/plugin library. +## Documentation -### How Do I Submit a Good Enhancement Suggestion? +We use Sphinx for documentation. To build the docs: -We use GitHub Issues to track enhancement requests. If you want to suggest an enhancement: +```bash +cd docs +make html +``` -- Open an [issue](https://github.com/SETI/rms-psfmodel/issues/new) with a **clear and descriptive title**. Please label the issue as `A-Enhancement` with no other labels. -- Provide a **detailed** description of the suggested enhancement. -- **Explain why this enhancement would be useful** to most users. +The generated documentation will be in `docs/_build/html`. +When adding new features, please update the relevant documentation: -## I Want To Contribute Code +* Update docstrings for new functions and classes +* Add examples if appropriate +* Update the user guide or developer guide if necessary -> ### Legal Notice -> When contributing to this project, you must agree that you have authored 100% of the content, that you have the necessary rights to the content, and that the content you contribute may be provided under the project license. +## Reporting Issues -We welcome all code contributions, including bug fixes, new features, and improvements to documentation. +If you find a bug or have a suggestion for improvement: -- All suggested changes must be submitted using GitHub's "Pull Request" functionality. -- All code changes must include appropriate new or updated tests to verify the changes made. -- Existing documentation, including function- and file-level docstrings, must be updated as necessary, and new features fully described. -- Code style must conform to that of the existing code; for Python this is generally a variant of PEP8 and PEP257. +1. Check if the issue already exists in the GitHub issue tracker +2. If not, create a new issue with: + * A clear, descriptive title + * A detailed description of the issue + * Steps to reproduce (for bugs) + * Your environment information (Python version, OS, etc.) + * Any relevant logs or screenshots -All submissions will be reviewed in detail by a project team member and changes may be suggested. Once the reviewer approves the changes, they will be merged into the main project branch and made a permanent part of the software. Your efforts to improve the software are greatly appreciated! +Thank you for contributing to rms-psfmodel! diff --git a/README.md b/README.md index bcaf0c4..734a4ca 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,7 @@ +# rms-psfmodel + + + [![GitHub release; latest by date](https://img.shields.io/github/v/release/SETI/rms-psfmodel)](https://github.com/SETI/rms-psfmodel/releases) [![GitHub Release Date](https://img.shields.io/github/release-date/SETI/rms-psfmodel)](https://github.com/SETI/rms-psfmodel/releases) [![Test Status](https://img.shields.io/github/actions/workflow/status/SETI/rms-psfmodel/run-tests.yml?branch=main)](https://github.com/SETI/rms-psfmodel/actions) @@ -21,6 +25,8 @@ ![GitHub License](https://img.shields.io/github/license/SETI/rms-psfmodel) [![Number of GitHub stars](https://img.shields.io/github/stars/SETI/rms-psfmodel)](https://github.com/SETI/rms-psfmodel/stargazers) ![GitHub forks](https://img.shields.io/github/forks/SETI/rms-psfmodel) +[![DOI](https://zenodo.org/badge/rms-psfmodel.svg)](https://zenodo.org/badge/latestdoi/rms-psfmodel) + # Introduction diff --git a/codecov.yml b/codecov.yml new file mode 100644 index 0000000..01d7a05 --- /dev/null +++ b/codecov.yml @@ -0,0 +1,10 @@ +coverage: + status: + project: + default: + # basic + target: 90% + patch: + default: + # basic + target: 90% diff --git a/docs/code_of_conduct.md b/docs/code_of_conduct.md new file mode 100644 index 0000000..8597151 --- /dev/null +++ b/docs/code_of_conduct.md @@ -0,0 +1,6 @@ +# Contributor Covenant Code of Conduct + +```{include} ../CODE_OF_CONDUCT.md +:relative-images: +:start-after: "# Contributor Covenant Code of Conduct" +``` diff --git a/docs/conf.py b/docs/conf.py index b59e2a8..9a52a6e 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -1,32 +1,103 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + # Configuration file for the Sphinx documentation builder. -# -# For the full list of built-in configuration values, see the documentation: -# https://www.sphinx-doc.org/en/master/usage/configuration.html -# -- Project information ----------------------------------------------------- -# https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information +# -- Path setup -------------------------------------------------------------- +import importlib.metadata import os import sys +sys.path.insert(0, os.path.abspath('../src')) -sys.path.insert(0, os.path.abspath('..')) +# Verify the source path exists +if not os.path.exists(os.path.abspath('../src')): + import warnings + warnings.warn("Source directory '../src' not found. API documentation may be incomplete.") + +# -- Project information ----------------------------------------------------- -project = 'psfmodel' -copyright = '2025, PDS Ring-Moon Systems Node' -author = 'PDS Ring-Moon Systems Node' +project = 'rms-psfmodel' +copyright = '2026, SETI Institute' +author = 'SETI Institute' + +# The full version, including alpha/beta/rc tags +try: + release = importlib.metadata.version('rms-psfmodel') +except importlib.metadata.PackageNotFoundError: + release = '1.0.0' # fallback for development # -- General configuration --------------------------------------------------- -# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration -extensions = ['myst_parser', 'sphinx.ext.autodoc', 'sphinx.ext.napoleon', - 'sphinx.ext.viewcode'] +# Add any Sphinx extension module names here, as strings +extensions = [ + 'sphinx.ext.autodoc', + 'sphinx.ext.viewcode', + 'sphinx.ext.napoleon', + 'sphinx.ext.intersphinx', + 'sphinxcontrib.mermaid', + 'myst_parser', +] +# Add any paths that contain templates here, relative to this directory. templates_path = ['_templates'] + +# List of patterns, relative to source directory, that match files and +# directories to ignore when looking for source files. +# This pattern also affects html_static_path and html_extra_path. exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store'] +# CONTRIBUTING.md is split in contributing.rst; the tail fragment starts at +# "## ..." so MyST reports a false-positive heading-level warning. +suppress_warnings = ['myst.header'] + +# The suffix(es) of source filenames. +source_suffix = ['.rst', '.md'] # -- Options for HTML output ------------------------------------------------- -# https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output +# The theme to use for HTML and HTML Help pages. html_theme = 'sphinx_rtd_theme' -html_static_path = ['_static'] + +# Add any paths that contain custom static files (such as style sheets) here, +# relative to this directory. They are copied after the builtin static files, +# so a file named "default.css" will overwrite the builtin "default.css". +# html_static_path = ['_static'] + +add_module_names = False +autodoc_typehints_format = "short" + +# -- Extension configuration ------------------------------------------------- + +# Napoleon settings +napoleon_google_docstring = True +napoleon_numpy_docstring = True +napoleon_include_init_with_doc = False +napoleon_include_private_with_doc = False +napoleon_include_special_with_doc = True +napoleon_use_admonition_for_examples = False +napoleon_use_admonition_for_notes = False +napoleon_use_admonition_for_references = False +napoleon_use_ivar = False +napoleon_use_param = True +napoleon_use_rtype = True +napoleon_preprocess_types = False +napoleon_type_aliases = None +napoleon_attr_annotations = True + +# Intersphinx settings +intersphinx_mapping = { + 'python': ('https://docs.python.org/3', None), + 'numpy': ('https://numpy.org/doc/stable/', None), + 'matplotlib': ('https://matplotlib.org/stable/', None), +} + +# MyST-Parser settings +myst_enable_extensions = [ + "colon_fence", + "deflist", +] + +# Mermaid settings — use client-side rendering so no mmdc binary is required +# in CI or on ReadTheDocs. +mermaid_output_format = 'raw' diff --git a/docs/contributing.rst b/docs/contributing.rst new file mode 100644 index 0000000..8525ba4 --- /dev/null +++ b/docs/contributing.rst @@ -0,0 +1,13 @@ +============ +Contributing +============ + +.. include:: ../CONTRIBUTING.md + :parser: myst_parser.sphinx_ + :end-before: See [CODE_OF_CONDUCT.md] + +See the :doc:`Code of Conduct `. + +.. include:: ../CONTRIBUTING.md + :parser: myst_parser.sphinx_ + :start-after: (CODE_OF_CONDUCT.md). diff --git a/docs/index.rst b/docs/index.rst index 33328b1..0b67f46 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -1,22 +1,20 @@ -.. solar documentation master file, created by - sphinx-quickstart on Fri May 24 12:58:54 2024. - You can adapt this file completely to your liking, but it should at least - contain the root `toctree` directive. +.. RMS-XXX documentation master file -Welcome to ``psfmodel``'s documentation! -======================================== +Welcome to the Documentation for rms-psfmodel! +============================================== .. include:: ../README.md :parser: myst_parser.sphinx_ - :start-after: forks/SETI/rms-psfmodel) + :start-after: .. toctree:: :maxdepth: 2 :caption: Contents: + contributing + code_of_conduct module - Indices and tables ================== diff --git a/docs/make.bat b/docs/make.bat index 32bb245..b4f380c 100644 --- a/docs/make.bat +++ b/docs/make.bat @@ -1,35 +1,35 @@ -@ECHO OFF - -pushd %~dp0 - -REM Command file for Sphinx documentation - -if "%SPHINXBUILD%" == "" ( - set SPHINXBUILD=sphinx-build -) -set SOURCEDIR=. -set BUILDDIR=_build - -%SPHINXBUILD% >NUL 2>NUL -if errorlevel 9009 ( - echo. - echo.The 'sphinx-build' command was not found. Make sure you have Sphinx - echo.installed, then set the SPHINXBUILD environment variable to point - echo.to the full path of the 'sphinx-build' executable. Alternatively you - echo.may add the Sphinx directory to PATH. - echo. - echo.If you don't have Sphinx installed, grab it from - echo.https://www.sphinx-doc.org/ - exit /b 1 -) - -if "%1" == "" goto help - -%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% -goto end - -:help -%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% - -:end -popd +@ECHO OFF + +pushd %~dp0 + +REM Command file for Sphinx documentation + +if "%SPHINXBUILD%" == "" ( + set SPHINXBUILD=sphinx-build +) +set SOURCEDIR=. +set BUILDDIR=_build + +%SPHINXBUILD% >NUL 2>NUL +if errorlevel 9009 ( + echo. + echo.The 'sphinx-build' command was not found. Make sure you have Sphinx + echo.installed, then set the SPHINXBUILD environment variable to point + echo.to the full path of the 'sphinx-build' executable. Alternatively you + echo.may add the Sphinx directory to PATH. + echo. + echo.If you don't have Sphinx installed, grab it from + echo.https://www.sphinx-doc.org/ + exit /b 1 +) + +if "%1" == "" goto help + +%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% +goto end + +:help +%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% + +:end +popd \ No newline at end of file diff --git a/docs/module.rst b/docs/module.rst index 8348633..a38c2be 100644 --- a/docs/module.rst +++ b/docs/module.rst @@ -7,4 +7,4 @@ :undoc-members: :special-members: :show-inheritance: - :exclude-members: __dict__, __hash__, __module__, __weakref__, __enter__, __exit__, __annotations__, __abstractmethods__ + :exclude-members: __dict__, __hash__, __module__, __weakref__, __annotations__ diff --git a/pyproject.toml b/pyproject.toml index 8284744..54d2236 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -3,21 +3,24 @@ requires = ["setuptools", "setuptools_scm[toml]"] build-backend = "setuptools.build_meta" [project] -name = "rms-psfmodel" +name = "psfmodel" dynamic = ["version"] -description = "Routines for converting to and from psfmodel dates" +description = "PSF model fitting" readme = "README.md" -requires-python = ">=3.8" +requires-python = ">=3.10" dependencies = [ "astropy", "numpy", "scipy" ] license = {text = "Apache-2.0"} +authors = [ + {name = "Robert S. French", email = "rfrench@seti.org"} +] maintainers = [ {name = "Robert S. French", email = "rfrench@seti.org"} ] -keywords = ["psfmodel"] +keywords = ["TODO"] classifiers = [ "Development Status :: 5 - Production/Stable", "Natural Language :: English", @@ -26,25 +29,129 @@ classifiers = [ "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: Utilities", "License :: OSI Approved :: Apache Software License", - "Programming Language :: Python :: 3.8", - "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", + "Programming Language :: Python :: 3.13", "Operating System :: MacOS :: MacOS X", "Operating System :: POSIX :: Linux", "Operating System :: Microsoft :: Windows" ] [project.urls] -Homepage = "https://github.com/SETI/rms-psfmodel" -Repository = "https://github.com/SETI/rms-psfmodel" -Source = "https://github.com/SETI/rms-psfmodel" -Issues = "https://github.com/SETI/rms-psfmodel/issues" +Homepage = "https://github.com/SETI/psfmodel" +Documentation = "https://psfmodel.readthedocs.io/en/latest" +Repository = "https://github.com/SETI/psfmodel" +Source = "https://github.com/SETI/psfmodel" +Issues = "https://github.com/SETI/psfmodel/issues" + +[tool.pytest.ini_options] +pythonpath = [ + "src" +] +addopts = ["-n", "4", "--cov=src"] [tool.setuptools] -packages = ["psfmodel"] +[tool.setuptools.packages.find] +where = ["src"] + +[tool.setuptools.package-data] +"TODO" = ["py.typed"] [tool.setuptools_scm] local_scheme = "no-local-version" -write_to = "psfmodel/_version.py" +write_to = "src/psfmodel/_version.py" + +[project.optional-dependencies] +dev = [ + "psfmodel", + "coverage>=7.0", + # "mypy>=1.0", + "pymarkdownlnt>=0.9.35", + "pytest>=7.0", + "pytest-cov>=4.0", + "pytest-xdist>=3.8.0", + "ruff>=0.8", + # "bandit[toml]>=1.8", + "pyroma>=4.2", + # "vulture>=2.14", + "psfmodel[docs]", +] +docs = [ + "myst-parser", + "sphinx>=7", + "sphinxcontrib-mermaid", + "sphinx-rtd-theme", +] + +[project.scripts] +#TODO = "main.psfmodel:main" + +# Tool configuration + +[tool.coverage.run] +branch = true +source = ["src"] +omit = ["tests/*", "_version.py"] + +[tool.coverage.report] +exclude_lines = [ + "pragma: no cover", + "def __repr__", + "raise NotImplementedError", +] +fail_under = 40 # TODO + +[tool.mypy] +strict = true +disallow_subclassing_any = false + +[[tool.mypy.overrides]] +module = "psfmodel._version" +ignore_missing_imports = true + +[[tool.mypy.overrides]] +# module = ["psfmodel.*"] +# ignore_missing_imports = true + +[tool.ruff] +target-version = "py310" +line-length = 100 +exclude = [ + "src/psfmodel/hst.py" # TODO +] + +[tool.ruff.format] +quote-style = "single" + +[tool.ruff.lint] +# Explicit rule set (recommended for library projects). Categories: +# E, W = pycodestyle errors/warnings; F = Pyflakes; I = isort; UP = pyupgrade; +# B = bugbear; SIM = simplify; C4 = comprehensions; A = builtins (no shadowing); +# N = pep8-naming; PT = pytest-style; RUF = Ruff-specific (e.g. unused noqa). +select = ["E", "F", "W", "I", "UP", "B", "SIM", "C4", "A", "N", "PT", "RUF"] +# PT011 - pytest.raises is too broad. +# SIM105 - Use contextlib.suppress for suppressions. +# SIM108 - Use ternary operator for simple if/else. +extend-ignore = ["PT011", "SIM105", "SIM108"] + +[tool.ruff.lint.per-file-ignores] +#"TODO" = ["TODO"] + +[tool.pymarkdown.plugins.md013] +# Line length (disable so README/CONTRIBUTING can use longer lines). +enabled = false + +[tool.pymarkdown.plugins.md033] +# Inline HTML (e.g.
) allowed in Markdown. +enabled = false + +# Uncomment when enabling bandit in [project.optional-dependencies].dev. +# [tool.bandit] +# exclude_dirs = ["tests", "venv", ".venv"] +# targets = ["src"] + +# Uncomment when enabling vulture in [project.optional-dependencies].dev. +# [tool.vulture] +# paths = ["src"] +# exclude = ["tests/"] diff --git a/requirements.txt b/requirements.txt index acb6349..4f182dd 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,12 +1,5 @@ -astropy -coverage -flake8 -mypy -myst-parser -numpy -Pillow -pytest -scipy -sphinx -sphinxcontrib-napoleon -sphinx-rtd-theme +# Install the package in editable mode. For development (tests, lint, type-check, docs) use: +# pip install -e ".[dev]" +# For documentation build only: +# pip install -e ".[docs]" +-e . diff --git a/scripts/run-all-checks.sh b/scripts/run-all-checks.sh new file mode 100755 index 0000000..0fc5ae7 --- /dev/null +++ b/scripts/run-all-checks.sh @@ -0,0 +1,642 @@ +#!/usr/bin/env bash +# +# REPONAME - Run All Checks Script +# +# This script runs linting, type checking, tests, Sphinx build, and +# Markdown lint as separate checks. In parallel mode all requested +# checks run concurrently. +# +# Usage: +# ./scripts/run-all-checks.sh [options] +# +# Options: +# -p, --parallel Run all requested checks in parallel (default) +# -s, --sequential Run all requested checks sequentially +# -w, --pytest-workers N Pytest workers: auto (default), 1 (serial), or N +# -c, --code Run all code checks (sets each RUN_* code flag true) +# -d, --docs Run Sphinx and PyMarkdown (RUN_SPHINX, RUN_PYMARKDOWN) +# -m, --markdown Run only PyMarkdown (RUN_PYMARKDOWN) +# --ruff-check Run ruff check only (may combine with other --* flags) +# --ruff-format Run ruff format --check only +# --mypy Run mypy only +# --pytest Run pytest only +# --pyroma Run pyroma only +# --bandit Run bandit only +# --vulture Run vulture only +# --sphinx Run Sphinx build only +# --pymarkdown Run PyMarkdown scan only +# -h, --help Show this help message +# +# Environment: +# VENV or VENV_PATH Path to virtualenv (default: $PROJECT_ROOT/venv) +# CLEANUP_GRACE_PERIOD Seconds to wait for graceful shutdown (default: 5) +# +# Pytest coverage minimum: configure fail_under in coverage config (e.g. +# pyproject.toml [tool.coverage.report] or .coveragerc [report]). +# +# RUN_* (set by this script from CLI or full-run defaults): RUN_RUFF_CHECK, +# RUN_RUFF_FORMAT, RUN_MYPY, RUN_PYTEST, RUN_PYROMA, RUN_BANDIT, RUN_VULTURE, +# RUN_SPHINX, RUN_PYMARKDOWN +# +# Per-check toggles (true/false). Defaults favor a minimal CI set; export to +# enable more tools in a given repo. Each check runs only if both RUN_* and +# ENABLE_* are true (RUN_* from CLI or defaults below; ENABLE_* from env): +# ENABLE_RUFF_CHECK (default: true) +# ENABLE_RUFF_FORMAT (default: false) +# ENABLE_MYPY (default: false) +# ENABLE_PYTEST (default: true) +# ENABLE_PYROMA (default: true) +# ENABLE_BANDIT (default: false) +# ENABLE_VULTURE (default: false) +# ENABLE_SPHINX (default: true) +# ENABLE_PYMARKDOWN PyMarkdown scan (default: true) +# +# Checks (each run separately; -d runs both Sphinx and Markdown): +# Code: optional: ruff check, ruff format --check, mypy, pytest, pyroma, +# bandit, vulture (see ENABLE_* above) +# Sphinx: make -C docs html SPHINXOPTS="-W" +# Markdown: pymarkdown scan docs/ .cursor/ README.md CONTRIBUTING.md +# +# Exit codes: +# 0 - All requested checks passed +# 1 - One or more checks failed +# + +set -euo pipefail + +# Colors for output +RED='\033[0;31m' +GREEN='\033[0;32m' +YELLOW='\033[1;33m' +BLUE='\033[0;34m' +BOLD='\033[1m' +RESET='\033[0m' + +# Default options +PARALLEL=true +PYTEST_WORKERS=auto +RUN_RUFF_CHECK=false +RUN_RUFF_FORMAT=false +RUN_MYPY=false +RUN_PYTEST=false +RUN_PYROMA=false +RUN_BANDIT=false +RUN_VULTURE=false +RUN_SPHINX=false +RUN_PYMARKDOWN=false +SCOPE_SPECIFIED=false + +# Per-check defaults (override by exporting before invoking this script, or +# permanently change here) +: "${ENABLE_RUFF_CHECK:=true}" +: "${ENABLE_RUFF_FORMAT:=false}" +: "${ENABLE_MYPY:=false}" +: "${ENABLE_PYTEST:=true}" +: "${ENABLE_PYROMA:=true}" +: "${ENABLE_BANDIT:=false}" +: "${ENABLE_VULTURE:=false}" +: "${ENABLE_SPHINX:=true}" +: "${ENABLE_PYMARKDOWN:=true}" + +# Get script directory and project root +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)" +VENV="${VENV:-${VENV_PATH:-$PROJECT_ROOT/venv}}" + +# Track failures and final exit code +FAILED_CHECKS=() +EXIT_CODE=0 + +# Temp directory for parallel output and status files +TEMP_DIR=$(mktemp -d) + +# Grace period (seconds) before SIGKILL after SIGTERM +CLEANUP_GRACE_PERIOD=${CLEANUP_GRACE_PERIOD:-5} +if ! echo "$CLEANUP_GRACE_PERIOD" | grep -qE '^[0-9]+$'; then + echo "Error: CLEANUP_GRACE_PERIOD must be a non-negative integer (got: $CLEANUP_GRACE_PERIOD)" >&2 + exit 1 +fi + +_wait_or_kill() { + local pid=$1 + [ -z "$pid" ] && return 0 + kill -TERM "$pid" 2>/dev/null || true + local waited=0 + while [ "$waited" -lt "$CLEANUP_GRACE_PERIOD" ]; do + kill -0 "$pid" 2>/dev/null || break + sleep 1 + waited=$((waited + 1)) + done + if kill -0 "$pid" 2>/dev/null; then + kill -KILL "$pid" 2>/dev/null || true + fi + wait "$pid" 2>/dev/null || true + return 0 +} + +_cleanup() { + rm -rf "$TEMP_DIR" +} + +# On INT/TERM: kill all background check jobs with grace period, then exit +_cleanup_and_exit() { + local sig_code=$1 + local pids + pids=$(jobs -p) + if [ -n "$pids" ]; then + for pid in $pids; do + _wait_or_kill "$pid" + done + fi + _cleanup + exit "$sig_code" +} +trap '_cleanup_and_exit 130' SIGINT +trap '_cleanup_and_exit 143' SIGTERM +trap _cleanup EXIT + +print_header() { + echo -e "\n${BOLD}${BLUE}===================================================${RESET}" + echo -e "${BOLD}${BLUE} $1${RESET}" + echo -e "${BOLD}${BLUE}===================================================${RESET}\n" +} + +print_section() { + echo -e "\n${BOLD}${YELLOW}>>> $1${RESET}\n" +} + +print_success() { + echo -e "${GREEN}✓${RESET} $1" +} + +print_error() { + echo -e "${RED}✗${RESET} $1" +} + +print_info() { + echo -e "${BLUE}ℹ${RESET} $1" +} + +show_usage() { + sed -n '/^# Usage:/,/^# Exit codes:/p' "$0" | sed 's/^# //g' | sed 's/^#//g' +} + +# Parse command line arguments +while [[ $# -gt 0 ]]; do + case $1 in + -p|--parallel) + PARALLEL=true + shift + ;; + -s|--sequential) + PARALLEL=false + shift + ;; + -w|--pytest-workers) + if [[ -z "${2:-}" || "$2" =~ ^- ]]; then + echo -e "${RED}Error: -w/--pytest-workers requires a value (auto, 1, 2, ...)${RESET}" >&2 + show_usage + exit 1 + fi + PYTEST_WORKERS="$2" + shift 2 + ;; + --pytest-workers=*) + PYTEST_WORKERS="${1#*=}" + shift + ;; + -c|--code) + RUN_RUFF_CHECK=true + RUN_RUFF_FORMAT=true + RUN_MYPY=true + RUN_PYTEST=true + RUN_PYROMA=true + RUN_BANDIT=true + RUN_VULTURE=true + SCOPE_SPECIFIED=true + shift + ;; + -d|--docs) + RUN_SPHINX=true + RUN_PYMARKDOWN=true + SCOPE_SPECIFIED=true + shift + ;; + -m|--markdown) + RUN_PYMARKDOWN=true + SCOPE_SPECIFIED=true + shift + ;; + --ruff-check) + RUN_RUFF_CHECK=true + SCOPE_SPECIFIED=true + shift + ;; + --ruff-format) + RUN_RUFF_FORMAT=true + SCOPE_SPECIFIED=true + shift + ;; + --mypy) + RUN_MYPY=true + SCOPE_SPECIFIED=true + shift + ;; + --pytest) + RUN_PYTEST=true + SCOPE_SPECIFIED=true + shift + ;; + --pyroma) + RUN_PYROMA=true + SCOPE_SPECIFIED=true + shift + ;; + --bandit) + RUN_BANDIT=true + SCOPE_SPECIFIED=true + shift + ;; + --vulture) + RUN_VULTURE=true + SCOPE_SPECIFIED=true + shift + ;; + --sphinx) + RUN_SPHINX=true + SCOPE_SPECIFIED=true + shift + ;; + --pymarkdown) + RUN_PYMARKDOWN=true + SCOPE_SPECIFIED=true + shift + ;; + -h|--help) + show_usage + exit 0 + ;; + *) + echo -e "${RED}Error: Unknown option: $1${RESET}" >&2 + show_usage + exit 1 + ;; + esac +done + +# Default: run all checks (each RUN_* true; ENABLE_* still filters per repo) +if [ "$SCOPE_SPECIFIED" = false ]; then + RUN_RUFF_CHECK=true + RUN_RUFF_FORMAT=true + RUN_MYPY=true + RUN_PYTEST=true + RUN_PYROMA=true + RUN_BANDIT=true + RUN_VULTURE=true + RUN_SPHINX=true + RUN_PYMARKDOWN=true +fi + +START_TIME=$(date +%s) + +print_header "REPONAME - Running All Checks" + +if [ "$PARALLEL" = true ]; then + print_info "Running checks in PARALLEL mode" +else + print_info "Running checks in SEQUENTIAL mode" +fi +if [ "$RUN_PYTEST" = true ] && [ "$ENABLE_PYTEST" = true ]; then + print_info "Pytest workers: $PYTEST_WORKERS" +fi + +# True if at least one code check is both selected (RUN_*) and enabled (ENABLE_*). +_code_checks_any_scheduled() { + [ "$RUN_RUFF_CHECK" = true ] && [ "$ENABLE_RUFF_CHECK" = true ] && return 0 + [ "$RUN_RUFF_FORMAT" = true ] && [ "$ENABLE_RUFF_FORMAT" = true ] && return 0 + [ "$RUN_MYPY" = true ] && [ "$ENABLE_MYPY" = true ] && return 0 + [ "$RUN_PYTEST" = true ] && [ "$ENABLE_PYTEST" = true ] && return 0 + [ "$RUN_PYROMA" = true ] && [ "$ENABLE_PYROMA" = true ] && return 0 + [ "$RUN_BANDIT" = true ] && [ "$ENABLE_BANDIT" = true ] && return 0 + [ "$RUN_VULTURE" = true ] && [ "$ENABLE_VULTURE" = true ] && return 0 + return 1 +} + +# ---- Code checks (ruff, mypy, pytest, pyroma, bandit, vulture) ---- +run_code_checks() { + local output_file="${1:-}" + local status_file="${2:-}" + + if [ -n "$output_file" ]; then + exec > "$output_file" 2>&1 + fi + + print_section "Code Checks" + + cd "$PROJECT_ROOT" || exit 1 + + if ! _code_checks_any_scheduled; then + print_info "No code checks scheduled (RUN_* and ENABLE_*); skipping code checks" + return 0 + fi + + if [ ! -f "$VENV/bin/activate" ]; then + print_error "Virtual environment not found at $VENV" + [ -n "$status_file" ] && echo "Code - Virtual environment not found" >> "$status_file" + return 1 + fi + + # shellcheck source=/dev/null + source "$VENV/bin/activate" + + local failed=false + local failed_checks="" + + if [ "$RUN_RUFF_CHECK" = true ] && [ "$ENABLE_RUFF_CHECK" = true ]; then + print_info "Running ruff check..." + if python -m ruff check src tests; then + print_success "Ruff check passed" + else + print_error "Ruff check failed" + failed=true + failed_checks="${failed_checks}Code - Ruff check"$'\n' + fi + fi + + if [ "$RUN_RUFF_FORMAT" = true ] && [ "$ENABLE_RUFF_FORMAT" = true ]; then + print_info "Running ruff format --check..." + if python -m ruff format --check src tests; then + print_success "Ruff format check passed" + else + print_error "Ruff format check failed" + failed=true + failed_checks="${failed_checks}Code - Ruff format"$'\n' + fi + fi + + if [ "$RUN_MYPY" = true ] && [ "$ENABLE_MYPY" = true ]; then + print_info "Running mypy..." + if MYPYPATH=src python -m mypy src tests; then + print_success "Mypy passed" + else + print_error "Mypy failed" + failed=true + failed_checks="${failed_checks}Code - Mypy"$'\n' + fi + fi + + # -n controls parallelism; --dist loadscope keeps each test module on one + # worker to avoid time-mocking and fixture-isolation interference + if [ "$RUN_PYTEST" = true ] && [ "$ENABLE_PYTEST" = true ]; then + print_info "Running pytest (-n ${PYTEST_WORKERS})..." + if python -m pytest --cov=src -q -n "$PYTEST_WORKERS" --dist loadscope tests; then + print_success "Pytest passed" + else + print_error "Pytest failed" + failed=true + failed_checks="${failed_checks}Code - Pytest"$'\n' + fi + fi + + if [ "$RUN_PYROMA" = true ] && [ "$ENABLE_PYROMA" = true ]; then + print_info "Running pyroma (packaging metadata)..." + if python -m pyroma .; then + print_success "Pyroma passed" + else + print_error "Pyroma failed" + failed=true + failed_checks="${failed_checks}Code - Pyroma"$'\n' + fi + fi + + if [ "$RUN_BANDIT" = true ] && [ "$ENABLE_BANDIT" = true ]; then + print_info "Running bandit..." + if python -m bandit -r src -q; then + print_success "Bandit passed" + else + print_error "Bandit failed" + failed=true + failed_checks="${failed_checks}Code - Bandit"$'\n' + fi + fi + + if [ "$RUN_VULTURE" = true ] && [ "$ENABLE_VULTURE" = true ]; then + print_info "Running vulture..." + if python -m vulture src tests; then + print_success "Vulture passed" + else + print_error "Vulture failed" + failed=true + failed_checks="${failed_checks}Code - Vulture"$'\n' + fi + fi + + deactivate 2>/dev/null || true + + if [ "$failed" = true ]; then + [ -n "$status_file" ] && printf '%s' "$failed_checks" >> "$status_file" + return 1 + fi + return 0 +} + +# ---- Sphinx build only ---- +run_sphinx_build() { + local output_file="${1:-}" + local status_file="${2:-}" + + if [ -n "$output_file" ]; then + exec > "$output_file" 2>&1 + fi + + print_section "Sphinx Build" + + cd "$PROJECT_ROOT" || exit 1 + + if [ ! -f "$VENV/bin/activate" ]; then + print_error "Virtual environment not found at $VENV" + [ -n "$status_file" ] && echo "Sphinx - Virtual environment not found" >> "$status_file" + return 1 + fi + + # shellcheck source=/dev/null + source "$VENV/bin/activate" + + print_info "Building documentation (warnings treated as errors)..." + if (cd docs && make clean && make html SPHINXOPTS="-W"); then + print_success "Sphinx build passed" + deactivate 2>/dev/null || true + return 0 + else + print_error "Sphinx build failed" + [ -n "$status_file" ] && echo "Sphinx - Sphinx build" >> "$status_file" + deactivate 2>/dev/null || true + return 1 + fi +} + +# ---- Markdown lint only (PyMarkdown) ---- +run_markdown_checks() { + local output_file="${1:-}" + local status_file="${2:-}" + + if [ -n "$output_file" ]; then + exec > "$output_file" 2>&1 + fi + + print_section "Markdown Lint (PyMarkdown)" + + cd "$PROJECT_ROOT" || exit 1 + + if [ ! -f "$VENV/bin/activate" ]; then + print_error "Virtual environment not found at $VENV" + [ -n "$status_file" ] && echo "Markdown - Virtual environment not found" >> "$status_file" + return 1 + fi + + # shellcheck source=/dev/null + source "$VENV/bin/activate" + + print_info "Running PyMarkdown scan (docs/, .cursor/, root *.md)..." + local scan_paths=() + [ -d "docs/" ] && scan_paths+=("docs/") + [ -d ".cursor/" ] && scan_paths+=(".cursor/") + [ -f "README.md" ] && scan_paths+=("README.md") + [ -f "CONTRIBUTING.md" ] && scan_paths+=("CONTRIBUTING.md") + if [ ${#scan_paths[@]} -eq 0 ]; then + print_info "No Markdown files/directories found to scan" + deactivate 2>/dev/null || true + return 0 + fi + if python -m pymarkdown scan "${scan_paths[@]}"; then + print_success "PyMarkdown scan passed" + deactivate 2>/dev/null || true + return 0 + else + print_error "PyMarkdown scan failed" + [ -n "$status_file" ] && echo "Markdown - PyMarkdown scan" >> "$status_file" + deactivate 2>/dev/null || true + return 1 + fi +} + +# ---- Collect status from a status file into FAILED_CHECKS ---- +_collect_status() { + local status_file=$1 + if [ -f "$status_file" ]; then + while IFS= read -r line; do + [ -n "$line" ] && FAILED_CHECKS+=("$line") + done < "$status_file" + fi +} + +# ---- Run requested checks ---- +if [ "$PARALLEL" = true ]; then + print_info "Running requested checks in parallel, please wait..." + + pids=() + temp_files=() + status_files=() + + if _code_checks_any_scheduled; then + code_output="$TEMP_DIR/code.log" + code_status="$TEMP_DIR/code.status" + temp_files+=("$code_output") + status_files+=("$code_status") + run_code_checks "$code_output" "$code_status" & + pids+=($!) + fi + + if [ "$RUN_SPHINX" = true ] && [ "$ENABLE_SPHINX" = true ]; then + sphinx_output="$TEMP_DIR/sphinx.log" + sphinx_status="$TEMP_DIR/sphinx.status" + temp_files+=("$sphinx_output") + status_files+=("$sphinx_status") + run_sphinx_build "$sphinx_output" "$sphinx_status" & + pids+=($!) + fi + + if [ "$RUN_PYMARKDOWN" = true ] && [ "$ENABLE_PYMARKDOWN" = true ]; then + markdown_output="$TEMP_DIR/markdown.log" + markdown_status="$TEMP_DIR/markdown.status" + temp_files+=("$markdown_output") + status_files+=("$markdown_status") + run_markdown_checks "$markdown_output" "$markdown_status" & + pids+=($!) + fi + + # Wait for all jobs; any non-zero exit sets EXIT_CODE=1 + for pid in "${pids[@]}"; do + if ! wait "$pid"; then + EXIT_CODE=1 + fi + done + + # Collect named failures from status files + for status_file in "${status_files[@]}"; do + _collect_status "$status_file" + done + + # Safety net: if any status file had content, ensure EXIT_CODE reflects it + [ ${#FAILED_CHECKS[@]} -gt 0 ] && EXIT_CODE=1 + + # Print all outputs in a fixed order + echo "" + for log_file in "${temp_files[@]}"; do + [ -f "$log_file" ] && cat "$log_file" + done +else + # Sequential — pass a status file so FAILED_CHECKS is populated + if _code_checks_any_scheduled; then + code_status="$TEMP_DIR/code.status" + if ! run_code_checks "" "$code_status"; then + EXIT_CODE=1 + fi + _collect_status "$code_status" + fi + + if [ "$RUN_SPHINX" = true ] && [ "$ENABLE_SPHINX" = true ]; then + sphinx_status="$TEMP_DIR/sphinx.status" + if ! run_sphinx_build "" "$sphinx_status"; then + EXIT_CODE=1 + fi + _collect_status "$sphinx_status" + fi + + if [ "$RUN_PYMARKDOWN" = true ] && [ "$ENABLE_PYMARKDOWN" = true ]; then + markdown_status="$TEMP_DIR/markdown.status" + if ! run_markdown_checks "" "$markdown_status"; then + EXIT_CODE=1 + fi + _collect_status "$markdown_status" + fi +fi + +# ---- Summary ---- +END_TIME=$(date +%s) +ELAPSED=$((END_TIME - START_TIME)) +MINUTES=$((ELAPSED / 60)) +ELAPSED_SECONDS=$((ELAPSED % 60)) + +print_header "Summary" + +if [ "$EXIT_CODE" -eq 0 ]; then + print_success "All checks passed!" + echo -e "${GREEN}${BOLD}✓ SUCCESS${RESET} - All checks completed successfully" +else + print_error "Some checks failed:" + if [ ${#FAILED_CHECKS[@]} -eq 0 ]; then + echo -e " ${RED}✗${RESET} One or more checks failed (see output above)" + else + for check in "${FAILED_CHECKS[@]}"; do + echo -e " ${RED}✗${RESET} $check" + done + echo -e "${RED}${BOLD}✗ FAILURE${RESET} - ${#FAILED_CHECKS[@]} check(s) failed" + fi +fi + +echo "" +print_info "Total time: ${MINUTES}m ${ELAPSED_SECONDS}s" +echo "" + +exit "$EXIT_CODE" diff --git a/psfmodel/__init__.py b/src/psfmodel/__init__.py similarity index 100% rename from psfmodel/__init__.py rename to src/psfmodel/__init__.py index 737cc75..87bce59 100644 --- a/psfmodel/__init__.py +++ b/src/psfmodel/__init__.py @@ -1,4 +1,4 @@ -from .psf import PSF from .gaussian import GaussianPSF +from .psf import PSF __all__ = ['PSF', 'GaussianPSF'] diff --git a/psfmodel/gaussian.py b/src/psfmodel/gaussian.py similarity index 92% rename from psfmodel/gaussian.py rename to src/psfmodel/gaussian.py index cb338db..9b9e0f0 100755 --- a/psfmodel/gaussian.py +++ b/src/psfmodel/gaussian.py @@ -2,14 +2,13 @@ # psfmodel/gaussian.py ################################################################################ -from typing import Optional, cast +from typing import cast import numpy as np import numpy.typing as npt from scipy.special import erf -from psfmodel import PSF - +from .psf import PSF INV_SQRT_2 = 2**(-0.5) @@ -27,7 +26,7 @@ class GaussianPSF(PSF): def __init__(self, *, - sigma: Optional[float | tuple[float | None, float | None]] = None, + sigma: float | tuple[float | None, float | None] | None = None, mean: float | tuple[float, float] = 0., angle: float = 0., sigma_x_range: tuple[float, float] = (0.01, 10.), @@ -71,17 +70,15 @@ def __init__(self, f'angle_subsample must be an int between 1 and 99, got {angle_subsample}') self._angle_subsample = int(angle_subsample) - if self._sigma_y is None: - if sigma_y_range is not None: - self._additional_params.append((float(sigma_y_range[0]), - float(sigma_y_range[1])) + - ('sigma_y',)) - if self._sigma_x is None: - if sigma_x_range is not None: - self._additional_params.append((float(sigma_x_range[0]), - float(sigma_x_range[1])) + - ('sigma_x',)) - if self._angle is None: + if self._sigma_y is None and sigma_y_range is not None: + self._additional_params.append((float(sigma_y_range[0]), + float(sigma_y_range[1]), + 'sigma_y')) + if self._sigma_x is None and sigma_x_range is not None: + self._additional_params.append((float(sigma_x_range[0]), + float(sigma_x_range[1]), + 'sigma_x')) + if self._angle is None and angle_subsample > 1: self._additional_params.append((0, np.pi, 'angle')) @property @@ -219,15 +216,15 @@ def gaussian_2d(y: float | npt.NDArray[np.floating], x = x - mean_x y = y - mean_y - # Convert x and y (ellipse coordinates) to X and Y (Cartesian + # Convert x and y (ellipse coordinates) to xc and yc (Cartesian # coordinates) c = np.cos(angle) s = np.sin(angle) - X = c*x + s*y - Y = -s*x + c*y + xc = c*x + s*y + yc = -s*x + c*y - return (GaussianPSF.gaussian_1d(X, sigma=sigma_x) * - GaussianPSF.gaussian_1d(Y, sigma=sigma_y) * + return (GaussianPSF.gaussian_1d(xc, sigma=sigma_x) * + GaussianPSF.gaussian_1d(yc, sigma=sigma_y) * scale + base) @staticmethod @@ -372,12 +369,12 @@ def eval_point(self, float | npt.NDArray[np.floating]] | npt.NDArray[np.floating]), *, - sigma: Optional[float] = None, + sigma: float | None = None, scale: float = 1., base: float = 0., - sigma_y: Optional[float] = None, - sigma_x: Optional[float] = None, - angle: Optional[float] = None) -> float | npt.NDArray[np.floating]: + sigma_y: float | None = None, + sigma_x: float | None = None, + angle: float | None = None) -> float | npt.NDArray[np.floating]: """Evaluate the 2-D Gaussian PSF at a single, fractional, point. (0, 0) is the center of the PSF and x and y may be negative. @@ -443,10 +440,10 @@ def eval_pixel(self, *, scale: float = 1., base: float = 0., - sigma: Optional[tuple[float, float]] = None, - sigma_y: Optional[float] = None, - sigma_x: Optional[float] = None, - angle: Optional[float] = None) -> float | npt.NDArray[np.floating]: + sigma: tuple[float, float] | None = None, + sigma_y: float | None = None, + sigma_x: float | None = None, + angle: float | None = None) -> float | npt.NDArray[np.floating]: """Evaluate the Gaussian PSF integrated over an entire integer pixel. The returned array has the PSF offset from the center by (offset_y, offset_x). An @@ -521,10 +518,10 @@ def _eval_rect(self, # type: ignore *, scale: float = 1., base: float = 0., - sigma: Optional[tuple[float, float]] = None, - sigma_y: Optional[float] = None, - sigma_x: Optional[float] = None, - angle: Optional[float] = None + sigma: tuple[float, float] | None = None, + sigma_y: float | None = None, + sigma_x: float | None = None, + angle: float | None = None ) -> npt.NDArray[np.floating]: rect_size_y, rect_size_x = rect_size @@ -549,14 +546,14 @@ def eval_rect(self, # type: ignore rect_size: tuple[int, int], offset: tuple[float, float] = (0.5, 0.5), *, - movement: Optional[tuple[float, float]] = None, + movement: tuple[float, float] | None = None, movement_granularity: float = 0.1, scale: float = 1., base: float = 0., - sigma: Optional[tuple[float, float]] = None, - sigma_y: Optional[float] = None, - sigma_x: Optional[float] = None, - angle: Optional[float] = None) -> npt.NDArray[np.floating]: + sigma: tuple[float, float] | None = None, + sigma_y: float | None = None, + sigma_x: float | None = None, + angle: float | None = None) -> npt.NDArray[np.floating]: """Create a rectangular pixelated Gaussian PSF. This is done by evaluating the PSF function from diff --git a/psfmodel/hst.py b/src/psfmodel/hst.py similarity index 99% rename from psfmodel/hst.py rename to src/psfmodel/hst.py index 7a0408a..e2a3f5f 100755 --- a/psfmodel/hst.py +++ b/src/psfmodel/hst.py @@ -6,11 +6,10 @@ import astropy.io.fits as pyfits import numpy as np -from scipy.interpolate import RectBivariateSpline import scipy.signal as scisig +from scipy.interpolate import RectBivariateSpline -from psfmodel import PSF - +from .psf import PSF #=============================================================================== # diff --git a/psfmodel/psf.py b/src/psfmodel/psf.py similarity index 98% rename from psfmodel/psf.py rename to src/psfmodel/psf.py index 34be8a7..7e16e14 100755 --- a/psfmodel/psf.py +++ b/src/psfmodel/psf.py @@ -3,7 +3,7 @@ ################################################################################ from abc import ABC, abstractmethod -from typing import Any, Optional, cast +from typing import Any, cast import numpy as np import numpy.ma as ma @@ -83,7 +83,7 @@ def eval_rect(self, rect_size: list[int] | tuple[int, int], offset: list[float] | tuple[float, float] = (0.5, 0.5), *, - movement: Optional[tuple[float, float]] = None, + movement: tuple[float, float] | None = None, movement_granularity: float = 0.1, scale: float = 1., base: float = 0., @@ -134,7 +134,7 @@ def _eval_rect_smeared(self, rect_size: tuple[int, int], offset: tuple[float, float] = (0.5, 0.5), *, - movement: Optional[tuple[float, float]] = None, + movement: tuple[float, float] | None = None, movement_granularity: float = 0.1, scale: float = 1., base: float = 0., @@ -259,8 +259,8 @@ def _background_gradient_coeffs(shape: tuple[int, int], @staticmethod def background_gradient_fit(image: npt.NDArray[np.floating], order: int = 2, - ignore_center: Optional[int | tuple[int, int]] = None, - num_sigma: Optional[float] = None, + ignore_center: int | tuple[int, int] | None = None, + num_sigma: float | None = None, debug: bool = False ) -> tuple[npt.NDArray[np.float64] | None, npt.NDArray[np.float64] | None]: @@ -408,9 +408,9 @@ def find_position(self, search_limit: float | tuple[float, float] = (1.5, 1.5), bkgnd_degree: int | None = 2, bkgnd_ignore_center: tuple[int, int] = (2, 2), - bkgnd_num_sigma: Optional[float] = None, + bkgnd_num_sigma: float | None = None, tolerance: float = 1e-6, - num_sigma: Optional[float] = None, + num_sigma: float | None = None, max_bad_frac: float = 0.2, allow_nonzero_base: bool = False, scale_limit: float = 1000., @@ -726,9 +726,9 @@ def _find_position(self, if allow_nonzero_base: bounds += [(-1e38, 1e38)] starting_guess += [0.001] - for a_min, a_max, a_name in self._additional_params: + for a_min, a_max, _a_name in self._additional_params: bounds += [(a_min, a_max)] - starting_guess = starting_guess + [np.mean([a_min, a_max])] + starting_guess.append(np.mean([a_min, a_max])) extra_args0 = (sub_img_grad, search_limit, scale_limit, allow_nonzero_base, use_angular_params) @@ -736,7 +736,7 @@ def _find_position(self, len(self._additional_params) > 0): extra_args = extra_args0 + tuple(self._additional_params) else: - extra_args = extra_args0 + tuple([]) + extra_args = extra_args0 if self._debug_opt > 3: print('-' * 80) @@ -881,3 +881,8 @@ def _find_position(self, print('-----') return offset_y, offset_x, details + + print('hi') + +def _dead_code(): + pass diff --git a/psfmodel/py.typed b/src/psfmodel/py.typed similarity index 100% rename from psfmodel/py.typed rename to src/psfmodel/py.typed From 97e904336407b109f0bbf8572185541f9f994758 Mon Sep 17 00:00:00 2001 From: Robert French Date: Sun, 12 Apr 2026 14:24:31 -0700 Subject: [PATCH 02/17] Style cleanup, logging --- .flake8 | 9 - .mypy.ini | 15 - README.md | 6 +- pyproject.toml | 42 ++- setup.cfg | 2 - src/psfmodel/__init__.py | 4 + src/psfmodel/gaussian.py | 427 ++++++++++++++++----------- src/psfmodel/hst.py | 10 +- src/psfmodel/psf.py | 616 ++++++++++++++++++++++----------------- tests/test_gaussian.py | 448 +++++++++++++++------------- tests/test_psf.py | 40 ++- 11 files changed, 895 insertions(+), 724 deletions(-) delete mode 100644 .flake8 delete mode 100644 .mypy.ini delete mode 100644 setup.cfg diff --git a/.flake8 b/.flake8 deleted file mode 100644 index be5decf..0000000 --- a/.flake8 +++ /dev/null @@ -1,9 +0,0 @@ -[flake8] -max-line-length: 90 -exclude: hst.py -extend-ignore = - E129,E265 - # E129 visually indented line with same indent as next logical line - # E265 block comment should start with '# ' - # E266 too many leading '#' for block comment - # E265, E266 diff --git a/.mypy.ini b/.mypy.ini deleted file mode 100644 index a962210..0000000 --- a/.mypy.ini +++ /dev/null @@ -1,15 +0,0 @@ -[mypy] -strict = True -exclude = hst.py - -[mypy-astropy.*] -ignore_missing_imports = True - -[mypy-numpy.*] -ignore_missing_imports = True - -[mypy-scipy.*] -ignore_missing_imports = True - -[mypy-psfmodel._version] -ignore_missing_imports = True diff --git a/README.md b/README.md index 734a4ca..3977255 100644 --- a/README.md +++ b/README.md @@ -30,8 +30,10 @@ # Introduction -`psfmodel` is a set of classes for reading and searching star catalogs. Currently NAIF SPICE -star catalogs, the Yale Bright Star Catalog (YBSC), and UCAC4 are supported. +`psfmodel` provides abstract and concrete classes for modeling point spread functions (PSFs) +and fitting them to image data. It includes an analytic 2-D Gaussian PSF with optional +rotation, pixel integration, motion smearing, and background polynomial fitting, plus helpers +for astrometric position estimation via bounded optimization. `psfmodel` is a product of the [PDS Ring-Moon Systems Node](https://pds-rings.seti.org). diff --git a/pyproject.toml b/pyproject.toml index 54d2236..4d62135 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -9,9 +9,9 @@ description = "PSF model fitting" readme = "README.md" requires-python = ">=3.10" dependencies = [ - "astropy", - "numpy", - "scipy" + "astropy>=5.3", + "numpy>=1.24", + "scipy>=1.10" ] license = {text = "Apache-2.0"} authors = [ @@ -20,7 +20,7 @@ authors = [ maintainers = [ {name = "Robert S. French", email = "rfrench@seti.org"} ] -keywords = ["TODO"] +keywords = ["psf", "point-spread-function", "astronomy", "gaussian", "fitting"] classifiers = [ "Development Status :: 5 - Production/Stable", "Natural Language :: English", @@ -56,7 +56,7 @@ addopts = ["-n", "4", "--cov=src"] where = ["src"] [tool.setuptools.package-data] -"TODO" = ["py.typed"] +psfmodel = ["py.typed"] [tool.setuptools_scm] local_scheme = "no-local-version" @@ -66,7 +66,7 @@ write_to = "src/psfmodel/_version.py" dev = [ "psfmodel", "coverage>=7.0", - # "mypy>=1.0", + "mypy>=1.0", "pymarkdownlnt>=0.9.35", "pytest>=7.0", "pytest-cov>=4.0", @@ -92,7 +92,7 @@ docs = [ [tool.coverage.run] branch = true source = ["src"] -omit = ["tests/*", "_version.py"] +omit = ["tests/*", "_version.py", "src/psfmodel/hst.py"] [tool.coverage.report] exclude_lines = [ @@ -100,25 +100,45 @@ exclude_lines = [ "def __repr__", "raise NotImplementedError", ] -fail_under = 40 # TODO +fail_under = 40 + +[tool.pyright] +# Legacy module; same exclusion as mypy/ruff until modernized. +exclude = ["src/psfmodel/hst.py"] [tool.mypy] strict = true disallow_subclassing_any = false +exclude = [ + "src/psfmodel/hst\\.py", +] [[tool.mypy.overrides]] module = "psfmodel._version" ignore_missing_imports = true [[tool.mypy.overrides]] -# module = ["psfmodel.*"] -# ignore_missing_imports = true +module = "numpy.*" +ignore_missing_imports = true + +[[tool.mypy.overrides]] +module = "scipy.*" +ignore_missing_imports = true + +[[tool.mypy.overrides]] +module = [ + "test_gaussian", + "test_psf", +] +check_untyped_defs = false +disallow_untyped_defs = false +strict = false [tool.ruff] target-version = "py310" line-length = 100 exclude = [ - "src/psfmodel/hst.py" # TODO + "src/psfmodel/hst.py", ] [tool.ruff.format] diff --git a/setup.cfg b/setup.cfg deleted file mode 100644 index da79b55..0000000 --- a/setup.cfg +++ /dev/null @@ -1,2 +0,0 @@ -[metadata] -name = rms-psfmodel diff --git a/src/psfmodel/__init__.py b/src/psfmodel/__init__.py index 87bce59..d8f60a3 100644 --- a/src/psfmodel/__init__.py +++ b/src/psfmodel/__init__.py @@ -1,4 +1,8 @@ +import logging + from .gaussian import GaussianPSF from .psf import PSF __all__ = ['PSF', 'GaussianPSF'] + +logging.getLogger(__name__).addHandler(logging.NullHandler()) diff --git a/src/psfmodel/gaussian.py b/src/psfmodel/gaussian.py index 9b9e0f0..343dfb1 100755 --- a/src/psfmodel/gaussian.py +++ b/src/psfmodel/gaussian.py @@ -2,6 +2,7 @@ # psfmodel/gaussian.py ################################################################################ +import logging from typing import cast import numpy as np @@ -10,7 +11,7 @@ from .psf import PSF -INV_SQRT_2 = 2**(-0.5) +INV_SQRT_2 = 2 ** (-0.5) class GaussianPSF(PSF): @@ -24,14 +25,18 @@ class GaussianPSF(PSF): Because these are so fast and easy to compute, we don't cache any results. """ - def __init__(self, - *, - sigma: float | tuple[float | None, float | None] | None = None, - mean: float | tuple[float, float] = 0., - angle: float = 0., - sigma_x_range: tuple[float, float] = (0.01, 10.), - sigma_y_range: tuple[float, float] = (0.01, 10.), - angle_subsample: int = 13) -> None: + def __init__( + self, + *, + sigma: float | tuple[float | None, float | None] | None = None, + mean: float | tuple[float, float] = 0.0, + angle: float = 0.0, + sigma_x_range: tuple[float, float] = (0.01, 10.0), + sigma_y_range: tuple[float, float] = (0.01, 10.0), + angle_subsample: int = 13, + logger: logging.Logger | None = None, + detailed_logging: bool = False, + ) -> None: """Create a GaussianPSF object describing a 2-D Gaussian PSF. Parameters: @@ -50,9 +55,11 @@ def __init__(self, This is used during PSF fitting to let sigma_y float to its optimal value. angle_subsample: The amount of subsampling to do in X and Y when computing a 2-D Gaussian pixel with a non-zero angle. + logger: Optional logger passed to :class:`PSF`; see :meth:`PSF.__init__`. + detailed_logging: Passed to :class:`PSF`; see :meth:`PSF.__init__`. """ - PSF.__init__(self) + super().__init__(logger=logger, detailed_logging=detailed_logging) if not isinstance(sigma, (tuple, list)): self._sigma_y = self._sigma_x = float(sigma) if sigma is not None else None @@ -64,20 +71,20 @@ def __init__(self, else: self._mean_y, self._mean_x = float(mean[0]), float(mean[1]) self._angle = float(angle) - if (not isinstance(angle_subsample, int) or - not (0 < angle_subsample <= 99)): + if not isinstance(angle_subsample, int) or not (0 < angle_subsample <= 99): raise ValueError( - f'angle_subsample must be an int between 1 and 99, got {angle_subsample}') + f'angle_subsample must be an int between 1 and 99, got {angle_subsample}' + ) self._angle_subsample = int(angle_subsample) if self._sigma_y is None and sigma_y_range is not None: - self._additional_params.append((float(sigma_y_range[0]), - float(sigma_y_range[1]), - 'sigma_y')) + self._additional_params.append( + (float(sigma_y_range[0]), float(sigma_y_range[1]), 'sigma_y') + ) if self._sigma_x is None and sigma_x_range is not None: - self._additional_params.append((float(sigma_x_range[0]), - float(sigma_x_range[1]), - 'sigma_x')) + self._additional_params.append( + (float(sigma_x_range[0]), float(sigma_x_range[1]), 'sigma_x') + ) if self._angle is None and angle_subsample > 1: self._additional_params.append((0, np.pi, 'angle')) @@ -98,12 +105,14 @@ def mean_x(self) -> float: return self._mean_x @staticmethod - def gaussian_1d(x: float | npt.NDArray[np.floating], - *, - sigma: float = 1., - mean: float = 0., - scale: float = 1.0, - base: float = 0.) -> float | npt.NDArray[np.floating]: + def gaussian_1d( + x: float | npt.NDArray[np.floating], + *, + sigma: float = 1.0, + mean: float = 0.0, + scale: float = 1.0, + base: float = 0.0, + ) -> float | npt.NDArray[np.floating]: """Return a 1-D Gaussian. This simply returns the value of the Gaussian at a point or series of points. @@ -120,8 +129,9 @@ def gaussian_1d(x: float | npt.NDArray[np.floating], Returns: The value of the Gaussian function at the point(s) defined by x. """ - ret = (scale / np.sqrt(2*np.pi * sigma**2) * - np.exp(-(x-mean)**2 / (2 * sigma**2))) + base + ret = ( + scale / np.sqrt(2 * np.pi * sigma**2) * np.exp(-((x - mean) ** 2) / (2 * sigma**2)) + ) + base return cast(float | npt.NDArray[np.floating], ret) # @staticmethod @@ -175,16 +185,18 @@ def gaussian_1d(x: float | npt.NDArray[np.floating], # return scale * norm_fact * np.exp(-0.5 * expon) + base @staticmethod - def gaussian_2d(y: float | npt.NDArray[np.floating], - x: float | npt.NDArray[np.floating], - *, - sigma_y: float = 1., - sigma_x: float = 1., - mean_y: float = 0., - mean_x: float = 0., - scale: float = 1., - base: float = 0., - angle: float = 0.) -> float | npt.NDArray[np.floating]: + def gaussian_2d( + y: float | npt.NDArray[np.floating], + x: float | npt.NDArray[np.floating], + *, + sigma_y: float = 1.0, + sigma_x: float = 1.0, + mean_y: float = 0.0, + mean_x: float = 0.0, + scale: float = 1.0, + base: float = 0.0, + angle: float = 0.0, + ) -> float | npt.NDArray[np.floating]: """Return a 2-D Gaussian using angle (angle 0-pi, 0 at 3 o'clock, CW). This simply returns the value of the 2-D Gaussian at a series of points. @@ -220,21 +232,26 @@ def gaussian_2d(y: float | npt.NDArray[np.floating], # coordinates) c = np.cos(angle) s = np.sin(angle) - xc = c*x + s*y - yc = -s*x + c*y + xc = c * x + s * y + yc = -s * x + c * y - return (GaussianPSF.gaussian_1d(xc, sigma=sigma_x) * - GaussianPSF.gaussian_1d(yc, sigma=sigma_y) * - scale + base) + return ( + GaussianPSF.gaussian_1d(xc, sigma=sigma_x) + * GaussianPSF.gaussian_1d(yc, sigma=sigma_y) + * scale + + base + ) @staticmethod - def gaussian_integral_1d(x_min: float | npt.NDArray[np.floating], - x_max: float | npt.NDArray[np.floating], - *, - sigma: float = 1., - mean: float = 0., - scale: float = 1., - base: float = 0.) -> float | npt.NDArray[np.floating]: + def gaussian_integral_1d( + x_min: float | npt.NDArray[np.floating], + x_max: float | npt.NDArray[np.floating], + *, + sigma: float = 1.0, + mean: float = 0.0, + scale: float = 1.0, + base: float = 0.0, + ) -> float | npt.NDArray[np.floating]: """Return the integral of a Gaussian. The integral is over the limits [xmin, xmax]. @@ -260,41 +277,38 @@ def gaussian_integral_1d(x_min: float | npt.NDArray[np.floating], """ # Normalize xmin and xmax - assert sigma > 0. + assert sigma > 0.0 xmin_div_sqrt_2 = (x_min - mean) * (INV_SQRT_2 / sigma) xmax_div_sqrt_2 = (x_max - mean) * (INV_SQRT_2 / sigma) # Handle the scalar case if np.shape(x_min) == () and np.shape(x_max) == (): - ret = (0.5 * (erf(xmax_div_sqrt_2) - - erf(xmin_div_sqrt_2)) * scale) + base + ret = (0.5 * (erf(xmax_div_sqrt_2) - erf(xmin_div_sqrt_2)) * scale) + base return cast(float | npt.NDArray[np.floating], ret) # If either value is an array, broadcast to a common shape - (xmin_div_sqrt_2, - xmax_div_sqrt_2) = np.broadcast_arrays(xmin_div_sqrt_2, - xmax_div_sqrt_2) + (xmin_div_sqrt_2, xmax_div_sqrt_2) = np.broadcast_arrays(xmin_div_sqrt_2, xmax_div_sqrt_2) - result = np.abs(erf(xmax_div_sqrt_2) - erf(xmin_div_sqrt_2)) + result = erf(xmax_div_sqrt_2) - erf(xmin_div_sqrt_2) - return cast(float | npt.NDArray[np.floating], - result * 0.5 * scale + base) + return cast(float | npt.NDArray[np.floating], result * 0.5 * scale + base) @staticmethod - def gaussian_integral_2d(y_min: float | npt.NDArray[np.floating], - y_max: float | npt.NDArray[np.floating], - x_min: float | npt.NDArray[np.floating], - x_max: float | npt.NDArray[np.floating], - *, - sigma_y: float = 1., - sigma_x: float = 1., - mean_y: float = 0., - mean_x: float = 0., - scale: float = 1., - base: float = 0., - angle: float = 0., - angle_subsample: int = 13 - ) -> float | npt.NDArray[np.floating]: + def gaussian_integral_2d( + y_min: float | npt.NDArray[np.floating], + y_max: float | npt.NDArray[np.floating], + x_min: float | npt.NDArray[np.floating], + x_max: float | npt.NDArray[np.floating], + *, + sigma_y: float = 1.0, + sigma_x: float = 1.0, + mean_y: float = 0.0, + mean_x: float = 0.0, + scale: float = 1.0, + base: float = 0.0, + angle: float = 0.0, + angle_subsample: int = 13, + ) -> float | npt.NDArray[np.floating]: """Return the double integral of a 2-D Gaussian. The integral is over the limits [y_min, y_max] and [x_min, x_max]. @@ -327,25 +341,36 @@ def gaussian_integral_2d(y_min: float | npt.NDArray[np.floating], The integral of the 2-D Gaussian between y_min and y_max, and x_min and x_max. """ - if angle == 0.: - return (GaussianPSF.gaussian_integral_1d(y_min, y_max, - sigma=sigma_y, mean=mean_y) * - GaussianPSF.gaussian_integral_1d(x_min, x_max, - sigma=sigma_x, mean=mean_x) * - scale + base) + if angle == 0.0: + return ( + GaussianPSF.gaussian_integral_1d(y_min, y_max, sigma=sigma_y, mean=mean_y) + * GaussianPSF.gaussian_integral_1d(x_min, x_max, sigma=sigma_x, mean=mean_x) + * scale + + base + ) # Handle the scalar case - if (np.shape(x_min) == () and np.shape(x_max) == () and - np.shape(y_min) == () and np.shape(y_max) == ()): + if ( + np.shape(x_min) == () + and np.shape(x_max) == () + and np.shape(y_min) == () + and np.shape(y_max) == () + ): ys = np.linspace(y_min, y_max, angle_subsample) xs = np.linspace(x_min, x_max, angle_subsample) xindex, yindex = np.meshgrid(xs, ys) - ret = GaussianPSF.gaussian_2d(yindex, xindex, - sigma_y=sigma_y, sigma_x=sigma_x, - mean_y=mean_y, mean_x=mean_x, - scale=scale, base=base, - angle=angle) + ret = GaussianPSF.gaussian_2d( + yindex, + xindex, + sigma_y=sigma_y, + sigma_x=sigma_x, + mean_y=mean_y, + mean_x=mean_x, + scale=scale, + base=base, + angle=angle, + ) return cast(float, np.mean(ret)) x_min, x_max, y_min, y_max = np.broadcast_arrays(x_min, x_max, y_min, y_max) @@ -355,26 +380,35 @@ def gaussian_integral_2d(y_min: float | npt.NDArray[np.floating], xs = np.linspace(x_min[x], x_max[x], angle_subsample) xindex, yindex = np.meshgrid(xs, ys) - ret = GaussianPSF.gaussian_2d(yindex, xindex, - sigma_y=sigma_y, sigma_x=sigma_x, - mean_y=mean_y, mean_x=mean_x, - scale=scale, base=base, - angle=angle) + ret = GaussianPSF.gaussian_2d( + yindex, + xindex, + sigma_y=sigma_y, + sigma_x=sigma_x, + mean_y=mean_y, + mean_x=mean_x, + scale=scale, + base=base, + angle=angle, + ) res[x] = np.mean(ret) return res - def eval_point(self, - coord: (tuple[float | npt.NDArray[np.floating], - float | npt.NDArray[np.floating]] | - npt.NDArray[np.floating]), - *, - sigma: float | None = None, - scale: float = 1., - base: float = 0., - sigma_y: float | None = None, - sigma_x: float | None = None, - angle: float | None = None) -> float | npt.NDArray[np.floating]: + def eval_point( + self, + coord: ( + tuple[float | npt.NDArray[np.floating], float | npt.NDArray[np.floating]] + | npt.NDArray[np.floating] + ), + *, + sigma: float | None = None, + scale: float = 1.0, + base: float = 0.0, + sigma_y: float | None = None, + sigma_x: float | None = None, + angle: float | None = None, + ) -> float | npt.NDArray[np.floating]: """Evaluate the 2-D Gaussian PSF at a single, fractional, point. (0, 0) is the center of the PSF and x and y may be negative. @@ -401,8 +435,9 @@ def eval_point(self, sy = self._sigma_y sx = self._sigma_x - if ((sx is not None and (sigma is not None or sigma_x is not None)) or - (sy is not None and (sigma is not None or sigma_y is not None))): + if (sx is not None and (sigma is not None or sigma_x is not None)) or ( + sy is not None and (sigma is not None or sigma_y is not None) + ): raise ValueError('Cannot specify both sigma during init and sigma_y/x') if sigma is not None: @@ -417,33 +452,45 @@ def eval_point(self, sx = sigma_x if sx is None or sy is None: - raise ValueError('Sigma X and Y must be specified either at object creation ' - 'or in the call to eval_point') + raise ValueError( + 'Sigma X and Y must be specified either at object creation ' + 'or in the call to eval_point' + ) r = self._angle if angle is not None: r = angle - ret = GaussianPSF.gaussian_2d(coord[0], coord[1], - sigma_y=sy, sigma_x=sx, - mean_y=self._mean_y, mean_x=self._mean_x, - scale=scale, base=base, angle=r) + ret = GaussianPSF.gaussian_2d( + coord[0], + coord[1], + sigma_y=sy, + sigma_x=sx, + mean_y=self._mean_y, + mean_x=self._mean_x, + scale=scale, + base=base, + angle=r, + ) return cast(float, ret) - def eval_pixel(self, - coord: (tuple[int | npt.NDArray[np.int_], - int | npt.NDArray[np.int_]] | - npt.NDArray[np.floating]), - offset: (tuple[float | npt.NDArray[np.floating], - float | npt.NDArray[np.floating]] | - npt.NDArray[np.floating]) = (0.5, 0.5), - *, - scale: float = 1., - base: float = 0., - sigma: tuple[float, float] | None = None, - sigma_y: float | None = None, - sigma_x: float | None = None, - angle: float | None = None) -> float | npt.NDArray[np.floating]: + def eval_pixel( + self, + coord: ( + tuple[int | npt.NDArray[np.int_], int | npt.NDArray[np.int_]] | npt.NDArray[np.floating] + ), + offset: ( + tuple[float | npt.NDArray[np.floating], float | npt.NDArray[np.floating]] + | npt.NDArray[np.floating] + ) = (0.5, 0.5), + *, + scale: float = 1.0, + base: float = 0.0, + sigma: tuple[float, float] | None = None, + sigma_y: float | None = None, + sigma_x: float | None = None, + angle: float | None = None, + ) -> float | npt.NDArray[np.floating]: """Evaluate the Gaussian PSF integrated over an entire integer pixel. The returned array has the PSF offset from the center by (offset_y, offset_x). An @@ -478,8 +525,9 @@ def eval_pixel(self, sy = self._sigma_y sx = self._sigma_x - if ((sx is not None and (sigma is not None or sigma_x is not None)) or - (sy is not None and (sigma is not None or sigma_y is not None))): + if (sx is not None and (sigma is not None or sigma_x is not None)) or ( + sy is not None and (sigma is not None or sigma_y is not None) + ): raise ValueError('Cannot specify both sigma during init and sigma_y/x') if sigma is not None: @@ -498,62 +546,80 @@ def eval_pixel(self, r = angle if sx is None or sy is None: - raise ValueError('Sigma X and Y must be specified either at object creation ' - 'or in the call to eval_pixel') + raise ValueError( + 'Sigma X and Y must be specified either at object creation ' + 'or in the call to eval_pixel' + ) # There is a bug in type checking below? - ret = GaussianPSF.gaussian_integral_2d(coord[0]-offset[0], - coord[0]-offset[0]+1., - coord[1]-offset[1], - coord[1]-offset[1]+1, # type: ignore - sigma_y=sy, sigma_x=sx, - mean_y=self._mean_y, mean_x=self._mean_x, - scale=scale, base=base, angle=r, - angle_subsample=self._angle_subsample) + ret = GaussianPSF.gaussian_integral_2d( + coord[0] - offset[0], + coord[0] - offset[0] + 1.0, + coord[1] - offset[1], + coord[1] - offset[1] + 1.0, + sigma_y=sy, + sigma_x=sx, + mean_y=self._mean_y, + mean_x=self._mean_x, + scale=scale, + base=base, + angle=r, + angle_subsample=self._angle_subsample, + ) return ret - def _eval_rect(self, # type: ignore - rect_size: tuple[int, int], - offset: tuple[float, float] = (0.5, 0.5), - *, - scale: float = 1., - base: float = 0., - sigma: tuple[float, float] | None = None, - sigma_y: float | None = None, - sigma_x: float | None = None, - angle: float | None = None - ) -> npt.NDArray[np.floating]: + def _eval_rect( # type: ignore[override] + self, + rect_size: tuple[int, int], + offset: tuple[float, float] = (0.5, 0.5), + *, + scale: float = 1.0, + base: float = 0.0, + sigma: tuple[float, float] | None = None, + sigma_y: float | None = None, + sigma_x: float | None = None, + angle: float | None = None, + ) -> npt.NDArray[np.floating]: rect_size_y, rect_size_x = rect_size - y_coords = np.repeat(np.arange(-(rect_size_y//2), rect_size_y//2+1, - dtype=np.float64), - rect_size_x) - x_coords = np.tile(np.arange(-(rect_size_x//2), rect_size_x//2+1, - dtype=np.float64), - rect_size_y) + y_coords = np.repeat( + np.arange(-(rect_size_y // 2), rect_size_y // 2 + 1, dtype=np.float64), rect_size_x + ) + x_coords = np.tile( + np.arange(-(rect_size_x // 2), rect_size_x // 2 + 1, dtype=np.float64), rect_size_y + ) coords = np.empty((2, rect_size_y * rect_size_x)) coords[0] = y_coords coords[1] = x_coords - rect = self.eval_pixel(coords, offset, - scale=scale, base=base, sigma=sigma, - sigma_y=sigma_y, sigma_x=sigma_x, angle=angle) + rect = self.eval_pixel( + coords, + offset, + scale=scale, + base=base, + sigma=sigma, + sigma_y=sigma_y, + sigma_x=sigma_x, + angle=angle, + ) rect = cast(npt.NDArray[np.floating], rect) rect = rect.reshape(rect_size) return rect - def eval_rect(self, # type: ignore - rect_size: tuple[int, int], - offset: tuple[float, float] = (0.5, 0.5), - *, - movement: tuple[float, float] | None = None, - movement_granularity: float = 0.1, - scale: float = 1., - base: float = 0., - sigma: tuple[float, float] | None = None, - sigma_y: float | None = None, - sigma_x: float | None = None, - angle: float | None = None) -> npt.NDArray[np.floating]: + def eval_rect( # type: ignore[override] + self, + rect_size: tuple[int, int], + offset: tuple[float, float] = (0.5, 0.5), + *, + movement: tuple[float, float] | None = None, + movement_granularity: float = 0.1, + scale: float = 1.0, + base: float = 0.0, + sigma: tuple[float, float] | None = None, + sigma_y: float | None = None, + sigma_x: float | None = None, + angle: float | None = None, + ) -> npt.NDArray[np.floating]: """Create a rectangular pixelated Gaussian PSF. This is done by evaluating the PSF function from @@ -594,15 +660,20 @@ def eval_rect(self, # type: ignore rect_size_y, rect_size_x = rect_size - if (rect_size_y < 0 or rect_size_x < 0 - or rect_size_y % 2 != 1 or rect_size_x % 2 != 1): + if rect_size_y < 0 or rect_size_x < 0 or rect_size_y % 2 != 1 or rect_size_x % 2 != 1: raise ValueError( - 'Rectangle must have odd positive shape in each dimension, ' - f'got {rect_size}') - - return self._eval_rect_smeared(rect_size, offset=offset, - movement=movement, - movement_granularity=movement_granularity, - scale=scale, base=base, - sigma=sigma, sigma_y=sigma_y, sigma_x=sigma_x, - angle=angle) + f'Rectangle must have odd positive shape in each dimension, got {rect_size}' + ) + + return self._eval_rect_smeared( + rect_size, + offset=offset, + movement=movement, + movement_granularity=movement_granularity, + scale=scale, + base=base, + sigma=sigma, + sigma_y=sigma_y, + sigma_x=sigma_x, + angle=angle, + ) diff --git a/src/psfmodel/hst.py b/src/psfmodel/hst.py index e2a3f5f..73dc07f 100755 --- a/src/psfmodel/hst.py +++ b/src/psfmodel/hst.py @@ -267,9 +267,17 @@ def __init__(self, instrument, detector, filter, line=None, sample=None, jitter_x/y/z The amount of jitter (in mas) to apply to the PSF; z is the angle; None means use the default for the instrument/detector + + Additional keyword arguments are passed to :class:`PSF`: ``logger`` and + ``detailed_logging`` (see :meth:`PSF.__init__`). """ - PSF.__init__(self, movement, movement_granularity) + _logger = kwargs.pop('logger', None) + _detailed_logging = bool(kwargs.pop('detailed_logging', False)) + PSF.__init__(self, logger=_logger, detailed_logging=_detailed_logging) + + self.movement = movement if movement is not None else (0.0, 0.0) + self.movement_granularity = movement_granularity self.instrument = instrument self.detector = detector diff --git a/src/psfmodel/psf.py b/src/psfmodel/psf.py index 7e16e14..048ee30 100755 --- a/src/psfmodel/psf.py +++ b/src/psfmodel/psf.py @@ -1,7 +1,8 @@ ################################################################################ -# psfmodel/__init__.py +# psfmodel/psf.py ################################################################################ +import logging from abc import ABC, abstractmethod from typing import Any, cast @@ -21,21 +22,40 @@ class PSF(ABC): """Abstract superclass for classes that model different types of PSFs.""" - def __init__(self, - **kwargs: Any) -> None: - """Create a PSF object. Only called by subclasses.""" + def __init__( + self, + *, + logger: logging.Logger | None = None, + detailed_logging: bool = False, + **kwargs: Any, + ) -> None: + """Create a PSF object. Only called by subclasses. - self._debug_opt = 0 + Parameters: + logger: Logger for diagnostic messages from this instance. If omitted, + uses :func:`logging.getLogger` with this module's ``__name__``. + detailed_logging: If True, emit INFO and DEBUG messages during fitting + (for example from :meth:`find_position`). Optimizer failure still logs + at WARNING when this is False. + **kwargs: Reserved for subclass forward-compatibility; unknown names are + ignored. + """ + + self._logger = logger if logger is not None else logging.getLogger(__name__) + self.detailed_logging = detailed_logging self._additional_params: list[Any] = [] @abstractmethod - def eval_point(self, - coord: (tuple[float | npt.NDArray[np.floating], - float | npt.NDArray[np.floating]] | - npt.NDArray[np.floating]), - *, - scale: float = 1., - base: float = 0.) -> float | npt.NDArray[np.floating]: + def eval_point( + self, + coord: ( + tuple[float | npt.NDArray[np.floating], float | npt.NDArray[np.floating]] + | npt.NDArray[np.floating] + ), + *, + scale: float = 1.0, + base: float = 0.0, + ) -> float | npt.NDArray[np.floating]: """Evaluate the PSF at a single, fractional, point. (0, 0) is the center of the PSF and x and y may be negative. @@ -79,15 +99,17 @@ def eval_point(self, # ... @abstractmethod - def eval_rect(self, - rect_size: list[int] | tuple[int, int], - offset: list[float] | tuple[float, float] = (0.5, 0.5), - *, - movement: tuple[float, float] | None = None, - movement_granularity: float = 0.1, - scale: float = 1., - base: float = 0., - **kwargs: Any) -> npt.NDArray[np.float64]: + def eval_rect( + self, + rect_size: list[int] | tuple[int, int], + offset: list[float] | tuple[float, float] = (0.5, 0.5), + *, + movement: tuple[float, float] | None = None, + movement_granularity: float = 0.1, + scale: float = 1.0, + base: float = 0.0, + **kwargs: Any, + ) -> npt.NDArray[np.float64]: """Create a rectangular pixelated PSF. This is done by evaluating the PSF function from @@ -120,25 +142,28 @@ def eval_rect(self, ... # pragma: no cover @abstractmethod - def _eval_rect(self, - rect_size: tuple[int, int], - offset: tuple[float, float] = (0.5, 0.5), - *, - scale: float = 1., - base: float = 0.) -> npt.NDArray[np.float64]: - """Internal function to create a rectangular pixelated PSF without other checks. - """ + def _eval_rect( + self, + rect_size: tuple[int, int], + offset: tuple[float, float] = (0.5, 0.5), + *, + scale: float = 1.0, + base: float = 0.0, + ) -> npt.NDArray[np.float64]: + """Internal function to create a rectangular pixelated PSF without other checks.""" ... # pragma: no cover - def _eval_rect_smeared(self, - rect_size: tuple[int, int], - offset: tuple[float, float] = (0.5, 0.5), - *, - movement: tuple[float, float] | None = None, - movement_granularity: float = 0.1, - scale: float = 1., - base: float = 0., - **kwargs: Any) -> npt.NDArray[np.floating]: + def _eval_rect_smeared( + self, + rect_size: tuple[int, int], + offset: tuple[float, float] = (0.5, 0.5), + *, + movement: tuple[float, float] | None = None, + movement_granularity: float = 0.1, + scale: float = 1.0, + base: float = 0.0, + **kwargs: Any, + ) -> npt.NDArray[np.floating]: """Evaluate and sum a PSF multiple times to simulate motion blur. Parameters: @@ -157,46 +182,44 @@ def _eval_rect_smeared(self, """ if movement is None or (movement[0] == 0 and movement[1] == 0): - return self._eval_rect(rect_size, offset=offset, - scale=scale, base=base, **kwargs) + return self._eval_rect(rect_size, offset=offset, scale=scale, base=base, **kwargs) - num_steps = int(max(abs(movement[0]) / movement_granularity, - abs(movement[1]) / movement_granularity)) + num_steps = int( + max(abs(movement[0]) / movement_granularity, abs(movement[1]) / movement_granularity) + ) if num_steps == 0: - step_y = 0. - step_x = 0. + step_y = 0.0 + step_x = 0.0 else: step_y = movement[0] / num_steps step_x = movement[1] / num_steps total_rect = None - for step in range(num_steps+1): - y = offset[0] + step_y*(step - num_steps/2.) - x = offset[1] + step_x*(step - num_steps/2.) + for step in range(num_steps + 1): + y = offset[0] + step_y * (step - num_steps / 2.0) + x = offset[1] + step_x * (step - num_steps / 2.0) - rect = self._eval_rect(rect_size, offset=(y, x), - scale=scale, base=base, **kwargs) + rect = self._eval_rect(rect_size, offset=(y, x), scale=scale, base=base, **kwargs) if total_rect is None: total_rect = rect else: total_rect += rect assert total_rect is not None - total_rect /= float(num_steps+1) + total_rect /= float(num_steps + 1) return total_rect - #========================================================================== + # ========================================================================== # # Static functions for creating background gradients # - #========================================================================== + # ========================================================================== @staticmethod - def _background_gradient_coeffs(shape: tuple[int, int], - order: int) -> npt.NDArray[np.float64]: + def _background_gradient_coeffs(shape: tuple[int, int], order: int) -> npt.NDArray[np.float64]: """Internal routine for creating the coefficient matrix. Fundamentally this creates a coefficient matrix indicating the powers of different @@ -218,8 +241,7 @@ def _background_gradient_coeffs(shape: tuple[int, int], """ if shape[0] < 0 or shape[1] < 0 or shape[0] % 2 != 1 or shape[1] % 2 != 1: - raise ValueError( - f'Image must have odd positive shape in each dimension, got {shape}') + raise ValueError(f'Image must have odd positive shape in each dimension, got {shape}') if order < 0: raise ValueError(f'Order must be non-negative, got {order}') @@ -228,15 +250,15 @@ def _background_gradient_coeffs(shape: tuple[int, int], y_values = np.arange(shape[0])[:, np.newaxis] - int(shape[0] / 2) x_values = np.arange(shape[1])[np.newaxis, :] - int(shape[1] / 2) - y_powers: list[float | npt.NDArray[np.floating]] = [1.] - x_powers: list[float | npt.NDArray[np.floating]] = [1.] + y_powers: list[float | npt.NDArray[np.floating]] = [1.0] + x_powers: list[float | npt.NDArray[np.floating]] = [1.0] - nparams = int((order+1) * (order+2) / 2) + nparams = int((order + 1) * (order + 2) / 2) a3d = np.empty((shape[0], shape[1], nparams)) - a3d[:, :, 0] = 1. # This is the constant term of the polynomial + a3d[:, :, 0] = 1.0 # This is the constant term of the polynomial k = 0 # Parameter number - for p in range(1, order+1): + for p in range(1, order + 1): # This creates, sequentially, L, L**2, L**3... and S, S**2, S**3... y_powers.append(y_powers[-1] * y_values) x_powers.append(x_powers[-1] * x_values) @@ -250,20 +272,22 @@ def _background_gradient_coeffs(shape: tuple[int, int], # X*Y # Y**2 # X**2 - for q in range(p+1): + for q in range(p + 1): k += 1 - a3d[:, :, k] = y_powers[q] * x_powers[p-q] + a3d[:, :, k] = y_powers[q] * x_powers[p - q] return a3d @staticmethod - def background_gradient_fit(image: npt.NDArray[np.floating], - order: int = 2, - ignore_center: int | tuple[int, int] | None = None, - num_sigma: float | None = None, - debug: bool = False - ) -> tuple[npt.NDArray[np.float64] | None, - npt.NDArray[np.float64] | None]: + def background_gradient_fit( + image: npt.NDArray[np.floating], + order: int = 2, + ignore_center: int | tuple[int, int] | None = None, + num_sigma: float | None = None, + debug: bool = False, + *, + logger: logging.Logger | None = None, + ) -> tuple[npt.NDArray[np.float64] | None, npt.NDArray[np.float64] | None]: """Return the polynomial fit to the pixels of an image. Parameters: @@ -275,18 +299,25 @@ def background_gradient_fit(image: npt.NDArray[np.floating], num_sigma: The number of sigma a pixel needs to be beyond the background gradient to be ignored. None means don't ignore bad pixels. debug: Set to debug bad pixel removal. + logger: Logger for debug messages; defaults to this module's logger. Returns: A tuple of the background coefficient array and the mask of ignored pixels. """ + fit_logger = logger if logger is not None else logging.getLogger(__name__) + if len(image.shape) != 2: - raise ValueError('Image must be 2-D, got {image.shape}') - if (image.shape[0] < 0 or image.shape[1] < 0 or - image.shape[0] % 2 != 1 or image.shape[1] % 2 != 1): + raise ValueError(f'Image must be 2-D, got {image.shape}') + if ( + image.shape[0] < 0 + or image.shape[1] < 0 + or image.shape[0] % 2 != 1 + or image.shape[1] % 2 != 1 + ): raise ValueError( - 'Image must have odd positive shape in each dimension, got ' - f'{image.shape}') + f'Image must have odd positive shape in each dimension, got {image.shape}' + ) if order < 0: raise ValueError(f'Order must be non-negative, got {order}') @@ -302,8 +333,7 @@ def background_gradient_fit(image: npt.NDArray[np.floating], image = image.view(ma.MaskedArray) if isinstance(image, ma.MaskedArray): - image.mask = cast(npt.NDArray[np.bool_], - ma.getmaskarray(image)) # type: ignore + image.mask = cast(npt.NDArray[np.bool_], ma.getmaskarray(image)) is_masked = True if ignore_center is not None: @@ -312,23 +342,26 @@ def background_gradient_fit(image: npt.NDArray[np.floating], ignore_x = ignore_center else: ignore_y, ignore_x = ignore_center - if ignore_y*2+1 >= shape[0] or ignore_x*2+1 >= shape[1]: + if ignore_y * 2 + 1 >= shape[0] or ignore_x * 2 + 1 >= shape[1]: if debug: # pragma: no cover - print('BKGND CENTER IGNORED IS ENTIRE IMAGE') # XXX + fit_logger.debug('Background fit: ignore_center covers entire image') return None, None ctr_y = shape[0] // 2 ctr_x = shape[1] // 2 - image[ctr_y-ignore_y:ctr_y+ignore_y+1, - ctr_x-ignore_x:ctr_x+ignore_x+1] = ma.masked + image[ + ctr_y - ignore_y : ctr_y + ignore_y + 1, ctr_x - ignore_x : ctr_x + ignore_x + 1 + ] = ma.masked - nparams = int((order+1) * (order+2) // 2) + nparams = int((order + 1) * (order + 2) // 2) a3d = PSF._background_gradient_coeffs(shape, order) if num_sigma is not None: num_bad_pixels = cast(int, ma.count_masked(image)) # type: ignore if debug: # pragma: no cover - print('BKGND GRAD INIT # BAD', num_bad_pixels) + fit_logger.debug( + 'Background gradient fit: initial masked pixel count %s', num_bad_pixels + ) while True: # Reshape properly for linalg.lstsq @@ -338,11 +371,13 @@ def background_gradient_fit(image: npt.NDArray[np.floating], if is_masked: # linalg doesn't support masked arrays! a2d = a2d[~b1d.mask] # type: ignore - b1d = ma.compressed(b1d) # type: ignore + b1d = ma.compressed(b1d) if a2d.shape[0] < a2d.shape[1]: # Underconstrained if debug: # pragma: no cover - print('BKGND UNDERCONSTRAINED', a2d.shape) + fit_logger.debug( + 'Background gradient fit: underconstrained system %s', a2d.shape + ) return None, None coeffts = linalg.lstsq(a2d, b1d)[0] @@ -358,12 +393,14 @@ def background_gradient_fit(image: npt.NDArray[np.floating], delta_img = image - gradient sigma = np.std(delta_img) worst_sigma = np.max(np.abs(delta_img)) - if worst_sigma >= sigma*num_sigma: + if worst_sigma >= sigma * num_sigma: image[np.abs(delta_img) >= worst_sigma] = ma.masked new_num_bad_pixels = cast(int, ma.count_masked(image)) # type: ignore if debug: # pragma: no cover - print('BKGD GRAD NEW # BAD', new_num_bad_pixels) + fit_logger.debug( + 'Background gradient fit: masked pixel count now %s', new_num_bad_pixels + ) if new_num_bad_pixels == num_bad_pixels: break num_bad_pixels = new_num_bad_pixels @@ -374,8 +411,9 @@ def background_gradient_fit(image: npt.NDArray[np.floating], return coeffts, np.zeros(shape, dtype=np.bool_) @staticmethod - def background_gradient(rect_size: tuple[int, int], - bkgnd_params: npt.ArrayLike) -> npt.NDArray[np.float64]: + def background_gradient( + rect_size: tuple[int, int], bkgnd_params: npt.ArrayLike + ) -> npt.NDArray[np.float64]: """Create a background gradient. Parameters: @@ -387,35 +425,36 @@ def background_gradient(rect_size: tuple[int, int], bkgnd_params = np.array(bkgnd_params) - order = int(np.sqrt(len(bkgnd_params)*2))-1 + order = int(np.sqrt(len(bkgnd_params) * 2)) - 1 a3d = PSF._background_gradient_coeffs(rect_size, order) result = np.sum(bkgnd_params * a3d, axis=-1) return cast(npt.NDArray[np.float64], result) - #========================================================================== + # ========================================================================== # # Functions for finding astrometric positions # - #========================================================================== - - def find_position(self, - image: npt.NDArray[np.floating], - box_size: tuple[int, int], - starting_point: tuple[float, float], - *, - search_limit: float | tuple[float, float] = (1.5, 1.5), - bkgnd_degree: int | None = 2, - bkgnd_ignore_center: tuple[int, int] = (2, 2), - bkgnd_num_sigma: float | None = None, - tolerance: float = 1e-6, - num_sigma: float | None = None, - max_bad_frac: float = 0.2, - allow_nonzero_base: bool = False, - scale_limit: float = 1000., - use_angular_params: bool = True - ) -> None | tuple[float, float, dict[str, Any]]: + # ========================================================================== + + def find_position( + self, + image: npt.NDArray[np.floating], + box_size: tuple[int, int], + starting_point: tuple[float, float], + *, + search_limit: float | tuple[float, float] = (1.5, 1.5), + bkgnd_degree: int | None = 2, + bkgnd_ignore_center: tuple[int, int] = (2, 2), + bkgnd_num_sigma: float | None = None, + tolerance: float = 1e-6, + num_sigma: float | None = None, + max_bad_frac: float = 0.2, + allow_nonzero_base: bool = False, + scale_limit: float = 1000.0, + use_angular_params: bool = True, + ) -> None | tuple[float, float, dict[str, Any]]: """Find the (y, x) coordinates that best fit a 2-D PSF to an image. Parameters: @@ -474,8 +513,10 @@ def find_position(self, 'gradient' The box_size background gradient. 'subimg-gradient' The subimg with the background gradient subtracted. - 'psf' The unit-scale and zero-base PSF. - 'scaled_psf' The fully scaled PSF with the base added. + 'psf' The PSF model from eval_rect with the fitted + scale and base (same array as scaled_psf). + 'scaled_psf' Same as psf; model to compare to + subimg-gradient during outlier rejection. 'leastsq_cov' The covariance matrix returned by leastsq as adjusted by the residual variance. 'leastsq_infodict' The infodict returned by leastsq. @@ -487,54 +528,73 @@ def find_position(self, the uncertainty ('param' and 'param_err'). """ - if (box_size[0] < 0 or box_size[1] < 0 or - box_size[0] % 2 != 1 or box_size[1] % 2 != 1): + if box_size[0] < 0 or box_size[1] < 0 or box_size[0] % 2 != 1 or box_size[1] % 2 != 1: raise ValueError( - 'box_size must have odd positive shape in each dimension, ' - f'got {box_size}') + f'box_size must have odd positive shape in each dimension, got {box_size}' + ) half_box_size_y = box_size[0] // 2 half_box_size_x = box_size[1] // 2 - starting_pix = (int(starting_point[0]), - int(starting_point[1])) - - if self._debug_opt: - print('>> Entering psfmodel:find_position') - print('Image is masked', isinstance(image, ma.MaskedArray)) - print('Image num masked', np.sum(ma.getmaskarray(image))) # type: ignore - print('Image min, max, mean', np.min(image), np.max(image), np.mean(image)) - print('Box size', box_size) - print('Starting point', starting_point) - print('Search limit', search_limit) - print('Bkgnd degree', bkgnd_degree) - print('Bkgnd ignore center', bkgnd_ignore_center) - print('Bkgnd num sigma', bkgnd_num_sigma) - print('Tolerance', tolerance) - print('Num sigma', num_sigma) - print('Max bad frac', max_bad_frac) - print('Allow nonzero base', allow_nonzero_base) - print('Scale limit', scale_limit) - print('Use angular params', use_angular_params) - print('-----') + starting_pix = (int(starting_point[0]), int(starting_point[1])) + + if self.detailed_logging: + self._logger.info('find_position: entering') + self._logger.info( + 'find_position: image masked=%s num_masked=%s', + isinstance(image, ma.MaskedArray), + int(np.sum(ma.getmaskarray(image))), + ) + self._logger.info( + 'find_position: image min=%s max=%s mean=%s', + float(np.min(image)), + float(np.max(image)), + float(np.mean(image)), + ) + self._logger.info( + 'find_position: box_size=%s starting_point=%s search_limit=%s', + box_size, + starting_point, + search_limit, + ) + self._logger.info( + 'find_position: bkgnd_degree=%s bkgnd_ignore_center=%s ' + 'bkgnd_num_sigma=%s tolerance=%s num_sigma=%s max_bad_frac=%s ' + 'allow_nonzero_base=%s scale_limit=%s use_angular_params=%s', + bkgnd_degree, + bkgnd_ignore_center, + bkgnd_num_sigma, + tolerance, + num_sigma, + max_bad_frac, + allow_nonzero_base, + scale_limit, + use_angular_params, + ) # Too close to the edge means we can't search - if (starting_pix[0] - half_box_size_y < 0 or - starting_pix[0] + half_box_size_y >= image.shape[0] or - starting_pix[1] - half_box_size_x < 0 or - starting_pix[1] + half_box_size_x >= image.shape[1]): - if self._debug_opt: - print('Too close to the edge - search impossible') + if ( + starting_pix[0] - half_box_size_y < 0 + or starting_pix[0] + half_box_size_y >= image.shape[0] + or starting_pix[1] - half_box_size_x < 0 + or starting_pix[1] + half_box_size_x >= image.shape[1] + ): + if self.detailed_logging: + self._logger.info('find_position: too close to image edge, aborting') return None - sub_img = image[starting_pix[0] - half_box_size_y: - starting_pix[0] + half_box_size_y+1, - starting_pix[1] - half_box_size_x: - starting_pix[1] + half_box_size_x+1] + sub_img = image[ + starting_pix[0] - half_box_size_y : starting_pix[0] + half_box_size_y + 1, + starting_pix[1] - half_box_size_x : starting_pix[1] + half_box_size_x + 1, + ] - if self._debug_opt: - print('Sub img min, max, mean', np.min(sub_img), np.max(sub_img), - np.mean(sub_img)) + if self.detailed_logging: + self._logger.info( + 'find_position: subimage min=%s max=%s mean=%s', + float(np.min(sub_img)), + float(np.max(sub_img)), + float(np.mean(sub_img)), + ) if not isinstance(search_limit, (list, tuple)): search_limit = (float(search_limit), float(search_limit)) @@ -549,16 +609,22 @@ def find_position(self, num_bad_pixels = 0 while True: - if self._debug_opt > 1: - print('MAIN LOOP: FIND POS, # BAD PIXELS', num_bad_pixels) - ret = self._find_position(sub_img, - search_limit, scale_limit, - bkgnd_degree, bkgnd_ignore_center, - bkgnd_num_sigma, tolerance, - allow_nonzero_base, use_angular_params) + if self.detailed_logging: + self._logger.debug('find_position: outer loop bad_pixel_count=%s', num_bad_pixels) + ret = self._find_position( + sub_img, + search_limit, + scale_limit, + bkgnd_degree, + bkgnd_ignore_center, + bkgnd_num_sigma, + tolerance, + allow_nonzero_base, + use_angular_params, + ) if ret is None: - if self._debug_opt: - print('find_position returned None') + if self.detailed_logging: + self._logger.info('find_position: inner fit returned None') return None res_y, res_x, details = ret @@ -566,53 +632,54 @@ def find_position(self, if not num_sigma: break - resid = np.sqrt((details['subimg-gradient'] - details['scaled_psf'])**2) + resid = np.sqrt((details['subimg-gradient'] - details['scaled_psf']) ** 2) resid_std = np.std(resid) - if self._debug_opt > 1: - print('MAIN LOOP: Resid', resid) - print('resid_std', resid_std) + if self.detailed_logging: + self._logger.debug('find_position: residual per pixel=%s', resid) + self._logger.debug('find_position: resid_std=%s', resid_std) if num_sigma is not None: - sub_img[np.where(resid > num_sigma*resid_std)] = ma.masked + sub_img[np.where(resid > num_sigma * resid_std)] = ma.masked new_num_bad_pixels = ma.count_masked(sub_img) # type: ignore if new_num_bad_pixels == num_bad_pixels: break if new_num_bad_pixels == sub_img.size: - if self._debug_opt: - print('MAIN LOOP: All pixels masked - find_position returning None') + if self.detailed_logging: + self._logger.info('find_position: all pixels masked, returning None') return None # All masked - if new_num_bad_pixels > max_bad_frac*sub_img.size: - if self._debug_opt: - print('MAIN LOOP: Too many pixels masked - ' - 'find_position returning None') + if new_num_bad_pixels > max_bad_frac * sub_img.size: + if self.detailed_logging: + self._logger.info('find_position: too many pixels masked, returning None') return None # Too many masked num_bad_pixels = new_num_bad_pixels - if self._debug_opt: - msg = f'find_position returning Y {res_y+starting_pix[0]:.4f}' + if self.detailed_logging: + msg = f'find_position returning Y {res_y + starting_pix[0]:.4f}' # if details['y_err'] is not None: # msg += f' +/- {details["y_err"]:.4f}' - msg += f' X {res_x+starting_pix[1]:.4f}' + msg += f' X {res_x + starting_pix[1]:.4f}' # if details['x_err'] is not None: # msg += ' +/- {details["x_err"]:.4f}' if details['scale'] is not None: msg += f' Scale {details["scale"]:.4f} Base {details["base"]:.4f}' if 'sigma_y' in details: msg += f' SY {details["sigma_y"]:.4f} SX {details["sigma_x"]:.4f}' - print(msg) + self._logger.info(msg) return res_y + starting_pix[0], res_x + starting_pix[1], details - def _fit_psf_func(self, - params: tuple[float, ...], - sub_img: npt.NDArray[np.floating], - search_limit: tuple[float, float], - scale_limit: float, - allow_nonzero_base: bool, - use_angular_params: bool, - *additional_params: Any) -> float: + def _fit_psf_func( + self, + params: tuple[float, ...], + sub_img: npt.NDArray[np.floating], + search_limit: tuple[float, float], + scale_limit: float, + allow_nonzero_base: bool, + use_angular_params: bool, + *additional_params: Any, + ) -> float: # Make an offset of "0" be the center of the pixel (0.5, 0.5) if use_angular_params: @@ -637,12 +704,12 @@ def _fit_psf_func(self, # if fake_resid is not None: # fake_return = np.zeros(sub_img.shape).flatten() # fake_return[:] = fake_resid - # if self._debug_opt > 1: + # if self.detailed_logging: # full_resid = np.sqrt(np.sum(fake_return**2)) # print('RESID', full_resid) # return fake_return - base = 0. + base = 0.0 param_end = 3 if allow_nonzero_base: base = params[3] @@ -651,41 +718,45 @@ def _fit_psf_func(self, addl_vals_dict = {} for i, ap in enumerate(additional_params): if use_angular_params: - val = ((ap[1] - ap[0]) / 2. * - (np.cos(params[param_end+i])+1.) + ap[0]) + val = (ap[1] - ap[0]) / 2.0 * (np.cos(params[param_end + i]) + 1.0) + ap[0] else: - val = params[param_end+i] + val = params[param_end + i] addl_vals_dict[ap[2]] = val - psf = self.eval_rect(cast(tuple[int, int], sub_img.shape), - (offset_y, offset_x), - scale=scale, base=base, **addl_vals_dict) + psf = self.eval_rect( + cast(tuple[int, int], sub_img.shape), + (offset_y, offset_x), + scale=scale, + base=base, + **addl_vals_dict, + ) resid = (sub_img - psf).flatten() full_resid = cast(float, np.sqrt(np.sum(resid**2))) - if self._debug_opt > 1: + if self.detailed_logging: msg = f'OFFY {offset_y:8.5f} OFFX {offset_x:8.5f} SCALE {scale:9.5f} ' msg += f'BASE {base:9.5f}' for ap in additional_params: msg += f' {ap[2].upper()} {addl_vals_dict[ap[2]]:8.5f}' msg += f' RESID {full_resid:f}' - print(msg) + self._logger.debug(msg) return full_resid - def _find_position(self, - sub_img: npt.NDArray[np.floating], - search_limit: tuple[float, float], - scale_limit: float, - bkgnd_degree: int | None, - bkgnd_ignore_center: tuple[int, int], - bkgnd_num_sigma: float | None, - tolerance: float, - allow_nonzero_base: bool, - use_angular_params: bool - ) -> None | tuple[float, float, dict[str, Any]]: + def _find_position( + self, + sub_img: npt.NDArray[np.floating], + search_limit: tuple[float, float], + scale_limit: float, + bkgnd_degree: int | None, + bkgnd_ignore_center: tuple[int, int], + bkgnd_num_sigma: float | None, + tolerance: float, + allow_nonzero_base: bool, + use_angular_params: bool, + ) -> None | tuple[float, float, dict[str, Any]]: bkgnd_params = None bkgnd_mask = None @@ -693,36 +764,37 @@ def _find_position(self, if bkgnd_degree is not None: bkgnd_params, bkgnd_mask = PSF.background_gradient_fit( - sub_img, - order=bkgnd_degree, - ignore_center=bkgnd_ignore_center, - num_sigma=bkgnd_num_sigma, - debug=self._debug_opt > 2) + sub_img, + order=bkgnd_degree, + ignore_center=bkgnd_ignore_center, + num_sigma=bkgnd_num_sigma, + debug=self.detailed_logging, + logger=self._logger, + ) if bkgnd_params is None: return None - gradient = PSF.background_gradient(cast(tuple[int, int], sub_img.shape), - bkgnd_params) + gradient = PSF.background_gradient(cast(tuple[int, int], sub_img.shape), bkgnd_params) sub_img_grad = sub_img - gradient # Offset Y, Offset X, Scale, AdditionalParams if use_angular_params: - bounds = [(0., np.pi), - (0., np.pi), - (0., np.pi)] - starting_guess = [np.pi/2, np.pi/2, np.pi/2] + bounds = [(0.0, np.pi), (0.0, np.pi), (0.0, np.pi)] + starting_guess = [np.pi / 2, np.pi / 2, np.pi / 2] if allow_nonzero_base: - bounds += [(0., np.pi)] - starting_guess += [np.pi/2] + bounds += [(0.0, np.pi)] + starting_guess += [np.pi / 2] for _ in range(len(self._additional_params)): - bounds += [(0., np.pi)] - starting_guess += [np.pi/2] + bounds += [(0.0, np.pi)] + starting_guess += [np.pi / 2] else: - bounds = [(-search_limit[0], search_limit[0]), - (-search_limit[1], search_limit[1]), - (0., scale_limit)] - starting_guess = [0.001, 0.001, scale_limit/2] + bounds = [ + (-search_limit[0], search_limit[0]), + (-search_limit[1], search_limit[1]), + (0.0, scale_limit), + ] + starting_guess = [0.001, 0.001, scale_limit / 2] if allow_nonzero_base: bounds += [(-1e38, 1e38)] starting_guess += [0.001] @@ -730,26 +802,32 @@ def _find_position(self, bounds += [(a_min, a_max)] starting_guess.append(np.mean([a_min, a_max])) - extra_args0 = (sub_img_grad, search_limit, scale_limit, - allow_nonzero_base, use_angular_params) - if (self._additional_params is not None and - len(self._additional_params) > 0): + extra_args0 = ( + sub_img_grad, + search_limit, + scale_limit, + allow_nonzero_base, + use_angular_params, + ) + if self._additional_params is not None and len(self._additional_params) > 0: extra_args = extra_args0 + tuple(self._additional_params) else: extra_args = extra_args0 - if self._debug_opt > 3: - print('-' * 80) - print(f'STARTING GUESS: {starting_guess}') - print(f'BOUNDS: {bounds}') - - full_result = sciopt.minimize(self._fit_psf_func, - starting_guess, - args=extra_args, - bounds=bounds, - tol=tolerance, - method='Powell', - options={'maxiter': len(starting_guess) * 10000}) + if self.detailed_logging: + self._logger.debug('-' * 80) + self._logger.debug('_find_position: starting_guess=%s', starting_guess) + self._logger.debug('_find_position: bounds=%s', bounds) + + full_result = sciopt.minimize( + self._fit_psf_func, + starting_guess, + args=extra_args, + bounds=bounds, + tol=tolerance, + method='Powell', + options={'maxiter': len(starting_guess) * 10000}, + ) result = full_result.x success = full_result.success @@ -757,7 +835,7 @@ def _find_position(self, message = full_result.message if not success: - print('FAIL', message) + self._logger.warning('find_position: optimizer did not succeed: %s', message) return None # if ier < 1 or ier > 4: @@ -772,7 +850,7 @@ def _find_position(self, offset_x = result[1] + 0.5 scale = result[2] - base = 0. + base = 0.0 result_end = 3 if allow_nonzero_base: base = result[3] @@ -781,14 +859,18 @@ def _find_position(self, addl_vals_dict = {} for i, ap in enumerate(self._additional_params): if use_angular_params: - val = ((ap[1] - ap[0]) / 2. * - (np.cos(result[result_end+i])+1.) + ap[0]) + val = (ap[1] - ap[0]) / 2.0 * (np.cos(result[result_end + i]) + 1.0) + ap[0] else: - val = result[result_end+i] + val = result[result_end + i] addl_vals_dict[ap[2]] = val - psf = self.eval_rect(cast(tuple[int, int], sub_img.shape), (offset_y, offset_x), - scale=scale, base=base, **addl_vals_dict) + psf = self.eval_rect( + cast(tuple[int, int], sub_img.shape), + (offset_y, offset_x), + scale=scale, + base=base, + **addl_vals_dict, + ) details = {} details['x'] = offset_x @@ -801,7 +883,7 @@ def _find_position(self, details['psf'] = psf details['scale'] = scale details['base'] = base - details['scaled_psf'] = psf*scale+base + details['scaled_psf'] = psf # if cov_x is None: # details['leastsq_cov'] = None @@ -855,34 +937,22 @@ def _find_position(self, for key in addl_vals_dict: details[key] = addl_vals_dict[key] - if self._debug_opt > 1: - print('_find_position RETURNING', offset_y, offset_x) - print('Subimg num bad pixels', - np.sum(ma.getmaskarray(sub_img))) # type: ignore - print('Bkgnd params', bkgnd_params) - print('Bkgnd mask bad pixels', - np.sum(ma.getmaskarray(bkgnd_mask))) # type: ignore - print('PSF scale', scale) - print('PSF base', base) + if self.detailed_logging: + self._logger.debug( + '_find_position: returning offset_y=%s offset_x=%s', offset_y, offset_x + ) + self._logger.debug( + '_find_position: subimage masked pixels=%s', int(np.sum(ma.getmaskarray(sub_img))) + ) + self._logger.debug('_find_position: bkgnd_params=%s', bkgnd_params) + if bkgnd_mask is not None: + self._logger.debug( + '_find_position: bkgnd_mask bad pixels=%s', + int(np.sum(ma.getmaskarray(bkgnd_mask))), + ) + self._logger.debug('_find_position: PSF scale=%s base=%s', scale, base) for key in addl_vals_dict: - print(key, details[key]) - # print('LEASTSQ COV') - # cov = details['leastsq_cov'] - # print(cov) - # if cov is not None: - # print('X_ERR', details['x_err']) - # print('Y_ERR', details['y_err']) - # print('SCALE_ERR', details['scale_err']) - # print('BASE_ERR', details['base_err']) - # for key in addl_vals_dict: - # print(key+'_err', details[key+'_err']) - print('MESSAGE', message) - print('STATUS', status) - print('-----') + self._logger.debug('_find_position: %s=%s', key, details[key]) + self._logger.debug('_find_position: optimizer message=%s status=%s', message, status) return offset_y, offset_x, details - - print('hi') - -def _dead_code(): - pass diff --git a/tests/test_gaussian.py b/tests/test_gaussian.py index 0aea9b5..61462ef 100644 --- a/tests/test_gaussian.py +++ b/tests/test_gaussian.py @@ -11,64 +11,72 @@ def test_gaussian_1d(): - assert GaussianPSF.gaussian_1d(0.) == pytest.approx(0.39894228) - assert GaussianPSF.gaussian_1d(0., scale=2.) == pytest.approx(0.39894228 * 2) - assert GaussianPSF.gaussian_1d(0., base=-5.) == pytest.approx(0.39894228 - 5.) - assert GaussianPSF.gaussian_1d(0., scale=2., base=-5.) == \ - pytest.approx(0.39894228 * 2 - 5.) - assert GaussianPSF.gaussian_1d(1., mean=1.) == pytest.approx(0.39894228) - assert GaussianPSF.gaussian_1d(1., mean=1., scale=2.) == pytest.approx(0.39894228 * 2) - assert GaussianPSF.gaussian_1d(1.) == pytest.approx(0.24197072) - assert GaussianPSF.gaussian_1d(2., sigma=2.) == pytest.approx(0.24197072 / 2) - npt.assert_array_almost_equal(GaussianPSF.gaussian_1d(np.array([0.])), - np.array([0.39894228])) - npt.assert_array_almost_equal(GaussianPSF.gaussian_1d(np.array([0., 1.])), - np.array([0.39894228, 0.24197072])) - npt.assert_array_almost_equal(GaussianPSF.gaussian_1d(np.array([[0., 1.], [1., 0.]])), - np.array([[0.39894228, 0.24197072], - [0.24197072, 0.39894228]])) - assert integrate.quad(GaussianPSF.gaussian_1d, -10, 10)[0] == pytest.approx(1.) - assert integrate.quad(lambda x: GaussianPSF.gaussian_1d(x, scale=2.), -10, 10)[0] == \ - pytest.approx(2.) + assert GaussianPSF.gaussian_1d(0.0) == pytest.approx(0.39894228) + assert GaussianPSF.gaussian_1d(0.0, scale=2.0) == pytest.approx(0.39894228 * 2) + assert GaussianPSF.gaussian_1d(0.0, base=-5.0) == pytest.approx(0.39894228 - 5.0) + assert GaussianPSF.gaussian_1d(0.0, scale=2.0, base=-5.0) == pytest.approx(0.39894228 * 2 - 5.0) + assert GaussianPSF.gaussian_1d(1.0, mean=1.0) == pytest.approx(0.39894228) + assert GaussianPSF.gaussian_1d(1.0, mean=1.0, scale=2.0) == pytest.approx(0.39894228 * 2) + assert GaussianPSF.gaussian_1d(1.0) == pytest.approx(0.24197072) + assert GaussianPSF.gaussian_1d(2.0, sigma=2.0) == pytest.approx(0.24197072 / 2) + npt.assert_array_almost_equal(GaussianPSF.gaussian_1d(np.array([0.0])), np.array([0.39894228])) + npt.assert_array_almost_equal( + GaussianPSF.gaussian_1d(np.array([0.0, 1.0])), np.array([0.39894228, 0.24197072]) + ) + npt.assert_array_almost_equal( + GaussianPSF.gaussian_1d(np.array([[0.0, 1.0], [1.0, 0.0]])), + np.array([[0.39894228, 0.24197072], [0.24197072, 0.39894228]]), + ) + assert integrate.quad(GaussianPSF.gaussian_1d, -10, 10)[0] == pytest.approx(1.0) + assert integrate.quad(lambda x: GaussianPSF.gaussian_1d(x, scale=2.0), -10, 10)[ + 0 + ] == pytest.approx(2.0) def test_gaussian_2d(): assert GaussianPSF.gaussian_2d(0, 0) == pytest.approx(0.15915494309) - assert GaussianPSF.gaussian_2d(0, 0, scale=2.) == pytest.approx(0.15915494309 * 2) - assert GaussianPSF.gaussian_2d(0, 0, base=10.) == pytest.approx(0.15915494309 + 10) - assert GaussianPSF.gaussian_2d(0, 0, scale=2., base=10.) == \ - pytest.approx(0.15915494309 * 2 + 10) - assert GaussianPSF.gaussian_2d(1., 0., mean_y=1.) == pytest.approx(0.15915494309) - assert GaussianPSF.gaussian_2d(0., 1., mean_x=1.) == pytest.approx(0.15915494309) - assert integrate.dblquad(GaussianPSF.gaussian_2d, -10, 10, -10, 10)[0] == \ - pytest.approx(1.) - assert integrate.dblquad(lambda x, y: GaussianPSF.gaussian_2d(x, y, scale=2.), - -10, 10, -10, 10)[0] == pytest.approx(2.) - assert GaussianPSF.gaussian_2d(1., 0.) == pytest.approx(0.09653235263005391) - assert GaussianPSF.gaussian_2d(1., 0., sigma_x=2) == pytest.approx(0.048266176315027) - assert GaussianPSF.gaussian_2d(0., -1., sigma_x=2) != pytest.approx(0.048266176315027) - assert GaussianPSF.gaussian_2d(0., -1., angle=np.pi/2) == pytest.approx(0.09653235263) - npt.assert_array_almost_equal(GaussianPSF.gaussian_2d(np.array([0.]), np.array([0.])), - np.array([0.15915494309])) - npt.assert_array_almost_equal(GaussianPSF.gaussian_2d(np.array([[0.], [1.]]), - np.array([[0.], [0.]])), - np.array([[0.15915494309], [0.09653235263005391]])) - npt.assert_array_almost_equal(GaussianPSF.gaussian_2d(np.array([[[0.], [1.]], - [[1.], [0.]]]), - np.array([[[0.], [0.]], - [[0.], [0.]]])), - np.array([[[0.15915494309], [0.09653235263005391]], - [[0.09653235263005391], [0.15915494309]]])) - - y_coords = np.tile(np.arange(-10., 11.)/2, 21) - x_coords = np.repeat(np.arange(-10., 11.)/2, 21) - - gauss2d2 = GaussianPSF.gaussian_2d(y_coords, x_coords, scale=2., - sigma_x=.25, sigma_y=.5, - base=1.) / 4 - gauss2d3 = GaussianPSF.gaussian_2d(y_coords, x_coords, scale=2., - sigma_x=.5, sigma_y=.25, - base=1.) / 4 + assert GaussianPSF.gaussian_2d(0, 0, scale=2.0) == pytest.approx(0.15915494309 * 2) + assert GaussianPSF.gaussian_2d(0, 0, base=10.0) == pytest.approx(0.15915494309 + 10) + assert GaussianPSF.gaussian_2d(0, 0, scale=2.0, base=10.0) == pytest.approx( + 0.15915494309 * 2 + 10 + ) + assert GaussianPSF.gaussian_2d(1.0, 0.0, mean_y=1.0) == pytest.approx(0.15915494309) + assert GaussianPSF.gaussian_2d(0.0, 1.0, mean_x=1.0) == pytest.approx(0.15915494309) + assert integrate.dblquad(GaussianPSF.gaussian_2d, -10, 10, -10, 10)[0] == pytest.approx(1.0) + assert integrate.dblquad( + lambda x, y: GaussianPSF.gaussian_2d(x, y, scale=2.0), -10, 10, -10, 10 + )[0] == pytest.approx(2.0) + assert GaussianPSF.gaussian_2d(1.0, 0.0) == pytest.approx(0.09653235263005391) + assert GaussianPSF.gaussian_2d(1.0, 0.0, sigma_x=2) == pytest.approx(0.048266176315027) + assert GaussianPSF.gaussian_2d(0.0, -1.0, sigma_x=2) != pytest.approx(0.048266176315027) + assert GaussianPSF.gaussian_2d(0.0, -1.0, angle=np.pi / 2) == pytest.approx(0.09653235263) + npt.assert_array_almost_equal( + GaussianPSF.gaussian_2d(np.array([0.0]), np.array([0.0])), np.array([0.15915494309]) + ) + npt.assert_array_almost_equal( + GaussianPSF.gaussian_2d(np.array([[0.0], [1.0]]), np.array([[0.0], [0.0]])), + np.array([[0.15915494309], [0.09653235263005391]]), + ) + npt.assert_array_almost_equal( + GaussianPSF.gaussian_2d( + np.array([[[0.0], [1.0]], [[1.0], [0.0]]]), np.array([[[0.0], [0.0]], [[0.0], [0.0]]]) + ), + np.array( + [[[0.15915494309], [0.09653235263005391]], [[0.09653235263005391], [0.15915494309]]] + ), + ) + + y_coords = np.tile(np.arange(-10.0, 11.0) / 2, 21) + x_coords = np.repeat(np.arange(-10.0, 11.0) / 2, 21) + + gauss2d2 = ( + GaussianPSF.gaussian_2d(y_coords, x_coords, scale=2.0, sigma_x=0.25, sigma_y=0.5, base=1.0) + / 4 + ) + gauss2d3 = ( + GaussianPSF.gaussian_2d(y_coords, x_coords, scale=2.0, sigma_x=0.5, sigma_y=0.25, base=1.0) + / 4 + ) gauss2d2 = gauss2d2.reshape(21, 21) gauss2d3 = gauss2d3.reshape(21, 21) with pytest.raises(AssertionError): @@ -77,39 +85,42 @@ def test_gaussian_2d(): def test_gaussian_integral_1d(): - g_0_1 = integrate.quad(GaussianPSF.gaussian_1d, 0., 1.)[0] - g_n1_1 = integrate.quad(GaussianPSF.gaussian_1d, -1., 1.)[0] - assert GaussianPSF.gaussian_integral_1d(0., 1.) == \ - pytest.approx(integrate.quad(GaussianPSF.gaussian_1d, 0., 1.)[0]) - assert GaussianPSF.gaussian_integral_1d(-1., 1.) == \ - pytest.approx(g_n1_1) - assert GaussianPSF.gaussian_integral_1d(-1., 1., mean=2.) == \ - pytest.approx(integrate.quad(GaussianPSF.gaussian_1d, 1., 3.)[0]) - assert GaussianPSF.gaussian_integral_1d(-1., 1., scale=2.) == \ - pytest.approx(g_n1_1 * 2) - assert GaussianPSF.gaussian_integral_1d(-1., 1., base=5.) == \ - pytest.approx(g_n1_1 + 5) - assert GaussianPSF.gaussian_integral_1d(-1., 1., scale=2., base=5.) == \ - pytest.approx(g_n1_1 * 2 + 5) - assert GaussianPSF.gaussian_integral_1d(0., 1.) == \ - pytest.approx(integrate.quad(GaussianPSF.gaussian_1d, 0., 1.)[0]) - assert GaussianPSF.gaussian_integral_1d(np.array([0., -1.]), np.array([1., 1.])) == \ - pytest.approx(np.array([g_0_1, g_n1_1])) - ret = GaussianPSF.gaussian_integral_1d(np.array([[0., -1.], [-1., 0.]]), - np.array([[1., 1.], [1., 1.]])) + g_0_1 = integrate.quad(GaussianPSF.gaussian_1d, 0.0, 1.0)[0] + g_n1_1 = integrate.quad(GaussianPSF.gaussian_1d, -1.0, 1.0)[0] + assert GaussianPSF.gaussian_integral_1d(0.0, 1.0) == pytest.approx( + integrate.quad(GaussianPSF.gaussian_1d, 0.0, 1.0)[0] + ) + assert GaussianPSF.gaussian_integral_1d(-1.0, 1.0) == pytest.approx(g_n1_1) + assert GaussianPSF.gaussian_integral_1d(-1.0, 1.0, mean=2.0) == pytest.approx( + integrate.quad(GaussianPSF.gaussian_1d, 1.0, 3.0)[0] + ) + assert GaussianPSF.gaussian_integral_1d(-1.0, 1.0, scale=2.0) == pytest.approx(g_n1_1 * 2) + assert GaussianPSF.gaussian_integral_1d(-1.0, 1.0, base=5.0) == pytest.approx(g_n1_1 + 5) + assert GaussianPSF.gaussian_integral_1d(-1.0, 1.0, scale=2.0, base=5.0) == pytest.approx( + g_n1_1 * 2 + 5 + ) + assert GaussianPSF.gaussian_integral_1d(0.0, 1.0) == pytest.approx( + integrate.quad(GaussianPSF.gaussian_1d, 0.0, 1.0)[0] + ) + assert GaussianPSF.gaussian_integral_1d( + np.array([0.0, -1.0]), np.array([1.0, 1.0]) + ) == pytest.approx(np.array([g_0_1, g_n1_1])) + ret = GaussianPSF.gaussian_integral_1d( + np.array([[0.0, -1.0], [-1.0, 0.0]]), np.array([[1.0, 1.0], [1.0, 1.0]]) + ) npt.assert_array_almost_equal(ret, np.array([[g_0_1, g_n1_1], [g_n1_1, g_0_1]])) def test_gaussian_integral_2d(): - integ1 = integrate.dblquad(lambda y, x: GaussianPSF.gaussian_2d(y, x), - 0., 3., -2., 1.)[0] - integ2 = integrate.dblquad(lambda y, x: GaussianPSF.gaussian_2d(y, x), - -1., 3., -3., 2.)[0] - assert GaussianPSF.gaussian_integral_2d(0., 3., -2., 1.) == pytest.approx(integ1) - assert GaussianPSF.gaussian_integral_2d(0., 3., -2., 1., scale=2., base=5.) == \ - pytest.approx(integ1 * 2 + 5) - ret = GaussianPSF.gaussian_integral_2d(np.array([0., -1.]), np.array([3., 3.]), - np.array([-2., -3.]), np.array([1., 2.])) + integ1 = integrate.dblquad(lambda y, x: GaussianPSF.gaussian_2d(y, x), 0.0, 3.0, -2.0, 1.0)[0] + integ2 = integrate.dblquad(lambda y, x: GaussianPSF.gaussian_2d(y, x), -1.0, 3.0, -3.0, 2.0)[0] + assert GaussianPSF.gaussian_integral_2d(0.0, 3.0, -2.0, 1.0) == pytest.approx(integ1) + assert GaussianPSF.gaussian_integral_2d( + 0.0, 3.0, -2.0, 1.0, scale=2.0, base=5.0 + ) == pytest.approx(integ1 * 2 + 5) + ret = GaussianPSF.gaussian_integral_2d( + np.array([0.0, -1.0]), np.array([3.0, 3.0]), np.array([-2.0, -3.0]), np.array([1.0, 2.0]) + ) npt.assert_array_almost_equal(ret, np.array([integ1, integ2])) # def rot(y, x): @@ -145,26 +156,28 @@ def test_gaussian_eval_point(): GaussianPSF(sigma=(1, None)).eval_point((0, 0)) psf1 = GaussianPSF() - psf2 = GaussianPSF(sigma=(1., None)) - psf3 = GaussianPSF(sigma=(None, 2.)) - psf4 = GaussianPSF(sigma=(1., 2.)) - psf5 = GaussianPSF(sigma=(1., 1.)) - - assert psf1.eval_point((2, 3), sigma=(1., 2.)) == psf4.eval_point((2, 3)) - assert psf1.eval_point((2, 3), sigma=1.) == psf5.eval_point((2, 3)) - assert psf1.eval_point((2, 3), sigma_y=1., sigma_x=2.) == psf4.eval_point((2, 3)) - assert psf2.eval_point((2, 3), sigma_x=2.) == psf4.eval_point((2, 3)) - assert psf3.eval_point((2, 3), sigma_y=1.) == psf4.eval_point((2, 3)) - assert psf1.eval_point((2, 3), sigma=(1., 2.), base=1, scale=2, angle=np.pi/4) == \ - psf4.eval_point((2, 3), base=1, scale=2, angle=np.pi/4) - - assert psf1.eval_point((2, 3), sigma=(1., 2.), base=1, scale=2, angle=np.pi/4) == \ - pytest.approx(GaussianPSF.gaussian_2d(2, 3, sigma_y=1., sigma_x=2., - base=1, scale=2, angle=np.pi/4)) - - ret = psf1.eval_point((np.array([1, 2]), np.array([2, 3])), sigma=(1., 2.)) - npt.assert_array_almost_equal(ret, np.array([psf4.eval_point((1, 2)), - psf4.eval_point((2, 3))])) + psf2 = GaussianPSF(sigma=(1.0, None)) + psf3 = GaussianPSF(sigma=(None, 2.0)) + psf4 = GaussianPSF(sigma=(1.0, 2.0)) + psf5 = GaussianPSF(sigma=(1.0, 1.0)) + + assert psf1.eval_point((2, 3), sigma=(1.0, 2.0)) == psf4.eval_point((2, 3)) + assert psf1.eval_point((2, 3), sigma=1.0) == psf5.eval_point((2, 3)) + assert psf1.eval_point((2, 3), sigma_y=1.0, sigma_x=2.0) == psf4.eval_point((2, 3)) + assert psf2.eval_point((2, 3), sigma_x=2.0) == psf4.eval_point((2, 3)) + assert psf3.eval_point((2, 3), sigma_y=1.0) == psf4.eval_point((2, 3)) + assert psf1.eval_point( + (2, 3), sigma=(1.0, 2.0), base=1, scale=2, angle=np.pi / 4 + ) == psf4.eval_point((2, 3), base=1, scale=2, angle=np.pi / 4) + + assert psf1.eval_point( + (2, 3), sigma=(1.0, 2.0), base=1, scale=2, angle=np.pi / 4 + ) == pytest.approx( + GaussianPSF.gaussian_2d(2, 3, sigma_y=1.0, sigma_x=2.0, base=1, scale=2, angle=np.pi / 4) + ) + + ret = psf1.eval_point((np.array([1, 2]), np.array([2, 3])), sigma=(1.0, 2.0)) + npt.assert_array_almost_equal(ret, np.array([psf4.eval_point((1, 2)), psf4.eval_point((2, 3))])) def test_gaussian_eval_pixel(): @@ -187,91 +200,94 @@ def test_gaussian_eval_pixel(): with pytest.raises(ValueError): GaussianPSF(sigma=(None, 1)).eval_pixel((0, 0)) - integ = GaussianPSF.gaussian_integral_2d(-.5, .5, -.5, .5, sigma_y=2., sigma_x=3.) - integ2 = GaussianPSF.gaussian_integral_2d(-.5, .5, -.5, .5, sigma_y=2., sigma_x=2.) - assert GaussianPSF(sigma=(2., 3.)).eval_pixel((0, 0)) == pytest.approx(integ) - assert GaussianPSF(sigma=2.).eval_pixel((0, 0)) == pytest.approx(integ2) - assert GaussianPSF().eval_pixel((0, 0), sigma=2.) == pytest.approx(integ2) - assert GaussianPSF(sigma=(2., 3.)).eval_pixel((0, 0), offset=(0, .25)) == \ - pytest.approx(GaussianPSF.gaussian_integral_2d(0, 1, -.25, .75, - sigma_y=2., sigma_x=3.)) - assert GaussianPSF(sigma=(2., 3.)).eval_pixel((0, 0), scale=11.) == \ - pytest.approx(integ * 11) - assert GaussianPSF(sigma=(2., 3.)).eval_pixel((0, 0), base=3.) == \ - pytest.approx(integ + 3) - assert GaussianPSF().eval_pixel((0, 0), sigma=(2., 3.)) == \ - pytest.approx(integ) - assert GaussianPSF(sigma=(2., None)).eval_pixel((0, 0), sigma_x=3.) == \ - pytest.approx(integ) - assert GaussianPSF(sigma=(None, 3.)).eval_pixel((0, 0), sigma_y=2.) == \ - pytest.approx(integ) - ret = GaussianPSF(sigma=(2., 3.)).eval_pixel((np.array([0, 0]), np.array([0, 0]))) + integ = GaussianPSF.gaussian_integral_2d(-0.5, 0.5, -0.5, 0.5, sigma_y=2.0, sigma_x=3.0) + integ2 = GaussianPSF.gaussian_integral_2d(-0.5, 0.5, -0.5, 0.5, sigma_y=2.0, sigma_x=2.0) + assert GaussianPSF(sigma=(2.0, 3.0)).eval_pixel((0, 0)) == pytest.approx(integ) + assert GaussianPSF(sigma=2.0).eval_pixel((0, 0)) == pytest.approx(integ2) + assert GaussianPSF().eval_pixel((0, 0), sigma=2.0) == pytest.approx(integ2) + assert GaussianPSF(sigma=(2.0, 3.0)).eval_pixel((0, 0), offset=(0, 0.25)) == pytest.approx( + GaussianPSF.gaussian_integral_2d(0, 1, -0.25, 0.75, sigma_y=2.0, sigma_x=3.0) + ) + assert GaussianPSF(sigma=(2.0, 3.0)).eval_pixel((0, 0), scale=11.0) == pytest.approx(integ * 11) + assert GaussianPSF(sigma=(2.0, 3.0)).eval_pixel((0, 0), base=3.0) == pytest.approx(integ + 3) + assert GaussianPSF().eval_pixel((0, 0), sigma=(2.0, 3.0)) == pytest.approx(integ) + assert GaussianPSF(sigma=(2.0, None)).eval_pixel((0, 0), sigma_x=3.0) == pytest.approx(integ) + assert GaussianPSF(sigma=(None, 3.0)).eval_pixel((0, 0), sigma_y=2.0) == pytest.approx(integ) + ret = GaussianPSF(sigma=(2.0, 3.0)).eval_pixel((np.array([0, 0]), np.array([0, 0]))) npt.assert_array_almost_equal(ret, np.array([integ, integ])) - assert GaussianPSF(sigma=(2., 3.)).eval_pixel((0, 0), angle=np.pi/8) == \ - pytest.approx(GaussianPSF.gaussian_integral_2d(-.5, .5, -.5, .5, - sigma_y=2., sigma_x=3., - angle=np.pi/8)) + assert GaussianPSF(sigma=(2.0, 3.0)).eval_pixel((0, 0), angle=np.pi / 8) == pytest.approx( + GaussianPSF.gaussian_integral_2d( + -0.5, 0.5, -0.5, 0.5, sigma_y=2.0, sigma_x=3.0, angle=np.pi / 8 + ) + ) def test_gaussian_eval_rect(): assert np.sum(GaussianPSF(sigma=(1, 1)).eval_rect((19, 19))) == pytest.approx(1) - assert np.sum(GaussianPSF(sigma=(1, 1), angle=np.pi/4).eval_rect((19, 19))) == \ - pytest.approx(1) + assert np.sum(GaussianPSF(sigma=(1, 1), angle=np.pi / 4).eval_rect((19, 19))) == pytest.approx( + 1 + ) @pytest.mark.parametrize('use_angular_params', [True, False]) @pytest.mark.parametrize('bkgnd_degree', [None, 0, 1, 2]) def test_gaussian_find_position(use_angular_params, bkgnd_degree): - allow_nonzero_base = (bkgnd_degree is not None) + allow_nonzero_base = bkgnd_degree is not None # centered symmetric PSF, float sigma psf = GaussianPSF() - gauss2d = psf.eval_rect((21, 21), scale=2., sigma=1.) + gauss2d = psf.eval_rect((21, 21), scale=2.0, sigma=1.0) # if allow_nonzero_base: - # psf._debug_opt = 10 - ret = psf.find_position(gauss2d, gauss2d.shape, - starting_point=((gauss2d.shape[0]//2, - gauss2d.shape[1]//2)), - bkgnd_degree=bkgnd_degree, - allow_nonzero_base=allow_nonzero_base, - num_sigma=0, - use_angular_params=use_angular_params) + # psf = GaussianPSF(detailed_logging=True) + ret = psf.find_position( + gauss2d, + gauss2d.shape, + starting_point=((gauss2d.shape[0] // 2, gauss2d.shape[1] // 2)), + bkgnd_degree=bkgnd_degree, + allow_nonzero_base=allow_nonzero_base, + num_sigma=0, + use_angular_params=use_angular_params, + ) assert ret[0] == pytest.approx(gauss2d.shape[0] / 2) assert ret[1] == pytest.approx(gauss2d.shape[1] / 2) - assert ret[2]['sigma_y'] == pytest.approx(1., abs=5e-2) - assert ret[2]['sigma_x'] == pytest.approx(1., abs=5e-2) - assert ret[2]['scale'] == pytest.approx(2., abs=5e-2) + assert ret[2]['sigma_y'] == pytest.approx(1.0, abs=5e-2) + assert ret[2]['sigma_x'] == pytest.approx(1.0, abs=5e-2) + assert ret[2]['scale'] == pytest.approx(2.0, abs=5e-2) # asymmetric PSF, float sigma - gauss2d = psf.eval_rect((21, 21), scale=2., sigma=(2., 0.5)) - ret = psf.find_position(gauss2d, gauss2d.shape, - starting_point=((gauss2d.shape[0]//2, - gauss2d.shape[1]//2)), - bkgnd_degree=bkgnd_degree, - bkgnd_ignore_center=(4, 4), - allow_nonzero_base=allow_nonzero_base, - num_sigma=0, - use_angular_params=use_angular_params) + gauss2d = psf.eval_rect((21, 21), scale=2.0, sigma=(2.0, 0.5)) + ret = psf.find_position( + gauss2d, + gauss2d.shape, + starting_point=((gauss2d.shape[0] // 2, gauss2d.shape[1] // 2)), + bkgnd_degree=bkgnd_degree, + bkgnd_ignore_center=(4, 4), + allow_nonzero_base=allow_nonzero_base, + num_sigma=0, + use_angular_params=use_angular_params, + ) assert ret[0] == pytest.approx(gauss2d.shape[0] / 2, abs=1e-4) assert ret[1] == pytest.approx(gauss2d.shape[1] / 2, abs=1e-4) - assert ret[2]['sigma_y'] == pytest.approx(2., abs=5e-2) + assert ret[2]['sigma_y'] == pytest.approx(2.0, abs=5e-2) assert ret[2]['sigma_x'] == pytest.approx(0.5, abs=5e-2) - assert ret[2]['scale'] == pytest.approx(2., abs=7e-2) + assert ret[2]['scale'] == pytest.approx(2.0, abs=7e-2) # offset PSF created through mean, float sigma psf2 = GaussianPSF(mean=(0.5, 0.75)) gauss2d = psf2.eval_rect((21, 21), scale=0.5, sigma=(0.5, 1.3)) # find using non-offset PSF - ret = psf.find_position(gauss2d, gauss2d.shape, - starting_point=((gauss2d.shape[0]//2, - gauss2d.shape[1]//2)), - bkgnd_degree=bkgnd_degree, - bkgnd_ignore_center=(4, 4), - allow_nonzero_base=allow_nonzero_base, - num_sigma=0, - use_angular_params=use_angular_params) + ret = psf.find_position( + gauss2d, + gauss2d.shape, + starting_point=((gauss2d.shape[0] // 2, gauss2d.shape[1] // 2)), + bkgnd_degree=bkgnd_degree, + bkgnd_ignore_center=(4, 4), + allow_nonzero_base=allow_nonzero_base, + num_sigma=0, + use_angular_params=use_angular_params, + ) assert ret[0] == pytest.approx(gauss2d.shape[0] / 2 + 0.5, abs=1e-1) assert ret[1] == pytest.approx(gauss2d.shape[1] / 2 + 0.75, abs=1e-1) assert ret[2]['sigma_y'] == pytest.approx(0.5, abs=5e-2) @@ -279,14 +295,16 @@ def test_gaussian_find_position(use_angular_params, bkgnd_degree): assert ret[2]['scale'] == pytest.approx(0.5, abs=5e-2) # find using offset PSF - ret = psf2.find_position(gauss2d, gauss2d.shape, - starting_point=((gauss2d.shape[0]//2, - gauss2d.shape[1]//2)), - bkgnd_degree=bkgnd_degree, - bkgnd_ignore_center=(4, 4), - allow_nonzero_base=allow_nonzero_base, - num_sigma=0, - use_angular_params=use_angular_params) + ret = psf2.find_position( + gauss2d, + gauss2d.shape, + starting_point=((gauss2d.shape[0] // 2, gauss2d.shape[1] // 2)), + bkgnd_degree=bkgnd_degree, + bkgnd_ignore_center=(4, 4), + allow_nonzero_base=allow_nonzero_base, + num_sigma=0, + use_angular_params=use_angular_params, + ) assert ret[0] == pytest.approx(gauss2d.shape[0] / 2, abs=1e-1) assert ret[1] == pytest.approx(gauss2d.shape[1] / 2, abs=1e-1) assert ret[2]['sigma_y'] == pytest.approx(0.5, abs=5e-2) @@ -296,14 +314,16 @@ def test_gaussian_find_position(use_angular_params, bkgnd_degree): # offset PSF created through eval_rect, float sigma psf2 = GaussianPSF() gauss2d = psf2.eval_rect((21, 21), offset=(0.21, -0.35), scale=1.5, sigma=(0.8, 1.3)) - ret = psf.find_position(gauss2d, gauss2d.shape, - starting_point=((gauss2d.shape[0]//2, - gauss2d.shape[1]//2)), - bkgnd_degree=bkgnd_degree, - bkgnd_ignore_center=(4, 4), - allow_nonzero_base=allow_nonzero_base, - num_sigma=0, - use_angular_params=use_angular_params) + ret = psf.find_position( + gauss2d, + gauss2d.shape, + starting_point=((gauss2d.shape[0] // 2, gauss2d.shape[1] // 2)), + bkgnd_degree=bkgnd_degree, + bkgnd_ignore_center=(4, 4), + allow_nonzero_base=allow_nonzero_base, + num_sigma=0, + use_angular_params=use_angular_params, + ) assert ret[0] == pytest.approx(gauss2d.shape[0] // 2 + 0.21, abs=5e-2) assert ret[1] == pytest.approx(gauss2d.shape[1] // 2 - 0.35, abs=5e-2) assert ret[2]['sigma_y'] == pytest.approx(0.8, abs=1e-3) @@ -313,13 +333,15 @@ def test_gaussian_find_position(use_angular_params, bkgnd_degree): # centered PSF, fixed sigma psf2 = GaussianPSF(sigma=(0.9, 1.5)) gauss2d = psf2.eval_rect((21, 21), scale=1.5) - ret = psf2.find_position(gauss2d, gauss2d.shape, - starting_point=((gauss2d.shape[0]//2, - gauss2d.shape[1]//2)), - bkgnd_degree=bkgnd_degree, - allow_nonzero_base=allow_nonzero_base, - num_sigma=0, - use_angular_params=use_angular_params) + ret = psf2.find_position( + gauss2d, + gauss2d.shape, + starting_point=((gauss2d.shape[0] // 2, gauss2d.shape[1] // 2)), + bkgnd_degree=bkgnd_degree, + allow_nonzero_base=allow_nonzero_base, + num_sigma=0, + use_angular_params=use_angular_params, + ) assert ret[0] == pytest.approx(gauss2d.shape[0] / 2, abs=1e-2) assert ret[1] == pytest.approx(gauss2d.shape[1] / 2, abs=1e-2) assert 'sigma_y' not in ret[2] @@ -329,13 +351,15 @@ def test_gaussian_find_position(use_angular_params, bkgnd_degree): # centered PSF, fixed sigma_y psf2 = GaussianPSF(sigma=(0.9, None)) gauss2d = psf2.eval_rect((21, 21), scale=1.5, sigma_x=1.1) - ret = psf2.find_position(gauss2d, gauss2d.shape, - starting_point=((gauss2d.shape[0]//2, - gauss2d.shape[1]//2)), - bkgnd_degree=bkgnd_degree, - allow_nonzero_base=allow_nonzero_base, - num_sigma=0, - use_angular_params=use_angular_params) + ret = psf2.find_position( + gauss2d, + gauss2d.shape, + starting_point=((gauss2d.shape[0] // 2, gauss2d.shape[1] // 2)), + bkgnd_degree=bkgnd_degree, + allow_nonzero_base=allow_nonzero_base, + num_sigma=0, + use_angular_params=use_angular_params, + ) assert ret[0] == pytest.approx(gauss2d.shape[0] / 2, abs=1e-2) assert ret[1] == pytest.approx(gauss2d.shape[1] / 2, abs=1e-2) assert 'sigma_y' not in ret[2] @@ -345,13 +369,15 @@ def test_gaussian_find_position(use_angular_params, bkgnd_degree): # centered PSF, fixed sigma_x psf2 = GaussianPSF(sigma=(None, 0.8)) gauss2d = psf2.eval_rect((21, 21), scale=1.5, sigma_y=1.1) - ret = psf2.find_position(gauss2d, gauss2d.shape, - starting_point=((gauss2d.shape[0]//2, - gauss2d.shape[1]//2)), - bkgnd_degree=bkgnd_degree, - allow_nonzero_base=allow_nonzero_base, - num_sigma=0, - use_angular_params=use_angular_params) + ret = psf2.find_position( + gauss2d, + gauss2d.shape, + starting_point=((gauss2d.shape[0] // 2, gauss2d.shape[1] // 2)), + bkgnd_degree=bkgnd_degree, + allow_nonzero_base=allow_nonzero_base, + num_sigma=0, + use_angular_params=use_angular_params, + ) assert ret[0] == pytest.approx(gauss2d.shape[0] / 2, abs=1e-2) assert ret[1] == pytest.approx(gauss2d.shape[1] / 2, abs=1e-2) assert 'sigma_x' not in ret[2] @@ -360,22 +386,24 @@ def test_gaussian_find_position(use_angular_params, bkgnd_degree): if bkgnd_degree is not None: # add background gradient - gauss2d = psf.eval_rect((21, 21), scale=2., sigma=1.) - nparams = int((bkgnd_degree+1) * (bkgnd_degree+2) / 2) + gauss2d = psf.eval_rect((21, 21), scale=2.0, sigma=1.0) + nparams = int((bkgnd_degree + 1) * (bkgnd_degree + 2) / 2) coeffts = np.array([0.5] * nparams) gauss2d += GaussianPSF.background_gradient((21, 21), coeffts) # if allow_nonzero_base: - # psf._debug_opt = 10 - ret = psf.find_position(gauss2d, gauss2d.shape, - starting_point=((gauss2d.shape[0]//2, - gauss2d.shape[1]//2)), - bkgnd_degree=bkgnd_degree, - allow_nonzero_base=allow_nonzero_base, - num_sigma=0, - use_angular_params=use_angular_params) + # psf = GaussianPSF(detailed_logging=True) + ret = psf.find_position( + gauss2d, + gauss2d.shape, + starting_point=((gauss2d.shape[0] // 2, gauss2d.shape[1] // 2)), + bkgnd_degree=bkgnd_degree, + allow_nonzero_base=allow_nonzero_base, + num_sigma=0, + use_angular_params=use_angular_params, + ) assert ret[0] == pytest.approx(gauss2d.shape[0] / 2, abs=1e-3) assert ret[1] == pytest.approx(gauss2d.shape[1] / 2, abs=1e-2) - assert ret[2]['sigma_y'] == pytest.approx(1., abs=5e-2) - assert ret[2]['sigma_x'] == pytest.approx(1., abs=5e-2) - assert ret[2]['scale'] == pytest.approx(2., abs=5e-2) + assert ret[2]['sigma_y'] == pytest.approx(1.0, abs=5e-2) + assert ret[2]['sigma_x'] == pytest.approx(1.0, abs=5e-2) + assert ret[2]['scale'] == pytest.approx(2.0, abs=5e-2) diff --git a/tests/test_psf.py b/tests/test_psf.py index 0c7f567..2618abf 100644 --- a/tests/test_psf.py +++ b/tests/test_psf.py @@ -35,6 +35,7 @@ def test_bkgnd_gradient_coeffs(): assert np.all(ret == exp) ret = PSF._background_gradient_coeffs((3, 3), 1) + # fmt: off exp = np.array([[[1., -1., -1.], [1., 0., -1.], [1., 1., -1.]], @@ -46,9 +47,11 @@ def test_bkgnd_gradient_coeffs(): [[1., -1., 1.], [1., 0., 1.], [1., 1., 1.]]]) + # fmt: on assert np.all(ret == exp) ret = PSF._background_gradient_coeffs((3, 3), 2) + # fmt: off exp = np.array([[[1., -1., -1., 1., 1., 1.], [1., 0., -1., 0., -0., 1.], [1., 1., -1., 1., -1., 1.]], @@ -60,6 +63,7 @@ def test_bkgnd_gradient_coeffs(): [[1., -1., 1., 1., -1., 1.], [1., 0., 1., 0., 0., 1.], [1., 1., 1., 1., 1., 1.]]]) + # fmt: on assert np.all(ret == exp) @@ -74,7 +78,7 @@ def test_background_gradient_fit(): PSF.background_gradient_fit(np.zeros((5, 5)), order=-10) # Unmasked - img = 3*(np.arange(5.)[:, np.newaxis]-2)**2 + 2*(np.arange(5.)[np.newaxis, :]-2) + img = 3 * (np.arange(5.0)[:, np.newaxis] - 2) ** 2 + 2 * (np.arange(5.0)[np.newaxis, :] - 2) bkgnd_params, img_mask = PSF.background_gradient_fit(img) npt.assert_array_almost_equal(np.array(bkgnd_params), np.array([0, 2, 0, 0, 0, 3])) assert np.sum(img_mask) == 0 @@ -82,8 +86,7 @@ def test_background_gradient_fit(): npt.assert_array_almost_equal(img, img2) bkgnd_params, img_mask = PSF.background_gradient_fit(img, order=3) - npt.assert_array_almost_equal(np.array(bkgnd_params), - np.array([0, 2, 0, 0, 0, 3, 0, 0, 0, 0])) + npt.assert_array_almost_equal(np.array(bkgnd_params), np.array([0, 2, 0, 0, 0, 3, 0, 0, 0, 0])) assert np.sum(img_mask) == 0 img2 = PSF.background_gradient((5, 5), bkgnd_params) npt.assert_array_almost_equal(img, img2) @@ -96,29 +99,24 @@ def test_background_gradient_fit(): assert img_mask is None # Ignore center - img = 3*(np.arange(5.)[:, np.newaxis]-2)**2 + 2*(np.arange(5.)[np.newaxis, :]-2) + img = 3 * (np.arange(5.0)[:, np.newaxis] - 2) ** 2 + 2 * (np.arange(5.0)[np.newaxis, :] - 2) img[2, 2] = 1000 bkgnd_params, img_mask = PSF.background_gradient_fit(img) with np.testing.assert_raises(AssertionError): # Array not equal - npt.assert_array_almost_equal(np.array(bkgnd_params), - np.array([0, 2, 0, 0, 0, 3])) + npt.assert_array_almost_equal(np.array(bkgnd_params), np.array([0, 2, 0, 0, 0, 3])) assert np.sum(img_mask) == 0 bkgnd_params, img_mask = PSF.background_gradient_fit(img, ignore_center=0) - npt.assert_array_almost_equal(np.array(bkgnd_params), - np.array([0, 2, 0, 0, 0, 3])) + npt.assert_array_almost_equal(np.array(bkgnd_params), np.array([0, 2, 0, 0, 0, 3])) assert np.sum(img_mask) == 1 bkgnd_params, img_mask = PSF.background_gradient_fit(img, ignore_center=1) - npt.assert_array_almost_equal(np.array(bkgnd_params), - np.array([0, 2, 0, 0, 0, 3])) + npt.assert_array_almost_equal(np.array(bkgnd_params), np.array([0, 2, 0, 0, 0, 3])) assert np.sum(img_mask) == 9 bkgnd_params, img_mask = PSF.background_gradient_fit(img, ignore_center=(1, 1)) - npt.assert_array_almost_equal(np.array(bkgnd_params), - np.array([0, 2, 0, 0, 0, 3])) + npt.assert_array_almost_equal(np.array(bkgnd_params), np.array([0, 2, 0, 0, 0, 3])) assert np.sum(img_mask) == 9 img = img.view(ma.MaskedArray) bkgnd_params, img_mask = PSF.background_gradient_fit(img, ignore_center=(0, 1)) - npt.assert_array_almost_equal(np.array(bkgnd_params), - np.array([0, 2, 0, 0, 0, 3])) + npt.assert_array_almost_equal(np.array(bkgnd_params), np.array([0, 2, 0, 0, 0, 3])) assert np.sum(img_mask) == 3 assert np.sum(img_mask[0]) == 0 assert np.sum(img_mask[1]) == 0 @@ -133,24 +131,20 @@ def test_background_gradient_fit(): assert img_mask is None # Removal of bad pixels - img[:] = 3*(np.arange(5.)[:, np.newaxis]-2)**2 + 2*(np.arange(5.)[np.newaxis, :]-2) + img[:] = 3 * (np.arange(5.0)[:, np.newaxis] - 2) ** 2 + 2 * (np.arange(5.0)[np.newaxis, :] - 2) img = img.view(ma.MaskedArray) bkgnd_params, img_mask = PSF.background_gradient_fit(img, num_sigma=5) - npt.assert_array_almost_equal(np.array(bkgnd_params), - np.array([0, 2, 0, 0, 0, 3])) + npt.assert_array_almost_equal(np.array(bkgnd_params), np.array([0, 2, 0, 0, 0, 3])) assert np.sum(img_mask) == 0 img[2, 2] = 10000 bkgnd_params, img_mask = PSF.background_gradient_fit(img, num_sigma=4) - npt.assert_array_almost_equal(np.array(bkgnd_params), - np.array([0, 2, 0, 0, 0, 3])) + npt.assert_array_almost_equal(np.array(bkgnd_params), np.array([0, 2, 0, 0, 0, 3])) assert np.sum(img_mask) == 1 img[0, 0] = 100000 bkgnd_params, img_mask = PSF.background_gradient_fit(img, num_sigma=3) - npt.assert_array_almost_equal(np.array(bkgnd_params), - np.array([0, 2, 0, 0, 0, 3])) + npt.assert_array_almost_equal(np.array(bkgnd_params), np.array([0, 2, 0, 0, 0, 3])) assert np.sum(img_mask) == 2 img[0, 4] = 10000 bkgnd_params, img_mask = PSF.background_gradient_fit(img, num_sigma=3) - npt.assert_array_almost_equal(np.array(bkgnd_params), - np.array([0, 2, 0, 0, 0, 3])) + npt.assert_array_almost_equal(np.array(bkgnd_params), np.array([0, 2, 0, 0, 0, 3])) assert np.sum(img_mask) == 3 From 2f3c79dba19450491afa1be8041bd957aa2f59ce Mon Sep 17 00:00:00 2001 From: Robert French Date: Sun, 12 Apr 2026 18:48:58 -0700 Subject: [PATCH 03/17] Cleanup and all static tests pass --- .github/workflows/run-tests.yml | 2 +- CODEBASE_ANALYSIS.md | 712 ++++++++++++++++++++++++++++++++ TEST_SUITE_CRITIQUE.md | 577 ++++++++++++++++++++++++++ pyproject.toml | 37 +- scripts/run-all-checks.sh | 15 +- src/psfmodel/gaussian.py | 7 +- src/psfmodel/hst.py | 71 ++-- src/psfmodel/psf.py | 3 +- tests/conftest.py | 30 ++ tests/test_find_position.py | 173 ++++++++ tests/test_gaussian.py | 554 ++++++++++++++++--------- tests/test_psf.py | 80 +++- 12 files changed, 2004 insertions(+), 257 deletions(-) create mode 100644 CODEBASE_ANALYSIS.md create mode 100644 TEST_SUITE_CRITIQUE.md create mode 100644 tests/conftest.py create mode 100644 tests/test_find_position.py diff --git a/.github/workflows/run-tests.yml b/.github/workflows/run-tests.yml index 6d5b37e..3a59412 100644 --- a/.github/workflows/run-tests.yml +++ b/.github/workflows/run-tests.yml @@ -72,7 +72,7 @@ jobs: - name: Test with coverage run: | - python -m pytest --cov=src -n auto tests + python -m pytest --cov=psfmodel -n auto tests - name: Print coverage report run: | diff --git a/CODEBASE_ANALYSIS.md b/CODEBASE_ANALYSIS.md new file mode 100644 index 0000000..449d52e --- /dev/null +++ b/CODEBASE_ANALYSIS.md @@ -0,0 +1,712 @@ +# Codebase Analysis: rms-psfmodel + +## Summary + +`rms-psfmodel` is a Python library for PSF (Point Spread Function) model fitting, +supporting analytic Gaussian PSFs and HST/TinyTim-based PSFs. The Gaussian path +(`gaussian.py`, `psf.py`) is moderately well-structured, partially typed, and has +reasonable test coverage for its core math. However, the codebase has several critical +numerical bugs, a complete absence of the `logging` module (all diagnostic output uses +bare `print()`), significant dead and commented-out code, and an `hst.py` module that is +entirely untested, uses `os.system()` for shell execution, and reads environment variables +at import time — crashing any user who does not have `TINYTIM` and `PSF_CACHE_DIR` set. +Test coverage is only ~45% overall (68% for `psf.py`, 0% for `hst.py`). + +**Top priorities:** + +1. Fix the numerical correctness bugs in `gaussian_integral_1d` and + `background_gradient_fit` (data-integrity risk). +2. Replace all `print()` debugging with `logging` throughout the library. +3. Address the `hst.py` import-time crash, `os.system()` shell injection, and `assert` + misuse. + +--- + +## 1. Algorithms and Numerical Accuracy + +### 1.1 CRITICAL — `gaussian_integral_1d` uses `np.abs()` on signed integral (array path) + +- **Evidence:** `gaussian.py` lines 267–281 +- **Issue:** The scalar path correctly computes + `erf(xmax) - erf(xmin)`, which is signed (positive when `xmax > xmin`, negative + otherwise). The array path wraps the difference in `np.abs()`: + + ```python + result = np.abs(erf(xmax_div_sqrt_2) - erf(xmin_div_sqrt_2)) + ``` + + This means the array path always returns a non-negative value regardless of the + ordering of `x_min` and `x_max`, while the scalar path preserves the sign. The two code + paths are therefore inconsistent. If a caller ever passes `x_min > x_max` (e.g. to + express a reversed integration direction), the scalar and array paths disagree. More + subtly, when `base != 0`, the `base` is added *after* the absolute value, so the result + for `scale * integral + base` differs from the scalar result even for `x_min < x_max` + when `scale` is negative. +- **Impact:** Silent numerical errors in any pipeline that relies on the array path with + non-standard argument ordering or negative scale. This is the most serious correctness + issue in the codebase. +- **Suggestion:** Remove `np.abs()` to match the scalar path. + +### 1.2 CRITICAL — `background_gradient_fit` missing f-string prefix + +- **Evidence:** `psf.py` line 284 +- **Issue:** The error message reads: + + ```python + raise ValueError('Image must be 2-D, got {image.shape}') + ``` + + This is a plain string, not an f-string. The user sees the literal text + `{image.shape}` instead of the actual shape, making the error message useless for + diagnosis. +- **Suggestion:** Change to `f'Image must be 2-D, got {image.shape}'`. + +### 1.3 HIGH — `gaussian_integral_1d` uses `assert` for input validation + +- **Evidence:** `gaussian.py` line 263 +- **Issue:** `assert sigma > 0.` is used to validate a public-API parameter. Asserts are + removed under `python -O`, silently allowing `sigma <= 0` which produces `nan`/`inf` + results. +- **Suggestion:** Replace with `if sigma <= 0: raise ValueError(...)`. + +### 1.4 HIGH — `gaussian_integral_2d` angle path uses mean-of-samples (not true integral) + +- **Evidence:** `gaussian.py` lines 330–365 +- **Issue:** When `angle != 0`, the 2-D Gaussian integral falls back to sampling the + function on a `linspace` grid of size `angle_subsample` (default 13) and returning + `np.mean(ret)`. This is a crude midpoint-rule quadrature on a 13×13 grid. For narrow + Gaussians (`sigma < 0.5`) or large integration regions, 169 samples may not capture the + peak adequately. The `np.mean()` approximation also does not correctly scale by the area + of the integration domain — it returns the average value, not the integral. For the + integral to be correct it should be multiplied by the area + `(y_max - y_min) * (x_max - x_min)`, which is not done here. + + **However**, this same function is called in the angle=0 path from `eval_pixel` where it + evaluates over a unit pixel (area = 1), so the mean equals the integral only in that + specific case. For non-unit-pixel regions or direct calls with `angle != 0`, the result + is mathematically incorrect. +- **Impact:** Quantitative errors for any rotated Gaussian integration over non-unit + regions. Even for unit pixels, accuracy is limited to ~1% for `sigma < 1`. +- **Suggestion:** Either multiply by the area `(y_max - y_min) * (x_max - x_min)`, or + switch to a proper 2-D quadrature (e.g. `scipy.integrate.dblquad` or rotate the + coordinate system analytically to separate the integral). Document the accuracy + limitation if the grid approach is intentional. + +### 1.5 MEDIUM — `background_gradient` infers order from parameter count via `sqrt` + +- **Evidence:** `psf.py` line 390 +- **Issue:** `order = int(np.sqrt(len(bkgnd_params)*2))-1` uses a floating-point square + root to recover the polynomial order from the parameter count. For the standard counts + (3, 6, 10) this works, but for unusual counts the `int()` truncation could silently pick + the wrong order. No validation is performed on the result. +- **Suggestion:** Validate that the inferred order is consistent with the actual parameter + count, or pass the order explicitly. + +### 1.6 MEDIUM — `_find_position` applies `scaled_psf = psf * scale + base` redundantly + +- **Evidence:** `psf.py` line 804 +- **Issue:** `details['scaled_psf'] = psf * scale + base`, but `psf` was already created + by `self.eval_rect(..., scale=scale, base=base, ...)` (line 790–791), meaning `psf` + already includes the scale and base. The `scaled_psf` entry therefore double-applies the + scaling: `(psf_raw * scale + base) * scale + base`. The residual computation + `sub_img_grad - details['scaled_psf']` at line 569 uses this double-scaled PSF, which is + incorrect. +- **Impact:** The bad-pixel rejection loop in `find_position` (lines 569–591) computes + residuals against a double-scaled PSF, so the `num_sigma` threshold is compared to an + incorrect residual. The final returned position is still from the optimizer, so the + position result itself is not affected, but the `scaled_psf` metadata entry and the + bad-pixel masking logic are wrong. +- **Suggestion:** Either compute `psf` with `scale=1., base=0.` and store `psf * scale + + base` in `scaled_psf`, or call `eval_rect` with the full parameters and set + `details['scaled_psf'] = psf`. + +### 1.7 LOW — Numerical stability of Gaussian evaluation for extreme sigma + +- **Evidence:** `gaussian.py` lines 123–124 +- **Issue:** `np.exp(-(x-mean)**2 / (2 * sigma**2))` underflows to 0.0 for `|x-mean|` + much larger than `sigma`, and `1 / sigma**2` overflows for extremely small sigma. The + `sigma_x_range` default of `(0.01, 10.)` keeps sigma in a safe range during fitting, + but the static methods accept arbitrary sigma. +- **Suggestion:** Document the valid range or add a guard for sigma near zero. + +--- + +## 2. Performance and Resource Use + +### 2.1 HIGH — `_eval_rect` creates flat coordinate arrays instead of using meshgrid + +- **Evidence:** `gaussian.py` lines 527–541 +- **Issue:** `_eval_rect` constructs `y_coords` via `np.repeat` and `x_coords` via + `np.tile`, then creates a `(2, N)` coords array. This allocates three large arrays where + a simple `np.meshgrid` + reshape would suffice and be clearer. More importantly, these + flat coordinate arrays are passed to `eval_pixel`, which calls + `gaussian_integral_2d` element-by-element for the `angle != 0` path (the array branch + of `gaussian_integral_2d` has an explicit Python `for` loop at lines 353–363). For a + 21×21 PSF with a non-zero angle, this means 441 separate `np.linspace` + `meshgrid` + + `gaussian_2d` calls. +- **Suggestion:** For the rotated case, vectorize the computation. Consider using a + rotated-coordinate analytic integral or at least batch the meshgrid operation. + +### 2.2 HIGH — Powell optimizer called with `maxiter = len(starting_guess) * 10000` + +- **Evidence:** `psf.py` line 752 +- **Issue:** For a typical Gaussian with 5–7 parameters, this sets `maxiter` to + 50,000–70,000. Powell's method evaluates the objective function many times per iteration. + Each evaluation calls `eval_rect`, which for a 21×21 Gaussian is fast but for an HST PSF + involves spline interpolation, reshaping, and optional convolution. The large iteration + cap can cause `find_position` to run for minutes if convergence is slow. +- **Suggestion:** Consider a more modern optimizer (e.g. `scipy.optimize.minimize` with + `method='L-BFGS-B'` for bounded problems) and add a callback or timeout mechanism. At + minimum, log the number of iterations used. + +### 2.3 MEDIUM — `_eval_rect_smeared` allocates a new array per step in the loop + +- **Evidence:** `psf.py` lines 173–189 +- **Issue:** Each step in the motion-blur loop calls `_eval_rect` which returns a new + array, then adds it to `total_rect`. For `num_steps` up to several hundred (large + motion, small granularity), this allocates many temporary arrays. +- **Suggestion:** Pre-allocate `total_rect = np.zeros(rect_size)` and accumulate in place. + +### 2.4 MEDIUM — `hst.py` `_cache_pixelation` evaluates spline per-point + +- **Evidence:** `hst.py` lines 672–681 +- **Issue:** `desired_y_indices` and `desired_x_indices` are flattened to 1-D, then + `spline.ev()` is called on them. For a 39×5 = 195 pixel subsampled PSF, this evaluates + ~38,000 points individually. `RectBivariateSpline.__call__` on a 2-D grid is much faster + because it exploits the tensor-product structure. +- **Suggestion:** Use `spline(desired_y_unique, desired_x_unique)` on the unique + coordinate arrays to get a 2-D grid evaluation. + +### 2.5 LOW — No caching of `_background_gradient_coeffs` + +- **Evidence:** `psf.py` line 326, called inside a `while True` loop at line 333 +- **Issue:** `_background_gradient_coeffs` is called once before the loop, but + `background_gradient` (line 357) calls it again inside the loop on every iteration. For + a fixed image shape and order, the result is always the same. +- **Suggestion:** Cache the coefficients or pass them into `background_gradient`. + +--- + +## 3. Debugging and Logging + +### 3.1 CRITICAL — No `logging` module usage anywhere in the library + +- **Evidence:** `grep -r "logging" src/psfmodel/` returns zero matches. +- **Issue:** The entire library uses bare `print()` for diagnostic output, controlled by + the integer `self._debug_opt` attribute. There are **50+** `print()` calls in `psf.py` + and **30+** in `hst.py`. This violates the project's own rule: "ALWAYS include + meaningful, structured logging (use the `logging` module)... NEVER use bare `print()` + for diagnostic output in library code." +- **Impact:** Users cannot selectively enable/disable debug output, redirect it to a log + file, or integrate it with their own logging configuration. The `print()` calls write + directly to stdout, polluting output in Jupyter notebooks, pipelines, and web services. +- **Suggestion:** Replace all `print()` calls with `logging.getLogger(__name__)` calls at + appropriate levels: + - `logger.debug()` for `_debug_opt > 1` messages (per-iteration detail) + - `logger.info()` for `_debug_opt == 1` messages (entry/exit, final results) + - `logger.warning()` for the unconditional `'FAIL'` message at line 760 + - `logger.error()` for fatal errors in `hst.py` + + Add `logging.getLogger(__name__).addHandler(logging.NullHandler())` in + `__init__.py` as per library best practice. + +### 3.2 HIGH — `_debug_opt` is a public mutable attribute with no API + +- **Evidence:** `psf.py` line 28 +- **Issue:** `self._debug_opt = 0` is set in `__init__`, but tests set it directly + (e.g. `psf._debug_opt = 10`). There is no method, property, or documentation for this. + The integer levels (0, 1, 2, 3) are undocumented and scattered across the code. +- **Suggestion:** Remove once `logging` is adopted. If levels are still needed, use + standard `logging` levels (`DEBUG`, `INFO`, etc.). + +### 3.3 HIGH — Debug `print()` on optimizer failure is unconditional + +- **Evidence:** `psf.py` line 760 +- **Issue:** `print('FAIL', message)` fires regardless of `_debug_opt`, meaning any + user calling `find_position` will see "FAIL ..." on stdout if the optimizer does not + converge. This should be a `logger.warning()` at minimum, or the failure should be + communicated via the return value (which it already is — `None`). + +### 3.4 MEDIUM — Unreachable `print('hi')` at end of `_find_position` + +- **Evidence:** `psf.py` line 885 +- **Issue:** `print('hi')` appears after `return offset_y, offset_x, details` at line 883. + This is dead code that will never execute but suggests leftover debugging. +- **Suggestion:** Delete. + +--- + +## 4. Structure and Layout + +### 4.1 HIGH — Dead code: `_dead_code()` function and unreachable `print('hi')` + +- **Evidence:** `psf.py` lines 885–889 +- **Issue:** A standalone function `_dead_code()` containing only `pass` exists at module + level, preceded by unreachable `print('hi')`. This is clearly leftover scaffolding. +- **Suggestion:** Delete both. + +### 4.2 HIGH — Massive amounts of commented-out code + +- **Evidence:** `psf.py` lines 55–79 (commented abstract `eval_pixel`), lines 618–644 + (commented bounds logic), lines 806–850 (commented covariance/error computation), + lines 851–854 (commented leastsq metadata). `gaussian.py` lines 127–175 (commented + `gaussian_2d_rho`). Test files also have commented-out assertions with `# TODO: Why?`. +- **Impact:** Makes the code harder to read and maintain. Version control preserves + history; commented-out code adds noise. +- **Suggestion:** Remove all commented-out code blocks. File issues for features that were + partially implemented (e.g. the covariance/error estimation). + +### 4.3 HIGH — `hst.py` excluded from Ruff and mypy + +- **Evidence:** `pyproject.toml` line 121: `exclude = ["src/psfmodel/hst.py"]`, + `.mypy.ini` line 3: `exclude = hst.py` +- **Issue:** The largest module (789 lines) is exempt from all linting and type checking. + It uses bare `assert` for control flow (20 instances), `print()` for error reporting, + `os.system()` for shell execution, and has no type annotations. +- **Suggestion:** Incrementally bring `hst.py` under lint and type checking. Start by + adding type annotations to public methods and replacing `assert False` with proper + exceptions. + +### 4.4 MEDIUM — `psf.py` header says `# psfmodel/__init__.py` + +- **Evidence:** `psf.py` line 2 +- **Issue:** Stale header comment; the module is `psf.py`, not `__init__.py`. +- **Suggestion:** Fix to `# psfmodel/psf.py`. + +### 4.5 MEDIUM — `__init__.py` does not export `HSTPSF` + +- **Evidence:** `src/psfmodel/__init__.py` +- **Issue:** `__all__` exports `PSF` and `GaussianPSF` but not `HSTPSF`. Users must do + `from psfmodel.hst import HSTPSF`. If `HSTPSF` is part of the public API, it should be + in `__all__`. If it is internal/experimental, it should be prefixed with `_` or clearly + documented as such. +- **Suggestion:** Decide on the public status of `HSTPSF` and update `__all__` and docs + accordingly. Note that importing `HSTPSF` in `__init__.py` would trigger the + import-time crash for users without `TINYTIM` set (see Security section). + +### 4.6 LOW — Duplicate mypy configuration + +- **Evidence:** Both `.mypy.ini` and `[tool.mypy]` in `pyproject.toml` exist. Per pytest + configuration discovery rules, `.mypy.ini` takes precedence over `pyproject.toml`, so + the `pyproject.toml` mypy settings (e.g. `disallow_subclassing_any = false`) may not + be applied. +- **Suggestion:** Consolidate into `pyproject.toml` and delete `.mypy.ini`. + +### 4.7 LOW — Stale `.flake8` and `setup.cfg` files + +- **Evidence:** `.flake8` configures flake8 (superseded by Ruff), `setup.cfg` contains + only `[metadata] name = rms-psfmodel` (superseded by `pyproject.toml`). +- **Suggestion:** Delete both files. + +--- + +## 5. Best Practices Alignment + +### 5.1 CRITICAL — `hst.py` reads environment variables at module import time + +- **Evidence:** `hst.py` lines 198–199 + + ```python + TINY_TIM_DIR = os.environ['TINYTIM'] + PSF_CACHE_DIR = os.environ['PSF_CACHE_DIR'] + ``` + +- **Issue:** Any `import psfmodel.hst` (or even indirect import) crashes with `KeyError` + if these environment variables are not set. This prevents the entire module from being + imported for testing, documentation generation, or by users who only need `GaussianPSF`. +- **Suggestion:** Defer the lookup to when TinyTim is actually called. Use + `os.environ.get()` with a `None` default and validate at the point of use. + +### 5.2 CRITICAL — `os.system()` used for shell execution with string concatenation + +- **Evidence:** `hst.py` lines 528–544 +- **Issue:** `os.system('./tiny1 ' + temp_filename + ' < ' + params_filename + ...)` is + vulnerable to shell injection if any of the file paths or parameters contain shell + metacharacters. `os.system()` also provides no error handling — the return code is + ignored. +- **Suggestion:** Use `subprocess.run()` with a list of arguments (no `shell=True`). + Check the return code and raise on failure. + +### 5.3 HIGH — `assert` used for control flow in `hst.py` (20 instances) + +- **Evidence:** `hst.py` lines 300, 322, 325, 329, 333, 369, 373, 436, 438, 440, 442, + 449, 473, 550, 586, 615, 616, 719, 772, 773 +- **Issue:** `assert False` is used to signal errors (e.g. unknown instrument, PSF too + small). Asserts are stripped under `python -O`, so these checks vanish in optimized + mode, leading to silent misbehavior or later crashes with confusing tracebacks. +- **Suggestion:** Replace every `assert` used for validation with `raise ValueError(...)`. + +### 5.4 HIGH — `open()` without context manager or `encoding=` + +- **Evidence:** `hst.py` line 482: `params_fp = open(params_filename, 'w')` +- **Issue:** The file is opened without a `with` statement and without specifying + `encoding='utf-8'`. If an exception occurs between `open()` and `close()` (line 522), + the file handle leaks. The default encoding depends on the platform locale. +- **Suggestion:** Use `with open(params_filename, 'w', encoding='utf-8') as params_fp:`. + +### 5.5 HIGH — `hst.py` shadows the built-in `filter` + +- **Evidence:** `hst.py` line 222: `def __init__(self, ..., filter, ...)` +- **Issue:** The parameter name `filter` shadows the Python built-in. Per project rules + (python_best_practices.mdc): "Do NOT use variable or function names that shadow Python + built-ins... append a single underscore (e.g. `filter_`)." +- **Suggestion:** Rename to `filter_` throughout `hst.py`. + +### 5.6 HIGH — `hst.py` `os.getcwd()` used to detect OS + +- **Evidence:** `hst.py` lines 201–206 + + ```python + if os.getcwd()[1] == ':': + DEV_NULL = 'NUL' + else: + DEV_NULL = '/dev/null' + ``` + +- **Issue:** Detecting Windows by checking if the second character of `cwd` is `:` is + fragile. It fails for UNC paths (`\\server\share`), and the check runs at import time + making it dependent on the cwd at that moment. +- **Suggestion:** Use `sys.platform == 'win32'` or `os.devnull` (which is the + platform-correct value). + +### 5.7 MEDIUM — `hst.py` `eval_pixel` references undefined variables `y` and `x` + +- **Evidence:** `hst.py` line 740 + + ```python + self._cache_psf(max(abs(y)*2+1, abs(x)*2+1), **kwargs) + ``` + + The parameters are `coord`, `offset`, `scale`, `base`, `**kwargs`. There are no local + variables `y` or `x` before this line. This is a `NameError` at runtime. +- **Impact:** `eval_pixel` is completely broken and would crash on any call. +- **Suggestion:** Replace with `coord[0]` and `coord[1]`. + +### 5.8 MEDIUM — `HSTPSF.__init__` passes extra positional args to `PSF.__init__` + +- **Evidence:** `hst.py` line 272: `PSF.__init__(self, movement, movement_granularity)` +- **Issue:** `PSF.__init__` accepts only `**kwargs`, not positional arguments. This would + raise a `TypeError` at runtime. The `movement` and `movement_granularity` parameters are + handled by `_eval_rect_smeared` via `eval_rect`, not by the base class. +- **Impact:** `HSTPSF` cannot be instantiated. This module is entirely non-functional in + its current state. +- **Suggestion:** Remove the extra arguments from the `PSF.__init__` call. + +### 5.9 MEDIUM — `hst.py` `_cache_pixelation` references `self.movement` (never set) + +- **Evidence:** `hst.py` lines 654–655 +- **Issue:** `self.movement` is never assigned in `HSTPSF.__init__`. The base class + `PSF.__init__` does not set it either. This would raise `AttributeError` at runtime. +- **Suggestion:** If motion blur is needed, store `self._movement` and + `self._movement_granularity` as instance attributes in `HSTPSF.__init__`. + +### 5.10 LOW — `num_sigma` checked as truthy instead of `is not None` + +- **Evidence:** `psf.py` lines 542, 566 +- **Issue:** `if num_sigma:` treats `0.0` as falsy. If a caller passes `num_sigma=0.0` + (meaning "reject no pixels"), the code skips the sigma-rejection loop, which is correct + by coincidence but not by intent. +- **Suggestion:** Use `if num_sigma is not None:` for clarity. + +--- + +## 6. Types and Static Checks + +### 6.1 HIGH — mypy is commented out of dev dependencies + +- **Evidence:** `pyproject.toml` line 69: `# "mypy>=1.0",` +- **Issue:** mypy is not installed by `pip install -e ".[dev]"`, so developers are not + running type checks locally. The CI workflow *does* run mypy, but the local dev + experience is inconsistent. +- **Suggestion:** Uncomment mypy in dev dependencies. + +### 6.2 HIGH — `_eval_rect` has `# type: ignore` on method signature + +- **Evidence:** `gaussian.py` lines 515, 545 +- **Issue:** Both `_eval_rect` and `eval_rect` have `# type: ignore` on the `def` line + because the override signatures do not match the base class. The base class defines + `_eval_rect(self, ...) -> npt.NDArray[np.float64]` while the override adds `sigma`, + `sigma_y`, `sigma_x`, and `angle` keyword arguments. +- **Suggestion:** Align the base-class signature (use `**kwargs: Any` in the base) or use + `@overload` to express the extended signatures. The `# type: ignore` suppresses + real type errors. + +### 6.3 MEDIUM — `hst.py` has zero type annotations + +- **Evidence:** All 789 lines of `hst.py` +- **Issue:** No function signatures, no return types, no variable annotations. The module + is excluded from mypy so this is not flagged. +- **Suggestion:** Add annotations incrementally, starting with the public API + (`HSTPSF.__init__`, `eval_point`, `eval_pixel`, `eval_rect`, `run_tinytim`). + +### 6.4 LOW — Inconsistent return type annotations + +- **Evidence:** `gaussian.py` `eval_point` returns `cast(float, ret)` but the actual + return could be an array; `gaussian_1d` returns `cast(float | npt.NDArray, ret)`. +- **Suggestion:** Ensure cast types match actual possible returns. + +--- + +## 7. Testing + +### 7.1 HIGH — Overall coverage is only ~45% + +- **Evidence:** pytest-cov output: `TOTAL 791 435 302 19 45%` +- **Issue:** `hst.py` is 0% covered (331 statements). `psf.py` is 68% covered — the + entire `find_position` debug-output and bad-pixel rejection paths are untested. The + coverage target in `pyproject.toml` is set to `fail_under = 40` (marked `# TODO`). +- **Suggestion:** Raise the coverage target incrementally. Add tests for + `find_position` with `num_sigma`, edge-of-image, and all-masked scenarios. Add basic + `hst.py` unit tests (mocking TinyTim). + +### 7.2 HIGH — No tests for `HSTPSF` at all + +- **Evidence:** `tests/` contains only `test_gaussian.py` and `test_psf.py`. +- **Issue:** The entire HST PSF path is untested. Given the numerous bugs identified above + (`NameError`, broken `__init__`, missing attributes), the module is likely non-functional. +- **Suggestion:** Add a test module `test_hst.py` with mocked TinyTim calls. + +### 7.3 MEDIUM — Tests do not assert on exception messages + +- **Evidence:** All `pytest.raises(ValueError)` calls in both test files check only the + exception type, not the message content (e.g. `test_gaussian.py` lines 127–138, + `test_psf.py` lines 14–23). +- **Suggestion:** Use `pytest.raises(ValueError, match="...")` or assert on + `str(exc_info.value)`. + +### 7.4 MEDIUM — Commented-out assertions with `# TODO: Why?` + +- **Evidence:** `test_gaussian.py` lines 292, 302, 310, 318 +- **Issue:** Several assertions for `scale` and `sigma` in `test_gaussian_find_position` + are commented out with `# TODO: Why?`. This suggests known fitting accuracy issues that + are not understood or tracked. +- **Suggestion:** Investigate and either fix the fitting or document the known limitation + with a linked issue. + +### 7.5 MEDIUM — No `conftest.py` or shared fixtures + +- **Evidence:** No `tests/conftest.py` exists. +- **Issue:** Test setup is duplicated across test functions (e.g. creating `GaussianPSF()` + instances, generating test images). +- **Suggestion:** Create shared fixtures for common PSF instances and test images. + +### 7.6 LOW — Tests access private `_background_gradient_coeffs` directly + +- **Evidence:** `test_psf.py` line 15: `PSF._background_gradient_coeffs((3, -1), 1)` +- **Issue:** Tests import and call `_`-prefixed methods directly, coupling them to + implementation details. +- **Suggestion:** Test through the public API (`background_gradient_fit`, + `background_gradient`) where possible. + +--- + +## 8. Security and Robustness + +### 8.1 CRITICAL — Shell injection via `os.system()` in `hst.py` + +- **Evidence:** `hst.py` lines 528–544 +- **Issue:** `os.system('./tiny1 ' + temp_filename + ' < ' + params_filename + redir)` + concatenates user-influenced strings into a shell command. If `PSF_CACHE_DIR` or a filter + name contained shell metacharacters (e.g. `; rm -rf /`), arbitrary commands could execute. +- **Suggestion:** Use `subprocess.run([...], check=True)` without `shell=True`. + +### 8.2 HIGH — No path traversal protection in `hst.py` + +- **Evidence:** `hst.py` lines 471, 474–476 +- **Issue:** `fits_filename = path_join(PSF_CACHE_DIR, fits_base)` and + `os.chdir(TINY_TIM_DIR)` use environment-variable paths with no validation. A malicious + `PSF_CACHE_DIR` could write FITS files to arbitrary locations. +- **Suggestion:** Validate that paths resolve within expected directories. + +### 8.3 MEDIUM — `hst.py` reads FITS header comments to extract diffusion matrix + +- **Evidence:** `hst.py` lines 571–578 +- **Issue:** The diffusion matrix is parsed from FITS header COMMENT lines by splitting on + spaces and calling `float()`. No validation is done on the number of values, their range, + or the comment format. A corrupted or modified FITS file could cause `IndexError`, + `ValueError`, or inject extreme values into the convolution. +- **Suggestion:** Validate the parsed matrix (shape, value ranges) before use. + +--- + +## 9. Dependencies and Tooling + +### 9.1 HIGH — Runtime dependencies have no minimum versions + +- **Evidence:** `pyproject.toml` lines 11–15 + + ```toml + dependencies = [ + "astropy", + "numpy", + "scipy" + ] + ``` + +- **Issue:** Per project rules, library dependencies should specify minimum compatible + versions (e.g. `numpy>=1.24`). Without minimums, users may install ancient versions + that lack required features. +- **Suggestion:** Add minimum versions based on the features used (e.g. `numpy>=1.24`, + `scipy>=1.10`, `astropy>=5.3`). + +### 9.2 MEDIUM — `pyproject.toml` has stale TODO markers + +- **Evidence:** `pyproject.toml` lines 23 (`keywords = ["TODO"]`), 59 + (`"TODO" = ["py.typed"]`), 88 (`#TODO = "main.psfmodel:main"`), 103 + (`fail_under = 40 # TODO`) +- **Suggestion:** Replace `keywords` with actual keywords (e.g. `"PSF"`, `"astronomy"`, + `"Gaussian"`). Fix the `py.typed` package-data key to `"psfmodel"`. Remove or fill in + the script entry point. Set `fail_under` to a meaningful target (e.g. 80). + +### 9.3 MEDIUM — Duplicate/conflicting linter configurations + +- **Evidence:** `.flake8` (max-line-length 90), `pyproject.toml` Ruff (line-length 100), + `.mypy.ini` vs `[tool.mypy]` in `pyproject.toml` +- **Issue:** Multiple config files for the same tools create confusion about which is + active. Ruff has replaced flake8 in this project. +- **Suggestion:** Delete `.flake8` and `.mypy.ini`. Consolidate everything into + `pyproject.toml`. + +### 9.4 LOW — `setup.cfg` still exists + +- **Evidence:** `setup.cfg` contains only `[metadata] name = rms-psfmodel` +- **Issue:** Redundant with `pyproject.toml`. May confuse build tools. +- **Suggestion:** Delete. + +--- + +## 10. Maintainability and Extensibility + +### 10.1 HIGH — `find_position` returns `tuple[float, float, dict[str, Any]]` + +- **Evidence:** `psf.py` line 418 +- **Issue:** The return type is `None | tuple[float, float, dict[str, Any]]`. The + `details` dict has 10+ keys with mixed types, no schema, and no documentation beyond + the docstring. Callers must remember string keys like `'subimg-gradient'` and + `'scaled_psf'`. +- **Suggestion:** Define a `@dataclass` (e.g. `FitResult`) with typed fields. This + enables IDE autocompletion, type checking, and clearer documentation. + +### 10.2 HIGH — `_additional_params` is a list of tuples with magic indices + +- **Evidence:** `gaussian.py` lines 74–82, `psf.py` lines 651–658 +- **Issue:** Each additional parameter is stored as `(min, max, name)` in a list. Code + accesses `ap[0]`, `ap[1]`, `ap[2]` with no named fields. This makes the code fragile + and hard to extend. +- **Suggestion:** Use a `NamedTuple` or `@dataclass` (e.g. + `ParamSpec(min: float, max: float, name: str)`). + +### 10.3 MEDIUM — Docs only automodule `psfmodel`, missing `gaussian` and `hst` + +- **Evidence:** `docs/module.rst` lines 1–10 +- **Issue:** The Sphinx docs only have `.. automodule:: psfmodel`. The `gaussian` and + `hst` submodules are not documented. Since `GaussianPSF` is re-exported from + `__init__.py` it may appear, but `HSTPSF`, static methods, and utility functions are + invisible in the docs. +- **Suggestion:** Add `.. automodule:: psfmodel.gaussian` and + `.. automodule:: psfmodel.psf` sections (and `psfmodel.hst` when ready). + +### 10.4 MEDIUM — README describes wrong project + +- **Evidence:** `README.md` line 33: "psfmodel is a set of classes for reading and + searching star catalogs. Currently NAIF SPICE star catalogs, the Yale Bright Star + Catalog (YBSC), and UCAC4 are supported." +- **Issue:** This is a copy-paste from a different project. The actual project is a PSF + model fitting library. +- **Suggestion:** Rewrite the introduction to describe PSF modeling and fitting. + +### 10.5 LOW — GUI program in `programs/psf_gui.py` uses wildcard import + +- **Evidence:** `psf_gui.py` line 5: `from tkinter import *` +- **Issue:** Wildcard imports pollute the namespace and make it unclear which names come + from tkinter. +- **Suggestion:** Use `import tkinter as tk` and prefix all names with `tk.`. + +--- + +## 11. Packaging and Distribution + +### 11.1 MEDIUM — `py.typed` package-data key is `"TODO"` + +- **Evidence:** `pyproject.toml` line 59: `"TODO" = ["py.typed"]` +- **Issue:** The `py.typed` marker file exists in `src/psfmodel/`, but the `pyproject.toml` + key should be `"psfmodel"`, not `"TODO"`. The marker file is not included in the built + wheel. +- **Suggestion:** Change to `"psfmodel" = ["py.typed"]`. + +### 11.2 LOW — `requirements.txt` is not present or useful + +- **Evidence:** A `requirements.txt` exists but was not read; per the dependency management + rule it should contain only `-e .` if kept. +- **Suggestion:** Verify contents or delete. + +--- + +## 12. Technical Debt and Risk + +### 12.1 HIGH — `hst.py` is effectively non-functional + +- **Evidence:** Multiple runtime errors (NameError, TypeError, AttributeError) identified + in code review, zero test coverage, excluded from all linting. +- **Issue:** This module cannot be imported without specific environment variables and + cannot be instantiated due to broken `__init__`. It appears to be legacy code that has + not been maintained alongside the refactoring of `psf.py`. +- **Suggestion:** Either invest in bringing `hst.py` up to standard (fix bugs, add types, + add tests, remove `os.system`) or mark it explicitly as experimental/unsupported and + gate the import behind a try/except with a clear message. + +### 12.2 MEDIUM — Commented-out covariance/error estimation in `_find_position` + +- **Evidence:** `psf.py` lines 806–850 +- **Issue:** The switch from `scipy.optimize.leastsq` to `scipy.optimize.minimize` (with + Powell) means covariance information is no longer available. The old code is commented + out, and the docstring still documents `leastsq_cov`, `x_err`, `y_err`, etc., that are + never populated. This is misleading to users who expect uncertainty estimates. +- **Suggestion:** Either implement uncertainty estimation (e.g. via numerical Hessian or + bootstrap) or remove the references from the docstring and file an issue to track the + feature gap. + +### 12.3 MEDIUM — `gaussian_2d_rho` commented out but referenced in documentation context + +- **Evidence:** `gaussian.py` lines 127–175 +- **Issue:** An alternative parameterization of the 2-D Gaussian using correlation `rho` + is commented out. The mathematical notes in the comments contain an undefined variable + `xcorr` (should be `rho * sigma_x * sigma_y`), suggesting the implementation was never + completed. +- **Suggestion:** Delete the commented-out code. File an issue if the `rho` + parameterization is needed in the future. + +--- + +## Recommended Priorities + +1. **Fix `gaussian_integral_1d` `np.abs()` bug** — silent numerical errors in array + integrals. One-line fix with high data-integrity impact. + +2. **Fix `background_gradient_fit` missing f-string** — users get unhelpful error + messages. One-character fix. + +3. **Fix `_find_position` double-scaling of `scaled_psf`** — incorrect bad-pixel + rejection. Straightforward logic fix. + +4. **Replace all `print()` with `logging`** — the single largest quality-of-life + improvement for library users. Systematic but not complex. + +5. **Triage `hst.py`** — decide whether to fix or deprecate. If fixing: address + import-time crash, `os.system()`, `assert` misuse, undefined variables, and missing + `__init__` arguments. If deprecating: gate the import and document. + +6. **Raise test coverage** — add tests for `find_position` edge cases, exception + messages, and `HSTPSF` (mocked). Increase `fail_under` from 40% to 80%+. + +7. **Clean up commented-out code and TODOs** — remove dead code, fix stale comments, and + resolve `pyproject.toml` TODO markers. + +8. **Consolidate configuration** — delete `.flake8`, `.mypy.ini`, `setup.cfg`. Uncomment + mypy in dev dependencies. Fix `py.typed` package-data key. + +9. **Fix README** — rewrite the introduction to describe PSF modeling instead of star + catalogs. + +10. **Add minimum dependency versions** — specify `numpy>=X`, `scipy>=Y`, `astropy>=Z` + in `pyproject.toml`. diff --git a/TEST_SUITE_CRITIQUE.md b/TEST_SUITE_CRITIQUE.md new file mode 100644 index 0000000..a9b6565 --- /dev/null +++ b/TEST_SUITE_CRITIQUE.md @@ -0,0 +1,577 @@ +# Test Suite Critique Report + +**Generated:** 2026-04-12 +**Scope:** tests/ (no conftest.py present) + +## Executive summary + +The test suite covers the core mathematical functions of the `psfmodel` library +(Gaussian 1-D/2-D evaluation, integration, pixel evaluation, and PSF fitting) +with reasonable numeric precision assertions. However, there are significant +gaps: + +**Strengths:** + +- Numeric assertions use `pytest.approx` and `npt.assert_array_almost_equal` + consistently, which is appropriate for floating-point comparisons. +- `test_gaussian_find_position` uses `@pytest.mark.parametrize` to cover + multiple `bkgnd_degree` and `use_angular_params` combinations (8 variants). +- Tests validate both scalar and array inputs for mathematical functions. +- Integration tests (via `scipy.integrate`) confirm normalization properties. + +**Main gaps (high priority):** + +1. **Coverage is 45%** (target: 90%). The `hst.py` module (335 statements) has + 0% coverage. Even excluding `hst.py`, `psf.py` is only at 70% with large + uncovered regions (`find_position`, `_find_position`, `_fit_psf_func`, + `_eval_rect_smeared`). +2. **No exception-message assertions.** All 25 `pytest.raises(ValueError)` calls + lack `as exc_info` and message-content checks. +3. **No `conftest.py` or shared fixtures** -- setup logic is duplicated across + tests. +4. **No tests for `PSF.__init__`**, `GaussianPSF.__init__` validation (e.g. + `angle_subsample` range), `eval_rect` validation, `find_position` edge + cases, `_eval_rect_smeared` motion blur, or `background_gradient`. +5. **No logging assertions** despite extensive `self._logger` usage in `psf.py`. +6. **`hst.py` is entirely untested** (excluded from mypy/ruff but still shipped). + +**Nice-to-have improvements:** + +- Parameterize repetitive test cases in `test_gaussian_1d`, `test_gaussian_2d`. +- Add type annotations to test functions. +- Configure `filterwarnings = ["error"]` and `--strict-markers` in pytest. + +--- + +## 1. Return values and assertions + +**Strengths:** + +- Numeric return values are checked with `pytest.approx` (explicit tolerances + where needed) and `npt.assert_array_almost_equal`. +- `test_gaussian_find_position` checks specific dictionary keys (`sigma_y`, + `sigma_x`, `scale`) with explicit values. + +**Issues:** + +- **`test_gaussian_eval_rect` (line 226-230):** Only checks + `np.sum(...) == pytest.approx(1)`. Does not assert shape, individual pixel + values, or that the center pixel is the maximum. This is a weak existence + assertion. +- **`test_gaussian_find_position`:** Several assertions are commented out with + `# TODO: Why?` (lines 349, 366-367, 384-385), meaning those return values + are not verified at all. +- **`test_background_gradient_fit` (line 84):** Checks `np.sum(img_mask) == 0` + but not the shape or dtype of `img_mask`. +- **`test_bkgnd_gradient_coeffs`:** Uses `assert np.all(ret == exp)` which + gives poor diagnostic messages on failure compared to + `npt.assert_array_equal`. + +--- + +## 2. Success and failure conditions + +### GaussianPSF + +| Method | Success tested | Failure tested | Missing | +|---|---|---|---| +| `gaussian_1d` | Yes (scalars, arrays) | No | Negative sigma, sigma=0 | +| `gaussian_2d` | Yes (scalars, arrays, rotation) | No | Invalid sigma, angle edge cases | +| `gaussian_integral_1d` | Yes (scalars, arrays, params) | No | sigma<=0 (has `assert sigma > 0`), xmin > xmax | +| `gaussian_integral_2d` | Yes (scalars, arrays) | No | Invalid inputs | +| `eval_point` | Yes | Partial (6 ValueError) | No message assertions; missing edge cases for `angle` param | +| `eval_pixel` | Yes | Partial (9 ValueError) | No message assertions | +| `eval_rect` | Minimal (sum only) | No | Odd-size validation, negative size, shape check | +| `__init__` | Implicit only | No | `angle_subsample` out of range, invalid sigma types | + +### PSF + +| Method | Success tested | Failure tested | Missing | +|---|---|---|---| +| `_background_gradient_coeffs` | Yes (orders 1-3) | Partial (5 ValueError) | No message assertions | +| `background_gradient_fit` | Yes (masked, unmasked, sigma) | Partial (4 ValueError) | No message assertions | +| `background_gradient` | Yes (indirect) | No | Invalid params | +| `find_position` | Yes (via GaussianPSF) | No | box_size validation, edge-of-image None return, optimizer failure, all-pixels-masked | +| `_eval_rect_smeared` | No | No | Motion blur (movement != None) | +| `__init__` | Implicit only | No | Logger, detailed_logging | + +--- + +## 3. Consistency + +- **Naming:** Test names follow `test__` or + `test_` consistently. However, they do not encode conditions + (e.g., `test_gaussian_1d_with_scale`), making it hard to tell which scenario + failed. +- **Structure:** `test_gaussian_1d` and `test_gaussian_2d` mix many scenarios + into a single test function (scalar, array, integration, parameter + variations) rather than separating them into focused tests. +- **Fixtures:** No fixtures are used anywhere. Common PSF objects (e.g., + `GaussianPSF()`, `GaussianPSF(sigma=(1,1))`) are recreated in each test. +- **Assertion style:** Mixed use of `assert ... == pytest.approx(...)`, + `npt.assert_array_almost_equal`, and `assert np.all(ret == exp)`. The last + form gives poor failure diagnostics. + +--- + +## 4. Completeness + +### Coverage map + +| Module | Public methods | Tested | Untested | +|---|---|---|---| +| `gaussian.py` | `__init__`, `gaussian_1d`, `gaussian_2d`, `gaussian_integral_1d`, `gaussian_integral_2d`, `eval_point`, `eval_pixel`, `eval_rect` | All partially | `__init__` validation, `eval_rect` shape/edge, `_eval_rect` directly | +| `psf.py` | `__init__`, `eval_point` (abstract), `eval_rect` (abstract), `_eval_rect_smeared`, `_background_gradient_coeffs`, `background_gradient_fit`, `background_gradient`, `find_position` | `_background_gradient_coeffs`, `background_gradient_fit`, `find_position` (partial), `background_gradient` (indirect) | `__init__`, `_eval_rect_smeared`, `find_position` edge cases, `_fit_psf_func`, `_find_position` directly | +| `hst.py` | `HSTPSF.__init__`, `run_tinytim`, `eval_point`, `eval_pixel`, `eval_rect` | None | Everything (0% coverage) | +| `__init__.py` | `__all__` exports | Yes (implicit) | N/A | + +### Docstring gaps + +- `GaussianPSF.eval_pixel` documents the `sigma` parameter as + `tuple[float, float] | None` but also accepts a scalar `float` in + `eval_point`. Tests exercise both, but `eval_pixel` does not accept scalar + sigma, which is inconsistent with `eval_point`. +- `find_position` documents many metadata keys (e.g., `x_err`, `y_err`, + `scale_err`) that are currently commented out in the code. Tests do not + verify which keys are present/absent. + +--- + +## 5. Redundancy + +- **`test_gaussian_integral_1d` lines 90-92 and 102-104:** Both assert + `gaussian_integral_1d(0.0, 1.0) == approx(integrate.quad(...))` with + identical inputs. The second is a duplicate. +- **`test_gaussian_eval_pixel` and `test_gaussian_eval_point`:** Both test + sigma-conflict `ValueError` raises in nearly identical patterns (lines + 145-156 vs 184-201). The validation logic is the same and could share a + helper or parametrize. +- **`test_gaussian_find_position`:** Tests multiple PSF configurations in a + single test function with repeated setup patterns. Breaking into separate + tests per scenario would improve isolation and diagnostics. + +--- + +## 6. Parallel execution + +- **No global mutable state:** Tests do not modify module-level variables or + singletons. Each test creates its own `GaussianPSF` instances. +- **No shared files or external resources:** All data is generated in-memory. +- **Parallel safe:** The tests should run correctly with `pytest -n auto`. + The current config uses `-n 4`. + +**No issues detected.** + +--- + +## 7. Mocking and dependency isolation + +- **No external calls:** The tested modules (`gaussian.py`, `psf.py`) do not + make HTTP requests or access the file system (other than `hst.py` which is + untested). +- **No time-sensitive logic** in tested code paths. +- **No mocks used:** The tests are integration-style, calling real scipy + integration functions. This is appropriate for numerical code. +- **`hst.py`** calls `os.system`, `os.environ`, `os.getcwd`, `pyfits.open`, + and file I/O. If/when tests are added, these will need to be mocked. + +**No issues in current tests, but `hst.py` will need heavy mocking when +tested.** + +--- + +## 8. Security and input validation + +- **Input validation:** `GaussianPSF.__init__` validates `angle_subsample` but + there is no test for it. `eval_rect` validates odd positive shape but has no + test for it. `find_position` validates `box_size` but has no test for it. +- **No sensitive data:** Tests use only numeric constants; no credential risk. +- **No path traversal risk** in tested code (`hst.py` handles paths but is + untested). + +**Missing validation tests:** + +- `GaussianPSF(angle_subsample=0)` -- should raise `ValueError` +- `GaussianPSF(angle_subsample=100)` -- should raise `ValueError` +- `GaussianPSF(angle_subsample=3.5)` -- should raise `ValueError` (not int) +- `GaussianPSF().eval_rect((4, 4))` -- even dimensions +- `GaussianPSF().eval_rect((-1, 5))` -- negative dimensions +- `PSF.find_position(...)` with bad `box_size` + +--- + +## 9. Parameterization + +**Good:** + +- `test_gaussian_find_position` uses `@pytest.mark.parametrize` for + `use_angular_params` and `bkgnd_degree`. + +**Should be parameterized:** + +- **`test_gaussian_1d` (lines 14-33):** 14 separate assertions with different + parameter combinations. These should be parametrized over + `(x, kwargs, expected)` tuples. +- **`test_gaussian_2d` (lines 37-67):** 16+ separate assertions. Same + recommendation. +- **`test_gaussian_eval_point` (lines 145-156):** Six `pytest.raises` calls + with different sigma configurations. Should be parametrized. +- **`test_gaussian_eval_pixel` (lines 184-201):** Nine `pytest.raises` calls. + Same recommendation. +- **`test_bkgnd_gradient_coeffs` (lines 14-23):** Five `pytest.raises` calls. + +**Missing boundary tests:** + +- sigma at 0 (should assert `sigma > 0` raises) +- Very large sigma values +- Very large/small `scale` and `base` values +- `angle_subsample` at boundaries (1, 99) + +--- + +## 10. Async (if applicable) + +Not applicable -- no async code in the project. + +--- + +## 11. Output and contract + +- **`find_position` return shape:** The docstring specifies a detailed + `dict[str, Any]` with many keys (`x`, `y`, `scale`, `base`, `subimg`, + `bkgnd_params`, etc.). Tests only check `sigma_y`, `sigma_x`, and `scale` + from the metadata dict. Many documented keys are never verified: + - `x`, `y`, `base`, `subimg`, `bkgnd_params`, `bkgnd_mask`, `gradient`, + `subimg-gradient`, `psf`, `scaled_psf`. +- **`eval_rect` return shape:** Not asserted (only `np.sum` is checked). +- **Exception types:** Tested (all use `pytest.raises(ValueError)`), but + exception messages are never asserted. + +--- + +## 12. Error handling + +- **25 `pytest.raises(ValueError)` calls across both files**, but **zero** + assert on message content. Every `raise ValueError(...)` in the source + includes a descriptive message string; tests should verify these. +- **Specific issues:** + - `test_gaussian_eval_point` line 145: `GaussianPSF(sigma=(1, 1)).eval_point((0, 0), sigma=5)` + should check message contains "Cannot specify both sigma". + - `test_gaussian_eval_point` line 152: `GaussianPSF(sigma=None).eval_point((0, 0))` + should check message contains "must be specified". + - `test_bkgnd_gradient_coeffs` lines 14-23: should check message contains + "odd positive shape" or "non-negative". +- **`gaussian_integral_1d` line 280:** Uses `assert sigma > 0.0` instead of + `raise ValueError`. This means invalid sigma produces an `AssertionError` + that disappears with `-O`. No test covers this. + +--- + +## 13. State and workflow + +- **No state machines or lifecycle transitions** in the tested code. +- **Idempotency:** `eval_point`, `eval_pixel`, `eval_rect` are pure functions + given the same PSF object -- no idempotency concerns. +- **Side effects:** `find_position` logs messages but tests do not verify + logging side effects (see Section 21). +- **`hst.py` caching:** `HSTPSF._cache_psf` and `_cache_pixelation` are + stateful with caching. Idempotency and cache invalidation are completely + untested. + +--- + +## 14. Test data and fixtures + +- **No `conftest.py`** exists. Common objects like `GaussianPSF()`, + `GaussianPSF(sigma=(1, 1))`, `GaussianPSF(sigma=(2.0, 3.0))` are recreated + in multiple tests. These should be fixtures. +- **Realistic data:** Test data is mathematically generated, which is + appropriate for a numerical library. Edge cases with `np.nan`, `np.inf`, or + very large arrays are not tested. +- **Cleanup:** No external resources are created; no cleanup needed. +- **Fixture scope:** N/A (no fixtures used). +- **Fixture depth:** N/A. + +**Recommended fixtures:** + +```python +@pytest.fixture +def default_psf(): + return GaussianPSF() + +@pytest.fixture +def symmetric_psf(): + return GaussianPSF(sigma=(1.0, 1.0)) + +@pytest.fixture +def asymmetric_psf(): + return GaussianPSF(sigma=(2.0, 3.0)) +``` + +--- + +## 15. Flakiness indicators + +- **No time-based assertions.** +- **No order dependence** detected -- tests do not share mutable state. +- **No external dependencies** in tested code paths. +- **No random data.** +- **`test_gaussian_find_position`** uses numerical optimization + (`scipy.optimize.minimize`) which could theoretically produce slightly + different results on different platforms. The tolerances (`abs=5e-2`, + `abs=1e-1`) are generous enough to avoid flakiness, but this is worth noting. + +**Low flakiness risk overall.** + +--- + +## 16. Regression and documentation + +- **No bug references** in test comments or docstrings. +- **Commented-out code:** `test_gaussian_find_position` has multiple + commented-out assertions (lines 349, 366-367, 384-385) with `# TODO: Why?`. + These may represent known regressions or unfinished investigations. +- **Commented-out test code:** `test_gaussian_integral_2d` has a large + commented-out block (lines 126-141) that appears to be an unfinished rotation + test. +- **`filterwarnings`:** Not configured in `pyproject.toml`. Unexpected warnings + are silently swallowed. +- **Deprecation warnings:** No `pytest.warns` usage. If numpy or scipy emit + deprecation warnings, they go unnoticed. + +--- + +## 17. Other + +- **Type annotations:** Test functions lack return type annotations and + parameter annotations (mypy is configured with `strict = false` for test + files). +- **Clarity:** Test function names describe the method under test but not the + scenario. `test_gaussian_1d` tests 14 different scenarios in one function. +- **AAA pattern:** Most tests follow Arrange-Act-Assert, but large tests like + `test_gaussian_find_position` interleave multiple arrange-act-assert cycles. +- **Single responsibility:** `test_gaussian_1d` tests scalars, arrays, + multidimensional arrays, and integration in a single function. These are + conceptually different behaviors. +- **Speed:** `test_gaussian_find_position` runs 8 parametrized variants, each + performing multiple `scipy.optimize.minimize` calls. This is the slowest + test. Consider marking it `@pytest.mark.slow`. +- **Logic in tests:** `test_gaussian_find_position` lines 387-409 contain an + `if bkgnd_degree is not None:` branch. This conditional logic in a test can + mask failures if the condition is wrong. + +--- + +## 18. Code coverage + +- **Overall coverage: 45.18%** (target: 90%). Measured by running the entire + test suite with `pytest tests/ --cov=src`. +- **`hst.py`: 0%** (335 statements). This module is excluded from mypy and + ruff but still ships as part of the package. It requires TinyTim environment + variables (`TINYTIM`, `PSF_CACHE_DIR`) at import time, making it hard to + test without mocking. +- **`gaussian.py`: 95%** Missing lines: 75, 89, 93, 97, 101, 105, 664. + - Lines 75, 89, 93, 97, 101, 105: Property accessors (`sigma_y`, `sigma_x`, + `mean_y`, `mean_x`) and `angle_subsample` validation dead branch. + - Line 664: `eval_rect` validation (odd positive shape). +- **`psf.py`: 70%** Missing 82 statements. + - `_eval_rect_smeared` (lines 187-213): Motion blur path untested. + - `find_position` edge cases (lines 532-669): box_size validation, edge of + image, optimizer failure, bad pixel masking. + - `_fit_psf_func` detailed logging (lines 739-744). + - `_find_position` detailed logging and optimizer failure (lines 818-820, + 838-839, 941-956). +- **`__init__.py`: 100%** + +**To reach 90%:** `hst.py` must be either tested or excluded from coverage +measurement. `psf.py` needs tests for `_eval_rect_smeared`, +`find_position` edge cases, and error paths. + +--- + +## 19. Pytest markers + +- **No custom markers are registered** in `pyproject.toml` (`markers` key is + absent). +- **`--strict-markers` is not enabled.** Any marker typo would be silently + ignored. +- **Markers used:** Only `@pytest.mark.parametrize` (built-in). +- **No `xfail` or `skip` markers.** +- **No `@pytest.mark.slow`** despite `test_gaussian_find_position` being + notably slower than others. + +**Recommendations:** + +- Add `markers = []` to `[tool.pytest.ini_options]`. +- Add `"--strict-markers"` and `"--strict-config"` to `addopts`. +- Consider `@pytest.mark.slow` for `test_gaussian_find_position`. + +--- + +## 20. Test boundary + +- **Private imports:** `test_psf.py` line 15 calls + `PSF._background_gradient_coeffs(...)` directly. This is a private method + (`_`-prefixed). The test is tightly coupled to the internal implementation. +- **Public API coverage:** `background_gradient_fit` and `find_position` are + tested through the public API, which is good. However, + `background_gradient` is tested only indirectly (as a helper in + `background_gradient_fit` tests). +- **Over-mocking:** No mocking is used, so this is not an issue. +- **`hst.py` public API:** `HSTPSF.eval_point`, `HSTPSF.eval_pixel`, + `HSTPSF.eval_rect` are completely untested. + +--- + +## 21. Logging assertions + +- **`psf.py` contains 43 logger calls** (mix of `.info`, `.debug`, `.warning`) + used extensively in `find_position` and `_find_position`. +- **Zero `caplog` usage** in the test suite. +- **Key untested logging:** + - `find_position`: Logs "optimizer did not succeed" at WARNING level when + optimization fails (line 838). This is the only warning-level log and + should have a test. + - `find_position`: Logs entry/exit at INFO level when `detailed_logging=True`. + - `_fit_psf_func`: Logs per-iteration diagnostics at DEBUG level. +- **Recommendation:** Add at least one test with `caplog` that verifies the + optimizer-failure warning message. + +--- + +## 22. Pytest configuration + +- **Active config file:** `pyproject.toml` (`[tool.pytest.ini_options]`). No + higher-precedence files (`pytest.toml`, `.pytest.toml`, `pytest.ini`, + `.pytest.ini`) exist. +- **`testpaths`:** Not set. Pytest collects from the entire repo. Should be set + to `["tests"]`. +- **`addopts`:** `["-n", "4", "--cov=src"]`. Missing `--strict-markers`, + `--strict-config`, and `-W error::DeprecationWarning`. +- **`filterwarnings`:** Not configured. Unexpected warnings are silently + ignored. +- **Plugins installed:** `pytest-xdist` (for `-n`), `pytest-cov`. Both are + used. +- **Missing plugins:** `pytest-randomly` (for order-independence testing) is + not listed but would be beneficial. +- **No duplicate config files** detected. + +**Recommendations:** + +```toml +[tool.pytest.ini_options] +testpaths = ["tests"] +addopts = ["-n", "4", "--cov=src", "--strict-markers", "--strict-config"] +filterwarnings = ["error"] +markers = [] +``` + +--- + +## 23. Snapshot and golden-file testing + +- **No snapshot or golden-file tests** are used. +- **Candidates:** `find_position` returns a complex dict with many keys. + The full return shape could benefit from a snapshot test rather than + cherry-picking individual keys. +- **`eval_rect` output:** The full 2-D array could be snapshot-tested for + regression, though inline `npt.assert_array_almost_equal` is adequate for + small arrays. + +**Not critical for this project, but `find_position` metadata dict is a good +candidate.** + +--- + +## Prompt for an AI agent to fix tests + +You are an AI agent tasked with improving the test suite for the `psfmodel` +Python library. The library lives in `src/psfmodel/` and tests are in `tests/`. + +**Do not modify any production code.** Only add, modify, or reorganize test +files and `conftest.py`. Preserve all existing passing behavior -- do not remove +or weaken any existing assertion. + +### Context + +The test suite currently has 45% line coverage (target: 90%). There are two test +files: `tests/test_gaussian.py` (8 test functions) and `tests/test_psf.py` +(2 test functions). There is no `conftest.py`. + +### Tasks (ordered by priority) + +1. **Exception message assertions:** All 25 `pytest.raises(ValueError)` calls + lack message assertions. Add `as exc_info` and assert on + `str(exc_info.value)` for each. Match the exact message from the source + code. + +2. **Add missing failure/validation tests:** + - `GaussianPSF.__init__`: `angle_subsample` out of range (0, 100, non-int). + - `GaussianPSF.eval_rect`: even dimensions, negative dimensions. + - `PSF.find_position`: invalid `box_size` (even, negative). + - `PSF.find_position`: starting point too close to image edge (returns + None). + - `PSF.find_position`: optimizer failure (returns None with warning). + - `GaussianPSF.gaussian_integral_1d`: sigma <= 0 (currently an `assert`). + +3. **Increase coverage for `psf.py` (currently 70%):** + - Test `_eval_rect_smeared` with non-zero movement via + `GaussianPSF.eval_rect(..., movement=(0.5, 0.3))`. + - Test `find_position` edge cases: all pixels masked, too many pixels + masked, `num_sigma` pixel rejection. + - Test `find_position` with `detailed_logging=True` and verify log output + via `caplog`. + +4. **Add logging tests:** + - Test that optimizer failure emits a WARNING containing "did not succeed". + - Test that `detailed_logging=True` emits INFO-level messages. + +5. **Create `tests/conftest.py`** with shared fixtures: + - `default_psf` -> `GaussianPSF()` + - `symmetric_psf` -> `GaussianPSF(sigma=(1.0, 1.0))` + - `asymmetric_psf` -> `GaussianPSF(sigma=(2.0, 3.0))` + +6. **Parametrize repetitive tests:** + - `test_gaussian_1d`: parametrize over `(x, kwargs, expected)` tuples. + - `test_gaussian_2d`: parametrize over `(y, x, kwargs, expected)` tuples. + - `test_gaussian_eval_point` ValueError cases: parametrize over + `(sigma_init, call_kwargs)`. + - `test_gaussian_eval_pixel` ValueError cases: same approach. + - `test_bkgnd_gradient_coeffs` ValueError cases: parametrize over + `(shape, order)`. + +7. **Improve `test_gaussian_eval_rect`:** + - Assert output shape equals `rect_size`. + - Assert center pixel is the maximum. + - Assert all values are non-negative. + - Test with different sigma, scale, base, and offset values. + +8. **Remove duplicate assertion:** `test_gaussian_integral_1d` lines 102-104 + duplicate lines 90-92. + +9. **Resolve or document TODO comments:** Lines 349, 366-367, 384-385 in + `test_gaussian_find_position` have commented-out assertions with + `# TODO: Why?`. Investigate and either fix or add `@pytest.mark.xfail` with + an issue reference. + +10. **Update pytest configuration in `pyproject.toml`:** + - Add `testpaths = ["tests"]`. + - Add `"--strict-markers"` and `"--strict-config"` to `addopts`. + - Add `filterwarnings = ["error"]`. + - Add `markers = []`. + +11. **Coverage target:** Run the full test suite with + `pytest tests/ --cov=src --cov-report=term-missing` and ensure at least + 90% line coverage for `gaussian.py` and `psf.py`. `hst.py` may be excluded + from coverage if testing it requires TinyTim; add it to `[tool.coverage.run] + omit`. + +### Constraints + +- Do not modify files in `src/`. +- Do not remove or weaken existing assertions. +- All tests must pass with `pytest -n auto`. +- Add type annotations to all new test functions. +- Follow Google-style docstrings for new test functions. +- Use `pytest.approx` for floating-point comparisons. +- Use `npt.assert_array_almost_equal` for array comparisons. diff --git a/pyproject.toml b/pyproject.toml index 4d62135..afc40ab 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -49,7 +49,14 @@ Issues = "https://github.com/SETI/psfmodel/issues" pythonpath = [ "src" ] -addopts = ["-n", "4", "--cov=src"] +testpaths = ["tests"] +addopts = ["-n", "4", "--cov=psfmodel", "--strict-markers", "--strict-config"] +filterwarnings = [ + # xdist controller process runs no tests; coverage still warns there even + # though workers collect data (see pytest-cov / coverage issues). + "ignore:No data was collected\\.:coverage.exceptions.CoverageWarning", +] +markers = [] [tool.setuptools] [tool.setuptools.packages.find] @@ -72,9 +79,9 @@ dev = [ "pytest-cov>=4.0", "pytest-xdist>=3.8.0", "ruff>=0.8", - # "bandit[toml]>=1.8", + "bandit[toml]>=1.8", "pyroma>=4.2", - # "vulture>=2.14", + "vulture>=2.14", "psfmodel[docs]", ] docs = [ @@ -91,8 +98,9 @@ docs = [ [tool.coverage.run] branch = true -source = ["src"] -omit = ["tests/*", "_version.py", "src/psfmodel/hst.py"] +parallel = true +source = ["psfmodel"] +omit = ["tests/*", "**/_version.py", "**/psfmodel/hst.py"] [tool.coverage.report] exclude_lines = [ @@ -100,7 +108,7 @@ exclude_lines = [ "def __repr__", "raise NotImplementedError", ] -fail_under = 40 +fail_under = 90 [tool.pyright] # Legacy module; same exclusion as mypy/ruff until modernized. @@ -127,6 +135,8 @@ ignore_missing_imports = true [[tool.mypy.overrides]] module = [ + "conftest", + "test_find_position", "test_gaussian", "test_psf", ] @@ -166,12 +176,11 @@ enabled = false # Inline HTML (e.g.
) allowed in Markdown. enabled = false -# Uncomment when enabling bandit in [project.optional-dependencies].dev. -# [tool.bandit] -# exclude_dirs = ["tests", "venv", ".venv"] -# targets = ["src"] +[tool.bandit] +exclude_dirs = ["tests", "venv", ".venv", "src/psfmodel/hst.py"] +targets = ["src"] -# Uncomment when enabling vulture in [project.optional-dependencies].dev. -# [tool.vulture] -# paths = ["src"] -# exclude = ["tests/"] +[tool.vulture] +paths = ["src"] +exclude = ["tests/", "src/psfmodel/hst.py"] +min_confidence = 70 diff --git a/scripts/run-all-checks.sh b/scripts/run-all-checks.sh index 0fc5ae7..18bdb47 100755 --- a/scripts/run-all-checks.sh +++ b/scripts/run-all-checks.sh @@ -89,12 +89,12 @@ SCOPE_SPECIFIED=false # Per-check defaults (override by exporting before invoking this script, or # permanently change here) : "${ENABLE_RUFF_CHECK:=true}" -: "${ENABLE_RUFF_FORMAT:=false}" -: "${ENABLE_MYPY:=false}" +: "${ENABLE_RUFF_FORMAT:=true}" +: "${ENABLE_MYPY:=true}" : "${ENABLE_PYTEST:=true}" : "${ENABLE_PYROMA:=true}" -: "${ENABLE_BANDIT:=false}" -: "${ENABLE_VULTURE:=false}" +: "${ENABLE_BANDIT:=true}" +: "${ENABLE_VULTURE:=true}" : "${ENABLE_SPHINX:=true}" : "${ENABLE_PYMARKDOWN:=true}" @@ -386,10 +386,11 @@ run_code_checks() { fi # -n controls parallelism; --dist loadscope keeps each test module on one - # worker to avoid time-mocking and fixture-isolation interference + # worker to avoid time-mocking and fixture-isolation interference. + # Coverage (--cov=psfmodel) and strict options come from pyproject.toml addopts. if [ "$RUN_PYTEST" = true ] && [ "$ENABLE_PYTEST" = true ]; then print_info "Running pytest (-n ${PYTEST_WORKERS})..." - if python -m pytest --cov=src -q -n "$PYTEST_WORKERS" --dist loadscope tests; then + if python -m pytest -q -n "$PYTEST_WORKERS" --dist loadscope tests; then print_success "Pytest passed" else print_error "Pytest failed" @@ -411,7 +412,7 @@ run_code_checks() { if [ "$RUN_BANDIT" = true ] && [ "$ENABLE_BANDIT" = true ]; then print_info "Running bandit..." - if python -m bandit -r src -q; then + if python -m bandit -c pyproject.toml -r src -q; then print_success "Bandit passed" else print_error "Bandit failed" diff --git a/src/psfmodel/gaussian.py b/src/psfmodel/gaussian.py index 343dfb1..447c64c 100755 --- a/src/psfmodel/gaussian.py +++ b/src/psfmodel/gaussian.py @@ -274,10 +274,13 @@ def gaussian_integral_1d( Returns: The integral of the Gaussian between xmin and xmax. + + Raises: + ValueError: If ``sigma`` is not positive. """ - # Normalize xmin and xmax - assert sigma > 0.0 + if not sigma > 0.0: + raise ValueError(f'sigma must be positive, got {sigma}') xmin_div_sqrt_2 = (x_min - mean) * (INV_SQRT_2 / sigma) xmax_div_sqrt_2 = (x_max - mean) * (INV_SQRT_2 / sigma) diff --git a/src/psfmodel/hst.py b/src/psfmodel/hst.py index 73dc07f..bf55148 100755 --- a/src/psfmodel/hst.py +++ b/src/psfmodel/hst.py @@ -305,7 +305,8 @@ def __init__(self, instrument, detector, filter, line=None, sample=None, if self.subsample is None: self.subsample = DEFAULT_SUBSAMPLE[(self.instrument, self.detector)] - assert self.subsample % 2 == 1 # Must be odd + if self.subsample % 2 != 1: + raise ValueError(f'subsample must be odd, got {self.subsample}') if self.jitter_x is None: self.jitter_x = DEFAULT_JITTER[(self.instrument, self.detector)] if self.jitter_y is None: @@ -326,19 +327,23 @@ def __init__(self, instrument, detector, filter, line=None, sample=None, elif instrument == 'WFC3': self._init_WFC3(**kwargs) else: - print('UNKNOWN INSTRUMENT', instrument) - assert False + raise ValueError(f'Unknown HST instrument: {instrument!r}') def _init_ACS(self, **kwargs): - assert self.detector == 'HRC' + if self.detector != 'HRC': + raise ValueError(f"ACS requires detector 'HRC', got {self.detector!r}") self.do_subsample_diffusion = True def _init_WFPC2(self, **kwargs): - assert self.detector == 'PC1' + if self.detector != 'PC1': + raise ValueError(f"WFPC2 requires detector 'PC1', got {self.detector!r}") self.do_subsample_diffusion = False def _init_WFC3(self, **kwargs): - assert self.detector == 'UVIS' or self.detector == 'IR' + if self.detector not in ('UVIS', 'IR'): + raise ValueError( + f"WFC3 requires detector 'UVIS' or 'IR', got {self.detector!r}" + ) self.do_subsample_diffusion = True # See http://www.stsci.edu/hst/observatory/apertures/wfc3.html @@ -373,12 +378,10 @@ def _init_WFC3(self, **kwargs): if self.sample is None: self.sample = 256 else: - print('UNKNOWN WFC3 UVIS APERTURE', self.aperture) - assert False + raise ValueError(f'Unknown WFC3 UVIS aperture: {self.aperture!r}') else: if self.aperture != 'IRSUB256': - print('UNKNOWN WFC3 IR APERTURE', self.aperture) - assert False + raise ValueError(f'Unknown WFC3 IR aperture: {self.aperture!r}') x_offset = 1014//2-256//2 y_offset = 1014//2-256//2 if self.line is None: @@ -441,20 +444,29 @@ def run_tinytim(instrument, detector, y_ctr, x_ctr, filter, """ if instrument == 'ACS': - assert detector == 'HRC' + if detector != 'HRC': + raise ValueError(f"ACS requires detector 'HRC', got {detector!r}") elif instrument == 'WFPC2': - assert detector == 'PC1' + if detector != 'PC1': + raise ValueError(f"WFPC2 requires detector 'PC1', got {detector!r}") elif instrument == 'WFC3': - assert detector == 'UVIS' or detector == 'IR' + if detector not in ('UVIS', 'IR'): + raise ValueError( + f"WFC3 requires detector 'UVIS' or 'IR', got {detector!r}" + ) else: - assert False + raise ValueError(f'Unknown HST instrument for TinyTim: {instrument!r}') min_fov = None for fov_size, pixel_size in RETURNED_SIZES[(instrument, detector)]: if pixel_size > psf_size_pixels: min_fov = fov_size break - assert min_fov is not None + if min_fov is None: + raise ValueError( + f'No TinyTim FOV supports psf_size_pixels={psf_size_pixels} for ' + f'instrument={instrument!r}, detector={detector!r}' + ) if min_fov*.7 > fov: # Give a little slack for the distortion print('WARNING: OVERRIDING SPECIFIED FOV', fov, end=' ') @@ -478,7 +490,10 @@ def run_tinytim(instrument, detector, y_ctr, x_ctr, filter, fov, subsample_amt)) fits_filename = path_join(PSF_CACHE_DIR, fits_base) if not os.path.exists(fits_filename) or force_run_tinytim: - assert psf_size_pixels % 2 == 1 # Must be odd + if psf_size_pixels % 2 != 1: + raise ValueError( + f'psf_size_pixels must be odd for TinyTim, got {psf_size_pixels}' + ) orig_cwd = os.getcwd() os.chdir(TINY_TIM_DIR) psf_filename = 'temp_psf' + str(os.getpid()) + '_' @@ -554,8 +569,9 @@ def run_tinytim(instrument, detector, y_ctr, x_ctr, filter, os.unlink(full_psf_filename) if not os.path.exists(temp_fits_filename): - print('RUN_TINYTIM: ERROR CREATING FITS FILE', psf_filename) - assert False + raise RuntimeError( + f'TinyTim did not create FITS file (expected {temp_fits_filename!r})' + ) psf_file = pyfits.open(temp_fits_filename) psf_file.writeto(fits_filename, overwrite=True) @@ -590,8 +606,9 @@ def run_tinytim(instrument, detector, y_ctr, x_ctr, filter, psf_halfsize = psf_size_pixels//2 if (psf_halfsize > psf_size[0]//2 or psf_halfsize > psf_size[1]//2): - print('FATAL ERROR: TINYTIM returned a PSF smaller', psf_size, 'than we wanted', psf_halfsize) - assert False + raise RuntimeError( + f'TinyTim PSF shape {psf_size} is too small for half-size {psf_halfsize}' + ) psf_data = psf_data[psf_size[1]//2-psf_halfsize: psf_size[1]//2+psf_halfsize+1, psf_size[0]//2-psf_halfsize: @@ -620,8 +637,10 @@ def _cache_psf(self, min_size, **kwargs): self.cached_psf_size = psf.shape[0] self.cached_psf = psf self.cached_diffusion_matrix = diffusion_matrix - assert psf.shape[0] % 2 == 1 # Odd - assert psf.shape[1] % 2 == 1 # Odd + if psf.shape[0] % 2 != 1 or psf.shape[1] % 2 != 1: + raise RuntimeError( + f'Cached TinyTim PSF must have odd side lengths, got shape {psf.shape}' + ) self.psf_zero_offset = psf.shape[0]//2 self.cached_pixelated_psf = None @@ -724,7 +743,7 @@ def eval_point(self, point, scale=1., base=0.): base a scalar added to the resulting PSF. """ - assert False + raise NotImplementedError('HSTPSF.eval_point is not implemented') def eval_pixel(self, coord, offset=(0.,0.), scale=1., base=0., **kwargs): """Evaluate the PSF integrated over an entire integer pixel. @@ -777,8 +796,10 @@ def eval_rect(self, rect_size, offset=(0.,0.), scale=1., base=0., **kwargs): rect_size_y, rect_size_x = rect_size - assert rect_size_y % 2 == 1 # Odd - assert rect_size_x % 2 == 1 # Odd + if rect_size_y % 2 != 1 or rect_size_x % 2 != 1: + raise ValueError( + f'rect_size must have odd positive dimensions, got {(rect_size_y, rect_size_x)}' + ) half_rect_size_y = rect_size_y // 2 half_rect_size_x = rect_size_x // 2 diff --git a/src/psfmodel/psf.py b/src/psfmodel/psf.py index 048ee30..5d32098 100755 --- a/src/psfmodel/psf.py +++ b/src/psfmodel/psf.py @@ -206,7 +206,8 @@ def _eval_rect_smeared( total_rect = rect else: total_rect += rect - assert total_rect is not None + if total_rect is None: + raise RuntimeError('Motion smear loop produced no PSF rectangles') total_rect /= float(num_steps + 1) diff --git a/tests/conftest.py b/tests/conftest.py new file mode 100644 index 0000000..d21a2c9 --- /dev/null +++ b/tests/conftest.py @@ -0,0 +1,30 @@ +################################################################################ +# tests/conftest.py +################################################################################ + +"""Shared pytest fixtures for psfmodel tests.""" + +import pytest + +from psfmodel.gaussian import GaussianPSF + + +@pytest.fixture +def default_psf() -> GaussianPSF: + """Return a :class:`GaussianPSF` built with default constructor arguments.""" + + return GaussianPSF() + + +@pytest.fixture +def symmetric_psf() -> GaussianPSF: + """Return a :class:`GaussianPSF` with equal ``sigma_y`` and ``sigma_x``.""" + + return GaussianPSF(sigma=(1.0, 1.0)) + + +@pytest.fixture +def asymmetric_psf() -> GaussianPSF: + """Return a :class:`GaussianPSF` with distinct ``sigma_y`` and ``sigma_x``.""" + + return GaussianPSF(sigma=(2.0, 3.0)) diff --git a/tests/test_find_position.py b/tests/test_find_position.py new file mode 100644 index 0000000..42bfe4f --- /dev/null +++ b/tests/test_find_position.py @@ -0,0 +1,173 @@ +################################################################################ +# tests/test_find_position.py +################################################################################ + +"""Tests for :meth:`PSF.find_position` validation, edge cases, motion smear, and logging.""" + +from __future__ import annotations + +import logging +from unittest.mock import MagicMock, patch + +import numpy as np +import pytest + +from psfmodel.gaussian import GaussianPSF + + +def test_find_position_invalid_box_size_raises() -> None: + """``find_position`` raises when ``box_size`` is not odd and positive in each axis.""" + + psf = GaussianPSF() + img = np.zeros((21, 21)) + for box in ((4, 5), (5, 4), (-1, 5), (5, -1)): + with pytest.raises(ValueError) as exc_info: + psf.find_position(img, box, (10, 10), bkgnd_degree=None, num_sigma=0) + assert str(exc_info.value) == ( + f'box_size must have odd positive shape in each dimension, got {box}' + ) + + +def test_find_position_returns_none_when_starting_point_near_edge() -> None: + """``find_position`` returns ``None`` when the box does not fit inside the image.""" + + psf = GaussianPSF() + img = np.zeros((11, 11)) + ret = psf.find_position( + img, + (7, 7), + (0, 5), + bkgnd_degree=None, + num_sigma=0, + ) + assert ret is None + + +def test_find_position_optimizer_failure_warns( + caplog: pytest.LogCaptureFixture, +) -> None: + """A failed SciPy minimizer triggers a WARNING containing ``did not succeed``.""" + + psf = GaussianPSF() + gauss2d = psf.eval_rect((21, 21), scale=2.0, sigma=(1.0, 1.0)) + fake_result = MagicMock() + fake_result.success = False + fake_result.message = 'mocked optimizer failure' + fake_result.x = np.array([0.0, 0.0, 1.0]) + fake_result.status = 2 + + with ( + caplog.at_level(logging.WARNING, logger='psfmodel.psf'), + patch('psfmodel.psf.sciopt.minimize', return_value=fake_result), + ): + ret = psf.find_position( + gauss2d, + gauss2d.shape, + (gauss2d.shape[0] // 2, gauss2d.shape[1] // 2), + bkgnd_degree=None, + num_sigma=0, + ) + + assert ret is None + assert any('did not succeed' in r.message for r in caplog.records) + assert any(r.levelno == logging.WARNING for r in caplog.records) + + +def test_find_position_num_sigma_all_pixels_masked_returns_none( + caplog: pytest.LogCaptureFixture, +) -> None: + """When outlier masking removes every pixel, ``find_position`` returns ``None``.""" + + psf = GaussianPSF(logger=logging.getLogger('psfmodel.psf'), detailed_logging=True) + img = np.ones((21, 21)) + with caplog.at_level(logging.INFO, logger='psfmodel.psf'): + ret = psf.find_position( + img, + img.shape, + (10, 10), + bkgnd_degree=None, + num_sigma=0.01, + max_bad_frac=0.99, + ) + assert ret is None + assert any('all pixels masked' in r.message for r in caplog.records) + + +def test_find_position_num_sigma_too_many_masked_returns_none( + caplog: pytest.LogCaptureFixture, +) -> None: + """When too large a fraction of pixels is masked, ``find_position`` returns ``None``.""" + + psf = GaussianPSF(logger=logging.getLogger('psfmodel.psf'), detailed_logging=True) + img = np.ones((21, 21)) + with caplog.at_level(logging.INFO, logger='psfmodel.psf'): + ret = psf.find_position( + img, + img.shape, + (10, 10), + bkgnd_degree=None, + num_sigma=0.05, + max_bad_frac=0.2, + ) + assert ret is None + assert any('too many pixels masked' in r.message for r in caplog.records) + + +def test_find_position_detailed_logging_emits_info(caplog: pytest.LogCaptureFixture) -> None: + """With ``detailed_logging=True``, ``find_position`` logs at INFO for key steps.""" + + psf = GaussianPSF(logger=logging.getLogger('psfmodel.psf'), detailed_logging=True) + gauss2d = psf.eval_rect((21, 21), scale=2.0, sigma=(1.0, 1.0)) + with caplog.at_level(logging.INFO, logger='psfmodel.psf'): + ret = psf.find_position( + gauss2d, + gauss2d.shape, + (gauss2d.shape[0] // 2, gauss2d.shape[1] // 2), + bkgnd_degree=None, + num_sigma=0, + ) + assert ret is not None + messages = [r.message for r in caplog.records if r.levelno == logging.INFO] + assert any('find_position: entering' in m for m in messages) + assert any('find_position returning' in m for m in messages) + + +def test_gaussian_eval_rect_with_movement_smears(symmetric_psf: GaussianPSF) -> None: + """Non-zero ``movement`` exercises motion smearing in :meth:`GaussianPSF.eval_rect`.""" + + still = symmetric_psf.eval_rect((19, 19), movement=None) + smeared = symmetric_psf.eval_rect((19, 19), movement=(0.5, 0.3)) + assert smeared.shape == (19, 19) + assert np.sum(smeared) == pytest.approx(1.0) + assert not np.allclose(smeared, still) + + +def test_gaussian_eval_rect_movement_small_num_steps_branch(symmetric_psf: GaussianPSF) -> None: + """A small movement relative to ``movement_granularity`` uses the ``num_steps == 0`` path.""" + + rect = symmetric_psf.eval_rect( + (19, 19), + movement=(0.05, 0.05), + movement_granularity=0.1, + ) + assert rect.shape == (19, 19) + assert np.sum(rect) == pytest.approx(1.0) + + +def test_find_position_num_sigma_rejects_outlier_pixel(default_psf: GaussianPSF) -> None: + """``num_sigma`` can mask a bright outlier while still returning a good centroid.""" + + gauss2d = default_psf.eval_rect((21, 21), scale=2.0, sigma=(1.0, 1.0)) + contaminated = gauss2d.copy() + contaminated[10, 10] += 200.0 + ret = default_psf.find_position( + contaminated, + contaminated.shape, + (10, 10), + bkgnd_degree=None, + num_sigma=5.0, + max_bad_frac=0.99, + ) + assert ret is not None + assert ret[0] == pytest.approx(10.5, abs=0.5) + assert ret[1] == pytest.approx(10.5, abs=0.5) diff --git a/tests/test_gaussian.py b/tests/test_gaussian.py index 61462ef..95a641c 100644 --- a/tests/test_gaussian.py +++ b/tests/test_gaussian.py @@ -2,6 +2,13 @@ # tests/test_gaussian.py ################################################################################ +"""Tests for :mod:`psfmodel.gaussian`.""" + +from __future__ import annotations + +from collections.abc import Mapping +from typing import Any, cast + import numpy as np import numpy.testing as npt import pytest @@ -9,16 +16,46 @@ from psfmodel.gaussian import GaussianPSF +_MSG_BOTH_SIGMA = 'Cannot specify both sigma during init and sigma_y/x' +_MSG_EVAL_POINT_SIGMA = ( + 'Sigma X and Y must be specified either at object creation or in the call to eval_point' +) +_MSG_EVAL_PIXEL_SIGMA = ( + 'Sigma X and Y must be specified either at object creation or in the call to eval_pixel' +) + + +def _require_position_fit( + ret: tuple[float, float, dict[str, Any]] | None, +) -> tuple[float, float, dict[str, Any]]: + """Return ``ret`` after asserting :meth:`PSF.find_position` did not return ``None``.""" + + assert ret is not None + return ret + + +@pytest.mark.parametrize( + ('x', 'kwargs', 'expected'), + [ + (0.0, {}, 0.39894228), + (0.0, {'scale': 2.0}, 0.39894228 * 2), + (0.0, {'base': -5.0}, 0.39894228 - 5.0), + (0.0, {'scale': 2.0, 'base': -5.0}, 0.39894228 * 2 - 5.0), + (1.0, {'mean': 1.0}, 0.39894228), + (1.0, {'mean': 1.0, 'scale': 2.0}, 0.39894228 * 2), + (1.0, {}, 0.24197072), + (2.0, {'sigma': 2.0}, 0.24197072 / 2), + ], +) +def test_gaussian_1d_scalar_cases(x: float, kwargs: dict[str, float], expected: float) -> None: + """``gaussian_1d`` matches reference values for scalar inputs and keyword overrides.""" + + assert GaussianPSF.gaussian_1d(x, **kwargs) == pytest.approx(expected) + + +def test_gaussian_1d_array_broadcast() -> None: + """``gaussian_1d`` broadcasts correctly over array coordinates.""" -def test_gaussian_1d(): - assert GaussianPSF.gaussian_1d(0.0) == pytest.approx(0.39894228) - assert GaussianPSF.gaussian_1d(0.0, scale=2.0) == pytest.approx(0.39894228 * 2) - assert GaussianPSF.gaussian_1d(0.0, base=-5.0) == pytest.approx(0.39894228 - 5.0) - assert GaussianPSF.gaussian_1d(0.0, scale=2.0, base=-5.0) == pytest.approx(0.39894228 * 2 - 5.0) - assert GaussianPSF.gaussian_1d(1.0, mean=1.0) == pytest.approx(0.39894228) - assert GaussianPSF.gaussian_1d(1.0, mean=1.0, scale=2.0) == pytest.approx(0.39894228 * 2) - assert GaussianPSF.gaussian_1d(1.0) == pytest.approx(0.24197072) - assert GaussianPSF.gaussian_1d(2.0, sigma=2.0) == pytest.approx(0.24197072 / 2) npt.assert_array_almost_equal(GaussianPSF.gaussian_1d(np.array([0.0])), np.array([0.39894228])) npt.assert_array_almost_equal( GaussianPSF.gaussian_1d(np.array([0.0, 1.0])), np.array([0.39894228, 0.24197072]) @@ -27,29 +64,61 @@ def test_gaussian_1d(): GaussianPSF.gaussian_1d(np.array([[0.0, 1.0], [1.0, 0.0]])), np.array([[0.39894228, 0.24197072], [0.24197072, 0.39894228]]), ) + + +def test_gaussian_1d_quadrature_normalization() -> None: + """The analytic 1-D Gaussian integrates to ``scale`` over the real line.""" + assert integrate.quad(GaussianPSF.gaussian_1d, -10, 10)[0] == pytest.approx(1.0) assert integrate.quad(lambda x: GaussianPSF.gaussian_1d(x, scale=2.0), -10, 10)[ 0 ] == pytest.approx(2.0) -def test_gaussian_2d(): - assert GaussianPSF.gaussian_2d(0, 0) == pytest.approx(0.15915494309) - assert GaussianPSF.gaussian_2d(0, 0, scale=2.0) == pytest.approx(0.15915494309 * 2) - assert GaussianPSF.gaussian_2d(0, 0, base=10.0) == pytest.approx(0.15915494309 + 10) - assert GaussianPSF.gaussian_2d(0, 0, scale=2.0, base=10.0) == pytest.approx( - 0.15915494309 * 2 + 10 - ) - assert GaussianPSF.gaussian_2d(1.0, 0.0, mean_y=1.0) == pytest.approx(0.15915494309) - assert GaussianPSF.gaussian_2d(0.0, 1.0, mean_x=1.0) == pytest.approx(0.15915494309) +@pytest.mark.parametrize( + ('y', 'x', 'kwargs', 'expected'), + [ + (0, 0, {}, 0.15915494309), + (0, 0, {'scale': 2.0}, 0.15915494309 * 2), + (0, 0, {'base': 10.0}, 0.15915494309 + 10), + (0, 0, {'scale': 2.0, 'base': 10.0}, 0.15915494309 * 2 + 10), + (1.0, 0.0, {'mean_y': 1.0}, 0.15915494309), + (0.0, 1.0, {'mean_x': 1.0}, 0.15915494309), + (1.0, 0.0, {}, 0.09653235263005391), + (1.0, 0.0, {'sigma_x': 2}, 0.048266176315027), + ], +) +def test_gaussian_2d_scalar_cases( + y: float, + x: float, + kwargs: dict[str, float], + expected: float, +) -> None: + """``gaussian_2d`` matches reference values for representative scalar inputs.""" + + assert GaussianPSF.gaussian_2d(y, x, **kwargs) == pytest.approx(expected) + + +def test_gaussian_2d_angle_and_asymmetry() -> None: + """Rotation and distinct ``sigma_x`` change the 2-D Gaussian as expected.""" + + assert GaussianPSF.gaussian_2d(1.0, 0.0, sigma_x=2) == pytest.approx(0.048266176315027) + assert GaussianPSF.gaussian_2d(0.0, -1.0, sigma_x=2) != pytest.approx(0.048266176315027) + assert GaussianPSF.gaussian_2d(0.0, -1.0, angle=np.pi / 2) == pytest.approx(0.09653235263) + + +def test_gaussian_2d_quadrature_normalization() -> None: + """The 2-D Gaussian integrates to ``scale`` over the plane (numerically).""" + assert integrate.dblquad(GaussianPSF.gaussian_2d, -10, 10, -10, 10)[0] == pytest.approx(1.0) assert integrate.dblquad( lambda x, y: GaussianPSF.gaussian_2d(x, y, scale=2.0), -10, 10, -10, 10 )[0] == pytest.approx(2.0) - assert GaussianPSF.gaussian_2d(1.0, 0.0) == pytest.approx(0.09653235263005391) - assert GaussianPSF.gaussian_2d(1.0, 0.0, sigma_x=2) == pytest.approx(0.048266176315027) - assert GaussianPSF.gaussian_2d(0.0, -1.0, sigma_x=2) != pytest.approx(0.048266176315027) - assert GaussianPSF.gaussian_2d(0.0, -1.0, angle=np.pi / 2) == pytest.approx(0.09653235263) + + +def test_gaussian_2d_array_broadcast() -> None: + """``gaussian_2d`` broadcasts over array coordinates.""" + npt.assert_array_almost_equal( GaussianPSF.gaussian_2d(np.array([0.0]), np.array([0.0])), np.array([0.15915494309]) ) @@ -66,25 +135,29 @@ def test_gaussian_2d(): ), ) + +def test_gaussian_2d_rotated_ellipses_differ() -> None: + """Swapping ``sigma_x`` and ``sigma_y`` on a grid yields distinct surfaces.""" + y_coords = np.tile(np.arange(-10.0, 11.0) / 2, 21) x_coords = np.repeat(np.arange(-10.0, 11.0) / 2, 21) - gauss2d2 = ( + gauss2d2 = np.asarray( GaussianPSF.gaussian_2d(y_coords, x_coords, scale=2.0, sigma_x=0.25, sigma_y=0.5, base=1.0) / 4 - ) - gauss2d3 = ( + ).reshape(21, 21) + gauss2d3 = np.asarray( GaussianPSF.gaussian_2d(y_coords, x_coords, scale=2.0, sigma_x=0.5, sigma_y=0.25, base=1.0) / 4 - ) - gauss2d2 = gauss2d2.reshape(21, 21) - gauss2d3 = gauss2d3.reshape(21, 21) + ).reshape(21, 21) with pytest.raises(AssertionError): npt.assert_array_almost_equal(gauss2d2, gauss2d3) npt.assert_array_almost_equal(np.transpose(gauss2d2), gauss2d3) -def test_gaussian_integral_1d(): +def test_gaussian_integral_1d() -> None: + """``gaussian_integral_1d`` matches numerical quadrature for scalars and arrays.""" + g_0_1 = integrate.quad(GaussianPSF.gaussian_1d, 0.0, 1.0)[0] g_n1_1 = integrate.quad(GaussianPSF.gaussian_1d, -1.0, 1.0)[0] assert GaussianPSF.gaussian_integral_1d(0.0, 1.0) == pytest.approx( @@ -99,9 +172,6 @@ def test_gaussian_integral_1d(): assert GaussianPSF.gaussian_integral_1d(-1.0, 1.0, scale=2.0, base=5.0) == pytest.approx( g_n1_1 * 2 + 5 ) - assert GaussianPSF.gaussian_integral_1d(0.0, 1.0) == pytest.approx( - integrate.quad(GaussianPSF.gaussian_1d, 0.0, 1.0)[0] - ) assert GaussianPSF.gaussian_integral_1d( np.array([0.0, -1.0]), np.array([1.0, 1.0]) ) == pytest.approx(np.array([g_0_1, g_n1_1])) @@ -111,7 +181,20 @@ def test_gaussian_integral_1d(): npt.assert_array_almost_equal(ret, np.array([[g_0_1, g_n1_1], [g_n1_1, g_0_1]])) -def test_gaussian_integral_2d(): +def test_gaussian_integral_1d_nonpositive_sigma_raises() -> None: + """``gaussian_integral_1d`` requires a positive ``sigma``.""" + + with pytest.raises(ValueError) as exc_info: + GaussianPSF.gaussian_integral_1d(0.0, 1.0, sigma=0.0) + assert str(exc_info.value) == 'sigma must be positive, got 0.0' + with pytest.raises(ValueError) as exc_info: + GaussianPSF.gaussian_integral_1d(0.0, 1.0, sigma=-1.0) + assert str(exc_info.value) == 'sigma must be positive, got -1.0' + + +def test_gaussian_integral_2d() -> None: + """``gaussian_integral_2d`` matches ``dblquad`` for sample regions.""" + integ1 = integrate.dblquad(lambda y, x: GaussianPSF.gaussian_2d(y, x), 0.0, 3.0, -2.0, 1.0)[0] integ2 = integrate.dblquad(lambda y, x: GaussianPSF.gaussian_2d(y, x), -1.0, 3.0, -3.0, 2.0)[0] assert GaussianPSF.gaussian_integral_2d(0.0, 3.0, -2.0, 1.0) == pytest.approx(integ1) @@ -123,37 +206,34 @@ def test_gaussian_integral_2d(): ) npt.assert_array_almost_equal(ret, np.array([integ1, integ2])) - # def rot(y, x): - # ang = -np.pi/8 - # c = np.cos(ang) - # s = np.sin(ang) - # x2 = c*x + s*y - # y2 = -s*x + c*y - # return y2, x2 - - # y1, x1 = rot(-1, -1) - # y2, x2 = rot(1, 1) - # assert GaussianPSF.gaussian_integral_2d(y1+2, y2+2, x1-1, x2-1, - # mean_y=2., mean_x=-1., - # sigma_x=2., angle=np.pi/8) == \ - # pytest.approx(integrate.dblquad( - # lambda y, x: GaussianPSF.gaussian_2d(y, x, sigma_x=2), - # -1., 1., -1., 1.)[0]) - - -def test_gaussian_eval_point(): - with pytest.raises(ValueError): - GaussianPSF(sigma=(1, 1)).eval_point((0, 0), sigma=5) - with pytest.raises(ValueError): - GaussianPSF(sigma=(1, 1)).eval_point((0, 0), sigma_x=5) - with pytest.raises(ValueError): - GaussianPSF(sigma=(1, 1)).eval_point((0, 0), sigma_y=5) - with pytest.raises(ValueError): - GaussianPSF(sigma=None).eval_point((0, 0)) - with pytest.raises(ValueError): - GaussianPSF(sigma=(None, 1)).eval_point((0, 0)) - with pytest.raises(ValueError): - GaussianPSF(sigma=(1, None)).eval_point((0, 0)) + +@pytest.mark.parametrize( + ('sigma_init', 'call_kwargs'), + [ + ((1, 1), {'sigma': 5}), + ((1, 1), {'sigma_x': 5}), + ((1, 1), {'sigma_y': 5}), + (None, {}), + ((None, 1), {}), + ((1, None), {}), + ], +) +def test_gaussian_eval_point_value_errors( + sigma_init: tuple[int | None, int | None] | None, + call_kwargs: Mapping[str, Any], +) -> None: + """``eval_point`` rejects ambiguous or incomplete sigma configuration.""" + + with pytest.raises(ValueError) as exc_info: + GaussianPSF(sigma=sigma_init).eval_point((0, 0), **call_kwargs) + if sigma_init == (1, 1): + assert str(exc_info.value) == _MSG_BOTH_SIGMA + else: + assert str(exc_info.value) == _MSG_EVAL_POINT_SIGMA + + +def test_gaussian_eval_point_success_cases() -> None: + """``eval_point`` agrees with :meth:`GaussianPSF.gaussian_2d` for valid configurations.""" psf1 = GaussianPSF() psf2 = GaussianPSF(sigma=(1.0, None)) @@ -161,50 +241,63 @@ def test_gaussian_eval_point(): psf4 = GaussianPSF(sigma=(1.0, 2.0)) psf5 = GaussianPSF(sigma=(1.0, 1.0)) - assert psf1.eval_point((2, 3), sigma=(1.0, 2.0)) == psf4.eval_point((2, 3)) + assert psf1.eval_point((2, 3), sigma=cast(Any, (1.0, 2.0))) == psf4.eval_point((2, 3)) assert psf1.eval_point((2, 3), sigma=1.0) == psf5.eval_point((2, 3)) assert psf1.eval_point((2, 3), sigma_y=1.0, sigma_x=2.0) == psf4.eval_point((2, 3)) assert psf2.eval_point((2, 3), sigma_x=2.0) == psf4.eval_point((2, 3)) assert psf3.eval_point((2, 3), sigma_y=1.0) == psf4.eval_point((2, 3)) assert psf1.eval_point( - (2, 3), sigma=(1.0, 2.0), base=1, scale=2, angle=np.pi / 4 + (2, 3), sigma=cast(Any, (1.0, 2.0)), base=1, scale=2, angle=np.pi / 4 ) == psf4.eval_point((2, 3), base=1, scale=2, angle=np.pi / 4) assert psf1.eval_point( - (2, 3), sigma=(1.0, 2.0), base=1, scale=2, angle=np.pi / 4 + (2, 3), sigma=cast(Any, (1.0, 2.0)), base=1, scale=2, angle=np.pi / 4 ) == pytest.approx( GaussianPSF.gaussian_2d(2, 3, sigma_y=1.0, sigma_x=2.0, base=1, scale=2, angle=np.pi / 4) ) - ret = psf1.eval_point((np.array([1, 2]), np.array([2, 3])), sigma=(1.0, 2.0)) + ret = psf1.eval_point( + (np.array([1, 2]), np.array([2, 3])), + sigma=cast(Any, (1.0, 2.0)), + ) npt.assert_array_almost_equal(ret, np.array([psf4.eval_point((1, 2)), psf4.eval_point((2, 3))])) -def test_gaussian_eval_pixel(): - with pytest.raises(ValueError): - GaussianPSF(sigma=(1, 1)).eval_pixel((0, 0), sigma=5) - with pytest.raises(ValueError): - GaussianPSF(sigma=(1, 1)).eval_pixel((0, 0), sigma_x=5) - with pytest.raises(ValueError): - GaussianPSF(sigma=(1, 1)).eval_pixel((0, 0), sigma_y=5) - with pytest.raises(ValueError): - GaussianPSF().eval_pixel((0, 0)) - with pytest.raises(ValueError): - GaussianPSF().eval_pixel((0, 0), sigma_x=5) - with pytest.raises(ValueError): - GaussianPSF().eval_pixel((0, 0), sigma_y=5) - with pytest.raises(ValueError): - GaussianPSF(sigma=None).eval_pixel((0, 0)) - with pytest.raises(ValueError): - GaussianPSF(sigma=(1, None)).eval_pixel((0, 0)) - with pytest.raises(ValueError): - GaussianPSF(sigma=(None, 1)).eval_pixel((0, 0)) +@pytest.mark.parametrize( + ('sigma_init', 'call_kwargs'), + [ + ((1, 1), {'sigma': 5}), + ((1, 1), {'sigma_x': 5}), + ((1, 1), {'sigma_y': 5}), + (None, {}), + (None, {'sigma_x': 5}), + (None, {'sigma_y': 5}), + ((1, None), {}), + ((None, 1), {}), + ], +) +def test_gaussian_eval_pixel_value_errors( + sigma_init: tuple[int | None, int | None] | None, + call_kwargs: Mapping[str, Any], +) -> None: + """``eval_pixel`` rejects ambiguous or incomplete sigma configuration.""" + + with pytest.raises(ValueError) as exc_info: + GaussianPSF(sigma=sigma_init).eval_pixel((0, 0), **call_kwargs) + if sigma_init == (1, 1): + assert str(exc_info.value) == _MSG_BOTH_SIGMA + else: + assert str(exc_info.value) == _MSG_EVAL_PIXEL_SIGMA + + +def test_gaussian_eval_pixel_success_cases() -> None: + """``eval_pixel`` integrates the Gaussian over unit pixels as documented.""" integ = GaussianPSF.gaussian_integral_2d(-0.5, 0.5, -0.5, 0.5, sigma_y=2.0, sigma_x=3.0) integ2 = GaussianPSF.gaussian_integral_2d(-0.5, 0.5, -0.5, 0.5, sigma_y=2.0, sigma_x=2.0) assert GaussianPSF(sigma=(2.0, 3.0)).eval_pixel((0, 0)) == pytest.approx(integ) assert GaussianPSF(sigma=2.0).eval_pixel((0, 0)) == pytest.approx(integ2) - assert GaussianPSF().eval_pixel((0, 0), sigma=2.0) == pytest.approx(integ2) + assert GaussianPSF().eval_pixel((0, 0), sigma=(2.0, 2.0)) == pytest.approx(integ2) assert GaussianPSF(sigma=(2.0, 3.0)).eval_pixel((0, 0), offset=(0, 0.25)) == pytest.approx( GaussianPSF.gaussian_integral_2d(0, 1, -0.25, 0.75, sigma_y=2.0, sigma_x=3.0) ) @@ -223,31 +316,99 @@ def test_gaussian_eval_pixel(): ) -def test_gaussian_eval_rect(): - assert np.sum(GaussianPSF(sigma=(1, 1)).eval_rect((19, 19))) == pytest.approx(1) - assert np.sum(GaussianPSF(sigma=(1, 1), angle=np.pi / 4).eval_rect((19, 19))) == pytest.approx( - 1 +@pytest.mark.parametrize( + ('rect_size', 'expected_msg'), + [ + ((20, 19), 'Rectangle must have odd positive shape in each dimension, got (20, 19)'), + ((19, 18), 'Rectangle must have odd positive shape in each dimension, got (19, 18)'), + ((-1, 5), 'Rectangle must have odd positive shape in each dimension, got (-1, 5)'), + ((5, -3), 'Rectangle must have odd positive shape in each dimension, got (5, -3)'), + ], +) +def test_gaussian_eval_rect_invalid_shape(rect_size: tuple[int, int], expected_msg: str) -> None: + """``eval_rect`` requires odd, positive side lengths.""" + + with pytest.raises(ValueError) as exc_info: + GaussianPSF(sigma=(1.0, 1.0)).eval_rect(rect_size) + assert str(exc_info.value) == expected_msg + + +@pytest.mark.parametrize( + ('rect_size', 'sigma', 'scale', 'base', 'offset'), + [ + ((19, 19), (1.0, 1.0), 1.0, 0.0, (0.5, 0.5)), + ((15, 15), (0.8, 1.2), 2.5, 0.1, (0.25, 0.75)), + ((21, 21), (1.5, 1.5), 0.5, 0.02, (0.0, 0.5)), + ], +) +def test_gaussian_eval_rect_shape_peak_and_nonneg( + rect_size: tuple[int, int], + sigma: tuple[float, float], + scale: float, + base: float, + offset: tuple[float, float], +) -> None: + """``eval_rect`` returns a non-negative patch peaked at the center with expected shape.""" + + psf = GaussianPSF(sigma=sigma) + rect = psf.eval_rect(rect_size, offset=offset, scale=scale, base=base) + assert rect.shape == rect_size + assert np.all(rect >= 0) + cy, cx = rect_size[0] // 2, rect_size[1] // 2 + assert rect[cy, cx] == pytest.approx(np.max(rect)) + + +def test_gaussian_eval_rect_rotated_matches_sum(symmetric_psf: GaussianPSF) -> None: + """A rotated Gaussian patch remains normalized to unit flux (plus base).""" + + assert np.sum(symmetric_psf.eval_rect((19, 19))) == pytest.approx(1.0) + assert np.sum( + GaussianPSF(sigma=(1.0, 1.0), angle=np.pi / 4).eval_rect((19, 19)) + ) == pytest.approx(1.0) + + +@pytest.mark.parametrize('angle_subsample', [0, 100]) +def test_gaussian_init_angle_subsample_invalid_int(angle_subsample: int) -> None: + """``angle_subsample`` must be an int strictly between 0 and 100.""" + + with pytest.raises(ValueError) as exc_info: + GaussianPSF(angle_subsample=angle_subsample) + assert str(exc_info.value) == ( + f'angle_subsample must be an int between 1 and 99, got {angle_subsample}' ) +def test_gaussian_init_angle_subsample_rejects_non_int() -> None: + """``angle_subsample`` must be an ``int``, not a non-integral type.""" + + with pytest.raises(ValueError) as exc_info: + GaussianPSF(angle_subsample=1.5) # type: ignore[arg-type] + assert str(exc_info.value) == 'angle_subsample must be an int between 1 and 99, got 1.5' + + @pytest.mark.parametrize('use_angular_params', [True, False]) @pytest.mark.parametrize('bkgnd_degree', [None, 0, 1, 2]) -def test_gaussian_find_position(use_angular_params, bkgnd_degree): +def test_gaussian_find_position( + use_angular_params: bool, + bkgnd_degree: int | None, + default_psf: GaussianPSF, +) -> None: + """End-to-end centroid and width recovery for synthetic Gaussian patches.""" + allow_nonzero_base = bkgnd_degree is not None - # centered symmetric PSF, float sigma - psf = GaussianPSF() - gauss2d = psf.eval_rect((21, 21), scale=2.0, sigma=1.0) - # if allow_nonzero_base: - # psf = GaussianPSF(detailed_logging=True) - ret = psf.find_position( - gauss2d, - gauss2d.shape, - starting_point=((gauss2d.shape[0] // 2, gauss2d.shape[1] // 2)), - bkgnd_degree=bkgnd_degree, - allow_nonzero_base=allow_nonzero_base, - num_sigma=0, - use_angular_params=use_angular_params, + psf = default_psf + gauss2d = psf.eval_rect((21, 21), scale=2.0, sigma=(1.0, 1.0)) + ret = _require_position_fit( + psf.find_position( + gauss2d, + gauss2d.shape, + starting_point=((gauss2d.shape[0] // 2, gauss2d.shape[1] // 2)), + bkgnd_degree=bkgnd_degree, + allow_nonzero_base=allow_nonzero_base, + num_sigma=0, + use_angular_params=use_angular_params, + ) ) assert ret[0] == pytest.approx(gauss2d.shape[0] / 2) assert ret[1] == pytest.approx(gauss2d.shape[1] / 2) @@ -255,17 +416,18 @@ def test_gaussian_find_position(use_angular_params, bkgnd_degree): assert ret[2]['sigma_x'] == pytest.approx(1.0, abs=5e-2) assert ret[2]['scale'] == pytest.approx(2.0, abs=5e-2) - # asymmetric PSF, float sigma gauss2d = psf.eval_rect((21, 21), scale=2.0, sigma=(2.0, 0.5)) - ret = psf.find_position( - gauss2d, - gauss2d.shape, - starting_point=((gauss2d.shape[0] // 2, gauss2d.shape[1] // 2)), - bkgnd_degree=bkgnd_degree, - bkgnd_ignore_center=(4, 4), - allow_nonzero_base=allow_nonzero_base, - num_sigma=0, - use_angular_params=use_angular_params, + ret = _require_position_fit( + psf.find_position( + gauss2d, + gauss2d.shape, + starting_point=((gauss2d.shape[0] // 2, gauss2d.shape[1] // 2)), + bkgnd_degree=bkgnd_degree, + bkgnd_ignore_center=(4, 4), + allow_nonzero_base=allow_nonzero_base, + num_sigma=0, + use_angular_params=use_angular_params, + ) ) assert ret[0] == pytest.approx(gauss2d.shape[0] / 2, abs=1e-4) assert ret[1] == pytest.approx(gauss2d.shape[1] / 2, abs=1e-4) @@ -273,20 +435,20 @@ def test_gaussian_find_position(use_angular_params, bkgnd_degree): assert ret[2]['sigma_x'] == pytest.approx(0.5, abs=5e-2) assert ret[2]['scale'] == pytest.approx(2.0, abs=7e-2) - # offset PSF created through mean, float sigma psf2 = GaussianPSF(mean=(0.5, 0.75)) gauss2d = psf2.eval_rect((21, 21), scale=0.5, sigma=(0.5, 1.3)) - # find using non-offset PSF - ret = psf.find_position( - gauss2d, - gauss2d.shape, - starting_point=((gauss2d.shape[0] // 2, gauss2d.shape[1] // 2)), - bkgnd_degree=bkgnd_degree, - bkgnd_ignore_center=(4, 4), - allow_nonzero_base=allow_nonzero_base, - num_sigma=0, - use_angular_params=use_angular_params, + ret = _require_position_fit( + psf.find_position( + gauss2d, + gauss2d.shape, + starting_point=((gauss2d.shape[0] // 2, gauss2d.shape[1] // 2)), + bkgnd_degree=bkgnd_degree, + bkgnd_ignore_center=(4, 4), + allow_nonzero_base=allow_nonzero_base, + num_sigma=0, + use_angular_params=use_angular_params, + ) ) assert ret[0] == pytest.approx(gauss2d.shape[0] / 2 + 0.5, abs=1e-1) assert ret[1] == pytest.approx(gauss2d.shape[1] / 2 + 0.75, abs=1e-1) @@ -294,16 +456,17 @@ def test_gaussian_find_position(use_angular_params, bkgnd_degree): assert ret[2]['sigma_x'] == pytest.approx(1.3, abs=5e-2) assert ret[2]['scale'] == pytest.approx(0.5, abs=5e-2) - # find using offset PSF - ret = psf2.find_position( - gauss2d, - gauss2d.shape, - starting_point=((gauss2d.shape[0] // 2, gauss2d.shape[1] // 2)), - bkgnd_degree=bkgnd_degree, - bkgnd_ignore_center=(4, 4), - allow_nonzero_base=allow_nonzero_base, - num_sigma=0, - use_angular_params=use_angular_params, + ret = _require_position_fit( + psf2.find_position( + gauss2d, + gauss2d.shape, + starting_point=((gauss2d.shape[0] // 2, gauss2d.shape[1] // 2)), + bkgnd_degree=bkgnd_degree, + bkgnd_ignore_center=(4, 4), + allow_nonzero_base=allow_nonzero_base, + num_sigma=0, + use_angular_params=use_angular_params, + ) ) assert ret[0] == pytest.approx(gauss2d.shape[0] / 2, abs=1e-1) assert ret[1] == pytest.approx(gauss2d.shape[1] / 2, abs=1e-1) @@ -311,18 +474,19 @@ def test_gaussian_find_position(use_angular_params, bkgnd_degree): assert ret[2]['sigma_x'] == pytest.approx(1.3, abs=5e-2) assert ret[2]['scale'] == pytest.approx(0.5, abs=5e-2) - # offset PSF created through eval_rect, float sigma psf2 = GaussianPSF() gauss2d = psf2.eval_rect((21, 21), offset=(0.21, -0.35), scale=1.5, sigma=(0.8, 1.3)) - ret = psf.find_position( - gauss2d, - gauss2d.shape, - starting_point=((gauss2d.shape[0] // 2, gauss2d.shape[1] // 2)), - bkgnd_degree=bkgnd_degree, - bkgnd_ignore_center=(4, 4), - allow_nonzero_base=allow_nonzero_base, - num_sigma=0, - use_angular_params=use_angular_params, + ret = _require_position_fit( + psf2.find_position( + gauss2d, + gauss2d.shape, + starting_point=((gauss2d.shape[0] // 2, gauss2d.shape[1] // 2)), + bkgnd_degree=bkgnd_degree, + bkgnd_ignore_center=(4, 4), + allow_nonzero_base=allow_nonzero_base, + num_sigma=0, + use_angular_params=use_angular_params, + ) ) assert ret[0] == pytest.approx(gauss2d.shape[0] // 2 + 0.21, abs=5e-2) assert ret[1] == pytest.approx(gauss2d.shape[1] // 2 - 0.35, abs=5e-2) @@ -330,77 +494,85 @@ def test_gaussian_find_position(use_angular_params, bkgnd_degree): assert ret[2]['sigma_x'] == pytest.approx(1.3, abs=1e-3) assert ret[2]['scale'] == pytest.approx(1.5, abs=1e-2) - # centered PSF, fixed sigma psf2 = GaussianPSF(sigma=(0.9, 1.5)) gauss2d = psf2.eval_rect((21, 21), scale=1.5) - ret = psf2.find_position( - gauss2d, - gauss2d.shape, - starting_point=((gauss2d.shape[0] // 2, gauss2d.shape[1] // 2)), - bkgnd_degree=bkgnd_degree, - allow_nonzero_base=allow_nonzero_base, - num_sigma=0, - use_angular_params=use_angular_params, + ret = _require_position_fit( + psf2.find_position( + gauss2d, + gauss2d.shape, + starting_point=((gauss2d.shape[0] // 2, gauss2d.shape[1] // 2)), + bkgnd_degree=bkgnd_degree, + allow_nonzero_base=allow_nonzero_base, + num_sigma=0, + use_angular_params=use_angular_params, + ) ) assert ret[0] == pytest.approx(gauss2d.shape[0] / 2, abs=1e-2) assert ret[1] == pytest.approx(gauss2d.shape[1] / 2, abs=1e-2) assert 'sigma_y' not in ret[2] assert 'sigma_x' not in ret[2] - # assert ret[2]['scale'] == pytest.approx(1.5, abs=2e-1) # TODO: Why? + # With angular parameters and a polynomial background, optimized ``scale`` and + # floating ``sigma_*`` values follow angular reparameterization, not literal + # ``eval_rect`` inputs. + if bkgnd_degree is None or not use_angular_params: + assert ret[2]['scale'] == pytest.approx(1.5, abs=2e-1) - # centered PSF, fixed sigma_y psf2 = GaussianPSF(sigma=(0.9, None)) gauss2d = psf2.eval_rect((21, 21), scale=1.5, sigma_x=1.1) - ret = psf2.find_position( - gauss2d, - gauss2d.shape, - starting_point=((gauss2d.shape[0] // 2, gauss2d.shape[1] // 2)), - bkgnd_degree=bkgnd_degree, - allow_nonzero_base=allow_nonzero_base, - num_sigma=0, - use_angular_params=use_angular_params, + ret = _require_position_fit( + psf2.find_position( + gauss2d, + gauss2d.shape, + starting_point=((gauss2d.shape[0] // 2, gauss2d.shape[1] // 2)), + bkgnd_degree=bkgnd_degree, + allow_nonzero_base=allow_nonzero_base, + num_sigma=0, + use_angular_params=use_angular_params, + ) ) assert ret[0] == pytest.approx(gauss2d.shape[0] / 2, abs=1e-2) assert ret[1] == pytest.approx(gauss2d.shape[1] / 2, abs=1e-2) assert 'sigma_y' not in ret[2] - # assert ret[2]['sigma_x'] == pytest.approx(1.1, abs=1e-1) # TODO: Why? - # assert ret[2]['scale'] == pytest.approx(1.5, abs=1e-1) # TODO: Why? + if bkgnd_degree is None or not use_angular_params: + assert ret[2]['sigma_x'] == pytest.approx(1.1, abs=1e-1) + assert ret[2]['scale'] == pytest.approx(1.5, abs=1e-1) - # centered PSF, fixed sigma_x psf2 = GaussianPSF(sigma=(None, 0.8)) gauss2d = psf2.eval_rect((21, 21), scale=1.5, sigma_y=1.1) - ret = psf2.find_position( - gauss2d, - gauss2d.shape, - starting_point=((gauss2d.shape[0] // 2, gauss2d.shape[1] // 2)), - bkgnd_degree=bkgnd_degree, - allow_nonzero_base=allow_nonzero_base, - num_sigma=0, - use_angular_params=use_angular_params, + ret = _require_position_fit( + psf2.find_position( + gauss2d, + gauss2d.shape, + starting_point=((gauss2d.shape[0] // 2, gauss2d.shape[1] // 2)), + bkgnd_degree=bkgnd_degree, + allow_nonzero_base=allow_nonzero_base, + num_sigma=0, + use_angular_params=use_angular_params, + ) ) assert ret[0] == pytest.approx(gauss2d.shape[0] / 2, abs=1e-2) assert ret[1] == pytest.approx(gauss2d.shape[1] / 2, abs=1e-2) assert 'sigma_x' not in ret[2] - # assert ret[2]['sigma_y'] == pytest.approx(1.1, abs=1e-1) # TODO: Why? - # assert ret[2]['scale'] == pytest.approx(1.5, abs=1e-1) # TODO: Why? + if bkgnd_degree is None or not use_angular_params: + assert ret[2]['sigma_y'] == pytest.approx(1.1, abs=1e-1) + assert ret[2]['scale'] == pytest.approx(1.5, abs=1e-1) if bkgnd_degree is not None: - # add background gradient - gauss2d = psf.eval_rect((21, 21), scale=2.0, sigma=1.0) + gauss2d = psf.eval_rect((21, 21), scale=2.0, sigma=(1.0, 1.0)) nparams = int((bkgnd_degree + 1) * (bkgnd_degree + 2) / 2) coeffts = np.array([0.5] * nparams) gauss2d += GaussianPSF.background_gradient((21, 21), coeffts) - # if allow_nonzero_base: - # psf = GaussianPSF(detailed_logging=True) - ret = psf.find_position( - gauss2d, - gauss2d.shape, - starting_point=((gauss2d.shape[0] // 2, gauss2d.shape[1] // 2)), - bkgnd_degree=bkgnd_degree, - allow_nonzero_base=allow_nonzero_base, - num_sigma=0, - use_angular_params=use_angular_params, + ret = _require_position_fit( + psf.find_position( + gauss2d, + gauss2d.shape, + starting_point=((gauss2d.shape[0] // 2, gauss2d.shape[1] // 2)), + bkgnd_degree=bkgnd_degree, + allow_nonzero_base=allow_nonzero_base, + num_sigma=0, + use_angular_params=use_angular_params, + ) ) assert ret[0] == pytest.approx(gauss2d.shape[0] / 2, abs=1e-3) assert ret[1] == pytest.approx(gauss2d.shape[1] / 2, abs=1e-2) diff --git a/tests/test_psf.py b/tests/test_psf.py index 2618abf..fea71c1 100644 --- a/tests/test_psf.py +++ b/tests/test_psf.py @@ -2,6 +2,10 @@ # tests/test_psf.py ################################################################################ +"""Tests for :mod:`psfmodel.psf` helpers (background gradient and validation).""" + +from __future__ import annotations + import numpy as np import numpy.ma as ma import numpy.testing as npt @@ -10,17 +14,30 @@ from psfmodel import PSF -def test_bkgnd_gradient_coeffs(): - with pytest.raises(ValueError): - PSF._background_gradient_coeffs((3, -1), 1) - with pytest.raises(ValueError): - PSF._background_gradient_coeffs((-1, 3), 1) - with pytest.raises(ValueError): - PSF._background_gradient_coeffs((1, 2), 1) - with pytest.raises(ValueError): - PSF._background_gradient_coeffs((2, 1), 1) - with pytest.raises(ValueError): - PSF._background_gradient_coeffs((1, 1), -5) +@pytest.mark.parametrize( + ('shape', 'order', 'expected_msg'), + [ + ((3, -1), 1, 'Image must have odd positive shape in each dimension, got (3, -1)'), + ((-1, 3), 1, 'Image must have odd positive shape in each dimension, got (-1, 3)'), + ((1, 2), 1, 'Image must have odd positive shape in each dimension, got (1, 2)'), + ((2, 1), 1, 'Image must have odd positive shape in each dimension, got (2, 1)'), + ((1, 1), -5, 'Order must be non-negative, got -5'), + ], +) +def test_bkgnd_gradient_coeffs_value_errors( + shape: tuple[int, int], + order: int, + expected_msg: str, +) -> None: + """``_background_gradient_coeffs`` validates ``shape`` and ``order``.""" + + with pytest.raises(ValueError) as exc_info: + PSF._background_gradient_coeffs(shape, order) + assert str(exc_info.value) == expected_msg + + +def test_bkgnd_gradient_coeffs_success() -> None: + """``_background_gradient_coeffs`` returns expected low-order layouts.""" ret = PSF._background_gradient_coeffs((1, 1), 1) exp = np.array([[[1, 0, 0]]]) @@ -67,25 +84,38 @@ def test_bkgnd_gradient_coeffs(): assert np.all(ret == exp) -def test_background_gradient_fit(): - with pytest.raises(ValueError): +def test_background_gradient_fit() -> None: + """``background_gradient_fit`` fits quadratics, honors masks, and validates input.""" + + with pytest.raises(ValueError) as exc_info: PSF.background_gradient_fit(np.zeros((5,))) - with pytest.raises(ValueError): + assert str(exc_info.value) == 'Image must be 2-D, got (5,)' + + with pytest.raises(ValueError) as exc_info: PSF.background_gradient_fit(np.zeros((5, 4))) - with pytest.raises(ValueError): + assert str(exc_info.value) == 'Image must have odd positive shape in each dimension, got (5, 4)' + + with pytest.raises(ValueError) as exc_info: PSF.background_gradient_fit(np.zeros((4, 5))) - with pytest.raises(ValueError): + assert str(exc_info.value) == 'Image must have odd positive shape in each dimension, got (4, 5)' + + with pytest.raises(ValueError) as exc_info: PSF.background_gradient_fit(np.zeros((5, 5)), order=-10) + assert str(exc_info.value) == 'Order must be non-negative, got -10' # Unmasked img = 3 * (np.arange(5.0)[:, np.newaxis] - 2) ** 2 + 2 * (np.arange(5.0)[np.newaxis, :] - 2) bkgnd_params, img_mask = PSF.background_gradient_fit(img) + assert bkgnd_params is not None + assert img_mask is not None npt.assert_array_almost_equal(np.array(bkgnd_params), np.array([0, 2, 0, 0, 0, 3])) assert np.sum(img_mask) == 0 img2 = PSF.background_gradient((5, 5), bkgnd_params) npt.assert_array_almost_equal(img, img2) bkgnd_params, img_mask = PSF.background_gradient_fit(img, order=3) + assert bkgnd_params is not None + assert img_mask is not None npt.assert_array_almost_equal(np.array(bkgnd_params), np.array([0, 2, 0, 0, 0, 3, 0, 0, 0, 0])) assert np.sum(img_mask) == 0 img2 = PSF.background_gradient((5, 5), bkgnd_params) @@ -102,20 +132,30 @@ def test_background_gradient_fit(): img = 3 * (np.arange(5.0)[:, np.newaxis] - 2) ** 2 + 2 * (np.arange(5.0)[np.newaxis, :] - 2) img[2, 2] = 1000 bkgnd_params, img_mask = PSF.background_gradient_fit(img) + assert bkgnd_params is not None + assert img_mask is not None with np.testing.assert_raises(AssertionError): # Array not equal npt.assert_array_almost_equal(np.array(bkgnd_params), np.array([0, 2, 0, 0, 0, 3])) assert np.sum(img_mask) == 0 bkgnd_params, img_mask = PSF.background_gradient_fit(img, ignore_center=0) + assert bkgnd_params is not None + assert img_mask is not None npt.assert_array_almost_equal(np.array(bkgnd_params), np.array([0, 2, 0, 0, 0, 3])) assert np.sum(img_mask) == 1 bkgnd_params, img_mask = PSF.background_gradient_fit(img, ignore_center=1) + assert bkgnd_params is not None + assert img_mask is not None npt.assert_array_almost_equal(np.array(bkgnd_params), np.array([0, 2, 0, 0, 0, 3])) assert np.sum(img_mask) == 9 bkgnd_params, img_mask = PSF.background_gradient_fit(img, ignore_center=(1, 1)) + assert bkgnd_params is not None + assert img_mask is not None npt.assert_array_almost_equal(np.array(bkgnd_params), np.array([0, 2, 0, 0, 0, 3])) assert np.sum(img_mask) == 9 img = img.view(ma.MaskedArray) bkgnd_params, img_mask = PSF.background_gradient_fit(img, ignore_center=(0, 1)) + assert bkgnd_params is not None + assert img_mask is not None npt.assert_array_almost_equal(np.array(bkgnd_params), np.array([0, 2, 0, 0, 0, 3])) assert np.sum(img_mask) == 3 assert np.sum(img_mask[0]) == 0 @@ -134,17 +174,25 @@ def test_background_gradient_fit(): img[:] = 3 * (np.arange(5.0)[:, np.newaxis] - 2) ** 2 + 2 * (np.arange(5.0)[np.newaxis, :] - 2) img = img.view(ma.MaskedArray) bkgnd_params, img_mask = PSF.background_gradient_fit(img, num_sigma=5) + assert bkgnd_params is not None + assert img_mask is not None npt.assert_array_almost_equal(np.array(bkgnd_params), np.array([0, 2, 0, 0, 0, 3])) assert np.sum(img_mask) == 0 img[2, 2] = 10000 bkgnd_params, img_mask = PSF.background_gradient_fit(img, num_sigma=4) + assert bkgnd_params is not None + assert img_mask is not None npt.assert_array_almost_equal(np.array(bkgnd_params), np.array([0, 2, 0, 0, 0, 3])) assert np.sum(img_mask) == 1 img[0, 0] = 100000 bkgnd_params, img_mask = PSF.background_gradient_fit(img, num_sigma=3) + assert bkgnd_params is not None + assert img_mask is not None npt.assert_array_almost_equal(np.array(bkgnd_params), np.array([0, 2, 0, 0, 0, 3])) assert np.sum(img_mask) == 2 img[0, 4] = 10000 bkgnd_params, img_mask = PSF.background_gradient_fit(img, num_sigma=3) + assert bkgnd_params is not None + assert img_mask is not None npt.assert_array_almost_equal(np.array(bkgnd_params), np.array([0, 2, 0, 0, 0, 3])) assert np.sum(img_mask) == 3 From 6bd36ca589999217d6e023ae01eb9fb9091b6e0e Mon Sep 17 00:00:00 2001 From: Robert French Date: Sun, 12 Apr 2026 19:52:37 -0700 Subject: [PATCH 04/17] CR changes --- .../skills/python-codebase-analysis/SKILL.md | 2 +- .github/ISSUE_TEMPLATE/bug_report.md | 2 +- .github/ISSUE_TEMPLATE/feature_request.md | 2 +- .github/pull_request_template.md | 3 + README.md | 2 + codecov.yml | 2 - docs/conf.py | 2 +- docs/index.rst | 2 +- docs/module.rst | 2 +- programs/psf_gui.py | 214 --------------- pyproject.toml | 18 +- scripts/run-all-checks.sh | 10 +- src/psf_gui/__init__.py | 6 + src/psf_gui/__main__.py | 6 + src/psf_gui/main.py | 255 ++++++++++++++++++ src/psfmodel/__init__.py | 12 + src/psfmodel/gaussian.py | 148 +++++++--- src/psfmodel/psf.py | 243 +++++++++++++++-- tests/test_gaussian.py | 12 +- 19 files changed, 635 insertions(+), 308 deletions(-) delete mode 100755 programs/psf_gui.py create mode 100644 src/psf_gui/__init__.py create mode 100644 src/psf_gui/__main__.py create mode 100644 src/psf_gui/main.py diff --git a/.cursor/skills/python-codebase-analysis/SKILL.md b/.cursor/skills/python-codebase-analysis/SKILL.md index 646051e..a4235c9 100644 --- a/.cursor/skills/python-codebase-analysis/SKILL.md +++ b/.cursor/skills/python-codebase-analysis/SKILL.md @@ -38,7 +38,7 @@ Compare against project rules when present (e.g. `.cursor/rules/python_best_prac - Error handling: narrow try/except; no bare except; logging over print in libraries. - Public API: clear `__all__`, `py.typed` for typed packages, separation of public vs `_private`. - Library hygiene: use `logging.getLogger(__name__)`, never configure the root logger, set `NullHandler` in top-level `__init__.py`. No `print()` in library code (only in explicit CLI entry points). No `sys.exit()` in library code; raise exceptions instead. -- Error message quality: exceptions include enough context to diagnose (`ValueError("x must be positive, got -3")` not `ValueError("bad value")`). Custom base exception class (e.g. `class rms-psfmodelError(Exception)`) so callers can catch library errors specifically. Appropriate use of `warnings.warn()` with `DeprecationWarning`/`FutureWarning` for planned changes. +- Error message quality: exceptions include enough context to diagnose (`ValueError("x must be positive, got -3")` not `ValueError("bad value")`). Custom base exception class (e.g. `class psfmodelError(Exception)`) so callers can catch library errors specifically. Appropriate use of `warnings.warn()` with `DeprecationWarning`/`FutureWarning` for planned changes. - Encoding and I/O: explicit `encoding='utf-8'` on `open()` calls (platform default varies). Consistent use of `pathlib.Path` over `os.path` string manipulation. Accept `str | Path` in public API. Context managers for all files and connections. **Evidence**: Rule name or quote, example file:line or pattern. Grep for `print(`, `sys.exit`, `sys.stdout`, `open(` without `encoding=`, `logging.basicConfig` in non-CLI code. diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index aa1c9c3..a09577f 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -26,7 +26,7 @@ labels: bug ```python -import rms-psfmodel +import psfmodel # minimal reproduction here ``` diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md index 5455c4c..c2e5d4c 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -14,7 +14,7 @@ labels: enhancement ```python # Example usage -result = rms-psfmodel.new_function(arg) +result = psfmodel.new_function(arg) ``` ## Alternatives Considered diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 8b5f6a2..0eaac37 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -39,9 +39,12 @@ Closes # - [ ] Code follows project style (`ruff check`, `ruff format`) - [ ] Type annotations present and `mypy` passes +- [ ] No secrets or credentials committed +- [ ] No warnings or errors introduced (CI, linters, type checking, builds) or justified in Notes - [ ] Docstrings and Sphinx docs updated (if applicable) - [ ] CHANGES.md updated (if user-facing change) - [ ] No temporary or debug code left in +- [ ] Performance impact assessed (see Potential Impacts above) - [ ] Breaking changes flagged in Type of Change above ## Notes diff --git a/README.md b/README.md index 3977255..c5ba414 100644 --- a/README.md +++ b/README.md @@ -49,6 +49,8 @@ pip install rms-psfmodel Details of each class are available in the [module documentation](https://rms-psfmodel.readthedocs.io/en/latest/module.html). +After installation, an optional Tkinter-based PSF explorer is available as the `psf-gui` command (or `python -m psf_gui` with `src` on `PYTHONPATH`). It requires a working Tcl/Tk (for example the `python3-tk` package on Debian/Ubuntu). + # Contributing Information on contributing to this package can be found in the diff --git a/codecov.yml b/codecov.yml index 01d7a05..f2a4752 100644 --- a/codecov.yml +++ b/codecov.yml @@ -2,9 +2,7 @@ coverage: status: project: default: - # basic target: 90% patch: default: - # basic target: 90% diff --git a/docs/conf.py b/docs/conf.py index 9a52a6e..26759cd 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -8,11 +8,11 @@ import importlib.metadata import os import sys +import warnings sys.path.insert(0, os.path.abspath('../src')) # Verify the source path exists if not os.path.exists(os.path.abspath('../src')): - import warnings warnings.warn("Source directory '../src' not found. API documentation may be incomplete.") # -- Project information ----------------------------------------------------- diff --git a/docs/index.rst b/docs/index.rst index 0b67f46..9449b5e 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -1,4 +1,4 @@ -.. RMS-XXX documentation master file +.. rms-psfmodel documentation master file Welcome to the Documentation for rms-psfmodel! ============================================== diff --git a/docs/module.rst b/docs/module.rst index a38c2be..15a1933 100644 --- a/docs/module.rst +++ b/docs/module.rst @@ -7,4 +7,4 @@ :undoc-members: :special-members: :show-inheritance: - :exclude-members: __dict__, __hash__, __module__, __weakref__, __annotations__ + :exclude-members: __dict__, __hash__, __module__, __weakref__, __annotations__, __abstractmethods__ diff --git a/programs/psf_gui.py b/programs/psf_gui.py deleted file mode 100755 index f1666c9..0000000 --- a/programs/psf_gui.py +++ /dev/null @@ -1,214 +0,0 @@ -from pathlib import Path -import sys - -import numpy as np -from tkinter import * - - -sys.path.insert(0, str(Path(__file__).resolve().parent.parent)) - -from psfmodel.gaussian import GaussianPSF -# from psfmodel.hst import HSTPSF - - -display_size = 64 - -PSF_TYPE = 'gaussian' -# PSF_TYPE = 'acshrc' -# PSF_TYPE = 'wfc3uvis' -# PSF_TYPE = 'wfpc2pc1' - -psfobj = None - -def command_refresh_psf(val): - global psfobj - - if (psfobj is None or - ((PSF_TYPE in ('acshrc', 'wfpc2pc1', 'wfc3uvis') and - psfobj.subsample != var_subsample.get()))): - if PSF_TYPE == 'gaussian': - print((var_motiony.get(), var_motionx.get())) - psfobj = GaussianPSF() - elif PSF_TYPE == 'acshrc': - psfobj = HSTPSF('ACS', 'HRC', 'F660N', 512, 512, - subsample=var_subsample.get()*2+1, - movement=(var_motiony.get(), var_motionx.get())) - elif PSF_TYPE == 'wfc3uvis': - psfobj = HSTPSF('WFC3', 'UVIS', 'F606W', 128, 128, - subsample=var_subsample.get()*2+1, - movement=(var_motiony.get(), var_motionx.get()), - aperture='UVIS2-C512C-SUB') - elif PSF_TYPE == 'wfpc2pc1': - psfobj = HSTPSF('WFPC2', 'PC1', 'F606W', 128, 128, - subsample=var_subsample.get()*2+1, - movement=(var_motiony.get(), var_motionx.get()), - aperture='UVIS2-C512C-SUB') - - psf = psfobj.eval_rect(((var_psf_ysize.get()//2)*2+1, - (var_psf_xsize.get()//2)*2+1), - (var_y.get(), var_x.get()), - movement=(var_motiony.get(), var_motionx.get()), - sigma=(var_sigmay.get(), var_sigmax.get()), - angle=np.radians(var_angle.get())) - print('PSF SUM', np.sum(psf)) - psf = psf**.5 #np.log10(psf+1e-10) - -# bkgnd = astrofit.background_gradient((var_psf_xsize.get(), var_psf_ysize.get()), -# var_bkgnd_bias.get(), var_bkgnd_scale.get(), var_bkgnd_angle.get()) -# psf += bkgnd - - pix_scale = canvas_size // display_size - ctr_x = canvas_size // 2 - ctr_y = canvas_size // 2 - min_val = 0 # np.min(psf) - max_val = np.max(psf) - canvas.delete('rect') - for y in range(psf.shape[0]): - for x in range(psf.shape[1]): - val = int(max((psf[y, x]-min_val) / (max_val-min_val) * 255, 0)) - color = '#%02x%02x%02x' % (val, val, val) - canvas.create_rectangle(((x-psf.shape[1]//2)*pix_scale+ctr_x, - (y-psf.shape[0]//2)*pix_scale+ctr_y, - (x-psf.shape[1]//2+1)*pix_scale+ctr_x, - (y-psf.shape[0]//2+1)*pix_scale+ctr_y), - outline=color, fill=color, tags='rect') - -if __name__ == "__main__": - toplevel_frame = Frame() - canvas_size = 512 - canvas = Canvas(toplevel_frame, width=canvas_size, height=canvas_size, bg='black', - cursor='crosshair') - canvas.grid(row=0, column=0, sticky=NW) - - # Control sliders - control_frame = Frame(toplevel_frame) - - var_x = DoubleVar() - var_x.set(0.) - var_y = DoubleVar() - var_y.set(0.) - var_sigmax = DoubleVar() - var_sigmax.set(2.) - var_sigmay = DoubleVar() - var_sigmay.set(2.) - var_angle = DoubleVar() - var_angle.set(0.) - var_psf_xsize = IntVar() - var_psf_xsize.set(21) - var_psf_ysize = IntVar() - var_psf_ysize.set(21) - var_subsample = IntVar() - var_subsample.set(0) - var_motionx = DoubleVar() - var_motionx.set(0.) - var_motiony = DoubleVar() - var_motiony.set(0.) - var_bkgnd_bias = DoubleVar() - var_bkgnd_bias.set(0.) - var_bkgnd_scale = DoubleVar() - var_bkgnd_scale.set(0.) - var_bkgnd_angle = DoubleVar() - var_bkgnd_angle.set(0.) - - gridrow = 0 - - label = Label(control_frame, text='X') - label.grid(row=gridrow, column=0, sticky=W) - scale_x = Scale(control_frame, orient=HORIZONTAL, from_=-5., to=5., resolution=0.01, - variable=var_x, command=command_refresh_psf) - scale_x.grid(row=gridrow, column=1) - gridrow += 1 - - label = Label(control_frame, text='Y') - label.grid(row=gridrow, column=0, sticky=W) - scale_y = Scale(control_frame, orient=HORIZONTAL, from_=-5., to=5., resolution=0.01, - variable=var_y, command=command_refresh_psf) - scale_y.grid(row=gridrow, column=1) - gridrow += 1 - - if PSF_TYPE == 'gaussian': - label = Label(control_frame, text='SIGMA X') - label.grid(row=gridrow, column=0, sticky=W) - scale_sigmax = Scale(control_frame, orient=HORIZONTAL, from_=0.001, to=5., resolution=0.001, - variable=var_sigmax, command=command_refresh_psf) - scale_sigmax.grid(row=gridrow, column=1) - gridrow += 1 - - label = Label(control_frame, text='SIGMA Y') - label.grid(row=gridrow, column=0, sticky=W) - scale_sigmay = Scale(control_frame, orient=HORIZONTAL, from_=0.001, to=5., resolution=0.001, - variable=var_sigmay, command=command_refresh_psf) - scale_sigmay.grid(row=gridrow, column=1) - gridrow += 1 - - label = Label(control_frame, text='ANGLE') - label.grid(row=gridrow, column=0, sticky=W) - scale_sigmay = Scale(control_frame, orient=HORIZONTAL, from_=0., to=180, resolution=1, - variable=var_angle, command=command_refresh_psf) - scale_sigmay.grid(row=gridrow, column=1) - gridrow += 1 - - # label = Label(control_frame, text='BKGND BIAS') - # label.grid(row=gridrow, column=0, sticky=W) - # scale_bkgnd_bias = Scale(control_frame, orient=HORIZONTAL, from_=0., to=1, resolution=0.001, - # variable=var_bkgnd_bias, command=command_refresh_psf) - # scale_bkgnd_bias.grid(row=gridrow, column=1) - # gridrow += 1 - # - # label = Label(control_frame, text='BKGND SCALE') - # label.grid(row=gridrow, column=0, sticky=W) - # scale_bkgnd_scale = Scale(control_frame, orient=HORIZONTAL, from_=0., to=.05, resolution=0.001, - # variable=var_bkgnd_scale, command=command_refresh_psf) - # scale_bkgnd_scale.grid(row=gridrow, column=1) - # gridrow += 1 - # - # label = Label(control_frame, text='BKGND ANGLE') - # label.grid(row=gridrow, column=0, sticky=W) - # scale_bkgnd_angle = Scale(control_frame, orient=HORIZONTAL, from_=0., to=360., resolution=1., - # variable=var_bkgnd_angle, command=command_refresh_psf) - # scale_bkgnd_angle.grid(row=gridrow, column=1) - # gridrow += 1 - - gridrow = 0 - - label = Label(control_frame, text='PSF X SIZE') - label.grid(row=gridrow, column=2, sticky=W) - scale_psf_xsize = Scale(control_frame, orient=HORIZONTAL, from_=1, to=101., resolution=1, - variable=var_psf_xsize, command=command_refresh_psf) - scale_psf_xsize.grid(row=gridrow, column=3) - gridrow += 1 - - label = Label(control_frame, text='PSF Y SIZE') - label.grid(row=gridrow, column=2, sticky=W) - scale_psf_ysize = Scale(control_frame, orient=HORIZONTAL, from_=1, to=101., resolution=1, - variable=var_psf_ysize, command=command_refresh_psf) - scale_psf_ysize.grid(row=gridrow, column=3) - gridrow += 1 - - label = Label(control_frame, text='SUBSAMPLE (*2+1)') - label.grid(row=gridrow, column=2, sticky=W) - scale_subsample = Scale(control_frame, orient=HORIZONTAL, from_=0, to=4., resolution=1, - variable=var_subsample, command=command_refresh_psf) - scale_subsample.grid(row=gridrow, column=3) - gridrow += 1 - - label = Label(control_frame, text='MOTION X') - label.grid(row=gridrow, column=2, sticky=W) - scale_motionx = Scale(control_frame, orient=HORIZONTAL, from_=-10., to=10., resolution=.1, - variable=var_motionx, command=command_refresh_psf) - scale_motionx.grid(row=gridrow, column=3) - gridrow += 1 - - label = Label(control_frame, text='MOTION Y') - label.grid(row=gridrow, column=2, sticky=W) - scale_motiony = Scale(control_frame, orient=HORIZONTAL, from_=-10., to=10., resolution=.1, - variable=var_motiony, command=command_refresh_psf) - scale_motiony.grid(row=gridrow, column=3) - gridrow += 1 - - control_frame.grid(row=1, column=0, sticky=NW) - toplevel_frame.pack() - - command_refresh_psf(0) - - mainloop() diff --git a/pyproject.toml b/pyproject.toml index afc40ab..cae04ee 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -92,7 +92,7 @@ docs = [ ] [project.scripts] -#TODO = "main.psfmodel:main" +psf-gui = "psf_gui.main:main" # Tool configuration @@ -100,7 +100,7 @@ docs = [ branch = true parallel = true source = ["psfmodel"] -omit = ["tests/*", "**/_version.py", "**/psfmodel/hst.py"] +omit = ["tests/*", "**/_version.py", "**/psfmodel/hst.py", "**/psf_gui/**"] [tool.coverage.report] exclude_lines = [ @@ -116,7 +116,6 @@ exclude = ["src/psfmodel/hst.py"] [tool.mypy] strict = true -disallow_subclassing_any = false exclude = [ "src/psfmodel/hst\\.py", ] @@ -133,16 +132,9 @@ ignore_missing_imports = true module = "scipy.*" ignore_missing_imports = true -[[tool.mypy.overrides]] -module = [ - "conftest", - "test_find_position", - "test_gaussian", - "test_psf", -] -check_untyped_defs = false -disallow_untyped_defs = false -strict = false +#[[tool.mypy.overrides]] +# module = ["MODULENAME.*"] +# ignore_missing_imports = true [tool.ruff] target-version = "py310" diff --git a/scripts/run-all-checks.sh b/scripts/run-all-checks.sh index 18bdb47..3cb11fd 100755 --- a/scripts/run-all-checks.sh +++ b/scripts/run-all-checks.sh @@ -42,12 +42,12 @@ # enable more tools in a given repo. Each check runs only if both RUN_* and # ENABLE_* are true (RUN_* from CLI or defaults below; ENABLE_* from env): # ENABLE_RUFF_CHECK (default: true) -# ENABLE_RUFF_FORMAT (default: false) -# ENABLE_MYPY (default: false) +# ENABLE_RUFF_FORMAT (default: true) [modified from original] +# ENABLE_MYPY (default: true) [modified from original] # ENABLE_PYTEST (default: true) # ENABLE_PYROMA (default: true) -# ENABLE_BANDIT (default: false) -# ENABLE_VULTURE (default: false) +# ENABLE_BANDIT (default: true) [modified from original] +# ENABLE_VULTURE (default: true) [modified from original] # ENABLE_SPHINX (default: true) # ENABLE_PYMARKDOWN PyMarkdown scan (default: true) # @@ -299,7 +299,7 @@ fi START_TIME=$(date +%s) -print_header "REPONAME - Running All Checks" +print_header "rms-psfmodel - Running All Checks" if [ "$PARALLEL" = true ]; then print_info "Running checks in PARALLEL mode" diff --git a/src/psf_gui/__init__.py b/src/psf_gui/__init__.py new file mode 100644 index 0000000..1069088 --- /dev/null +++ b/src/psf_gui/__init__.py @@ -0,0 +1,6 @@ +"""Tkinter demo for exploring :class:`psfmodel.gaussian.GaussianPSF` (and optional HST PSFs). + +Run with ``python -m psf_gui`` or the ``psf-gui`` console script after install. +""" + +__all__: list[str] = [] diff --git a/src/psf_gui/__main__.py b/src/psf_gui/__main__.py new file mode 100644 index 0000000..98d336f --- /dev/null +++ b/src/psf_gui/__main__.py @@ -0,0 +1,6 @@ +"""Allow ``python -m psf_gui``.""" + +from psf_gui.main import main + +if __name__ == '__main__': + main() diff --git a/src/psf_gui/main.py b/src/psf_gui/main.py new file mode 100644 index 0000000..ef232b9 --- /dev/null +++ b/src/psf_gui/main.py @@ -0,0 +1,255 @@ +################################################################################ +# psf_gui/main.py — interactive PSF visualization (Tkinter). +################################################################################ + +import logging +import tkinter as tk +from typing import Any, Literal, cast + +import numpy as np +import numpy.typing as npt + +from psfmodel.gaussian import GaussianPSF + +logger = logging.getLogger(__name__) + +DISPLAY_SIZE = 64 +DEFAULT_CANVAS_SIZE = 512 + +PsfTypeLiteral = Literal['gaussian', 'acshrc', 'wfc3uvis', 'wfpc2pc1'] + + +def _hst_psf(*args: Any, **kwargs: Any) -> Any: + """Return an ``HSTPSF`` instance. + + Mypy treats ``HSTPSF`` as abstract because ``_eval_rect`` is not annotated on + the subclass; runtime construction is valid. + """ + from psfmodel.hst import HSTPSF + + return HSTPSF(*args, **kwargs) # type: ignore[abstract, no-untyped-call] + + +class PsfGuiApp: + """Build sliders and a canvas to render a PSF patch from ``psfmodel``.""" + + def __init__(self, *, psf_type: PsfTypeLiteral = 'gaussian') -> None: + self._psf_type: PsfTypeLiteral = psf_type + self._psfobj: Any = None + self.canvas_size = DEFAULT_CANVAS_SIZE + self._root = tk.Tk() + self._root.title('PSF GUI') + + self._toplevel = tk.Frame(self._root) + self.canvas = tk.Canvas( + self._toplevel, + width=self.canvas_size, + height=self.canvas_size, + bg='black', + cursor='crosshair', + ) + self.canvas.grid(row=0, column=0, sticky=tk.NW) + + self.var_x = tk.DoubleVar(value=0.0) + self.var_y = tk.DoubleVar(value=0.0) + self.var_sigmax = tk.DoubleVar(value=2.0) + self.var_sigmay = tk.DoubleVar(value=2.0) + self.var_angle = tk.DoubleVar(value=0.0) + self.var_psf_xsize = tk.IntVar(value=21) + self.var_psf_ysize = tk.IntVar(value=21) + self.var_subsample = tk.IntVar(value=0) + self.var_motionx = tk.DoubleVar(value=0.0) + self.var_motiony = tk.DoubleVar(value=0.0) + + self._build_controls() + self._toplevel.pack() + + def _build_controls(self) -> None: + control = tk.Frame(self._toplevel) + gridrow = 0 + + def add_scale_row_left( + label_text: str, + variable: tk.DoubleVar | tk.IntVar, + *, + from_: float, + to: float, + resolution: float, + ) -> None: + nonlocal gridrow + lbl = tk.Label(control, text=label_text) + lbl.grid(row=gridrow, column=0, sticky=tk.W) + scale = tk.Scale( + control, + orient=tk.HORIZONTAL, + from_=from_, + to=to, + resolution=resolution, + variable=variable, + command=lambda _s: self.refresh_psf(), + ) + scale.grid(row=gridrow, column=1) + gridrow += 1 + + add_scale_row_left('X', self.var_x, from_=-5.0, to=5.0, resolution=0.01) + add_scale_row_left('Y', self.var_y, from_=-5.0, to=5.0, resolution=0.01) + + if self._psf_type == 'gaussian': + add_scale_row_left('SIGMA X', self.var_sigmax, from_=0.001, to=5.0, resolution=0.001) + add_scale_row_left('SIGMA Y', self.var_sigmay, from_=0.001, to=5.0, resolution=0.001) + add_scale_row_left('ANGLE', self.var_angle, from_=0.0, to=180.0, resolution=1.0) + + gridrow_right = 0 + col = 2 + + def add_scale_row_right( + label_text: str, + variable: tk.DoubleVar | tk.IntVar, + *, + from_: float, + to: float, + resolution: float, + ) -> None: + nonlocal gridrow_right + lbl = tk.Label(control, text=label_text) + lbl.grid(row=gridrow_right, column=col, sticky=tk.W) + scale = tk.Scale( + control, + orient=tk.HORIZONTAL, + from_=from_, + to=to, + resolution=resolution, + variable=variable, + command=lambda _s: self.refresh_psf(), + ) + scale.grid(row=gridrow_right, column=col + 1) + gridrow_right += 1 + + add_scale_row_right('PSF X SIZE', self.var_psf_xsize, from_=1.0, to=101.0, resolution=1.0) + add_scale_row_right('PSF Y SIZE', self.var_psf_ysize, from_=1.0, to=101.0, resolution=1.0) + add_scale_row_right( + 'SUBSAMPLE (*2+1)', self.var_subsample, from_=0.0, to=4.0, resolution=1.0 + ) + add_scale_row_right('MOTION X', self.var_motionx, from_=-10.0, to=10.0, resolution=0.1) + add_scale_row_right('MOTION Y', self.var_motiony, from_=-10.0, to=10.0, resolution=0.1) + + control.grid(row=1, column=0, sticky=tk.NW) + + def _ensure_psf_object(self) -> None: + subsample_val = int(self.var_subsample.get()) + motion_y = float(self.var_motiony.get()) + motion_x = float(self.var_motionx.get()) + expected_sub = subsample_val * 2 + 1 + + need_rebuild = self._psfobj is None + if not need_rebuild and self._psf_type in ('acshrc', 'wfpc2pc1', 'wfc3uvis'): + need_rebuild = getattr(self._psfobj, 'subsample', None) != expected_sub + + if not need_rebuild: + return + + if self._psf_type == 'gaussian': + logger.debug('motion=(%s, %s)', motion_y, motion_x) + self._psfobj = GaussianPSF() + return + + if self._psf_type == 'acshrc': + self._psfobj = _hst_psf( + 'ACS', + 'HRC', + 'F660N', + 512, + 512, + subsample=expected_sub, + movement=(motion_y, motion_x), + ) + elif self._psf_type == 'wfc3uvis': + self._psfobj = _hst_psf( + 'WFC3', + 'UVIS', + 'F606W', + 128, + 128, + subsample=expected_sub, + movement=(motion_y, motion_x), + aperture='UVIS2-C512C-SUB', + ) + elif self._psf_type == 'wfpc2pc1': + self._psfobj = _hst_psf( + 'WFPC2', + 'PC1', + 'F606W', + 128, + 128, + subsample=expected_sub, + movement=(motion_y, motion_x), + ) + + def refresh_psf(self) -> None: + """Redraw the PSF patch on the canvas from current slider values.""" + + self._ensure_psf_object() + if self._psfobj is None: + return + + ysize = int(self.var_psf_ysize.get()) + xsize = int(self.var_psf_xsize.get()) + rect_h = (ysize // 2) * 2 + 1 + rect_w = (xsize // 2) * 2 + 1 + + offset_y = float(self.var_y.get()) + offset_x = float(self.var_x.get()) + motion_y = float(self.var_motiony.get()) + motion_x = float(self.var_motionx.get()) + + kwargs: dict[str, Any] = {'movement': (motion_y, motion_x)} + if self._psf_type == 'gaussian': + kwargs['sigma'] = (float(self.var_sigmay.get()), float(self.var_sigmax.get())) + kwargs['angle'] = np.radians(float(self.var_angle.get())) + + raw = self._psfobj.eval_rect( + (rect_h, rect_w), + (offset_y, offset_x), + **kwargs, + ) + psf = cast(npt.NDArray[np.floating], np.asarray(raw, dtype=np.float64)) + logger.info('PSF sum=%s', float(np.sum(psf))) + psf = np.sqrt(psf) + + pix_scale = self.canvas_size // DISPLAY_SIZE + ctr_x = self.canvas_size // 2 + ctr_y = self.canvas_size // 2 + min_val = 0.0 + max_val = float(np.max(psf)) + denom = max_val - min_val + if denom <= 0.0: + denom = 1.0 + + self.canvas.delete('rect') + for y in range(psf.shape[0]): + for x in range(psf.shape[1]): + raw_px = (float(psf[y, x]) - min_val) / denom * 255.0 + val = int(max(raw_px, 0.0)) + color = f'#{val:02x}{val:02x}{val:02x}' + self.canvas.create_rectangle( + (x - psf.shape[1] // 2) * pix_scale + ctr_x, + (y - psf.shape[0] // 2) * pix_scale + ctr_y, + (x - psf.shape[1] // 2 + 1) * pix_scale + ctr_x, + (y - psf.shape[0] // 2 + 1) * pix_scale + ctr_y, + outline=color, + fill=color, + tags='rect', + ) + + def run(self) -> None: + """Start the Tk main loop.""" + + self.refresh_psf() + self._root.mainloop() + + +def main() -> None: + """Entry point for ``psf-gui`` and ``python -m psf_gui``.""" + + logging.basicConfig(level=logging.INFO) + PsfGuiApp(psf_type='gaussian').run() diff --git a/src/psfmodel/__init__.py b/src/psfmodel/__init__.py index d8f60a3..e69466a 100644 --- a/src/psfmodel/__init__.py +++ b/src/psfmodel/__init__.py @@ -1,3 +1,15 @@ +"""Point-spread function (PSF) models and fitting for image data. + +This package defines an abstract :class:`~psfmodel.psf.PSF` API and concrete +implementations such as :class:`~psfmodel.gaussian.GaussianPSF` for analytic +Gaussians, pixel integration, background handling, and astrometric fitting. + +The public surface re-exports ``PSF`` and ``GaussianPSF`` (see ``__all__``). +Additional modules (for example instrument-specific PSFs) are imported from +their submodules when needed. A :class:`logging.NullHandler` is attached to the +package logger so library logging is opt-in for applications. +""" + import logging from .gaussian import GaussianPSF diff --git a/src/psfmodel/gaussian.py b/src/psfmodel/gaussian.py index 447c64c..628cc43 100755 --- a/src/psfmodel/gaussian.py +++ b/src/psfmodel/gaussian.py @@ -2,6 +2,14 @@ # psfmodel/gaussian.py ################################################################################ +"""Analytic Gaussian PSF models and integrals for :class:`~psfmodel.psf.PSF`. + +:class:`GaussianPSF` subclasses :class:`~psfmodel.psf.PSF` for pixel-integrated fitting +and rendering. The module exposes helpers such as :class:`GaussianPSF` and the constant +``INV_SQRT_2`` (used in error-function integrals). Depends on NumPy and +``scipy.special.erf``. +""" + import logging from typing import cast @@ -25,12 +33,19 @@ class GaussianPSF(PSF): Because these are so fast and easy to compute, we don't cache any results. """ + _sigma_y: float | None + _sigma_x: float | None + _mean_y: float + _mean_x: float + _angle: float | None + _angle_subsample: int + def __init__( self, *, sigma: float | tuple[float | None, float | None] | None = None, mean: float | tuple[float, float] = 0.0, - angle: float = 0.0, + angle: float | None = 0.0, sigma_x_range: tuple[float, float] = (0.01, 10.0), sigma_y_range: tuple[float, float] = (0.01, 10.0), angle_subsample: int = 13, @@ -46,9 +61,11 @@ def __init__( sigma will be supplied later. mean: The mean of the Gaussian. May be a scalar in which case the value applies to both X and Y, or a tuple (mean_y, mean_x). - angle: The angle of the Gaussian. angle ranges from 0 to pi, with 0 being - "3 o'clock" (+X) assuming that (0, 0) is in the top left corner. None - means that the angle will be supplied later. + angle: Rotation angle from 0 to ``pi`` (0 is +X). Default ``0.0`` fixes an + unrotated Gaussian and keeps pixel integration on the fast axis-aligned + path. Pass ``None`` to include ``angle`` in ``_additional_params`` so it + can be fitted in :meth:`~psfmodel.psf.PSF.find_position`; per-call + overrides are still accepted by :meth:`eval_rect`. sigma_x_range: The valid range for sigma_x if it is not specified otherwise. This is used during PSF fitting to let sigma_x float to its optimal value. sigma_y_range: The valid range for sigma_y if it is not specified otherwise. @@ -61,7 +78,7 @@ def __init__( super().__init__(logger=logger, detailed_logging=detailed_logging) - if not isinstance(sigma, (tuple, list)): + if not isinstance(sigma, tuple): self._sigma_y = self._sigma_x = float(sigma) if sigma is not None else None else: self._sigma_y = float(sigma[0]) if sigma[0] is not None else None @@ -70,7 +87,7 @@ def __init__( self._mean_y = self._mean_x = float(mean) else: self._mean_y, self._mean_x = float(mean[0]), float(mean[1]) - self._angle = float(angle) + self._angle = None if angle is None else float(angle) if not isinstance(angle_subsample, int) or not (0 < angle_subsample <= 99): raise ValueError( f'angle_subsample must be an int between 1 and 99, got {angle_subsample}' @@ -90,18 +107,40 @@ def __init__( @property def sigma_y(self) -> float | None: + """Standard deviation of the Gaussian along the y-axis (pixels), if fixed. + + Returns: + The locked ``sigma_y`` from construction, or ``None`` when it is left free + for fitting or per-call overrides. + """ return self._sigma_y @property def sigma_x(self) -> float | None: + """Standard deviation of the Gaussian along the x-axis (pixels), if fixed. + + Returns: + The locked ``sigma_x`` from construction, or ``None`` when it is left free + for fitting or per-call overrides. + """ return self._sigma_x @property def mean_y(self) -> float: + """Center of the Gaussian along the y-axis in pixel coordinates. + + Returns: + The mean ``y`` used when evaluating the model (scalar). + """ return self._mean_y @property def mean_x(self) -> float: + """Center of the Gaussian along the x-axis in pixel coordinates. + + Returns: + The mean ``x`` used when evaluating the model (scalar). + """ return self._mean_x @staticmethod @@ -257,23 +296,23 @@ def gaussian_integral_1d( The integral is over the limits [xmin, xmax]. Values are generated via the error function, where the integral from - -inf to x is equal to + ``-inf`` to ``x`` is proportional to - (1 + erf((x - mean_x) / (sqrt(2)*sigma_x)) / 2 + ``1 + erf((x - mean) / (sqrt(2) * sigma))`` This function works for both scalar and array values of xmin and xmax. Parameters: x_min: The lower bound of the integral. x_max: The upper bound of the integral. - sigma_x: The standard deviation of the Gaussian. - mean_x: The mean of the Gaussian. + sigma: The standard deviation of the Gaussian. + mean: The mean of the Gaussian. scale: The scale of the Gaussian; the area under the complete curve (excluding the base). base: The base of the Gaussian; a scalar added to the curve. Returns: - The integral of the Gaussian between xmin and xmax. + The integral of the Gaussian between ``x_min`` and ``x_max``. Raises: ValueError: If ``sigma`` is not positive. @@ -316,8 +355,8 @@ def gaussian_integral_2d( The integral is over the limits [y_min, y_max] and [x_min, x_max]. - This function works for both scalar and array values of - x_min/x_max/y_min/y_max. + For a non-zero ``angle``, array bounds are broadcast and the integral is computed + elementwise over the flattened grid, then reshaped to the broadcast shape. Parameters: y_min: The lower bound of the integral in the Y dimension. @@ -377,10 +416,15 @@ def gaussian_integral_2d( return cast(float, np.mean(ret)) x_min, x_max, y_min, y_max = np.broadcast_arrays(x_min, x_max, y_min, y_max) - res = np.empty(x_min.shape) - for x in range(x_min.shape[0]): - ys = np.linspace(y_min[x], y_max[x], angle_subsample) - xs = np.linspace(x_min[x], x_max[x], angle_subsample) + res = np.empty(x_min.shape, dtype=np.float64) + flat = res.ravel() + y_min_f = y_min.ravel() + y_max_f = y_max.ravel() + x_min_f = x_min.ravel() + x_max_f = x_max.ravel() + for i in range(flat.size): + ys = np.linspace(y_min_f[i], y_max_f[i], angle_subsample) + xs = np.linspace(x_min_f[i], x_max_f[i], angle_subsample) xindex, yindex = np.meshgrid(xs, ys) ret = GaussianPSF.gaussian_2d( @@ -394,9 +438,9 @@ def gaussian_integral_2d( base=base, angle=angle, ) - res[x] = np.mean(ret) + flat[i] = np.mean(ret) - return res + return cast(float | npt.NDArray[np.floating], res) def eval_point( self, @@ -420,10 +464,9 @@ def eval_point( coord: The coordinate (y, x) at which to evaluate the PSF. scale: A scale factor to apply to the resulting PSF. base: A scalar added to the resulting PSF. - sigma: The standard deviation of the Gaussian. It may be specified here or - during the creation of the GaussianPSF object, but not both. May be a - scalar or a tuple (sigma_y, sigma_x), or None if sigma was specified at - creation time. + sigma: Standard deviations: a scalar (both axes) or a ``(sigma_y, sigma_x)`` + tuple. Must not duplicate values fixed at construction; ``None`` if both + are already set on the instance. sigma_y: An alternative way to specify sigma_y. Used primarily for letting sigma_y float during PSF fitting. sigma_x: An alternative way to specify sigma_x. Used primarily for letting @@ -444,10 +487,10 @@ def eval_point( raise ValueError('Cannot specify both sigma during init and sigma_y/x') if sigma is not None: - if not isinstance(sigma, (list, tuple)): - sy = sx = sigma + if not isinstance(sigma, tuple): + sy = sx = float(sigma) else: - sy, sx = sigma + sy, sx = sigma[0], sigma[1] if sigma_y is not None: sy = sigma_y @@ -460,9 +503,9 @@ def eval_point( 'or in the call to eval_point' ) - r = self._angle + r: float = 0.0 if self._angle is None else float(self._angle) if angle is not None: - r = angle + r = float(angle) ret = GaussianPSF.gaussian_2d( coord[0], @@ -510,10 +553,9 @@ def eval_pixel( offset: The amount (offset_y, offset_x) to offset the center of the PSF. scale: A scale factor to apply to the resulting PSF. base: A scalar added to the resulting PSF. - sigma: The standard deviation of the Gaussian. It may be specified here or - during the creation of the GaussianPSF object, but not both. May be a - scalar or a tuple (sigma_y, sigma_x), or None if sigma was specified at - creation time. + sigma: Standard deviations: a scalar (both axes) or a ``(sigma_y, sigma_x)`` + tuple. Must not duplicate values fixed at construction; ``None`` if both + are already set on the instance. sigma_y: An alternative way to specify sigma_y. Used primarily for letting sigma_y float during PSF fitting. sigma_x: An alternative way to specify sigma_x. Used primarily for letting @@ -534,19 +576,19 @@ def eval_pixel( raise ValueError('Cannot specify both sigma during init and sigma_y/x') if sigma is not None: - if not isinstance(sigma, (list, tuple)): - sy = sx = sigma + if not isinstance(sigma, tuple): + sy = sx = float(sigma) else: - sy, sx = sigma + sy, sx = sigma[0], sigma[1] if sigma_y is not None: sy = sigma_y if sigma_x is not None: sx = sigma_x - r = self._angle + r_angle: float = 0.0 if self._angle is None else float(self._angle) if angle is not None: - r = angle + r_angle = float(angle) if sx is None or sy is None: raise ValueError( @@ -554,7 +596,6 @@ def eval_pixel( 'or in the call to eval_pixel' ) - # There is a bug in type checking below? ret = GaussianPSF.gaussian_integral_2d( coord[0] - offset[0], coord[0] - offset[0] + 1.0, @@ -566,11 +607,14 @@ def eval_pixel( mean_x=self._mean_x, scale=scale, base=base, - angle=r, + angle=r_angle, angle_subsample=self._angle_subsample, ) return ret + # Intentional override of :meth:`PSF._eval_rect`: ``rect_size`` / ``offset`` are + # narrowed to ``tuple``, Gaussian-specific keyword-only arguments are added, and the + # return type is ``np.floating``; call sites from the base class remain compatible. def _eval_rect( # type: ignore[override] self, rect_size: tuple[int, int], @@ -583,6 +627,22 @@ def _eval_rect( # type: ignore[override] sigma_x: float | None = None, angle: float | None = None, ) -> npt.NDArray[np.floating]: + """Pixel-integrated Gaussian on a rectangle (same grid as :meth:`eval_rect`). + + Parameters: + rect_size: ``(size_y, size_x)`` patch shape (odd counts). + offset: Subpixel shift ``(y, x)`` passed to :meth:`eval_pixel`. + scale: Multiplicative scale for the Gaussian flux. + base: Additive constant per pixel after scaling. + sigma: Optional ``(sigma_y, sigma_x)`` pair overriding instance sigmas. + sigma_y: Override for ``sigma_y`` when fitting. + sigma_x: Override for ``sigma_x`` when fitting. + angle: Override for rotation angle (radians); instance default if ``None``. + + Returns: + A 2-D :class:`numpy.ndarray` of floats with shape ``rect_size``, each entry + the integral of the Gaussian over that pixel. + """ rect_size_y, rect_size_x = rect_size y_coords = np.repeat( @@ -609,6 +669,9 @@ def _eval_rect( # type: ignore[override] return rect + # Same rationale as :meth:`_eval_rect` above: extends :meth:`PSF.eval_rect` with + # Gaussian kwargs and concrete tuple types while delegating to + # :meth:`PSF._eval_rect_smeared`. def eval_rect( # type: ignore[override] self, rect_size: tuple[int, int], @@ -646,10 +709,9 @@ def eval_rect( # type: ignore[override] more precise but also take longer to compute. scale: A scale factor to apply to the resulting PSF. base: A scalar added to the resulting PSF. - sigma: The standard deviation of the Gaussian. It may be specified here or - during the creation of the GaussianPSF object, but not both. May be a - scalar or a tuple (sigma_y, sigma_x), or None if sigma was specified at - creation time. + sigma: Standard deviations: a scalar (both axes) or a ``(sigma_y, sigma_x)`` + tuple. Must not duplicate values fixed at construction; ``None`` if both + are already set on the instance. sigma_y: An alternative way to specify sigma_y. Used primarily for letting sigma_y float during PSF fitting. sigma_x: An alternative way to specify sigma_x. Used primarily for letting diff --git a/src/psfmodel/psf.py b/src/psfmodel/psf.py index 5d32098..f704957 100755 --- a/src/psfmodel/psf.py +++ b/src/psfmodel/psf.py @@ -18,9 +18,64 @@ except ImportError: # pragma: no cover __version__ = 'Version unspecified' +# Unbounded ends for the additive PSF ``base`` in :meth:`PSF._find_position` when +# ``allow_nonzero_base`` is True and ``use_angular_params`` is False (Powell box +# constraints). +_FIT_PSF_BASE_BOUND_MIN = float('-inf') +_FIT_PSF_BASE_BOUND_MAX = float('inf') + class PSF(ABC): - """Abstract superclass for classes that model different types of PSFs.""" + """Abstract base for 2-D point-spread models used in fitting and rendering. + + Subclass :class:`PSF` to provide a concrete model. The base class supplies shared + utilities (for example :meth:`find_position`, background helpers, and motion smear + via :meth:`_eval_rect_smeared`); evaluation itself is defined by subclasses through + the abstract API below. + + **Abstract methods (must implement)** + + * :meth:`eval_point` -- Evaluate the continuous PSF at fractional ``(y, x)`` + (scalar or broadcast arrays). Signature includes keyword-only ``scale`` and + ``base``. Returns a float or a :class:`numpy.ndarray` of floats matching the + broadcast shape of ``coord``. Origin ``(0, 0)`` is the PSF center; coordinates + may be negative. Subclasses may add keyword-only parameters. + + * :meth:`eval_rect` -- Build a rectangular, pixel-integrated patch. Signature: + ``rect_size``, ``offset``, then keyword-only ``movement``, + ``movement_granularity``, ``scale``, ``base``, and subclass-specific + ``**kwargs``. Must return :class:`numpy.ndarray` with ``dtype`` ``float64`` and + shape ``(height, width)`` matching ``rect_size`` as ``(size_y, size_x)``. Should + validate inputs (for example odd ``rect_size``) and raise :exc:`ValueError` for + invalid arguments with a clear message. + + * :meth:`_eval_rect` -- Internal hook for the same patch without the checks in + :meth:`eval_rect`; same core keyword-only ``scale`` and ``base``. Must return a + ``float64`` array of shape ``(height, width)``. Subclasses often add + keyword-only model parameters. Callers must pass consistent arguments; + implementations may omit validation. + + **Protected attributes** + + * ``_logger`` -- :class:`logging.Logger` for this instance (set in + :meth:`__init__`). Subclasses log warnings and diagnostics through it. + + * ``_additional_params`` -- :class:`list` (initialized empty), each entry a + ``(lower_bound, upper_bound, name)`` tuple of two floats and a :class:`str` + keyword name. Used by :meth:`find_position` / :meth:`_find_position` to append + extra optimized parameters (bounds and :meth:`eval_rect` keyword). Subclasses + append one tuple per fittable quantity in construction order; leave the list + empty if there are no extra parameters (for example fixed-width models). + + **Errors and return conventions** + + Public evaluators should reject bad arguments with :exc:`ValueError` (or + :exc:`TypeError` for wrong types) where feasible. Some higher-level routines + (notably :meth:`find_position`) signal failure by returning ``None`` instead of + raising. Numeric outputs are real floating point; ``scale`` multiplies the model + amplitude and ``base`` adds a constant offset in the same units as the evaluated + PSF values unless a subclass documents physical units. + """ def __init__( self, @@ -150,7 +205,30 @@ def _eval_rect( scale: float = 1.0, base: float = 0.0, ) -> npt.NDArray[np.float64]: - """Internal function to create a rectangular pixelated PSF without other checks.""" + """Pixel-integrated rectangular PSF; internal counterpart to :meth:`eval_rect`. + + Used by :meth:`_eval_rect_smeared` and subclass implementations. Unlike + :meth:`eval_rect`, this hook performs no input validation, bounds checking, or + clipping; callers must supply consistent arguments. + + Parameters: + rect_size: ``(height, width)`` in pixels, i.e. ``(size_y, size_x)`` (row and + column counts). This matches the shape of the returned array. + offset: ``(offset_y, offset_x)`` subpixel shift of the PSF reference in + fractional pixel coordinates. Default ``(0.5, 0.5)`` centers the model in + the middle pixel; ``(0.0, 0.0)`` uses the top-left corner of that pixel + as the reference (same convention as :meth:`eval_rect`). + scale: Multiplier applied to the PSF amplitude before ``base`` is added. + base: Additive baseline added to every output pixel after ``scale``. + + Returns: + A :class:`numpy.ndarray` of dtype ``float64`` with shape ``(height, width)`` + containing the rectangular, pixel-sampled PSF. + + Note: + Concrete subclasses may add keyword-only parameters for model-specific + quantities (for example width or angle on a Gaussian). + """ ... # pragma: no cover def _eval_rect_smeared( @@ -167,14 +245,14 @@ def _eval_rect_smeared( """Evaluate and sum a PSF multiple times to simulate motion blur. Parameters: - movement: The total amount (my, mx) the PSF moves. The movement is assumed to - be centered on the given offset and exists half on either side. - movement_granularity: The number of pixels to step for each smear while doing - motion blur. rect_size: The size of the rectangle (rect_size_y, rect_size_x) of the returned PSF. Both dimensions must be odd. offset: The amount (offset_y, offset_x) to offset the center of the PSF. A positive offset effectively moves the PSF down and to the left. XXX + movement: The total amount (my, mx) the PSF moves. The movement is assumed to + be centered on the given offset and exists half on either side. + movement_granularity: The number of pixels to step for each smear while doing + motion blur. scale: A scale factor to apply to the resulting PSF. base: A scalar added to the resulting PSF. @@ -297,8 +375,11 @@ def background_gradient_fit( ignore_center: A scalar or tuple (ignore_y, ignore_x) giving the number of pixels on either side of the center to ignore while fitting. 0 means ignore the center pixel. None means don't ignore anything. - num_sigma: The number of sigma a pixel needs to be beyond the background - gradient to be ignored. None means don't ignore bad pixels. + num_sigma: Outlier rejection uses the fit residual ``image - gradient``: + unmasked pixels with absolute residual at least ``num_sigma`` times the + standard deviation of that residual (mask-aware) are masked and the fit + is repeated. None disables this. Non-positive values disable masking + after the initial least-squares fit. debug: Set to debug bad pixel removal. logger: Logger for debug messages; defaults to this module's logger. @@ -385,17 +466,28 @@ def background_gradient_fit( if num_sigma is None: break + num_sigma_f = float(num_sigma) + if num_sigma_f <= 0: + break - # TODO - BITO suggests: - # worst_sigma = np.max(np.abs(delta_img)) - # if worst_sigma >= sigma*num_sigma: - # image[np.abs(delta_img) >= sigma*num_sigma] = ma.masked gradient = PSF.background_gradient(shape, coeffts) delta_img = image - gradient - sigma = np.std(delta_img) - worst_sigma = np.max(np.abs(delta_img)) - if worst_sigma >= sigma * num_sigma: - image[np.abs(delta_img) >= worst_sigma] = ma.masked + sigma = ma.std(delta_img) + if ma.is_masked(sigma): + break + sigma_f = float(sigma) + if not np.isfinite(sigma_f) or sigma_f <= 0: + break + threshold = num_sigma_f * sigma_f + if debug: # pragma: no cover + fit_logger.debug( + 'Background gradient fit: residual std=%s max_abs=%s threshold=%s', + sigma_f, + float(ma.max(ma.abs(delta_img))), + threshold, + ) + outlier_mask = ma.filled(ma.abs(delta_img) >= threshold, False) + image[outlier_mask] = ma.masked new_num_bad_pixels = cast(int, ma.count_masked(image)) # type: ignore if debug: # pragma: no cover @@ -418,10 +510,15 @@ def background_gradient( """Create a background gradient. Parameters: - size: A tuple (size_y, size_x) indicating the size of the returned array. - bkgnd_params: A tuple indicating the coefficients of the background - polynomial. The order of the polynomial is inferred from the number of - elements in the tuple. + rect_size: ``(size_y, size_x)``, the shape of the output grid (height, width) + in pixels; must match the image shape used when the coefficients were fit. + bkgnd_params: Coefficients of the background polynomial (1-D array-like). The + polynomial order is inferred from the number of elements. + + Returns: + A :class:`numpy.ndarray` of ``dtype`` ``float64`` with shape ``rect_size`` + (i.e. ``(size_y, size_x)``): the evaluated 2-D background polynomial at each + pixel center of the grid. """ bkgnd_params = np.array(bkgnd_params) @@ -681,6 +778,33 @@ def _fit_psf_func( use_angular_params: bool, *additional_params: Any, ) -> float: + """Scalar objective for PSF fitting; minimized in :meth:`_find_position`. + + Evaluates :meth:`eval_rect` at the candidate parameters, subtracts the model from + ``sub_img``, and returns the Euclidean norm of the flattened residual (root sum + of squared differences). + + Parameters: + params: Optimizer vector: offset(s), scale, optional ``base`` (if + ``allow_nonzero_base``), then one value per extra PSF parameter. Meaning + depends on ``use_angular_params`` (angles vs direct values); see the + implementation. + sub_img: 2-D patch (same shape as the PSF grid); background should already be + subtracted by the caller when applicable. + search_limit: ``(limit_y, limit_x)`` centroid search half-ranges in pixels, + used when mapping ``params`` to offsets (see ``use_angular_params``). + scale_limit: Upper bound on PSF ``scale`` for :meth:`eval_rect`. + allow_nonzero_base: If ``True``, ``params`` includes a fitted constant + ``base`` passed to :meth:`eval_rect`; if ``False``, ``base`` is zero. + use_angular_params: If ``True``, map bounded angles to offsets, scale, extras, + and optional ``base``; if ``False``, ``params`` are physical values within + bounds set by the caller. + additional_params: Zero or more ``(lo, hi, name)`` tuples giving bounds and + keyword names for subclass-specific :meth:`eval_rect` arguments. + + Returns: + Non-negative float cost (lower is better). + """ # Make an offset of "0" be the center of the pixel (0.5, 0.5) if use_angular_params: @@ -758,6 +882,81 @@ def _find_position( allow_nonzero_base: bool, use_angular_params: bool, ) -> None | tuple[float, float, dict[str, Any]]: + """Fit PSF position and shape on a fixed subimage via bounded Powell optimization. + + This is the inner numerical core for :meth:`find_position`: it subtracts an + optional polynomial background, then runs :func:`scipy.optimize.minimize` (Powell) + on the scalar objective from :meth:`_fit_psf_func` (root-sum-square residual + between data and model). + + Parameters: + sub_img: Cropped 2-D image (float), same shape as the PSF evaluation patch. + May be a :class:`numpy.ma.MaskedArray`; the background fit omits masked + pixels, and masked entries do not contribute to the scalar objective in + :meth:`_fit_psf_func` (masked squared residuals are excluded from the + sum). + search_limit: ``(limit_y, limit_x)`` maximum search half-range for subpixel + offsets, in **pixels**, relative to the subimage. With + ``use_angular_params`` True, offsets map from bounded angles via cosine + (see implementation); with False, ``offset_*`` are bounded directly by + these limits. + scale_limit: Upper bound on PSF ``scale`` passed to :meth:`eval_rect` (same + units as that method). The lower bound is a small positive value enforced + inside :meth:`_fit_psf_func`. + bkgnd_degree: If ``None``, no background is fit and ``gradient`` is all zeros. + If an int, polynomial order for :meth:`background_gradient_fit` on + ``sub_img`` before PSF optimization. + bkgnd_ignore_center: ``(ny, nx)`` passed to :meth:`background_gradient_fit` as + ``ignore_center``: a centered block of size ``(2*ny+1, 2*nx+1)`` is masked + out of the background fit. Ignored when ``bkgnd_degree`` is ``None``. + bkgnd_num_sigma: Optional outlier rejection for the background fit (sigma + threshold); ``None`` disables. Only used when ``bkgnd_degree`` is not + ``None``. + tolerance: Passed to :func:`scipy.optimize.minimize` as ``tol`` (Powell + stopping tolerance for both parameter and objective changes, per SciPy). + allow_nonzero_base: If ``True``, the PSF constant ``base`` in + :meth:`eval_rect` is a free parameter; if ``False``, ``base`` is fixed at + zero and only amplitude scaling applies. + use_angular_params: If ``True``, optimize offsets, scale, optional base, and + additional parameters via angles in ``[0, pi]`` so box constraints map to + physical ranges. If ``False``, use direct bounded parameters (offsets + within ``search_limit``, etc.). + + Returns: + ``None`` if the background fit fails (:meth:`background_gradient_fit` returns + ``None``) or if the optimizer reports failure (``success`` is False). + + Otherwise ``(offset_y, offset_x, details)``: subpixel offsets within the + subimage in pixel units (**y first, then x**), matching ``details['y']`` and + ``details['x']``. The caller adds integer slice origins to map to full-image + coordinates. + + ``details`` is a :class:`dict` that always includes at least: + + - ``'y'``, ``'x'``: fitted offsets (float). + - ``'scale'``, ``'base'``: fitted PSF scale and baseline. + - ``'subimg'``: reference to the input ``sub_img``. + - ``'bkgnd_params'``: 1-D coefficient array from the background fit, or + ``None`` if ``bkgnd_degree`` was ``None``. + - ``'bkgnd_mask'``: boolean mask from background fitting, or ``None`` if no + background fit. + - ``'gradient'``: evaluated background surface (zeros if no background fit). + - ``'subimg-gradient'``: ``sub_img - gradient`` (used for residuals). + - ``'psf'``, ``'scaled_psf'``: model patch from :meth:`eval_rect` at the + solution; identical arrays (``scaled_psf`` supports comparison to + ``subimg-gradient`` in the outer :meth:`find_position` loop). + + Subclasses append one entry per additional PSF parameter (for example + ``'sigma_y'`` and ``'sigma_x'`` for :class:`~psfmodel.gaussian.GaussianPSF`), + using the internal names from ``_additional_params``. + + Note: + Optimizer ``status``, ``message``, and the final objective value are not + stored in ``details``; with instance ``detailed_logging`` they may appear in + DEBUG logs. Uncertainty keys (``'x_err'``, etc.) and least-squares metadata + described on :meth:`find_position` are not populated by the current + implementation. + """ bkgnd_params = None bkgnd_mask = None @@ -797,7 +996,7 @@ def _find_position( ] starting_guess = [0.001, 0.001, scale_limit / 2] if allow_nonzero_base: - bounds += [(-1e38, 1e38)] + bounds += [(_FIT_PSF_BASE_BOUND_MIN, _FIT_PSF_BASE_BOUND_MAX)] starting_guess += [0.001] for a_min, a_max, _a_name in self._additional_params: bounds += [(a_min, a_max)] @@ -949,7 +1148,7 @@ def _find_position( if bkgnd_mask is not None: self._logger.debug( '_find_position: bkgnd_mask bad pixels=%s', - int(np.sum(ma.getmaskarray(bkgnd_mask))), + int(np.sum(bkgnd_mask)), ) self._logger.debug('_find_position: PSF scale=%s base=%s', scale, base) for key in addl_vals_dict: diff --git a/tests/test_gaussian.py b/tests/test_gaussian.py index 95a641c..cabccc7 100644 --- a/tests/test_gaussian.py +++ b/tests/test_gaussian.py @@ -160,9 +160,7 @@ def test_gaussian_integral_1d() -> None: g_0_1 = integrate.quad(GaussianPSF.gaussian_1d, 0.0, 1.0)[0] g_n1_1 = integrate.quad(GaussianPSF.gaussian_1d, -1.0, 1.0)[0] - assert GaussianPSF.gaussian_integral_1d(0.0, 1.0) == pytest.approx( - integrate.quad(GaussianPSF.gaussian_1d, 0.0, 1.0)[0] - ) + assert GaussianPSF.gaussian_integral_1d(0.0, 1.0) == pytest.approx(g_0_1) assert GaussianPSF.gaussian_integral_1d(-1.0, 1.0) == pytest.approx(g_n1_1) assert GaussianPSF.gaussian_integral_1d(-1.0, 1.0, mean=2.0) == pytest.approx( integrate.quad(GaussianPSF.gaussian_1d, 1.0, 3.0)[0] @@ -386,6 +384,14 @@ def test_gaussian_init_angle_subsample_rejects_non_int() -> None: assert str(exc_info.value) == 'angle_subsample must be an int between 1 and 99, got 1.5' +def test_gaussian_init_angle_none_registers_floating_angle() -> None: + """Passing ``angle=None`` leaves rotation unset and adds it to the fit parameter list.""" + + psf = GaussianPSF(sigma=(1.0, 1.0), angle=None, angle_subsample=3) + assert psf._angle is None + assert ('angle',) in {(t[2],) for t in psf._additional_params} + + @pytest.mark.parametrize('use_angular_params', [True, False]) @pytest.mark.parametrize('bkgnd_degree', [None, 0, 1, 2]) def test_gaussian_find_position( From 9c2c303757dc6e51d795761d372afa4f9e391857 Mon Sep 17 00:00:00 2001 From: Robert French Date: Sun, 12 Apr 2026 22:04:54 -0700 Subject: [PATCH 05/17] Fitting characterization --- README.md | 4 +- docs/characterize_gauss_fit.md | 628 ++++++++++++++++++ docs/index.rst | 2 + docs/psf_gui.md | 61 ++ pyproject.toml | 18 +- scripts/run-all-checks.sh | 40 +- src/characterize_gauss_fit/__init__.py | 15 + src/characterize_gauss_fit/__main__.py | 9 + src/characterize_gauss_fit/_study_utils.py | 274 ++++++++ src/characterize_gauss_fit/config.py | 585 ++++++++++++++++ src/characterize_gauss_fit/defaults.yaml | 189 ++++++ src/characterize_gauss_fit/executor.py | 111 ++++ src/characterize_gauss_fit/main.py | 248 +++++++ src/characterize_gauss_fit/output.py | 309 +++++++++ src/characterize_gauss_fit/plotting.py | 426 ++++++++++++ .../study_background.py | 227 +++++++ src/characterize_gauss_fit/study_box_sigma.py | 198 ++++++ .../study_constraints.py | 268 ++++++++ .../study_hot_pixels.py | 201 ++++++ .../study_min_offset.py | 277 ++++++++ src/characterize_gauss_fit/study_noise.py | 196 ++++++ src/characterize_gauss_fit/study_offset.py | 215 ++++++ src/characterize_gauss_fit/study_shape.py | 189 ++++++ src/characterize_gauss_fit/test_config.yaml | 109 +++ src/characterize_gauss_fit/trial.py | 403 +++++++++++ src/psfmodel/gaussian.py | 64 +- 26 files changed, 5228 insertions(+), 38 deletions(-) create mode 100644 docs/characterize_gauss_fit.md create mode 100644 docs/psf_gui.md create mode 100644 src/characterize_gauss_fit/__init__.py create mode 100644 src/characterize_gauss_fit/__main__.py create mode 100644 src/characterize_gauss_fit/_study_utils.py create mode 100644 src/characterize_gauss_fit/config.py create mode 100644 src/characterize_gauss_fit/defaults.yaml create mode 100644 src/characterize_gauss_fit/executor.py create mode 100644 src/characterize_gauss_fit/main.py create mode 100644 src/characterize_gauss_fit/output.py create mode 100644 src/characterize_gauss_fit/plotting.py create mode 100644 src/characterize_gauss_fit/study_background.py create mode 100644 src/characterize_gauss_fit/study_box_sigma.py create mode 100644 src/characterize_gauss_fit/study_constraints.py create mode 100644 src/characterize_gauss_fit/study_hot_pixels.py create mode 100644 src/characterize_gauss_fit/study_min_offset.py create mode 100644 src/characterize_gauss_fit/study_noise.py create mode 100644 src/characterize_gauss_fit/study_offset.py create mode 100644 src/characterize_gauss_fit/study_shape.py create mode 100644 src/characterize_gauss_fit/test_config.yaml create mode 100644 src/characterize_gauss_fit/trial.py diff --git a/README.md b/README.md index c5ba414..cc86d3f 100644 --- a/README.md +++ b/README.md @@ -49,7 +49,9 @@ pip install rms-psfmodel Details of each class are available in the [module documentation](https://rms-psfmodel.readthedocs.io/en/latest/module.html). -After installation, an optional Tkinter-based PSF explorer is available as the `psf-gui` command (or `python -m psf_gui` with `src` on `PYTHONPATH`). It requires a working Tcl/Tk (for example the `python3-tk` package on Debian/Ubuntu). +After installation, an optional Tkinter-based PSF explorer is available as the `psf_gui` command (or `python -m psf_gui` with `src` on `PYTHONPATH`). It requires a working Tcl/Tk (for example the `python3-tk` package on Debian/Ubuntu). + +A characterization tool that systematically measures Gaussian PSF fitting accuracy across a wide parameter space is available as the `characterize_gauss_fit` command. Install the extra dependencies with `pip install rms-psfmodel[characterize]`. # Contributing diff --git a/docs/characterize_gauss_fit.md b/docs/characterize_gauss_fit.md new file mode 100644 index 0000000..a202a5f --- /dev/null +++ b/docs/characterize_gauss_fit.md @@ -0,0 +1,628 @@ +# `characterize_gauss_fit` -- PSF Fitting Characterization Tool + +## Overview + +`characterize_gauss_fit` is a standalone command-line program that +systematically measures the accuracy of the Gaussian PSF fitter across a +large, configurable parameter space. It generates synthetic PSF images with +known ground-truth parameters, fits them, and reports how closely the fitter +recovers position, sigma, angle, and scale. + +Eight focused *studies* each vary a small set of parameters while holding +others fixed. Every study produces: + +- **PNG plots** for visual inspection (heatmaps, line plots with error bands, + grouped bar charts). +- **`trials.csv`** -- one row per trial with all input parameters and all + result metrics, loadable by pandas or any data-analysis tool. +- **`summary.json`** -- aggregate statistics per parameter group plus the + exact configuration used, formatted for AI-assisted analysis. + +## Installation + +Install the extra dependencies required by this tool: + +```sh +pip install rms-psfmodel[characterize] +``` + +This adds `matplotlib` and `pyyaml` to your environment. + +## Quick Start + +Run all studies with default settings: + +```sh +characterize_gauss_fit +``` + +Run a quick smoke test across all studies using the bundled reduced-grid +configuration (completes in roughly 30--120 seconds): + +```sh +characterize_gauss_fit --config src/characterize_gauss_fit/test_config.yaml +``` + +Run a single study: + +```sh +characterize_gauss_fit --study box_vs_sigma +``` + +Run with a custom override file and parallel workers: + +```sh +characterize_gauss_fit --config my_config.yaml --num-workers 8 +``` + +List all available study names: + +```sh +characterize_gauss_fit --list-studies +``` + +Copy the built-in default configuration to a local file for editing: + +```sh +characterize_gauss_fit --copy-default-config-to my_config.yaml +``` + +Copy the built-in reduced-grid test configuration to a local file: + +```sh +characterize_gauss_fit --copy-test-config-to test_config.yaml +``` + +## CLI Reference + +``` +usage: characterize_gauss_fit [--config FILE] [--study NAME] [--output-dir DIR] + [--num-workers N] [--list-studies] + [--copy-default-config-to FILE] + [--copy-test-config-to FILE] [--verbose] + +Options: + --config FILE Path to a YAML override file merged onto + built-in defaults. + --study NAME Run only this study (repeatable). Default: all + enabled studies. Use --list-studies to see names. + --output-dir DIR Override the output directory from the config + file. + --num-workers N Number of parallel worker processes. 1 (default) + runs sequentially in the main process. >1 uses + concurrent.futures.ProcessPoolExecutor. + --list-studies Print available study names and exit. + --copy-default-config-to FILE + Write the built-in default configuration to FILE + and exit. No studies are run. + --copy-test-config-to FILE Write the built-in reduced-grid test + configuration to FILE and exit. No studies are + run. + --verbose, -v Enable DEBUG-level logging. +``` + +Exit code is 0 on success. Exit code 1 if any study raises an unhandled +exception; individual trial failures (fitter non-convergence) are not fatal +and are recorded as data. + +## Configuration Reference + +All parameters have built-in defaults. You can override any subset by +providing a YAML file with `--config`. The file is deep-merged onto the +defaults: scalar values and lists replace the default; nested dicts are +merged recursively. + +### Top-level keys + +| Key | Type | Default | Description | +|-----|------|---------|-------------| +| `output_dir` | string (path) | `./gauss_fit_results` | Root directory for all output files. | +| `num_workers` | int | `1` | Worker processes for parallel execution. | +| `noise_samples` | int | `50` | Default noise realisations for stochastic studies. | + +### `fitting` section + +Global defaults passed to `PSF.find_position`. Any study section may include +a `fitting` subsection to override these for that study only. + +| Key | Type | Default | Description | +|-----|------|---------|-------------| +| `bkgnd_degree` | int or null | `2` | Polynomial degree for background fitting. `null` = no background subtraction. | +| `bkgnd_ignore_center` | [int, int] | `[2, 2]` | Half-size of central region excluded from background fit (rows, cols). The excluded region is `(2*ny+1) x (2*nx+1)`. | +| `bkgnd_num_sigma` | float or null | `null` | Sigma-clipping threshold for background residuals. `null` = disabled. | +| `num_sigma` | float or null | `null` | Sigma-clipping threshold for PSF residuals (bad-pixel rejection). `null` = disabled. | +| `max_bad_frac` | float | `0.2` | Maximum fraction of pixels that can be masked before the fit is abandoned. | +| `allow_nonzero_base` | bool | `false` | Fit a constant base level in addition to the polynomial background. | +| `use_angular_params` | bool | `true` | Reparametrise fit variables as angles for bounded optimisation. | +| `tolerance` | float | `1e-6` | Powell optimiser convergence tolerance. | +| `search_limit` | [float, float] | `[1.5, 1.5]` | Maximum allowed position offset from the starting point [y, x] in pixels. | +| `scale_limit` | float | `1000.0` | Maximum allowed PSF amplitude scale factor. | + +### `generation` section + +Controls the synthetic PSF image generator. + +| Key | Type | Default | Description | +|-----|------|---------|-------------| +| `scale` | float | `1.5` | PSF amplitude scale factor applied to the normalised Gaussian. | +| `base` | float | `0.0` | Additive base level on the clean PSF before background injection. | + +### `studies` section + +Each study has an `enabled` flag and its own parameter set. Per-study +`fitting` subsections override the global defaults for that study only. + +--- + +#### `box_vs_sigma` + +Study 1: How box size relative to PSF sigma affects fitting accuracy. + +| Key | Type | Default | Description | +|-----|------|---------|-------------| +| `enabled` | bool | `true` | Enable/disable this study. | +| `box_sizes` | list[int] | `[5,7,9,11,13,17,21,25,31]` | Odd box sizes to test. Each must be >= 5. | +| `sigmas` | list[float] | `[0.3,0.5,0.8,1.0,1.5,2.0,3.0,5.0]` | Symmetric PSF sigma values (pixels). | +| `offset` | [float, float] | `[0.25, 0.25]` | Sub-pixel offset [y, x] applied to the PSF centre. | +| `angle` | float | `0.0` | PSF rotation angle (radians). | +| `scale` | float | `1.0` | PSF amplitude scale factor (overrides `generation.scale`). | +| `fitting` | dict | `{bkgnd_degree: null}` | Per-study fitting overrides. | + +--- + +#### `subpixel_offset` + +Study 2: How fractional pixel position introduces systematic bias. + +| Key | Type | Default | Description | +|-----|------|---------|-------------| +| `enabled` | bool | `true` | Enable/disable this study. | +| `offset_steps` | int | `11` | Number of evenly-spaced steps in each axis. | +| `offset_range` | [float, float] | `[0.0, 0.5]` | Range of offset values. Values outside [0, 0.5] are redundant by symmetry. | +| `sigmas` | list[float] | `[0.5, 1.0, 2.0]` | Sigma values used as a panel variable. | +| `box_size` | int | `21` | Fixed box size. | +| `angle` | float | `0.0` | Fixed PSF angle. | +| `fitting` | dict | `{bkgnd_degree: null}` | Per-study fitting overrides. | + +--- + +#### `min_detectable_offset` + +Study 3: Minimum offset delta reliably recoverable vs. PSF sigma and noise. + +| Key | Type | Default | Description | +|-----|------|---------|-------------| +| `enabled` | bool | `true` | Enable/disable this study. | +| `delta_offsets` | list[float] | `[0.001,...,0.5]` | Offset deltas to test (pixels). | +| `sigmas` | list[float] | `[0.3,...,3.0]` | Symmetric sigma values. | +| `box_size` | int | `21` | Fixed box size. | +| `noise_samples` | int | `50` | Noise realisations per stochastic condition. | +| `snr_values` | list[float] | `[50.0, 100.0, 500.0]` | SNR values (peak / noise RMS) to test. | +| `include_noiseless` | bool | `true` | Also run a noiseless trial (numerical precision floor). | +| `fitting` | dict | `{bkgnd_degree: null}` | Per-study fitting overrides. | + +--- + +#### `sigma_asymmetry_angle` + +Study 4: Sigma asymmetry and angle recovery for elongated, rotated PSFs. + +| Key | Type | Default | Description | +|-----|------|---------|-------------| +| `enabled` | bool | `true` | Enable/disable this study. | +| `sigma_ratios` | list[float] | `[0.25,...,4.0]` | Ratios sigma_y / sigma_x. | +| `angle_steps` | int | `13` | Evenly-spaced angles from 0 to pi (inclusive). Must be >= 2. | +| `sigma_x_values` | list[float] | `[0.5, 1.0, 2.0]` | sigma_x values (panel variable). | +| `box_size` | int | `25` | Fixed box size. | +| `offset` | [float, float] | `[0.25, 0.25]` | Fixed sub-pixel offset. | +| `fitting` | dict | `{bkgnd_degree: null}` | Per-study fitting overrides. | + +--- + +#### `constraint_modes` + +Study 5: Effect of fixing vs. floating sigma/angle on all output metrics. + +| Key | Type | Default | Description | +|-----|------|---------|-------------| +| `enabled` | bool | `true` | Enable/disable this study. | +| `sigma_error_fractions` | list[float] | `[0.0, 0.2, 0.5]` | Fractional errors applied to sigma when fixed. 0.0 = correct value; 0.2 = fixed at 1.2x true. | +| `angle_error_rad` | float | `0.3` | Absolute angle error (radians) when angle is fixed incorrectly. | +| `psf_shapes` | list[{sigma: [y,x], angle: rad}] | 3 shapes | PSF shapes to test. Each entry must have `sigma` (list of two floats) and `angle` (float in [0, pi]). | +| `box_size` | int | `21` | Fixed box size. | +| `offset` | [float, float] | `[0.25, 0.25]` | Fixed sub-pixel offset. | +| `scale` | float | `1.5` | PSF amplitude scale factor. | + +--- + +#### `background` + +Study 6: How injected background and fitting model choice interact. + +| Key | Type | Default | Description | +|-----|------|---------|-------------| +| `enabled` | bool | `true` | Enable/disable this study. | +| `background_amplitudes` | list[float] | `[0.01, 0.1, 0.5]` | Background amplitude as fraction of PSF peak. | +| `bkgnd_degrees` | list[int] | `[0, 1, 2]` | Polynomial degrees to use when fitting the background. | +| `bkgnd_degrees_with_null` | bool | `true` | Also test `bkgnd_degree=null` (no fitting). | +| `bkgnd_ignore_centers` | list[[int,int]] | `[[1,1],[2,2],[4,4]]` | `bkgnd_ignore_center` values to test. | +| `background_types` | list[str] | `[none,constant,linear,quadratic,noisy_constant]` | Background types to inject. | +| `box_size` | int | `21` | Fixed box size. | +| `sigma` | [float, float] | `[1.0, 1.0]` | Fixed PSF sigma [y, x]. | +| `offset` | [float, float] | `[0.25, 0.25]` | Fixed sub-pixel offset. | + +Valid `background_types` values: + +| Value | Description | +|-------|-------------| +| `none` | No background injected. | +| `constant` | Flat pedestal at `amplitude * PSF_peak`. | +| `linear` | Tilted plane (linear gradient). | +| `quadratic` | Bowl-shaped quadratic surface. | +| `noisy_constant` | Flat pedestal plus Gaussian noise at 0.5x the main noise level. | + +--- + +#### `noise_sensitivity` + +Study 7: Position, sigma, and scale accuracy as a function of SNR. + +| Key | Type | Default | Description | +|-----|------|---------|-------------| +| `enabled` | bool | `true` | Enable/disable this study. | +| `snr_log_range` | [float, float] | `[0.5, 3.5]` | Log10 range for SNR (min, max). | +| `snr_steps` | int | `15` | Number of log-spaced SNR points. | +| `sigmas` | list[float] | `[0.5, 1.0, 2.0]` | Sigma values (panel variable). | +| `noise_samples` | int | `50` | Noise realisations per (SNR, sigma) point. | +| `box_size` | int | `21` | Fixed box size. | + +--- + +#### `hot_pixel_rejection` + +Study 8: Effectiveness of `num_sigma` bad-pixel rejection. + +| Key | Type | Default | Description | +|-----|------|---------|-------------| +| `enabled` | bool | `true` | Enable/disable this study. | +| `num_hot_pixels` | list[int] | `[0,1,3,5,10]` | Number of hot pixels to inject. | +| `num_sigma_values` | list[float] | `[2.0, 3.0, 5.0]` | `num_sigma` rejection thresholds to test. | +| `num_sigma_with_null` | bool | `true` | Also test `num_sigma=null` (rejection disabled). | +| `hot_amplitudes` | list[float] | `[5.0, 20.0, 100.0]` | Hot pixel amplitude as multiple of PSF peak. | +| `noise_samples` | int | `20` | Noise realisations per combination (hot pixel positions randomised). | +| `snr` | float | `100.0` | Background Gaussian noise SNR (peak / noise RMS). | +| `box_size` | int | `21` | Fixed box size. | +| `sigma` | [float, float] | `[1.0, 1.0]` | Fixed PSF sigma [y, x]. | +| `offset` | [float, float] | `[0.25, 0.25]` | Fixed sub-pixel offset. | + +--- + +## Output Format Reference + +Each study writes its results to `{output_dir}/{study_name}/`. + +### `trials.csv` + +One row per trial. Columns: + +| Column | Description | +|--------|-------------| +| `study` | Study name string. | +| `box_size` | Subimage side length (pixels). | +| `sigma_y_true`, `sigma_x_true` | True PSF sigma values. | +| `angle_true` | True rotation angle (radians). | +| `offset_y_true`, `offset_x_true` | True sub-pixel offset. | +| `scale_true` | True amplitude scale factor. | +| `fit_sigma_y`, `fit_sigma_x` | Value sigma was fixed to (empty = floated). | +| `fit_angle` | Value angle was fixed to (empty = floated). | +| `background_type` | Injected background type string. | +| `background_amplitude` | Injected background amplitude (fraction of peak). | +| `noise_rms` | Additive Gaussian noise standard deviation. | +| `num_hot_pixels` | Number of hot pixels injected. | +| `hot_pixel_amplitude` | Hot pixel amplitude (multiple of PSF peak). | +| `bkgnd_degree` | Background fitting polynomial degree (empty = null). | +| `num_sigma` | Bad-pixel rejection threshold (empty = null). | +| `bkgnd_ignore_center_y`, `bkgnd_ignore_center_x` | Ignore-center half-sizes. | +| `converged` | `true` or `false`. | +| `pos_err_y`, `pos_err_x` | Signed position errors (fitted - true). | +| `pos_err` | Euclidean position error. | +| `sigma_y_fit`, `sigma_x_fit` | Fitted sigma values (empty if fixed). | +| `angle_fit` | Fitted angle (empty if fixed). | +| `scale_fit` | Fitted scale factor. | +| `sigma_y_err`, `sigma_x_err` | Relative sigma errors (fit - true) / true. | +| `angle_err` | Absolute angle error in radians. | +| `scale_err` | Relative scale error (fit - true) / true. | + +**Conventions:** +- Non-applicable fields are empty strings (e.g. `sigma_y_fit` when sigma was fixed). +- Failed / non-converged trials have `NaN` for all error fields. +- Load with `pandas.read_csv(..., na_values=['NaN', ''])`. + +### `summary.json` + +```json +{ + "study": "box_vs_sigma", + "total_trials": 72, + "converged_trials": 68, + "convergence_rate": 0.944, + "overall": { ... aggregate stats ... }, + "groups": [ + { + "box_size": 5, + "sigma": 0.3, + "n_trials": 1, + "n_converged": 1, + "convergence_rate": 1.0, + "pos_err_mean": 0.00123, + "pos_err_std": null, + "sigma_y_err_mean": 0.005, + "scale_err_mean": 0.002, + "angle_err_mean": null + } + ], + "config_used": { ... full config dict ... } +} +``` + +`null` in JSON corresponds to `None` in Python (not enough data to compute, +or metric not applicable). The `config_used` field contains the exact +configuration that produced these results for full reproducibility. + +### AI / automated analysis + +To load all studies for analysis: + +```python +import json +import pathlib +import pandas as pd + +results_dir = pathlib.Path('./gauss_fit_results') +dfs = [] +for csv_file in results_dir.glob('*/trials.csv'): + dfs.append(pd.read_csv(csv_file, na_values=['NaN', ''])) +all_results = pd.concat(dfs, ignore_index=True) +``` + +--- + +## Study Descriptions + +### Study 1: Box Size vs. Sigma (`box_vs_sigma`) + +**Question:** How large must the subimage be relative to the PSF width for +accurate fitting? + +Sweeps box size and PSF sigma on a 2-D grid. The PSF always fills the entire +image (`eval_rect` size == `box_size`). Background is disabled so only the +intrinsic truncation effect is measured. Sigma is left to float. + +**Key plots:** Heatmaps of log10(position error), log10(sigma error), and +log10(scale error) as functions of box size (rows) and sigma (columns). Cells +where the fitter did not converge are shown in grey. + +**Interpretation:** Expect a sharp accuracy cliff when +`box_size < 4 * sigma + 1`. Small sigmas are well-fitted even in tiny boxes; +large sigmas in small boxes truncate most of the PSF flux. + +--- + +### Study 2: Subpixel Offset (`subpixel_offset`) + +**Question:** Does the fractional pixel position of the PSF centre introduce +systematic bias? + +Sweeps offset_y and offset_x from 0 to 0.5 pixels in a grid. The range +[0, 0.5] is sufficient by symmetry. Three sigma panel values are tested. + +**Key plots:** 2-D heatmap of position error vs. (offset_y, offset_x) for +each sigma. Line plot of error vs. offset_x at fixed offset_y. + +**Interpretation:** The fitter may exhibit a small systematic oscillation at +the pixel-period scale due to aliasing. Very small sigmas show larger absolute +error because the PSF peak is narrower than a pixel. + +--- + +### Study 3: Minimum Detectable Offset (`min_detectable_offset`) + +**Question:** How small an offset delta can the fitter reliably recover as a +function of PSF size and noise? + +Tests a log-spaced grid of offset deltas, applied purely in the X direction, +for each (sigma, SNR) combination. Recovery fraction is defined as the fraction +of trials where `|pos_err| < delta/2` (within 50% of the true offset). + +**Key plots:** Log-log line plot of mean position error vs. delta for each +sigma (one panel per SNR). Recovery fraction heatmap (sigma vs. delta, one +plot per SNR level). + +**Interpretation:** The precision floor in the noiseless case reveals +numerical resolution limits. Noise raises the floor to approximately +`sigma / SNR`. Recovery fraction drops below 0.5 near the precision floor. + +--- + +### Study 4: Sigma Asymmetry and Angle (`sigma_asymmetry_angle`) + +**Question:** How well are elongated, rotated PSFs recovered? + +Sweeps sigma_ratio (sigma_y / sigma_x) and rotation angle for several sigma_x +values. All parameters float. For circular PSFs (ratio ~= 1.0), angle is +degenerate and angle error is not meaningful -- those cells show NaN. + +**Key plots:** Heatmaps of position error, angle error, and sigma_y error as +functions of (ratio, angle), one panel per sigma_x. + +**Interpretation:** Near-circular PSFs (ratio near 1) have degenerate angle; +the fitter can converge to any angle without affecting position accuracy. +Highly elongated PSFs at edge-case angles (0, pi/2, pi) may have increased +error due to the optimizer landscape. + +--- + +### Study 5: Constraint Modes (`constraint_modes`) + +**Question:** How does fixing vs. floating sigma and angle affect position, +scale, sigma, and angle accuracy? + +Tests eight constraint configurations on three PSF shapes. Reports all four +accuracy metrics. + +**Key plots:** 4-panel grouped bar chart: position error, relative scale +error, relative sigma_y error, and absolute angle error, grouped by PSF shape. + +**Interpretation:** Correctly fixing sigma reduces fitting degrees of freedom +and generally improves position accuracy at the cost of sigma recovery +information. Incorrectly fixed sigma can bias all metrics. Floating angle on +circular PSFs wastes degrees of freedom but rarely hurts position accuracy. + +--- + +### Study 6: Background Conditions (`background`) + +**Question:** How do injected background and fitting model choice interact? + +Combines five background types with four fitting-degree options and three +ignore-center sizes. + +**Key plots:** Heatmap matrix -- rows = injected background type, +columns = fitting degree. One heatmap per (amplitude, ignore-center) +combination. + +**Interpretation:** Fitting a constant background (degree 0) is generally +sufficient for constant injected backgrounds. Higher-degree backgrounds require +matching or higher fitting degrees. Using `bkgnd_degree=null` with any +non-zero background will show degraded accuracy. + +--- + +### Study 7: Noise Sensitivity (`noise_sensitivity`) + +**Question:** At what SNR does fitting accuracy degrade? + +Sweeps a log-spaced SNR range with multiple noise realisations per point. +Random offsets are used so position error reflects typical (not best-case) +accuracy. + +**Key plots:** Line plots with shaded ±1 std bands: position error, sigma_y +error, sigma_x error, and scale error vs. SNR (log scale). One line per sigma +panel value. + +**Interpretation:** All metrics improve roughly as 1/SNR in the noise-limited +regime. The saturation at high SNR reveals the floor set by optimizer +precision and pixel-integration discretisation. + +--- + +### Study 8: Hot Pixel Rejection (`hot_pixel_rejection`) + +**Question:** How effectively does `num_sigma` rejection handle hot pixels? + +Varies the number of hot pixels (0 to 10), their amplitude (5x to 100x peak), +and the `num_sigma` rejection threshold. Multiple noise realisations randomise +hot pixel positions. + +**Key plots:** Line plot per amplitude panel: X = number of hot pixels, +Y = mean position error, lines = `num_sigma` settings. + +**Interpretation:** `num_sigma=null` shows the baseline degradation from +unrejected hot pixels. Aggressive rejection (low `num_sigma`) can mask real +PSF pixels near the core. `num_sigma=3` is typically a good balance. + +--- + +## Bundled Test Configuration + +A reduced-grid configuration file named `test_config.yaml` ships alongside +`defaults.yaml` inside the package. It runs all eight studies with the +smallest viable parameter grids so the entire suite completes in roughly +30--120 seconds on a single core. Use it to verify all code paths execute +after code changes. + +### Obtaining the file + +Use the built-in copy command to write either bundled config to a local file: + +```sh +# Copy the full default configuration +characterize_gauss_fit --copy-default-config-to my_config.yaml + +# Copy the reduced-grid test configuration +characterize_gauss_fit --copy-test-config-to test_config.yaml +``` + +Both commands write the file and exit immediately — no studies are run. +The destination must not already exist; the command fails with an error if it +does. + +### Running the test suite + +```sh +characterize_gauss_fit --config test_config.yaml +``` + +Output is written to `./gauss_fit_test/` by default. + +### What it covers + +| Study | Grid size | Approx. trials | +|-------|-----------|----------------| +| `box_vs_sigma` | 2 box sizes x 3 sigmas | 6 | +| `subpixel_offset` | 3 x 3 offset grid, 1 sigma | 9 | +| `min_detectable_offset` | 3 deltas x 2 sigmas x 2 noise conditions x 3 samples | ~18 | +| `sigma_asymmetry_angle` | 3 ratios x 3 angles x 1 sigma_x | 9 | +| `constraint_modes` | 5 modes x 2 PSF shapes | ~18 | +| `background` | 2 background types x 2 fitting degrees | 4 | +| `noise_sensitivity` | 4 SNR points x 1 sigma x 3 samples | 12 | +| `hot_pixel_rejection` | 2 num_hot x 1 threshold x 1 amplitude x 3 samples | 12 | + +All parameters in `test_config.yaml` can themselves be overridden by a +further user config file. For example, to run only study 1 with the test +grid: + +```sh +characterize_gauss_fit --config test_config.yaml --study box_vs_sigma +``` + +--- + +## Example User Override File + +To override a subset of parameters on top of the defaults, create a YAML +file containing only the keys you want to change. The following example +runs two studies with custom grids: + +```yaml +output_dir: ./my_results + +studies: + box_vs_sigma: + box_sizes: [7, 11, 21] + sigmas: [0.5, 1.0, 2.0, 3.0] + + noise_sensitivity: + snr_steps: 10 + noise_samples: 20 + sigmas: [0.5, 1.0, 2.0] + + subpixel_offset: + enabled: false + min_detectable_offset: + enabled: false + sigma_asymmetry_angle: + enabled: false + constraint_modes: + enabled: false + background: + enabled: false + hot_pixel_rejection: + enabled: false +``` + +Run with: + +```sh +characterize_gauss_fit --config my_overrides.yaml +``` diff --git a/docs/index.rst b/docs/index.rst index 9449b5e..345d6e3 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -11,6 +11,8 @@ Welcome to the Documentation for rms-psfmodel! :maxdepth: 2 :caption: Contents: + psf_gui + characterize_gauss_fit contributing code_of_conduct module diff --git a/docs/psf_gui.md b/docs/psf_gui.md new file mode 100644 index 0000000..f90be1f --- /dev/null +++ b/docs/psf_gui.md @@ -0,0 +1,61 @@ +# `psf_gui` -- Interactive PSF Explorer + +## Overview + +`psf_gui` is an optional interactive desktop application for visually exploring +Gaussian PSF models and fitting results. It is built with Python's standard +Tkinter library and ships as part of the `rms-psfmodel` package. + +The GUI lets you interactively adjust PSF parameters (sigma, angle, offset, scale, +background) and immediately see the resulting pixel-integrated image alongside +the fitting residuals. It is intended as a diagnostic and educational tool rather +than a batch analysis tool; for systematic characterization use +`characterize_gauss_fit` instead. + +## Prerequisites + +`psf_gui` requires a working Tcl/Tk installation. On most systems this is +provided by the `python3-tk` package or equivalent: + +| Platform | Command | +|----------|---------| +| Debian / Ubuntu | `sudo apt install python3-tk` | +| Fedora / RHEL | `sudo dnf install python3-tkinter` | +| macOS (Homebrew Python) | Tk is bundled; no extra install needed | +| macOS (python.org installer) | Tk is bundled; no extra install needed | +| Windows | Tk is bundled with the official Python installer | + +Verify your installation by running: + +```sh +python -c "import tkinter; tkinter._test()" +``` + +A small test window should appear. + +## Running + +After installing `rms-psfmodel`, start the GUI with: + +```sh +psf_gui +``` + +Or, if the `src` directory is on `PYTHONPATH` (development mode): + +```sh +python -m psf_gui +``` + +## Features + +- **Real-time PSF rendering** -- adjusting any slider immediately re-renders + the pixel-integrated Gaussian patch. +- **Background subtraction** -- polynomial background fitting with configurable + degree and ignore-center region. +- **Noise simulation** -- add Gaussian noise to the synthetic PSF image and + observe the effect on fitting accuracy. +- **Residual display** -- view the difference between the fitted model and the + data after position optimisation. +- **Parameter readout** -- fitted position, sigma, angle, and scale are + displayed numerically alongside their true injected values. diff --git a/pyproject.toml b/pyproject.toml index cae04ee..83f2645 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -64,6 +64,7 @@ where = ["src"] [tool.setuptools.package-data] psfmodel = ["py.typed"] +characterize_gauss_fit = ["defaults.yaml", "test_config.yaml"] [tool.setuptools_scm] local_scheme = "no-local-version" @@ -90,9 +91,14 @@ docs = [ "sphinxcontrib-mermaid", "sphinx-rtd-theme", ] +characterize = [ + "matplotlib>=3.7", + "pyyaml>=6.0", +] [project.scripts] -psf-gui = "psf_gui.main:main" +psf_gui = "psf_gui.main:main" +characterize_gauss_fit = "characterize_gauss_fit.main:main" # Tool configuration @@ -100,7 +106,7 @@ psf-gui = "psf_gui.main:main" branch = true parallel = true source = ["psfmodel"] -omit = ["tests/*", "**/_version.py", "**/psfmodel/hst.py", "**/psf_gui/**"] +omit = ["tests/*", "**/_version.py", "**/psfmodel/hst.py", "**/psf_gui/**", "**/characterize_gauss_fit/**"] [tool.coverage.report] exclude_lines = [ @@ -132,6 +138,14 @@ ignore_missing_imports = true module = "scipy.*" ignore_missing_imports = true +[[tool.mypy.overrides]] +module = "matplotlib.*" +ignore_missing_imports = true + +[[tool.mypy.overrides]] +module = "yaml" +ignore_missing_imports = true + #[[tool.mypy.overrides]] # module = ["MODULENAME.*"] # ignore_missing_imports = true diff --git a/scripts/run-all-checks.sh b/scripts/run-all-checks.sh index 3cb11fd..3237fda 100755 --- a/scripts/run-all-checks.sh +++ b/scripts/run-all-checks.sh @@ -12,7 +12,8 @@ # Options: # -p, --parallel Run all requested checks in parallel (default) # -s, --sequential Run all requested checks sequentially -# -w, --pytest-workers N Pytest workers: auto (default), 1 (serial), or N +# -w, --pytest-workers N Override pytest -n: auto, 1 (serial), or N (default: +# use [tool.pytest.ini_options] addopts in pyproject.toml) # -c, --code Run all code checks (sets each RUN_* code flag true) # -d, --docs Run Sphinx and PyMarkdown (RUN_SPHINX, RUN_PYMARKDOWN) # -m, --markdown Run only PyMarkdown (RUN_PYMARKDOWN) @@ -74,7 +75,8 @@ RESET='\033[0m' # Default options PARALLEL=true -PYTEST_WORKERS=auto +PYTEST_WORKERS_SET=false +PYTEST_WORKERS= RUN_RUFF_CHECK=false RUN_RUFF_FORMAT=false RUN_MYPY=false @@ -198,10 +200,12 @@ while [[ $# -gt 0 ]]; do show_usage exit 1 fi + PYTEST_WORKERS_SET=true PYTEST_WORKERS="$2" shift 2 ;; --pytest-workers=*) + PYTEST_WORKERS_SET=true PYTEST_WORKERS="${1#*=}" shift ;; @@ -307,7 +311,11 @@ else print_info "Running checks in SEQUENTIAL mode" fi if [ "$RUN_PYTEST" = true ] && [ "$ENABLE_PYTEST" = true ]; then - print_info "Pytest workers: $PYTEST_WORKERS" + if [ "$PYTEST_WORKERS_SET" = true ]; then + print_info "Pytest -n override: $PYTEST_WORKERS" + else + print_info "Pytest -n: from pyproject.toml (no -w override)" + fi fi # True if at least one code check is both selected (RUN_*) and enabled (ENABLE_*). @@ -385,17 +393,29 @@ run_code_checks() { fi fi - # -n controls parallelism; --dist loadscope keeps each test module on one + # Pass -n only when -w/--pytest-workers is set; otherwise addopts in + # pyproject.toml supply -n. --dist loadscope keeps each test module on one # worker to avoid time-mocking and fixture-isolation interference. # Coverage (--cov=psfmodel) and strict options come from pyproject.toml addopts. if [ "$RUN_PYTEST" = true ] && [ "$ENABLE_PYTEST" = true ]; then - print_info "Running pytest (-n ${PYTEST_WORKERS})..." - if python -m pytest -q -n "$PYTEST_WORKERS" --dist loadscope tests; then - print_success "Pytest passed" + if [ "$PYTEST_WORKERS_SET" = true ]; then + print_info "Running pytest (-n ${PYTEST_WORKERS})..." + if python -m pytest -q -n "$PYTEST_WORKERS" --dist loadscope tests; then + print_success "Pytest passed" + else + print_error "Pytest failed" + failed=true + failed_checks="${failed_checks}Code - Pytest"$'\n' + fi else - print_error "Pytest failed" - failed=true - failed_checks="${failed_checks}Code - Pytest"$'\n' + print_info "Running pytest (parallelism from pyproject.toml)..." + if python -m pytest -q --dist loadscope tests; then + print_success "Pytest passed" + else + print_error "Pytest failed" + failed=true + failed_checks="${failed_checks}Code - Pytest"$'\n' + fi fi fi diff --git a/src/characterize_gauss_fit/__init__.py b/src/characterize_gauss_fit/__init__.py new file mode 100644 index 0000000..7713746 --- /dev/null +++ b/src/characterize_gauss_fit/__init__.py @@ -0,0 +1,15 @@ +################################################################################ +# characterize_gauss_fit/__init__.py +################################################################################ + +"""Characterization tool for Gaussian PSF fitting accuracy. + +This package systematically explores the input parameter space of the Gaussian +PSF fitter and produces plots and tabular data showing how fitting accuracy +depends on subimage size, subpixel offset, PSF shape, parameter constraints, +background conditions, noise, and bad pixel rejection. + +Entry point: ``characterize_gauss_fit`` command or ``python -m characterize_gauss_fit``. +""" + +__all__: list[str] = [] diff --git a/src/characterize_gauss_fit/__main__.py b/src/characterize_gauss_fit/__main__.py new file mode 100644 index 0000000..6d94e55 --- /dev/null +++ b/src/characterize_gauss_fit/__main__.py @@ -0,0 +1,9 @@ +################################################################################ +# characterize_gauss_fit/__main__.py +################################################################################ + +"""Entry point for ``python -m characterize_gauss_fit``.""" + +from characterize_gauss_fit.main import main + +main() diff --git a/src/characterize_gauss_fit/_study_utils.py b/src/characterize_gauss_fit/_study_utils.py new file mode 100644 index 0000000..d5a30af --- /dev/null +++ b/src/characterize_gauss_fit/_study_utils.py @@ -0,0 +1,274 @@ +################################################################################ +# characterize_gauss_fit/_study_utils.py +################################################################################ + +"""Shared utilities for study modules in characterize_gauss_fit. + +Not part of the public API; prefixed with ``_`` to indicate internal use. +""" + +from __future__ import annotations + +import math +import pathlib +import sys +from typing import Any + +import numpy as np +import numpy.typing as npt + +from characterize_gauss_fit.config import FittingConfig +from characterize_gauss_fit.trial import ( + BACKGROUND_TYPE_NONE, + TrialResult, + TrialSpec, +) + + +def make_spec( + *, + sigma_y: float, + sigma_x: float, + angle: float, + offset_y: float, + offset_x: float, + scale: float, + base: float, + box_size: int, + fitting: FittingConfig, + fit_sigma_y: float | None = None, + fit_sigma_x: float | None = None, + fit_angle: float | None = None, + background_type: str = BACKGROUND_TYPE_NONE, + background_amplitude: float = 0.0, + noise_rms: float = 0.0, + hot_pixel_count: int = 0, + hot_pixel_amplitude: float = 0.0, + rng_seed: int = 0, +) -> TrialSpec: + """Construct a :class:`~trial.TrialSpec` from explicit keyword arguments. + + Fills in all fields, pulling fitting parameters from the provided + :class:`~config.FittingConfig`. Study modules call this helper to avoid + repeating the long field list. + + Parameters: + sigma_y: True PSF sigma in the Y direction (pixels). + sigma_x: True PSF sigma in the X direction (pixels). + angle: True PSF rotation angle (radians). + offset_y: Sub-pixel offset of the PSF centre from the image centre (Y). + offset_x: Sub-pixel offset of the PSF centre from the image centre (X). + scale: PSF amplitude scale factor. + base: Additive base level on the clean PSF image. + box_size: Side length of the square image patch (must be odd). + fitting: Fitting configuration for this trial. + fit_sigma_y: Fixed fitter sigma_y (``None`` = float during fitting). + fit_sigma_x: Fixed fitter sigma_x (``None`` = float during fitting). + fit_angle: Fixed fitter angle (``None`` = float during fitting). + background_type: Type of injected background. + background_amplitude: Background amplitude as fraction of PSF peak. + noise_rms: Additive Gaussian noise standard deviation. + hot_pixel_count: Number of hot pixels to inject. + hot_pixel_amplitude: Hot pixel amplitude as a multiple of PSF peak. + rng_seed: Seed for the NumPy random number generator. + + Returns: + A fully populated :class:`~trial.TrialSpec`. + """ + return TrialSpec( + sigma_y=sigma_y, + sigma_x=sigma_x, + angle=angle, + offset_y=offset_y, + offset_x=offset_x, + scale=scale, + base=base, + box_size=box_size, + fit_sigma_y=fit_sigma_y, + fit_sigma_x=fit_sigma_x, + fit_angle=fit_angle, + background_type=background_type, + background_amplitude=background_amplitude, + noise_rms=noise_rms, + hot_pixel_count=hot_pixel_count, + hot_pixel_amplitude=hot_pixel_amplitude, + bkgnd_degree=fitting.bkgnd_degree, + bkgnd_ignore_center=fitting.bkgnd_ignore_center, + bkgnd_num_sigma=fitting.bkgnd_num_sigma, + num_sigma=fitting.num_sigma, + max_bad_frac=fitting.max_bad_frac, + allow_nonzero_base=fitting.allow_nonzero_base, + use_angular_params=fitting.use_angular_params, + tolerance=fitting.tolerance, + search_limit=fitting.search_limit, + scale_limit=fitting.scale_limit, + rng_seed=rng_seed, + ) + + +def progress_callback(study_name: str) -> Any: + """Return a progress-printing callback for the executor. + + The returned callable prints a single updating line to stderr showing + completed / total trial counts. + + Parameters: + study_name: Name of the running study (included in the output line). + + Returns: + A ``Callable[[int, int], None]`` suitable for + :func:`~executor.run_trials`. + """ + + def _callback(completed: int, total: int) -> None: + pct = 100 * completed // total + print( + f'\r {study_name}: {completed}/{total} trials ({pct}%) ', + end='', + flush=True, + file=sys.stderr, + ) + if completed == total: + print(file=sys.stderr) + + return _callback + + +def collect_metric( + results: list[TrialResult], + metric: str, +) -> npt.NDArray[np.float64]: + """Extract a named metric from a list of results as a float array. + + Unconverged trials produce NaN for all metrics. + + Parameters: + results: List of :class:`~trial.TrialResult` objects. + metric: Name of the :class:`~trial.TrialResult` field to extract. + + Returns: + A 1-D float64 array of length ``len(results)``. + + Raises: + AttributeError: If ``metric`` is not a field of :class:`~trial.TrialResult`. + """ + values: list[float] = [] + for r in results: + val = getattr(r, metric) + if val is None: + values.append(float('nan')) + else: + values.append(float(val)) + return np.array(values, dtype=np.float64) + + +def safe_nanmean(arr: npt.NDArray[np.float64]) -> float: + """Return the nanmean of ``arr``, or NaN if all values are NaN. + + Parameters: + arr: Input float array. + + Returns: + The mean of finite values, or ``float('nan')`` if none are finite. + """ + finite = arr[np.isfinite(arr)] + if len(finite) == 0: + return float('nan') + return float(np.mean(finite)) + + +def safe_nanstd(arr: npt.NDArray[np.float64]) -> float: + """Return the nanstd (ddof=1) of ``arr``, or NaN if fewer than 2 finite values. + + Parameters: + arr: Input float array. + + Returns: + The standard deviation of finite values, or ``float('nan')`` if too few. + """ + finite = arr[np.isfinite(arr)] + if len(finite) < 2: + return float('nan') + return float(np.std(finite, ddof=1)) + + +def build_groups_by_keys( + specs: list[TrialSpec], + results: list[TrialResult], + key_funcs: list[Any], +) -> list[dict[str, Any]]: + """Group results by a tuple of key functions, building JSON-summary groups. + + Parameters: + specs: Ordered list of :class:`~trial.TrialSpec` objects. + results: Ordered list of :class:`~trial.TrialResult` objects. + key_funcs: List of ``(label, callable)`` pairs where the callable + takes a :class:`~trial.TrialSpec` and returns the group key value. + + Returns: + A list of group dicts suitable for :func:`~output.write_json_summary`. + """ + from collections import defaultdict + + group_map: dict[tuple[Any, ...], list[int]] = defaultdict(list) + for idx, spec in enumerate(specs): + key = tuple(fn(spec) for _, fn in key_funcs) + group_map[key].append(idx) + + def _sort_key(item: tuple[tuple[Any, ...], list[int]]) -> tuple[Any, ...]: + """Convert a group key to a sortable tuple, replacing None with a sentinel.""" + return tuple((0, v) if v is not None else (1, '') for v in item[0]) + + groups: list[dict[str, Any]] = [] + for key, indices in sorted(group_map.items(), key=_sort_key): + g: dict[str, Any] = {} + for (label, _), val in zip(key_funcs, key, strict=False): + g[label] = val + g['indices'] = indices + groups.append(g) + + _ = results # used indirectly via indices in write_json_summary + return groups + + +def ensure_study_dir(output_dir: pathlib.Path, study_name: str) -> pathlib.Path: + """Create and return the study output subdirectory. + + Parameters: + output_dir: Root output directory. + study_name: Study name (used as subdirectory name). + + Returns: + Path to the created subdirectory. + """ + study_dir = output_dir / study_name + study_dir.mkdir(parents=True, exist_ok=True) + return study_dir + + +def recovery_fraction( + results: list[TrialResult], + *, + delta: float, +) -> float: + """Compute the fraction of trials where the position error is within delta/2. + + A trial is considered a "successful recovery" if the fitter converged and + the Euclidean position error is less than half the injected offset delta. + This metric is more informative than mean error alone for Study 3. + + Parameters: + results: List of :class:`~trial.TrialResult` objects. + delta: The injected offset magnitude used as the success threshold + denominator. + + Returns: + Fraction in [0, 1]. Returns ``float('nan')`` if ``results`` is empty. + """ + if len(results) == 0: + return float('nan') + threshold = delta / 2.0 + successes = sum( + 1 for r in results if r.converged and math.isfinite(r.pos_err) and r.pos_err < threshold + ) + return successes / len(results) diff --git a/src/characterize_gauss_fit/config.py b/src/characterize_gauss_fit/config.py new file mode 100644 index 0000000..fe8ac30 --- /dev/null +++ b/src/characterize_gauss_fit/config.py @@ -0,0 +1,585 @@ +################################################################################ +# characterize_gauss_fit/config.py +################################################################################ + +"""YAML configuration loading and typed dataclasses for characterize_gauss_fit. + +Loads ``defaults.yaml`` from the package, deep-merges an optional user-supplied +override file, and exposes a typed ``Config`` object for use by study modules. +""" + +from __future__ import annotations + +import copy +import dataclasses +import importlib.resources +import math +import pathlib +from typing import Any + +import yaml + +# --------------------------------------------------------------------------- +# Typed dataclasses +# --------------------------------------------------------------------------- + + +@dataclasses.dataclass +class FittingConfig: + """Parameters forwarded to :meth:`~psfmodel.PSF.find_position` for every trial.""" + + bkgnd_degree: int | None + bkgnd_ignore_center: tuple[int, int] + bkgnd_num_sigma: float | None + num_sigma: float | None + max_bad_frac: float + allow_nonzero_base: bool + use_angular_params: bool + tolerance: float + search_limit: tuple[float, float] + scale_limit: float + + +@dataclasses.dataclass +class GenerationConfig: + """Parameters controlling synthetic PSF image generation.""" + + scale: float + base: float + + +@dataclasses.dataclass +class PsfShapeConfig: + """A single PSF shape specification for the constraint-modes study.""" + + sigma: tuple[float, float] + angle: float + + +@dataclasses.dataclass +class StudyBoxVsSigmaConfig: + """Configuration for Study 1: box size vs. sigma.""" + + enabled: bool + box_sizes: list[int] + sigmas: list[float] + offset: tuple[float, float] + angle: float + scale: float + fitting: FittingConfig + + +@dataclasses.dataclass +class StudySubpixelOffsetConfig: + """Configuration for Study 2: subpixel offset bias.""" + + enabled: bool + offset_steps: int + offset_range: tuple[float, float] + sigmas: list[float] + box_size: int + angle: float + fitting: FittingConfig + + +@dataclasses.dataclass +class StudyMinDetectableOffsetConfig: + """Configuration for Study 3: minimum detectable offset.""" + + enabled: bool + delta_offsets: list[float] + sigmas: list[float] + box_size: int + noise_samples: int + snr_values: list[float] + include_noiseless: bool + fitting: FittingConfig + + +@dataclasses.dataclass +class StudySigmaAsymmetryAngleConfig: + """Configuration for Study 4: sigma asymmetry and angle recovery.""" + + enabled: bool + sigma_ratios: list[float] + angle_steps: int + sigma_x_values: list[float] + box_size: int + offset: tuple[float, float] + fitting: FittingConfig + + +@dataclasses.dataclass +class StudyConstraintModesConfig: + """Configuration for Study 5: constraint modes.""" + + enabled: bool + sigma_error_fractions: list[float] + angle_error_rad: float + psf_shapes: list[PsfShapeConfig] + box_size: int + offset: tuple[float, float] + scale: float + fitting: FittingConfig + + +@dataclasses.dataclass +class StudyBackgroundConfig: + """Configuration for Study 6: background conditions.""" + + enabled: bool + background_amplitudes: list[float] + bkgnd_degrees: list[int] + bkgnd_degrees_with_null: bool + bkgnd_ignore_centers: list[tuple[int, int]] + background_types: list[str] + box_size: int + sigma: tuple[float, float] + offset: tuple[float, float] + fitting: FittingConfig + + +@dataclasses.dataclass +class StudyNoiseSensitivityConfig: + """Configuration for Study 7: noise sensitivity.""" + + enabled: bool + snr_log_range: tuple[float, float] + snr_steps: int + sigmas: list[float] + noise_samples: int + box_size: int + fitting: FittingConfig + + +@dataclasses.dataclass +class StudyHotPixelRejectionConfig: + """Configuration for Study 8: hot pixel rejection.""" + + enabled: bool + num_hot_pixels: list[int] + num_sigma_values: list[float] + num_sigma_with_null: bool + hot_amplitudes: list[float] + noise_samples: int + snr: float + box_size: int + sigma: tuple[float, float] + offset: tuple[float, float] + fitting: FittingConfig + + +@dataclasses.dataclass +class StudiesConfig: + """Container for all per-study configurations.""" + + box_vs_sigma: StudyBoxVsSigmaConfig + subpixel_offset: StudySubpixelOffsetConfig + min_detectable_offset: StudyMinDetectableOffsetConfig + sigma_asymmetry_angle: StudySigmaAsymmetryAngleConfig + constraint_modes: StudyConstraintModesConfig + background: StudyBackgroundConfig + noise_sensitivity: StudyNoiseSensitivityConfig + hot_pixel_rejection: StudyHotPixelRejectionConfig + + +@dataclasses.dataclass +class Config: + """Top-level configuration object for the entire run.""" + + output_dir: pathlib.Path + num_workers: int + noise_samples: int + fitting: FittingConfig + generation: GenerationConfig + studies: StudiesConfig + + +# --------------------------------------------------------------------------- +# YAML loading and merging +# --------------------------------------------------------------------------- + +STUDY_NAMES: list[str] = [ + 'box_vs_sigma', + 'subpixel_offset', + 'min_detectable_offset', + 'sigma_asymmetry_angle', + 'constraint_modes', + 'background', + 'noise_sensitivity', + 'hot_pixel_rejection', +] + + +def _deep_merge(base: dict[str, Any], override: dict[str, Any]) -> dict[str, Any]: + """Return a new dict that is ``base`` deep-merged with ``override``. + + Scalar values and lists in ``override`` replace those in ``base`` entirely. + Nested dicts are merged recursively. + + Parameters: + base: The base dictionary (from defaults.yaml). + override: The user-supplied override dictionary. + + Returns: + A new merged dictionary. Neither input is mutated. + """ + result = copy.deepcopy(base) + for key, value in override.items(): + if key in result and isinstance(result[key], dict) and isinstance(value, dict): + result[key] = _deep_merge(result[key], value) + else: + result[key] = copy.deepcopy(value) + return result + + +def _load_raw(path: pathlib.Path | None) -> dict[str, Any]: + """Load and deep-merge defaults.yaml with an optional user override file. + + Parameters: + path: Optional path to a user-supplied YAML override file. Pass ``None`` + to use only the built-in defaults. + + Returns: + A merged dictionary of all configuration values. + + Raises: + FileNotFoundError: If ``path`` is provided but does not exist. + ValueError: If the YAML file cannot be parsed. + """ + pkg_ref = importlib.resources.files('characterize_gauss_fit').joinpath('defaults.yaml') + with ( + importlib.resources.as_file(pkg_ref) as defaults_path, + defaults_path.open('r', encoding='utf-8') as fh, + ): + raw: dict[str, Any] = yaml.safe_load(fh) + + if path is not None: + if not path.exists(): + raise FileNotFoundError(f'Config file not found: {path}') + with path.open('r', encoding='utf-8') as fh: + try: + user_raw: dict[str, Any] = yaml.safe_load(fh) or {} + except yaml.YAMLError as exc: + raise ValueError(f'Failed to parse config file {path}: {exc}') from exc + raw = _deep_merge(raw, user_raw) + + return raw + + +def _parse_fitting(raw: dict[str, Any]) -> FittingConfig: + """Parse a fitting-section dict into a :class:`FittingConfig`. + + Parameters: + raw: Dict from the ``fitting`` YAML section. + + Returns: + A populated :class:`FittingConfig`. + + Raises: + ValueError: If required keys are missing or values are out of range. + """ + bkgnd_ic = raw['bkgnd_ignore_center'] + search_lim = raw['search_limit'] + return FittingConfig( + bkgnd_degree=raw['bkgnd_degree'], + bkgnd_ignore_center=(int(bkgnd_ic[0]), int(bkgnd_ic[1])), + bkgnd_num_sigma=raw['bkgnd_num_sigma'], + num_sigma=raw['num_sigma'], + max_bad_frac=float(raw['max_bad_frac']), + allow_nonzero_base=bool(raw['allow_nonzero_base']), + use_angular_params=bool(raw['use_angular_params']), + tolerance=float(raw['tolerance']), + search_limit=(float(search_lim[0]), float(search_lim[1])), + scale_limit=float(raw['scale_limit']), + ) + + +def _resolve_fitting(global_fitting: dict[str, Any], study_raw: dict[str, Any]) -> FittingConfig: + """Merge the global fitting defaults with optional per-study overrides. + + Parameters: + global_fitting: The top-level ``fitting`` section dict. + study_raw: The study-specific dict (may contain a ``fitting`` sub-dict). + + Returns: + A :class:`FittingConfig` reflecting any per-study overrides. + """ + if 'fitting' in study_raw: + merged = _deep_merge(global_fitting, study_raw['fitting']) + else: + merged = global_fitting + return _parse_fitting(merged) + + +def _parse_two_floats(value: list[Any]) -> tuple[float, float]: + """Parse a two-element list into a tuple of floats. + + Parameters: + value: A list with exactly two numeric elements. + + Returns: + A ``(float, float)`` tuple. + + Raises: + ValueError: If ``value`` does not have exactly two elements. + """ + if len(value) != 2: + raise ValueError(f'Expected a list of 2 values, got {len(value)}') + return (float(value[0]), float(value[1])) + + +def _parse_two_ints(value: list[Any]) -> tuple[int, int]: + """Parse a two-element list into a tuple of ints. + + Parameters: + value: A list with exactly two numeric elements. + + Returns: + An ``(int, int)`` tuple. + + Raises: + ValueError: If ``value`` does not have exactly two elements. + """ + if len(value) != 2: + raise ValueError(f'Expected a list of 2 values, got {len(value)}') + return (int(value[0]), int(value[1])) + + +def _build_config(raw: dict[str, Any]) -> Config: + """Convert a merged raw dict into a fully typed :class:`Config`. + + Parameters: + raw: Merged configuration dictionary. + + Returns: + A populated :class:`Config` instance. + + Raises: + ValueError: If any required field is missing or invalid. + KeyError: If a required YAML key is absent. + """ + global_fitting = raw['fitting'] + gen = raw['generation'] + studies = raw['studies'] + + def study_fitting(name: str) -> FittingConfig: + return _resolve_fitting(global_fitting, studies[name]) + + # Study 4: build angle list from steps + sa_raw = studies['sigma_asymmetry_angle'] + angle_steps: int = int(sa_raw['angle_steps']) + if angle_steps < 2: + raise ValueError(f'angle_steps must be >= 2, got {angle_steps}') + + # Study 6: parse list of ignore-center pairs + bg_raw = studies['background'] + ignore_centers: list[tuple[int, int]] = [ + _parse_two_ints(ic) for ic in bg_raw['bkgnd_ignore_centers'] + ] + + # Study 5: parse psf_shapes list + cm_raw = studies['constraint_modes'] + psf_shapes: list[PsfShapeConfig] = [ + PsfShapeConfig( + sigma=_parse_two_floats(s['sigma']), + angle=float(s['angle']), + ) + for s in cm_raw['psf_shapes'] + ] + + return Config( + output_dir=pathlib.Path(raw['output_dir']), + num_workers=int(raw['num_workers']), + noise_samples=int(raw['noise_samples']), + fitting=_parse_fitting(global_fitting), + generation=GenerationConfig( + scale=float(gen['scale']), + base=float(gen['base']), + ), + studies=StudiesConfig( + box_vs_sigma=StudyBoxVsSigmaConfig( + enabled=bool(studies['box_vs_sigma']['enabled']), + box_sizes=[int(x) for x in studies['box_vs_sigma']['box_sizes']], + sigmas=[float(x) for x in studies['box_vs_sigma']['sigmas']], + offset=_parse_two_floats(studies['box_vs_sigma']['offset']), + angle=float(studies['box_vs_sigma']['angle']), + scale=float(studies['box_vs_sigma']['scale']), + fitting=study_fitting('box_vs_sigma'), + ), + subpixel_offset=StudySubpixelOffsetConfig( + enabled=bool(studies['subpixel_offset']['enabled']), + offset_steps=int(studies['subpixel_offset']['offset_steps']), + offset_range=_parse_two_floats(studies['subpixel_offset']['offset_range']), + sigmas=[float(x) for x in studies['subpixel_offset']['sigmas']], + box_size=int(studies['subpixel_offset']['box_size']), + angle=float(studies['subpixel_offset']['angle']), + fitting=study_fitting('subpixel_offset'), + ), + min_detectable_offset=StudyMinDetectableOffsetConfig( + enabled=bool(studies['min_detectable_offset']['enabled']), + delta_offsets=[float(x) for x in studies['min_detectable_offset']['delta_offsets']], + sigmas=[float(x) for x in studies['min_detectable_offset']['sigmas']], + box_size=int(studies['min_detectable_offset']['box_size']), + noise_samples=int(studies['min_detectable_offset']['noise_samples']), + snr_values=[float(x) for x in studies['min_detectable_offset']['snr_values']], + include_noiseless=bool(studies['min_detectable_offset']['include_noiseless']), + fitting=study_fitting('min_detectable_offset'), + ), + sigma_asymmetry_angle=StudySigmaAsymmetryAngleConfig( + enabled=bool(sa_raw['enabled']), + sigma_ratios=[float(x) for x in sa_raw['sigma_ratios']], + angle_steps=angle_steps, + sigma_x_values=[float(x) for x in sa_raw['sigma_x_values']], + box_size=int(sa_raw['box_size']), + offset=_parse_two_floats(sa_raw['offset']), + fitting=study_fitting('sigma_asymmetry_angle'), + ), + constraint_modes=StudyConstraintModesConfig( + enabled=bool(cm_raw['enabled']), + sigma_error_fractions=[float(x) for x in cm_raw['sigma_error_fractions']], + angle_error_rad=float(cm_raw['angle_error_rad']), + psf_shapes=psf_shapes, + box_size=int(cm_raw['box_size']), + offset=_parse_two_floats(cm_raw['offset']), + scale=float(cm_raw['scale']), + fitting=study_fitting('constraint_modes'), + ), + background=StudyBackgroundConfig( + enabled=bool(bg_raw['enabled']), + background_amplitudes=[float(x) for x in bg_raw['background_amplitudes']], + bkgnd_degrees=[int(x) for x in bg_raw['bkgnd_degrees']], + bkgnd_degrees_with_null=bool(bg_raw['bkgnd_degrees_with_null']), + bkgnd_ignore_centers=ignore_centers, + background_types=[str(x) for x in bg_raw['background_types']], + box_size=int(bg_raw['box_size']), + sigma=_parse_two_floats(bg_raw['sigma']), + offset=_parse_two_floats(bg_raw['offset']), + fitting=study_fitting('background'), + ), + noise_sensitivity=StudyNoiseSensitivityConfig( + enabled=bool(studies['noise_sensitivity']['enabled']), + snr_log_range=_parse_two_floats(studies['noise_sensitivity']['snr_log_range']), + snr_steps=int(studies['noise_sensitivity']['snr_steps']), + sigmas=[float(x) for x in studies['noise_sensitivity']['sigmas']], + noise_samples=int(studies['noise_sensitivity']['noise_samples']), + box_size=int(studies['noise_sensitivity']['box_size']), + fitting=study_fitting('noise_sensitivity'), + ), + hot_pixel_rejection=StudyHotPixelRejectionConfig( + enabled=bool(studies['hot_pixel_rejection']['enabled']), + num_hot_pixels=[int(x) for x in studies['hot_pixel_rejection']['num_hot_pixels']], + num_sigma_values=[ + float(x) for x in studies['hot_pixel_rejection']['num_sigma_values'] + ], + num_sigma_with_null=bool(studies['hot_pixel_rejection']['num_sigma_with_null']), + hot_amplitudes=[float(x) for x in studies['hot_pixel_rejection']['hot_amplitudes']], + noise_samples=int(studies['hot_pixel_rejection']['noise_samples']), + snr=float(studies['hot_pixel_rejection']['snr']), + box_size=int(studies['hot_pixel_rejection']['box_size']), + sigma=_parse_two_floats(studies['hot_pixel_rejection']['sigma']), + offset=_parse_two_floats(studies['hot_pixel_rejection']['offset']), + fitting=study_fitting('hot_pixel_rejection'), + ), + ), + ) + + +def load_config( + path: pathlib.Path | None = None, + *, + output_dir: pathlib.Path | None = None, + num_workers: int | None = None, +) -> Config: + """Load configuration from defaults and an optional user override file. + + Loads the built-in ``defaults.yaml``, deep-merges the user file if provided, + then applies any CLI-level overrides (``output_dir``, ``num_workers``). + + Parameters: + path: Optional path to a user YAML override file. + output_dir: If given, overrides the ``output_dir`` from YAML. + num_workers: If given, overrides ``num_workers`` from YAML. + + Returns: + A fully validated :class:`Config` instance. + + Raises: + FileNotFoundError: If ``path`` is provided but does not exist. + ValueError: If the configuration is invalid. + KeyError: If a required YAML key is missing. + """ + raw = _load_raw(path) + if output_dir is not None: + raw['output_dir'] = str(output_dir) + if num_workers is not None: + raw['num_workers'] = num_workers + cfg = _build_config(raw) + _validate_config(cfg) + return cfg + + +def _validate_config(cfg: Config) -> None: + """Raise :class:`ValueError` if the config contains invalid values. + + Parameters: + cfg: A :class:`Config` instance to validate. + + Raises: + ValueError: If any value is out of range or logically inconsistent. + """ + if cfg.num_workers < 1: + raise ValueError(f'num_workers must be >= 1, got {cfg.num_workers}') + if cfg.noise_samples < 1: + raise ValueError(f'noise_samples must be >= 1, got {cfg.noise_samples}') + + bvs = cfg.studies.box_vs_sigma + for bs in bvs.box_sizes: + if bs < 5 or bs % 2 == 0: + raise ValueError( + f'box_vs_sigma.box_sizes: each entry must be an odd integer >= 5, got {bs}' + ) + + mdo = cfg.studies.min_detectable_offset + for delta in mdo.delta_offsets: + if delta <= 0: + raise ValueError(f'min_detectable_offset.delta_offsets: must be positive, got {delta}') + + ns = cfg.studies.noise_sensitivity + lo, hi = ns.snr_log_range + if lo >= hi: + raise ValueError(f'noise_sensitivity.snr_log_range: min ({lo}) must be < max ({hi})') + + sa = cfg.studies.sigma_asymmetry_angle + for ratio in sa.sigma_ratios: + if ratio <= 0: + raise ValueError(f'sigma_asymmetry_angle.sigma_ratios: must be positive, got {ratio}') + + for shape in cfg.studies.constraint_modes.psf_shapes: + if not (0.0 <= shape.angle <= math.pi): + raise ValueError( + f'constraint_modes.psf_shapes: angle must be in [0, pi], got {shape.angle}' + ) + + valid_bkgnd_types = {'none', 'constant', 'linear', 'quadratic', 'noisy_constant'} + for bt in cfg.studies.background.background_types: + if bt not in valid_bkgnd_types: + raise ValueError( + f'background.background_types: unknown type "{bt}". ' + f'Valid options: {sorted(valid_bkgnd_types)}' + ) + + +def config_to_dict(cfg: Config) -> dict[str, Any]: + """Convert a :class:`Config` to a plain dict suitable for JSON serialisation. + + Parameters: + cfg: A :class:`Config` instance. + + Returns: + A dict representation with all Path objects converted to strings. + """ + raw = dataclasses.asdict(cfg) + # Convert Path to string for JSON serialisability. + raw['output_dir'] = str(cfg.output_dir) + return raw diff --git a/src/characterize_gauss_fit/defaults.yaml b/src/characterize_gauss_fit/defaults.yaml new file mode 100644 index 0000000..12d3391 --- /dev/null +++ b/src/characterize_gauss_fit/defaults.yaml @@ -0,0 +1,189 @@ +# defaults.yaml -- Default configuration for characterize_gauss_fit. +# +# All values in this file can be overridden by a user-supplied YAML file +# passed via --config on the command line. Lists replace entirely (not append). +# Per-study fitting overrides: add a "fitting" subsection inside any study to +# override the global fitting defaults for that study only. + +# Directory where all output files (plots, CSV, JSON) are written. +output_dir: ./gauss_fit_results + +# Number of parallel worker processes. 1 = sequential (default). +# Values > 1 use concurrent.futures.ProcessPoolExecutor. +num_workers: 1 + +# Default number of noise realizations for stochastic studies. +# Individual study sections may override this. +noise_samples: 50 + +# --------------------------------------------------------------------------- +# Global fitting defaults (passed to find_position for every trial). +# Any study section may include a "fitting" subsection to override these. +# --------------------------------------------------------------------------- +fitting: + # Polynomial degree for background fitting (null = no background subtraction). + bkgnd_degree: 2 + # Half-size of the central region excluded from background fitting [ny, nx]. + bkgnd_ignore_center: [2, 2] + # Sigma-clipping threshold for background residuals (null = disabled). + bkgnd_num_sigma: null + # Sigma-clipping threshold for PSF residuals to reject bad pixels (null = disabled). + num_sigma: null + # Maximum fraction of pixels that can be masked before fit is abandoned. + max_bad_frac: 0.2 + # Whether to fit a non-zero constant base level in addition to the polynomial background. + allow_nonzero_base: false + # Whether to reparameterize fit variables as angles in [0, pi]. + use_angular_params: true + # Powell optimizer convergence tolerance. + tolerance: 1.0e-6 + # Maximum allowed position offset from starting point [y_limit, x_limit] in pixels. + search_limit: [1.5, 1.5] + # Maximum allowed PSF amplitude scale factor. + scale_limit: 1000.0 + +# --------------------------------------------------------------------------- +# Default PSF generation parameters used when a study does not override them. +# --------------------------------------------------------------------------- +generation: + # Amplitude multiplier applied to the normalized Gaussian pixel integrals. + scale: 1.5 + # Additive base level added to the clean PSF image before background/noise injection. + base: 0.0 + +# --------------------------------------------------------------------------- +# Per-study configuration. Each study can be disabled with "enabled: false". +# --------------------------------------------------------------------------- +studies: + + # Study 1: How box size relative to PSF sigma affects fitting accuracy. + box_vs_sigma: + enabled: true + # Odd box sizes to test. Minimum 5. + box_sizes: [5, 7, 9, 11, 13, 17, 21, 25, 31] + # Symmetric PSF sigma values (pixels) to test. + sigmas: [0.3, 0.5, 0.8, 1.0, 1.5, 2.0, 3.0, 5.0] + # Subpixel offset [offset_y, offset_x] applied to the PSF center. + offset: [0.25, 0.25] + # PSF rotation angle (radians). 0 = axis-aligned. + angle: 0.0 + # PSF amplitude scale factor for this study. + scale: 1.0 + fitting: + bkgnd_degree: null + + # Study 2: How subpixel centering offset biases position recovery. + subpixel_offset: + enabled: true + # Number of evenly-spaced offset steps in each axis over offset_range. + offset_steps: 11 + # Range [min, max] of offset values tested. Values outside [0, 0.5] are + # redundant by symmetry. + offset_range: [0.0, 0.5] + # Sigma values to use as panel variable. + sigmas: [0.5, 1.0, 2.0] + box_size: 21 + angle: 0.0 + fitting: + bkgnd_degree: null + + # Study 3: Minimum detectable position offset vs. PSF sigma and SNR. + min_detectable_offset: + enabled: true + # Offset deltas to test (pixels). Covers sub-pixel to multi-pixel range. + delta_offsets: [0.001, 0.002, 0.005, 0.01, 0.02, 0.05, 0.1, 0.2, 0.5] + # Symmetric sigma values to test. + sigmas: [0.3, 0.5, 0.8, 1.0, 1.5, 2.0, 3.0] + box_size: 21 + # Noise realizations per (delta, sigma, snr) combination. Noiseless uses 1. + noise_samples: 50 + # SNR values (peak / noise_rms) for stochastic conditions. + snr_values: [50.0, 100.0, 500.0] + # If true, also run a noiseless trial (numerical precision floor). + include_noiseless: true + fitting: + bkgnd_degree: null + + # Study 4: How sigma asymmetry and rotation angle affect recovery. + sigma_asymmetry_angle: + enabled: true + # Ratios sigma_y / sigma_x to test. + sigma_ratios: [0.25, 0.5, 0.75, 1.0, 1.5, 2.0, 4.0] + # Number of evenly-spaced angle steps from 0 to pi (inclusive). + angle_steps: 13 + # sigma_x values used as panel variable. + sigma_x_values: [0.5, 1.0, 2.0] + box_size: 25 + offset: [0.25, 0.25] + fitting: + bkgnd_degree: null + + # Study 5: How fixing/floating PSF parameters affects all output metrics. + constraint_modes: + enabled: true + # Fractional errors applied to sigma when sigma is fixed incorrectly. + # 0.0 = fixed at correct value; 0.2 = fixed at 1.2x true value; etc. + sigma_error_fractions: [0.0, 0.2, 0.5] + # Absolute angle error (radians) when angle is fixed incorrectly. + angle_error_rad: 0.3 + # PSF shapes to test as [sigma_y, sigma_x] + angle (radians). + psf_shapes: + - sigma: [1.0, 1.0] + angle: 0.0 + - sigma: [0.5, 1.5] + angle: 0.7854 # approximately pi/4 + - sigma: [1.0, 2.0] + angle: 1.0472 # approximately pi/3 + box_size: 21 + offset: [0.25, 0.25] + scale: 1.5 + + # Study 6: How injected background and fitting model choice affect accuracy. + background: + enabled: true + # Amplitude of injected background as a fraction of the PSF peak. + background_amplitudes: [0.01, 0.1, 0.5] + # Polynomial degrees used when fitting the background. + bkgnd_degrees: [0, 1, 2] + # If true, also test bkgnd_degree=null (no background fitting). + bkgnd_degrees_with_null: true + # ignore_center sizes [ny, nx] to test. + bkgnd_ignore_centers: [[1, 1], [2, 2], [4, 4]] + # Background types to inject. Options: none, constant, linear, quadratic, + # noisy_constant. + background_types: [none, constant, linear, quadratic, noisy_constant] + box_size: 21 + sigma: [1.0, 1.0] + offset: [0.25, 0.25] + + # Study 7: How SNR affects position, sigma, and scale recovery accuracy. + noise_sensitivity: + enabled: true + # Log10 range [min, max] for SNR (peak / noise_rms). + snr_log_range: [0.5, 3.5] + # Number of log-spaced SNR points. + snr_steps: 15 + # Sigma values used as panel variable. + sigmas: [0.5, 1.0, 2.0] + # Noise realizations per (snr, sigma) combination. + noise_samples: 50 + box_size: 21 + + # Study 8: How num_sigma rejection handles hot pixels at various contamination levels. + hot_pixel_rejection: + enabled: true + # Numbers of hot pixels to inject. + num_hot_pixels: [0, 1, 3, 5, 10] + # num_sigma thresholds for PSF-stage bad pixel rejection. + num_sigma_values: [2.0, 3.0, 5.0] + # If true, also test with num_sigma=null (rejection disabled). + num_sigma_with_null: true + # Hot pixel amplitudes as multiples of the PSF peak. + hot_amplitudes: [5.0, 20.0, 100.0] + # Noise realizations per combination (hot pixel positions randomized). + noise_samples: 20 + # SNR of background Gaussian noise (peak / noise_rms). + snr: 100.0 + box_size: 21 + sigma: [1.0, 1.0] + offset: [0.25, 0.25] diff --git a/src/characterize_gauss_fit/executor.py b/src/characterize_gauss_fit/executor.py new file mode 100644 index 0000000..a4a8b87 --- /dev/null +++ b/src/characterize_gauss_fit/executor.py @@ -0,0 +1,111 @@ +################################################################################ +# characterize_gauss_fit/executor.py +################################################################################ + +"""Sequential and multiprocess trial dispatch for characterize_gauss_fit. + +Provides :func:`run_trials`, which executes a list of :class:`~trial.TrialSpec` +objects either sequentially in the calling process or in parallel using +:class:`concurrent.futures.ProcessPoolExecutor`. + +Worker isolation: :class:`~psfmodel.gaussian.GaussianPSF` objects are +constructed inside each worker from the plain-data fields of +:class:`~trial.TrialSpec`. No complex objects cross process boundaries. +""" + +from __future__ import annotations + +import concurrent.futures +import logging +from collections.abc import Callable + +from characterize_gauss_fit.trial import TrialResult, TrialSpec, run_trial + +_LOG = logging.getLogger(__name__) + + +def _safe_run_trial(spec: TrialSpec) -> TrialResult: + """Run a single trial, converting any exception into a failed result. + + This wrapper is used by worker processes so that an unexpected exception + in one trial does not crash the entire pool. + + Parameters: + spec: The trial to execute. + + Returns: + A :class:`~trial.TrialResult` with ``converged=False`` and NaN errors + if any exception occurs, otherwise the normal result. + """ + try: + return run_trial(spec) + except Exception: + _LOG.exception( + 'Unexpected error in trial (sigma_y=%s, box_size=%s)', + spec.sigma_y, + spec.box_size, + ) + return TrialResult( + converged=False, + sigma_y_true=spec.sigma_y, + sigma_x_true=spec.sigma_x, + angle_true=spec.angle, + scale_true=spec.scale, + offset_y_true=spec.offset_y, + offset_x_true=spec.offset_x, + pos_err_y=float('nan'), + pos_err_x=float('nan'), + pos_err=float('nan'), + sigma_y_fit=None, + sigma_x_fit=None, + angle_fit=None, + scale_fit=float('nan'), + sigma_y_err=None, + sigma_x_err=None, + angle_err=None, + scale_err=float('nan'), + ) + + +def run_trials( + trial_specs: list[TrialSpec], + *, + num_workers: int = 1, + progress_callback: Callable[[int, int], None] | None = None, +) -> list[TrialResult]: + """Execute a list of trials sequentially or in parallel. + + Parameters: + trial_specs: List of :class:`~trial.TrialSpec` objects to execute. + num_workers: Number of parallel worker processes. ``1`` runs all trials + sequentially in the calling process with no multiprocessing overhead. + Values ``>1`` use :class:`concurrent.futures.ProcessPoolExecutor`. + progress_callback: Optional callable ``(completed, total)`` invoked after + each trial result is collected, useful for progress display. + + Returns: + A list of :class:`~trial.TrialResult` objects in the same order as + ``trial_specs``. + """ + total = len(trial_specs) + results: list[TrialResult] = [] + + if num_workers == 1: + for idx, spec in enumerate(trial_specs): + results.append(_safe_run_trial(spec)) + if progress_callback is not None: + progress_callback(idx + 1, total) + else: + with concurrent.futures.ProcessPoolExecutor(max_workers=num_workers) as pool: + futures = {pool.submit(_safe_run_trial, spec): i for i, spec in enumerate(trial_specs)} + # Collect in submission order to preserve determinism. + ordered: list[TrialResult | None] = [None] * total + for n_done, future in enumerate(concurrent.futures.as_completed(futures), start=1): + idx = futures[future] + ordered[idx] = future.result() + if progress_callback is not None: + progress_callback(n_done, total) + # All futures completed; ordered contains no None entries. + results = [r for r in ordered if r is not None] + + return results diff --git a/src/characterize_gauss_fit/main.py b/src/characterize_gauss_fit/main.py new file mode 100644 index 0000000..94a68cc --- /dev/null +++ b/src/characterize_gauss_fit/main.py @@ -0,0 +1,248 @@ +################################################################################ +# characterize_gauss_fit/main.py +################################################################################ + +"""Command-line entry point for characterize_gauss_fit. + +Parses arguments, loads configuration, and dispatches requested studies. +Exit code is 0 on success, 1 if any study raises an unhandled exception. +""" + +from __future__ import annotations + +import argparse +import importlib.resources +import logging +import pathlib +import shutil +import sys +import time +from collections.abc import Callable + +from characterize_gauss_fit import ( + study_background, + study_box_sigma, + study_constraints, + study_hot_pixels, + study_min_offset, + study_noise, + study_offset, + study_shape, +) +from characterize_gauss_fit.config import STUDY_NAMES, load_config + +_LOG = logging.getLogger(__name__) + +# Type alias for a study run function. +_StudyRunner = Callable[..., None] + +# Registry: study name -> run function. +_STUDY_REGISTRY: dict[str, _StudyRunner] = { + 'box_vs_sigma': study_box_sigma.run, + 'subpixel_offset': study_offset.run, + 'min_detectable_offset': study_min_offset.run, + 'sigma_asymmetry_angle': study_shape.run, + 'constraint_modes': study_constraints.run, + 'background': study_background.run, + 'noise_sensitivity': study_noise.run, + 'hot_pixel_rejection': study_hot_pixels.run, +} + + +def _build_parser() -> argparse.ArgumentParser: + """Build and return the argument parser. + + Returns: + Configured :class:`argparse.ArgumentParser`. + """ + parser = argparse.ArgumentParser( + prog='characterize_gauss_fit', + description=( + 'Characterize Gaussian PSF fitting accuracy across a configurable ' + 'parameter space. Produces PNG plots, CSV tables, and JSON summaries.' + ), + ) + parser.add_argument( + '--config', + metavar='FILE', + type=pathlib.Path, + default=None, + help='Path to a YAML override file merged onto built-in defaults.', + ) + parser.add_argument( + '--study', + metavar='NAME', + action='append', + dest='studies', + default=None, + help=( + 'Run only this study (repeatable). Default: all enabled studies. ' + f'Available names: {", ".join(STUDY_NAMES)}' + ), + ) + parser.add_argument( + '--output-dir', + metavar='DIR', + type=pathlib.Path, + default=None, + help='Override the output directory from the config file.', + ) + parser.add_argument( + '--num-workers', + metavar='N', + type=int, + default=None, + help=( + 'Number of parallel worker processes. ' + '1 (default) = sequential in the main process. ' + '>1 = concurrent.futures.ProcessPoolExecutor.' + ), + ) + parser.add_argument( + '--list-studies', + action='store_true', + help='Print available study names and exit.', + ) + parser.add_argument( + '--copy-default-config-to', + metavar='FILE', + type=pathlib.Path, + default=None, + help=( + 'Write the built-in default configuration to FILE and exit. ' + 'No studies are run.' + ), + ) + parser.add_argument( + '--copy-test-config-to', + metavar='FILE', + type=pathlib.Path, + default=None, + help=( + 'Write the built-in reduced-grid test configuration to FILE and exit. ' + 'No studies are run.' + ), + ) + parser.add_argument( + '--verbose', + '-v', + action='store_true', + help='Enable DEBUG-level logging.', + ) + return parser + + +def _configure_logging(verbose: bool) -> None: + """Configure the root logger for CLI use. + + Parameters: + verbose: If ``True``, set level to DEBUG; otherwise INFO. + """ + level = logging.DEBUG if verbose else logging.INFO + logging.basicConfig( + level=level, + format='%(asctime)s %(levelname)-8s %(name)s: %(message)s', + datefmt='%H:%M:%S', + stream=sys.stderr, + ) + + +def _copy_bundled_config(source_name: str, dest: pathlib.Path) -> None: + """Copy a bundled YAML config file to a user-supplied path. + + Parameters: + source_name: Filename of the bundled resource (e.g. ``'defaults.yaml'``). + dest: Destination path supplied by the user. + + Raises: + SystemExit: If the destination already exists or the copy fails. + """ + if dest.exists(): + print(f'ERROR: destination already exists: {dest}', file=sys.stderr) + sys.exit(1) + try: + pkg = importlib.resources.files('characterize_gauss_fit') + src_ref = pkg.joinpath(source_name) + with importlib.resources.as_file(src_ref) as src_path: + shutil.copy(src_path, dest) + print(f'Written: {dest}') + except OSError as exc: + print(f'ERROR copying config: {exc}', file=sys.stderr) + sys.exit(1) + + +def main() -> None: + """Entry point for the ``characterize_gauss_fit`` command. + + Parses command-line arguments, loads configuration, and runs all requested + studies in order. Prints timing information to stderr. Exits with code 1 + if any study fails with an unhandled exception. + """ + parser = _build_parser() + args = parser.parse_args() + + if args.list_studies: + print('Available studies:') + for name in STUDY_NAMES: + print(f' {name}') + return + + if args.copy_default_config_to is not None: + _copy_bundled_config('defaults.yaml', args.copy_default_config_to) + return + + if args.copy_test_config_to is not None: + _copy_bundled_config('test_config.yaml', args.copy_test_config_to) + return + + _configure_logging(args.verbose) + + try: + cfg = load_config( + path=args.config, + output_dir=args.output_dir, + num_workers=args.num_workers, + ) + except (FileNotFoundError, ValueError, KeyError) as exc: + print(f'ERROR loading config: {exc}', file=sys.stderr) + sys.exit(1) + + cfg.output_dir.mkdir(parents=True, exist_ok=True) + + requested_names: list[str] = args.studies if args.studies is not None else STUDY_NAMES + + # Validate requested study names. + for name in requested_names: + if name not in _STUDY_REGISTRY: + print( + f'ERROR: unknown study "{name}". Run with --list-studies to see available names.', + file=sys.stderr, + ) + sys.exit(1) + + num_workers = cfg.num_workers + failed: list[str] = [] + overall_start = time.monotonic() + + for name in requested_names: + run_fn = _STUDY_REGISTRY[name] + print(f'[{name}] Starting...', file=sys.stderr) + t0 = time.monotonic() + try: + run_fn(cfg, num_workers=num_workers) + except Exception: + _LOG.exception('Study %s failed with an unhandled exception.', name) + failed.append(name) + elapsed = time.monotonic() - t0 + status = 'FAILED' if name in failed else 'done' + print(f'[{name}] {status} ({elapsed:.1f}s)', file=sys.stderr) + + total = time.monotonic() - overall_start + print( + f'\nAll studies complete. Total time: {total:.1f}s. Output: {cfg.output_dir}', + file=sys.stderr, + ) + + if len(failed) > 0: + print(f'FAILED studies: {", ".join(failed)}', file=sys.stderr) + sys.exit(1) diff --git a/src/characterize_gauss_fit/output.py b/src/characterize_gauss_fit/output.py new file mode 100644 index 0000000..00f814a --- /dev/null +++ b/src/characterize_gauss_fit/output.py @@ -0,0 +1,309 @@ +################################################################################ +# characterize_gauss_fit/output.py +################################################################################ + +"""CSV and JSON output writers for characterize_gauss_fit study results. + +Each study writes its results to a subdirectory of the configured output +directory. This module provides two writers: + +- :func:`write_csv` -- one row per trial, all input parameters and all result + metrics, directly loadable by pandas or any data-analysis tool. +- :func:`write_json_summary` -- aggregate statistics per parameter group plus + overall convergence rates and the exact config used, suitable for AI analysis. +""" + +from __future__ import annotations + +import csv +import json +import math +import pathlib +from typing import Any + +import numpy as np + +from characterize_gauss_fit.trial import TrialResult, TrialSpec + +# Column order for the CSV file. Non-applicable columns use empty string. +_CSV_COLUMNS: list[str] = [ + # Study-level context + 'study', + # Input: geometry + 'box_size', + 'sigma_y_true', + 'sigma_x_true', + 'angle_true', + 'offset_y_true', + 'offset_x_true', + 'scale_true', + # Input: fitter construction + 'fit_sigma_y', + 'fit_sigma_x', + 'fit_angle', + # Input: background / noise + 'background_type', + 'background_amplitude', + 'noise_rms', + # Input: hot pixels + 'num_hot_pixels', + 'hot_pixel_amplitude', + # Input: fitting kwargs + 'bkgnd_degree', + 'num_sigma', + 'bkgnd_ignore_center_y', + 'bkgnd_ignore_center_x', + # Outcome + 'converged', + # Position errors + 'pos_err_y', + 'pos_err_x', + 'pos_err', + # Fitted values + 'sigma_y_fit', + 'sigma_x_fit', + 'angle_fit', + 'scale_fit', + # Parameter errors + 'sigma_y_err', + 'sigma_x_err', + 'angle_err', + 'scale_err', +] + + +def _float_cell(value: float | None) -> str: + """Format a float value for a CSV cell. + + Parameters: + value: The float to format, or ``None`` for a not-applicable field. + + Returns: + The formatted string. NaN is written as ``"NaN"``, None as ``""``. + """ + if value is None: + return '' + if math.isnan(value): + return 'NaN' + return repr(value) + + +def _result_row( + study: str, + spec: TrialSpec, + result: TrialResult, +) -> dict[str, str]: + """Build a CSV row dict from a spec and its result. + + Parameters: + study: The study name string (e.g. ``'box_vs_sigma'``). + spec: The :class:`~trial.TrialSpec` that was executed. + result: The :class:`~trial.TrialResult` from the trial. + + Returns: + A ``dict[str, str]`` mapping CSV column names to string values. + """ + row: dict[str, str] = dict.fromkeys(_CSV_COLUMNS, '') + row['study'] = study + row['box_size'] = str(spec.box_size) + row['sigma_y_true'] = repr(spec.sigma_y) + row['sigma_x_true'] = repr(spec.sigma_x) + row['angle_true'] = repr(spec.angle) + row['offset_y_true'] = repr(spec.offset_y) + row['offset_x_true'] = repr(spec.offset_x) + row['scale_true'] = repr(spec.scale) + row['fit_sigma_y'] = _float_cell(spec.fit_sigma_y) + row['fit_sigma_x'] = _float_cell(spec.fit_sigma_x) + row['fit_angle'] = _float_cell(spec.fit_angle) + row['background_type'] = spec.background_type + row['background_amplitude'] = repr(spec.background_amplitude) + row['noise_rms'] = repr(spec.noise_rms) + row['num_hot_pixels'] = str(spec.hot_pixel_count) + row['hot_pixel_amplitude'] = repr(spec.hot_pixel_amplitude) + row['bkgnd_degree'] = '' if spec.bkgnd_degree is None else str(spec.bkgnd_degree) + row['num_sigma'] = _float_cell(spec.num_sigma) + row['bkgnd_ignore_center_y'] = str(spec.bkgnd_ignore_center[0]) + row['bkgnd_ignore_center_x'] = str(spec.bkgnd_ignore_center[1]) + row['converged'] = 'true' if result.converged else 'false' + row['pos_err_y'] = _float_cell(result.pos_err_y) + row['pos_err_x'] = _float_cell(result.pos_err_x) + row['pos_err'] = _float_cell(result.pos_err) + row['sigma_y_fit'] = _float_cell(result.sigma_y_fit) + row['sigma_x_fit'] = _float_cell(result.sigma_x_fit) + row['angle_fit'] = _float_cell(result.angle_fit) + row['scale_fit'] = _float_cell(result.scale_fit) + row['sigma_y_err'] = _float_cell(result.sigma_y_err) + row['sigma_x_err'] = _float_cell(result.sigma_x_err) + row['angle_err'] = _float_cell(result.angle_err) + row['scale_err'] = _float_cell(result.scale_err) + return row + + +def write_csv( + output_dir: pathlib.Path, + study: str, + specs: list[TrialSpec], + results: list[TrialResult], +) -> pathlib.Path: + """Write per-trial results to a CSV file. + + Creates ``{output_dir}/{study}/trials.csv`` with one row per trial. + All input parameters and all result metrics are included. Non-applicable + fields (e.g. ``sigma_y_fit`` when sigma_y was fixed) are written as empty + strings. NaN values are written as ``"NaN"``. + + Parameters: + output_dir: Root output directory. + study: Study name (used as subdirectory). + specs: List of :class:`~trial.TrialSpec` objects (same order as ``results``). + results: List of :class:`~trial.TrialResult` objects. + + Returns: + Path to the written CSV file. + + Raises: + ValueError: If ``specs`` and ``results`` have different lengths. + """ + if len(specs) != len(results): + raise ValueError( + f'specs ({len(specs)}) and results ({len(results)}) must have the same length' + ) + study_dir = output_dir / study + study_dir.mkdir(parents=True, exist_ok=True) + csv_path = study_dir / 'trials.csv' + + with csv_path.open('w', newline='', encoding='utf-8') as fh: + writer = csv.DictWriter(fh, fieldnames=_CSV_COLUMNS) + writer.writeheader() + for spec, result in zip(specs, results, strict=False): + writer.writerow(_result_row(study, spec, result)) + + return csv_path + + +def _safe_mean(values: list[float]) -> float | None: + """Compute the mean of a list of finite floats, or None if the list is empty. + + Parameters: + values: A list of float values. NaN and infinite values are excluded. + + Returns: + The mean of finite values, or ``None`` if no finite values exist. + """ + finite = [v for v in values if math.isfinite(v)] + if len(finite) == 0: + return None + return float(np.mean(finite)) + + +def _safe_std(values: list[float]) -> float | None: + """Compute the std dev of a list of finite floats, or None if too few values. + + Parameters: + values: A list of float values. NaN and infinite values are excluded. + + Returns: + The standard deviation, or ``None`` if fewer than two finite values exist. + """ + finite = [v for v in values if math.isfinite(v)] + if len(finite) < 2: + return None + return float(np.std(finite, ddof=1)) + + +def _aggregate_results(results: list[TrialResult]) -> dict[str, Any]: + """Compute aggregate statistics over a list of results. + + Parameters: + results: List of :class:`~trial.TrialResult` objects to aggregate. + + Returns: + A dict of aggregate statistics including counts and per-metric + mean and std values. + """ + n_total = len(results) + converged = [r for r in results if r.converged] + n_converged = len(converged) + + pos_errs = [r.pos_err for r in converged] + sigma_y_errs = [r.sigma_y_err for r in converged if r.sigma_y_err is not None] + sigma_x_errs = [r.sigma_x_err for r in converged if r.sigma_x_err is not None] + angle_errs = [r.angle_err for r in converged if r.angle_err is not None] + scale_errs = [r.scale_err for r in converged if math.isfinite(r.scale_err)] + + return { + 'n_trials': n_total, + 'n_converged': n_converged, + 'convergence_rate': n_converged / n_total if n_total > 0 else None, + 'pos_err_mean': _safe_mean(pos_errs), + 'pos_err_std': _safe_std(pos_errs), + 'sigma_y_err_mean': _safe_mean(sigma_y_errs), + 'sigma_y_err_std': _safe_std(sigma_y_errs), + 'sigma_x_err_mean': _safe_mean(sigma_x_errs), + 'sigma_x_err_std': _safe_std(sigma_x_errs), + 'angle_err_mean': _safe_mean(angle_errs), + 'angle_err_std': _safe_std(angle_errs), + 'scale_err_mean': _safe_mean(scale_errs), + 'scale_err_std': _safe_std(scale_errs), + } + + +def write_json_summary( + output_dir: pathlib.Path, + study: str, + specs: list[TrialSpec], + results: list[TrialResult], + *, + groups: list[dict[str, Any]], + config_used: dict[str, Any], +) -> pathlib.Path: + """Write an aggregate JSON summary for a study. + + Creates ``{output_dir}/{study}/summary.json`` with overall statistics, + per-group breakdowns, and the exact configuration used for reproducibility. + + Parameters: + output_dir: Root output directory. + study: Study name (used as subdirectory). + specs: All :class:`~trial.TrialSpec` objects for the study. + results: All :class:`~trial.TrialResult` objects (same order as ``specs``). + groups: A list of dicts, each describing one parameter group. Each dict + must contain a ``'indices'`` key with the list of result indices + belonging to that group (these are removed before writing). All other + keys are written verbatim as group labels. + config_used: The serialised configuration dict (from + :func:`~config.config_to_dict`). + + Returns: + Path to the written JSON file. + """ + study_dir = output_dir / study + study_dir.mkdir(parents=True, exist_ok=True) + json_path = study_dir / 'summary.json' + + overall = _aggregate_results(results) + + group_summaries: list[dict[str, Any]] = [] + for group in groups: + indices: list[int] = group['indices'] + group_results = [results[i] for i in indices] + agg = _aggregate_results(group_results) + # Write label keys (everything except 'indices'). + summary: dict[str, Any] = {k: v for k, v in group.items() if k != 'indices'} + summary.update(agg) + group_summaries.append(summary) + + payload: dict[str, Any] = { + 'study': study, + 'total_trials': overall['n_trials'], + 'converged_trials': overall['n_converged'], + 'convergence_rate': overall['convergence_rate'], + 'overall': overall, + 'groups': group_summaries, + 'config_used': config_used, + } + + with json_path.open('w', encoding='utf-8') as fh: + json.dump(payload, fh, indent=2, allow_nan=True) + + return json_path diff --git a/src/characterize_gauss_fit/plotting.py b/src/characterize_gauss_fit/plotting.py new file mode 100644 index 0000000..bf57600 --- /dev/null +++ b/src/characterize_gauss_fit/plotting.py @@ -0,0 +1,426 @@ +################################################################################ +# characterize_gauss_fit/plotting.py +################################################################################ + +"""Reusable matplotlib plot helpers for characterize_gauss_fit. + +All functions accept pre-computed data arrays (not raw :class:`~trial.TrialResult` +lists) and return a :class:`matplotlib.figure.Figure` which the caller saves via +:func:`save_figure`. This keeps data transformation and rendering cleanly +separated. +""" + +from __future__ import annotations + +import pathlib +from collections.abc import Sequence + +import matplotlib +import numpy as np +import numpy.typing as npt + +matplotlib.use('Agg') # non-interactive backend; must be set before other imports +import matplotlib.pyplot as plt +from matplotlib.axes import Axes +from matplotlib.figure import Figure + +# DPI for saved PNG files. +_SAVE_DPI = 150 + +# Colour used to mark cells / points where the fitter did not converge. +_FAIL_COLOUR = '#cccccc' + + +def save_figure(fig: Figure, output_dir: pathlib.Path, filename: str) -> pathlib.Path: + """Save a figure to a PNG file and close it. + + Parameters: + fig: The :class:`matplotlib.figure.Figure` to save. + output_dir: Directory where the file will be written (must exist). + filename: File name (should end in ``.png``). + + Returns: + Path to the written PNG file. + """ + path = output_dir / filename + fig.tight_layout() + fig.savefig(path, dpi=_SAVE_DPI) + plt.close(fig) + return path + + +def plot_heatmap( + data: npt.NDArray[np.float64], + x_labels: list[str], + y_labels: list[str], + *, + title: str, + xlabel: str, + ylabel: str, + cbar_label: str, + log_scale: bool = False, + mask: npt.NDArray[np.bool_] | None = None, + annotate: bool = True, +) -> Figure: + """Create a 2-D heatmap (imshow) with optional log scaling and a fail mask. + + Parameters: + data: 2-D array of shape ``(len(y_labels), len(x_labels))``. + x_labels: Labels for the X axis (columns). + y_labels: Labels for the Y axis (rows). + title: Figure title. + xlabel: X-axis label. + ylabel: Y-axis label. + cbar_label: Colour-bar label. + log_scale: If ``True``, apply ``log10`` to positive values before display. + mask: Boolean array of the same shape as ``data``. Masked cells (``True``) + are displayed in :data:`_FAIL_COLOUR` to indicate non-convergence. + annotate: If ``True``, write the numeric value in each cell. + + Returns: + A :class:`matplotlib.figure.Figure`. + """ + n_rows, n_cols = data.shape + fig, ax = plt.subplots(figsize=(max(6, n_cols * 0.8), max(4, n_rows * 0.7))) + + display = data.astype(float) + if log_scale: + with np.errstate(divide='ignore', invalid='ignore'): + display = np.where(display > 0, np.log10(display), np.nan) + + cmap = plt.get_cmap('viridis').copy() + cmap.set_bad(color=_FAIL_COLOUR) + + if mask is not None: + display = np.where(mask, np.nan, display) + + img = ax.imshow(display, aspect='auto', cmap=cmap, origin='upper') + cbar = fig.colorbar(img, ax=ax) + cbar.set_label(cbar_label) + + ax.set_xticks(range(n_cols)) + ax.set_xticklabels(x_labels, rotation=45, ha='right', fontsize=8) + ax.set_yticks(range(n_rows)) + ax.set_yticklabels(y_labels, fontsize=8) + ax.set_xlabel(xlabel) + ax.set_ylabel(ylabel) + ax.set_title(title) + + if annotate: + for row in range(n_rows): + for col in range(n_cols): + val = display[row, col] + if np.isnan(val): + text = 'N/C' + elif log_scale: + text = f'{10**val:.2e}' + else: + text = f'{val:.3f}' + ax.text(col, row, text, ha='center', va='center', fontsize=6) + + return fig + + +def plot_line_with_bands( + x: npt.NDArray[np.float64], + y_means: Sequence[npt.NDArray[np.float64]], + y_stds: Sequence[npt.NDArray[np.float64]], + *, + labels: list[str], + title: str, + xlabel: str, + ylabel: str, + log_x: bool = False, + log_y: bool = False, +) -> Figure: + """Create a multi-series line plot with shaded mean +/- 1 std bands. + + Parameters: + x: 1-D array of X values (common to all series). + y_means: Sequence of 1-D mean arrays, one per series. + y_stds: Sequence of 1-D std arrays, one per series (same length as ``y_means``). + labels: Legend labels, one per series. + title: Figure title. + xlabel: X-axis label. + ylabel: Y-axis label. + log_x: If ``True``, use a log scale for the X axis. + log_y: If ``True``, use a log scale for the Y axis. + + Returns: + A :class:`matplotlib.figure.Figure`. + """ + fig, ax = plt.subplots(figsize=(8, 5)) + + for y_mean, y_std, label in zip(y_means, y_stds, labels, strict=True): + (line,) = ax.plot(x, y_mean, label=label, marker='o', markersize=3) + colour = line.get_color() + lower = np.maximum(y_mean - y_std, 1e-15 if log_y else y_mean - y_std) + upper = y_mean + y_std + ax.fill_between(x, lower, upper, alpha=0.2, color=colour) + + if log_x: + ax.set_xscale('log') + if log_y: + # Only apply log scale if there are positive values; otherwise the + # matplotlib locator raises on tick-generation. + all_values = np.concatenate(list(y_means)) + if np.any(all_values[np.isfinite(all_values)] > 0): + ax.set_yscale('log') + + ax.set_xlabel(xlabel) + ax.set_ylabel(ylabel) + ax.set_title(title) + ax.legend(fontsize=8) + ax.grid(visible=True, which='both', alpha=0.3) + + return fig + + +def plot_grouped_bars( + categories: list[str], + group_labels: list[str], + values: npt.NDArray[np.float64], + *, + title: str, + ylabel: str, + log_scale: bool = False, +) -> Figure: + """Create a grouped bar chart. + + Parameters: + categories: Labels for the X-axis groups (outer variable). + group_labels: Labels for the colour-coded bars within each group. + values: 2-D array of shape ``(len(categories), len(group_labels))`` with + the bar heights. + title: Figure title. + ylabel: Y-axis label. + log_scale: If ``True``, use a log scale for the Y axis. + + Returns: + A :class:`matplotlib.figure.Figure`. + """ + n_cat = len(categories) + n_groups = len(group_labels) + fig, ax = plt.subplots(figsize=(max(7, n_cat * 1.2), 5)) + + x = np.arange(n_cat, dtype=float) + width = 0.8 / n_groups + + for g_idx, g_label in enumerate(group_labels): + offsets = x + (g_idx - (n_groups - 1) / 2.0) * width + bar_vals = values[:, g_idx].astype(float) + # Replace NaN with 0 for display (annotate later). + display_vals = np.where(np.isnan(bar_vals), 0.0, bar_vals) + ax.bar(offsets, display_vals, width=width * 0.9, label=g_label) + + ax.set_xticks(x) + ax.set_xticklabels(categories, rotation=30, ha='right', fontsize=8) + ax.set_ylabel(ylabel) + ax.set_title(title) + ax.legend(fontsize=8) + if log_scale: + ax.set_yscale('log') + ax.grid(visible=True, axis='y', alpha=0.3) + + return fig + + +def plot_multi_panel_heatmaps( + data_panels: Sequence[npt.NDArray[np.float64]], + x_labels: list[str], + y_labels: list[str], + panel_titles: list[str], + *, + fig_title: str, + xlabel: str, + ylabel: str, + cbar_label: str, + log_scale: bool = False, + mask_panels: list[npt.NDArray[np.bool_]] | None = None, +) -> Figure: + """Create a row of heatmap subplots sharing the same colour scale. + + Parameters: + data_panels: Sequence of 2-D arrays, one per panel. + x_labels: Shared X-axis labels. + y_labels: Shared Y-axis labels. + panel_titles: Title for each panel (one per element in ``data_panels``). + fig_title: Overall figure title (suptitle). + xlabel: Shared X-axis label. + ylabel: Shared Y-axis label. + cbar_label: Colour-bar label. + log_scale: If ``True``, apply ``log10`` before display. + mask_panels: Optional list of boolean mask arrays, one per panel. + + Returns: + A :class:`matplotlib.figure.Figure`. + """ + n_panels = len(data_panels) + fig, axes = plt.subplots( + 1, n_panels, figsize=(max(5, n_panels * 3.5), max(4, len(y_labels) * 0.6)) + ) + if n_panels == 1: + axes = [axes] + + all_display: list[npt.NDArray[np.float64]] = [] + for panel_data in data_panels: + arr = panel_data.astype(float) + if log_scale: + with np.errstate(divide='ignore', invalid='ignore'): + arr = np.where(arr > 0, np.log10(arr), np.nan) + all_display.append(arr) + + finite_vals = np.concatenate([d.ravel() for d in all_display]) + finite_vals = finite_vals[np.isfinite(finite_vals)] + vmin = float(finite_vals.min()) if len(finite_vals) > 0 else 0.0 + vmax = float(finite_vals.max()) if len(finite_vals) > 0 else 1.0 + + cmap = plt.get_cmap('viridis').copy() + cmap.set_bad(color=_FAIL_COLOUR) + img_ref = None + + for p_idx, (ax, display, ptitle) in enumerate( + zip(axes, all_display, panel_titles, strict=True) + ): + panel_display = display.copy() + if mask_panels is not None and p_idx < len(mask_panels): + panel_display = np.where(mask_panels[p_idx], np.nan, panel_display) + + img = ax.imshow( + panel_display, + aspect='auto', + cmap=cmap, + origin='upper', + vmin=vmin, + vmax=vmax, + ) + img_ref = img + ax.set_title(ptitle, fontsize=8) + ax.set_xticks(range(len(x_labels))) + ax.set_xticklabels(x_labels, rotation=45, ha='right', fontsize=7) + ax.set_yticks(range(len(y_labels))) + if p_idx == 0: + ax.set_yticklabels(y_labels, fontsize=7) + ax.set_ylabel(ylabel) + else: + ax.set_yticklabels([]) + ax.set_xlabel(xlabel) + + if img_ref is not None: + fig.colorbar(img_ref, ax=axes, label=cbar_label, shrink=0.8) + fig.suptitle(fig_title, fontsize=10) + + return fig + + +def plot_recovery_fraction_heatmap( + recovery_fractions: npt.NDArray[np.float64], + x_labels: list[str], + y_labels: list[str], + *, + title: str, + xlabel: str, + ylabel: str, +) -> Figure: + """Create a heatmap of recovery fractions in [0, 1] with white-to-green scale. + + Used by Study 3 (minimum detectable offset) to show the fraction of trials + where the offset was successfully recovered. + + Parameters: + recovery_fractions: 2-D array of shape ``(len(y_labels), len(x_labels))`` + with values in [0, 1]. + x_labels: Labels for the X axis (columns). + y_labels: Labels for the Y axis (rows). + title: Figure title. + xlabel: X-axis label. + ylabel: Y-axis label. + + Returns: + A :class:`matplotlib.figure.Figure`. + """ + n_rows, n_cols = recovery_fractions.shape + fig, ax = plt.subplots(figsize=(max(6, n_cols * 0.8), max(4, n_rows * 0.7))) + + img = ax.imshow( + recovery_fractions, + aspect='auto', + cmap='RdYlGn', + origin='upper', + vmin=0.0, + vmax=1.0, + ) + cbar = fig.colorbar(img, ax=ax) + cbar.set_label('Recovery fraction') + + ax.set_xticks(range(n_cols)) + ax.set_xticklabels(x_labels, rotation=45, ha='right', fontsize=8) + ax.set_yticks(range(n_rows)) + ax.set_yticklabels(y_labels, fontsize=8) + ax.set_xlabel(xlabel) + ax.set_ylabel(ylabel) + ax.set_title(title) + + for row in range(n_rows): + for col in range(n_cols): + val = recovery_fractions[row, col] + ax.text(col, row, f'{val:.2f}', ha='center', va='center', fontsize=6) + + return fig + + +def plot_constraint_summary( + categories: list[str], + group_labels: list[str], + pos_err_vals: npt.NDArray[np.float64], + scale_err_vals: npt.NDArray[np.float64], + sigma_y_err_vals: npt.NDArray[np.float64], + angle_err_vals: npt.NDArray[np.float64], + *, + title: str, +) -> Figure: + """Create a 4-panel grouped bar chart for Study 5 constraint modes. + + Shows position error, scale error, sigma_y error, and angle error side by + side so that the effect of parameter constraints on all metrics is visible + at once. + + Parameters: + categories: Constraint mode names (X-axis categories). + group_labels: PSF shape labels (bar groups within each category). + pos_err_vals: ``(n_cat, n_groups)`` position error array. + scale_err_vals: ``(n_cat, n_groups)`` relative scale error array. + sigma_y_err_vals: ``(n_cat, n_groups)`` relative sigma_y error array. + angle_err_vals: ``(n_cat, n_groups)`` absolute angle error array (rad). + title: Overall figure title. + + Returns: + A :class:`matplotlib.figure.Figure`. + """ + fig, axes = plt.subplots(2, 2, figsize=(14, 8)) + metrics: list[tuple[Axes, npt.NDArray[np.float64], str]] = [ + (axes[0, 0], pos_err_vals, 'Position error (pixels)'), + (axes[0, 1], scale_err_vals, 'Relative scale error'), + (axes[1, 0], sigma_y_err_vals, 'Relative sigma_y error'), + (axes[1, 1], angle_err_vals, 'Angle error (radians)'), + ] + + n_cat = len(categories) + n_groups = len(group_labels) + x = np.arange(n_cat, dtype=float) + width = 0.8 / n_groups + + for ax, vals, metric_label in metrics: + for g_idx, g_label in enumerate(group_labels): + offsets = x + (g_idx - (n_groups - 1) / 2.0) * width + bar_vals = vals[:, g_idx].astype(float) + display_vals = np.where(np.isnan(bar_vals), 0.0, bar_vals) + ax.bar(offsets, display_vals, width=width * 0.9, label=g_label) + ax.set_xticks(x) + ax.set_xticklabels(categories, rotation=30, ha='right', fontsize=7) + ax.set_ylabel(metric_label, fontsize=8) + ax.legend(fontsize=7) + ax.grid(visible=True, axis='y', alpha=0.3) + + fig.suptitle(title, fontsize=10) + return fig diff --git a/src/characterize_gauss_fit/study_background.py b/src/characterize_gauss_fit/study_background.py new file mode 100644 index 0000000..eb3f6bc --- /dev/null +++ b/src/characterize_gauss_fit/study_background.py @@ -0,0 +1,227 @@ +################################################################################ +# characterize_gauss_fit/study_background.py +################################################################################ + +"""Study 6: Background conditions and modeling. + +Explores how different injected background types and fitting model choices +interact to affect position, sigma, and scale recovery accuracy. +""" + +from __future__ import annotations + +import logging +import pathlib +from typing import Any + +import numpy as np + +from characterize_gauss_fit import _study_utils as utils +from characterize_gauss_fit.config import Config, FittingConfig, config_to_dict +from characterize_gauss_fit.executor import run_trials +from characterize_gauss_fit.output import write_csv, write_json_summary +from characterize_gauss_fit.plotting import plot_heatmap, save_figure +from characterize_gauss_fit.trial import BACKGROUND_TYPE_NONE, TrialResult, TrialSpec + +_LOG = logging.getLogger(__name__) +_STUDY_NAME = 'background' + + +def _bkgnd_fitting(base_fitting: FittingConfig, degree: int | None) -> FittingConfig: + """Return a copy of ``base_fitting`` with ``bkgnd_degree`` overridden. + + Parameters: + base_fitting: The base fitting configuration to copy from. + degree: The background polynomial degree to set (``None`` disables). + + Returns: + A new :class:`~config.FittingConfig` with the degree overridden. + """ + import dataclasses + + return dataclasses.replace(base_fitting, bkgnd_degree=degree) + + +def build_specs(cfg: Config) -> tuple[list[TrialSpec], list[int | None]]: + """Build trial specs for Study 6 and return the fitting-degree list. + + Iterates over background types, fitting degrees, and ignore-center sizes. + For each combination that involves noise (``noisy_constant``), the base + fitting configuration is used unchanged. For all others, background + amplitude variants are included. + + Parameters: + cfg: The active :class:`~config.Config` instance. + + Returns: + A tuple ``(specs, fit_degrees)`` where ``fit_degrees`` is the list of + ``bkgnd_degree`` values used per spec (same order as ``specs``). + """ + study = cfg.studies.background + + # Build the list of fitting degrees to test. + fit_degrees: list[int | None] = list(study.bkgnd_degrees) + if study.bkgnd_degrees_with_null: + fit_degrees = [None, *fit_degrees] + + specs: list[TrialSpec] = [] + spec_fit_degrees: list[int | None] = [] + seed = 6000 + + for bkgnd_type in study.background_types: + for amplitude in study.background_amplitudes: + for fit_degree in fit_degrees: + for ignore_center in study.bkgnd_ignore_centers: + fitting = _bkgnd_fitting(study.fitting, fit_degree) + import dataclasses + + fitting = dataclasses.replace( + fitting, + bkgnd_ignore_center=ignore_center, + bkgnd_degree=fit_degree, + ) + # For backgrounds that are 'none', amplitude doesn't matter + # but we still use it to keep the spec structure uniform. + inj_amplitude = 0.0 if bkgnd_type == BACKGROUND_TYPE_NONE else amplitude + specs.append( + utils.make_spec( + sigma_y=study.sigma[0], + sigma_x=study.sigma[1], + angle=0.0, + offset_y=study.offset[0], + offset_x=study.offset[1], + scale=cfg.generation.scale, + base=cfg.generation.base, + box_size=study.box_size, + fitting=fitting, + fit_angle=0.0, + background_type=bkgnd_type, + background_amplitude=inj_amplitude, + rng_seed=seed, + ) + ) + spec_fit_degrees.append(fit_degree) + seed += 1 + + return specs, spec_fit_degrees + + +def run(cfg: Config, *, num_workers: int = 1) -> None: + """Execute Study 6 and write all outputs. + + Parameters: + cfg: The active :class:`~config.Config` instance. + num_workers: Number of parallel worker processes. + """ + study = cfg.studies.background + if not study.enabled: + _LOG.info('Study %s is disabled; skipping.', _STUDY_NAME) + return + + specs, _fit_degrees = build_specs(cfg) + _LOG.info('Study %s: %d trials', _STUDY_NAME, len(specs)) + + results = run_trials( + specs, + num_workers=num_workers, + progress_callback=utils.progress_callback(_STUDY_NAME), + ) + + study_dir = utils.ensure_study_dir(cfg.output_dir, _STUDY_NAME) + _write_outputs(cfg, specs, results, study_dir) + + +def _write_outputs( + cfg: Config, + specs: list[TrialSpec], + results: list[TrialResult], + study_dir: pathlib.Path, +) -> None: + """Write CSV, JSON, and PNG outputs for Study 6. + + Parameters: + cfg: The active :class:`~config.Config` instance. + specs: All trial specifications. + results: All trial results. + study_dir: Output subdirectory. + """ + study = cfg.studies.background + fit_degrees: list[int | None] = list(study.bkgnd_degrees) + if study.bkgnd_degrees_with_null: + fit_degrees = [None, *fit_degrees] + + bkgnd_types = study.background_types + amplitudes = study.background_amplitudes + ignore_centers = study.bkgnd_ignore_centers + + degree_labels = ['null' if d is None else str(d) for d in fit_degrees] + type_labels = bkgnd_types + + # For each (amplitude, ignore_center) combination, create one heatmap panel. + n_amp = len(amplitudes) + n_ic = len(ignore_centers) + + for amp_idx, amplitude in enumerate(amplitudes): + for ic_idx, ignore_center in enumerate(ignore_centers): + grid = np.full((len(bkgnd_types), len(fit_degrees)), float('nan')) + fail_mask = np.zeros_like(grid, dtype=bool) + + for bt_idx, bkgnd_type in enumerate(bkgnd_types): + for fd_idx, fit_degree in enumerate(fit_degrees): + # Find the matching spec index. + inj_amplitude = 0.0 if bkgnd_type == BACKGROUND_TYPE_NONE else amplitude + for _i, (spec, result) in enumerate(zip(specs, results, strict=False)): + if ( + spec.background_type == bkgnd_type + and abs(spec.background_amplitude - inj_amplitude) < 1e-12 + and spec.bkgnd_degree == fit_degree + and spec.bkgnd_ignore_center == tuple(ignore_center) + ): + if not result.converged: + fail_mask[bt_idx, fd_idx] = True + else: + grid[bt_idx, fd_idx] = result.pos_err + break + + ic_str = f'{ignore_center[0]}x{ignore_center[1]}' + fig = plot_heatmap( + grid, + degree_labels, + type_labels, + title=f'Position error -- amp={amplitude:.2f}, ignore={ic_str}', + xlabel='Fitting bkgnd_degree', + ylabel='Injected background type', + cbar_label='log10(pos error)', + log_scale=True, + mask=fail_mask, + ) + save_figure( + fig, + study_dir, + f'pos_err_amp{amp_idx}_ic{ic_idx}.png', + ) + + _ = n_amp + _ = n_ic + + write_csv(cfg.output_dir, _STUDY_NAME, specs, results) + + groups: list[dict[str, Any]] = utils.build_groups_by_keys( + specs, + results, + [ + ('background_type', lambda s: s.background_type), + ('background_amplitude', lambda s: s.background_amplitude), + ('bkgnd_degree', lambda s: s.bkgnd_degree), + ('bkgnd_ignore_center', lambda s: s.bkgnd_ignore_center), + ], + ) + write_json_summary( + cfg.output_dir, + _STUDY_NAME, + specs, + results, + groups=groups, + config_used=config_to_dict(cfg), + ) + _LOG.info('Study %s outputs written to %s', _STUDY_NAME, study_dir) diff --git a/src/characterize_gauss_fit/study_box_sigma.py b/src/characterize_gauss_fit/study_box_sigma.py new file mode 100644 index 0000000..dbf07fa --- /dev/null +++ b/src/characterize_gauss_fit/study_box_sigma.py @@ -0,0 +1,198 @@ +################################################################################ +# characterize_gauss_fit/study_box_sigma.py +################################################################################ + +"""Study 1: Box size vs. PSF sigma. + +Explores how the subimage size relative to the PSF width affects position, +sigma, and scale recovery accuracy. +""" + +from __future__ import annotations + +import logging +import pathlib +from typing import Any + +import numpy as np + +from characterize_gauss_fit import _study_utils as utils +from characterize_gauss_fit.config import Config, config_to_dict +from characterize_gauss_fit.executor import run_trials +from characterize_gauss_fit.output import write_csv, write_json_summary +from characterize_gauss_fit.plotting import plot_heatmap, save_figure +from characterize_gauss_fit.trial import TrialResult, TrialSpec + +_LOG = logging.getLogger(__name__) +_STUDY_NAME = 'box_vs_sigma' + + +def build_specs(cfg: Config) -> list[TrialSpec]: + """Build the full list of :class:`~trial.TrialSpec` objects for Study 1. + + Each spec represents one (box_size, sigma) combination with fixed offset + and no background or noise, with sigma left to float during fitting. + + Parameters: + cfg: The active :class:`~config.Config` instance. + + Returns: + A list of :class:`~trial.TrialSpec` objects. + """ + study = cfg.studies.box_vs_sigma + specs: list[TrialSpec] = [] + seed = 1000 + for box_size in study.box_sizes: + for sigma in study.sigmas: + specs.append( + utils.make_spec( + sigma_y=sigma, + sigma_x=sigma, + angle=study.angle, + offset_y=study.offset[0], + offset_x=study.offset[1], + scale=study.scale, + base=cfg.generation.base, + box_size=box_size, + fitting=study.fitting, + # sigma left to float (fit_sigma_y/x = None) + fit_angle=0.0, # axis-aligned; no need to fit angle + rng_seed=seed, + ) + ) + seed += 1 + return specs + + +def run(cfg: Config, *, num_workers: int = 1) -> None: + """Execute Study 1 and write all outputs. + + Parameters: + cfg: The active :class:`~config.Config` instance. + num_workers: Number of parallel worker processes. + """ + study = cfg.studies.box_vs_sigma + if not study.enabled: + _LOG.info('Study %s is disabled; skipping.', _STUDY_NAME) + return + + specs = build_specs(cfg) + _LOG.info('Study %s: %d trials', _STUDY_NAME, len(specs)) + + results = run_trials( + specs, + num_workers=num_workers, + progress_callback=utils.progress_callback(_STUDY_NAME), + ) + + study_dir = utils.ensure_study_dir(cfg.output_dir, _STUDY_NAME) + _write_outputs(cfg, specs, results, study_dir) + + +def _write_outputs( + cfg: Config, + specs: list[TrialSpec], + results: list[TrialResult], + study_dir: pathlib.Path, +) -> None: + """Write CSV, JSON, and PNG outputs for Study 1. + + Parameters: + cfg: The active :class:`~config.Config` instance. + specs: All trial specifications. + results: All trial results (same order as ``specs``). + study_dir: Output subdirectory for this study. + """ + study = cfg.studies.box_vs_sigma + box_sizes = study.box_sizes + sigmas = study.sigmas + + # Build 2-D arrays indexed by [box_size_idx, sigma_idx]. + n_box = len(box_sizes) + n_sigma = len(sigmas) + pos_err_grid = np.full((n_box, n_sigma), float('nan')) + sigma_y_err_grid = np.full((n_box, n_sigma), float('nan')) + sigma_x_err_grid = np.full((n_box, n_sigma), float('nan')) + scale_err_grid = np.full((n_box, n_sigma), float('nan')) + fail_mask = np.zeros((n_box, n_sigma), dtype=bool) + + spec_idx = 0 + for b_idx in range(n_box): + for s_idx in range(n_sigma): + r = results[spec_idx] + if not r.converged: + fail_mask[b_idx, s_idx] = True + else: + pos_err_grid[b_idx, s_idx] = r.pos_err + if r.sigma_y_err is not None: + sigma_y_err_grid[b_idx, s_idx] = abs(r.sigma_y_err) + if r.sigma_x_err is not None: + sigma_x_err_grid[b_idx, s_idx] = abs(r.sigma_x_err) + if np.isfinite(r.scale_err): + scale_err_grid[b_idx, s_idx] = abs(r.scale_err) + spec_idx += 1 + + x_labels = [f'{s:.2g}' for s in sigmas] + y_labels = [str(b) for b in box_sizes] + + for data, title, filename in [ + (pos_err_grid, 'Position error vs. box size and sigma', 'pos_err.png'), + ( + sigma_y_err_grid, + 'Relative |sigma_y| error vs. box size and sigma', + 'sigma_y_err.png', + ), + ( + sigma_x_err_grid, + 'Relative |sigma_x| error vs. box size and sigma', + 'sigma_x_err.png', + ), + (scale_err_grid, 'Relative |scale| error vs. box size and sigma', 'scale_err.png'), + ]: + fig = plot_heatmap( + data, + x_labels, + y_labels, + title=title, + xlabel='Sigma (pixels)', + ylabel='Box size (pixels)', + cbar_label='log10(error)', + log_scale=True, + mask=fail_mask, + ) + save_figure(fig, study_dir, filename) + + # CSV + write_csv(cfg.output_dir, _STUDY_NAME, specs, results) + + # JSON summary: group by (box_size, sigma) + groups = build_json_groups(specs, results) + write_json_summary( + cfg.output_dir, + _STUDY_NAME, + specs, + results, + groups=groups, + config_used=config_to_dict(cfg), + ) + _LOG.info('Study %s outputs written to %s', _STUDY_NAME, study_dir) + + +def build_json_groups(specs: list[TrialSpec], results: list[TrialResult]) -> list[dict[str, Any]]: + """Build JSON summary groups for Study 1, keyed by (box_size, sigma_y). + + Parameters: + specs: Trial specifications. + results: Trial results. + + Returns: + List of group dicts for :func:`~output.write_json_summary`. + """ + return utils.build_groups_by_keys( + specs, + results, + [ + ('box_size', lambda s: s.box_size), + ('sigma', lambda s: s.sigma_y), + ], + ) diff --git a/src/characterize_gauss_fit/study_constraints.py b/src/characterize_gauss_fit/study_constraints.py new file mode 100644 index 0000000..cf8f1c5 --- /dev/null +++ b/src/characterize_gauss_fit/study_constraints.py @@ -0,0 +1,268 @@ +################################################################################ +# characterize_gauss_fit/study_constraints.py +################################################################################ + +"""Study 5: Constraint modes (fixed vs floating PSF parameters). + +Tests how fixing sigma or angle (correctly or with error) affects the accuracy +of position, scale, sigma, and angle recovery. All four metrics are reported. +""" + +from __future__ import annotations + +import dataclasses +import logging +import pathlib +from typing import Any + +import numpy as np + +from characterize_gauss_fit import _study_utils as utils +from characterize_gauss_fit.config import Config, config_to_dict +from characterize_gauss_fit.executor import run_trials +from characterize_gauss_fit.output import write_csv, write_json_summary +from characterize_gauss_fit.plotting import plot_constraint_summary, save_figure +from characterize_gauss_fit.trial import TrialResult, TrialSpec + +_LOG = logging.getLogger(__name__) +_STUDY_NAME = 'constraint_modes' + + +@dataclasses.dataclass(frozen=True) +class ConstraintMode: + """A single fitter constraint configuration for Study 5. + + Specifies which PSF parameters are fixed and what values they are fixed at. + """ + + label: str + fit_sigma_y: float | None + fit_sigma_x: float | None + fit_angle: float | None + + +def _build_modes(cfg: Config) -> list[ConstraintMode]: + """Build the list of constraint modes from the study configuration. + + Modes cover the full spectrum from all-floating to all-fixed-with-error. + + Parameters: + cfg: The active :class:`~config.Config` instance. + + Returns: + A list of :class:`ConstraintMode` objects. + """ + study = cfg.studies.constraint_modes + modes: list[ConstraintMode] = [] + + # All parameters float. + modes.append(ConstraintMode('all_float', None, None, None)) + + # Sigma fixed at true value (error_frac=0) and with each error fraction. + # Angle is left to float in all sigma-fixed modes. + for frac in study.sigma_error_fractions: + if frac == 0.0: + label = 'sigma_fixed_correct' + else: + label = f'sigma_fixed_err{int(frac * 100):d}pct' + # Actual fixed values are applied per shape in build_specs; here we + # record the fraction, not the value, using a sentinel. + # We embed frac as a tag by setting it as the sigma values temporarily. + # The actual per-shape expansion happens in build_specs. + modes.append(ConstraintMode(label, frac, frac, None)) + + # Angle fixed at true value, sigma floats. + modes.append(ConstraintMode('angle_fixed_correct', None, None, 0.0)) + modes.append( + ConstraintMode( + 'angle_fixed_error', + None, + None, + study.angle_error_rad, + ) + ) + + # All fixed at correct values. + modes.append(ConstraintMode('all_fixed_correct', 0.0, 0.0, 0.0)) + + # All fixed with combined errors. + max_frac = max(study.sigma_error_fractions) if study.sigma_error_fractions else 0.0 + modes.append( + ConstraintMode( + 'all_fixed_errors', + max_frac, + max_frac, + study.angle_error_rad, + ) + ) + + return modes + + +def build_specs(cfg: Config) -> tuple[list[TrialSpec], list[ConstraintMode]]: + """Build trial specs for Study 5 and return the mode list for reference. + + Each (mode, shape) combination produces one trial. The fixed sigma/angle + values are computed from the true shape values and the mode's error fractions. + + Parameters: + cfg: The active :class:`~config.Config` instance. + + Returns: + A tuple of ``(specs, modes)`` where ``specs`` is the ordered trial list + and ``modes`` is the constraint mode list used to construct them. + """ + study = cfg.studies.constraint_modes + modes = _build_modes(cfg) + specs: list[TrialSpec] = [] + seed = 5000 + + for mode in modes: + for shape in study.psf_shapes: + true_sigma_y, true_sigma_x = shape.sigma + true_angle = shape.angle + + # Resolve fixed sigma values from mode fractions. + if mode.fit_sigma_y is None: + fit_sigma_y: float | None = None + elif mode.fit_sigma_y == 0.0: + fit_sigma_y = true_sigma_y + else: + # mode.fit_sigma_y is the error fraction (stored as float). + fit_sigma_y = true_sigma_y * (1.0 + float(mode.fit_sigma_y)) + + if mode.fit_sigma_x is None: + fit_sigma_x: float | None = None + elif mode.fit_sigma_x == 0.0: + fit_sigma_x = true_sigma_x + else: + fit_sigma_x = true_sigma_x * (1.0 + float(mode.fit_sigma_x)) + + # Resolve fixed angle values from mode. + if mode.fit_angle is None: + fit_angle: float | None = None + elif mode.fit_angle == 0.0: + fit_angle = true_angle + else: + fit_angle = true_angle + float(mode.fit_angle) + + specs.append( + utils.make_spec( + sigma_y=true_sigma_y, + sigma_x=true_sigma_x, + angle=true_angle, + offset_y=study.offset[0], + offset_x=study.offset[1], + scale=study.scale, + base=cfg.generation.base, + box_size=study.box_size, + fitting=study.fitting, + fit_sigma_y=fit_sigma_y, + fit_sigma_x=fit_sigma_x, + fit_angle=fit_angle, + rng_seed=seed, + ) + ) + seed += 1 + + return specs, modes + + +def run(cfg: Config, *, num_workers: int = 1) -> None: + """Execute Study 5 and write all outputs. + + Parameters: + cfg: The active :class:`~config.Config` instance. + num_workers: Number of parallel worker processes. + """ + study = cfg.studies.constraint_modes + if not study.enabled: + _LOG.info('Study %s is disabled; skipping.', _STUDY_NAME) + return + + specs, modes = build_specs(cfg) + _LOG.info('Study %s: %d trials', _STUDY_NAME, len(specs)) + + results = run_trials( + specs, + num_workers=num_workers, + progress_callback=utils.progress_callback(_STUDY_NAME), + ) + + study_dir = utils.ensure_study_dir(cfg.output_dir, _STUDY_NAME) + _write_outputs(cfg, specs, results, study_dir, modes) + + +def _write_outputs( + cfg: Config, + specs: list[TrialSpec], + results: list[TrialResult], + study_dir: pathlib.Path, + modes: list[ConstraintMode], +) -> None: + """Write CSV, JSON, and PNG outputs for Study 5. + + Parameters: + cfg: The active :class:`~config.Config` instance. + specs: All trial specifications. + results: All trial results. + study_dir: Output subdirectory. + modes: Constraint modes used to generate specs. + """ + study = cfg.studies.constraint_modes + n_shapes = len(study.psf_shapes) + n_modes = len(modes) + + shape_labels = [ + f's=({s.sigma[0]:.1f},{s.sigma[1]:.1f}),a={s.angle:.2f}' for s in study.psf_shapes + ] + mode_labels = [m.label for m in modes] + + # Build (n_modes, n_shapes) arrays for each metric. + pos_err_vals = np.full((n_modes, n_shapes), float('nan')) + scale_err_vals = np.full((n_modes, n_shapes), float('nan')) + sigma_y_err_vals = np.full((n_modes, n_shapes), float('nan')) + angle_err_vals = np.full((n_modes, n_shapes), float('nan')) + + for m_idx in range(n_modes): + for s_idx in range(n_shapes): + result = results[m_idx * n_shapes + s_idx] + if result.converged: + pos_err_vals[m_idx, s_idx] = result.pos_err + if np.isfinite(result.scale_err): + scale_err_vals[m_idx, s_idx] = abs(result.scale_err) + if result.sigma_y_err is not None: + sigma_y_err_vals[m_idx, s_idx] = abs(result.sigma_y_err) + if result.angle_err is not None and np.isfinite(result.angle_err): + angle_err_vals[m_idx, s_idx] = result.angle_err + + fig = plot_constraint_summary( + mode_labels, + shape_labels, + pos_err_vals, + scale_err_vals, + sigma_y_err_vals, + angle_err_vals, + title='Effect of parameter constraints on fitting accuracy', + ) + save_figure(fig, study_dir, 'constraint_summary.png') + + write_csv(cfg.output_dir, _STUDY_NAME, specs, results) + + groups: list[dict[str, Any]] = utils.build_groups_by_keys( + specs, + results, + [ + ('constraint_mode_idx', lambda s: specs.index(s) // n_shapes), + ('psf_shape_idx', lambda s: specs.index(s) % n_shapes), + ], + ) + write_json_summary( + cfg.output_dir, + _STUDY_NAME, + specs, + results, + groups=groups, + config_used=config_to_dict(cfg), + ) + _LOG.info('Study %s outputs written to %s', _STUDY_NAME, study_dir) diff --git a/src/characterize_gauss_fit/study_hot_pixels.py b/src/characterize_gauss_fit/study_hot_pixels.py new file mode 100644 index 0000000..6114284 --- /dev/null +++ b/src/characterize_gauss_fit/study_hot_pixels.py @@ -0,0 +1,201 @@ +################################################################################ +# characterize_gauss_fit/study_hot_pixels.py +################################################################################ + +"""Study 8: Hot pixel rejection. + +Varies the number, amplitude, and sigma-rejection threshold for hot pixels to +measure how effectively the PSF fitter's bad-pixel rejection works. +""" + +from __future__ import annotations + +import dataclasses +import logging +import pathlib +from typing import Any + +import numpy as np +import numpy.typing as npt + +from characterize_gauss_fit import _study_utils as utils +from characterize_gauss_fit.config import Config, config_to_dict +from characterize_gauss_fit.executor import run_trials +from characterize_gauss_fit.output import write_csv, write_json_summary +from characterize_gauss_fit.plotting import plot_line_with_bands, save_figure +from characterize_gauss_fit.trial import TrialResult, TrialSpec + +_LOG = logging.getLogger(__name__) +_STUDY_NAME = 'hot_pixel_rejection' + + +def build_specs(cfg: Config) -> list[TrialSpec]: + """Build trial specs for Study 8. + + Iterates over (num_hot_pixels, num_sigma, hot_amplitude) combinations. + For each, generates ``noise_samples`` trials with randomised hot-pixel + positions (different RNG seeds). + + Parameters: + cfg: The active :class:`~config.Config` instance. + + Returns: + A list of :class:`~trial.TrialSpec` objects ordered by + [num_hot, num_sigma_val, hot_amp, trial_idx]. + """ + study = cfg.studies.hot_pixel_rejection + scale = cfg.generation.scale + noise_rms = scale / study.snr + + # Build num_sigma list including null if requested. + num_sigma_list: list[float | None] = [] + if study.num_sigma_with_null: + num_sigma_list.append(None) + num_sigma_list.extend(study.num_sigma_values) + + specs: list[TrialSpec] = [] + seed = 8000 + + for n_hot in study.num_hot_pixels: + for ns_val in num_sigma_list: + for hot_amp in study.hot_amplitudes: + fitting = dataclasses.replace(study.fitting, num_sigma=ns_val) + for _ in range(study.noise_samples): + specs.append( + utils.make_spec( + sigma_y=study.sigma[0], + sigma_x=study.sigma[1], + angle=0.0, + offset_y=study.offset[0], + offset_x=study.offset[1], + scale=scale, + base=cfg.generation.base, + box_size=study.box_size, + fitting=fitting, + fit_angle=0.0, + noise_rms=noise_rms, + hot_pixel_count=n_hot, + hot_pixel_amplitude=hot_amp, + rng_seed=seed, + ) + ) + seed += 1 + + return specs + + +def run(cfg: Config, *, num_workers: int = 1) -> None: + """Execute Study 8 and write all outputs. + + Parameters: + cfg: The active :class:`~config.Config` instance. + num_workers: Number of parallel worker processes. + """ + study = cfg.studies.hot_pixel_rejection + if not study.enabled: + _LOG.info('Study %s is disabled; skipping.', _STUDY_NAME) + return + + specs = build_specs(cfg) + _LOG.info('Study %s: %d trials', _STUDY_NAME, len(specs)) + + results = run_trials( + specs, + num_workers=num_workers, + progress_callback=utils.progress_callback(_STUDY_NAME), + ) + + study_dir = utils.ensure_study_dir(cfg.output_dir, _STUDY_NAME) + _write_outputs(cfg, specs, results, study_dir) + + +def _write_outputs( + cfg: Config, + specs: list[TrialSpec], + results: list[TrialResult], + study_dir: pathlib.Path, +) -> None: + """Write CSV, JSON, and PNG outputs for Study 8. + + Parameters: + cfg: The active :class:`~config.Config` instance. + specs: All trial specifications. + results: All trial results. + study_dir: Output subdirectory. + """ + study = cfg.studies.hot_pixel_rejection + + num_sigma_list: list[float | None] = [] + if study.num_sigma_with_null: + num_sigma_list.append(None) + num_sigma_list.extend(study.num_sigma_values) + + n_hot_list = study.num_hot_pixels + hot_amps = study.hot_amplitudes + + x_arr = np.array(n_hot_list, dtype=float) + x_labels = [str(n) for n in n_hot_list] + ns_labels = ['no_rejection' if ns is None else f'num_sigma={ns:.0f}' for ns in num_sigma_list] + + n_ns = len(num_sigma_list) + n_hot = len(n_hot_list) + + for ha_idx, hot_amp in enumerate(hot_amps): + y_means: list[npt.NDArray[np.float64]] = [] + y_stds: list[npt.NDArray[np.float64]] = [] + + for ns_val in num_sigma_list: + means: list[float] = [] + stds: list[float] = [] + for n_hot_count in n_hot_list: + # Find matching results. + bucket: list[TrialResult] = [] + for spec, result in zip(specs, results, strict=False): + if ( + spec.hot_pixel_count == n_hot_count + and spec.num_sigma == ns_val + and abs(spec.hot_pixel_amplitude - hot_amp) < 1e-9 + ): + bucket.append(result) + arr = utils.collect_metric(bucket, 'pos_err') + means.append(utils.safe_nanmean(arr)) + stds.append(utils.safe_nanstd(arr)) + y_means.append(np.array(means)) + y_stds.append(np.array(stds)) + + fig = plot_line_with_bands( + x_arr, + y_means, + y_stds, + labels=ns_labels, + title=f'Position error vs. hot pixels -- amplitude={hot_amp:.0f}x peak', + xlabel='Number of hot pixels', + ylabel='Mean position error (pixels)', + log_y=True, + ) + save_figure(fig, study_dir, f'pos_err_hotamp{ha_idx}.png') + + _ = n_hot + _ = n_ns + _ = x_labels + + write_csv(cfg.output_dir, _STUDY_NAME, specs, results) + + groups: list[dict[str, Any]] = utils.build_groups_by_keys( + specs, + results, + [ + ('num_hot_pixels', lambda s: s.hot_pixel_count), + ('num_sigma', lambda s: s.num_sigma), + ('hot_amplitude', lambda s: s.hot_pixel_amplitude), + ], + ) + write_json_summary( + cfg.output_dir, + _STUDY_NAME, + specs, + results, + groups=groups, + config_used=config_to_dict(cfg), + ) + _LOG.info('Study %s outputs written to %s', _STUDY_NAME, study_dir) diff --git a/src/characterize_gauss_fit/study_min_offset.py b/src/characterize_gauss_fit/study_min_offset.py new file mode 100644 index 0000000..03e683b --- /dev/null +++ b/src/characterize_gauss_fit/study_min_offset.py @@ -0,0 +1,277 @@ +################################################################################ +# characterize_gauss_fit/study_min_offset.py +################################################################################ + +"""Study 3: Minimum detectable position offset. + +Measures how small a sub-pixel offset delta can be reliably recovered as a +function of PSF sigma and noise level. Reports both mean position error and a +recovery fraction metric. +""" + +from __future__ import annotations + +import logging +import pathlib +from typing import Any + +import numpy as np +import numpy.typing as npt + +from characterize_gauss_fit import _study_utils as utils +from characterize_gauss_fit.config import Config, config_to_dict +from characterize_gauss_fit.executor import run_trials +from characterize_gauss_fit.output import write_csv, write_json_summary +from characterize_gauss_fit.plotting import ( + plot_line_with_bands, + plot_recovery_fraction_heatmap, + save_figure, +) +from characterize_gauss_fit.trial import TrialResult, TrialSpec + +_LOG = logging.getLogger(__name__) +_STUDY_NAME = 'min_detectable_offset' + +# A string sentinel used in CSV/JSON to label the noiseless condition. +_NOISELESS_LABEL = 'noiseless' + + +def _snr_to_noise_rms(snr: float, scale: float) -> float: + """Convert SNR (peak / noise_rms) to noise_rms. + + Parameters: + snr: Signal-to-noise ratio (PSF peak / noise std). + scale: PSF amplitude scale factor (determines peak value). + + Returns: + Corresponding noise standard deviation. + """ + # PSF peak for a unit Gaussian integrated over a pixel is approximately + # scale * gaussian_peak, but we use scale as the amplitude directly since + # eval_rect is normalised. A reasonable approximation for typical sigmas + # is peak ~ scale * 0.16 (for sigma=1). To avoid sigma dependence we set + # noise_rms = scale / snr, which equals SNR = peak only when sigma is large + # enough that the peak pixel captures most of the flux. This is consistent + # with how study_noise.py treats SNR. + return scale / snr + + +def build_specs(cfg: Config) -> list[TrialSpec]: + """Build trial specs for Study 3. + + For each (delta, sigma) pair and each noise condition (noiseless + each + SNR), generates ``noise_samples`` trials with different random seeds + (1 trial for noiseless). + + Parameters: + cfg: The active :class:`~config.Config` instance. + + Returns: + A flat list of :class:`~trial.TrialSpec` objects. + """ + study = cfg.studies.min_detectable_offset + scale = cfg.generation.scale + specs: list[TrialSpec] = [] + seed = 3000 + + # Noise conditions: (noise_rms, snr_label) pairs. + conditions: list[tuple[float, str]] = [] + if study.include_noiseless: + conditions.append((0.0, _NOISELESS_LABEL)) + for snr_val in study.snr_values: + conditions.append((_snr_to_noise_rms(snr_val, scale), f'snr_{snr_val:.0f}')) + + for delta in study.delta_offsets: + for sigma in study.sigmas: + for noise_rms, _snr_label in conditions: + n_trials = 1 if noise_rms == 0.0 else study.noise_samples + for _ in range(n_trials): + specs.append( + utils.make_spec( + sigma_y=sigma, + sigma_x=sigma, + angle=0.0, + # Inject the offset purely in X for simplicity. + offset_y=0.0, + offset_x=delta, + scale=scale, + base=cfg.generation.base, + box_size=study.box_size, + fitting=study.fitting, + fit_angle=0.0, + noise_rms=noise_rms, + rng_seed=seed, + ) + ) + seed += 1 + + return specs + + +def run(cfg: Config, *, num_workers: int = 1) -> None: + """Execute Study 3 and write all outputs. + + Parameters: + cfg: The active :class:`~config.Config` instance. + num_workers: Number of parallel worker processes. + """ + study = cfg.studies.min_detectable_offset + if not study.enabled: + _LOG.info('Study %s is disabled; skipping.', _STUDY_NAME) + return + + specs = build_specs(cfg) + _LOG.info('Study %s: %d trials', _STUDY_NAME, len(specs)) + + results = run_trials( + specs, + num_workers=num_workers, + progress_callback=utils.progress_callback(_STUDY_NAME), + ) + + study_dir = utils.ensure_study_dir(cfg.output_dir, _STUDY_NAME) + _write_outputs(cfg, specs, results, study_dir) + + +def _write_outputs( + cfg: Config, + specs: list[TrialSpec], + results: list[TrialResult], + study_dir: pathlib.Path, +) -> None: + """Write CSV, JSON, and PNG outputs for Study 3. + + Parameters: + cfg: The active :class:`~config.Config` instance. + specs: All trial specifications. + results: All trial results. + study_dir: Output subdirectory. + """ + study = cfg.studies.min_detectable_offset + scale = cfg.generation.scale + deltas = study.delta_offsets + sigmas = study.sigmas + + conditions: list[tuple[float, str]] = [] + if study.include_noiseless: + conditions.append((0.0, _NOISELESS_LABEL)) + for snr_val in study.snr_values: + conditions.append((_snr_to_noise_rms(snr_val, scale), f'snr_{snr_val:.0f}')) + + # Map (delta, sigma, condition_label) -> list of TrialResult. + result_map: dict[tuple[float, float, str], list[TrialResult]] = {} + idx = 0 + for delta in deltas: + for sigma in sigmas: + for noise_rms, cond_label in conditions: + n_trials = 1 if noise_rms == 0.0 else study.noise_samples + bucket_key = (delta, sigma, cond_label) + result_map[bucket_key] = results[idx : idx + n_trials] + idx += n_trials + + x_arr = np.array(deltas) + delta_labels = [f'{d:.3g}' for d in deltas] + sigma_labels = [f'{s:.2g}' for s in sigmas] + + # Line plots: one per condition. + for _noise_rms, cond_label in conditions: + y_means: list[npt.NDArray[np.float64]] = [] + y_stds: list[npt.NDArray[np.float64]] = [] + line_labels: list[str] = [] + + for sigma in sigmas: + means_per_delta: list[float] = [] + stds_per_delta: list[float] = [] + for delta in deltas: + bucket = result_map[(delta, sigma, cond_label)] + errs = np.array([r.pos_err for r in bucket if r.converged], dtype=np.float64) + errs = errs[np.isfinite(errs)] + if len(errs) == 0: + means_per_delta.append(float('nan')) + stds_per_delta.append(float('nan')) + else: + means_per_delta.append(float(np.mean(errs))) + stds_per_delta.append(float(np.std(errs, ddof=1)) if len(errs) > 1 else 0.0) + y_means.append(np.array(means_per_delta)) + y_stds.append(np.array(stds_per_delta)) + line_labels.append(f'sigma={sigma:.2g}') + + fig = plot_line_with_bands( + x_arr, + y_means, + y_stds, + labels=line_labels, + title=f'Min detectable offset -- {cond_label}', + xlabel='Injected offset delta (pixels)', + ylabel='Mean position error (pixels)', + log_x=True, + log_y=True, + ) + save_figure(fig, study_dir, f'pos_err_{cond_label}.png') + + # Recovery fraction heatmap: one per SNR condition (skip noiseless). + for noise_rms, cond_label in conditions: + if noise_rms == 0.0: + continue + rec_grid = np.zeros((len(sigmas), len(deltas))) + for s_idx, sigma in enumerate(sigmas): + for d_idx, delta in enumerate(deltas): + bucket = result_map[(delta, sigma, cond_label)] + rec_grid[s_idx, d_idx] = utils.recovery_fraction(bucket, delta=delta) + + fig = plot_recovery_fraction_heatmap( + rec_grid, + delta_labels, + sigma_labels, + title=f'Recovery fraction -- {cond_label}', + xlabel='Injected offset delta (pixels)', + ylabel='Sigma (pixels)', + ) + save_figure(fig, study_dir, f'recovery_{cond_label}.png') + + write_csv(cfg.output_dir, _STUDY_NAME, specs, results) + + groups = _build_json_groups(specs, results, conditions) + write_json_summary( + cfg.output_dir, + _STUDY_NAME, + specs, + results, + groups=groups, + config_used=config_to_dict(cfg), + ) + _LOG.info('Study %s outputs written to %s', _STUDY_NAME, study_dir) + + +def _build_json_groups( + specs: list[TrialSpec], + results: list[TrialResult], + conditions: list[tuple[float, str]], +) -> list[dict[str, Any]]: + """Build JSON summary groups for Study 3. + + Groups by (delta_offset, sigma, noise_condition). + + Parameters: + specs: Trial specifications. + results: Trial results. + conditions: List of ``(noise_rms, label)`` pairs. + + Returns: + List of group dicts for :func:`~output.write_json_summary`. + """ + condition_map: dict[float, str] = dict(conditions) + + def _cond_label(spec: TrialSpec) -> str: + label = condition_map.get(spec.noise_rms) + return label if label is not None else f'noise_{spec.noise_rms:.3g}' + + return utils.build_groups_by_keys( + specs, + results, + [ + ('delta_offset', lambda s: s.offset_x), + ('sigma', lambda s: s.sigma_y), + ('noise_condition', _cond_label), + ], + ) diff --git a/src/characterize_gauss_fit/study_noise.py b/src/characterize_gauss_fit/study_noise.py new file mode 100644 index 0000000..24e0132 --- /dev/null +++ b/src/characterize_gauss_fit/study_noise.py @@ -0,0 +1,196 @@ +################################################################################ +# characterize_gauss_fit/study_noise.py +################################################################################ + +"""Study 7: Noise sensitivity (SNR sweep). + +Sweeps a log-spaced range of signal-to-noise ratios and measures position, +sigma, and scale recovery accuracy as a function of SNR and PSF sigma. +""" + +from __future__ import annotations + +import logging +import math +import pathlib +from typing import Any + +import numpy as np +import numpy.typing as npt + +from characterize_gauss_fit import _study_utils as utils +from characterize_gauss_fit.config import Config, config_to_dict +from characterize_gauss_fit.executor import run_trials +from characterize_gauss_fit.output import write_csv, write_json_summary +from characterize_gauss_fit.plotting import plot_line_with_bands, save_figure +from characterize_gauss_fit.trial import TrialResult, TrialSpec + +_LOG = logging.getLogger(__name__) +_STUDY_NAME = 'noise_sensitivity' + + +def build_specs(cfg: Config) -> list[TrialSpec]: + """Build trial specs for Study 7. + + For each (SNR, sigma) combination, generates ``noise_samples`` trials + with random offsets and different noise realisations. + + Parameters: + cfg: The active :class:`~config.Config` instance. + + Returns: + A list of :class:`~trial.TrialSpec` objects ordered by + [snr, sigma, trial_idx]. + """ + study = cfg.studies.noise_sensitivity + scale = cfg.generation.scale + + log_lo, log_hi = study.snr_log_range + snr_values = np.logspace(log_lo, log_hi, study.snr_steps) + + specs: list[TrialSpec] = [] + rng = np.random.default_rng(7000) + seed_counter = 7000 + + for snr in snr_values: + noise_rms = scale / snr + for sigma in study.sigmas: + for _ in range(study.noise_samples): + # Randomise offset uniformly in [-0.5, 0.5]. + oy = float(rng.uniform(-0.5, 0.5)) + ox = float(rng.uniform(-0.5, 0.5)) + specs.append( + utils.make_spec( + sigma_y=sigma, + sigma_x=sigma, + angle=0.0, + offset_y=oy, + offset_x=ox, + scale=scale, + base=cfg.generation.base, + box_size=study.box_size, + fitting=study.fitting, + fit_angle=0.0, + noise_rms=noise_rms, + rng_seed=seed_counter, + ) + ) + seed_counter += 1 + + return specs + + +def run(cfg: Config, *, num_workers: int = 1) -> None: + """Execute Study 7 and write all outputs. + + Parameters: + cfg: The active :class:`~config.Config` instance. + num_workers: Number of parallel worker processes. + """ + study = cfg.studies.noise_sensitivity + if not study.enabled: + _LOG.info('Study %s is disabled; skipping.', _STUDY_NAME) + return + + specs = build_specs(cfg) + _LOG.info('Study %s: %d trials', _STUDY_NAME, len(specs)) + + results = run_trials( + specs, + num_workers=num_workers, + progress_callback=utils.progress_callback(_STUDY_NAME), + ) + + study_dir = utils.ensure_study_dir(cfg.output_dir, _STUDY_NAME) + _write_outputs(cfg, specs, results, study_dir) + + +def _write_outputs( + cfg: Config, + specs: list[TrialSpec], + results: list[TrialResult], + study_dir: pathlib.Path, +) -> None: + """Write CSV, JSON, and PNG outputs for Study 7. + + Parameters: + cfg: The active :class:`~config.Config` instance. + specs: All trial specifications. + results: All trial results. + study_dir: Output subdirectory. + """ + study = cfg.studies.noise_sensitivity + scale = cfg.generation.scale + + log_lo, log_hi = study.snr_log_range + snr_values = list(np.logspace(log_lo, log_hi, study.snr_steps)) + n_snr = len(snr_values) + n_sigma = len(study.sigmas) + n_samples = study.noise_samples + + snr_arr = np.array(snr_values) + trials_per_snr_sigma = n_samples + + def _collect_metric_grid( + metric: str, + ) -> tuple[list[npt.NDArray[np.float64]], list[npt.NDArray[np.float64]]]: + """Compute per-SNR mean and std for one metric, one array per sigma.""" + all_means: list[npt.NDArray[np.float64]] = [] + all_stds: list[npt.NDArray[np.float64]] = [] + for s_idx in range(n_sigma): + means: list[float] = [] + stds: list[float] = [] + for snr_idx in range(n_snr): + start = snr_idx * n_sigma * n_samples + s_idx * n_samples + bucket = results[start : start + trials_per_snr_sigma] + arr = utils.collect_metric(bucket, metric) + means.append(utils.safe_nanmean(arr)) + stds.append(utils.safe_nanstd(arr)) + all_means.append(np.array(means)) + all_stds.append(np.array(stds)) + return all_means, all_stds + + sigma_labels = [f'sigma={s:.1f}' for s in study.sigmas] + + for metric, ylabel, fname in [ + ('pos_err', 'Position error (pixels)', 'pos_err_vs_snr.png'), + ('sigma_y_err', 'Relative |sigma_y| error', 'sigma_y_err_vs_snr.png'), + ('sigma_x_err', 'Relative |sigma_x| error', 'sigma_x_err_vs_snr.png'), + ('scale_err', 'Relative |scale| error', 'scale_err_vs_snr.png'), + ]: + means, stds = _collect_metric_grid(metric) + # Take absolute value for relative error metrics. + if metric != 'pos_err': + means = [np.abs(m) for m in means] + fig = plot_line_with_bands( + snr_arr, + means, + stds, + labels=sigma_labels, + title=f'{ylabel} vs. SNR', + xlabel='SNR (peak / noise RMS)', + ylabel=ylabel, + log_x=True, + log_y=True, + ) + save_figure(fig, study_dir, fname) + + write_csv(cfg.output_dir, _STUDY_NAME, specs, results) + + groups: list[dict[str, Any]] = utils.build_groups_by_keys( + specs, + results, + [ + ('snr', lambda s: round(scale / s.noise_rms, 1) if s.noise_rms > 0 else math.inf), + ('sigma', lambda s: s.sigma_y), + ], + ) + write_json_summary( + cfg.output_dir, + _STUDY_NAME, + specs, + results, + groups=groups, + config_used=config_to_dict(cfg), + ) + _LOG.info('Study %s outputs written to %s', _STUDY_NAME, study_dir) diff --git a/src/characterize_gauss_fit/study_offset.py b/src/characterize_gauss_fit/study_offset.py new file mode 100644 index 0000000..511e36b --- /dev/null +++ b/src/characterize_gauss_fit/study_offset.py @@ -0,0 +1,215 @@ +################################################################################ +# characterize_gauss_fit/study_offset.py +################################################################################ + +"""Study 2: Subpixel offset bias. + +Explores how the fractional pixel position of the PSF centre introduces +systematic bias in the recovered position. +""" + +from __future__ import annotations + +import logging +import pathlib +from typing import Any + +import numpy as np +import numpy.typing as npt + +from characterize_gauss_fit import _study_utils as utils +from characterize_gauss_fit.config import Config, config_to_dict +from characterize_gauss_fit.executor import run_trials +from characterize_gauss_fit.output import write_csv, write_json_summary +from characterize_gauss_fit.plotting import plot_heatmap, plot_line_with_bands, save_figure +from characterize_gauss_fit.trial import TrialResult, TrialSpec + +_LOG = logging.getLogger(__name__) +_STUDY_NAME = 'subpixel_offset' + + +def build_specs(cfg: Config) -> list[TrialSpec]: + """Build trial specs for Study 2. + + Generates a 2-D grid of (offset_y, offset_x) combinations for each sigma. + Sigma is left to float during fitting. + + Parameters: + cfg: The active :class:`~config.Config` instance. + + Returns: + A list of :class:`~trial.TrialSpec` objects, ordered by + [sigma, offset_y, offset_x]. + """ + study = cfg.studies.subpixel_offset + offsets = np.linspace(study.offset_range[0], study.offset_range[1], study.offset_steps) + specs: list[TrialSpec] = [] + seed = 2000 + for sigma in study.sigmas: + for oy in offsets: + for ox in offsets: + specs.append( + utils.make_spec( + sigma_y=sigma, + sigma_x=sigma, + angle=study.angle, + offset_y=float(oy), + offset_x=float(ox), + scale=cfg.generation.scale, + base=cfg.generation.base, + box_size=study.box_size, + fitting=study.fitting, + fit_angle=0.0, + rng_seed=seed, + ) + ) + seed += 1 + return specs + + +def run(cfg: Config, *, num_workers: int = 1) -> None: + """Execute Study 2 and write all outputs. + + Parameters: + cfg: The active :class:`~config.Config` instance. + num_workers: Number of parallel worker processes. + """ + study = cfg.studies.subpixel_offset + if not study.enabled: + _LOG.info('Study %s is disabled; skipping.', _STUDY_NAME) + return + + specs = build_specs(cfg) + _LOG.info('Study %s: %d trials', _STUDY_NAME, len(specs)) + + results = run_trials( + specs, + num_workers=num_workers, + progress_callback=utils.progress_callback(_STUDY_NAME), + ) + + study_dir = utils.ensure_study_dir(cfg.output_dir, _STUDY_NAME) + _write_outputs(cfg, specs, results, study_dir) + + +def _write_outputs( + cfg: Config, + specs: list[TrialSpec], + results: list[TrialResult], + study_dir: pathlib.Path, +) -> None: + """Write CSV, JSON, and PNG outputs for Study 2. + + Parameters: + cfg: The active :class:`~config.Config` instance. + specs: All trial specifications. + results: All trial results. + study_dir: Output subdirectory. + """ + study = cfg.studies.subpixel_offset + offsets = list(np.linspace(study.offset_range[0], study.offset_range[1], study.offset_steps)) + n_off = study.offset_steps + sigmas = study.sigmas + + offset_labels = [f'{v:.2f}' for v in offsets] + + # Heatmaps: one per sigma value. + step = n_off * n_off # trials per sigma + for s_idx, sigma in enumerate(sigmas): + slice_results = results[s_idx * step : (s_idx + 1) * step] + grid = np.full((n_off, n_off), float('nan')) + fail_mask = np.zeros((n_off, n_off), dtype=bool) + for oy_idx in range(n_off): + for ox_idx in range(n_off): + r = slice_results[oy_idx * n_off + ox_idx] + if not r.converged: + fail_mask[oy_idx, ox_idx] = True + else: + grid[oy_idx, ox_idx] = r.pos_err + + fig = plot_heatmap( + grid, + offset_labels, + offset_labels, + title=f'Position error vs. offset (sigma={sigma:.1f})', + xlabel='offset_x (pixels)', + ylabel='offset_y (pixels)', + cbar_label='log10(pos error)', + log_scale=True, + mask=fail_mask, + ) + save_figure(fig, study_dir, f'pos_err_sigma{sigma:.1f}.png') + + # Line plot: pos error vs offset_x at offset_y=0.25 for all sigmas. + # Use the midpoint of the offset range as the fixed offset_y row. + mid_oy_idx = n_off // 2 + x_arr = np.array(offsets) + y_means: list[npt.NDArray[np.float64]] = [] + y_stds: list[npt.NDArray[np.float64]] = [] + line_labels: list[str] = [] + + for s_idx, sigma in enumerate(sigmas): + slice_results = results[s_idx * step : (s_idx + 1) * step] + row: list[float] = [] + for ox_idx in range(n_off): + r = slice_results[mid_oy_idx * n_off + ox_idx] + row.append(r.pos_err if r.converged else float('nan')) + arr = np.array(row, dtype=np.float64) + y_means.append(arr) + y_stds.append(np.zeros_like(arr)) # single trial; no std + line_labels.append(f'sigma={sigma:.1f}') + + mid_oy = offsets[mid_oy_idx] + fig = plot_line_with_bands( + x_arr, + y_means, + y_stds, + labels=line_labels, + title=f'Position error vs. offset_x at offset_y={mid_oy:.2f}', + xlabel='offset_x (pixels)', + ylabel='Position error (pixels)', + log_y=True, + ) + save_figure(fig, study_dir, 'pos_err_vs_offset_x.png') + + write_csv(cfg.output_dir, _STUDY_NAME, specs, results) + + groups = utils.build_groups_by_keys( + specs, + results, + [ + ('sigma', lambda s: s.sigma_y), + ('offset_y', lambda s: round(s.offset_y, 6)), + ('offset_x', lambda s: round(s.offset_x, 6)), + ], + ) + write_json_summary( + cfg.output_dir, + _STUDY_NAME, + specs, + results, + groups=groups, + config_used=config_to_dict(cfg), + ) + _LOG.info('Study %s outputs written to %s', _STUDY_NAME, study_dir) + + +def build_json_groups(specs: list[TrialSpec], results: list[TrialResult]) -> list[dict[str, Any]]: + """Build JSON summary groups for Study 2. + + Parameters: + specs: Trial specifications. + results: Trial results. + + Returns: + List of group dicts for :func:`~output.write_json_summary`. + """ + return utils.build_groups_by_keys( + specs, + results, + [ + ('sigma', lambda s: s.sigma_y), + ('offset_y', lambda s: round(s.offset_y, 6)), + ('offset_x', lambda s: round(s.offset_x, 6)), + ], + ) diff --git a/src/characterize_gauss_fit/study_shape.py b/src/characterize_gauss_fit/study_shape.py new file mode 100644 index 0000000..65c609a --- /dev/null +++ b/src/characterize_gauss_fit/study_shape.py @@ -0,0 +1,189 @@ +################################################################################ +# characterize_gauss_fit/study_shape.py +################################################################################ + +"""Study 4: Sigma asymmetry and angle recovery. + +Explores how well elongated (asymmetric) and rotated PSFs are recovered across +a grid of sigma ratios and rotation angles. +""" + +from __future__ import annotations + +import logging +import math +import pathlib +from typing import Any + +import numpy as np + +from characterize_gauss_fit import _study_utils as utils +from characterize_gauss_fit.config import Config, config_to_dict +from characterize_gauss_fit.executor import run_trials +from characterize_gauss_fit.output import write_csv, write_json_summary +from characterize_gauss_fit.plotting import plot_heatmap, save_figure +from characterize_gauss_fit.trial import TrialResult, TrialSpec + +_LOG = logging.getLogger(__name__) +_STUDY_NAME = 'sigma_asymmetry_angle' + +# When sigma_ratio is within this tolerance of 1.0, the PSF is effectively +# circular and angle is degenerate. Angle error is not meaningful in this case. +_CIRCULAR_TOLERANCE = 1e-3 + + +def build_specs(cfg: Config) -> list[TrialSpec]: + """Build trial specs for Study 4. + + For each (sigma_ratio, angle, sigma_x) combination, creates a spec with + all PSF parameters left to float. + + Parameters: + cfg: The active :class:`~config.Config` instance. + + Returns: + A list of :class:`~trial.TrialSpec` objects ordered by + [sigma_x, sigma_ratio, angle]. + """ + study = cfg.studies.sigma_asymmetry_angle + angles = np.linspace(0.0, math.pi, study.angle_steps) + specs: list[TrialSpec] = [] + seed = 4000 + for sigma_x in study.sigma_x_values: + for ratio in study.sigma_ratios: + sigma_y = sigma_x * ratio + for angle in angles: + specs.append( + utils.make_spec( + sigma_y=sigma_y, + sigma_x=sigma_x, + angle=float(angle), + offset_y=study.offset[0], + offset_x=study.offset[1], + scale=cfg.generation.scale, + base=cfg.generation.base, + box_size=study.box_size, + fitting=study.fitting, + # All parameters float. + rng_seed=seed, + ) + ) + seed += 1 + return specs + + +def run(cfg: Config, *, num_workers: int = 1) -> None: + """Execute Study 4 and write all outputs. + + Parameters: + cfg: The active :class:`~config.Config` instance. + num_workers: Number of parallel worker processes. + """ + study = cfg.studies.sigma_asymmetry_angle + if not study.enabled: + _LOG.info('Study %s is disabled; skipping.', _STUDY_NAME) + return + + specs = build_specs(cfg) + _LOG.info('Study %s: %d trials', _STUDY_NAME, len(specs)) + + results = run_trials( + specs, + num_workers=num_workers, + progress_callback=utils.progress_callback(_STUDY_NAME), + ) + + study_dir = utils.ensure_study_dir(cfg.output_dir, _STUDY_NAME) + _write_outputs(cfg, specs, results, study_dir) + + +def _write_outputs( + cfg: Config, + specs: list[TrialSpec], + results: list[TrialResult], + study_dir: pathlib.Path, +) -> None: + """Write CSV, JSON, and PNG outputs for Study 4. + + Parameters: + cfg: The active :class:`~config.Config` instance. + specs: All trial specifications. + results: All trial results. + study_dir: Output subdirectory. + """ + study = cfg.studies.sigma_asymmetry_angle + angles = list(np.linspace(0.0, math.pi, study.angle_steps)) + n_angles = len(angles) + n_ratios = len(study.sigma_ratios) + n_sigma_x = len(study.sigma_x_values) + + angle_labels = [f'{a / math.pi:.2f}pi' for a in angles] + ratio_labels = [f'{r:.2f}' for r in study.sigma_ratios] + + trials_per_sigma_x = n_ratios * n_angles + + for sx_idx, sigma_x in enumerate(study.sigma_x_values): + base_idx = sx_idx * trials_per_sigma_x + pos_err_grid = np.full((n_ratios, n_angles), float('nan')) + angle_err_grid = np.full((n_ratios, n_angles), float('nan')) + sigma_y_err_grid = np.full((n_ratios, n_angles), float('nan')) + fail_mask = np.zeros((n_ratios, n_angles), dtype=bool) + + for r_idx, ratio in enumerate(study.sigma_ratios): + is_circular = abs(ratio - 1.0) < _CIRCULAR_TOLERANCE + for a_idx in range(n_angles): + result = results[base_idx + r_idx * n_angles + a_idx] + if not result.converged: + fail_mask[r_idx, a_idx] = True + continue + pos_err_grid[r_idx, a_idx] = result.pos_err + if result.sigma_y_err is not None: + sigma_y_err_grid[r_idx, a_idx] = abs(result.sigma_y_err) + if not is_circular and result.angle_err is not None: + angle_err_grid[r_idx, a_idx] = result.angle_err + + label = f'sigma_x={sigma_x:.1f}' + for data, metric_title, fname_prefix, cbar in [ + (pos_err_grid, f'Position error -- {label}', 'pos_err', 'log10(pos error)'), + (angle_err_grid, f'Angle error (rad) -- {label}', 'angle_err', 'Angle error (rad)'), + (sigma_y_err_grid, f'Rel sigma_y error -- {label}', 'sigma_y_err', 'log10(rel error)'), + ]: + use_log = 'pos' in fname_prefix or 'sigma' in fname_prefix + fig = plot_heatmap( + data, + angle_labels, + ratio_labels, + title=metric_title, + xlabel='Angle (units of pi)', + ylabel='sigma_y / sigma_x ratio', + cbar_label=cbar, + log_scale=use_log, + mask=fail_mask, + ) + save_figure(fig, study_dir, f'{fname_prefix}_sx{sigma_x:.1f}.png') + + write_csv(cfg.output_dir, _STUDY_NAME, specs, results) + + groups: list[dict[str, Any]] = utils.build_groups_by_keys( + specs, + results, + [ + ('sigma_x', lambda s: s.sigma_x), + ('sigma_ratio', lambda s: round(s.sigma_y / s.sigma_x, 4)), + ('angle_true', lambda s: round(s.angle, 4)), + ], + ) + write_json_summary( + cfg.output_dir, + _STUDY_NAME, + specs, + results, + groups=groups, + config_used=config_to_dict(cfg), + ) + _LOG.info( + 'Study %s outputs written to %s (%d sigma_x panels)', + _STUDY_NAME, + study_dir, + n_sigma_x, + ) diff --git a/src/characterize_gauss_fit/test_config.yaml b/src/characterize_gauss_fit/test_config.yaml new file mode 100644 index 0000000..9d3977f --- /dev/null +++ b/src/characterize_gauss_fit/test_config.yaml @@ -0,0 +1,109 @@ +# test_config.yaml -- Reduced-grid configuration for rapid smoke-testing. +# +# Runs all eight studies but with the smallest viable parameter grids so +# that the entire suite completes in roughly 30-120 seconds on a single +# core. Use this to verify that all code paths execute correctly after +# code changes before committing. +# +# Run with: +# characterize_gauss_fit --config src/characterize_gauss_fit/test_config.yaml + +output_dir: ./gauss_fit_test +num_workers: 1 +noise_samples: 3 + +studies: + + # Study 1: 2 box sizes x 3 sigmas = 6 trials + box_vs_sigma: + enabled: true + box_sizes: [9, 21] + sigmas: [0.5, 1.0, 2.0] + offset: [0.25, 0.25] + angle: 0.0 + scale: 1.0 + fitting: + bkgnd_degree: null + + # Study 2: 3x3 offset grid x 1 sigma = 9 trials + subpixel_offset: + enabled: true + offset_steps: 3 + offset_range: [0.0, 0.5] + sigmas: [1.0] + box_size: 13 + angle: 0.0 + fitting: + bkgnd_degree: null + + # Study 3: 3 deltas x 2 sigmas x (1 noiseless + 1 snr) x up to 3 noise = ~18 trials + min_detectable_offset: + enabled: true + delta_offsets: [0.01, 0.05, 0.2] + sigmas: [0.5, 1.5] + box_size: 13 + noise_samples: 3 + snr_values: [100.0] + include_noiseless: true + fitting: + bkgnd_degree: null + + # Study 4: 3 ratios x 3 angles x 1 sigma_x = 9 trials + sigma_asymmetry_angle: + enabled: true + sigma_ratios: [0.5, 1.0, 2.0] + angle_steps: 3 + sigma_x_values: [1.0] + box_size: 13 + offset: [0.25, 0.25] + fitting: + bkgnd_degree: null + + # Study 5: 3 modes x 2 shapes = 18 trials (modes: all_float, sigma_fixed_correct, + # angle_fixed_correct, all_fixed_correct, all_fixed_errors) + constraint_modes: + enabled: true + sigma_error_fractions: [0.0, 0.3] + angle_error_rad: 0.3 + psf_shapes: + - sigma: [1.0, 1.0] + angle: 0.0 + - sigma: [0.5, 1.5] + angle: 0.7854 + box_size: 13 + offset: [0.25, 0.25] + scale: 1.5 + + # Study 6: 2 background types x 2 fitting degrees x 1 amplitude x 1 ignore_center = 4 trials + background: + enabled: true + background_amplitudes: [0.1] + bkgnd_degrees: [1] + bkgnd_degrees_with_null: true + bkgnd_ignore_centers: [[2, 2]] + background_types: [none, constant] + box_size: 13 + sigma: [1.0, 1.0] + offset: [0.25, 0.25] + + # Study 7: 4 SNR points x 1 sigma x 3 noise samples = 12 trials + noise_sensitivity: + enabled: true + snr_log_range: [1.0, 3.0] + snr_steps: 4 + sigmas: [1.0] + noise_samples: 3 + box_size: 13 + + # Study 8: 2 num_hot x 2 num_sigma x 1 amplitude x 3 noise samples = 12 trials + hot_pixel_rejection: + enabled: true + num_hot_pixels: [0, 3] + num_sigma_values: [3.0] + num_sigma_with_null: false + hot_amplitudes: [20.0] + noise_samples: 3 + snr: 100.0 + box_size: 13 + sigma: [1.0, 1.0] + offset: [0.25, 0.25] diff --git a/src/characterize_gauss_fit/trial.py b/src/characterize_gauss_fit/trial.py new file mode 100644 index 0000000..e33356d --- /dev/null +++ b/src/characterize_gauss_fit/trial.py @@ -0,0 +1,403 @@ +################################################################################ +# characterize_gauss_fit/trial.py +################################################################################ + +"""Core trial engine: image synthesis, fitting, and result computation. + +A *trial* is a single run of the PSF fitter on a synthetically generated image +with known ground-truth parameters. This module provides: + +- :class:`TrialSpec` -- plain-data description of one trial (picklable). +- :class:`TrialResult` -- the outcome of one trial (picklable). +- :func:`synthesize_image` -- generate a synthetic image from a :class:`TrialSpec`. +- :func:`run_trial` -- execute a trial and return a :class:`TrialResult`. +""" + +from __future__ import annotations + +import dataclasses +import math +from typing import Any + +import numpy as np +import numpy.typing as npt + +from psfmodel.gaussian import GaussianPSF + +# Sentinel float used for "not applicable" / "fit did not converge". +_NAN = float('nan') + +# Background types supported by synthesize_image. +BACKGROUND_TYPE_NONE = 'none' +BACKGROUND_TYPE_CONSTANT = 'constant' +BACKGROUND_TYPE_LINEAR = 'linear' +BACKGROUND_TYPE_QUADRATIC = 'quadratic' +BACKGROUND_TYPE_NOISY_CONSTANT = 'noisy_constant' + + +# --------------------------------------------------------------------------- +# TrialSpec -- fully describes a single trial (all plain Python types). +# --------------------------------------------------------------------------- + + +@dataclasses.dataclass(frozen=True) +class TrialSpec: + """Complete specification for a single characterization trial. + + All fields use plain Python types so instances are safely picklable for + use with :mod:`concurrent.futures.ProcessPoolExecutor`. + """ + + # --- Ground-truth PSF parameters --- + sigma_y: float + sigma_x: float + angle: float + offset_y: float # fractional pixel offset from center + offset_x: float + scale: float + base: float + box_size: int + + # --- Background injection --- + background_type: str # one of the BACKGROUND_TYPE_* constants + background_amplitude: float # fraction of PSF peak + + # --- Noise --- + noise_rms: float # additive Gaussian noise std; 0 = noiseless + + # --- Hot pixels --- + hot_pixel_count: int + hot_pixel_amplitude: float # multiple of PSF peak + + # --- Fitter configuration --- + # GaussianPSF construction: None means the parameter floats during fitting. + fit_sigma_y: float | None # None = float; float = fixed to this value + fit_sigma_x: float | None + fit_angle: float | None + + bkgnd_degree: int | None + bkgnd_ignore_center: tuple[int, int] + bkgnd_num_sigma: float | None + num_sigma: float | None + max_bad_frac: float + allow_nonzero_base: bool + use_angular_params: bool + tolerance: float + search_limit: tuple[float, float] + scale_limit: float + + # --- Reproducibility --- + rng_seed: int + + +# --------------------------------------------------------------------------- +# TrialResult -- the outcome of a single trial. +# --------------------------------------------------------------------------- + + +@dataclasses.dataclass(frozen=True) +class TrialResult: + """Outcome of a single characterization trial. + + When ``converged`` is ``False``, all error fields contain ``float('nan')`` + and all ``*_fit`` fields are ``None`` (except ``scale_fit`` which is + ``float('nan')``). Failures are recorded as data, not skipped. + """ + + # --- Convergence --- + converged: bool + + # --- True (injected) values --- + sigma_y_true: float + sigma_x_true: float + angle_true: float + scale_true: float + offset_y_true: float + offset_x_true: float + + # --- Position errors (signed and Euclidean) --- + pos_err_y: float # fitted_y - true_y (NaN if not converged) + pos_err_x: float + pos_err: float # sqrt(pos_err_y**2 + pos_err_x**2) + + # --- Fitted parameter values (None if param was not floating) --- + sigma_y_fit: float | None + sigma_x_fit: float | None + angle_fit: float | None + scale_fit: float # NaN if not converged + + # --- Relative / absolute errors (None if param was not floating) --- + # For sigma: (fit - true) / true + sigma_y_err: float | None + sigma_x_err: float | None + # For angle: absolute difference in radians (NaN if degenerate circular PSF) + angle_err: float | None + # For scale: (fit - true) / true + scale_err: float # NaN if not converged + + +# --------------------------------------------------------------------------- +# Image synthesis helpers +# --------------------------------------------------------------------------- + + +def _make_background( + box_size: int, + background_type: str, + amplitude: float, + *, + rng: np.random.Generator, + noise_rms: float, +) -> npt.NDArray[np.float64]: + """Create a background array to add to the clean PSF image. + + Parameters: + box_size: Side length of the square patch. + background_type: One of the ``BACKGROUND_TYPE_*`` constants. + amplitude: Background amplitude as a fraction of the PSF peak. Used for + constant, linear, and quadratic types. + rng: NumPy random number generator (used for noisy_constant type). + noise_rms: Additive Gaussian noise standard deviation (separate from + the background amplitude noise in ``noisy_constant``). + + Returns: + A ``(box_size, box_size)`` float64 array containing the background. + + Raises: + ValueError: If ``background_type`` is not recognised. + """ + half = box_size // 2 + if background_type == BACKGROUND_TYPE_NONE: + return np.zeros((box_size, box_size), dtype=np.float64) + + # Normalised coordinate grid in [-1, 1]. + yy, xx = np.meshgrid( + np.linspace(-1.0, 1.0, box_size), + np.linspace(-1.0, 1.0, box_size), + indexing='ij', + ) + + if background_type == BACKGROUND_TYPE_CONSTANT: + return np.full((box_size, box_size), amplitude, dtype=np.float64) + + if background_type == BACKGROUND_TYPE_LINEAR: + # Tilted plane with slope proportional to amplitude. + return (amplitude * (0.6 * yy + 0.4 * xx)).astype(np.float64) + + if background_type == BACKGROUND_TYPE_QUADRATIC: + # Bowl-shaped quadratic surface. + return (amplitude * (0.5 * yy**2 + 0.3 * xx**2 - 0.2 * yy * xx)).astype(np.float64) + + if background_type == BACKGROUND_TYPE_NOISY_CONSTANT: + constant = np.full((box_size, box_size), amplitude, dtype=np.float64) + noise = rng.normal(0.0, noise_rms * 0.5, size=(box_size, box_size)) + return (constant + noise).astype(np.float64) + + # Suppress the linter warning for the "impossible" half = box_size // 2 unused var. + _ = half + raise ValueError( + f'Unknown background_type "{background_type}". ' + f'Valid options: {BACKGROUND_TYPE_NONE}, {BACKGROUND_TYPE_CONSTANT}, ' + f'{BACKGROUND_TYPE_LINEAR}, {BACKGROUND_TYPE_QUADRATIC}, ' + f'{BACKGROUND_TYPE_NOISY_CONSTANT}' + ) + + +def synthesize_image(spec: TrialSpec) -> tuple[npt.NDArray[np.float64], float, float]: + """Generate a synthetic PSF image from a :class:`TrialSpec`. + + Creates a pixel-integrated Gaussian PSF patch of size + ``(box_size, box_size)``, optionally adds a polynomial background, + additive Gaussian noise, and hot pixels. The PSF fills the entire image + (``eval_rect`` size == ``box_size``). + + The true PSF center in the image is ``(box_size//2 + offset_y, + box_size//2 + offset_x)`` in full-image coordinates (i.e. the integer + anchor is the image centre, and ``offset_y/x`` is the sub-pixel shift). + + Parameters: + spec: A fully populated :class:`TrialSpec` describing the trial. + + Returns: + A tuple ``(image, true_y, true_x)`` where ``image`` is the synthesized + float64 array and ``true_y``, ``true_x`` are the ground-truth PSF + centre in full-image pixel coordinates (floating point). + """ + rng = np.random.default_rng(spec.rng_seed) + + # --- Build clean PSF --- + psf_gen = GaussianPSF( + sigma=(spec.sigma_y, spec.sigma_x), + angle=spec.angle, + ) + image: npt.NDArray[np.float64] = psf_gen.eval_rect( + (spec.box_size, spec.box_size), + offset=(spec.offset_y + 0.5, spec.offset_x + 0.5), + scale=spec.scale, + base=spec.base, + angle=spec.angle, + ).astype(np.float64) + + psf_peak = float(np.max(image)) + if psf_peak <= 0.0: + psf_peak = 1.0 # guard against degenerate cases + + # --- Add background --- + background = _make_background( + spec.box_size, + spec.background_type, + spec.background_amplitude * psf_peak, + rng=rng, + noise_rms=spec.noise_rms, + ) + image = image + background + + # --- Add Gaussian noise --- + if spec.noise_rms > 0.0: + image = image + rng.normal(0.0, spec.noise_rms, size=image.shape) + + # --- Inject hot pixels --- + if spec.hot_pixel_count > 0: + hot_amplitude = spec.hot_pixel_amplitude * psf_peak + # Randomise positions uniformly over the full patch. + flat_indices = rng.choice( + spec.box_size * spec.box_size, + size=spec.hot_pixel_count, + replace=False, + ) + rows, cols = np.unravel_index(flat_indices, (spec.box_size, spec.box_size)) + image[rows, cols] += hot_amplitude + + # --- True position in full-image coordinates --- + center = spec.box_size // 2 + true_y = float(center) + spec.offset_y + true_x = float(center) + spec.offset_x + + return image.astype(np.float64), true_y, true_x + + +# --------------------------------------------------------------------------- +# Trial execution +# --------------------------------------------------------------------------- + + +def run_trial(spec: TrialSpec) -> TrialResult: + """Execute a single characterization trial. + + Synthesizes an image from ``spec``, fits it with + :meth:`~psfmodel.PSF.find_position`, and computes all error metrics. + If the fitter returns ``None`` (failure or convergence rejection), a + :class:`TrialResult` with ``converged=False`` and NaN error fields is + returned. The result is always valid and never raises. + + Parameters: + spec: A fully populated :class:`TrialSpec`. + + Returns: + A :class:`TrialResult` describing the fit outcome. + """ + image, true_y, true_x = synthesize_image(spec) + + # Build the fitter PSF (parameters are fixed at construction or left None to float). + fitter_psf = GaussianPSF( + sigma=(spec.fit_sigma_y, spec.fit_sigma_x), + angle=spec.fit_angle, + ) + + starting_point = (float(spec.box_size // 2), float(spec.box_size // 2)) + box_size = (spec.box_size, spec.box_size) + + find_position_kwargs: dict[str, Any] = { + 'bkgnd_degree': spec.bkgnd_degree, + 'bkgnd_ignore_center': spec.bkgnd_ignore_center, + 'bkgnd_num_sigma': spec.bkgnd_num_sigma, + 'num_sigma': spec.num_sigma, + 'max_bad_frac': spec.max_bad_frac, + 'allow_nonzero_base': spec.allow_nonzero_base, + 'use_angular_params': spec.use_angular_params, + 'tolerance': spec.tolerance, + 'search_limit': spec.search_limit, + 'scale_limit': spec.scale_limit, + } + + result = fitter_psf.find_position(image, box_size, starting_point, **find_position_kwargs) + + if result is None: + return TrialResult( + converged=False, + sigma_y_true=spec.sigma_y, + sigma_x_true=spec.sigma_x, + angle_true=spec.angle, + scale_true=spec.scale, + offset_y_true=spec.offset_y, + offset_x_true=spec.offset_x, + pos_err_y=_NAN, + pos_err_x=_NAN, + pos_err=_NAN, + sigma_y_fit=None, + sigma_x_fit=None, + angle_fit=None, + scale_fit=_NAN, + sigma_y_err=None, + sigma_x_err=None, + angle_err=None, + scale_err=_NAN, + ) + + fit_y, fit_x, details = result + + pos_err_y = fit_y - true_y + pos_err_x = fit_x - true_x + pos_err = math.hypot(pos_err_y, pos_err_x) + + scale_fit = float(details['scale']) + scale_err = (scale_fit - spec.scale) / spec.scale if spec.scale != 0.0 else _NAN + + # Retrieve fitted sigma values if they were floating. + sigma_y_fit: float | None = None + sigma_x_fit: float | None = None + sigma_y_err: float | None = None + sigma_x_err: float | None = None + + if 'sigma_y' in details: + sigma_y_fit = float(details['sigma_y']) + sigma_y_err = (sigma_y_fit - spec.sigma_y) / spec.sigma_y + if 'sigma_x' in details: + sigma_x_fit = float(details['sigma_x']) + sigma_x_err = (sigma_x_fit - spec.sigma_x) / spec.sigma_x + + # Retrieve fitted angle if it was floating. + angle_fit: float | None = None + angle_err: float | None = None + + if 'angle' in details: + angle_fit = float(details['angle']) + # For circular PSFs (sigma_y == sigma_x), angle is degenerate -- mark as NaN. + if abs(spec.sigma_y - spec.sigma_x) < 1e-9: + angle_err = _NAN + else: + # Wrap angular difference to [-pi/2, pi/2] because angle has pi symmetry. + raw_diff = angle_fit - spec.angle + wrapped = (raw_diff + math.pi / 2) % math.pi - math.pi / 2 + angle_err = abs(wrapped) + + return TrialResult( + converged=True, + sigma_y_true=spec.sigma_y, + sigma_x_true=spec.sigma_x, + angle_true=spec.angle, + scale_true=spec.scale, + offset_y_true=spec.offset_y, + offset_x_true=spec.offset_x, + pos_err_y=pos_err_y, + pos_err_x=pos_err_x, + pos_err=pos_err, + sigma_y_fit=sigma_y_fit, + sigma_x_fit=sigma_x_fit, + angle_fit=angle_fit, + scale_fit=scale_fit, + sigma_y_err=sigma_y_err, + sigma_x_err=sigma_x_err, + angle_err=angle_err, + scale_err=scale_err, + ) diff --git a/src/psfmodel/gaussian.py b/src/psfmodel/gaussian.py index 628cc43..3ca8813 100755 --- a/src/psfmodel/gaussian.py +++ b/src/psfmodel/gaussian.py @@ -355,8 +355,15 @@ def gaussian_integral_2d( The integral is over the limits [y_min, y_max] and [x_min, x_max]. - For a non-zero ``angle``, array bounds are broadcast and the integral is computed - elementwise over the flattened grid, then reshaped to the broadcast shape. + For ``angle == 0`` the integral is computed analytically using the + error function (fast, exact). For a non-zero ``angle``, the integral + is approximated by uniform subsampling within each pixel using + ``angle_subsample`` points per axis. When the bounds are arrays (e.g. + a full image patch), all pixels are evaluated simultaneously in a + single vectorised NumPy call on an ``(N, S, S)`` grid, where *N* is + the number of pixels and *S* is ``angle_subsample``; this avoids a + per-pixel Python loop and is typically 10-20x faster than an + equivalent element-wise approach. Parameters: y_min: The lower bound of the integral in the Y dimension. @@ -416,29 +423,36 @@ def gaussian_integral_2d( return cast(float, np.mean(ret)) x_min, x_max, y_min, y_max = np.broadcast_arrays(x_min, x_max, y_min, y_max) - res = np.empty(x_min.shape, dtype=np.float64) - flat = res.ravel() - y_min_f = y_min.ravel() - y_max_f = y_max.ravel() - x_min_f = x_min.ravel() - x_max_f = x_max.ravel() - for i in range(flat.size): - ys = np.linspace(y_min_f[i], y_max_f[i], angle_subsample) - xs = np.linspace(x_min_f[i], x_max_f[i], angle_subsample) - xindex, yindex = np.meshgrid(xs, ys) - - ret = GaussianPSF.gaussian_2d( - yindex, - xindex, - sigma_y=sigma_y, - sigma_x=sigma_x, - mean_y=mean_y, - mean_x=mean_x, - scale=scale, - base=base, - angle=angle, - ) - flat[i] = np.mean(ret) + orig_shape = x_min.shape + y_lo = y_min.ravel() + y_hi = y_max.ravel() + x_lo = x_min.ravel() + x_hi = x_max.ravel() + + # Uniform parameter in [0, 1] with angle_subsample steps; shape (S,). + t = np.linspace(0.0, 1.0, angle_subsample) + + # Sample coordinates for every pixel simultaneously. + # ys, xs: shape (N, S) where N = number of pixels, S = angle_subsample. + ys = y_lo[:, None] + (y_hi - y_lo)[:, None] * t + xs = x_lo[:, None] + (x_hi - x_lo)[:, None] * t + + # Build the full (N, S, S) evaluation grid by broadcasting: + # ys[:, :, None] -- y varies along axis 1, x axis held + # xs[:, None, :] -- x varies along axis 2, y axis held + # One call to gaussian_2d replaces the entire per-pixel Python loop. + vals = GaussianPSF.gaussian_2d( + ys[:, :, None], + xs[:, None, :], + sigma_y=sigma_y, + sigma_x=sigma_x, + mean_y=mean_y, + mean_x=mean_x, + scale=scale, + base=base, + angle=angle, + ) + res = np.asarray(vals, dtype=np.float64).mean(axis=(1, 2)).reshape(orig_shape) return cast(float | npt.NDArray[np.floating], res) From 56303dbce9bede40885779f90bdd111c195905d0 Mon Sep 17 00:00:00 2001 From: Robert French Date: Sun, 12 Apr 2026 22:20:45 -0700 Subject: [PATCH 06/17] Characterization fixes --- src/characterize_gauss_fit/output.py | 2 +- src/characterize_gauss_fit/plotting.py | 26 ++-- .../study_background.py | 41 ++++--- src/characterize_gauss_fit/study_box_sigma.py | 8 +- .../study_constraints.py | 6 + .../study_hot_pixels.py | 69 +++++------ .../study_min_offset.py | 78 ++++++------ src/characterize_gauss_fit/study_noise.py | 9 +- src/characterize_gauss_fit/study_offset.py | 112 +++++++++++------- src/characterize_gauss_fit/study_shape.py | 17 ++- src/characterize_gauss_fit/trial.py | 8 +- 11 files changed, 228 insertions(+), 148 deletions(-) diff --git a/src/characterize_gauss_fit/output.py b/src/characterize_gauss_fit/output.py index 00f814a..5e9b914 100644 --- a/src/characterize_gauss_fit/output.py +++ b/src/characterize_gauss_fit/output.py @@ -85,7 +85,7 @@ def _float_cell(value: float | None) -> str: return '' if math.isnan(value): return 'NaN' - return repr(value) + return repr(float(value)) def _result_row( diff --git a/src/characterize_gauss_fit/plotting.py b/src/characterize_gauss_fit/plotting.py index bf57600..5ba5265 100644 --- a/src/characterize_gauss_fit/plotting.py +++ b/src/characterize_gauss_fit/plotting.py @@ -373,22 +373,26 @@ def plot_constraint_summary( categories: list[str], group_labels: list[str], pos_err_vals: npt.NDArray[np.float64], + pos_err_y_vals: npt.NDArray[np.float64], + pos_err_x_vals: npt.NDArray[np.float64], scale_err_vals: npt.NDArray[np.float64], sigma_y_err_vals: npt.NDArray[np.float64], angle_err_vals: npt.NDArray[np.float64], *, title: str, ) -> Figure: - """Create a 4-panel grouped bar chart for Study 5 constraint modes. + """Create a 6-panel grouped bar chart for Study 5 constraint modes. - Shows position error, scale error, sigma_y error, and angle error side by - side so that the effect of parameter constraints on all metrics is visible - at once. + Shows position error (Euclidean, Y-axis, and X-axis), scale error, + sigma_y error, and angle error side by side so that the effect of parameter + constraints on all metrics is visible at once. Parameters: categories: Constraint mode names (X-axis categories). group_labels: PSF shape labels (bar groups within each category). - pos_err_vals: ``(n_cat, n_groups)`` position error array. + pos_err_vals: ``(n_cat, n_groups)`` Euclidean position error array. + pos_err_y_vals: ``(n_cat, n_groups)`` absolute Y-axis position error. + pos_err_x_vals: ``(n_cat, n_groups)`` absolute X-axis position error. scale_err_vals: ``(n_cat, n_groups)`` relative scale error array. sigma_y_err_vals: ``(n_cat, n_groups)`` relative sigma_y error array. angle_err_vals: ``(n_cat, n_groups)`` absolute angle error array (rad). @@ -397,12 +401,14 @@ def plot_constraint_summary( Returns: A :class:`matplotlib.figure.Figure`. """ - fig, axes = plt.subplots(2, 2, figsize=(14, 8)) + fig, axes = plt.subplots(2, 3, figsize=(18, 8)) metrics: list[tuple[Axes, npt.NDArray[np.float64], str]] = [ - (axes[0, 0], pos_err_vals, 'Position error (pixels)'), - (axes[0, 1], scale_err_vals, 'Relative scale error'), - (axes[1, 0], sigma_y_err_vals, 'Relative sigma_y error'), - (axes[1, 1], angle_err_vals, 'Angle error (radians)'), + (axes[0, 0], pos_err_vals, 'Position error, Euclidean (pixels)'), + (axes[0, 1], pos_err_y_vals, '|pos_err_y| (pixels)'), + (axes[0, 2], pos_err_x_vals, '|pos_err_x| (pixels)'), + (axes[1, 0], scale_err_vals, 'Relative scale error'), + (axes[1, 1], sigma_y_err_vals, 'Relative sigma_y error'), + (axes[1, 2], angle_err_vals, 'Angle error (radians)'), ] n_cat = len(categories) diff --git a/src/characterize_gauss_fit/study_background.py b/src/characterize_gauss_fit/study_background.py index eb3f6bc..ce603fb 100644 --- a/src/characterize_gauss_fit/study_background.py +++ b/src/characterize_gauss_fit/study_background.py @@ -164,6 +164,8 @@ def _write_outputs( for amp_idx, amplitude in enumerate(amplitudes): for ic_idx, ignore_center in enumerate(ignore_centers): grid = np.full((len(bkgnd_types), len(fit_degrees)), float('nan')) + grid_y = np.full((len(bkgnd_types), len(fit_degrees)), float('nan')) + grid_x = np.full((len(bkgnd_types), len(fit_degrees)), float('nan')) fail_mask = np.zeros_like(grid, dtype=bool) for bt_idx, bkgnd_type in enumerate(bkgnd_types): @@ -181,25 +183,32 @@ def _write_outputs( fail_mask[bt_idx, fd_idx] = True else: grid[bt_idx, fd_idx] = result.pos_err + grid_y[bt_idx, fd_idx] = abs(result.pos_err_y) + grid_x[bt_idx, fd_idx] = abs(result.pos_err_x) break ic_str = f'{ignore_center[0]}x{ignore_center[1]}' - fig = plot_heatmap( - grid, - degree_labels, - type_labels, - title=f'Position error -- amp={amplitude:.2f}, ignore={ic_str}', - xlabel='Fitting bkgnd_degree', - ylabel='Injected background type', - cbar_label='log10(pos error)', - log_scale=True, - mask=fail_mask, - ) - save_figure( - fig, - study_dir, - f'pos_err_amp{amp_idx}_ic{ic_idx}.png', - ) + for hmap, metric_label, fsuffix in [ + (grid, 'Position error (Euclidean)', ''), + (grid_y, '|pos_err_y|', '_y'), + (grid_x, '|pos_err_x|', '_x'), + ]: + fig = plot_heatmap( + hmap, + degree_labels, + type_labels, + title=f'{metric_label} -- amp={amplitude:.2f}, ignore={ic_str}', + xlabel='Fitting bkgnd_degree', + ylabel='Injected background type', + cbar_label='log10(pos error)', + log_scale=True, + mask=fail_mask, + ) + save_figure( + fig, + study_dir, + f'pos_err{fsuffix}_amp{amp_idx}_ic{ic_idx}.png', + ) _ = n_amp _ = n_ic diff --git a/src/characterize_gauss_fit/study_box_sigma.py b/src/characterize_gauss_fit/study_box_sigma.py index dbf07fa..151a479 100644 --- a/src/characterize_gauss_fit/study_box_sigma.py +++ b/src/characterize_gauss_fit/study_box_sigma.py @@ -111,6 +111,8 @@ def _write_outputs( n_box = len(box_sizes) n_sigma = len(sigmas) pos_err_grid = np.full((n_box, n_sigma), float('nan')) + pos_err_y_grid = np.full((n_box, n_sigma), float('nan')) + pos_err_x_grid = np.full((n_box, n_sigma), float('nan')) sigma_y_err_grid = np.full((n_box, n_sigma), float('nan')) sigma_x_err_grid = np.full((n_box, n_sigma), float('nan')) scale_err_grid = np.full((n_box, n_sigma), float('nan')) @@ -124,6 +126,8 @@ def _write_outputs( fail_mask[b_idx, s_idx] = True else: pos_err_grid[b_idx, s_idx] = r.pos_err + pos_err_y_grid[b_idx, s_idx] = abs(r.pos_err_y) + pos_err_x_grid[b_idx, s_idx] = abs(r.pos_err_x) if r.sigma_y_err is not None: sigma_y_err_grid[b_idx, s_idx] = abs(r.sigma_y_err) if r.sigma_x_err is not None: @@ -136,7 +140,9 @@ def _write_outputs( y_labels = [str(b) for b in box_sizes] for data, title, filename in [ - (pos_err_grid, 'Position error vs. box size and sigma', 'pos_err.png'), + (pos_err_grid, 'Position error (Euclidean) vs. box size and sigma', 'pos_err.png'), + (pos_err_y_grid, '|pos_err_y| vs. box size and sigma', 'pos_err_y.png'), + (pos_err_x_grid, '|pos_err_x| vs. box size and sigma', 'pos_err_x.png'), ( sigma_y_err_grid, 'Relative |sigma_y| error vs. box size and sigma', diff --git a/src/characterize_gauss_fit/study_constraints.py b/src/characterize_gauss_fit/study_constraints.py index cf8f1c5..20001eb 100644 --- a/src/characterize_gauss_fit/study_constraints.py +++ b/src/characterize_gauss_fit/study_constraints.py @@ -220,6 +220,8 @@ def _write_outputs( # Build (n_modes, n_shapes) arrays for each metric. pos_err_vals = np.full((n_modes, n_shapes), float('nan')) + pos_err_y_vals = np.full((n_modes, n_shapes), float('nan')) + pos_err_x_vals = np.full((n_modes, n_shapes), float('nan')) scale_err_vals = np.full((n_modes, n_shapes), float('nan')) sigma_y_err_vals = np.full((n_modes, n_shapes), float('nan')) angle_err_vals = np.full((n_modes, n_shapes), float('nan')) @@ -229,6 +231,8 @@ def _write_outputs( result = results[m_idx * n_shapes + s_idx] if result.converged: pos_err_vals[m_idx, s_idx] = result.pos_err + pos_err_y_vals[m_idx, s_idx] = abs(result.pos_err_y) + pos_err_x_vals[m_idx, s_idx] = abs(result.pos_err_x) if np.isfinite(result.scale_err): scale_err_vals[m_idx, s_idx] = abs(result.scale_err) if result.sigma_y_err is not None: @@ -240,6 +244,8 @@ def _write_outputs( mode_labels, shape_labels, pos_err_vals, + pos_err_y_vals, + pos_err_x_vals, scale_err_vals, sigma_y_err_vals, angle_err_vals, diff --git a/src/characterize_gauss_fit/study_hot_pixels.py b/src/characterize_gauss_fit/study_hot_pixels.py index 6114284..55013b7 100644 --- a/src/characterize_gauss_fit/study_hot_pixels.py +++ b/src/characterize_gauss_fit/study_hot_pixels.py @@ -141,39 +141,42 @@ def _write_outputs( n_hot = len(n_hot_list) for ha_idx, hot_amp in enumerate(hot_amps): - y_means: list[npt.NDArray[np.float64]] = [] - y_stds: list[npt.NDArray[np.float64]] = [] - - for ns_val in num_sigma_list: - means: list[float] = [] - stds: list[float] = [] - for n_hot_count in n_hot_list: - # Find matching results. - bucket: list[TrialResult] = [] - for spec, result in zip(specs, results, strict=False): - if ( - spec.hot_pixel_count == n_hot_count - and spec.num_sigma == ns_val - and abs(spec.hot_pixel_amplitude - hot_amp) < 1e-9 - ): - bucket.append(result) - arr = utils.collect_metric(bucket, 'pos_err') - means.append(utils.safe_nanmean(arr)) - stds.append(utils.safe_nanstd(arr)) - y_means.append(np.array(means)) - y_stds.append(np.array(stds)) - - fig = plot_line_with_bands( - x_arr, - y_means, - y_stds, - labels=ns_labels, - title=f'Position error vs. hot pixels -- amplitude={hot_amp:.0f}x peak', - xlabel='Number of hot pixels', - ylabel='Mean position error (pixels)', - log_y=True, - ) - save_figure(fig, study_dir, f'pos_err_hotamp{ha_idx}.png') + for metric_attr, metric_label, fname_prefix in [ + ('pos_err', 'Mean position error, Euclidean (pixels)', 'pos_err'), + ('pos_err_y', 'Mean |pos_err_y| (pixels)', 'pos_err_y'), + ('pos_err_x', 'Mean |pos_err_x| (pixels)', 'pos_err_x'), + ]: + y_means: list[npt.NDArray[np.float64]] = [] + y_stds: list[npt.NDArray[np.float64]] = [] + for ns_val, _ns_label in zip(num_sigma_list, ns_labels, strict=True): + means: list[float] = [] + stds: list[float] = [] + for n_hot_count in n_hot_list: + bucket: list[TrialResult] = [] + for spec, result in zip(specs, results, strict=False): + if ( + spec.hot_pixel_count == n_hot_count + and spec.num_sigma == ns_val + and abs(spec.hot_pixel_amplitude - hot_amp) < 1e-9 + ): + bucket.append(result) + arr = np.abs(utils.collect_metric(bucket, metric_attr)) + means.append(utils.safe_nanmean(arr)) + stds.append(utils.safe_nanstd(arr)) + y_means.append(np.array(means)) + y_stds.append(np.array(stds)) + + fig = plot_line_with_bands( + x_arr, + y_means, + y_stds, + labels=ns_labels, + title=f'{metric_label} vs. hot pixels -- amplitude={hot_amp:.0f}x peak', + xlabel='Number of hot pixels', + ylabel=metric_label, + log_y=True, + ) + save_figure(fig, study_dir, f'{fname_prefix}_hotamp{ha_idx}.png') _ = n_hot _ = n_ns diff --git a/src/characterize_gauss_fit/study_min_offset.py b/src/characterize_gauss_fit/study_min_offset.py index 03e683b..b2d9277 100644 --- a/src/characterize_gauss_fit/study_min_offset.py +++ b/src/characterize_gauss_fit/study_min_offset.py @@ -173,41 +173,51 @@ def _write_outputs( delta_labels = [f'{d:.3g}' for d in deltas] sigma_labels = [f'{s:.2g}' for s in sigmas] - # Line plots: one per condition. + # Line plots: one per condition, three metrics (Euclidean, Y-axis, X-axis). for _noise_rms, cond_label in conditions: - y_means: list[npt.NDArray[np.float64]] = [] - y_stds: list[npt.NDArray[np.float64]] = [] - line_labels: list[str] = [] - - for sigma in sigmas: - means_per_delta: list[float] = [] - stds_per_delta: list[float] = [] - for delta in deltas: - bucket = result_map[(delta, sigma, cond_label)] - errs = np.array([r.pos_err for r in bucket if r.converged], dtype=np.float64) - errs = errs[np.isfinite(errs)] - if len(errs) == 0: - means_per_delta.append(float('nan')) - stds_per_delta.append(float('nan')) - else: - means_per_delta.append(float(np.mean(errs))) - stds_per_delta.append(float(np.std(errs, ddof=1)) if len(errs) > 1 else 0.0) - y_means.append(np.array(means_per_delta)) - y_stds.append(np.array(stds_per_delta)) - line_labels.append(f'sigma={sigma:.2g}') - - fig = plot_line_with_bands( - x_arr, - y_means, - y_stds, - labels=line_labels, - title=f'Min detectable offset -- {cond_label}', - xlabel='Injected offset delta (pixels)', - ylabel='Mean position error (pixels)', - log_x=True, - log_y=True, - ) - save_figure(fig, study_dir, f'pos_err_{cond_label}.png') + for metric_attr, metric_label, fname_prefix in [ + ('pos_err', 'Mean position error (Euclidean, pixels)', 'pos_err'), + ('pos_err_y', 'Mean |pos_err_y| (pixels)', 'pos_err_y'), + ('pos_err_x', 'Mean |pos_err_x| (pixels)', 'pos_err_x'), + ]: + y_means: list[npt.NDArray[np.float64]] = [] + y_stds: list[npt.NDArray[np.float64]] = [] + line_labels: list[str] = [] + + for sigma in sigmas: + means_per_delta: list[float] = [] + stds_per_delta: list[float] = [] + for delta in deltas: + bucket = result_map[(delta, sigma, cond_label)] + errs = np.array( + [abs(float(getattr(r, metric_attr))) for r in bucket if r.converged], + dtype=np.float64, + ) + errs = errs[np.isfinite(errs)] + if len(errs) == 0: + means_per_delta.append(float('nan')) + stds_per_delta.append(float('nan')) + else: + means_per_delta.append(float(np.mean(errs))) + stds_per_delta.append( + float(np.std(errs, ddof=1)) if len(errs) > 1 else 0.0 + ) + y_means.append(np.array(means_per_delta)) + y_stds.append(np.array(stds_per_delta)) + line_labels.append(f'sigma={sigma:.2g}') + + fig = plot_line_with_bands( + x_arr, + y_means, + y_stds, + labels=line_labels, + title=f'Min detectable offset -- {cond_label}', + xlabel='Injected offset delta (pixels)', + ylabel=metric_label, + log_x=True, + log_y=True, + ) + save_figure(fig, study_dir, f'{fname_prefix}_{cond_label}.png') # Recovery fraction heatmap: one per SNR condition (skip noiseless). for noise_rms, cond_label in conditions: diff --git a/src/characterize_gauss_fit/study_noise.py b/src/characterize_gauss_fit/study_noise.py index 24e0132..e54d9e2 100644 --- a/src/characterize_gauss_fit/study_noise.py +++ b/src/characterize_gauss_fit/study_noise.py @@ -153,15 +153,16 @@ def _collect_metric_grid( sigma_labels = [f'sigma={s:.1f}' for s in study.sigmas] for metric, ylabel, fname in [ - ('pos_err', 'Position error (pixels)', 'pos_err_vs_snr.png'), + ('pos_err', 'Position error, Euclidean (pixels)', 'pos_err_vs_snr.png'), + ('pos_err_y', '|pos_err_y| (pixels)', 'pos_err_y_vs_snr.png'), + ('pos_err_x', '|pos_err_x| (pixels)', 'pos_err_x_vs_snr.png'), ('sigma_y_err', 'Relative |sigma_y| error', 'sigma_y_err_vs_snr.png'), ('sigma_x_err', 'Relative |sigma_x| error', 'sigma_x_err_vs_snr.png'), ('scale_err', 'Relative |scale| error', 'scale_err_vs_snr.png'), ]: means, stds = _collect_metric_grid(metric) - # Take absolute value for relative error metrics. - if metric != 'pos_err': - means = [np.abs(m) for m in means] + # Take absolute value for all error metrics. + means = [np.abs(m) for m in means] fig = plot_line_with_bands( snr_arr, means, diff --git a/src/characterize_gauss_fit/study_offset.py b/src/characterize_gauss_fit/study_offset.py index 511e36b..ffa8e48 100644 --- a/src/characterize_gauss_fit/study_offset.py +++ b/src/characterize_gauss_fit/study_offset.py @@ -113,11 +113,13 @@ def _write_outputs( offset_labels = [f'{v:.2f}' for v in offsets] - # Heatmaps: one per sigma value. + # Heatmaps: one set per sigma value — Euclidean error plus Y and X axes. step = n_off * n_off # trials per sigma for s_idx, sigma in enumerate(sigmas): slice_results = results[s_idx * step : (s_idx + 1) * step] grid = np.full((n_off, n_off), float('nan')) + grid_y = np.full((n_off, n_off), float('nan')) + grid_x = np.full((n_off, n_off), float('nan')) fail_mask = np.zeros((n_off, n_off), dtype=bool) for oy_idx in range(n_off): for ox_idx in range(n_off): @@ -126,51 +128,73 @@ def _write_outputs( fail_mask[oy_idx, ox_idx] = True else: grid[oy_idx, ox_idx] = r.pos_err - - fig = plot_heatmap( - grid, - offset_labels, - offset_labels, - title=f'Position error vs. offset (sigma={sigma:.1f})', - xlabel='offset_x (pixels)', - ylabel='offset_y (pixels)', - cbar_label='log10(pos error)', - log_scale=True, - mask=fail_mask, - ) - save_figure(fig, study_dir, f'pos_err_sigma{sigma:.1f}.png') - - # Line plot: pos error vs offset_x at offset_y=0.25 for all sigmas. - # Use the midpoint of the offset range as the fixed offset_y row. - mid_oy_idx = n_off // 2 + grid_y[oy_idx, ox_idx] = abs(r.pos_err_y) + grid_x[oy_idx, ox_idx] = abs(r.pos_err_x) + + for hmap, metric_label, fname in [ + (grid, 'Position error (Euclidean)', f'pos_err_sigma{sigma:.1f}.png'), + (grid_y, '|pos_err_y|', f'pos_err_y_sigma{sigma:.1f}.png'), + (grid_x, '|pos_err_x|', f'pos_err_x_sigma{sigma:.1f}.png'), + ]: + fig = plot_heatmap( + hmap, + offset_labels, + offset_labels, + title=f'{metric_label} vs. offset (sigma={sigma:.1f})', + xlabel='offset_x (pixels)', + ylabel='offset_y (pixels)', + cbar_label='log10(error)', + log_scale=True, + mask=fail_mask, + ) + save_figure(fig, study_dir, fname) + + # Line plots: error vs offset_x at fixed offset_y (midpoint row), and + # error vs offset_y at fixed offset_x (midpoint column). + mid_idx = n_off // 2 x_arr = np.array(offsets) - y_means: list[npt.NDArray[np.float64]] = [] - y_stds: list[npt.NDArray[np.float64]] = [] - line_labels: list[str] = [] - for s_idx, sigma in enumerate(sigmas): - slice_results = results[s_idx * step : (s_idx + 1) * step] - row: list[float] = [] - for ox_idx in range(n_off): - r = slice_results[mid_oy_idx * n_off + ox_idx] - row.append(r.pos_err if r.converged else float('nan')) - arr = np.array(row, dtype=np.float64) - y_means.append(arr) - y_stds.append(np.zeros_like(arr)) # single trial; no std - line_labels.append(f'sigma={sigma:.1f}') - - mid_oy = offsets[mid_oy_idx] - fig = plot_line_with_bands( - x_arr, - y_means, - y_stds, - labels=line_labels, - title=f'Position error vs. offset_x at offset_y={mid_oy:.2f}', - xlabel='offset_x (pixels)', - ylabel='Position error (pixels)', - log_y=True, - ) - save_figure(fig, study_dir, 'pos_err_vs_offset_x.png') + for metric_attr, metric_label, vary_axis in [ + ('pos_err', 'Position error (Euclidean, pixels)', 'offset_x'), + ('pos_err_y', '|pos_err_y| (pixels)', 'offset_x'), + ('pos_err_x', '|pos_err_x| (pixels)', 'offset_x'), + ('pos_err', 'Position error (Euclidean, pixels)', 'offset_y'), + ('pos_err_y', '|pos_err_y| (pixels)', 'offset_y'), + ('pos_err_x', '|pos_err_x| (pixels)', 'offset_y'), + ]: + y_means: list[npt.NDArray[np.float64]] = [] + y_stds: list[npt.NDArray[np.float64]] = [] + line_labels: list[str] = [] + + for s_idx, sigma in enumerate(sigmas): + slice_results = results[s_idx * step : (s_idx + 1) * step] + row: list[float] = [] + for idx in range(n_off): + if vary_axis == 'offset_x': + r = slice_results[mid_idx * n_off + idx] + else: + r = slice_results[idx * n_off + mid_idx] + val = getattr(r, metric_attr) if r.converged else float('nan') + row.append(abs(float(val)) if val is not None else float('nan')) + y_means.append(np.array(row, dtype=np.float64)) + y_stds.append(np.zeros(n_off, dtype=np.float64)) + line_labels.append(f'sigma={sigma:.1f}') + + fixed_val = offsets[mid_idx] + fixed_axis = 'offset_y' if vary_axis == 'offset_x' else 'offset_x' + safe_metric = metric_attr.replace('_', '') + fname_line = f'{safe_metric}_vs_{vary_axis}.png' + fig = plot_line_with_bands( + x_arr, + y_means, + y_stds, + labels=line_labels, + title=f'{metric_label} vs. {vary_axis} at {fixed_axis}={fixed_val:.2f}', + xlabel=f'{vary_axis} (pixels)', + ylabel=metric_label, + log_y=True, + ) + save_figure(fig, study_dir, fname_line) write_csv(cfg.output_dir, _STUDY_NAME, specs, results) diff --git a/src/characterize_gauss_fit/study_shape.py b/src/characterize_gauss_fit/study_shape.py index 65c609a..e618778 100644 --- a/src/characterize_gauss_fit/study_shape.py +++ b/src/characterize_gauss_fit/study_shape.py @@ -125,6 +125,8 @@ def _write_outputs( for sx_idx, sigma_x in enumerate(study.sigma_x_values): base_idx = sx_idx * trials_per_sigma_x pos_err_grid = np.full((n_ratios, n_angles), float('nan')) + pos_err_y_grid = np.full((n_ratios, n_angles), float('nan')) + pos_err_x_grid = np.full((n_ratios, n_angles), float('nan')) angle_err_grid = np.full((n_ratios, n_angles), float('nan')) sigma_y_err_grid = np.full((n_ratios, n_angles), float('nan')) fail_mask = np.zeros((n_ratios, n_angles), dtype=bool) @@ -137,6 +139,8 @@ def _write_outputs( fail_mask[r_idx, a_idx] = True continue pos_err_grid[r_idx, a_idx] = result.pos_err + pos_err_y_grid[r_idx, a_idx] = abs(result.pos_err_y) + pos_err_x_grid[r_idx, a_idx] = abs(result.pos_err_x) if result.sigma_y_err is not None: sigma_y_err_grid[r_idx, a_idx] = abs(result.sigma_y_err) if not is_circular and result.angle_err is not None: @@ -144,9 +148,16 @@ def _write_outputs( label = f'sigma_x={sigma_x:.1f}' for data, metric_title, fname_prefix, cbar in [ - (pos_err_grid, f'Position error -- {label}', 'pos_err', 'log10(pos error)'), - (angle_err_grid, f'Angle error (rad) -- {label}', 'angle_err', 'Angle error (rad)'), - (sigma_y_err_grid, f'Rel sigma_y error -- {label}', 'sigma_y_err', 'log10(rel error)'), + (pos_err_grid, + f'Position error (Euclidean) -- {label}', 'pos_err', 'log10(pos error)'), + (pos_err_y_grid, + f'|pos_err_y| -- {label}', 'pos_err_y', 'log10(|pos_err_y|)'), + (pos_err_x_grid, + f'|pos_err_x| -- {label}', 'pos_err_x', 'log10(|pos_err_x|)'), + (angle_err_grid, + f'Angle error (rad) -- {label}', 'angle_err', 'Angle error (rad)'), + (sigma_y_err_grid, + f'Rel sigma_y error -- {label}', 'sigma_y_err', 'log10(rel error)'), ]: use_log = 'pos' in fname_prefix or 'sigma' in fname_prefix fig = plot_heatmap( diff --git a/src/characterize_gauss_fit/trial.py b/src/characterize_gauss_fit/trial.py index e33356d..99fea2a 100644 --- a/src/characterize_gauss_fit/trial.py +++ b/src/characterize_gauss_fit/trial.py @@ -269,9 +269,13 @@ def synthesize_image(spec: TrialSpec) -> tuple[npt.NDArray[np.float64], float, f image[rows, cols] += hot_amplitude # --- True position in full-image coordinates --- + # find_position returns positions in pixel-left-edge convention: the centre of + # pixel i is at coordinate i + 0.5 (pixel 0 spans [0, 1]). Adding 0.5 to the + # integer centre index converts to this same convention so that error = 0 for + # a perfect fit. center = spec.box_size // 2 - true_y = float(center) + spec.offset_y - true_x = float(center) + spec.offset_x + true_y = float(center) + 0.5 + spec.offset_y + true_x = float(center) + 0.5 + spec.offset_x return image.astype(np.float64), true_y, true_x From 2dca12d72ef49d2f670d6540908af81f1378722d Mon Sep 17 00:00:00 2001 From: Robert French Date: Mon, 13 Apr 2026 15:05:24 -0700 Subject: [PATCH 07/17] More improvements --- README.md | 2 +- docs/characterize_gauss_fit.md | 21 +- docs/psf_gui.md | 2 +- src/characterize_gauss_fit/__main__.py | 3 +- src/characterize_gauss_fit/_study_utils.py | 48 ++-- src/characterize_gauss_fit/config.py | 40 ++- src/characterize_gauss_fit/defaults.yaml | 28 +- src/characterize_gauss_fit/executor.py | 20 +- src/characterize_gauss_fit/main.py | 26 +- src/characterize_gauss_fit/output.py | 41 ++- src/characterize_gauss_fit/plotting.py | 101 ++++++- .../study_background.py | 248 ++++++++++-------- src/characterize_gauss_fit/study_box_sigma.py | 170 ++++++------ .../study_constraints.py | 69 +++-- .../study_hot_pixels.py | 123 +++++++-- .../study_min_offset.py | 71 +++-- src/characterize_gauss_fit/study_noise.py | 61 +++-- src/characterize_gauss_fit/study_offset.py | 34 ++- src/characterize_gauss_fit/study_shape.py | 20 +- src/characterize_gauss_fit/test_config.yaml | 18 +- src/characterize_gauss_fit/trial.py | 17 +- 21 files changed, 799 insertions(+), 364 deletions(-) diff --git a/README.md b/README.md index cc86d3f..614f5e3 100644 --- a/README.md +++ b/README.md @@ -49,7 +49,7 @@ pip install rms-psfmodel Details of each class are available in the [module documentation](https://rms-psfmodel.readthedocs.io/en/latest/module.html). -After installation, an optional Tkinter-based PSF explorer is available as the `psf_gui` command (or `python -m psf_gui` with `src` on `PYTHONPATH`). It requires a working Tcl/Tk (for example the `python3-tk` package on Debian/Ubuntu). +After installation, an optional Tkinter-based PSF explorer is available as the `psf_gui` command (or `python -m psf_gui` with `src` on `PYTHONPATH`). A working Tcl/Tk installation is required (for example, install the `python3-tk` package on Debian/Ubuntu). A characterization tool that systematically measures Gaussian PSF fitting accuracy across a wide parameter space is available as the `characterize_gauss_fit` command. Install the extra dependencies with `pip install rms-psfmodel[characterize]`. diff --git a/docs/characterize_gauss_fit.md b/docs/characterize_gauss_fit.md index a202a5f..13571e8 100644 --- a/docs/characterize_gauss_fit.md +++ b/docs/characterize_gauss_fit.md @@ -133,7 +133,7 @@ a `fitting` subsection to override these for that study only. | `num_sigma` | float or null | `null` | Sigma-clipping threshold for PSF residuals (bad-pixel rejection). `null` = disabled. | | `max_bad_frac` | float | `0.2` | Maximum fraction of pixels that can be masked before the fit is abandoned. | | `allow_nonzero_base` | bool | `false` | Fit a constant base level in addition to the polynomial background. | -| `use_angular_params` | bool | `true` | Reparametrise fit variables as angles for bounded optimisation. | +| `use_angular_params` | bool | `true` | Reparametrise fit variables as angles for bounded optimization. | | `tolerance` | float | `1e-6` | Powell optimiser convergence tolerance. | | `search_limit` | [float, float] | `[1.5, 1.5]` | Maximum allowed position offset from the starting point [y, x] in pixels. | | `scale_limit` | float | `1000.0` | Maximum allowed PSF amplitude scale factor. | @@ -338,6 +338,25 @@ One row per trial. Columns: - Failed / non-converged trials have `NaN` for all error fields. - Load with `pandas.read_csv(..., na_values=['NaN', ''])`. +> **Naming asymmetry warning.** Two pairs of columns have similar names but +> opposite roles: +> +> - `fit_sigma_y` / `fit_sigma_x` are **inputs** (the value sigma was +> *constrained to* before fitting; empty string when sigma was left to float). +> - `sigma_y_fit` / `sigma_x_fit` are **outputs** (the sigma value *returned +> by the fitter*; empty string when sigma was fixed and not fitted). +> +> In short: `fit_*` columns describe what you told the fitter; `*_fit` columns +> describe what the fitter found. +> +> Example (Python / pandas): +> +> ```python +> # Trials where sigma_y was constrained (input column non-empty): +> constrained = df[df['fit_sigma_y'].notna()] +> # Trials where sigma_y was floated and a fitted value was returned: +> fitted = df[df['sigma_y_fit'].notna()] +> ``` ### `summary.json` ```json diff --git a/docs/psf_gui.md b/docs/psf_gui.md index f90be1f..bca468a 100644 --- a/docs/psf_gui.md +++ b/docs/psf_gui.md @@ -56,6 +56,6 @@ python -m psf_gui - **Noise simulation** -- add Gaussian noise to the synthetic PSF image and observe the effect on fitting accuracy. - **Residual display** -- view the difference between the fitted model and the - data after position optimisation. + data after position optimization. - **Parameter readout** -- fitted position, sigma, angle, and scale are displayed numerically alongside their true injected values. diff --git a/src/characterize_gauss_fit/__main__.py b/src/characterize_gauss_fit/__main__.py index 6d94e55..77d3816 100644 --- a/src/characterize_gauss_fit/__main__.py +++ b/src/characterize_gauss_fit/__main__.py @@ -6,4 +6,5 @@ from characterize_gauss_fit.main import main -main() +if __name__ == '__main__': + main() diff --git a/src/characterize_gauss_fit/_study_utils.py b/src/characterize_gauss_fit/_study_utils.py index d5a30af..170c42b 100644 --- a/src/characterize_gauss_fit/_study_utils.py +++ b/src/characterize_gauss_fit/_study_utils.py @@ -25,6 +25,25 @@ ) +def offset_tag(offset_y: float, offset_x: float) -> str: + """Return a filename-safe tag encoding a (offset_y, offset_x) pair. + + Decimal points are replaced with 'p' and negative signs with 'm', so + ``(0.25, 0.0)`` becomes ``'oy0p25_ox0p00'``. + + Parameters: + offset_y: Y component of the offset (fractional pixels). + offset_x: X component of the offset (fractional pixels). + + Returns: + A short ASCII string safe for use in file and directory names. + """ + def _fmt(v: float) -> str: + return f'{v:.2f}'.replace('.', 'p').replace('-', 'm') + + return f'oy{_fmt(offset_y)}_ox{_fmt(offset_x)}' + + def make_spec( *, sigma_y: float, @@ -121,13 +140,12 @@ def progress_callback(study_name: str) -> Any: """ def _callback(completed: int, total: int) -> None: - pct = 100 * completed // total - print( - f'\r {study_name}: {completed}/{total} trials ({pct}%) ', - end='', - flush=True, - file=sys.stderr, - ) + if total > 0: + pct = 100 * completed // total + msg = f'\r {study_name}: {completed}/{total} trials ({pct}%) ' + else: + msg = f'\r {study_name}: {completed}/0 trials ' + print(msg, end='', flush=True, file=sys.stderr) if completed == total: print(file=sys.stderr) @@ -152,13 +170,10 @@ def collect_metric( Raises: AttributeError: If ``metric`` is not a field of :class:`~trial.TrialResult`. """ - values: list[float] = [] - for r in results: - val = getattr(r, metric) - if val is None: - values.append(float('nan')) - else: - values.append(float(val)) + values = [ + float('nan') if getattr(r, metric) is None else float(getattr(r, metric)) + for r in results + ] return np.array(values, dtype=np.float64) @@ -201,7 +216,9 @@ def build_groups_by_keys( Parameters: specs: Ordered list of :class:`~trial.TrialSpec` objects. - results: Ordered list of :class:`~trial.TrialResult` objects. + results: Accepted for API symmetry with + :func:`~output.write_json_summary` but not used here; grouping + is based solely on ``specs`` and ``key_funcs``. key_funcs: List of ``(label, callable)`` pairs where the callable takes a :class:`~trial.TrialSpec` and returns the group key value. @@ -227,7 +244,6 @@ def _sort_key(item: tuple[tuple[Any, ...], list[int]]) -> tuple[Any, ...]: g['indices'] = indices groups.append(g) - _ = results # used indirectly via indices in write_json_summary return groups diff --git a/src/characterize_gauss_fit/config.py b/src/characterize_gauss_fit/config.py index fe8ac30..fce5941 100644 --- a/src/characterize_gauss_fit/config.py +++ b/src/characterize_gauss_fit/config.py @@ -63,7 +63,7 @@ class StudyBoxVsSigmaConfig: enabled: bool box_sizes: list[int] sigmas: list[float] - offset: tuple[float, float] + offsets: list[tuple[float, float]] angle: float scale: float fitting: FittingConfig @@ -135,7 +135,7 @@ class StudyBackgroundConfig: background_types: list[str] box_size: int sigma: tuple[float, float] - offset: tuple[float, float] + offsets: list[tuple[float, float]] fitting: FittingConfig @@ -252,7 +252,10 @@ def _load_raw(path: pathlib.Path | None) -> dict[str, Any]: importlib.resources.as_file(pkg_ref) as defaults_path, defaults_path.open('r', encoding='utf-8') as fh, ): - raw: dict[str, Any] = yaml.safe_load(fh) + try: + raw: dict[str, Any] = yaml.safe_load(fh) + except yaml.YAMLError as exc: + raise ValueError(f'Failed to parse defaults.yaml: {exc}') from exc if path is not None: if not path.exists(): @@ -278,6 +281,7 @@ def _parse_fitting(raw: dict[str, Any]) -> FittingConfig: Raises: ValueError: If required keys are missing or values are out of range. + KeyError: If a required YAML key is absent from ``raw``. """ bkgnd_ic = raw['bkgnd_ignore_center'] search_lim = raw['search_limit'] @@ -369,8 +373,6 @@ def study_fitting(name: str) -> FittingConfig: # Study 4: build angle list from steps sa_raw = studies['sigma_asymmetry_angle'] angle_steps: int = int(sa_raw['angle_steps']) - if angle_steps < 2: - raise ValueError(f'angle_steps must be >= 2, got {angle_steps}') # Study 6: parse list of ignore-center pairs bg_raw = studies['background'] @@ -402,7 +404,7 @@ def study_fitting(name: str) -> FittingConfig: enabled=bool(studies['box_vs_sigma']['enabled']), box_sizes=[int(x) for x in studies['box_vs_sigma']['box_sizes']], sigmas=[float(x) for x in studies['box_vs_sigma']['sigmas']], - offset=_parse_two_floats(studies['box_vs_sigma']['offset']), + offsets=[_parse_two_floats(o) for o in studies['box_vs_sigma']['offsets']], angle=float(studies['box_vs_sigma']['angle']), scale=float(studies['box_vs_sigma']['scale']), fitting=study_fitting('box_vs_sigma'), @@ -454,7 +456,7 @@ def study_fitting(name: str) -> FittingConfig: background_types=[str(x) for x in bg_raw['background_types']], box_size=int(bg_raw['box_size']), sigma=_parse_two_floats(bg_raw['sigma']), - offset=_parse_two_floats(bg_raw['offset']), + offsets=[_parse_two_floats(o) for o in bg_raw['offsets']], fitting=study_fitting('background'), ), noise_sensitivity=StudyNoiseSensitivityConfig( @@ -539,6 +541,24 @@ def _validate_config(cfg: Config) -> None: raise ValueError( f'box_vs_sigma.box_sizes: each entry must be an odd integer >= 5, got {bs}' ) + if len(bvs.offsets) == 0: + raise ValueError('box_vs_sigma.offsets must contain at least one entry') + + def _check_box_size(field: str, bs: int) -> None: + if bs < 5 or bs % 2 == 0: + raise ValueError( + f'{field}: box_size must be an odd integer >= 5, got {bs}' + ) + + _check_box_size('subpixel_offset.box_size', cfg.studies.subpixel_offset.box_size) + _check_box_size( + 'min_detectable_offset.box_size', cfg.studies.min_detectable_offset.box_size + ) + _check_box_size('sigma_asymmetry_angle.box_size', cfg.studies.sigma_asymmetry_angle.box_size) + _check_box_size('constraint_modes.box_size', cfg.studies.constraint_modes.box_size) + _check_box_size('background.box_size', cfg.studies.background.box_size) + _check_box_size('noise_sensitivity.box_size', cfg.studies.noise_sensitivity.box_size) + _check_box_size('hot_pixel_rejection.box_size', cfg.studies.hot_pixel_rejection.box_size) mdo = cfg.studies.min_detectable_offset for delta in mdo.delta_offsets: @@ -549,8 +569,12 @@ def _validate_config(cfg: Config) -> None: lo, hi = ns.snr_log_range if lo >= hi: raise ValueError(f'noise_sensitivity.snr_log_range: min ({lo}) must be < max ({hi})') + if ns.snr_steps < 1: + raise ValueError(f'noise_sensitivity.snr_steps must be >= 1, got {ns.snr_steps}') sa = cfg.studies.sigma_asymmetry_angle + if sa.angle_steps < 2: + raise ValueError(f'angle_steps must be >= 2, got {sa.angle_steps}') for ratio in sa.sigma_ratios: if ratio <= 0: raise ValueError(f'sigma_asymmetry_angle.sigma_ratios: must be positive, got {ratio}') @@ -568,6 +592,8 @@ def _validate_config(cfg: Config) -> None: f'background.background_types: unknown type "{bt}". ' f'Valid options: {sorted(valid_bkgnd_types)}' ) + if len(cfg.studies.background.offsets) == 0: + raise ValueError('background.offsets must contain at least one entry') def config_to_dict(cfg: Config) -> dict[str, Any]: diff --git a/src/characterize_gauss_fit/defaults.yaml b/src/characterize_gauss_fit/defaults.yaml index 12d3391..dacf661 100644 --- a/src/characterize_gauss_fit/defaults.yaml +++ b/src/characterize_gauss_fit/defaults.yaml @@ -63,8 +63,15 @@ studies: box_sizes: [5, 7, 9, 11, 13, 17, 21, 25, 31] # Symmetric PSF sigma values (pixels) to test. sigmas: [0.3, 0.5, 0.8, 1.0, 1.5, 2.0, 3.0, 5.0] - # Subpixel offset [offset_y, offset_x] applied to the PSF center. - offset: [0.25, 0.25] + # List of [offset_y, offset_x] pairs (fractional pixel offsets from pixel centre). + # Each entry produces a separate set of heatmap plots labelled by its offset. + # Values in [0, 0.5]: 0.0 = exactly centred, 0.5 = on the pixel boundary. + offsets: + - [0.0, 0.0] + - [0.25, 0.25] + - [0.5, 0.0] + - [0.0, 0.5] + - [0.5, 0.5] # PSF rotation angle (radians). 0 = axis-aligned. angle: 0.0 # PSF amplitude scale factor for this study. @@ -144,6 +151,10 @@ studies: # Amplitude of injected background as a fraction of the PSF peak. background_amplitudes: [0.01, 0.1, 0.5] # Polynomial degrees used when fitting the background. + # The study iterates over these values, overriding fitting.bkgnd_degree for + # each run. When bkgnd_degrees_with_null is true the null (no background + # fitting) case is prepended so every degree in this list is compared against + # the no-background-model baseline. bkgnd_degrees: [0, 1, 2] # If true, also test bkgnd_degree=null (no background fitting). bkgnd_degrees_with_null: true @@ -154,7 +165,12 @@ studies: background_types: [none, constant, linear, quadratic, noisy_constant] box_size: 21 sigma: [1.0, 1.0] - offset: [0.25, 0.25] + # List of [offset_y, offset_x] pairs (fractional pixel offsets from pixel centre). + # Each entry produces a separate set of heatmap plots labelled by its offset. + offsets: + - [0.0, 0.0] + - [0.25, 0.25] + - [0.5, 0.5] # Study 7: How SNR affects position, sigma, and scale recovery accuracy. noise_sensitivity: @@ -168,6 +184,9 @@ studies: # Noise realizations per (snr, sigma) combination. noise_samples: 50 box_size: 21 + # Note: offsets are randomized uniformly in [-0.5, 0.5] per trial to + # avoid bias from a fixed sub-pixel position. Angle is always 0.0 + # (axis-aligned PSF) in this study. # Study 8: How num_sigma rejection handles hot pixels at various contamination levels. hot_pixel_rejection: @@ -175,6 +194,9 @@ studies: # Numbers of hot pixels to inject. num_hot_pixels: [0, 1, 3, 5, 10] # num_sigma thresholds for PSF-stage bad pixel rejection. + # These values override fitting.num_sigma for the PSF-fit bad-pixel + # rejection stage. The study iterates over num_sigma_values (and over + # null when num_sigma_with_null is true) to test rejection aggressiveness. num_sigma_values: [2.0, 3.0, 5.0] # If true, also test with num_sigma=null (rejection disabled). num_sigma_with_null: true diff --git a/src/characterize_gauss_fit/executor.py b/src/characterize_gauss_fit/executor.py index a4a8b87..d0f6ccd 100644 --- a/src/characterize_gauss_fit/executor.py +++ b/src/characterize_gauss_fit/executor.py @@ -17,6 +17,7 @@ import concurrent.futures import logging +import multiprocessing from collections.abc import Callable from characterize_gauss_fit.trial import TrialResult, TrialSpec, run_trial @@ -79,7 +80,8 @@ def run_trials( trial_specs: List of :class:`~trial.TrialSpec` objects to execute. num_workers: Number of parallel worker processes. ``1`` runs all trials sequentially in the calling process with no multiprocessing overhead. - Values ``>1`` use :class:`concurrent.futures.ProcessPoolExecutor`. + Values ``>1`` use :class:`concurrent.futures.ProcessPoolExecutor` + with the ``spawn`` start method to avoid fork-related crashes. progress_callback: Optional callable ``(completed, total)`` invoked after each trial result is collected, useful for progress display. @@ -90,13 +92,24 @@ def run_trials( total = len(trial_specs) results: list[TrialResult] = [] + if not isinstance(num_workers, int) or num_workers < 1: + raise ValueError(f'num_workers must be a positive integer, got {num_workers!r}') + if num_workers == 1: for idx, spec in enumerate(trial_specs): results.append(_safe_run_trial(spec)) if progress_callback is not None: progress_callback(idx + 1, total) else: - with concurrent.futures.ProcessPoolExecutor(max_workers=num_workers) as pool: + # Use the 'spawn' start method so worker processes begin as fresh + # Python interpreters. The default 'fork' method on Linux copies + # the parent's BLAS/OpenMP thread-pool state into the child without + # actually transferring the threads, causing a segfault during worker + # cleanup when those phantom pools are torn down. + mp_ctx = multiprocessing.get_context('spawn') + with concurrent.futures.ProcessPoolExecutor( + max_workers=num_workers, mp_context=mp_ctx + ) as pool: futures = {pool.submit(_safe_run_trial, spec): i for i, spec in enumerate(trial_specs)} # Collect in submission order to preserve determinism. ordered: list[TrialResult | None] = [None] * total @@ -106,6 +119,9 @@ def run_trials( if progress_callback is not None: progress_callback(n_done, total) # All futures completed; ordered contains no None entries. + assert all(r is not None for r in ordered), ( + 'Internal error: some futures did not produce a result' + ) results = [r for r in ordered if r is not None] return results diff --git a/src/characterize_gauss_fit/main.py b/src/characterize_gauss_fit/main.py index 94a68cc..2d2e193 100644 --- a/src/characterize_gauss_fit/main.py +++ b/src/characterize_gauss_fit/main.py @@ -48,6 +48,12 @@ 'hot_pixel_rejection': study_hot_pixels.run, } +# Ensure STUDY_NAMES (from config) and _STUDY_REGISTRY stay in sync. +assert set(STUDY_NAMES) == set(_STUDY_REGISTRY), ( + f'STUDY_NAMES and _STUDY_REGISTRY are out of sync: ' + f'{set(STUDY_NAMES).symmetric_difference(set(_STUDY_REGISTRY))}' +) + def _build_parser() -> argparse.ArgumentParser: """Build and return the argument parser. @@ -94,7 +100,8 @@ def _build_parser() -> argparse.ArgumentParser: default=None, help=( 'Number of parallel worker processes. ' - '1 (default) = sequential in the main process. ' + 'Default: None (resolved from config file). ' + '1 = sequential in the main process; ' '>1 = concurrent.futures.ProcessPoolExecutor.' ), ) @@ -238,11 +245,16 @@ def main() -> None: print(f'[{name}] {status} ({elapsed:.1f}s)', file=sys.stderr) total = time.monotonic() - overall_start - print( - f'\nAll studies complete. Total time: {total:.1f}s. Output: {cfg.output_dir}', - file=sys.stderr, - ) - - if len(failed) > 0: + if failed: + print( + f'\nCompleted with {len(failed)} failed studies. ' + f'Total time: {total:.1f}s. Output: {cfg.output_dir}', + file=sys.stderr, + ) print(f'FAILED studies: {", ".join(failed)}', file=sys.stderr) sys.exit(1) + else: + print( + f'\nAll studies complete. Total time: {total:.1f}s. Output: {cfg.output_dir}', + file=sys.stderr, + ) diff --git a/src/characterize_gauss_fit/output.py b/src/characterize_gauss_fit/output.py index 5e9b914..f94cb94 100644 --- a/src/characterize_gauss_fit/output.py +++ b/src/characterize_gauss_fit/output.py @@ -79,12 +79,15 @@ def _float_cell(value: float | None) -> str: value: The float to format, or ``None`` for a not-applicable field. Returns: - The formatted string. NaN is written as ``"NaN"``, None as ``""``. + The formatted string. NaN is written as ``"NaN"``, infinities as + ``"Inf"`` / ``"-Inf"``, and None as ``""``. """ if value is None: return '' if math.isnan(value): return 'NaN' + if math.isinf(value): + return 'Inf' if value > 0 else '-Inf' return repr(float(value)) @@ -175,7 +178,7 @@ def write_csv( with csv_path.open('w', newline='', encoding='utf-8') as fh: writer = csv.DictWriter(fh, fieldnames=_CSV_COLUMNS) writer.writeheader() - for spec, result in zip(specs, results, strict=False): + for spec, result in zip(specs, results, strict=True): writer.writerow(_result_row(study, spec, result)) return csv_path @@ -225,7 +228,7 @@ def _aggregate_results(results: list[TrialResult]) -> dict[str, Any]: converged = [r for r in results if r.converged] n_converged = len(converged) - pos_errs = [r.pos_err for r in converged] + pos_errs = [r.pos_err for r in converged if math.isfinite(r.pos_err)] sigma_y_errs = [r.sigma_y_err for r in converged if r.sigma_y_err is not None] sigma_x_errs = [r.sigma_x_err for r in converged if r.sigma_x_err is not None] angle_errs = [r.angle_err for r in converged if r.angle_err is not None] @@ -248,6 +251,29 @@ def _aggregate_results(results: list[TrialResult]) -> dict[str, Any]: } +def _sanitize_json(obj: Any) -> Any: + """Recursively replace non-finite floats with None for JSON safety. + + :func:`json.dump` with ``allow_nan=True`` emits non-standard tokens + (``NaN``, ``Infinity``, ``-Infinity``) that many JSON parsers reject. + This function replaces such values with ``None`` (serialised as ``null``). + + Parameters: + obj: Any JSON-serialisable Python object (dict, list, float, etc.). + + Returns: + A new object with the same structure but with non-finite floats + replaced by ``None``. + """ + if isinstance(obj, float): + return None if not math.isfinite(obj) else obj + if isinstance(obj, dict): + return {k: _sanitize_json(v) for k, v in obj.items()} + if isinstance(obj, list): + return [_sanitize_json(v) for v in obj] + return obj + + def write_json_summary( output_dir: pathlib.Path, study: str, @@ -276,7 +302,14 @@ def write_json_summary( Returns: Path to the written JSON file. + + Raises: + ValueError: If ``specs`` and ``results`` have different lengths. """ + if len(specs) != len(results): + raise ValueError( + f'specs ({len(specs)}) and results ({len(results)}) must have the same length' + ) study_dir = output_dir / study study_dir.mkdir(parents=True, exist_ok=True) json_path = study_dir / 'summary.json' @@ -304,6 +337,6 @@ def write_json_summary( } with json_path.open('w', encoding='utf-8') as fh: - json.dump(payload, fh, indent=2, allow_nan=True) + json.dump(_sanitize_json(payload), fh, indent=2) return json_path diff --git a/src/characterize_gauss_fit/plotting.py b/src/characterize_gauss_fit/plotting.py index 5ba5265..0f815db 100644 --- a/src/characterize_gauss_fit/plotting.py +++ b/src/characterize_gauss_fit/plotting.py @@ -16,6 +16,7 @@ from collections.abc import Sequence import matplotlib +import matplotlib.patheffects as _pe import numpy as np import numpy.typing as npt @@ -30,6 +31,36 @@ # Colour used to mark cells / points where the fitter did not converge. _FAIL_COLOUR = '#cccccc' +# Path effects applied to heatmap cell annotations so text is readable on any +# background colour. +_HEATMAP_TEXT_EFFECTS = [_pe.withStroke(linewidth=3, foreground='white')] + +# Text automatically appended to every line-with-bands plot explaining the +# shaded confidence region. +_BANDS_NOTE = 'Shaded bands: mean \u00b1 1 std.\u202fdev. across repeated trials' + +# Style used for all figure footnotes. +_NOTE_STYLE: dict[str, object] = { + 'ha': 'center', 'va': 'bottom', 'fontsize': 7, 'color': '#555555', 'style': 'italic', + 'transform': None, # overridden per-call with fig.transFigure +} + + +def _add_figure_note(fig: Figure, note: str, *, bottom: float = 0.12) -> None: + """Render ``note`` as a small italic footnote at the bottom of ``fig``. + + Reserves bottom margin so the note does not overlap plot content. + + Parameters: + fig: The figure to annotate. + note: Text to display. May contain newlines. + bottom: Fraction of figure height reserved for the note. + """ + kw = dict(_NOTE_STYLE) + kw['transform'] = fig.transFigure + fig.text(0.5, 0.01, note, **kw) # type: ignore[arg-type] + fig.subplots_adjust(bottom=bottom) + def save_figure(fig: Figure, output_dir: pathlib.Path, filename: str) -> pathlib.Path: """Save a figure to a PNG file and close it. @@ -61,6 +92,7 @@ def plot_heatmap( log_scale: bool = False, mask: npt.NDArray[np.bool_] | None = None, annotate: bool = True, + note: str = '', ) -> Figure: """Create a 2-D heatmap (imshow) with optional log scaling and a fail mask. @@ -76,6 +108,8 @@ def plot_heatmap( mask: Boolean array of the same shape as ``data``. Masked cells (``True``) are displayed in :data:`_FAIL_COLOUR` to indicate non-convergence. annotate: If ``True``, write the numeric value in each cell. + note: Optional assumptions/context string rendered as a small italic + footnote at the bottom of the figure. Returns: A :class:`matplotlib.figure.Figure`. @@ -116,8 +150,13 @@ def plot_heatmap( text = f'{10**val:.2e}' else: text = f'{val:.3f}' - ax.text(col, row, text, ha='center', va='center', fontsize=6) + ax.text( + col, row, text, ha='center', va='center', fontsize=6, + path_effects=_HEATMAP_TEXT_EFFECTS, + ) + if note: + _add_figure_note(fig, note, bottom=0.10) return fig @@ -132,6 +171,7 @@ def plot_line_with_bands( ylabel: str, log_x: bool = False, log_y: bool = False, + note: str = '', ) -> Figure: """Create a multi-series line plot with shaded mean +/- 1 std bands. @@ -145,6 +185,8 @@ def plot_line_with_bands( ylabel: Y-axis label. log_x: If ``True``, use a log scale for the X axis. log_y: If ``True``, use a log scale for the Y axis. + note: Optional study-specific assumptions string. It is combined with + the automatic shaded-band explanation and rendered as a footnote. Returns: A :class:`matplotlib.figure.Figure`. @@ -154,7 +196,10 @@ def plot_line_with_bands( for y_mean, y_std, label in zip(y_means, y_stds, labels, strict=True): (line,) = ax.plot(x, y_mean, label=label, marker='o', markersize=3) colour = line.get_color() - lower = np.maximum(y_mean - y_std, 1e-15 if log_y else y_mean - y_std) + if log_y: + lower = np.maximum(y_mean - y_std, 1e-15) + else: + lower = y_mean - y_std upper = y_mean + y_std ax.fill_between(x, lower, upper, alpha=0.2, color=colour) @@ -173,6 +218,8 @@ def plot_line_with_bands( ax.legend(fontsize=8) ax.grid(visible=True, which='both', alpha=0.3) + full_note = f'{_BANDS_NOTE} | {note}' if note else _BANDS_NOTE + _add_figure_note(fig, full_note, bottom=0.12) return fig @@ -209,9 +256,12 @@ def plot_grouped_bars( for g_idx, g_label in enumerate(group_labels): offsets = x + (g_idx - (n_groups - 1) / 2.0) * width bar_vals = values[:, g_idx].astype(float) - # Replace NaN with 0 for display (annotate later). - display_vals = np.where(np.isnan(bar_vals), 0.0, bar_vals) + nan_mask = np.isnan(bar_vals) + display_vals = np.where(nan_mask, 0.0, bar_vals) ax.bar(offsets, display_vals, width=width * 0.9, label=g_label) + for _cat_i, (off, is_nan) in enumerate(zip(offsets, nan_mask, strict=True)): + if is_nan: + ax.text(off, 0.0, 'NaN', ha='center', va='bottom', fontsize=5, rotation=90) ax.set_xticks(x) ax.set_xticklabels(categories, rotation=30, ha='right', fontsize=8) @@ -279,11 +329,17 @@ def plot_multi_panel_heatmaps( cmap.set_bad(color=_FAIL_COLOUR) img_ref = None + if mask_panels is not None and len(mask_panels) != len(data_panels): + raise ValueError( + f'mask_panels length ({len(mask_panels)}) must equal ' + f'data_panels length ({len(data_panels)})' + ) + for p_idx, (ax, display, ptitle) in enumerate( zip(axes, all_display, panel_titles, strict=True) ): panel_display = display.copy() - if mask_panels is not None and p_idx < len(mask_panels): + if mask_panels is not None: panel_display = np.where(mask_panels[p_idx], np.nan, panel_display) img = ax.imshow( @@ -321,6 +377,7 @@ def plot_recovery_fraction_heatmap( title: str, xlabel: str, ylabel: str, + note: str = '', ) -> Figure: """Create a heatmap of recovery fractions in [0, 1] with white-to-green scale. @@ -335,6 +392,8 @@ def plot_recovery_fraction_heatmap( title: Figure title. xlabel: X-axis label. ylabel: Y-axis label. + note: Optional assumptions/context string rendered as a small italic + footnote at the bottom of the figure. Returns: A :class:`matplotlib.figure.Figure`. @@ -345,7 +404,7 @@ def plot_recovery_fraction_heatmap( img = ax.imshow( recovery_fractions, aspect='auto', - cmap='RdYlGn', + cmap='Greens', origin='upper', vmin=0.0, vmax=1.0, @@ -364,8 +423,17 @@ def plot_recovery_fraction_heatmap( for row in range(n_rows): for col in range(n_cols): val = recovery_fractions[row, col] - ax.text(col, row, f'{val:.2f}', ha='center', va='center', fontsize=6) - + if np.isnan(val): + text = 'N/C' + else: + text = f'{val:.2f}' + ax.text( + col, row, text, ha='center', va='center', fontsize=6, + path_effects=_HEATMAP_TEXT_EFFECTS, + ) + + if note: + _add_figure_note(fig, note, bottom=0.10) return fig @@ -380,6 +448,7 @@ def plot_constraint_summary( angle_err_vals: npt.NDArray[np.float64], *, title: str, + note: str = '', ) -> Figure: """Create a 6-panel grouped bar chart for Study 5 constraint modes. @@ -395,8 +464,10 @@ def plot_constraint_summary( pos_err_x_vals: ``(n_cat, n_groups)`` absolute X-axis position error. scale_err_vals: ``(n_cat, n_groups)`` relative scale error array. sigma_y_err_vals: ``(n_cat, n_groups)`` relative sigma_y error array. - angle_err_vals: ``(n_cat, n_groups)`` absolute angle error array (rad). + angle_err_vals: ``(n_cat, n_groups)`` absolute angle error array (degrees). title: Overall figure title. + note: Optional assumptions/context string rendered as a small italic + footnote at the bottom of the figure. Returns: A :class:`matplotlib.figure.Figure`. @@ -408,7 +479,7 @@ def plot_constraint_summary( (axes[0, 2], pos_err_x_vals, '|pos_err_x| (pixels)'), (axes[1, 0], scale_err_vals, 'Relative scale error'), (axes[1, 1], sigma_y_err_vals, 'Relative sigma_y error'), - (axes[1, 2], angle_err_vals, 'Angle error (radians)'), + (axes[1, 2], angle_err_vals, 'Angle error (\u00b0)'), ] n_cat = len(categories) @@ -420,8 +491,14 @@ def plot_constraint_summary( for g_idx, g_label in enumerate(group_labels): offsets = x + (g_idx - (n_groups - 1) / 2.0) * width bar_vals = vals[:, g_idx].astype(float) - display_vals = np.where(np.isnan(bar_vals), 0.0, bar_vals) + nan_mask = np.isnan(bar_vals) + display_vals = np.where(nan_mask, 0.0, bar_vals) ax.bar(offsets, display_vals, width=width * 0.9, label=g_label) + for off, is_nan in zip(offsets, nan_mask, strict=True): + if is_nan: + ax.text( + off, 0.0, 'NaN', ha='center', va='bottom', fontsize=5, rotation=90 + ) ax.set_xticks(x) ax.set_xticklabels(categories, rotation=30, ha='right', fontsize=7) ax.set_ylabel(metric_label, fontsize=8) @@ -429,4 +506,6 @@ def plot_constraint_summary( ax.grid(visible=True, axis='y', alpha=0.3) fig.suptitle(title, fontsize=10) + if note: + _add_figure_note(fig, note, bottom=0.08) return fig diff --git a/src/characterize_gauss_fit/study_background.py b/src/characterize_gauss_fit/study_background.py index ce603fb..623164d 100644 --- a/src/characterize_gauss_fit/study_background.py +++ b/src/characterize_gauss_fit/study_background.py @@ -5,11 +5,14 @@ """Study 6: Background conditions and modeling. Explores how different injected background types and fitting model choices -interact to affect position, sigma, and scale recovery accuracy. +interact to affect position, sigma, and scale recovery accuracy. The study +is repeated for each configured subpixel offset so that offset-sensitivity can +be compared visually alongside background effects. """ from __future__ import annotations +import dataclasses import logging import pathlib from typing import Any @@ -17,7 +20,11 @@ import numpy as np from characterize_gauss_fit import _study_utils as utils -from characterize_gauss_fit.config import Config, FittingConfig, config_to_dict +from characterize_gauss_fit.config import ( + Config, + StudyBackgroundConfig, + config_to_dict, +) from characterize_gauss_fit.executor import run_trials from characterize_gauss_fit.output import write_csv, write_json_summary from characterize_gauss_fit.plotting import plot_heatmap, save_figure @@ -26,29 +33,32 @@ _LOG = logging.getLogger(__name__) _STUDY_NAME = 'background' +# Type alias for the lookup dict key used in _write_outputs. +_BkgndKey = tuple[float, float, str, float, int | None, tuple[int, int]] -def _bkgnd_fitting(base_fitting: FittingConfig, degree: int | None) -> FittingConfig: - """Return a copy of ``base_fitting`` with ``bkgnd_degree`` overridden. + +def _compute_fit_degrees(study: StudyBackgroundConfig) -> list[int | None]: + """Build the ordered list of fitting-degree values for Study 6. Parameters: - base_fitting: The base fitting configuration to copy from. - degree: The background polynomial degree to set (``None`` disables). + study: The study configuration. Returns: - A new :class:`~config.FittingConfig` with the degree overridden. + The list of ``bkgnd_degree`` values to iterate over, with ``None`` + prepended when ``bkgnd_degrees_with_null`` is enabled. """ - import dataclasses - - return dataclasses.replace(base_fitting, bkgnd_degree=degree) + degrees: list[int | None] = list(study.bkgnd_degrees) + if study.bkgnd_degrees_with_null: + degrees = [None, *degrees] + return degrees def build_specs(cfg: Config) -> tuple[list[TrialSpec], list[int | None]]: """Build trial specs for Study 6 and return the fitting-degree list. - Iterates over background types, fitting degrees, and ignore-center sizes. - For each combination that involves noise (``noisy_constant``), the base - fitting configuration is used unchanged. For all others, background - amplitude variants are included. + Iterates over offsets, background types, fitting degrees, and ignore-center + sizes. Specs are ordered by offset first so that :func:`_write_outputs` + can slice them by offset. Parameters: cfg: The active :class:`~config.Config` instance. @@ -59,49 +69,44 @@ def build_specs(cfg: Config) -> tuple[list[TrialSpec], list[int | None]]: """ study = cfg.studies.background - # Build the list of fitting degrees to test. - fit_degrees: list[int | None] = list(study.bkgnd_degrees) - if study.bkgnd_degrees_with_null: - fit_degrees = [None, *fit_degrees] + fit_degrees = _compute_fit_degrees(study) specs: list[TrialSpec] = [] spec_fit_degrees: list[int | None] = [] seed = 6000 - for bkgnd_type in study.background_types: - for amplitude in study.background_amplitudes: - for fit_degree in fit_degrees: - for ignore_center in study.bkgnd_ignore_centers: - fitting = _bkgnd_fitting(study.fitting, fit_degree) - import dataclasses - - fitting = dataclasses.replace( - fitting, - bkgnd_ignore_center=ignore_center, - bkgnd_degree=fit_degree, - ) - # For backgrounds that are 'none', amplitude doesn't matter - # but we still use it to keep the spec structure uniform. - inj_amplitude = 0.0 if bkgnd_type == BACKGROUND_TYPE_NONE else amplitude - specs.append( - utils.make_spec( - sigma_y=study.sigma[0], - sigma_x=study.sigma[1], - angle=0.0, - offset_y=study.offset[0], - offset_x=study.offset[1], - scale=cfg.generation.scale, - base=cfg.generation.base, - box_size=study.box_size, - fitting=fitting, - fit_angle=0.0, - background_type=bkgnd_type, - background_amplitude=inj_amplitude, - rng_seed=seed, + for offset_y, offset_x in study.offsets: + for bkgnd_type in study.background_types: + for amplitude in study.background_amplitudes: + for fit_degree in fit_degrees: + for ignore_center in study.bkgnd_ignore_centers: + fitting = dataclasses.replace( + study.fitting, + bkgnd_degree=fit_degree, + bkgnd_ignore_center=ignore_center, ) - ) - spec_fit_degrees.append(fit_degree) - seed += 1 + inj_amplitude = ( + 0.0 if bkgnd_type == BACKGROUND_TYPE_NONE else amplitude + ) + specs.append( + utils.make_spec( + sigma_y=study.sigma[0], + sigma_x=study.sigma[1], + angle=0.0, + offset_y=offset_y, + offset_x=offset_x, + scale=cfg.generation.scale, + base=cfg.generation.base, + box_size=study.box_size, + fitting=fitting, + fit_angle=0.0, + background_type=bkgnd_type, + background_amplitude=inj_amplitude, + rng_seed=seed, + ) + ) + spec_fit_degrees.append(fit_degree) + seed += 1 return specs, spec_fit_degrees @@ -139,6 +144,10 @@ def _write_outputs( ) -> None: """Write CSV, JSON, and PNG outputs for Study 6. + One set of heatmaps is produced for each configured (offset, amplitude, + ignore_center) combination. Each filename includes the offset tag so files + from different offsets do not collide. + Parameters: cfg: The active :class:`~config.Config` instance. specs: All trial specifications. @@ -146,9 +155,7 @@ def _write_outputs( study_dir: Output subdirectory. """ study = cfg.studies.background - fit_degrees: list[int | None] = list(study.bkgnd_degrees) - if study.bkgnd_degrees_with_null: - fit_degrees = [None, *fit_degrees] + fit_degrees = _compute_fit_degrees(study) bkgnd_types = study.background_types amplitudes = study.background_amplitudes @@ -157,61 +164,80 @@ def _write_outputs( degree_labels = ['null' if d is None else str(d) for d in fit_degrees] type_labels = bkgnd_types - # For each (amplitude, ignore_center) combination, create one heatmap panel. - n_amp = len(amplitudes) - n_ic = len(ignore_centers) - - for amp_idx, amplitude in enumerate(amplitudes): - for ic_idx, ignore_center in enumerate(ignore_centers): - grid = np.full((len(bkgnd_types), len(fit_degrees)), float('nan')) - grid_y = np.full((len(bkgnd_types), len(fit_degrees)), float('nan')) - grid_x = np.full((len(bkgnd_types), len(fit_degrees)), float('nan')) - fail_mask = np.zeros_like(grid, dtype=bool) - - for bt_idx, bkgnd_type in enumerate(bkgnd_types): - for fd_idx, fit_degree in enumerate(fit_degrees): - # Find the matching spec index. - inj_amplitude = 0.0 if bkgnd_type == BACKGROUND_TYPE_NONE else amplitude - for _i, (spec, result) in enumerate(zip(specs, results, strict=False)): - if ( - spec.background_type == bkgnd_type - and abs(spec.background_amplitude - inj_amplitude) < 1e-12 - and spec.bkgnd_degree == fit_degree - and spec.bkgnd_ignore_center == tuple(ignore_center) - ): - if not result.converged: - fail_mask[bt_idx, fd_idx] = True - else: - grid[bt_idx, fd_idx] = result.pos_err - grid_y[bt_idx, fd_idx] = abs(result.pos_err_y) - grid_x[bt_idx, fd_idx] = abs(result.pos_err_x) - break - - ic_str = f'{ignore_center[0]}x{ignore_center[1]}' - for hmap, metric_label, fsuffix in [ - (grid, 'Position error (Euclidean)', ''), - (grid_y, '|pos_err_y|', '_y'), - (grid_x, '|pos_err_x|', '_x'), - ]: - fig = plot_heatmap( - hmap, - degree_labels, - type_labels, - title=f'{metric_label} -- amp={amplitude:.2f}, ignore={ic_str}', - xlabel='Fitting bkgnd_degree', - ylabel='Injected background type', - cbar_label='log10(pos error)', - log_scale=True, - mask=fail_mask, - ) - save_figure( - fig, - study_dir, - f'pos_err{fsuffix}_amp{amp_idx}_ic{ic_idx}.png', + # Build O(1) lookup: (offset_y, offset_x, bkgnd_type, amplitude, + # fit_degree, ignore_center) -> TrialResult. + lookup: dict[_BkgndKey, TrialResult] = {} + for spec, result in zip(specs, results, strict=True): + key: _BkgndKey = ( + spec.offset_y, + spec.offset_x, + spec.background_type, + spec.background_amplitude, + spec.bkgnd_degree, + spec.bkgnd_ignore_center, + ) + lookup[key] = result + + for offset_y, offset_x in study.offsets: + tag = utils.offset_tag(offset_y, offset_x) + offset_str = f'offset ({offset_y:+.2f}, {offset_x:+.2f})' + + for amp_idx, amplitude in enumerate(amplitudes): + for ic_idx, ignore_center in enumerate(ignore_centers): + grid = np.full((len(bkgnd_types), len(fit_degrees)), float('nan')) + grid_y = np.full((len(bkgnd_types), len(fit_degrees)), float('nan')) + grid_x = np.full((len(bkgnd_types), len(fit_degrees)), float('nan')) + fail_mask = np.zeros_like(grid, dtype=bool) + + for bt_idx, bkgnd_type in enumerate(bkgnd_types): + inj_amplitude = ( + 0.0 if bkgnd_type == BACKGROUND_TYPE_NONE else amplitude + ) + for fd_idx, fit_degree in enumerate(fit_degrees): + ic_key: tuple[int, int] = (ignore_center[0], ignore_center[1]) + found: TrialResult | None = lookup.get( + (offset_y, offset_x, bkgnd_type, + inj_amplitude, fit_degree, ic_key) + ) + if found is None: + continue + if not found.converged: + fail_mask[bt_idx, fd_idx] = True + else: + grid[bt_idx, fd_idx] = found.pos_err + grid_y[bt_idx, fd_idx] = abs(found.pos_err_y) + grid_x[bt_idx, fd_idx] = abs(found.pos_err_x) + + ic_str = f'{ignore_center[0]}x{ignore_center[1]}' + bkgnd_note = ( + f'\u03c3=({study.sigma[0]:.1f},{study.sigma[1]:.1f}) px, ' + f'box={study.box_size}, noiseless, \u03c3 and angle fitted freely' ) - - _ = n_amp - _ = n_ic + for hmap, metric_label, fsuffix in [ + (grid, 'Position error (Euclidean)', ''), + (grid_y, '|pos_err_y|', '_y'), + (grid_x, '|pos_err_x|', '_x'), + ]: + fig = plot_heatmap( + hmap, + degree_labels, + type_labels, + title=( + f'{metric_label} -- amp={amplitude:.2f}, ' + f'ignore={ic_str} [{offset_str}]' + ), + xlabel='Fitting bkgnd_degree', + ylabel='Injected background type', + cbar_label='log10(pos error)', + log_scale=True, + mask=fail_mask, + note=bkgnd_note, + ) + save_figure( + fig, + study_dir, + f'{_STUDY_NAME}_pos_err{fsuffix}_amp{amp_idx}_ic{ic_idx}_{tag}.png', + ) write_csv(cfg.output_dir, _STUDY_NAME, specs, results) @@ -219,9 +245,11 @@ def _write_outputs( specs, results, [ - ('background_type', lambda s: s.background_type), + ('offset_y', lambda s: s.offset_y), + ('offset_x', lambda s: s.offset_x), + ('background_type', lambda s: s.background_type), ('background_amplitude', lambda s: s.background_amplitude), - ('bkgnd_degree', lambda s: s.bkgnd_degree), + ('bkgnd_degree', lambda s: s.bkgnd_degree), ('bkgnd_ignore_center', lambda s: s.bkgnd_ignore_center), ], ) diff --git a/src/characterize_gauss_fit/study_box_sigma.py b/src/characterize_gauss_fit/study_box_sigma.py index 151a479..8fc05f9 100644 --- a/src/characterize_gauss_fit/study_box_sigma.py +++ b/src/characterize_gauss_fit/study_box_sigma.py @@ -5,7 +5,8 @@ """Study 1: Box size vs. PSF sigma. Explores how the subimage size relative to the PSF width affects position, -sigma, and scale recovery accuracy. +sigma, and scale recovery accuracy. The study is repeated for each configured +subpixel offset so that offset-sensitivity can be compared visually. """ from __future__ import annotations @@ -30,8 +31,10 @@ def build_specs(cfg: Config) -> list[TrialSpec]: """Build the full list of :class:`~trial.TrialSpec` objects for Study 1. - Each spec represents one (box_size, sigma) combination with fixed offset - and no background or noise, with sigma left to float during fitting. + Each spec represents one (offset, box_size, sigma) combination with no + background or noise, with sigma left to float during fitting. Specs are + ordered by offset first, then box_size, then sigma so that + :func:`_write_outputs` can slice them by offset slice. Parameters: cfg: The active :class:`~config.Config` instance. @@ -42,25 +45,26 @@ def build_specs(cfg: Config) -> list[TrialSpec]: study = cfg.studies.box_vs_sigma specs: list[TrialSpec] = [] seed = 1000 - for box_size in study.box_sizes: - for sigma in study.sigmas: - specs.append( - utils.make_spec( - sigma_y=sigma, - sigma_x=sigma, - angle=study.angle, - offset_y=study.offset[0], - offset_x=study.offset[1], - scale=study.scale, - base=cfg.generation.base, - box_size=box_size, - fitting=study.fitting, - # sigma left to float (fit_sigma_y/x = None) - fit_angle=0.0, # axis-aligned; no need to fit angle - rng_seed=seed, + for offset_y, offset_x in study.offsets: + for box_size in study.box_sizes: + for sigma in study.sigmas: + specs.append( + utils.make_spec( + sigma_y=sigma, + sigma_x=sigma, + angle=study.angle, + offset_y=offset_y, + offset_x=offset_x, + scale=study.scale, + base=cfg.generation.base, + box_size=box_size, + fitting=study.fitting, + # sigma left to float (fit_sigma_y/x = None) + fit_angle=0.0, # axis-aligned; no need to fit angle + rng_seed=seed, + ) ) - ) - seed += 1 + seed += 1 return specs @@ -97,6 +101,10 @@ def _write_outputs( ) -> None: """Write CSV, JSON, and PNG outputs for Study 1. + One set of six heatmaps is produced for each configured offset pair. + Each filename includes the offset tag so files from different offsets do + not collide. + Parameters: cfg: The active :class:`~config.Config` instance. specs: All trial specifications. @@ -106,72 +114,74 @@ def _write_outputs( study = cfg.studies.box_vs_sigma box_sizes = study.box_sizes sigmas = study.sigmas + offsets = study.offsets - # Build 2-D arrays indexed by [box_size_idx, sigma_idx]. n_box = len(box_sizes) n_sigma = len(sigmas) - pos_err_grid = np.full((n_box, n_sigma), float('nan')) - pos_err_y_grid = np.full((n_box, n_sigma), float('nan')) - pos_err_x_grid = np.full((n_box, n_sigma), float('nan')) - sigma_y_err_grid = np.full((n_box, n_sigma), float('nan')) - sigma_x_err_grid = np.full((n_box, n_sigma), float('nan')) - scale_err_grid = np.full((n_box, n_sigma), float('nan')) - fail_mask = np.zeros((n_box, n_sigma), dtype=bool) - - spec_idx = 0 - for b_idx in range(n_box): - for s_idx in range(n_sigma): - r = results[spec_idx] - if not r.converged: - fail_mask[b_idx, s_idx] = True - else: - pos_err_grid[b_idx, s_idx] = r.pos_err - pos_err_y_grid[b_idx, s_idx] = abs(r.pos_err_y) - pos_err_x_grid[b_idx, s_idx] = abs(r.pos_err_x) - if r.sigma_y_err is not None: - sigma_y_err_grid[b_idx, s_idx] = abs(r.sigma_y_err) - if r.sigma_x_err is not None: - sigma_x_err_grid[b_idx, s_idx] = abs(r.sigma_x_err) - if np.isfinite(r.scale_err): - scale_err_grid[b_idx, s_idx] = abs(r.scale_err) - spec_idx += 1 + n_per_offset = n_box * n_sigma x_labels = [f'{s:.2g}' for s in sigmas] y_labels = [str(b) for b in box_sizes] - for data, title, filename in [ - (pos_err_grid, 'Position error (Euclidean) vs. box size and sigma', 'pos_err.png'), - (pos_err_y_grid, '|pos_err_y| vs. box size and sigma', 'pos_err_y.png'), - (pos_err_x_grid, '|pos_err_x| vs. box size and sigma', 'pos_err_x.png'), - ( - sigma_y_err_grid, - 'Relative |sigma_y| error vs. box size and sigma', - 'sigma_y_err.png', - ), - ( - sigma_x_err_grid, - 'Relative |sigma_x| error vs. box size and sigma', - 'sigma_x_err.png', - ), - (scale_err_grid, 'Relative |scale| error vs. box size and sigma', 'scale_err.png'), - ]: - fig = plot_heatmap( - data, - x_labels, - y_labels, - title=title, - xlabel='Sigma (pixels)', - ylabel='Box size (pixels)', - cbar_label='log10(error)', - log_scale=True, - mask=fail_mask, + for off_idx, (offset_y, offset_x) in enumerate(offsets): + tag = utils.offset_tag(offset_y, offset_x) + slice_results = results[off_idx * n_per_offset : (off_idx + 1) * n_per_offset] + + pos_err_grid = np.full((n_box, n_sigma), float('nan')) + pos_err_y_grid = np.full((n_box, n_sigma), float('nan')) + pos_err_x_grid = np.full((n_box, n_sigma), float('nan')) + sigma_y_err_grid = np.full((n_box, n_sigma), float('nan')) + sigma_x_err_grid = np.full((n_box, n_sigma), float('nan')) + scale_err_grid = np.full((n_box, n_sigma), float('nan')) + fail_mask = np.zeros((n_box, n_sigma), dtype=bool) + + idx = 0 + for b_idx in range(n_box): + for s_idx in range(n_sigma): + r = slice_results[idx] + if not r.converged: + fail_mask[b_idx, s_idx] = True + else: + pos_err_grid[b_idx, s_idx] = r.pos_err + pos_err_y_grid[b_idx, s_idx] = abs(r.pos_err_y) + pos_err_x_grid[b_idx, s_idx] = abs(r.pos_err_x) + if r.sigma_y_err is not None and np.isfinite(r.sigma_y_err): + sigma_y_err_grid[b_idx, s_idx] = abs(r.sigma_y_err) + if r.sigma_x_err is not None and np.isfinite(r.sigma_x_err): + sigma_x_err_grid[b_idx, s_idx] = abs(r.sigma_x_err) + if np.isfinite(r.scale_err): + scale_err_grid[b_idx, s_idx] = abs(r.scale_err) + idx += 1 + + offset_str = f'offset ({offset_y:+.2f}, {offset_x:+.2f})' + plot_note = ( + f'angle={study.angle:.1f}\u00b0, scale={study.scale:.0f}, ' + f'no background, \u03c3 fitted freely, noiseless' ) - save_figure(fig, study_dir, filename) + for data, metric_title, metric_key in [ + (pos_err_grid, 'Position error (Euclidean)', 'pos_err'), + (pos_err_y_grid, '|pos_err_y|', 'pos_err_y'), + (pos_err_x_grid, '|pos_err_x|', 'pos_err_x'), + (sigma_y_err_grid, 'Relative |sigma_y| error', 'sigma_y_err'), + (sigma_x_err_grid, 'Relative |sigma_x| error', 'sigma_x_err'), + (scale_err_grid, 'Relative |scale| error', 'scale_err'), + ]: + fig = plot_heatmap( + data, + x_labels, + y_labels, + title=f'{metric_title} vs. box size and sigma [{offset_str}]', + xlabel='Sigma (pixels)', + ylabel='Box size (pixels)', + cbar_label='log10(error)', + log_scale=True, + mask=fail_mask, + note=plot_note, + ) + save_figure(fig, study_dir, f'{_STUDY_NAME}_{metric_key}_{tag}.png') - # CSV + # CSV and JSON (all offsets together) write_csv(cfg.output_dir, _STUDY_NAME, specs, results) - - # JSON summary: group by (box_size, sigma) groups = build_json_groups(specs, results) write_json_summary( cfg.output_dir, @@ -185,7 +195,7 @@ def _write_outputs( def build_json_groups(specs: list[TrialSpec], results: list[TrialResult]) -> list[dict[str, Any]]: - """Build JSON summary groups for Study 1, keyed by (box_size, sigma_y). + """Build JSON summary groups for Study 1, keyed by (offset_y, offset_x, box_size, sigma_y). Parameters: specs: Trial specifications. @@ -198,7 +208,9 @@ def build_json_groups(specs: list[TrialSpec], results: list[TrialResult]) -> lis specs, results, [ + ('offset_y', lambda s: s.offset_y), + ('offset_x', lambda s: s.offset_x), ('box_size', lambda s: s.box_size), - ('sigma', lambda s: s.sigma_y), + ('sigma', lambda s: s.sigma_y), ], ) diff --git a/src/characterize_gauss_fit/study_constraints.py b/src/characterize_gauss_fit/study_constraints.py index 20001eb..18ae060 100644 --- a/src/characterize_gauss_fit/study_constraints.py +++ b/src/characterize_gauss_fit/study_constraints.py @@ -12,6 +12,7 @@ import dataclasses import logging +import math import pathlib from typing import Any @@ -33,12 +34,22 @@ class ConstraintMode: """A single fitter constraint configuration for Study 5. Specifies which PSF parameters are fixed and what values they are fixed at. + + When ``sigma_is_fraction`` is ``True``, ``fit_sigma_y`` and ``fit_sigma_x`` + are interpreted as *error fractions* of the true sigma: ``0.0`` means fix + at the true value, positive means fix at ``true_sigma * (1 + fraction)``. + When ``sigma_is_fraction`` is ``False``, ``fit_sigma_y`` and ``fit_sigma_x`` + are actual sigma values (or ``None`` meaning float during fitting). + + For ``fit_angle``: ``None`` = float, ``0.0`` = fix at true angle, other + value = fix at ``true_angle + fit_angle`` radians. """ label: str fit_sigma_y: float | None fit_sigma_x: float | None fit_angle: float | None + sigma_is_fraction: bool = False def _build_modes(cfg: Config) -> list[ConstraintMode]: @@ -65,11 +76,7 @@ def _build_modes(cfg: Config) -> list[ConstraintMode]: label = 'sigma_fixed_correct' else: label = f'sigma_fixed_err{int(frac * 100):d}pct' - # Actual fixed values are applied per shape in build_specs; here we - # record the fraction, not the value, using a sentinel. - # We embed frac as a tag by setting it as the sigma values temporarily. - # The actual per-shape expansion happens in build_specs. - modes.append(ConstraintMode(label, frac, frac, None)) + modes.append(ConstraintMode(label, frac, frac, None, sigma_is_fraction=True)) # Angle fixed at true value, sigma floats. modes.append(ConstraintMode('angle_fixed_correct', None, None, 0.0)) @@ -83,18 +90,20 @@ def _build_modes(cfg: Config) -> list[ConstraintMode]: ) # All fixed at correct values. - modes.append(ConstraintMode('all_fixed_correct', 0.0, 0.0, 0.0)) - - # All fixed with combined errors. - max_frac = max(study.sigma_error_fractions) if study.sigma_error_fractions else 0.0 - modes.append( - ConstraintMode( - 'all_fixed_errors', - max_frac, - max_frac, - study.angle_error_rad, + modes.append(ConstraintMode('all_fixed_correct', 0.0, 0.0, 0.0, sigma_is_fraction=True)) + + # All fixed with combined errors (only when sigma_error_fractions is non-empty). + if study.sigma_error_fractions: + max_frac = max(study.sigma_error_fractions) + modes.append( + ConstraintMode( + 'all_fixed_errors', + max_frac, + max_frac, + study.angle_error_rad, + sigma_is_fraction=True, + ) ) - ) return modes @@ -125,18 +134,17 @@ def build_specs(cfg: Config) -> tuple[list[TrialSpec], list[ConstraintMode]]: # Resolve fixed sigma values from mode fractions. if mode.fit_sigma_y is None: fit_sigma_y: float | None = None - elif mode.fit_sigma_y == 0.0: - fit_sigma_y = true_sigma_y - else: - # mode.fit_sigma_y is the error fraction (stored as float). + elif mode.sigma_is_fraction: fit_sigma_y = true_sigma_y * (1.0 + float(mode.fit_sigma_y)) + else: + fit_sigma_y = mode.fit_sigma_y if mode.fit_sigma_x is None: fit_sigma_x: float | None = None - elif mode.fit_sigma_x == 0.0: - fit_sigma_x = true_sigma_x - else: + elif mode.sigma_is_fraction: fit_sigma_x = true_sigma_x * (1.0 + float(mode.fit_sigma_x)) + else: + fit_sigma_x = mode.fit_sigma_x # Resolve fixed angle values from mode. if mode.fit_angle is None: @@ -238,7 +246,7 @@ def _write_outputs( if result.sigma_y_err is not None: sigma_y_err_vals[m_idx, s_idx] = abs(result.sigma_y_err) if result.angle_err is not None and np.isfinite(result.angle_err): - angle_err_vals[m_idx, s_idx] = result.angle_err + angle_err_vals[m_idx, s_idx] = math.degrees(result.angle_err) fig = plot_constraint_summary( mode_labels, @@ -250,17 +258,24 @@ def _write_outputs( sigma_y_err_vals, angle_err_vals, title='Effect of parameter constraints on fitting accuracy', + note=( + f'box={study.box_size}, ' + f'offset=({study.offset[0]:+.2f},{study.offset[1]:+.2f}), ' + f'noiseless, scale={study.scale:.0f}' + ), ) - save_figure(fig, study_dir, 'constraint_summary.png') + save_figure(fig, study_dir, f'{_STUDY_NAME}_summary.png') write_csv(cfg.output_dir, _STUDY_NAME, specs, results) + # Precompute position index for O(1) grouping lambda access. + spec_index: dict[int, int] = {id(s): i for i, s in enumerate(specs)} groups: list[dict[str, Any]] = utils.build_groups_by_keys( specs, results, [ - ('constraint_mode_idx', lambda s: specs.index(s) // n_shapes), - ('psf_shape_idx', lambda s: specs.index(s) % n_shapes), + ('constraint_mode_idx', lambda s: spec_index[id(s)] // n_shapes), + ('psf_shape_idx', lambda s: spec_index[id(s)] % n_shapes), ], ) write_json_summary( diff --git a/src/characterize_gauss_fit/study_hot_pixels.py b/src/characterize_gauss_fit/study_hot_pixels.py index 55013b7..626129c 100644 --- a/src/characterize_gauss_fit/study_hot_pixels.py +++ b/src/characterize_gauss_fit/study_hot_pixels.py @@ -29,6 +29,25 @@ _STUDY_NAME = 'hot_pixel_rejection' +def _make_num_sigma_list( + num_sigma_with_null: bool, num_sigma_values: list[float] +) -> list[float | None]: + """Build the ordered num_sigma list, prepending None when requested. + + Parameters: + num_sigma_with_null: If ``True``, prepend ``None`` (no rejection). + num_sigma_values: The configured threshold values. + + Returns: + Ordered list of thresholds including ``None`` when requested. + """ + result: list[float | None] = [] + if num_sigma_with_null: + result.append(None) + result.extend(num_sigma_values) + return result + + def build_specs(cfg: Config) -> list[TrialSpec]: """Build trial specs for Study 8. @@ -48,10 +67,7 @@ def build_specs(cfg: Config) -> list[TrialSpec]: noise_rms = scale / study.snr # Build num_sigma list including null if requested. - num_sigma_list: list[float | None] = [] - if study.num_sigma_with_null: - num_sigma_list.append(None) - num_sigma_list.extend(study.num_sigma_values) + num_sigma_list = _make_num_sigma_list(study.num_sigma_with_null, study.num_sigma_values) specs: list[TrialSpec] = [] seed = 8000 @@ -109,6 +125,39 @@ def run(cfg: Config, *, num_workers: int = 1) -> None: _write_outputs(cfg, specs, results, study_dir) +def _convergence_means( + num_sigma_list: list[float | None], + n_hot_list: list[int], + hot_amp: float, + bucket_map: dict[tuple[int, float | None, float], list[TrialResult]], +) -> list[npt.NDArray[np.float64]]: + """Compute per-series convergence fractions for a given hot amplitude. + + Parameters: + num_sigma_list: Ordered list of num_sigma thresholds tested. + n_hot_list: Ordered list of hot-pixel counts tested. + hot_amp: The hot-pixel amplitude being examined. + bucket_map: Pre-built lookup mapping (n_hot, num_sigma, hot_amp) + to a list of :class:`~trial.TrialResult` objects. + + Returns: + A list of 1-D float64 arrays, one per ``num_sigma_list`` entry. + Each element is the mean convergence fraction across the + ``n_hot_list`` axis (1.0 = all converged, 0.0 = all failed). + """ + series: list[npt.NDArray[np.float64]] = [] + for ns_val in num_sigma_list: + fracs: list[float] = [] + for n_hot in n_hot_list: + bucket = bucket_map.get((n_hot, ns_val, round(hot_amp, 9)), []) + if len(bucket) == 0: + fracs.append(float('nan')) + else: + fracs.append(float(np.mean([float(r.converged) for r in bucket]))) + series.append(np.array(fracs, dtype=np.float64)) + return series + + def _write_outputs( cfg: Config, specs: list[TrialSpec], @@ -125,22 +174,51 @@ def _write_outputs( """ study = cfg.studies.hot_pixel_rejection - num_sigma_list: list[float | None] = [] - if study.num_sigma_with_null: - num_sigma_list.append(None) - num_sigma_list.extend(study.num_sigma_values) + num_sigma_list = _make_num_sigma_list(study.num_sigma_with_null, study.num_sigma_values) n_hot_list = study.num_hot_pixels hot_amps = study.hot_amplitudes x_arr = np.array(n_hot_list, dtype=float) - x_labels = [str(n) for n in n_hot_list] ns_labels = ['no_rejection' if ns is None else f'num_sigma={ns:.0f}' for ns in num_sigma_list] - n_ns = len(num_sigma_list) - n_hot = len(n_hot_list) + # Build O(1) lookup: (hot_pixel_count, num_sigma, hot_pixel_amplitude) -> bucket. + bucket_map: dict[tuple[int, float | None, float], list[TrialResult]] = {} + for spec, result in zip(specs, results, strict=True): + key: tuple[int, float | None, float] = ( + spec.hot_pixel_count, spec.num_sigma, round(spec.hot_pixel_amplitude, 9) + ) + if key not in bucket_map: + bucket_map[key] = [] + bucket_map[key].append(result) for ha_idx, hot_amp in enumerate(hot_amps): + plot_note = ( + f'\u03c3=({study.sigma[0]:.1f},{study.sigma[1]:.1f}) px, ' + f'box={study.box_size}, ' + f'offset=({study.offset[0]:+.2f},{study.offset[1]:+.2f}), ' + f'SNR={study.snr:.0f}, {study.noise_samples} samples/pt' + ) + # --- Convergence-rate plot ------------------------------------------- + conv_means = _convergence_means(num_sigma_list, n_hot_list, hot_amp, bucket_map) + conv_stds = [np.zeros_like(m) for m in conv_means] # deterministic fraction + fig = plot_line_with_bands( + x_arr, + conv_means, + conv_stds, + labels=ns_labels, + title=f'Convergence fraction vs. hot pixels -- amplitude={hot_amp:.0f}x peak', + xlabel='Number of hot pixels', + ylabel='Fraction of trials converged', + log_y=False, + note=plot_note, + ) + save_figure( + fig, study_dir, + f'{_STUDY_NAME}_convergence_hotamp{ha_idx}.png', + ) + + # --- Position-error plots -------------------------------------------- for metric_attr, metric_label, fname_prefix in [ ('pos_err', 'Mean position error, Euclidean (pixels)', 'pos_err'), ('pos_err_y', 'Mean |pos_err_y| (pixels)', 'pos_err_y'), @@ -152,14 +230,9 @@ def _write_outputs( means: list[float] = [] stds: list[float] = [] for n_hot_count in n_hot_list: - bucket: list[TrialResult] = [] - for spec, result in zip(specs, results, strict=False): - if ( - spec.hot_pixel_count == n_hot_count - and spec.num_sigma == ns_val - and abs(spec.hot_pixel_amplitude - hot_amp) < 1e-9 - ): - bucket.append(result) + bucket = bucket_map.get( + (n_hot_count, ns_val, round(hot_amp, 9)), [] + ) arr = np.abs(utils.collect_metric(bucket, metric_attr)) means.append(utils.safe_nanmean(arr)) stds.append(utils.safe_nanstd(arr)) @@ -171,16 +244,16 @@ def _write_outputs( y_means, y_stds, labels=ns_labels, - title=f'{metric_label} vs. hot pixels -- amplitude={hot_amp:.0f}x peak', + title=( + f'{metric_label} vs. hot pixels -- amplitude={hot_amp:.0f}x peak' + '\n(missing lines = 0 % convergence; see companion convergence plot)' + ), xlabel='Number of hot pixels', ylabel=metric_label, log_y=True, + note=plot_note, ) - save_figure(fig, study_dir, f'{fname_prefix}_hotamp{ha_idx}.png') - - _ = n_hot - _ = n_ns - _ = x_labels + save_figure(fig, study_dir, f'{_STUDY_NAME}_{fname_prefix}_hotamp{ha_idx}.png') write_csv(cfg.output_dir, _STUDY_NAME, specs, results) diff --git a/src/characterize_gauss_fit/study_min_offset.py b/src/characterize_gauss_fit/study_min_offset.py index b2d9277..499fa23 100644 --- a/src/characterize_gauss_fit/study_min_offset.py +++ b/src/characterize_gauss_fit/study_min_offset.py @@ -19,7 +19,7 @@ import numpy.typing as npt from characterize_gauss_fit import _study_utils as utils -from characterize_gauss_fit.config import Config, config_to_dict +from characterize_gauss_fit.config import Config, StudyMinDetectableOffsetConfig, config_to_dict from characterize_gauss_fit.executor import run_trials from characterize_gauss_fit.output import write_csv, write_json_summary from characterize_gauss_fit.plotting import ( @@ -36,23 +36,42 @@ _NOISELESS_LABEL = 'noiseless' +def _build_conditions( + study: StudyMinDetectableOffsetConfig, scale: float +) -> list[tuple[float, str]]: + """Build the list of noise conditions for Study 3. + + Parameters: + study: The study configuration. + scale: PSF amplitude scale factor. + + Returns: + List of ``(noise_rms, label)`` pairs ordered as noiseless-first then + per-SNR. + """ + conditions: list[tuple[float, str]] = [] + if study.include_noiseless: + conditions.append((0.0, _NOISELESS_LABEL)) + for snr_val in study.snr_values: + conditions.append((_snr_to_noise_rms(snr_val, scale), f'snr_{snr_val:.0f}')) + return conditions + + def _snr_to_noise_rms(snr: float, scale: float) -> float: """Convert SNR (peak / noise_rms) to noise_rms. Parameters: - snr: Signal-to-noise ratio (PSF peak / noise std). + snr: Signal-to-noise ratio (PSF peak / noise std). Must be positive. scale: PSF amplitude scale factor (determines peak value). Returns: Corresponding noise standard deviation. + + Raises: + ValueError: If ``snr`` is not positive. """ - # PSF peak for a unit Gaussian integrated over a pixel is approximately - # scale * gaussian_peak, but we use scale as the amplitude directly since - # eval_rect is normalised. A reasonable approximation for typical sigmas - # is peak ~ scale * 0.16 (for sigma=1). To avoid sigma dependence we set - # noise_rms = scale / snr, which equals SNR = peak only when sigma is large - # enough that the peak pixel captures most of the flux. This is consistent - # with how study_noise.py treats SNR. + if snr <= 0: + raise ValueError(f'snr must be > 0, got {snr}') return scale / snr @@ -75,11 +94,7 @@ def build_specs(cfg: Config) -> list[TrialSpec]: seed = 3000 # Noise conditions: (noise_rms, snr_label) pairs. - conditions: list[tuple[float, str]] = [] - if study.include_noiseless: - conditions.append((0.0, _NOISELESS_LABEL)) - for snr_val in study.snr_values: - conditions.append((_snr_to_noise_rms(snr_val, scale), f'snr_{snr_val:.0f}')) + conditions = _build_conditions(study, scale) for delta in study.delta_offsets: for sigma in study.sigmas: @@ -152,13 +167,12 @@ def _write_outputs( deltas = study.delta_offsets sigmas = study.sigmas - conditions: list[tuple[float, str]] = [] - if study.include_noiseless: - conditions.append((0.0, _NOISELESS_LABEL)) - for snr_val in study.snr_values: - conditions.append((_snr_to_noise_rms(snr_val, scale), f'snr_{snr_val:.0f}')) + conditions = _build_conditions(study, scale) # Map (delta, sigma, condition_label) -> list of TrialResult. + # Slicing by index is safe here because build_specs generates specs in the + # same deterministic order (delta, sigma, condition, trial_idx) and + # run_trials preserves spec ordering. result_map: dict[tuple[float, float, str], list[TrialResult]] = {} idx = 0 for delta in deltas: @@ -168,6 +182,9 @@ def _write_outputs( bucket_key = (delta, sigma, cond_label) result_map[bucket_key] = results[idx : idx + n_trials] idx += n_trials + assert idx == len(results), ( + f'result_map bucketing consumed {idx} results but {len(results)} were returned' + ) x_arr = np.array(deltas) delta_labels = [f'{d:.3g}' for d in deltas] @@ -211,13 +228,18 @@ def _write_outputs( y_means, y_stds, labels=line_labels, - title=f'Min detectable offset -- {cond_label}', + title=f'Min detectable offset ({metric_label}) -- {cond_label}', xlabel='Injected offset delta (pixels)', ylabel=metric_label, log_x=True, log_y=True, + note=( + f'box_size={study.box_size}, ' + f'{study.noise_samples} noise samples/condition, ' + f'offset varies as (\u03b4, \u03b4)' + ), ) - save_figure(fig, study_dir, f'{fname_prefix}_{cond_label}.png') + save_figure(fig, study_dir, f'{_STUDY_NAME}_{fname_prefix}_{cond_label}.png') # Recovery fraction heatmap: one per SNR condition (skip noiseless). for noise_rms, cond_label in conditions: @@ -236,8 +258,13 @@ def _write_outputs( title=f'Recovery fraction -- {cond_label}', xlabel='Injected offset delta (pixels)', ylabel='Sigma (pixels)', + note=( + f'box_size={study.box_size}, ' + f'{study.noise_samples} noise samples/condition, ' + f'offset varies as (\u03b4, \u03b4)' + ), ) - save_figure(fig, study_dir, f'recovery_{cond_label}.png') + save_figure(fig, study_dir, f'{_STUDY_NAME}_recovery_{cond_label}.png') write_csv(cfg.output_dir, _STUDY_NAME, specs, results) diff --git a/src/characterize_gauss_fit/study_noise.py b/src/characterize_gauss_fit/study_noise.py index e54d9e2..f5959c7 100644 --- a/src/characterize_gauss_fit/study_noise.py +++ b/src/characterize_gauss_fit/study_noise.py @@ -19,7 +19,7 @@ import numpy.typing as npt from characterize_gauss_fit import _study_utils as utils -from characterize_gauss_fit.config import Config, config_to_dict +from characterize_gauss_fit.config import Config, StudyNoiseSensitivityConfig, config_to_dict from characterize_gauss_fit.executor import run_trials from characterize_gauss_fit.output import write_csv, write_json_summary from characterize_gauss_fit.plotting import plot_line_with_bands, save_figure @@ -29,6 +29,19 @@ _STUDY_NAME = 'noise_sensitivity' +def _compute_snr_values(study: StudyNoiseSensitivityConfig) -> list[float]: + """Compute the log-spaced SNR values for Study 7. + + Parameters: + study: The study configuration. + + Returns: + A list of SNR values in log-spaced order. + """ + log_lo, log_hi = study.snr_log_range + return list(np.logspace(log_lo, log_hi, study.snr_steps)) + + def build_specs(cfg: Config) -> list[TrialSpec]: """Build trial specs for Study 7. @@ -45,8 +58,7 @@ def build_specs(cfg: Config) -> list[TrialSpec]: study = cfg.studies.noise_sensitivity scale = cfg.generation.scale - log_lo, log_hi = study.snr_log_range - snr_values = np.logspace(log_lo, log_hi, study.snr_steps) + snr_values = _compute_snr_values(study) specs: list[TrialSpec] = [] rng = np.random.default_rng(7000) @@ -122,8 +134,7 @@ def _write_outputs( study = cfg.studies.noise_sensitivity scale = cfg.generation.scale - log_lo, log_hi = study.snr_log_range - snr_values = list(np.logspace(log_lo, log_hi, study.snr_steps)) + snr_values = _compute_snr_values(study) n_snr = len(snr_values) n_sigma = len(study.sigmas) n_samples = study.noise_samples @@ -133,8 +144,22 @@ def _write_outputs( def _collect_metric_grid( metric: str, + *, + abs_values: bool = False, ) -> tuple[list[npt.NDArray[np.float64]], list[npt.NDArray[np.float64]]]: - """Compute per-SNR mean and std for one metric, one array per sigma.""" + """Compute per-SNR mean and std for one metric, one array per sigma. + + Parameters: + metric: Attribute name on :class:`~trial.TrialResult`. + abs_values: If ``True``, apply ``abs`` to each sample before + computing mean and std so that the error bands reflect the + magnitude distribution rather than signed-value distribution. + """ + # Defensive: check the spec ordering assumption holds. + expected_total = n_snr * n_sigma * n_samples + assert len(results) == expected_total, ( + f'Expected {expected_total} results for noise_sensitivity but got {len(results)}' + ) all_means: list[npt.NDArray[np.float64]] = [] all_stds: list[npt.NDArray[np.float64]] = [] for s_idx in range(n_sigma): @@ -144,6 +169,8 @@ def _collect_metric_grid( start = snr_idx * n_sigma * n_samples + s_idx * n_samples bucket = results[start : start + trials_per_snr_sigma] arr = utils.collect_metric(bucket, metric) + if abs_values: + arr = np.abs(arr) means.append(utils.safe_nanmean(arr)) stds.append(utils.safe_nanstd(arr)) all_means.append(np.array(means)) @@ -153,16 +180,14 @@ def _collect_metric_grid( sigma_labels = [f'sigma={s:.1f}' for s in study.sigmas] for metric, ylabel, fname in [ - ('pos_err', 'Position error, Euclidean (pixels)', 'pos_err_vs_snr.png'), - ('pos_err_y', '|pos_err_y| (pixels)', 'pos_err_y_vs_snr.png'), - ('pos_err_x', '|pos_err_x| (pixels)', 'pos_err_x_vs_snr.png'), - ('sigma_y_err', 'Relative |sigma_y| error', 'sigma_y_err_vs_snr.png'), - ('sigma_x_err', 'Relative |sigma_x| error', 'sigma_x_err_vs_snr.png'), - ('scale_err', 'Relative |scale| error', 'scale_err_vs_snr.png'), + ('pos_err', 'Position error, Euclidean (pixels)', 'pos_err_vs_snr.png'), + ('pos_err_y', '|pos_err_y| (pixels)', 'pos_err_y_vs_snr.png'), + ('pos_err_x', '|pos_err_x| (pixels)', 'pos_err_x_vs_snr.png'), + ('sigma_y_err', 'Relative |sigma_y| error', 'sigma_y_err_vs_snr.png'), + ('sigma_x_err', 'Relative |sigma_x| error', 'sigma_x_err_vs_snr.png'), + ('scale_err', 'Relative |scale| error', 'scale_err_vs_snr.png'), ]: - means, stds = _collect_metric_grid(metric) - # Take absolute value for all error metrics. - means = [np.abs(m) for m in means] + means, stds = _collect_metric_grid(metric, abs_values=True) fig = plot_line_with_bands( snr_arr, means, @@ -173,8 +198,12 @@ def _collect_metric_grid( ylabel=ylabel, log_x=True, log_y=True, + note=( + f'box_size={study.box_size}, angle=0\u00b0, offset randomized, ' + f'{study.noise_samples} samples/pt, \u03c3 fitted freely' + ), ) - save_figure(fig, study_dir, fname) + save_figure(fig, study_dir, f'{_STUDY_NAME}_{fname}') write_csv(cfg.output_dir, _STUDY_NAME, specs, results) diff --git a/src/characterize_gauss_fit/study_offset.py b/src/characterize_gauss_fit/study_offset.py index ffa8e48..1e81a53 100644 --- a/src/characterize_gauss_fit/study_offset.py +++ b/src/characterize_gauss_fit/study_offset.py @@ -27,6 +27,13 @@ _LOG = logging.getLogger(__name__) _STUDY_NAME = 'subpixel_offset' +# Shared grouping key definitions for JSON summary and _write_outputs. +_GROUP_KEYS: list[Any] = [ + ('sigma', lambda s: s.sigma_y), + ('offset_y', lambda s: round(s.offset_y, 6)), + ('offset_x', lambda s: round(s.offset_x, 6)), +] + def build_specs(cfg: Config) -> list[TrialSpec]: """Build trial specs for Study 2. @@ -44,7 +51,7 @@ def build_specs(cfg: Config) -> list[TrialSpec]: study = cfg.studies.subpixel_offset offsets = np.linspace(study.offset_range[0], study.offset_range[1], study.offset_steps) specs: list[TrialSpec] = [] - seed = 2000 + seed = 2000 # seed range 2000+ reserved for this study to avoid RNG seed collisions for sigma in study.sigmas: for oy in offsets: for ox in offsets: @@ -146,11 +153,16 @@ def _write_outputs( cbar_label='log10(error)', log_scale=True, mask=fail_mask, + note=( + f'box_size={study.box_size}, angle={study.angle:.1f}\u00b0, ' + f'no background, noiseless' + ), ) - save_figure(fig, study_dir, fname) + save_figure(fig, study_dir, f'{_STUDY_NAME}_{fname}') # Line plots: error vs offset_x at fixed offset_y (midpoint row), and # error vs offset_y at fixed offset_x (midpoint column). + # mid_idx selects the midpoint of the configured offset range (n_off // 2). mid_idx = n_off // 2 x_arr = np.array(offsets) @@ -193,19 +205,19 @@ def _write_outputs( xlabel=f'{vary_axis} (pixels)', ylabel=metric_label, log_y=True, + note=( + f'box_size={study.box_size}, angle={study.angle:.1f}\u00b0, ' + f'no background, noiseless' + ), ) - save_figure(fig, study_dir, fname_line) + save_figure(fig, study_dir, f'{_STUDY_NAME}_{fname_line}') write_csv(cfg.output_dir, _STUDY_NAME, specs, results) groups = utils.build_groups_by_keys( specs, results, - [ - ('sigma', lambda s: s.sigma_y), - ('offset_y', lambda s: round(s.offset_y, 6)), - ('offset_x', lambda s: round(s.offset_x, 6)), - ], + _GROUP_KEYS, ) write_json_summary( cfg.output_dir, @@ -231,9 +243,5 @@ def build_json_groups(specs: list[TrialSpec], results: list[TrialResult]) -> lis return utils.build_groups_by_keys( specs, results, - [ - ('sigma', lambda s: s.sigma_y), - ('offset_y', lambda s: round(s.offset_y, 6)), - ('offset_x', lambda s: round(s.offset_x, 6)), - ], + _GROUP_KEYS, ) diff --git a/src/characterize_gauss_fit/study_shape.py b/src/characterize_gauss_fit/study_shape.py index e618778..3872c5e 100644 --- a/src/characterize_gauss_fit/study_shape.py +++ b/src/characterize_gauss_fit/study_shape.py @@ -117,7 +117,7 @@ def _write_outputs( n_ratios = len(study.sigma_ratios) n_sigma_x = len(study.sigma_x_values) - angle_labels = [f'{a / math.pi:.2f}pi' for a in angles] + angle_labels = [f'{math.degrees(a):.0f}\u00b0' for a in angles] ratio_labels = [f'{r:.2f}' for r in study.sigma_ratios] trials_per_sigma_x = n_ratios * n_angles @@ -144,7 +144,7 @@ def _write_outputs( if result.sigma_y_err is not None: sigma_y_err_grid[r_idx, a_idx] = abs(result.sigma_y_err) if not is_circular and result.angle_err is not None: - angle_err_grid[r_idx, a_idx] = result.angle_err + angle_err_grid[r_idx, a_idx] = math.degrees(result.angle_err) label = f'sigma_x={sigma_x:.1f}' for data, metric_title, fname_prefix, cbar in [ @@ -155,7 +155,7 @@ def _write_outputs( (pos_err_x_grid, f'|pos_err_x| -- {label}', 'pos_err_x', 'log10(|pos_err_x|)'), (angle_err_grid, - f'Angle error (rad) -- {label}', 'angle_err', 'Angle error (rad)'), + f'Angle error (\u00b0) -- {label}', 'angle_err', 'Angle error (\u00b0)'), (sigma_y_err_grid, f'Rel sigma_y error -- {label}', 'sigma_y_err', 'log10(rel error)'), ]: @@ -165,13 +165,18 @@ def _write_outputs( angle_labels, ratio_labels, title=metric_title, - xlabel='Angle (units of pi)', + xlabel='Angle (degrees)', ylabel='sigma_y / sigma_x ratio', cbar_label=cbar, log_scale=use_log, mask=fail_mask, + note=( + f'box={study.box_size}, ' + f'offset=({study.offset[0]:+.2f},{study.offset[1]:+.2f}), ' + f'no background, noiseless, \u03c3 and angle fitted freely' + ), ) - save_figure(fig, study_dir, f'{fname_prefix}_sx{sigma_x:.1f}.png') + save_figure(fig, study_dir, f'{_STUDY_NAME}_{fname_prefix}_sx{sigma_x:.1f}.png') write_csv(cfg.output_dir, _STUDY_NAME, specs, results) @@ -180,7 +185,10 @@ def _write_outputs( results, [ ('sigma_x', lambda s: s.sigma_x), - ('sigma_ratio', lambda s: round(s.sigma_y / s.sigma_x, 4)), + ( + 'sigma_ratio', + lambda s: round(s.sigma_y / s.sigma_x, 4) if s.sigma_x != 0.0 else None, + ), ('angle_true', lambda s: round(s.angle, 4)), ], ) diff --git a/src/characterize_gauss_fit/test_config.yaml b/src/characterize_gauss_fit/test_config.yaml index 9d3977f..8af1197 100644 --- a/src/characterize_gauss_fit/test_config.yaml +++ b/src/characterize_gauss_fit/test_config.yaml @@ -14,12 +14,14 @@ noise_samples: 3 studies: - # Study 1: 2 box sizes x 3 sigmas = 6 trials + # Study 1: 2 box sizes x 3 sigmas x 2 offsets = 12 trials box_vs_sigma: enabled: true box_sizes: [9, 21] sigmas: [0.5, 1.0, 2.0] - offset: [0.25, 0.25] + offsets: + - [0.0, 0.0] + - [0.25, 0.25] angle: 0.0 scale: 1.0 fitting: @@ -36,7 +38,7 @@ studies: fitting: bkgnd_degree: null - # Study 3: 3 deltas x 2 sigmas x (1 noiseless + 1 snr) x up to 3 noise = ~18 trials + # Study 3: 3 deltas x 2 sigmas x (1 noiseless + 1 snr) x 3 noise = 24 trials min_detectable_offset: enabled: true delta_offsets: [0.01, 0.05, 0.2] @@ -59,7 +61,7 @@ studies: fitting: bkgnd_degree: null - # Study 5: 3 modes x 2 shapes = 18 trials (modes: all_float, sigma_fixed_correct, + # Study 5: 5 modes x 2 shapes = 24 trials (modes: all_float, sigma_fixed_correct, # angle_fixed_correct, all_fixed_correct, all_fixed_errors) constraint_modes: enabled: true @@ -74,7 +76,7 @@ studies: offset: [0.25, 0.25] scale: 1.5 - # Study 6: 2 background types x 2 fitting degrees x 1 amplitude x 1 ignore_center = 4 trials + # Study 6: 2 background types x 2 fitting degrees x 1 amplitude x 1 ignore_center x 2 offsets = 8 trials background: enabled: true background_amplitudes: [0.1] @@ -84,7 +86,9 @@ studies: background_types: [none, constant] box_size: 13 sigma: [1.0, 1.0] - offset: [0.25, 0.25] + offsets: + - [0.0, 0.0] + - [0.25, 0.25] # Study 7: 4 SNR points x 1 sigma x 3 noise samples = 12 trials noise_sensitivity: @@ -95,7 +99,7 @@ studies: noise_samples: 3 box_size: 13 - # Study 8: 2 num_hot x 2 num_sigma x 1 amplitude x 3 noise samples = 12 trials + # Study 8: 2 num_hot x 1 num_sigma x 1 amplitude x 3 noise samples = 6 trials hot_pixel_rejection: enabled: true num_hot_pixels: [0, 3] diff --git a/src/characterize_gauss_fit/trial.py b/src/characterize_gauss_fit/trial.py index 99fea2a..a3a2c5b 100644 --- a/src/characterize_gauss_fit/trial.py +++ b/src/characterize_gauss_fit/trial.py @@ -166,7 +166,6 @@ def _make_background( Raises: ValueError: If ``background_type`` is not recognised. """ - half = box_size // 2 if background_type == BACKGROUND_TYPE_NONE: return np.zeros((box_size, box_size), dtype=np.float64) @@ -193,8 +192,6 @@ def _make_background( noise = rng.normal(0.0, noise_rms * 0.5, size=(box_size, box_size)) return (constant + noise).astype(np.float64) - # Suppress the linter warning for the "impossible" half = box_size // 2 unused var. - _ = half raise ValueError( f'Unknown background_type "{background_type}". ' f'Valid options: {BACKGROUND_TYPE_NONE}, {BACKGROUND_TYPE_CONSTANT}, ' @@ -258,6 +255,12 @@ def synthesize_image(spec: TrialSpec) -> tuple[npt.NDArray[np.float64], float, f # --- Inject hot pixels --- if spec.hot_pixel_count > 0: + total_pixels = spec.box_size * spec.box_size + if spec.hot_pixel_count > total_pixels: + raise ValueError( + f'hot_pixel_count ({spec.hot_pixel_count}) exceeds total pixels ' + f'({total_pixels}) for box_size={spec.box_size}' + ) hot_amplitude = spec.hot_pixel_amplitude * psf_peak # Randomise positions uniformly over the full patch. flat_indices = rng.choice( @@ -365,10 +368,14 @@ def run_trial(spec: TrialSpec) -> TrialResult: if 'sigma_y' in details: sigma_y_fit = float(details['sigma_y']) - sigma_y_err = (sigma_y_fit - spec.sigma_y) / spec.sigma_y + sigma_y_err = ( + (sigma_y_fit - spec.sigma_y) / spec.sigma_y if spec.sigma_y != 0.0 else None + ) if 'sigma_x' in details: sigma_x_fit = float(details['sigma_x']) - sigma_x_err = (sigma_x_fit - spec.sigma_x) / spec.sigma_x + sigma_x_err = ( + (sigma_x_fit - spec.sigma_x) / spec.sigma_x if spec.sigma_x != 0.0 else None + ) # Retrieve fitted angle if it was floating. angle_fit: float | None = None From 09730bad320574a58c1c43ef8cd441865d9839d4 Mon Sep 17 00:00:00 2001 From: Robert French Date: Mon, 13 Apr 2026 18:20:13 -0700 Subject: [PATCH 08/17] Fixes --- .gitignore | 1 + docs/characterize_gauss_fit.md | 86 ++++++++--- pyproject.toml | 2 +- src/characterize_gauss_fit/defaults.yaml | 2 +- src/characterize_gauss_fit/hires_config.yaml | 145 ++++++++++++++++++ src/characterize_gauss_fit/main.py | 14 ++ src/characterize_gauss_fit/plotting.py | 45 ++++-- .../study_background.py | 13 +- src/characterize_gauss_fit/study_box_sigma.py | 9 +- .../study_constraints.py | 16 +- .../study_hot_pixels.py | 16 +- .../study_min_offset.py | 40 +++-- src/characterize_gauss_fit/study_noise.py | 10 +- src/characterize_gauss_fit/study_offset.py | 23 ++- src/characterize_gauss_fit/study_shape.py | 26 +++- src/characterize_gauss_fit/test_config.yaml | 2 +- 16 files changed, 382 insertions(+), 68 deletions(-) create mode 100644 src/characterize_gauss_fit/hires_config.yaml diff --git a/.gitignore b/.gitignore index 048c0b3..8e0069d 100644 --- a/.gitignore +++ b/.gitignore @@ -177,3 +177,4 @@ nohup.out log.txt profile.txt *tinytim* +gauss*/ diff --git a/docs/characterize_gauss_fit.md b/docs/characterize_gauss_fit.md index 13571e8..12dbc90 100644 --- a/docs/characterize_gauss_fit.md +++ b/docs/characterize_gauss_fit.md @@ -73,13 +73,20 @@ Copy the built-in reduced-grid test configuration to a local file: characterize_gauss_fit --copy-test-config-to test_config.yaml ``` +Copy the built-in high-resolution configuration to a local file: + +```sh +characterize_gauss_fit --copy-hires-config-to hires_config.yaml +``` + ## CLI Reference ``` usage: characterize_gauss_fit [--config FILE] [--study NAME] [--output-dir DIR] [--num-workers N] [--list-studies] [--copy-default-config-to FILE] - [--copy-test-config-to FILE] [--verbose] + [--copy-test-config-to FILE] + [--copy-hires-config-to FILE] [--verbose] Options: --config FILE Path to a YAML override file merged onto @@ -98,6 +105,8 @@ Options: --copy-test-config-to FILE Write the built-in reduced-grid test configuration to FILE and exit. No studies are run. + --copy-hires-config-to FILE Write the built-in high-resolution configuration + to FILE and exit. No studies are run. --verbose, -v Enable DEBUG-level logging. ``` @@ -552,40 +561,35 @@ PSF pixels near the core. `num_sigma=3` is typically a good balance. --- -## Bundled Test Configuration +## Bundled Configuration Files -A reduced-grid configuration file named `test_config.yaml` ships alongside -`defaults.yaml` inside the package. It runs all eight studies with the -smallest viable parameter grids so the entire suite completes in roughly -30--120 seconds on a single core. Use it to verify all code paths execute -after code changes. +Three YAML configurations ship alongside the package source. Each can be +copied to a local file for editing with the corresponding `--copy-*-to` +option. -### Obtaining the file +### Default configuration (`defaults.yaml`) -Use the built-in copy command to write either bundled config to a local file: +The primary reference configuration. All parameters are set to sensible +defaults that provide a thorough survey of each study's parameter space. +Output is written to `./gauss_fit_results/`. ```sh -# Copy the full default configuration characterize_gauss_fit --copy-default-config-to my_config.yaml - -# Copy the reduced-grid test configuration -characterize_gauss_fit --copy-test-config-to test_config.yaml ``` -Both commands write the file and exit immediately — no studies are run. -The destination must not already exist; the command fails with an error if it -does. +### Reduced-grid test configuration (`test_config.yaml`) -### Running the test suite +Runs all eight studies with the smallest viable parameter grids so the +entire suite completes in roughly 30--120 seconds on a single core. Use it +to verify that all code paths execute after code changes. ```sh +characterize_gauss_fit --copy-test-config-to test_config.yaml characterize_gauss_fit --config test_config.yaml ``` Output is written to `./gauss_fit_test/` by default. -### What it covers - | Study | Grid size | Approx. trials | |-------|-----------|----------------| | `box_vs_sigma` | 2 box sizes x 3 sigmas | 6 | @@ -597,9 +601,47 @@ Output is written to `./gauss_fit_test/` by default. | `noise_sensitivity` | 4 SNR points x 1 sigma x 3 samples | 12 | | `hot_pixel_rejection` | 2 num_hot x 1 threshold x 1 amplitude x 3 samples | 12 | -All parameters in `test_config.yaml` can themselves be overridden by a -further user config file. For example, to run only study 1 with the test -grid: +### High-resolution configuration (`hires_config.yaml`) + +Runs all eight studies with denser parameter grids and larger +`noise_samples` counts compared with the defaults, while staying within the +same parameter ranges. The goal is smoother heatmaps, less noisy line plots, +and more nuanced detail at intermediate parameter values. Estimated runtime +is 10--30x longer than the default configuration; use `--num-workers` to +parallelise across CPU cores. + +```sh +characterize_gauss_fit --copy-hires-config-to hires_config.yaml +characterize_gauss_fit --config hires_config.yaml --num-workers 8 +``` + +Output is written to `./gauss_fit_hires/` by default. + +| Study | Denser axes | Key changes vs. defaults | +|-------|-------------|--------------------------| +| `box_vs_sigma` | 12 box sizes, 13 sigmas | adds 15, 19, 41 px boxes; intermediate sigma values | +| `subpixel_offset` | 21 x 21 offset grid, 4 sigmas | 0.025 px step; adds sigma=1.5 | +| `min_detectable_offset` | 11 deltas, 4 SNR conditions, 200 samples | adds SNR=20 condition | +| `sigma_asymmetry_angle` | 10 ratios, 25 angle steps | 7.5 deg angular resolution | +| `constraint_modes` | 6 sigma-error fractions, 4 PSF shapes | adds 0.1, 0.3, 0.75 fractions | +| `background` | 7 amplitudes, degree=3, 4 ignore_center sizes | finer amplitude sweep | +| `noise_sensitivity` | 25 SNR points, 4 sigmas, 200 samples | adds sigma=1.5; 4x more samples | +| `hot_pixel_rejection` | 8 hot-pixel counts, 6 amplitudes, 4 thresholds, 50 samples | fills gaps in all axes | + +### Obtaining any bundled file + +All three copy commands write the file and exit immediately — no studies are +run. The destination path must not already exist. + +```sh +characterize_gauss_fit --copy-default-config-to my_config.yaml +characterize_gauss_fit --copy-test-config-to test_config.yaml +characterize_gauss_fit --copy-hires-config-to hires_config.yaml +``` + +All parameters in any bundled config can be further overridden by combining +it with a second user config file or with CLI flags. For example, to run +only study 1 with the test grid: ```sh characterize_gauss_fit --config test_config.yaml --study box_vs_sigma diff --git a/pyproject.toml b/pyproject.toml index 83f2645..67e93ad 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -64,7 +64,7 @@ where = ["src"] [tool.setuptools.package-data] psfmodel = ["py.typed"] -characterize_gauss_fit = ["defaults.yaml", "test_config.yaml"] +characterize_gauss_fit = ["defaults.yaml", "test_config.yaml", "hires_config.yaml"] [tool.setuptools_scm] local_scheme = "no-local-version" diff --git a/src/characterize_gauss_fit/defaults.yaml b/src/characterize_gauss_fit/defaults.yaml index dacf661..1c250cc 100644 --- a/src/characterize_gauss_fit/defaults.yaml +++ b/src/characterize_gauss_fit/defaults.yaml @@ -197,7 +197,7 @@ studies: # These values override fitting.num_sigma for the PSF-fit bad-pixel # rejection stage. The study iterates over num_sigma_values (and over # null when num_sigma_with_null is true) to test rejection aggressiveness. - num_sigma_values: [2.0, 3.0, 5.0] + num_sigma_values: [3.0, 4.0, 5.0, 6.0] # If true, also test with num_sigma=null (rejection disabled). num_sigma_with_null: true # Hot pixel amplitudes as multiples of the PSF peak. diff --git a/src/characterize_gauss_fit/hires_config.yaml b/src/characterize_gauss_fit/hires_config.yaml new file mode 100644 index 0000000..9f70084 --- /dev/null +++ b/src/characterize_gauss_fit/hires_config.yaml @@ -0,0 +1,145 @@ +# hires_config.yaml -- High-resolution configuration for characterize_gauss_fit. +# +# Runs all eight studies with denser parameter grids and larger noise-sample +# counts compared with the defaults, while staying within the same ranges. +# The goal is smoother heatmaps, less noisy line plots, and more nuanced +# detail at intermediate parameter values. +# +# Estimated runtime: ~10-30x longer than the default config. Use +# --num-workers to parallelise across CPU cores, e.g.: +# +# characterize_gauss_fit --config hires_config.yaml --num-workers 8 +# +# Run with: +# characterize_gauss_fit --config src/characterize_gauss_fit/hires_config.yaml + +output_dir: ./gauss_fit_hires +num_workers: 1 + +# Stochastic studies use 200 noise realisations per point (vs. 50 default). +noise_samples: 200 + +studies: + + # Study 1: 12 box sizes x 13 sigmas x 5 offsets = 780 trials + # Adds intermediate box sizes (15, 19) and extra sigma values (0.4, 0.6, + # 0.7, 1.25, 2.5, 4.0) to fill in the heatmap grid more finely. + box_vs_sigma: + enabled: true + box_sizes: [5, 7, 9, 11, 13, 15, 17, 19, 21, 25, 31, 41] + sigmas: [0.3, 0.4, 0.5, 0.6, 0.8, 1.0, 1.25, 1.5, 2.0, 2.5, 3.0, 4.0, 5.0] + offsets: + - [0.0, 0.0] + - [0.25, 0.25] + - [0.5, 0.0] + - [0.0, 0.5] + - [0.5, 0.5] + angle: 0.0 + scale: 1.0 + fitting: + bkgnd_degree: null + + # Study 2: 21x21 offset grid x 4 sigmas = 1764 trials + # Doubles the offset-step resolution (0.025 px per step) and adds sigma=1.5 + # to provide an intermediate panel between 1.0 and 2.0. + subpixel_offset: + enabled: true + offset_steps: 21 + offset_range: [0.0, 0.5] + sigmas: [0.5, 1.0, 1.5, 2.0] + box_size: 21 + angle: 0.0 + fitting: + bkgnd_degree: null + + # Study 3: 11 deltas x 7 sigmas x (1 noiseless + 4 snr x 200 samples) = ~62k trials + # Adds two extra log-spaced delta values and a low-SNR (20) condition to + # better characterise the detection floor. Raise noise_samples for tighter + # uncertainty bands. + min_detectable_offset: + enabled: true + delta_offsets: [0.001, 0.002, 0.004, 0.007, 0.01, 0.02, 0.04, 0.07, 0.1, 0.2, 0.5] + sigmas: [0.3, 0.5, 0.8, 1.0, 1.5, 2.0, 3.0] + box_size: 21 + noise_samples: 200 + snr_values: [20.0, 50.0, 100.0, 500.0] + include_noiseless: true + fitting: + bkgnd_degree: null + + # Study 4: 10 ratios x 25 angles x 3 sigma_x = 750 trials + # Adds extra asymmetry ratios (0.2, 0.33, 0.67, 3.0) and nearly doubles the + # angular resolution (7.5 deg per step vs. 15 deg in default). + sigma_asymmetry_angle: + enabled: true + sigma_ratios: [0.2, 0.33, 0.5, 0.67, 0.75, 1.0, 1.5, 2.0, 3.0, 5.0] + angle_steps: 25 + sigma_x_values: [0.5, 1.0, 2.0] + box_size: 25 + offset: [0.25, 0.25] + fitting: + bkgnd_degree: null + + # Study 5: 6 sigma-error fractions x 3+ shapes + # Adds intermediate sigma-error values (0.1, 0.3, 0.75) and two extra PSF + # shapes to reveal how the constraint accuracy curve behaves between modes. + constraint_modes: + enabled: true + sigma_error_fractions: [0.0, 0.1, 0.2, 0.3, 0.5, 0.75] + angle_error_rad: 0.3 + psf_shapes: + - sigma: [1.0, 1.0] + angle: 0.0 + - sigma: [0.5, 1.5] + angle: 0.7854 # pi/4 + - sigma: [1.0, 2.0] + angle: 1.0472 # pi/3 + - sigma: [0.7, 1.4] + angle: 0.5236 # pi/6 + box_size: 21 + offset: [0.25, 0.25] + scale: 1.5 + + # Study 6: 7 amplitudes x 5 degrees (incl. null) x 4 ignore_centers x 5 types x 3 offsets + # Adds more background amplitudes (0.005, 0.05, 0.25, 1.0), degree=3, and + # ignore_center=[3,3] for a finer view of the background-model landscape. + background: + enabled: true + background_amplitudes: [0.005, 0.01, 0.05, 0.1, 0.25, 0.5, 1.0] + bkgnd_degrees: [0, 1, 2, 3] + bkgnd_degrees_with_null: true + bkgnd_ignore_centers: [[1, 1], [2, 2], [3, 3], [4, 4]] + background_types: [none, constant, linear, quadratic, noisy_constant] + box_size: 21 + sigma: [1.0, 1.0] + offsets: + - [0.0, 0.0] + - [0.25, 0.25] + - [0.5, 0.5] + + # Study 7: 25 SNR points x 4 sigmas x 200 samples = 20000 trials + # Finer log-spaced SNR grid (25 pts vs. 15), extra sigma=1.5 panel, and + # 200 noise samples per point for tighter error bands. + noise_sensitivity: + enabled: true + snr_log_range: [0.5, 3.5] + snr_steps: 25 + sigmas: [0.5, 1.0, 1.5, 2.0] + noise_samples: 200 + box_size: 21 + + # Study 8: 8 hot-pixel counts x 4 num_sigma x 6 amplitudes x 50 samples + # Fills in the hot-pixel count axis more densely (adds 2, 7, 15) and expands + # hot_amplitudes (adds 2x, 10x, 50x) for a more complete rejection map. + # Noise samples raised to 50 for less noisy line plots. + hot_pixel_rejection: + enabled: true + num_hot_pixels: [0, 1, 2, 3, 5, 7, 10, 15] + num_sigma_values: [3.0, 4.0, 5.0, 6.0, 8.0] + num_sigma_with_null: true + hot_amplitudes: [2.0, 5.0, 10.0, 20.0, 50.0, 100.0] + noise_samples: 50 + snr: 100.0 + box_size: 21 + sigma: [1.0, 1.0] + offset: [0.25, 0.25] diff --git a/src/characterize_gauss_fit/main.py b/src/characterize_gauss_fit/main.py index 2d2e193..266d282 100644 --- a/src/characterize_gauss_fit/main.py +++ b/src/characterize_gauss_fit/main.py @@ -130,6 +130,16 @@ def _build_parser() -> argparse.ArgumentParser: 'No studies are run.' ), ) + parser.add_argument( + '--copy-hires-config-to', + metavar='FILE', + type=pathlib.Path, + default=None, + help=( + 'Write the built-in high-resolution configuration to FILE and exit. ' + 'No studies are run.' + ), + ) parser.add_argument( '--verbose', '-v', @@ -202,6 +212,10 @@ def main() -> None: _copy_bundled_config('test_config.yaml', args.copy_test_config_to) return + if args.copy_hires_config_to is not None: + _copy_bundled_config('hires_config.yaml', args.copy_hires_config_to) + return + _configure_logging(args.verbose) try: diff --git a/src/characterize_gauss_fit/plotting.py b/src/characterize_gauss_fit/plotting.py index 0f815db..0bcd0eb 100644 --- a/src/characterize_gauss_fit/plotting.py +++ b/src/characterize_gauss_fit/plotting.py @@ -31,6 +31,10 @@ # Colour used to mark cells / points where the fitter did not converge. _FAIL_COLOUR = '#cccccc' +# Line styles cycled across series in plot_line_with_bands so that series +# remain distinguishable when they overlap or when colour alone is ambiguous. +_LINE_STYLES = ['-', '--', '-.', ':', (0, (3, 1, 1, 1)), (0, (5, 2))] + # Path effects applied to heatmap cell annotations so text is readable on any # background colour. _HEATMAP_TEXT_EFFECTS = [_pe.withStroke(linewidth=3, foreground='white')] @@ -49,17 +53,28 @@ def _add_figure_note(fig: Figure, note: str, *, bottom: float = 0.12) -> None: """Render ``note`` as a small italic footnote at the bottom of ``fig``. - Reserves bottom margin so the note does not overlap plot content. + Uses ``tight_layout(rect=[0, note_strip, 1, 1])`` so matplotlib positions + the axes, tick labels, and x-axis title entirely *above* the note strip in + a single consistent pass. This prevents the x-axis title from ending up + in the same vertical band as the note text. Parameters: fig: The figure to annotate. note: Text to display. May contain newlines. - bottom: Fraction of figure height reserved for the note. + bottom: Minimum fraction of figure height reserved for the note strip. """ + n_lines = note.count('\n') + 1 + fig_height = fig.get_figheight() + # 7 pt font at 72 pt/inch with 1.15x line spacing plus 0.06 in padding. + note_frac = (n_lines * 7 * 1.15 / 72.0 + 0.06) / fig_height + actual_bottom = max(bottom, note_frac) kw = dict(_NOTE_STYLE) kw['transform'] = fig.transFigure - fig.text(0.5, 0.01, note, **kw) # type: ignore[arg-type] - fig.subplots_adjust(bottom=bottom) + # Place note text just above the figure bottom edge, inside the reserved strip. + fig.text(0.5, 0.005, note, **kw) # type: ignore[arg-type] + # Single tight_layout call: everything (axes + labels) goes in the rect + # above the note strip, so x-axis title never overlaps the note. + fig.tight_layout(rect=[0.0, actual_bottom, 1.0, 1.0]) def save_figure(fig: Figure, output_dir: pathlib.Path, filename: str) -> pathlib.Path: @@ -74,7 +89,6 @@ def save_figure(fig: Figure, output_dir: pathlib.Path, filename: str) -> pathlib Path to the written PNG file. """ path = output_dir / filename - fig.tight_layout() fig.savefig(path, dpi=_SAVE_DPI) plt.close(fig) return path @@ -115,7 +129,11 @@ def plot_heatmap( A :class:`matplotlib.figure.Figure`. """ n_rows, n_cols = data.shape - fig, ax = plt.subplots(figsize=(max(6, n_cols * 0.8), max(4, n_rows * 0.7))) + # Extra height (+1.2) reserves room for the title and the footnote without + # either being clipped. tight_layout() further adjusts subplot margins. + fig, ax = plt.subplots( + figsize=(max(7, n_cols * 0.9 + 1), max(5.5, n_rows * 0.7 + 1.2)) + ) display = data.astype(float) if log_scale: @@ -157,6 +175,8 @@ def plot_heatmap( if note: _add_figure_note(fig, note, bottom=0.10) + else: + fig.tight_layout() return fig @@ -193,8 +213,9 @@ def plot_line_with_bands( """ fig, ax = plt.subplots(figsize=(8, 5)) - for y_mean, y_std, label in zip(y_means, y_stds, labels, strict=True): - (line,) = ax.plot(x, y_mean, label=label, marker='o', markersize=3) + for i, (y_mean, y_std, label) in enumerate(zip(y_means, y_stds, labels, strict=True)): + ls = _LINE_STYLES[i % len(_LINE_STYLES)] + (line,) = ax.plot(x, y_mean, label=label, marker='o', markersize=3, linestyle=ls) colour = line.get_color() if log_y: lower = np.maximum(y_mean - y_std, 1e-15) @@ -399,7 +420,9 @@ def plot_recovery_fraction_heatmap( A :class:`matplotlib.figure.Figure`. """ n_rows, n_cols = recovery_fractions.shape - fig, ax = plt.subplots(figsize=(max(6, n_cols * 0.8), max(4, n_rows * 0.7))) + fig, ax = plt.subplots( + figsize=(max(7, n_cols * 0.9 + 1), max(5.5, n_rows * 0.7 + 1.2)) + ) img = ax.imshow( recovery_fractions, @@ -434,6 +457,8 @@ def plot_recovery_fraction_heatmap( if note: _add_figure_note(fig, note, bottom=0.10) + else: + fig.tight_layout() return fig @@ -479,7 +504,7 @@ def plot_constraint_summary( (axes[0, 2], pos_err_x_vals, '|pos_err_x| (pixels)'), (axes[1, 0], scale_err_vals, 'Relative scale error'), (axes[1, 1], sigma_y_err_vals, 'Relative sigma_y error'), - (axes[1, 2], angle_err_vals, 'Angle error (\u00b0)'), + (axes[1, 2], angle_err_vals, 'Angle error (\u00b0, floating modes only)'), ] n_cat = len(categories) diff --git a/src/characterize_gauss_fit/study_background.py b/src/characterize_gauss_fit/study_background.py index 623164d..13d3eb5 100644 --- a/src/characterize_gauss_fit/study_background.py +++ b/src/characterize_gauss_fit/study_background.py @@ -155,6 +155,7 @@ def _write_outputs( study_dir: Output subdirectory. """ study = cfg.studies.background + scale = cfg.generation.scale fit_degrees = _compute_fit_degrees(study) bkgnd_types = study.background_types @@ -210,8 +211,16 @@ def _write_outputs( ic_str = f'{ignore_center[0]}x{ignore_center[1]}' bkgnd_note = ( - f'\u03c3=({study.sigma[0]:.1f},{study.sigma[1]:.1f}) px, ' - f'box={study.box_size}, noiseless, \u03c3 and angle fitted freely' + f'PSF: sigma_y = {study.sigma[0]:.1f}, sigma_x = {study.sigma[1]:.1f} px' + f' (fixed); angle = 0\u00b0 (fixed); box_size = {study.box_size} px;' + f' scale = {scale:.2g}; one noiseless trial per cell\n' + f'Offset: Y = {offset_y:+.2f}, X = {offset_x:+.2f} px from pixel centre' + f' (fixed; one heatmap set per offset pair)\n' + f'Background: type on y-axis; amplitude = {amplitude:.2g} \u00d7 PSF peak' + f' (see title); no Gaussian detector noise added\n' + f'Fitting: sigma_y and sigma_x float freely; angle fixed at 0\u00b0;' + f' bkgnd_degree on x-axis (null = no subtraction);' + f' bkgnd_ignore_center = {ic_str} (see title)' ) for hmap, metric_label, fsuffix in [ (grid, 'Position error (Euclidean)', ''), diff --git a/src/characterize_gauss_fit/study_box_sigma.py b/src/characterize_gauss_fit/study_box_sigma.py index 8fc05f9..c4856f7 100644 --- a/src/characterize_gauss_fit/study_box_sigma.py +++ b/src/characterize_gauss_fit/study_box_sigma.py @@ -155,8 +155,13 @@ def _write_outputs( offset_str = f'offset ({offset_y:+.2f}, {offset_x:+.2f})' plot_note = ( - f'angle={study.angle:.1f}\u00b0, scale={study.scale:.0f}, ' - f'no background, \u03c3 fitted freely, noiseless' + f'PSF: sigma_y = sigma_x = sigma (x-axis); angle = {study.angle:.0f}\u00b0 (fixed,' + f' axis-aligned); scale = {study.scale:.2g}; one noiseless trial per cell\n' + f'Offset: Y = {offset_y:+.2f}, X = {offset_x:+.2f} px from pixel centre' + f' (fixed; one heatmap produced per offset pair)\n' + f'Background / noise: none injected; image is clean Gaussian pixel integrals only\n' + f'Fitting: sigma_y and sigma_x float freely; angle fixed at 0\u00b0;' + f' no background subtraction' ) for data, metric_title, metric_key in [ (pos_err_grid, 'Position error (Euclidean)', 'pos_err'), diff --git a/src/characterize_gauss_fit/study_constraints.py b/src/characterize_gauss_fit/study_constraints.py index 18ae060..15b1a30 100644 --- a/src/characterize_gauss_fit/study_constraints.py +++ b/src/characterize_gauss_fit/study_constraints.py @@ -222,7 +222,8 @@ def _write_outputs( n_modes = len(modes) shape_labels = [ - f's=({s.sigma[0]:.1f},{s.sigma[1]:.1f}),a={s.angle:.2f}' for s in study.psf_shapes + f's=({s.sigma[0]:.1f},{s.sigma[1]:.1f}),a={math.degrees(s.angle):.0f}\u00b0' + for s in study.psf_shapes ] mode_labels = [m.label for m in modes] @@ -259,9 +260,16 @@ def _write_outputs( angle_err_vals, title='Effect of parameter constraints on fitting accuracy', note=( - f'box={study.box_size}, ' - f'offset=({study.offset[0]:+.2f},{study.offset[1]:+.2f}), ' - f'noiseless, scale={study.scale:.0f}' + f'PSF: sigma and angle from each shape (see legend); box_size = {study.box_size} px;' + f' offset = ({study.offset[0]:+.2f}, {study.offset[1]:+.2f}) px;' + f' scale = {study.scale:.2g}; one noiseless trial per (mode, shape)\n' + f'Background / noise: none injected\n' + f'Fitting: varies by x-axis mode -- "all_float" = sigma_y, sigma_x, angle all float;' + f' "sigma_fixed_*" = sigmas locked to stated value; "angle_fixed_*" = angle locked;\n' + f' "_correct" = fixed at true value; "_errors" = fixed at true value' + f' + sigma_error_frac or' + f' + {study.angle_error_rad:.2f} rad' + f' ({math.degrees(study.angle_error_rad):.0f}\u00b0)' ), ) save_figure(fig, study_dir, f'{_STUDY_NAME}_summary.png') diff --git a/src/characterize_gauss_fit/study_hot_pixels.py b/src/characterize_gauss_fit/study_hot_pixels.py index 626129c..7650ca2 100644 --- a/src/characterize_gauss_fit/study_hot_pixels.py +++ b/src/characterize_gauss_fit/study_hot_pixels.py @@ -173,6 +173,8 @@ def _write_outputs( study_dir: Output subdirectory. """ study = cfg.studies.hot_pixel_rejection + scale = cfg.generation.scale + noise_rms_val = scale / study.snr num_sigma_list = _make_num_sigma_list(study.num_sigma_with_null, study.num_sigma_values) @@ -194,10 +196,16 @@ def _write_outputs( for ha_idx, hot_amp in enumerate(hot_amps): plot_note = ( - f'\u03c3=({study.sigma[0]:.1f},{study.sigma[1]:.1f}) px, ' - f'box={study.box_size}, ' - f'offset=({study.offset[0]:+.2f},{study.offset[1]:+.2f}), ' - f'SNR={study.snr:.0f}, {study.noise_samples} samples/pt' + f'PSF: sigma_y = {study.sigma[0]:.1f}, sigma_x = {study.sigma[1]:.1f} px (fixed);' + f' angle = 0\u00b0 (fixed); box_size = {study.box_size} px; scale = {scale:.2g}\n' + f'Offset: Y = {study.offset[0]:+.2f}, X = {study.offset[1]:+.2f} px from pixel' + f' centre (fixed for all trials)\n' + f'Noise: Gaussian, noise_rms = {noise_rms_val:.3g} (SNR = {study.snr:.0f});' + f' {study.noise_samples} independent trials per condition;' + f' hot-pixel positions randomized per trial\n' + f'Fitting: sigma_y and sigma_x float freely; angle fixed at 0\u00b0;' + f' num_sigma rejection = series label (see legend);' + f' hot-pixel amplitude = {hot_amp:.0f}\u00d7 PSF peak (see title)' ) # --- Convergence-rate plot ------------------------------------------- conv_means = _convergence_means(num_sigma_list, n_hot_list, hot_amp, bucket_map) diff --git a/src/characterize_gauss_fit/study_min_offset.py b/src/characterize_gauss_fit/study_min_offset.py index 499fa23..69f9460 100644 --- a/src/characterize_gauss_fit/study_min_offset.py +++ b/src/characterize_gauss_fit/study_min_offset.py @@ -191,7 +191,16 @@ def _write_outputs( sigma_labels = [f'{s:.2g}' for s in sigmas] # Line plots: one per condition, three metrics (Euclidean, Y-axis, X-axis). - for _noise_rms, cond_label in conditions: + for noise_rms, cond_label in conditions: + noise_desc = ( + 'noiseless (1 trial per point -- numerical precision floor)' + if noise_rms == 0.0 + else ( + f'Gaussian noise, noise_rms = {noise_rms:.3g}' + f' (SNR = scale / noise_rms = {scale / noise_rms:.0f});' + f' {study.noise_samples} independent trials per point' + ) + ) for metric_attr, metric_label, fname_prefix in [ ('pos_err', 'Mean position error (Euclidean, pixels)', 'pos_err'), ('pos_err_y', 'Mean |pos_err_y| (pixels)', 'pos_err_y'), @@ -229,14 +238,18 @@ def _write_outputs( y_stds, labels=line_labels, title=f'Min detectable offset ({metric_label}) -- {cond_label}', - xlabel='Injected offset delta (pixels)', + xlabel='Injected X offset (pixels)', ylabel=metric_label, log_x=True, log_y=True, note=( - f'box_size={study.box_size}, ' - f'{study.noise_samples} noise samples/condition, ' - f'offset varies as (\u03b4, \u03b4)' + f'PSF: sigma_y = sigma_x = sigma (see series label); angle = 0\u00b0 (fixed);' + f' box_size = {study.box_size} px; scale = {scale:.2g}\n' + f'Offset: Y = 0 px (fixed); X = delta (x-axis only); all positional offset' + f' is injected in the X direction\n' + f'Noise: {noise_desc}\n' + f'Fitting: sigma_y and sigma_x float freely; angle fixed at 0\u00b0;' + f' no background subtraction' ), ) save_figure(fig, study_dir, f'{_STUDY_NAME}_{fname_prefix}_{cond_label}.png') @@ -255,13 +268,20 @@ def _write_outputs( rec_grid, delta_labels, sigma_labels, - title=f'Recovery fraction -- {cond_label}', - xlabel='Injected offset delta (pixels)', + title=( + f'Recovery fraction (pos_err < delta/2) -- {cond_label}' + ), + xlabel='Injected X offset / delta (pixels)', ylabel='Sigma (pixels)', note=( - f'box_size={study.box_size}, ' - f'{study.noise_samples} noise samples/condition, ' - f'offset varies as (\u03b4, \u03b4)' + f'PSF: sigma_y = sigma_x = sigma (y-axis); angle = 0\u00b0 (fixed);' + f' box_size = {study.box_size} px; scale = {scale:.2g}\n' + f'Offset: Y = 0 px (fixed); X = delta (x-axis); all offset in X only\n' + f'Noise: Gaussian, noise_rms = {noise_rms:.3g}' + f' (SNR = {scale / noise_rms:.0f}); {study.noise_samples} trials per cell\n' + f'Fitting: sigma_y and sigma_x float freely; angle fixed at 0\u00b0;' + f' no background subtraction\n' + f'Recovery = fraction of trials where Euclidean pos_err < delta / 2' ), ) save_figure(fig, study_dir, f'{_STUDY_NAME}_recovery_{cond_label}.png') diff --git a/src/characterize_gauss_fit/study_noise.py b/src/characterize_gauss_fit/study_noise.py index f5959c7..ccffd6f 100644 --- a/src/characterize_gauss_fit/study_noise.py +++ b/src/characterize_gauss_fit/study_noise.py @@ -199,8 +199,14 @@ def _collect_metric_grid( log_x=True, log_y=True, note=( - f'box_size={study.box_size}, angle=0\u00b0, offset randomized, ' - f'{study.noise_samples} samples/pt, \u03c3 fitted freely' + f'PSF: sigma_y = sigma_x = sigma (see series label); angle = 0\u00b0 (fixed);' + f' box_size = {study.box_size} px; scale = {scale:.2g}\n' + f'Offset: Y and X each drawn independently from Uniform[\u22120.5, +0.5] px' + f' per trial (different subpixel position every trial)\n' + f'Noise: Gaussian, noise_rms = scale / SNR (x-axis);' + f' {study.noise_samples} independent trials per (sigma, SNR) point\n' + f'Fitting: sigma_y and sigma_x float freely; angle fixed at 0\u00b0;' + f' no background subtraction' ), ) save_figure(fig, study_dir, f'{_STUDY_NAME}_{fname}') diff --git a/src/characterize_gauss_fit/study_offset.py b/src/characterize_gauss_fit/study_offset.py index 1e81a53..4f460ae 100644 --- a/src/characterize_gauss_fit/study_offset.py +++ b/src/characterize_gauss_fit/study_offset.py @@ -114,6 +114,7 @@ def _write_outputs( study_dir: Output subdirectory. """ study = cfg.studies.subpixel_offset + scale = cfg.generation.scale offsets = list(np.linspace(study.offset_range[0], study.offset_range[1], study.offset_steps)) n_off = study.offset_steps sigmas = study.sigmas @@ -154,8 +155,16 @@ def _write_outputs( log_scale=True, mask=fail_mask, note=( - f'box_size={study.box_size}, angle={study.angle:.1f}\u00b0, ' - f'no background, noiseless' + f'PSF: sigma_y = sigma_x = {sigma:.2g} px (fixed for this heatmap);' + f' angle = {study.angle:.0f}\u00b0 (fixed); box_size = {study.box_size} px;' + f' scale = {scale:.2g}; one noiseless trial per cell\n' + f'Offset: Y and X each swept over a' + f' {study.offset_steps}\u00d7{study.offset_steps}' + f' grid from {study.offset_range[0]:.2f} to {study.offset_range[1]:.2f} px' + f' (the two heatmap axes)\n' + f'Background / noise: none injected\n' + f'Fitting: sigma_y and sigma_x float freely; angle fixed at 0\u00b0;' + f' no background subtraction' ), ) save_figure(fig, study_dir, f'{_STUDY_NAME}_{fname}') @@ -206,8 +215,14 @@ def _write_outputs( ylabel=metric_label, log_y=True, note=( - f'box_size={study.box_size}, angle={study.angle:.1f}\u00b0, ' - f'no background, noiseless' + f'PSF: sigma_y = sigma_x = sigma (series label); angle = {study.angle:.0f}\u00b0' + f' (fixed); box_size = {study.box_size} px; scale = {scale:.2g};' + f' one noiseless trial per point\n' + f'Offset: the fixed axis is held at its midpoint ({offsets[mid_idx]:.2f} px);' + f' the swept axis is the x-axis\n' + f'Background / noise: none injected\n' + f'Fitting: sigma_y and sigma_x float freely; angle fixed at 0\u00b0;' + f' no background subtraction' ), ) save_figure(fig, study_dir, f'{_STUDY_NAME}_{fname_line}') diff --git a/src/characterize_gauss_fit/study_shape.py b/src/characterize_gauss_fit/study_shape.py index 3872c5e..a989b4e 100644 --- a/src/characterize_gauss_fit/study_shape.py +++ b/src/characterize_gauss_fit/study_shape.py @@ -112,6 +112,7 @@ def _write_outputs( study_dir: Output subdirectory. """ study = cfg.studies.sigma_asymmetry_angle + scale = cfg.generation.scale angles = list(np.linspace(0.0, math.pi, study.angle_steps)) n_angles = len(angles) n_ratios = len(study.sigma_ratios) @@ -144,7 +145,13 @@ def _write_outputs( if result.sigma_y_err is not None: sigma_y_err_grid[r_idx, a_idx] = abs(result.sigma_y_err) if not is_circular and result.angle_err is not None: - angle_err_grid[r_idx, a_idx] = math.degrees(result.angle_err) + err_deg = math.degrees(result.angle_err) + # Reduce modulo 90° to account for the sigma-swap equivalence: + # (sigma_y, sigma_x, theta) == (sigma_x, sigma_y, theta+90°). + # When both sigmas float the optimiser may land on either form, + # making the raw error jump to ~90° for a geometrically perfect + # fit. min(e, 90-e) maps that back to 0° as it should be. + angle_err_grid[r_idx, a_idx] = min(err_deg, 90.0 - err_deg) label = f'sigma_x={sigma_x:.1f}' for data, metric_title, fname_prefix, cbar in [ @@ -155,7 +162,8 @@ def _write_outputs( (pos_err_x_grid, f'|pos_err_x| -- {label}', 'pos_err_x', 'log10(|pos_err_x|)'), (angle_err_grid, - f'Angle error (\u00b0) -- {label}', 'angle_err', 'Angle error (\u00b0)'), + f'Angle error (\u00b0, mod 90\u00b0) -- {label}', 'angle_err', + 'Angle error (\u00b0, mod 90\u00b0)'), (sigma_y_err_grid, f'Rel sigma_y error -- {label}', 'sigma_y_err', 'log10(rel error)'), ]: @@ -171,9 +179,17 @@ def _write_outputs( log_scale=use_log, mask=fail_mask, note=( - f'box={study.box_size}, ' - f'offset=({study.offset[0]:+.2f},{study.offset[1]:+.2f}), ' - f'no background, noiseless, \u03c3 and angle fitted freely' + f'PSF: sigma_x = {sigma_x:.2g} px (this panel); sigma_y = ratio \u00d7 sigma_x' + f' (y-axis); angle rotates 0\u2013180\u00b0 (x-axis); scale = {scale:.2g};' + f' one noiseless trial per cell\n' + f'Offset: Y = {study.offset[0]:+.2f}, X = {study.offset[1]:+.2f} px' + f' from pixel centre (fixed for all cells)\n' + f'Background / noise: none injected\n' + f'Fitting: sigma_y, sigma_x, and angle ALL float freely;' + f' no background subtraction\n' + f'Angle error is reduced mod 90\u00b0: (sigma_y,sigma_x,\u03b8) \u2261' + f' (sigma_x,sigma_y,\u03b8+90\u00b0) so raw error \u2248 90\u00b0 means' + f' a perfect fit in the swapped-sigma form' ), ) save_figure(fig, study_dir, f'{_STUDY_NAME}_{fname_prefix}_sx{sigma_x:.1f}.png') diff --git a/src/characterize_gauss_fit/test_config.yaml b/src/characterize_gauss_fit/test_config.yaml index 8af1197..72846a3 100644 --- a/src/characterize_gauss_fit/test_config.yaml +++ b/src/characterize_gauss_fit/test_config.yaml @@ -103,7 +103,7 @@ studies: hot_pixel_rejection: enabled: true num_hot_pixels: [0, 3] - num_sigma_values: [3.0] + num_sigma_values: [3.0, 5.0] num_sigma_with_null: false hot_amplitudes: [20.0] noise_samples: 3 From 679eb62e7fef0949a774e1beb6d133102762eeda Mon Sep 17 00:00:00 2001 From: Robert French Date: Mon, 13 Apr 2026 19:54:50 -0700 Subject: [PATCH 09/17] Performance report --- .gitignore | 2 +- docs/performance_report/Makefile | 27 + docs/performance_report/conf.py | 14 + ...kground_pos_err_amp3_ic1_oy0p25_ox0p25.png | Bin 0 -> 153044 bytes .../box_vs_sigma_pos_err_oy0p25_ox0p25.png | Bin 0 -> 415207 bytes .../images/constraint_modes_summary.png | Bin 0 -> 254618 bytes .../hot_pixel_rejection_pos_err_hotamp2.png | Bin 0 -> 218072 bytes ...in_detectable_offset_pos_err_noiseless.png | Bin 0 -> 238159 bytes ...min_detectable_offset_recovery_snr_100.png | Bin 0 -> 169928 bytes .../noise_sensitivity_pos_err_vs_snr.png | Bin 0 -> 167399 bytes .../sigma_asymmetry_angle_angle_err_sx1.0.png | Bin 0 -> 434921 bytes .../sigma_asymmetry_angle_pos_err_sx1.0.png | Bin 0 -> 618736 bytes .../subpixel_offset_pos_err_sigma1.0.png | Bin 0 -> 965445 bytes docs/performance_report/index.rst | 1091 +++++++++++++++++ src/characterize_gauss_fit/executor.py | 67 +- 15 files changed, 1192 insertions(+), 9 deletions(-) create mode 100644 docs/performance_report/Makefile create mode 100644 docs/performance_report/conf.py create mode 100644 docs/performance_report/images/background_pos_err_amp3_ic1_oy0p25_ox0p25.png create mode 100644 docs/performance_report/images/box_vs_sigma_pos_err_oy0p25_ox0p25.png create mode 100644 docs/performance_report/images/constraint_modes_summary.png create mode 100644 docs/performance_report/images/hot_pixel_rejection_pos_err_hotamp2.png create mode 100644 docs/performance_report/images/min_detectable_offset_pos_err_noiseless.png create mode 100644 docs/performance_report/images/min_detectable_offset_recovery_snr_100.png create mode 100644 docs/performance_report/images/noise_sensitivity_pos_err_vs_snr.png create mode 100644 docs/performance_report/images/sigma_asymmetry_angle_angle_err_sx1.0.png create mode 100644 docs/performance_report/images/sigma_asymmetry_angle_pos_err_sx1.0.png create mode 100644 docs/performance_report/images/subpixel_offset_pos_err_sigma1.0.png create mode 100644 docs/performance_report/index.rst diff --git a/.gitignore b/.gitignore index 8e0069d..5ab98bf 100644 --- a/.gitignore +++ b/.gitignore @@ -72,7 +72,7 @@ instance/ .scrapy # Sphinx documentation -docs/_build/ +docs/**/_build/ # PyBuilder .pybuilder/ diff --git a/docs/performance_report/Makefile b/docs/performance_report/Makefile new file mode 100644 index 0000000..3a8b4a2 --- /dev/null +++ b/docs/performance_report/Makefile @@ -0,0 +1,27 @@ +# Minimal Makefile for the standalone performance report. +# +# Usage (from this directory): +# make html -- build HTML output in _build/html +# make clean -- remove the _build directory +# make livehtml -- auto-rebuild on file changes (requires sphinx-autobuild) + +SPHINXOPTS ?= +SPHINXBUILD ?= sphinx-build +SOURCEDIR = . +BUILDDIR = _build + +.PHONY: help html clean livehtml + +help: + @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) + +html: + $(SPHINXBUILD) -b html "$(SOURCEDIR)" "$(BUILDDIR)/html" $(SPHINXOPTS) + @echo + @echo "Build finished. Open $(BUILDDIR)/html/index.html to view." + +clean: + rm -rf $(BUILDDIR) + +livehtml: + sphinx-autobuild "$(SOURCEDIR)" "$(BUILDDIR)/html" $(SPHINXOPTS) diff --git a/docs/performance_report/conf.py b/docs/performance_report/conf.py new file mode 100644 index 0000000..76c6e11 --- /dev/null +++ b/docs/performance_report/conf.py @@ -0,0 +1,14 @@ +"""Sphinx configuration for the standalone PSF fitter performance report.""" + +project = "rms-psfmodel Performance Report" +copyright = "2026, SETI Institute" +author = "SETI Institute" +release = "" + +extensions = [ + "sphinx.ext.intersphinx", +] + +exclude_patterns = ["_build", "Thumbs.db", ".DS_Store"] + +html_theme = "sphinx_rtd_theme" diff --git a/docs/performance_report/images/background_pos_err_amp3_ic1_oy0p25_ox0p25.png b/docs/performance_report/images/background_pos_err_amp3_ic1_oy0p25_ox0p25.png new file mode 100644 index 0000000000000000000000000000000000000000..c87d4d6a559ee3b0ebe422d3da149a2055eca2a5 GIT binary patch literal 153044 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%0DyJ44}dxk;3Gm1iV?YJ0ccRj;~+3B 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�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 literal 0 HcmV?d00001 diff --git a/docs/performance_report/images/box_vs_sigma_pos_err_oy0p25_ox0p25.png b/docs/performance_report/images/box_vs_sigma_pos_err_oy0p25_ox0p25.png new file mode 100644 index 0000000000000000000000000000000000000000..3a686850e8ecbdbc7658d5f19cd1fd105f26dc61 GIT binary patch literal 415207 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ÜET&fwhZPRp(O8B>~*7d~9toHT}vvWBQyU{-v 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∾Z3X(`A-b0>d^ETF;B-p0hDC3kc~K|4qCYA< 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 literal 0 HcmV?d00001 diff --git a/docs/performance_report/images/constraint_modes_summary.png b/docs/performance_report/images/constraint_modes_summary.png new file mode 100644 index 0000000000000000000000000000000000000000..e1824a2de95f99b256f5780c47a3b2d4ca0d5286 GIT binary patch literal 254618 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⋘YS-p;2X~rUI%n~6YEOMGx_U?8^(;}jg=Ci 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≷e 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�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 z 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 literal 0 HcmV?d00001 diff --git a/docs/performance_report/images/hot_pixel_rejection_pos_err_hotamp2.png b/docs/performance_report/images/hot_pixel_rejection_pos_err_hotamp2.png new file mode 100644 index 0000000000000000000000000000000000000000..a394dbb860b771d67bfc0ad084abb992a95bdab7 GIT binary patch literal 218072 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�WMpJFwrE&XeF##)@$1qAXIaC zgD9gJn%NRc*+z_I>&sLU3rF>An+rNgNTLw0+>cwFoou=F;1BrfBVXg}eOEA4-@=$b z%HOQ|YkvOh>v-b zZNFvxb|$Fh+;$#c>vm=#TFfkU8tv^>)_I(*=eFZKbdoV`Bu*>AGh6)*)~4-aOIc%6 zrdgqrtQVd8ZC$^UOzPFfUL+K=)SI8aMpzLXa1QW8`4eWsh_fGjoY$ZKMmF_tnwR}A z2Fxpgl_Uvq+)Sf7Jw44m_uRv^*ItX~HD}A$ty{-!x7{|MP0O*!VT@sPCS>pE4C9kC zj7`koY0XAo;MQX}Xo;)6(;=UIqQdv~L>+VhoEap%X=TVIeITR*^|=YEE_IX!Qzsp) z(QX}*)dgrR&z>XNG@s**$O_Z!^UC%b@ zgA9X`S=dw&B_y7)eO-e+utX=sCZcBQmVhENHA+=K4U^jJ)ieeZ8L1(pLbx(D&6bC+ zG%=|)m^eW`AVM@%R;`F_*dcN1YgVaR^_G%NV#{kP>z?8u(@sQHMpQ&ZRYX)x*d(TO zjY>*RRg)UE^tF?i%JBZpf54DC$Pf45F>4)-=9Zne^Q!X8FvjrBvG4M5_~@*Ms!;g& zczF22v+sp(-%B4qeIK|!p7glDKaUY-sLcaoBC({eCw!Yq9g$uKhDMlBt0FAD$c>57 z8Clk%6r&}C4wLo~G=OPrTcm?Y}FvyxJc z5LMOm`cW;)sf?KF_^nrE8a}F*rb2BlRGxm4-S_>3YOO*cD6;mVt0$R#SvU(Vr z1eRzYkjWlp4Kl1#+0}zk%g${>CDxpP$jGonXhIPai3Cr01S)9Rk6>rAmpytP5izTr zm28Mt;>66uhcc!s{G*YitH{4TQPi@0dlwQSw{eeUY} zKNRDBf~Z6gmIIQo%48P4NHreic$BZ~AS~nw3nne9Fos0;`s$ zt!7!4cuDE`ZREpDGQ;;Ox01T9@$%9O+pa5ZG&k3N)ZCWgFxr!rn`WyTN=75O+&RB_ z-2>Vr+?PC(KHp)BJPl8{Z6wa4dIvEH!a$N{S9KH9af~2LOPfq*d9#&k%n*)g{XrWJ zm~oqc0~n-?i)tfrrcH$;Z9{e*+VS(UAxO@k}9ghkE6Tzoc$0CAB5_Gjn zYz!ufn3}3^U~HPH=_=#XHFOxU(vuW~X%G+xs}Wz=E4gXRA@1nxZY~Pmu-WC=D|~QV z5+l0RQ8Ab(Bccqg>ZryToveS_B(~Znc(Qdm`-(!eCSz*pH;Tq`0C`|9{@p)BjvpWy z9HDyIRn&(@((Hbb_58tR`%97}C7tYGGfTxSaS%ozjrH^qD1@P*kkUyNqYaTsL(FJ~ zY1qbRuR2vorQu&nAw)(B$fkNqkZ#}pAySj}wAa!0ycErILs~}wNlIRfnhAbXzlTvX z$x2b?InH^kl0(f&rp5)*^3pK@mFAuYEcsBSPSw<@653Z&r%Ih?vjrg(#wftYIEH^z zU#9BUshK+O2w%-m-GlKEk}4SZ@X%KnRqf{g$Aah4J+huTiL%%e1S*9#{u}o{$JoZ#VhPJ0H7t`pZNighEG@( z7;ej}i*K5Lo^c3_i>Dm|T--zvBrdW=8D-OOTV)?cqy4}Vs#DXJEK4sK>tT~#NZEC% zM0!mM>v5KmrZQ7v7=%ddk5=2xFG>1)Y*9#vR4HcC4ypC~5@;iFJy4D%R-=kTTzAk~ z5R?psKFh|R7}R23-_lamt@zyBSck&jzf~DrPG>yWd?qF z=QLaIou=VmoxYX_3};=Y5eVW)@X#HialB_=79xZ}Yt2)SxI}eZZhwOYk+Oe6*xz`m zuTHtYhS8c@)nR(l2cuC=L|^|*N@z$b(`BT}GCG1%sXtI!rj*1l(U8F>u{{PWv=sIj zS~};Z!Oo|{kLA;M?ZWOKe3J+EZ*P(g;UwGc_;*%4Fa$#*Oivu(^etDgdc)~m>y`&b zy2=2gawzr>QtTh1*f&VfH%L(KL%D7n5jCbKq1u~>vLqJJMs8)UQ(_JxO5mm$8GYHJ zjACvgDp9t(surm)kL?3wid0*c#A&EDV5CU<3-)`q^##gHa9sPlj3Y@@b1?>_qX~*O z>{BODneZEr=El!QL(N2l#`X;c$`uBc2SzhJRwk@@jEWid_dP+Sw3kpMsF@*(6Q^J; z3!5HdtzKdp&5uv}5|N0Bh`Hv;*Aqk~1cJi49X!uD6A&EOJ3?i;$S8x%;3JG=(iC|n zDWzeVhVsZh_MQDGcg*~R{^|;@d*Hv4sl0=@)J9$bNF*2Uz7}?OpW`R`w{oDgpXsRs zxJiX9;XyoBV`g*@yK6hC&5_Y777Q%0aopOVjO6lUW3xaAw9x#c{CuP61Lhrg z^tV0cKEjuo;26xSJ8lynD7>2?QEcmU{#E7wFkx(;?LCG6!Wqt{=E?#-IP(RbNS;3W zHgw=UeZS5b&gQnVznS_dPsUFn5Zq9D9hZ9-wk`kE%vZQ4`WfxySqGUZnkBMxS;yzs z7GK7N?m2Dy_-geg9*7=80MGZY~pK9pQbwkH4i%icS)>S9>HIowZ!haUPzDck^KU zI1<6I9OBZBHje6XwnmTiILEZ@Ejt(8ZEQameX_*qjcd+gBAnsw>O*|ae3?$)-NYpP z=}-QYOIKf-E3ueo0_)YUel;KXzz2BEYhJ?(U-&{k@PQ8?rR2Knu4}7z@4ff3X;c2? z83AXQu?Bsv14kw#j-9%IApgt0SeMu#*NFxf16({#FFD4i-L zq>$j)_X35HuI*fAz3?`&C_S?DoF$C~odb@RqiZ>Ttz}>u1X!XC4>(Wo&y z3N^rv!XD}(1Oa0j3Z@JW7zG%OZ+zhB2`mSPfPg>*6hwfI?6D7tK>!A-D>-N1mGsqz znes<@c-3u86!tUX4dM6MLEy@XVd`;>x(TW4I-#i(5zoEjIpAx@s?Rb~$r$Q!Gex&Q z6T{4C%EAEJ@C@5{NY1VT>w;`~bwL_oNv@RedR25K=j+o!3Z&;@klgPd;2_iZI$%>_ zfQ?vBl$i++9ZRY@B91jmJ1DI%T4J*t3W8FFLf=Lrz!SV5kjzc`)Z~R+Axsebz`hJWdea<;y{@_PxK}dT2V05 z_V_bXPbz+FIXVwAWl`1&HQy>IMBzb20p*?BVp0%6eU=;!E+qQzq{rvz8tsP@z;}`%_ z2g~exaz#qur{Srs_gHC(w$115X^3QYKRHYs+Hk3rr;HPnB7_i3>?={3@>{mix=n!) z2G36zT2-^>GJ%N$g~q*la78^8od~8UT})!IIr5Bchoc(Ap%kD*j2l<&{S|>Jl?p!&h0)Qy-3*=(?5m7JWgLKm zqdO_AT8T+wOs$HMfP+QPm@LP^Z-!FMD)pBT#;f7ufq!SaYaXJd6RyO(^zT zwMr5TrbbJRXQP%@9U*kf@ zc`MqUyBp5l-+2GbBP&TF`x{(++Q9}{v~R}{(_@A7YfHD49b@`h?60x@EW53+>acC= z`t*AsoZw?J?Gh(NliP{`Ff4i5VC>la1T1vE>8Xx%1r56A|M@1H9z1 zch0#TfbCnp%kxWT*mJdeq;bD`%zKD?S6X7_+{x$g{C$_sx($FtB;0hyryHL)j%}e7 z*-7W!D|V(ceh^j^)#(EEUlXlQUQbo=CTif=-&(dEjked+5ugy+a70n5;#4MpK^#XT zqdI0{5(G?pqio-BE6;Pb;JOKpqj8*s$J{6RKi(I*yDPxcLk}NOJM2NmFgi|Sg941G zG*o>;8YjRC6S35eY9Rm`>LriZ7N;m zZ8(C4R!yy|Y+rJa?a4C$T%@~gRrc$HJQ6>7_&YfSHmJ2+(owb}d4?Z{R^XzLT?E$7 zWG~;VAHT?~YrM<52&^ZPr}%%>ZvwEzIirif+Li3%GnKC%w>E5X&fvHD-qQGNG(2A2 z#b=Er#n+4)uDwsQasu`bz<*pM*)yE*mB+rqf4l6z9k+HYR?I7b_22*df9DHd_yS-3 z>R0*dSHB9tyWjn8&OGzXMxEPlznz^scXIvp*Ux9uax5Yom^#3|9XqJZ%uvyiN&>Fu z6O?_XmF-YhV!@C0dHiUsK-fWC4XA``2dZ3D3{eT}KiI0!X%2LnNHxEtezH5WhDJ{!-Vm zBswP4A+@+dXzJ9HI(1#6ZtB#NCfQZjb^D&|HKcE}4*Gy4HxuhE75OzBJPJ`C{=$ zrCl8Dq@P_J9q@E1;goatg5!|XCB>g!OP06l(Pw{=jlvQrd$+A1s?R+je01GIY+HRR zJ}&F3=X2K7O8^)v*La}+5qw;Nu#bW0yg9c6pkqxEMV64z&0$$okEl+JgAhbDfI|~l z_3=rpFhw9|2^l>s=mb4e#b}M(TLI2$EHd@T5_ObgDGqpNGge9` zmV_b34pRNccL0YDXY2prEtJ^Hu9v=$C>d;&hq}(t=e~f5V|4if%-ZV?c?TV>k2NAF zrYBaDgmz$Z>Ybm)>ziiR%YKfDu@cqM(wy6Ii&G@Uedr`%#n-;aQ>VTejP+a5&mK?r zA=vfE=_H{gwBzb+7&C)05e;cB5lT$sPwunCk?RvnMf*@424^DT)$c@@1YHOaN|435 zPVc$BcOwtuR=n?-DW>aXM6B`mg%~782x_ZNWzCf#AW%Yb@X^x|PuMJeTOR)umFJ&J zZPNxucdTV*w6FOLGtgiNQxyBFoO13yoc;Sz_dLed!L*OoLCS1#erIbz?vQ}Hb@!e=mvom)?6kJ9Lm_* zu%9s^tg5Isvj!r2T|JmQMUDML#Pmg%QmXgQxh0+0FYOcJ>+F+NexCo4?V=4eQO9HM z`_<#@|U^Awfxe^RRauB=~ zZEaqi2woGt6l0(y3*Zm6EiY?_SJq$HzGu^HgWbPwZ`T}k`(zn9GWG_#k1Nc@7>p$d zJFF9gfs5TO9s4kizHMuE&es2%?K3HfZ?C0ZS*QUvs5NO<*Pwb3l_PQx&$x{(>(mCI zbAO%ZLASIk3uCrlRrmFj>0<1ZLpP2$fps+dIGpjsk+os&-&HT04s)DOM6cn6KEzJu z<2;x{EI*M~gfURB2&6Kg;RRbYzy3{a6O5#I_3a7&^a{zY&AX0sI~FJAmB3oDVg*~b zZsm(#{384J@8`11F5}v3uWhTdXU`tq^{#jErZ>H5KAV z%<9{J!s3c_N6M}PG#ZOb*9P5<&SoG3;M_|j`m zW7i5rNJw2+V(R6$jB@t&I*BxV>oUO)E@F3bZgs#TN zr-0WWpQNKvCRL)P`@POQAB-ik*2@)L_9*{_>$;zB0z2cXpfOI-Nty{UfiQbNX+74I zO0yrTMzVnZ(BtX{&nK#Uiq;(@^}D$G!58C~2Z_p6+#mt1i7JB1n2Sk3shGZ@3Iz;) zWH_*M1-=F^5tOt@!(T;1on(w)<;qO_oG*Ko?jxy%KfGzUnX zi3$VlH)plwp*t8=6Ey~Ybve+Wccx8^Z^~N%@Kurj%!_8(LKC;le4j9Ugtf!xaZYgq z^-6@0hM?q98+#J7?IDC-hw8tE>R^zXy4$~?Qf0*>Pom-wp&;3EI!T(Llem?!*X%5sIlxFT+SD9S8}^Wy8Q@+wk`6K@Y`@U3LLUv5a3#D7$u$>W@uPigsdz zA_)p4g-kUgnjuYzrnGApeaT)1`~fP$Bh&E(Za``G9%L9Xxn?u0Z62QuU5wT2NPk)V!$Ii`;UEJ8%vnlY1iE`B4G0W+7F_H z6wkNMgANsG5a zk^8<3!1#;)3t$yW#@NB6cmI71{^S83zw&*D+}7a#`vT)PzLX+C8v2?xYwMkO-})wr zG|W8jEgYIe7W{?$MB~$&%~=$%1lGi(xAU);TLr=k<$BIe{g7sZN!gCUy;F#4YnD3E z2%Sx9_FP|+q|YebHgJnnof&rmBMddSDU(TL#AsnR{S+yQ0$KPy!f;TGGcKk8gH}yK zwNMT*dWLZ^MLB?r%vpFi3>3zE|2;}=W#r9Pwt$AeO^femax7oc)g4I$vE?J<>Ivy+ZP zr_?#?Tn}25(y(H->Wr|45oTA44l>N;49~j!cwnU(=H==Ivo7zGWq!W!k`vm7LD|oL zDb4Ny<_L%1DF4a{ZG$Tu-rN7KIqUph|2rD*!<5|cj&m&eUl0D?oXdZw@2zCceb7PR z8PitMPM~$yH5dkEU)Mg~TDqQ)5CaT}Zesj3g_rTt;CZu?ho-v?bJgAGtn1px&jrun z67M_=h7GFwH*%SGK5Nv9p2yZn-p)yEV%5E8Ij45*<6QT2T;X6aY*rh(mTypNd9i=> ztmLIJ29YEU0YI$m7@@UgP8cInAJ)^{wO#vI6_>cWdL{zHYHtm6d|l1o^eC^y5bIS$uN?-w$%Vlo3;f7h4Uw7SgT_J@zasd3thyRfBM}I*7n&(gphFLW+ z%IbgrG522n7|w=kxGNsw2jNO8S~60bWF(33Si)I4d7{1R2LntY6R0XFV%jVsA2~{rfrh8~+AC6a?J&%hz{xMK}E9 zCpdN6d7W6bns7zhxk?|x{=tLv?Xm;uiS_F-VS75}q+^Q*`d9PVy3N#Gfgc&p+_jw* zlY1M>Wub@&0!v!V6zrRPhOKL>ZQJOdNZ7R3aM!78Ic2xtRg)5x2;9WJ`jKFFpN;YH ztFZTu@3ybsa?ZLS1cj$VPNzSsc|;i8bOxuKdm&OAl2{N$9>xf&lLy(l^()yL#~s*Hg{%m|>Tasz_W=^ApwMT-os5ypjF$k3 zK{7ZnZbOxXV05&fxPE_+)*Ir=ci4H)4fGFNP^%UgJGcsvxLyb=cOn3d%fa0~ zX(}ojF_?A1aDsD6UQ|Kz|w*5VR6yb+4cfIy9E(o?Dq(KT}UqAbgT>E{y z&dsmh$BHcztk^Ko*v7seKglI`>;iW2!!397@hjRX&r|mp{^!4?%8>wmt=}iWwFdir z);sKvzFcG9%1hCDlBE7KjGjcuew2ScQuecU_jeeWvK}1=Wx&A7OcHOupNdmq^WHlE z7?nf(1lJBok;pXyuNraT_NL#-ZU4zd`@UU{WEx?OnStT4hp82Rf;smhAniD74NP(2 zeIFo^g6T8QVB(ys&`FF=5_A$H4<4j&=baR%rywQqSD$u}RhvgKMlkyHBiy!WHHm;& z?joN0kTnX|@vKw7+wW?=-*m|txH}I}c<^D0)%`HgZ#%-tZgjMBwo7VG2qKD3bHc&% z5_GKwVN8geg?2bJI!X9eNbf8_BXC(c`XFj`AN#9{P|xmxC%w~9-dVFQPve$)vr0l( z-=(zLp^zBEG*x0fL#d6NYbRx-(x_?;ktP7qfp4>jruz}XP)(Z0bg#S*QCy7{3Hu9A z^S|Whxz1>QF)1-L_AnDg!}iq~nWHhn5Y!VcdD5E4$#9%WW+)O+?5`n}MhF;s^f6W* zw2Iknat|ZxPe~8kJ{PAS{s|j)R}n^Y->HVX&cqIW(&O0UeTi3YRS09);O*jHQy%%g zwcq2h6?frAn&16mj4&EuGxJ`?EXHQcx|reCgLbMu%_0#bF4CH|Uq~+|S>R z8zvzCi32Zt5rvUc+V*kIz4zen+6_`t_0FQ6TBQxGnPO)nIe?QeN z=RzxQ6vq@EdmNK`Th>lH&1SKsIS_W7eIOE$l0@`jQc}r=gVyb24N$Ah-~>K}{vv*{ zo8XlS%0ssN)H4+i?9$LPj8L<2qsQ@AM4V(8(>PZ)rnW~`>o9~QK^TMaysoe}>UBgd zRiir&rqnUmjbr3k^NFihuIy@t+`Bh5Dg?b^1^DgHdwK8xVtU#toCXFlL+wg3F+Gjk zy&Egh4M;Y2C@GT!=iw|Y(-5D1PS`_KXKdIsfKcz!;K^o2dTcFSacg6BCp^{Ew;ohhgeHzuT4gru5+tBh$(B z%Ju6>&TL!ErQdymt8Ts3eiv6>LG4vr+LoX5WSvVt{sVi>jjUk$cYdeqIQ!r8JB>({ zsrS4GJxs2k$>TTZu$?N9Wgk2DATfAzLA7%w~A)FKLf^LKZ!;TaoO{^;r|!+o!4+h1ZTl=oW?i=8V3UU{%> zd01}_c1;p;%gFsUvM?Pm2;gkj(3g(bA1FS-?%@M1DlI{wG~JjJKA=W%OYINOxYU$> z-@o}{o*tM64ggT`;f_=LIAvlDXYAa{OrgNn&G)E>nur>am_a9+Hx&hgtJaZ7$^Esb z*}r`!DiIh7k8hNWI4)-loKFAbHV&u>hJk%Qy@R+mh0zJ=lU#O69=lj%e!Gn!k5Q&7-%`oL> zF5vvTA3~T(rUviiz?L(ptC&G^Hg!TG6>`pwrjJ)qpN-?z8tO$M1d-dk5DH=U1zdNV z*HF;IZmrf5xe`M#7AkK{yUlx(uilNZ}$Kg%=23TTW%6HjG7IO6H?f>^}#` z)x-~k?0x#*=si#u^!0CIV8g*iXuBa{G&yLMF2t+}*0-&(?u-LGIC>X4sdMwoe0Hw6 zpJ}lbc}fA+Dk2fGVt==lE0y>vVO#H^`!=<_FIe>4bOenZ_uiO zIrY4!dFC5`kI)*WfmdG7nxK6~{h3`q;HeehXxLu9n>)|GxBII|rnuz3f8d8(1mAo? z2l>0(@TPAx$=}RFW?Pf* z99$fXdW<#u?6zv_JkBy3@o;gAc6qr5LoNGQ(RU4j-#+jd)_q8`pF-^*r#a6;`|X)B z&P`V1B=&iEo;;iX&MVr!YB%16U*86RCj(w#ItIwV$nNhT(}}V$_UOFT1W!Lh@gX~C ziwB3OcMSBsz5D3@;g0~QpR&OcSS^tCI>Z0^uZ_>U-u+vcj=|~Bzy2%UUOPBF`13zc z?d*0^wf{%A(wAlypT6iqqU+z#wp=~+6vfYc8Y3lUV33)&y^UgJALl&sLmocs`nEnF zCgGe%{)OV@&qJ4*&2Cz| z_UEX->}74s)ss(9`n2^(i`Q>p=3O0Xt0stht+q-um5H0 z9R!y9;DZD=+317tl1r#|T-S1ZoWj?>3V<#adlFdw&EG**>^LAk^GuQs0?WPsXLvug z_okZTbdh9g?_T^L*ymlmd2<(mC6c5;Rshsq`Km6W&VA@XOT+=umh+&4z><4*<89pv zfC;)iD@C<}`>?$a=~wjEv(bt{cU6eH667;$eUve0RtYmP(=%{KJfz%edA4464S^{TBC z2&)3WXz+^$HFrcg0LA^s)1+?k;)D`dKls59j%oepJ@0wPsU~3$$0;1^iOR^8qL#U8>)Ibeq2Nv$-eRqM!hPVfyus2%tV_h zj1Jg)O*(+6xaZ?+T!|5iu|k#Xv0=1eX7315y}(0fy`Iyb_$n-2byOAY*QL31OI^A{ zS{kHN=?3YLZlv?lc##GrrMpY%kOt{e>F#d$=Dxr0k6FvL5Z25y&z!UOKIhpd5A&|H zBR=-JBQs=)RfI&|Z6|y}%2sg{)6O}(5fu|PMzyy5#Vq;NpH@3$k*XH--+g60T^5Fp z5ydi^IhbAaqOOY`ID+Wr^XyL z%Rwo6wglzovBHsDvrBc{0lQ4#@nh)vD#*t84#AMRd$7~iBfUqY*}Zddt_f?h^J^q$ zO`foI^_tDflkeBVuCmj_zKx<-{(P;z+oh;6#*f||;SjB-s0nc!qUcbW9*mRm9z#iG z^85QOo8G0cBoC8!5ykgRtuO0=$HvY;y$aRZ zEUJl|(H+N8CwqvdKi+eyElQZRPm1sh^-Jm5-NfZG-s|hd@D5><;}>|M$uo*3Xe>5f zR*if3>cvF!SCwEkkGPLm8*bp|y&dIu7!Q~}X~#Oh{m)X^7HE765|qyx%jr#i4p$ZP z-Tvw&!sg(}R^Ls*4!ZM_%q6N)7j2G=p9z>3`zBbnX4k!Xx?Qyuup<_qWskj1f0}tk z-Xi5JQ|N;a|0nP7JCk!>hzbdqWbHX2N}Gr@E2b9j}!9PLf6B>^6z3t%@YyW;?bdD&qo+@o)M9{SYY zS<9z?LqGn$HFJ4%^{Q@-vE!1;^ZL^07bsQxBWLLY@;;}tis&!2LH01L>)fw`dyijaWT?hxu0v*7jk7a|wa5 z=0E1oIjW)3vwMw3zVWQZeRR=aBSK7Tl^8)mx!;sKCCniuNNv<52_oLRz6kw2K1cfc zBUT`(;1w;z0#`$QvH2@KJ1u0nspD@|7;cQ|$Izao_IKjzT<)v(qt{($_kn1o5x(s9 z<`!mb3#7X_;;3+~|(>EiX6qO-Y#lH<|VF4Dh;_?^P_^Z})# zG?ItH1Fm5+2j_$q4#|%?0GGPI7LSnR@(C}fGe=0U${~#CfjUOnP+Bg%PP$Bs=CA0+ zpj9@oljciVJzj}aN7(9XZ0Yj(`)|(QXQ1yo;eBMc_7nXIW@yE6 z-ssX%7RpzOwp735c)2wC*_7IfbF8;sPU_+M0s{np|Myf*THcp8l4Oea0Qz;6nNCwAd^+*?g}xF7)D7b@mOH;IH{X zx?VtP5h*IH(LwBMC2xPly3g0zG-C6j;*jiWJ@M!8Mk_|-ZY?$EtW7=$nL-?*$cR@) zwU;%5Gk(ucjvk?#VNZ6|4(0ezjak6K0cJqUkR*$a)TU+dxS1Z`@sJ`|U)Qi3d24fq z?~bgksVcqYFlcn07BJpaU9*TvU={zqzxFe$h)myYDPaE$=c)P^q1ZrJ`}bc`=vS5)<5I8jaPIC^q__VDN0SUm?SiC;e(uCOHi z*Mdml?{3FJGHklR{E&m6PtNPzlB|Z~;W7l(hifzp$ZKEU7EAB}8_t>t~ z->q<~e90@mNn`gQdYI(=ONUaDSu zc{J`>f^boxblmUpTP% zw2V;l+{0P0qhadnPjzKqMe}1-O5|*ABbzwK^A)diN4K#^7ENg|OG^54qlt37=4G3% zc2%eNQ8`*7rCIrveYU*!o|PAsSjUOwv~|(*z{$c^y-~Af=gq_Q82eF0+u7$aKUL~BI4qrRBFma-Ey-8%1H=6>!N83!$nkPnag%2LBun}Y7AYI}r=EuMD;)^J{$ zjye{CH84A_-~8Pg!R<*Wc!LEe@W-W>8&5CiwvP#FVee)scp_@Q`Ot-klew7+78k!v z?abp3z!(S{%vkbgL{-V@G1Y6mkkUDBhYN1;;&i?8lW+g)J*&)eGidZmJ5WO7gyM&% z;Fn|D-CY;W1)$rQ15}FJl3oJoN|eUxQEc(v+DXVL$IgD{n`+D&og6^=!67L~sH?JZ zB@ZesiN{gT0XLLpz<(U-Nx#Qe6ex0T$70|@DazJQ@+!tGYAsco3W zEHyStZT}`NxvyNOF$i^f8uRI)6M$PX?c*KIe-^HS4WCr0x=E=}SGzc$X|JZ2tZooj zo^XagEgqQOPbsH+pT#bx`iXeeoV(|svimgLP&lJfFI{2c{QLC49>cNVHc8ZSz@G5q z{3Q_GxmlY(uH#-?tGVF;bouw*;y%c-SC-YViR*e_xAFC-Pbb#1FHgy0s*+v2oo8Mi zV8hP*WDxn?OfkT|Py}ydba5-ewz!tRNR*oYLOU%`5ni?>7YyQu?N!KCBe( z3-yJCy)*HxWyr1zpyz(hkIzeCSlB1$=Zg}=VxHgdsK&vQC7EY1XvEL*(rJ3R^jh~F zOALM8m&HxiU@HQxfId~QU{$U**fcg1IWYg5a}H`Pe{|t)2qYlq^w!b!Y3CX1eS3SY z?o6CpV@+i9!T-JC;^+b(y*xd9@C?_&n$>u)e|X6ABxk|$#IejbNZB8yR}vb#*GLe= z9Y&&ayg%SM%9@2{+NNqjz8f>ZYf zf@*?y7w-W{$LrhjxPq{|-UycT088OQtMnkB~vB|&eP zSHBTmSOJGy99p8qPNTu@nS^W>m6;CMLx{BJbD<C1s+nV;sAKV%$ zYX6=i)=}6KG$_KC7I38$AovObS7`X?4X7Hl1u{OrBB&Lk732SX=Vr-{a zV>dhQ{i#bK8XG~TGU9m6irW7DP>s_bNxbMi60vA|{DZ3g;+rtPwdn^^K)tk7GPSL4 z<|(a>S#AT4D9yW7TlvJf8EFk9&3Q-llTa=*G2zdapD2QoevLXPEr-&4I>I%`G)_Bx14^9 z)nlx-h?6%NO)VHdTp#flVISu6a4)$B1b0X^pV$0;+qJ0MNy0)j6H=nt(H)197o}Eie}Q9QvI3I3^y&H_tg(y*c}QU^n{0E?Z$f5kz@ zLGIMVnD6m17fGvKATZO%|bC54dJ$J~EiaM4<>9w~V!3u($J{%mb z+=J>B=OP81%AyN@)uEA*3s2up8qD0q=;z=pUiN0)DQ&!mSzLy} zM6dKw4M8E(7Qa0!)T%}Xe@$;!@HRNn;k@jM)JJ^7bl&aQE^q@4%V#I>4n&7b;DRIO zb=i!~t2QYqA*hPYc&qk)Z>ei%9)A$dgO0lFyn@rw=^WG5M{Qsbrcv<(jPLm>4Pt3%RiilUNL~Z7s16N&48LVQ-UPsF=pT>dXHFY>F<<;)B4!szLYDkAGL5D5zd;2U>5}V|RY~2)$yi3fyAzzTB?9 z8N~+FYQ4A34Suy2rwu8Da>k=G(?6qo(V@BpC&`VoS4oF?`%IpCT+ZMb!<-286pH6hKI_nLfHg!rbm69 zc5LE!hPa-L%*J6)fkCNA7{bLoKOm+=RBqgwxHM9^ccyXC4g31eCAI2rIPI6JaHjVe z1{~6L5y}lJ-HsaP-3BN=)%af78K1@Io&qN;@+-%Iv&bXgRvxW8PQy7jk#wLa5pz{L zg`Lme{#+&m?GDy3kcc19{*n6BGNTdpc69^C;TMVfXdr(qJgEs?xCBSoMi$o4Dc1(4 zA8FXj^NAyUDqiSWT4$UkheyCTmn4j(gr60GDz&) z9E9Dh6nL>S*MT|t%G`ZQ?+b9V2Z&U+aLp@$BF;V|hPRPHx2U1i5?-P+fN?j>G^zzK z@xF`gyp6qcFoq&SFHCOD=W^=9IfG7LEUZ_IAv@|uo$&h1nxENhUx|ct-G9~tL2zH^ zOj|i#^@Y+x;^u7U`2O<6sf@&N^Jg`>xx^}eYfx^eo%CAg;x*zl)8c3gzK^&fJn5ve zF%Pvg4bH&e82oSBY!240<|ZLk5{ORpUimTA0e3GCEyT`}&?CB)4Kv|uQ5JEr{>N2~ zG`I8i#fRVN&tT-+N3%?Q%ux7o@dpQ|_NzG`2YqONC}47}-?*iLjiegJ=e-3NHs)dR zl!uA(yMVMEu3_v%#_+Q>qi|N40TOMBN6asiWs!vT`YWWdA5u}N6ZJ`!sc}m6P}{$w zI&akGOCws_{yan zE@K4C4OlPCggfI_@wt}v^ao=K&d~$hkAO8&+j&ZLCSX)^Dq6i3pF$_kgziMDdVgD` zx|;Hu1;S9Ip;UG@PV##p`Gz#l%Ha8pY2CzoUyS_v%2B}Nc4iXA5&uD-ykYY9y*`tv zMj72mDsx3fb22)lCQEd$AOnX;L#ZH{B+r3S){2*kF@6fqUq)l{CTjZ~r% zL7(#`>~A{k{w4T!HT>&diVs+ep4=V0I9`14?3;m1U4_57Tlo4}$yE^STcRn1&| zW&5?Mfx#kqRzcP-?F@Dr`=OCP?VuD3QpdSF0>?loa9C0h9qs8nM0$OE7-!oEFg7KzUn~`jl-&v@o zn*u#EjI?~(!_hdA)M3QD4cvlC4Gf3V(E*2E(^C8sZ>O!fy@IalCx-FaeKn%bJ=6nt*q*u6vMgN+RM5c6LPMm%EVJRRWUd&ls0et!T9?)-e{&El zB$qL0V%JP0MQrS|@~}>n8DQV4%A7;lQqU@27}k>-asSLvE6BGueIHmm5g4UJ^hRC2 zB+%n<+YB;-L?&ISledW^C`TJ7@w%R~llADSV->8(SwoyLqr5dMc~21vcc49AaI^RC z=ZUP|SX2M;bud*27Qjf=hp0+aGdJwa+{ z0#cJTSoCM5M$wgMc@u&V9t%6QZoOh;V!E3(dD4dY<&XV$SO*xM#9CqZ zC+y4AQI2Mc&bAPPhMN*A>RMUEidIvFq!QYqoSM~eSvcJMl{!>fqmtssIj!urxHTR3 z@>7)p9Y-3&I?0=b$jod;C?DhCUzb$GeZ{CLHOzaL)6#kC)3Eg+CmpCyc<$<}QU=eW zUZe073o}~mgOn#*!SaibjP+8L(J4B=Ki5EX zcbn>3;5Kj0TB0(?S~XB}ZQU#S2IqZPI{>>#NJv&EULGgz0I>4+&S@^RkGSI$S^RED z)onuTMy*t-`C?6aN!q2k zXQlKg(#GdRyIc_pT%yO~#tgja%c^A&DzP-A>>IwknTnjzak!(YwXDDdYpqhRgDCt) zG^3m1Ou1(4wPTz@66Ygj)GFV7PokeVZXCsBrZVxFDUcQ`Rab+(*B(iHc@m2+Rgnib zr)44@@vJiIx0$URLdO*3T$9G4PfKu`Q!io#g1$Bf*v76h!lCrtoJ7n-s8JijzyU8=Pydwi znp9#W*p{=XS*jfx=e!OQwK1N|)Io87Fg72KO<5M|OUdKpq?qI=gTI2H!z zhI+O3IaiNWRM#1rdCrfDE!GM!28sa_y<(g$J0;b{wP1(=md?1spSnwD|X3 zF>9i{X0YdC^*}I_T}{IboLr?uedq+cTNry{rkMl^;fP)Sra1@z_O$*SdOl|5CQ)#5 z;>E<<93XgS6})0Lf-k5N*)E`cGE`_I>|j zhA36~eBLU6MSbS#v-?qj@^$tI6BCoq2KmZh_49tUM)mwols<_=1ez zVd0B)zDPq+oSw6%f zS0xH|M0ybl8wBQmf)|{US4yMT|2k0JC zzjI$+h)ym}vhjed6dnjypw*JiQ2X8GIXg+{6*dA>moB9eYY%-Vid&`;iA7XC?!ZNS z{5`AUtnL;q<|UVX+7xR&%Kc%%c;8Iz2`_9zLJ`cgskQh0wD|#0B5GzF8JcrHQ|$5~ z?Nj@~2iWKk(}`@c&sMM+e#>bO#@(UK+mXASoC%6gf4H5Gd|w_`CQhFIot&ir<3?(R ziVZ4%!T81lph6WD7q=e&I1t=Q)&%rq@ot7Rqn;#Hai2fScilLFUy8GRV?MQQPz(et z$D(E9dn4mi(knXJ;tNKG9^5f+hj){SN({=;B2c|8*22q z*p_DPdOnm zQjLkkA~jhtz&vh@4^(p5f~ga-#j%44`K4ElGY`*@Ad9nAE=s$m)#V&xP5=`8xRYtf%VIJCWGspdTu zXdOj3N8+xVGC*Sc_;D(@%2DmV<~jB2Ui@1}Qv_;M#$<%}BNn(@E`(KZVg{*FJs%EGC-^Tpy{f()J% z2t3h$21Se()~u!1%7Y8rRw$T1z#$EU^91B>IjZrX6wevS}EMbakq?{*TI@Twcr z*>8E7Y(RL~g!A0a-#=5g<2=RTUt5N1;CYg=lC3*C2m!TuH35)D(@aVJ(&QGzx*5fB zr30;3c6SOPv=b5w63Qq&C^7J5hcxe_pzkPU8v4}Y4+i=Ce_#9vuxjIr;~MS-rM*UX zf>-?kVgV(cS_&`?@W=o}-v1!LbM$GNK17LVn1KW==<$Rp{iIVlyMnqw;3Wct&Ouj% zFBwg2#BB&jTWvQ1JX|M8b0LVREx@Pmy(6*`y&?Drd^%#fCIN3&9{%0@7es(#)xs<9 zh0S5Uhj2!|dxc_YHe0|!L9wDIh}j@4pt7c*n>;MdGZUVBERu@KufOtdNKSXTyEA23 z%LU^=df012V)?0&DbOoK5ow^);`N8EgNczFY%<_PrUFBQlKJvmV~I)5o6D4;xIdow zJHXq0U4dSnTS2U&VzHC1O79xSjk4w2^6a{sW4&L#ZdO*!1A=FZtSt3g?Y%9au-b+x z7p`(z^%ex3K;`W6JPutSE`7cw-#OsG5caVi0*;QbuNo#EW%}-ywq0bMY{JsRZPMF2 z0%PFj-8Mc8oZke!+z`fM@UpL$7H1?Vrgb>9_pJM?EG6+@dHHA{7&)Lhqu(s zIKg-dLC>NaDtrZTt|>?pG>W}j=C9R;`NTOzKscf}F1d43I=8Z;5+Kb8y&pAwy&!@{ z(Y9>!Bx*2~z^*hBL(#gygm2zXE(ScWaF1)M7bolJOq!c5i%L9cU~oaymx!-OsvKD^ z=Q`|ZE6?Uq=`w?ERNvL;@z)m==qeqH{&oi{n`?i&X)6g#Px5$Th>}iEZ<0IRnwo58 z8VHq4#=B7d>6es``fBM@4n3}Im@X3fSKrY0T%Mu0rL>JQJpBBUj(8~K42q$`k`u>1 zM|&{wK!&A1=W!_K6p)4@2enjaAgeclCpX?h%Emq4{#`PPU)RRFj=XL@-OZ05x4FP3 zpPrtEtH*aJObqy_@}9!bZUvY$OIrB`CNC`w3pg(IT^}vS+b+jaKnYuragIRm8boJN zHGC9GQ;k4{bJXCFMBt#{pq1S!_8ek)K?RNu8v>QS3!Ww~y=$=R&C-$Fs zroaNDqM$fTB}Lo*9HSQSgaO}LY5OR;ETIVe+$^R%LsCb^?Eqsuds0(IY3I!%W~7$ zV#P$zd8p^6XYz%ktrczPjrKdA`a=tJy8Bm^6}yFg3`Qn}F(`E5n$C4y#X<#DG#@lDQ>cFe=olN~l|DY++I~mm+~una){ClSw7v$T3?}l*KpwA=jm$ za>DOg5=6!71T@0eYIY$XE8W3Fv;_GZ>AAnj zYktq3Dg8AoN@oToK)1kDBw0^;a0%ORnaHRzI4LvV5Av+oJqhEgI}_i~u({%sjz2=YXD$zn^^ttzan;@!Zc@|Qsjt7dqH#< z-GYNLHCPBIHuheF-7oDap;I@LIzl^UKuxlXOEQks_oPBRojgsN59Kc@a|kSEEb{VW z(eFaG#(Bbk$XyrdMkJ%2E$N>?hiTseRpn-$*aI4{uMoil@&nw$R0XdMK{U+5vIsd>K|59FeQgp**pEs zFkUffX#&&m=4m0TNjZ=7FiHtv5V1qga9n@j8xsqu6!8@WfQFT+X)sf^cWBP@WwDX} zS-;~*=WRbH0{br4U}12Vwzm}(9fNR;zSCob#40mRq0u`1*A?$o0;Ec;D!L`wtvHk| zy`kf}!@yr?gnt*&*r&L9&N1D1aOjLiquxv5M_dv`?y-$i0PrgU&zE_g0lM!)vc@CV z&4MpTWT%+oi@#pJwS$$h(I+*KkY(v627V#In&Q2hjmg_6?-TPmvq zaxZ|rxXAX2LjG6&IS;&&>OrHp2n2AXJZSPX=KlGnGic#}!&2IA;sTb9hhU}P3-Zo0 z@;@Ha??0ao0?4w{;$W^)6u?!m(uRkoEQbZfF=Kd{Ai#~B#6BL*FvFmLMQM0r7 zB1J1ATJwdP!kxB$mcyve7L+G2Fr!)<#rm_PmSufV;#mJDvwHl2LN0DHHk&_J*a5MN zSPpZ=7SbF~1a4@kX2GlZQij>gu3^_dX0y8RPA*{lfp_y7SK4d0Wz`02KB?5o=Jxx? zf=o^(0J6}-=lYeXJM4IGyrrinn1?jiKC<^k}89QLMQiQc4fahamQ>Y{J5H z&7X%qO90FiL)YMSA^0R4#Z|E`B;KEkGa%%D-hJUfV&-T~R_XaI(g?a0{#~CuHyn1EpbA2Iz^8z|3wl5J59F`{PH<&>2LwC(3$E zh*Yp1)Z$#QDFc-PHM3PU7>h1bP6a|=8+mz7n%@uUqo-F_FfogA%X^6${J7O3m>ubs z#Yeuz9dW&>*YL5VCR2E}C1Pg_s4{JYwHV8{idRul$2V4UYdV%yD@9iGi`ijbNfR!9 zd8|cK&V0T83=1kMnE#VReivUX_aXFa)QkyP1ARzXuuHzpI8SXg;KYv#c)$l}P`(@Z zRm>Kgz$qv^ESk2D=b%DFpHT{4jwwpkzj$_u+EPR{$%;C8WOkYb`r7AB2S#taDg{C#O{yyuuS%DCYM(G60*+ z7Z|*8Kf}sPl8-l{QJ0P=0aEOKt){%Mm1Lk|x+Q4cXZDw@*$;kSPt$cwt5QIF4awK! zDl~a+MoeW@0+T?K%fow!2c{-BzzR4aSM9^^mx=kev$}o&#kbbA2=aw?KY=2;!XtU{ zbG*QvPl1s^&pSce{hWbk{sMrVDCC5-%`G?;fkKu!HBG2kA{R_t3N~+V;l*P_Nro%^ znx`pecyVnd@+#i^oAD#pldw$d$9g>2Uit>8YWVbwG-z~6-Ef8LUFtrIi(FDvTMJxL z^CL{5sk|{N31wy5fcP|kX@TjgH^6p9;g=XS`T*GBqdaV{Tz9)pjY81CB;k9c%v7!G zZvYuX83U$bOg98%2u-mIj~;m6TrWHCXjl6ZnUT2l6Y07Dj!pGG7uIlIhYQ^{Zy)rX zejf1~0}fB_0E%=0{=&sR5-FlHyL_&CqrD(vw0&0!Tg?94cxpl4wyb^faS;t#b zHGU+kEO}0L1ehz8e9)ylpy9)+je$?|LGAW;&d=M<=LzxtkmmLy$Hz0O7w(nk>*k$$ zpm0s&z}N!^fFB#y5gvlP4HQ8oJchIH<1!_Ujz5!2LqtjulsTqxr5q30YxA*ly3j?n zhGcyal7QDjHj__QbohvnBnFfYP~9f;WHA5)LQ8 z3^shBz33oQX|GnXHYu#0aoQK>@$fcIf`x94|Ca;;s-bVBga;l0&Au5{@SX6Ts|P05 zk^Z}%Yj%Svp3A_@35yXoc59?3*>BNYO1yX+ye(7mim0y}to&cm#MMGl5)o2(IOGs* zuO(}}+xOxrT^)wlJa;i6mAHinWxKRVxb32{(Xr^!ic!6|D{PdWx27lquCRiFYjl2p z<>096;g<~b5wsG9MqnxufZPE75Uq#MU=rMw>kOn)gzhKY8O6`y{Q+OQiCDMIh$ORIx7e$q3)Bg{J79u)y^$&0fYv92bIB|{ZbS0>CR^C;)lQDP+bO6qXDdM+?N zbM=6M(1T`jN8%XuE>L>V)iUbfjS*+p6=GlQpbzhrb}JI%6O(R0iX=!+$b5OjkBh&R zok`MtQx7`$ZaHQ7vVFML8&;97&v|laa{B8#=nHe)Sp-;wXanrF`Zp6eIXaIX$s(vDi7d;07m%{RW z=Y4snaL(9Rtpctfel_72W?B4S7k=uTxPn#j$sCF;f@tg(hcYFJVuX4lZy;PTm6L~S zWG&6#fe0fu(}(FQn%rF6*!h$!+=OH2%Ak23#UGi6)yM0No{M&nV@%zbmesPfDXqz@mnm%$jQ zS0xc_6fuFMH+s|4&0QA=;Q4%=EaRCBMR)L9!Yq94Vx>wQIyZBpT5z$i8<=Cg2I^)6 zo{*;)qgO(yH2Z-d{q#F1kr#&&9q|eG*Y%=^I6PhNHEAZ0kr_fpZ-%id?pXyKP1@4u zDMzVZ&Zu@M_P|U?-4b|2E%XGoj6GIfSwcJ#ERjDZNwTOn*Y`bav6MjI+3XNCj(JRo zqB(=D2E_+d1CR_$jTvN`Mwo-zooFspN=izre46S~odcV;@65suNZL3IjwEJPJ;Mp5 zHDxNZ_f@R}s%L2yw!rv7aJYB>RIQ)MEC6e1YGT&Ip$U=)Z%O<4dDjMi^JK}6Bv|ax zRG=5weQn~b&s$II0r~)f&Y6OEa(<4~#;F~%t@>hf0|R5CEHb!_ATBAf8k7bGdoSj+ zH9S{^xbJZ)ta3ttEpook{8&xKOr*Z0IAa+u$O>$63`})=n$LNwDQKY^Z)+|9<{^kf zH=6K$m#|b=`~&e0NfA`~_d}hce>iP;EBTnw5wPRh68>S6cw(A^8HU ze;W_sCck0L`TgN?5EwS3j1W?O8apCLkf+8xAj=X-uWytw(7+9}$h-z#qarUZ2PMto znJjo&<+7H!1|pG+sMTEyh=MB<=H0XyRF_W(0pTGVWa8;G7<9=RTZAI(Zw}& z=o)vgqN1FTIN1YL8I@gvt*h!FF<2pt+i@cVm2x#La4!w28SBQbeG60}UlS=dh|2Fn zfnksPvcI%;-#N~H4dDVrVH$`lnUps>I(x7N{OnGiheDkoffk2ipJE(eL>H$9bEY6C z?F0@0H3Z9YY63R(jMS!RT+o3PeO;A(xV@=o3JCbnoegC8bv=dRhJI>uwfg~(9(foLRFo5S(86D%9Uww4skz16sz@aF z(E~eG9=(zvQSjGUn+31)L|gTJ4A<}G+Zo+TlEcVu@o$o@4n2%|uuiz|5?Tb*U7RH7 z0j;(V8a-&9r~cw@b-?G24)LnCb0v<>M>klTRzyU^?!keDon6f2 zq&lU~Cf;$|g^E+>lUGqu(P===%Jb36HcYlvwd8eY$3sGtO+HC{$FACmAb&47%rK>B zx7i^m{CSC_Kn)A=Q@6i3U+Blj{;2Zf^O?1e2d~JR z(V8){rsz1fASi`yz)kkQo;sK?-AJ$h9mbBky5NEUY&hopa_xLk z8y^rCA8=>^qxrB)>@!V0>AI$>SPD>Z5rgU16~^uNGW^^F_)?|SQ3oP@pm&6?d*4AQ z>k^{5^ub7}wKNcoC^=yKmrek~3{TeUXbWW{ir5!zHYMcDI%QF9nsKy>B&cAt+EN4# zN_R99b{$s_4DtdEh7NK)WCV?9_)L<~ZJ#ZyOCgYed`|j z2t*4mA>=Sbrk~m{n1K8rrBaT_wRCAu`uiO`Kz@-Z?KAfE&0{y!BYe;)YEV}gj`$!> z(5*CpbA~$t9@5j(O#!t=yIjY0QkK|t?9IH(aqG^we7zexH=%#HCT0m+I5xoy4_%D| zqZBcn1QVJY9v9IP36fVLucql69$b!)z!P;EfNc#>0$={As}jc)yrwEwh(UJWDuU$e zvUO18cavXPr~>Nq^=1&>B%(O(fmChwfy5BH59qAgW(;qJ$7ywkHw761F=|UtC&ZII zzuoRHYZM0ZuA$Vh_!@ zN>I|Us^eGu?nX4{2J^43*dU5&d9E$1w$2Sg1BkBrsiR;Xzl+N#Yhjqt>{q%0DJi{1 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

cMo}oHHy>iCcP}{ZL9mlA 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

GikMA{n?AGq>UH8sAx+O%c!`db_v zzgwvcexL08WDyol%*na+?c2BIks^A5Nqfmq$ty&c@11q9q}rozhnhMRKJ0gUq{#Wn z&bafazViK3r#0PbU9PjUgGOGjLwjp}Y91aQ#YBEia~-E!Yo7;{j@D~8s+ZG4%lR4Z z+=&wNKECaJ>;$FdYG+s1g??OuJ4m|?diUQX2p_mzQ|E$}(=1N$$vCK&VOM$O6cn1R z`C%D;zGr>nhAgPs^r#o#p}BU&voBp5UDwCJ#i0n_p$QmioX|wZ1>GTf_@LYSF&>cuO!>kZ%{}r3+ zT~yR7{USS;ALwGsSv4tfes+41fZ#gZcVC9=&T>Y?V?DhoR-JJPXJ98n%t6`ybt{EG?I38t;ds+kd}mcDFXJysBuFa@9rnr^wDFbmP8x z6DOlj4iexsF45wjyduJ*ITlvd;ErgPj9kmm(}0941M0vLpQg3 z&4ENqMZTx(pFVxE5fcl1{NzdV%=ww?_Xv6wYikbEvUtd9uG-Z*J`jlSj@a1P+%~`B zR?N>AHKTuWG0~3jkJ?oHX`B;@1e0L6`*KZb*6%#Q&NAgKfjnqMryl z~ameK5sxQ#mPT%+36WNObp6?+NYa0UtU* z4t_S81?mNtFAr6sem*fZ&8p-O5YT`^-zVN<06)5*4OHt9^nh)3(L#q zX(PxAlV}zd%Auj5?(L%uNA!od{rQ~jpMFc*M_RS~1R4k_T}1YfBUugd9m{iU9cs@wU+FN;~tv%vYe@;eATTmegL6ut#`=b40CUXC*cfL2?)6;ct zLOb1}{shW%K*#g`%BA!5BHXV%4g)8F+pzvPs}pIu(1S6FgM)+9i;Hg?>d795_?+yW z0XD?f)YsGFlnJ}im!E9qVPN^W;r{-pF(xrflD$OxT?srMlTLDsAkU5Zs#Yi2sKOlA zL;*WW=wRB~p{?nAN;~`MtR466{AoMs{6U?CALxvZxU<#=dsS=<6$NCT3=7q+&(fpFfrbJnMkH4$n{< zP!1&U7-P8&xZYg4O1k;ZA!iN1w-K~IOycZRpBfluKHJ};k-(dIeO&faEKjsu^kCA_ zW_lybO@wZ3)(KkITo-pExwEtL`2LLh678CdcN?wi-LCU~1#XK8!Hv3|mKtYdIeg!F z4tfX`%n;;iYHH)#!$Mm=gf#aUd;oKXptt&cOpHYr)ZZ2zyLx6Qci0T;Pzy}m6K$`v zu|2#*FQ%KX`{gknqknGh9Np`Xe?#tt zbSDag&YbO6VR{k$a(8!UJb>;Z^Fi_E79cIl5nT(5&(*VUsPEQNacU1{8IO^l`y2)Q z(9n06hLMWVU*$^8?>&ZQNAbax=t=}m(C!xm1)-ln?Dg_;{ zB@Xj4jQ&OXzFVzSBaqVduOL&0pd7(_>Ip_w*ZE_ z(1gY%=I}$*uac6IxdD~?L!IzgOx)Zmb+Bl2->K~`x#u^WpLrG(2<{%+hMd#c!yxlU z(J^zyx<0S4kP=!fr5^w>GMGLp0DnOO4i_14D+{gMzz`#0|9}`CT3X&4F&G&iK1Vg4 z53E0f#*?pKukGm&2V>&uWX0g{!qSq}X;LUxjoe?~;8A<}^ah>VFO0RbLs$mv-+Kqm zrKP1U-vS6KtlH+cg1k}t!EpvYU$p4c%AB9}^8pX^Lf0|JFD5aO-AO39c+48(@^YeG z11o~ZX8bOr|1v3t6%+ySnf;@gNz6GI2G_<@SyH_o`)$~`77P4<$ibMt9XNgl7|t@e z%`oL6R6o0Ek%F>$-(?${#>6?_c>(j@kA6KboBEB5G`83fk&L>9V!ck{a}eyI5V^)+rqA`03Y)!lAA z*Qrmzca?;z3&z&6D+qT1S*DAAsG=wu$rJUeKmL=)IFRf*?T(q?N#Ydax7T!m2=Boq zTA}h*r$Bto`{yTR!w#0(5vNA48ZQh+`3)uS!4C8YF415Fwb6NU{651%{yM(OYZ``V zxhyc*Teybbcgrw${2PoFB01zJfUi{f9_%y4>d8tUsBA z2RmOqAy>_E`nw6iogci|48V_M2Y*r0s&y$)7a-g#x6b3V`MSY(7ipkjx=#>19?`=yV8%A!yzZo>HW`H1_&{)ORg1@weMIvePj#p<9MiX2~;4m3)L zKr9AW*d$YA?KX{?hKAMLE;MTDyKg7fhL10upDf+KFbu(bB-^G7FqX0E94a6FgRm<+ zOor|*E|rKDTzaqGMeh}B+8C$HcW_`1_6O9PrJVdwPcNCW5%Zeykgn^LvtDJvSeY3a zCFQX7k(OC9v~^6wfh?spHb+2j2&mkzfpaxQMn^|~Ia*AVTs&yIT#YQOebsXl7d@pA z11z_&V6_^~w}|srs&eS!tnyDvafP3|boCBaTvuxpvqJd-z^{vZe0*2l%A|Pjk2Q-W zPK}lr%PT5o78Zu@Ax8ogU7#Q%ZS3HT`)l;@&N57-_yVDuNGMb9Yw!Rc_ zKTAtOLZWs%*=xJw(v{nOkkS@Q3V2_IH|j2w7Zj}YcwpGWVj~(3ebd_8+kc^_lNxjj zyp&`Fys zoAN*w01QUJR6&oWWXzxV1*+TYLSYzGU+$;o!KatFZ5ds{k!&wb+Y-{Pwtv>HsR!6V zCGl1AjO&cIc$|j1y5-0b;Dy&imNv1bgE^|YPJPk{FBnT1tNPS+B>JXZV8VR#^y%PS z+rkUy(Gn8Ykav1U1IOwQVWziBh{N+*H)am>F?XtZOQca_rF@)Sl@3b z_*Wed^j!bKvb>+IoZRVuk<4#@kF!ajq%%p-@pil-hjuwSr^B?$OjUJsx^h%A4pB4b z(;O0Mo&+4Xk-`r{=JjAPGEHSU@eR@nD!maaX>8g znz~48v6fZ`T>0L781Jhro-3DrB=8ZKqxO*Y_sUUI zsb{;{?^aIMzP-6jU9MG@W{m0|6JlGrh9;S4UY$SdnE5hMVMTTSbe9a~d|ik~y~<=V z6%n507q7p5boL;+Og>4<6{k@9QYl45@OjN6us#uWiun#jmV@c|g~Zo@$2x2x9y4F;%a zFKE(9&cj;h?JU5lHK??{`itOELPEl|?GK09!?t#MHtc6Tb}+cr?$C`7qjv%Z-{|Dz zZh4mEL8IxyTqtDkL*>D|CfcRO1W@SPpnkno>fbOX3lOLqn?S>XhaA(JEqJhSp$)FHH-vrp0erJn{|JE@EAfio;N}M^#>gv24 z(5QUv5)RB>SMI)5&L;R0q1QL<+FDB^(?%w;J!ZIPnnzB zIbLBk@mxW+C-VGws?tU$)H?=U#LYdu;R0{@kJ@2>C1WR?T$Zy;PzMV?eb0CWrku!T zd{8#+@?t_|=TU`i_L-O8$$4CZX_^rNk3*+2EGdb`1}7Y@@T^3$##$IXn~ogOca96O z6CK*>(?#Gi{MJ$Q+uhy$*p-NnV`CGBL?S1w=?|>|K=|1$M(o=*Z=^-X$Bz}RRmRNC z89|-Cwt2J5s04PZsQxWCE33HL5M@2Dw$Ry`GhIaB_V$aYs3`67&uBXDBzZs9`ptKb zd6k)%q!*p6B2XD8VZio6tyQ7F#`)0+4#RG1rhGK!_8~HFVvW!(gA%`XYI?!tg7#8} zHGh@x2Ko)B2QxqG+;?&c3x`ESU%S)LKGYZt^*u!zpc%b!#g`%J#1s^t)5Y>+q+NmzP&)TV}j*|^? z=YbAV34*Gz=N?TsKkY{4a9oyi$@PO&sIY;TsrfhiWa+n3&rbr;o%>eEH=ua#0b2P2 zQwj(Yh7ZmPb26fOu8S7mh?2aW*quO)gqf%ZJ*$4z|AdFvGXM7EijU|!ah6&hNVD+M3y}|_I4J{{7Qa;wy%yDO<;fe_Bp)1P> zK;I9b=xqq>XacTkzm^s$&?VYIBkTU%5gpHCEb{=j+gDdvWUGarHhNvi0QU94gmh+B zW>(eb(tm{WBZKz!*9dJP#GyZ-_y+AvldG=#^x< zbN9$Ib#?XL((yabi+G!l$0g0G2I5_2?d_`rXIx`@Di1`rrl$wc0C=qU+3S5&8@=zP zgu+@>2+)%>AkF>SYNKDuFY93v5=zjkb=iWcn#W~T6J)e-${mzwn)es z`XR;!t~mDR3F{t_F4Yzrg4-kU@w{f0pBq4hEK+j0TM!CwQZfJsjal<_y<8O%8agmd>HM79hq|^|tZJegauAVf)(L|ewY_4KYngQybz3Ek z@9VF09$MPm1N^e&;}q$gQe&~1|ee)0xoD034p(!MvkuupPpWC-xZbvoYs z6`v}n{1fE(IF74-Gf&bF-_xq!eZ*{q-Lus*0Oe zNXr(U1HEF}oe(gwW;$B@43Y#i&78Ln%sXdughBb6Z$PaZpPd{5*|7z@i8-SPXjkqH zhjXDHk5*l3T|~>teG6Bd$5IYsK>bk4`_>KsW7>q zrt_r4k5a884Z zK3LwbTJgR&DkT$`r64cg_v!_`!d-7Va|NB8ffb4Gl-2|V$=A>KY9WxgF8fUHw(4jM zNx%Nu1e(p^F|r6|2RugYHG+!l@P{=x=oDpi15zDI6ywp1+x+F>0-ce$%2)MT`?!jQ`T3XPH-HYpG=#wXk$S&TZ{h=w zF%G~!7+TN+1pj?v{>#5tm`W$3%-IH@-1zOdN6oJdy!X^N z>4JRmPG&#)o}VQweKi08scu&KM>!%By1vbuJP0%)bD9`*&x8EKobpTp1fQ#xS7SpB zIfwB2wv1LAt?Q?3m!Kb-wV$BD_%DK(-tp6hGBj05Mt-(&ex?#yJMtc4k2kYQ&TJf2 zSXV`Ffrg$RB__}_<%6-cw*FnaAejh(bw)!Un14b*AAkTDT6J@+EV>dB zJ8n>~UldG{Hg3>pnE3wvAcu=;vC|oHSMzsi7uN-^>0v0~wv`Q)m9YR(@Hdq*$t-Wq zORlsFCctI_s|VvIpoBt7)Ov1i<&nNc*;qAXJjM*Kj;*b2=n7FmDCb(}nDuboXu`Sz znr99rChc(eAxR{90}+WvbzTaw93*~-mg#!W#Daq&ozmy>P213hD?j{H0YL$QCT@qg zYS9#(her)UN?kn`oeKcE@fce|DA-$|1W7qLImuB2)qwsB76bScT0*%SZb31v*rTAJ zFoFo2>trt?2YJo5@)XiV3o$nr%1sIMvAE5yn}`wgUrb`4l0<-bM{{mE20A+Il-&9p zw)K1JpiT~PoTC-wF>nMdg*qdLEs(&%wxG#cSZ5JcH8qNN+?ZvHSW17=M8r_z8UHBg11^|JyhVD=}LP*W=b?qsdb z^!f9H1V{ zD>MxbDCg`zDVO-w2?`1(C^;_m*fgu+D;XK3BU)hYmB{)692ho(vhZ5DOUx-uSOFp~ z$)BkRsJI3@>%mbZrKJ@gy9Aw(L_JRp2)6)h`qRIJr7BBL&j}4i|9flY1Lam7MkPTb z`kqRE(apr*PM8DqF|?X0V5eVpLR&BpA+jCx*Rue^V+Sh#Bd6;<8Z?W_1bjWhXgFWX zW_kq5KHh`nJ&zLWvC?;_$$lPhm>c;LeGh79g1>!}0J^u^6SgX#&z#)v10d3}x-*on zf^$)YRXH94fzIH?G{KRoh_ab8pFoCV;PrM0|nJqBngf>+L&KBJXeB&ke z7T!N;`TmwVfLOweJ)FwUloa-aSXg9hT{a+9{hYx*HWJ>kI#zaJ*cpnzAI-N{cqArW zCTxs4qL|YwE7f&U;^J7&HUsaQqqe~Rfg`Hkh??5KVnDl~J|a)S!1M?)_bE=_l4mM1 zvuv*r{XFYaItV6FQ9UU226+e60=DF2Hx-Hf0I?fECAQ(J%2-;4YYh)4!+385d_sb# zevt;Ka%v(FxoB-@uKr+}pnc*oDm68=r~>)<^XECB=qW%Y96yFuvjz5sAi(7h6jQ}S z8SFq3Jp{`H2T*)evp|Y0K-3z254(y<42l(m#is!j_lhQL>ClQ8$Gxe^bIGjJ+X2| zJ5!jGl+FAYKK?IVS-q)QLT8OKeGgZ%QM1pfk+8rH_`%@eF^f)UBU!XozV)G@p=6*W zGn}IZAyfBk#rX7sh@c?i`1p7xUfw4suzuDfTeYYA6W9zek#4`UsF7?UO?TXzgW^xn zPDM-02_gid1seC=zTa~An&5y+-QTphdrcbDZNF|PL%yH|7Yv+veoM1a7%+}cPUghN z#~-gNf(Z09#7x!vRb&O`s*>2k3S$q@Zh_hcUSRx!CqqZg5opW9l+ zh(y-bj0y*3sNBPcmRr0)DVZLDfrP48U7Le)jSjfC8x7$4pqyAj>pGC@xVkK$vtS(L z18Ns#P?3d8`5z(;&aXY9PZ*vBQYZv?$)eU1TAPj9Khr*$*!e&2pX-vDXQZcN?$-j? zG6J6k=b~Lm*8-_=TR4T^6+X-N_Cm=JHDJ}#_S}KU#m+}68t@F3Y;)Ub>ksVU1OcbY zyX>&-Q9n*F36~T3y)_942Qj0N3Ly2}O88wp)eWdlne}yhRYXcZBgU)=t8ptnP4*;Z zK=KQIwBb+ehB;O_Z{X}FsGjuiiYoSfLDMh-+P!6cCoy3_Sw6XN}(h_br3KY-aC(44-;3Tvl3QY^&I62yBg*qi&q+jnp zW=#n{n3U6#EZ!z2Pa(T46ht4e~4h}{Cz`#(jON9V46zsmU$VVm& z6NVcU?N(sGr9tZ3f8b#*>)sX1iEa=STU%S-%Sd1&z@Fv-Qr$;lDpycP%hQ4lB%>^Xr7o~yQNU+saqo`Z5i z4vA6;&YVWHr6c^*eJPnm4C*iC8W$TIDHt8zp=A^>a)iM=&jjvT&=4fhJn|ff)&%2% zML9XdKrdupxo!C1LH0sgAf2UyXW-mHC0h8h`<>9QhZ&n1K1fhB!k*%}F31DMtF@Q5 zXmLB3C54zUFr!s@ewMVD&SRNz)=8)pNIb4LgtTn=>UlvSA*4^T6iGnKbIw~RuToxG zSO`XUO<;i)Ky-Qv{S~b!Lz!s>cSl#Ag%Q04T%~LfhyMCSRI{_QOv1uCXve}F zxLNJWkQu^ILcQ#I|LU;N_`tHm0Zp{EJ@R_%^$3yvAE=7@%JLYXus#pXPwzg22Yg#xdx2+RUE zgSXjVMH}>n7GPhbpFhtm)-EuD>343!_q-N7H8!0yeftf0>uYJ|pJx^i-ivOvkV!5Q zwWjTD18$}OJ-P&{0VxC{x;LS<{P%HSu4_z%Hm_4_cO+W#YSx$J9h3$j1~7-6%h8?i zbi0dt4u)S6^y-5h5{+f@2GI6`P)bgGizS$Bu@CE3B`N|y`3IH*A8);2JbF2IDF9rX zTbs>9p^?{RL%_5I&NAtl25+>#ki%tdd}#fJuw(cM${8wXDEP^Opm~4~2FhsI6=9eB z>b1&=77$4i_GTvf&xC0Rx8S)$&*o`;4yH0?pM{8ZVpG|T6h5s@9mVW+3dFf z#rQj)^p4O5KnN&=kmyQ#$q(ldy*7aB=!p3Cnn(;dYvNbHWtDjz*rI1`V<8aRUT|E$ z9`@HcgMNARG(+SEgT+I!=Wxsb`XRcdhY>UVevTPsjP_;&rxq{b{-U;(U4G)8{VxPq zt9|9=TR6CYE#cL01k4{8y{1YrPNFc^-s6f3Mf=4KhgY&-D2ERSfgu}0 zRO|=k!y8eBEq@W*a7yC0<}Y~F6lksLsdcbHgWDSe)*rgL9+=1<+S+nmy?PbBYR?v- zF3iD~P`@cnSx)XlD3XU0GiTqG1g6OE=z%L7HuaJ9V;V=bHfrNWnbeK8PXqkDde^)+l3(^82R(iVF<|G@ z{Qy%0+MJH=rTtm|JTF4S^ZXKrA>il}*tw#eD*~=x;Lk89 zTi~R<7TEk1LQ=ED2pcpk#iVet#6#XJ(^~!ra)3U449W7A4j-cy51fdqj zEK~4-dO-(DX4CoSQ<{t8IN*Xu^5^Dk^HtEUpnY6tXD7%W7&A&~1jP?+A&26%0~!Gt z9UWm4w1+N$*J%D6ZFP!mC@qZwKttJ8u3fPEXGj56kjo~4hn_v4;3A4OInZh{2qnh{ z8#8IAO3KPvg@s&(I{)0hWJWknk=Q+)d)7yiiK|Ww!Y?=)GjU_P7QjdunVZW75))dC z#2k*e!t)BPaeC}o0wTW9gcj$(&d@*Sq5{(!qK_Tk4@DemU88vyOv&hsg5{%!qM#qR z&&|YySv8>q)oUWD4Y`N;aRez`-d)I%$8HnpMBldKE;PPhpFQeXy|%o*<}7=pr>bR*HK+Lca2H2qTtL zM+PQm*d3dj`WR@pl=WnFB={L0lNE!r(-iIQbg==qvv4NM2j!8iO%tD=d7L_x<$@}( zUkE@1w9~d4F+(wxay1e2M_ zOKD?wvHs^q&FumMFJ0|tUci#Xao9kBa)>b8UG5VfLB-ikR+l`P5Cpr?Sh+>CdKv=Q zfUxviXv4=7lm7}qPC24{!gq;@1P?qsJbL%e7ElKp8-p%BFpX|~BjC1&ka7gQT~%AV z6Goga3JqOxpzrgJBw15yT{mvBv$H?AV)Yg+{${VOm)7)C${#q0q-JN>%y@>>2Tp{q zPwTtBpHVaEbU8enbraQ)o$xuh;TiF%QnRu-Dy3=5qcFVkbX|U*Zf&i21i4l@8_|Cu z?*dxAZTN`%3Sb10Ot*8DmbM$ZSBZ9kuE)x!Ntim&D~>)okj$p>U*Rs{VYp|HLrBvO zElKFTz|%1HMl*HU@6|2~_a=K{hseIOC}=OaiK)m=G#rq75>?So)z`1zYRv0=zqYy6 z{6F`jU{hip$SnGDeoq%RXDWJCRC{7}{gN2BXtB@(a3dr3_V&a_Muvtk8ph84k=AlI zk^!{RHr)@M0krb5obpONt#KH><`+j*Ai!QXXfHnfH9iTNtFi&YU zcnLyvGn;D(UY%)7g~K^f@7^^5CUZY@dGODzxB@5S9>~jI1m@VfvTmgmm|#C=@S1}a zezS#41x@j7g0u^k|1Q1}-Dco>WFQ8?4ET>DdM`v6usMDuSQXB~mxXHs7*OfFcU9r5 zuTbFOKR!_kv;E5d=S*Js|IIUb?OJ%ue^s{f_|9|>eh!Y0h5gbJmds;hkAsy<=`70r z4urOQf1f_=zgfxo)2stEL6W<1@KQ-FU*}y{COb}~DC1uHHI{!rs$f>6Do;|`3;1W&x%95QwcY>r89YB3*Cy|yMMSA@{OcF=3j0pOXRVX+GwPt~y4Q8}d&QqaoC#jUJGC;DvSiX} z&EI(We(ihBiP|n7E@R34um=3OV>*kx8!$S*7G^tKD4QbR$dgfJxYHqLDRV`rK0LZ- zLsG)@MhR;rf1KG{eiCYGg_W1r5P$OYM$>;xnKb;n3jMwZNBg2OUUjA)Bepst9zBCV zmS3Uf6fN<u}l97ZJ#4Afoub@ zcg1)EvwVuAa$~lKa}mF&AnJ?k+>5sQ$rP9b6`xX$l>G@6{hiNcTgjDH6@x)GC%;V5 z_xYKxa&4fU!IYv+0GVG}b{0t-<@D_K-%A?x2yOU$`bcll+~G9EnR!)9L*l8#l@9L= zxplHuKL_~_-=0%!sPA(J*6}?`CQ`$lZOUDoi=m$laNhVj7)X>C4A0qKWUyhfH-dUZ zbg_^wm87TLqCTj*KV$j5a$EkLz^ix!0+yJ=v8g+P&WnD^F{~>>x~P3s)HEt506WL~ zm>7uP52dC5gLP>o#HJL&@tNj1Y#wT;8D;0T^n_CcWbTLF?92qsuEbeOtnwDGeEs#3 zyI3@_SYMHE5+rhZtPX!msx==(HU_*j5X%Uk7b{3Z zHTc=3)b~B_g3&nzz^T?+=d_La$qPfOU!L)|xBAcSeDEatxIN%bE^^4==FLr!6iWGI ze^Dn>=sIAWBQ@pYn{js>b#dzFC+M0VK`jnfN0XLp z?J4g%Yp}mC29jKB-mPAHn{q#Li&Dgv+XUB2wVv(1Pc>OlTb%oMZ{rF#?)__2l!+wL zt~6rSg1LqrWG{`>Y)BZ1O8F?6qA=s)ua8%CFYD8msrB1%OfWxct^b%~RJF&~XS|t=>hgSl$yM1=AxP{M{l6YJNV)XRN{Dzj<`;IM4^GnjufMZA z(KA|V+JCX_$i|~XU7w#DvXr^E@tj@=$24G>xOkk%@6Sxsd7;$smMv;kj&{w z*_mF+B5F(gYk}KpO9Eck8iaFaD~H5>vTATvBhwma)Eg%EZ3biR8c>cIvp#fRE)cG;ylDL>D@gx5S|x%F<4B`U}NHhJ>5j<{Wx3SXxx z&t#bvZMhXH>92)sh{`ivn47LEE@Y?jLngY_KlKrcXc=>*)z7#Q)!c$!w(0&Fbg|H& zI5`@4>!v1dnokiep6wmxL3^{FaEGz$lHTnwU5FM!0ok!9HNV|%dP=addS__WnhQ8n zaLql*=ty~&?ktf`S|G)&ebvLVCbn&D_p!#xjZX&TChpGuvWb1vP6)Ro{myM9aV~?a zg5VdOYo^PO8MuZP$;ywVA|q)-Igjy_FK;-%9>LC%)NLNAyKFUWv701;)iu@LkeV3x zEO^`9h&F_|lSOWfl%a0c_s^{v-wX=HS;N~$vB^$W4~Es8FNW!#6XSd;Sz4yRx5AnH zdNI)U{FV&fOX7wME`RewBFvWq8BAD%wIbpJz3-Iq9uakf#!esTP`sT;@7T^-I6f{> zisO?fn?t?%ruTMEjf`A+A+&BOzTE0YG%8H02uW9zY#iUMK)HEp#m)3|revzhlp?P& zsckpW)_6J7La&C?D)VA;!z_kWQ>DpKl9RXrtO#w2R`K;qSK=}+YI+L9rsrZ#Z7q+D zOWH54S~}DVb8p<%Vv3~k(M~)xo7l$uZs6vme2e#B#s$6bJ9}ZCou%C!MnyrP!5-63;-Ib=F8HPIUKCgC>4e zOcdMi@bFN5fV$hmBSP-uK@gTd@u<}l!^ehkY4?{Zb(U}ZO6!C=xBrZ8KM~8;9Z!9h zot-hjO1@F_eQh)914VEN`UDW$qk3Ez{2MyvBHuPE2!em|dH5?shVa95?UeREP_ zGo!92?}%YFdg;N-9H*JhhS6!_2`Y}S^j-nPqf`31eFWKw!9GoZM+wX`>p&EJLW za?ANOQ2xV^>Ago#@1UZ;P$v(w*K0w2=AoFTt1)D9FWOX}bIjK+FZ@n?SZy`NSA2=X zgFrolBJXR+ka??V`PT0i7Ws=R7jJFMC)3Yw*A!pNPl|HEzc}pgx5rm_?UK+1%KC*5 zKJz-&!hstG-Xsp~1JRGv8hqEJ`*AL>zh_bJTffH7$zk+|&-7_T5fh;(=i8X`3CTvD zV1O>6AAYZ|UD=qa3bi3nPb(t1#Upd9a!qNbul~?sUD+Q$Tw4IQDsI5aUbkwT@nX1T zmGR8rwq!m}0kR&0IV$CWcSUGO`Z49e;QKM6XgzfdghznC`;t_o_2q&3O;KUl^Hn!6K~1i{O9a@e#+5B6VZ2sS=-@ zHmva@eMT0_NXWgOtwvI>M6~exGw*uk?fO64^Ulrp11q~7@jsgLK3%=6OPSIulFVGw zXWSY4OMz^RLHScEq7uu0TCTneNtP^gpPb==+J?)MiZ6a_p0-WfY_*Ah-kjUoA@|qG zSVb1T@LAS67*omvPBm?5MGEe@R{(P7FT6 ztzmy#vw-wy@k!=3IG^THz`EEbC|okC?NjG4SW6VGrl;be*dMieQF`Lmh1FTK3OeC1i9H_q>WZiV7KN9~mgNcG6y}6%_>wU!T=U#6oSt($NyDOQdN~A_E zjVk!qyE$^GgIe#(v66fDd$o1V#0=mM!ee(*e^bXri}0Npn+%)|!eXk zzC!JrWlGi5ltZSecg(5A+`2aY6GjGgpOQd5E6kmRwVaPxKg1=9@R;VCy{2E1?>xIzly48;`N_>CK3IoRUwgj5TuKP73k+d21Ipm|W^BA5*Xt3VNu^@jB>n8o1)FRv3hAe6 zzqWJlP3f=FaTCUcG|#uL*q&@Sc~UnJ=uW>exqPliHxxHBk6Pc)tv;R8Z1!z@H0-3; zBkpmIDn$-RA4)ksOOCl?cvye zhpi|XnCLdI|2S+y{@9&`b?mdhEWg;ppiL}tS!M*C<6S~W5$7zd+{+H{k@Kv5ERW=v zaATwh-HcgJ^YwRL+rM$)Qx)1;Tq3xjz;Os;v;oNYyHR(|&~l49YV^I56W!)8}s zA89hTlXGVwFU*Mky9IMQ`LExUQV*|~mka)?DmwYoiBFCV;#eQ+LrKB6sPvt<>;a33 z#|fERV`&60L~3l8r((Z2EK6R>=*?LARPSq3smnl&e@j^J<9jO>x#eH98^(A~>vA-S zMthNL-bnHXxV{CA*Rt(rqnojE=g3;GoeSWZg#1CheQ*oYu35;TU1*}ph4913tMtRl zw5H8hcT06i+$bniEO=_a`3Ah%3Bmk=P2FA~YTxbxXCvz#&bvHn`Y1rGW6Z=ZJ99hi zDFgBHOE|t8 z6>VOWaUo`wapIF9^~F)ZT^EADV_6Rp_?L!AowXkimTNZ``QP^m>CZQ(0+UlDR|JY1NpY)h*ewTr? zfg>>~s(Crji+8pn?zHi4OS~niYpxJc?)JxZVxr*Ho!d%DN_EP&=h-ggUXwrilUiJG z5Ue5bAkyURpfawrknO@7epi-uJqm z`ujQOd~x3&-NbXhzpr^V^u!aT;5ow%+>vU|5MJ8;NG>4R(r#zCB~IBDC9h z^ue;XuPB}=3mlfN8Xj2{oq*Z8KHFrcF#lwa%oA3V54w&6VY5*)gjz03$qvgGDu_Iy zZ9qm8p3P~rKRy*?Me{JoWLSEwwQ1RCdIVhI+)*^?e@Pa<1IPFZlZTvU&n65AuJ@qwn_v-N&OIrv|m+Su?8TTJIFq2btTT3d=G4CATkYN%?D_ zswn9#9ZF!^umg4t!GRw5U6Jj|>BgGQdqZm=eTj6FsN%lraJ{!DI4xE@X1Hd8@kZ_+ zj-T}I_8r+KW7(xUJn>~z*g!$Kffy>?5E-b$8kerWC z82c{gVFWFN+pc4~>T7UBxY5)(7|D9VM|o@7!g=kuEfYa9j=Rch9xi&Dl2>mUt`Ify z0~H!dt`KT9Y^D5()AM;@d~+FD!34cZCo45eEM2R@4?(S1Fd zS&jzX_JdU^DX9HZOaq7+5ydHn$JEdW|oMF4ld3b4}RyghI^3QtMgT- z@#86pbs3W@%jxYGL~1}Q7WqzFcCl$s*E>(TB%XHH!Ea33Iivi2n933*GT&g10r!r# z_p|UOc~eA+-tjY!rs1JNj@?d(c>CinCY=eQih@xZ^z%SEv{L+;`| z2KuQ0Rc@!Il1avVg)ffn_61h)bYHk(q6%+9PqzjJT)Jqa?7EgB(65ovAUT{CUX0PY z0{tnM(Lr-f{rURy#g^4Eah@cBWdQ~gdIx-&9#I)F5%AwLbPzU5wdUf$qGZNiniM)&+z6Swtm1vz25r< z2dw=5jtY@6uu$7UCMU|9hyF;EXKQ?s(!_0L?Z9(<6$7EFIK=@+@J?3D`_U3`A(5Eg z-`G_uGQiN`p;lu*WYjk$to9fRm|Tumxwcm~;e5Ga#4lD$Lf^|q&;O8%bW2xjSeLo0 zZDSF4^aj!MbH~6(CP+((5F-~5sg)SHh@q+_2&?IkxkeNjKpBF?DfZ+Vun_c=vXI)5 z{+-4;gz%_#!M{XZ1_c0c?|zq9@5K>i+E9WTMcPE#4ZQ?8oF*Rw#SvXf zLrMQ^Ck(~C)?C+EXX^Tu*Qq6i-NFYRt*%Pp6ph$;d&e78Z|f#)ol|2UfOGFU&+#Aw{zFWMX|8%9f7AJr2Xvcoe~cSC`k<(46_)$pKem zaA4W#X`zD-2EZxx&nLc`3>}KwA->3n)I<^K@stlSfW!nDjm_SZno!`6dRv=Y#u~iu(IIpcw6Nr)*h!X9HL%tiZcF zJ+IZu4!0-V_eKYTRd_2FxYBYbhh>_RwyRsgH6B}1YSBfvYMmlMC7$xU2{^LSn({*a z3ouhp*g6dj*7pRh?_MplKN_l$&3%bZQa=~h*XGXKYW7luOUsh8k)f%mBC^u`H9;hj z@bO~C)IEGC;fM#hIO`v~oo^j}bj5)7ZR!`qGT&tMpyYA&w&ibM1- zT@AT!G!^0mwh{#7V~f_v?7>a8pn$PTzt=C0G@X9+FsC^<%mng7haHu(;71&kfZQ6P z&Kp`gl2FIN)2*RCSbIRl4y0lRQaSI}-u|P#->gYYI@{aC4JQVxF*cXNG3eJD z7Fnm^B&SAQUVqPPXA>jCU40Ar<&xUU`j~bqsKeD0*9Cs}WstSWu+-4HAyBPY?aaVMK$V-e!u9&5 zdN8#nF)lwZ4#bceJ8lr&m4d|F9a3Egr)z~TYS)_3RZu_tx#IBeMa#|IU|_Duf^Fi9 z;}tG&JTsS;r;f|ufQ_5iZ)mqfd|K3}g8c6SUTJFo6`|n=1y6EHBvsj#&C*FAUei~= zwKJt%I=y^J&xGzeu;hw;`pm-5OW}XLhS|v24VUZ}4u@sOiE7A+YRbWh46@$&gk{cd zXcb2@w!h{5;snUN~k2^HB%bQ#VaHun@`R;zJ{@!hK;Ne)XjnT z2OlBz4QC?_Sr3Ps-f)7k)sGCQ)L{q5r7R-?Lmyg(bT38~E!r`ZlIyUMysvjwr*#nRMrQZaux`)Ew+XC%4XvHII+f z$?k4OQns1kakG94PJ{X**6+8n-G-&=I4!S9VaHf$j9zRoAj6p3{hAs#%h4D!0f^-C z9dcxwRS`8q@YoS2+d(07-7K>LAkh<L8wNfQxtr3fi8nxdaS zmoxeWeIvqS7Wo}l$YGjNQ^c~@RL*2i*#jDHyKae`$!|XHP_CQpEx&E&+kD{oJUAhn zuQ~BaX$d%oPDC7Lj=z(&FLfATJ%9hfB`vv>CiYw$X8`o|UXpjkAFY%Cx!FbgPSM1eZB@6tkF4R9#)kUsU076JLH zFv1{C7n_Ns3K6FYjzk;rJE5TOyE47s%o1t%_zECSzvL$jC{T z%aPqg4eI)|4XkrDZ+?npxo)}9HnX18v<;6qX7|N<18ua7n{o)V^1IT&94F}~x{{=@ zuBG1GJ-A{dc_ZL-?wiezt@e)FE2T(V#QF-r2l8!=LS=9Hd^&EL!4b!7d_oh;5vzYq z7mtmC1K8~eSEMQcW{eZZD$u1kFSgV+>S;Tb4SmL&)n?|)lfx=x*{ch2H7p6`>guJ4 z89{4`pYVP`+|0>Nl!xPj#d-QUM*V@k6@Ry9vfDeqJq9yVipauMZ>+u_a3+x+$u2Cj z(x72%e87EQY)}kF6<~j^C|t#5Gl2sG1Z|d7rWCqQxr_1jdfl!tYGh`z)?66ORAzf( zMm7@qvZbMa_N2wh2HM?GvC*V7O)wXRXnV=Y>y~=k``HUV{A*A``VWJ*grTbI(7 zKOl`;iP)6K&}qEz;{)8vaGb=3Aakxc)$vgq7AQ;gDzWD z>ETZv@0-TST3C5{zXoqST(&iD^nq&_=n`d!o zkjiX#DQAwH>DY&w@FJn2t=Et8@%AHd{RMRcKDY%jPkn}x%_l0F|AaF%dxhIk)U}Kt zi+JSb0n9GJ>w&D!U7xXeA!ykxEMVV!b;Xu2vzs7FG;Wmsn?M7Xqod`&y$V#8G+CRl zajP;DBLkJsfN*-{D8}@QHuqi2BAd~Q*7!B zc79c?rI_+m`38%|;Nt%k`M_O=ByI2+X`2S+x8)H^9<={Tu^ z^(W@)j8(4JIV2C48Ezh?-x{}@IL?9kFQ z8StoU@c4GW!>g#Lq-5P)&9}e}bIo#h;Mw zCiBpQC8AvCz&7?-6*ycK)wuAMybWz82OQp#(036*c{YGV%=NoE6keI056T#_1BCoi z*Q=zuKTnO8mw3rd#CNp#U~vhfm~e8&85*Y$4xbhYvG^H(u;SVYq^j`nI+n*IRhXOv z_yEv;k%2oF0P?G}w*0E^_`WlPPck-o0}x(+&MuW(OCo`N&D0KST^IpvZ%f74`^_nb z7T^-m5>3uL8$4sW;E^kXT`ykzYCI9VvY;rK`0Cw=U;qvlwnf7te=ec*)}|cioc&l6Pgj`%N2a?7{-!T{Su-k1wmL1Ray*Y zbG?E@;zj65X@!LSmu<`I+N$!vXDb>4Y`@8#&p9p1Gi3X}sysSak6h|(^p!>fFzz&a z`|5&MACEUH9Opa(SV$4Gsu2r{&GMEU+6n!MqWK{>45mH~BbVi^dj!$w+Oq z*$m#XOHIA*_#Nuw6^-P{x1;;7w3OLk{#qJy)^ooIA23K3+bP+PkwZKYkXStBy{DPt z|4QGMvG8K!$g6pKFlwX!PVw*fXB{pBv}F!#q-J3H7jM7*q5Ymsp8axh#yTV17HRwS zzx(AyYN~TMfY|6;bqcQvG-nBuDImbEgTs#B)UCtRjUNlBu#r3F1yPvnt448Lx@=>0 zN?q;dc-=?Y86?tth_%7>bf|5Y@|ikp*%`1GxjoLp1UkB%gknYc$9sXo^N675?yc`z zEK8oy?sr+?{t89f$iTaP3=Z%LyT2%{QIRavRA`2*PQz)4On8YuKo#{y3V8ZIk*j^*ep9 zOQ{ekJP+W4kHi=xqPnz=56kqJ?Mi}otCazGl5Ii=<7-#Jzw`Z!(n3r z39fp3({dVAUb)Z5N>m{dJ|iFwflJQullJT7Zbs=KOp>VM;4+2}a`XARR&w(#bDcXv zsfL?@c>;gD(|qpc)_wKqH*{QOf!t6+<5=}P11(?L=w;fh2#8WG&(D=i$^2fhWAN_l zf2j5}m%qtA4@19lgW#Z9PV*Te8q)t2%3Z(VC2c=X{QjPK=epva+P8Rxj73`WSFtGI zT5Vp#PR%rmQ}6k5Q|fpfCullYe$%61rSZ}G+RcWFk$mQGetv6t{%_Aq4w&;E0bMj4|q zp`M)8HAq9Oo#%x_u@()U>lxU31fi3`1&mwuquY7aGg1I4mmic2(4~7G3{837K=EZW zP3`Br`VHu`Uwz*$V!prc3C0}uDV^9UbwEJu1U!b&2T6r>Nrep>%&^)h<1c(;Z??cd zW5w>>Wef&sE;U5gvbO1WaUBPXLkOI;5FRVizv$1PU%S-=x*=}e2~9T_R! zI*QTIuTmtKsdy10kRckN}kr{~nbR;3Nqx7271J z(6x?QZha&Llk&9{qe^ErEXl9Uu6b|DOP7O5L@pQz7(OK+_Z&nLZQ8AW0`b#Fov>;l znjl3{u(BrrWJpR!OV)x<#*Lfm&l#@BBT9xy^kFK0-{>kKCbKK;nw|O=>X@O`t`PV0 zcSsC#-GR~uzaaTV=MHV;{c$;ar`iQ~osZkuoX4F&W(U5`Q!V}8AGZ5C4u?k+J4EHQ z@S)!@faf+A{+C24gnbi+LfK^EsLJ-u-ZgBdhV}YchF0B5NW}^?tW{vi)np~^x=(n% z;EHUU{N-`Y%ag%8cxLt=H`1BP-JQG$9d{A@D-P3@>tg$>Rq3_6MI}H*O>4&P*!@D3 zouC{oB?WGY=tWd=tFV>yE@(fgE6(w1FDe+-g40ly`>R+U0=Z?R*LHw$?cipPFdl7u zPB=oAD6>CzFWi_Z+)tzKDNFLn?|o#D<2CvYP@(&bB{o9LOWin%lSJAvIyZ^a5vFD~r)SQ=4+o%FI* z$77ADg9%434p!R*aoG1|x3pqFNh7SGTK(j)5xQnnT-;BuVV{Q~wZZ-E82jcJ2}W+r zir0sgku4#SDYFcTLKzdfU^!s=G-@3+6?@`{oo#qiEuy093cP}`yAAiS-g{_WS^hi) zM#Bf%?f*d5Mws=x!NJSraT&`cBd)tZ(pl)EU)W+SsRz(tS#d3VE5M#} zJ(+w;+FMZ6KQmhTYgveL9T8P=cwxN$(Dpe+L*KU0!=GcT-H?t~oPhke)Y%$BU1gF^ z9K2yXoN6t6z>KnT+h50vyO;%1A~8E$ligR68s@H5dc?|)z0yhDu*#}(l`7Uqr>Q&l zh@3ST$@Cfv<4gSDu9K2d+66+P-(>)H#_`%Ke@B>0mjDt;!0&4v`7RHK2HO)CtyA3` z5fdNu<|C-yUFGm_84z}&gj^Lyizu+G3}U{-r{P5$W0g|f0UtIBRAgjxeF+Fovh;*) zO~ccA=9b!SzFeu#;$f~aF~{<9HDUEY26*ex6Q?3{Z%S$TeP#-?XKrC;&b7$7@F~~( z(Nk!?y94<-Qp2p`2gc+@-v!V=v1+=rfVBbz;ar$a6`7xVAgZ{aP=X zL(L`#K7Z14a+U8TP^!n=u3lrXSgy~j!)3)V!upFq|Iw#=l_vb;yCY5&y`^Vq_ueHb zKe1a9jfiS^v;1^}L}tKY34eX)fN_-FyHgDn8AJC>kM9lVRX%2Ytk=D*rp$D3pYF*NuZjm zOhHIK+cV@|8}3Izb;`;$8}Le{6{Wdd<$=FP=ubJ+xUH=nA3Hmatyr~#Kx>Y3A-GmE zP&J_4Re4XXKTe&~VjmdP1}wj(GNJ)K0+AX6rXXT6+bgL&Uu4r^FdSyOV!M69fXX{i zTCFbkw`^W9M3Shv8fKR-K(@5;)Ga4X=M+z|}4%+ei{RY7_FCE%L_;`@9kj+Bbb+hQ>Uth9G6@$&Zk) zilFT}^YrOW-ti{Agx1Ej5f*`%_?G0uh=cw$1bbSWWo^dGMCOnQ$)(r(1v2 z$zs88Ut;-kZzMf)%K0J~LBCsORV*AbvDFYAp_l7Oyp6qI+~9&oNT)DIuGk4!`Yjt7e1x&U>^@dMw>{%OAEHUj!Y?wsE7qRMn_>m!%f~^DPte zw$u-!G`caMZ?V17!O!S_bmYP#w`8IB(9tWG(T<%@6{HO{ED1rLvWtq{&KD9IyWbb8 zzr0IzSeQ@XH9!U69pJSBtIao>!}^i76=+^RW#t=Nyedj(72OhL{RtHZq#Bv}QC^h+ z^Vpc3$i_aJQFSzp=~yzp>s@~0%l4L47tl(r{EB}uU6 zi(BJZIWf8g=n^-xlOje7u2tke>Dw|IELST>T0;!9y-LGgyw>Nq`z^IEO))q3AatNY(+4c+Qtb$sSFP{+bCV&U}noJ(kNWO0E3 zt`EGR<>+Y>i93&6;Xk~ZXGYc$7gRENJQ03(-l8cO$*5x`l1{CctsS_sUi5;`;k-@z znwePg1Tr7(L4Owsh6u64hK&q%6M_KAHAaRJg|7kPwA2C^*-83^`{n!~1OSCnz>#TQ z{Utne_c1}hcs%;U%Lyd@?uKVCW2Af&VFB)P<#z{xsW&{Xb>%+0Yuu|gtXsbPy$*a|r6@WYzuI$t z)uRvDXXttr;B`*JXrfZ0$2(9Pq9HYmcy?f(RScRw)S9m|C3wGtW@;6TooXt5^YqK& zd}Se@m?=+H*WQu;(uaMBQ3=2B;-_&An}~#HdjjPpU?m#hyh%eZ7`>#be`q-QjK1L4 zlJiWDBjrn;?)Qe;VV4ZB9@rgqP4o4DWGj)>ht+3n0f;XA%hFZrkOOC0hsW~WC9Tqn zJiiLqp_TE}Hq&O&)HJ=?5&1X)BW0-)+jk!L8*9XczxzMdgO0BhvoBsQ?mWPIjv6Kq ztTrP(oy!=<7Oy=slBPAgU|Uv)f0XNxCpnn)zY7x-YaMf!Chz-;`c9BsAImzcyVplVPg)^Xx`%!%E;DZ0Wg_IH1kFrNBRCU ze)3c^w`UM_rgTjnh356WwMmW>FCcX)ttu*SjvWdP=1g{MP3N${MveYY$KGDH$F3p>@5i-kZ%?8oR_@bcse@wakcibq;F_^iZ=Rlg zQqF13%$2reGI>iwSfObUkIb!38a}59utTB{W;)eI`p5oib=wr zC6^1Ag`<(xc(Rkl+Xci3%e zUlnesQ;$U#bRFkjfOpFGm_B&Iwv}%h{apS+FhMb%eTgC&*D=1Ibk>*z(?N4spNZx(TA4L~-U+=u6NYMGe zRWCL{)>z|oef^-X5M(!Qq%GA$iTzIFu}14LtcBd}r_@9SS-vPL7n2%A>={`*M7y)Q zi&lP|@mWqS{bOf#uTp2D`sP5ggzG1(Nvpb^%Cf zl+)!Gm(mT*<~R~3Y0vlictj~%PaS^+5&J1LY)kUWDcBE%WJ~sqR5NQiT96kW)O?oIb&Fmc?J}e9ktaI95ZSvmM+;LTah2N8Kv(T{ zxj*RBwW-|y8#1}|SO1+dbmfZ1M7i%izo0)~=dP`+ZQ8tptQlfxfy;`A+MV*x1{I8| z5#(n64t~sd$2u`;N~d!of8at=RAVmJfX>VJQqzy7oR3n3E(b9B@_VAZe83tUPAjX< z05|QhiV8BAGsfR^0l20q`!y+CSu80 zYx~6ink%`R27gbb{T!hIreA6Aqr&5+>0hkS@%adK*zr)G9I}-J9B`(*UiKiLxleb| z%VIs<@^~}8bd?1gFjEDSQmMt^i2jM1F4kK!+?J4ATB)o5xo$1f=<54JNV~7>ORs!b zkaCuEo!(E4{VnDk4lffavI_GCqYWJ}mm}N^pW^1VpC;ntwO^}XwVfyz>V}m&tVAaN z-bqt}$au4efv&juXo^)5Ssd=i;_mjV_jyTkNA&Lzc>SMGzpOHwIKIC!efYODJgs^< zdvG_?ZbB+*wqB6EbqEzFwlpM}l05VJiU21=nN7;#NpLSc?bwgcG7yWVzzwjP`nGgx zTL);{fex7rzJ3<%SI zz4FVqUwe`7>_`or5}`&>;Cf~Cl9b$1*?92w!T>RX> zljK*8ho}IZ<#~q>DPc|D57R%jDdy^xmOMv3wO?zkTsfW^%qeu3GFO|G-p*RYvOUdy zuANb^&h*}u+-^UsJR7)sYSkBn*KlIj8oBfA-~F)N*_h!4Xh*$&fBAjUviM0u0N)}{ z@bhbM5k~&HVZMVq@=5ngq=2>mfF8z*@sLeZJf{Q8@Q9zEmNupfZeE~4KNS}mz``wD zDyxG~f5aYwuQ)d&SFmN)I=nn}L9nk)WO zSc%{{ZKa{4((dK-jbt%v;{yxel`xxsWggOcrE=SLKbaAj{^7SJ4Ce7-!Vz2yob@C_mdn81OY;56&fxiDAgUW%Q z36TXGM7(CL4y~VN@R#cE;Z}YbTd4dxm##HO_4xcrX`O%P$YL)XP7`p_ zn*(lbU}lJ-mX?%@%a>1|K1CDqB#ey}a7l!UIdKD4ilFIlKrOYBw6W`^qOT?_=ZWXK zzdxs@ZqWRF8V|7x7Xc}ak#|SM*D;Nkw~^EyRE-_ROSsltB)Si;>Q=S(RWqr^xPt5P z?0jvUn}1~J_Cz`3^X5@~d`suIqyd? zFfLxAK{&Z+S;BD}24ePK@)rplj@KBOwWRuEWj~;Nlem$gn&ux*zW2h@vm#Cma(laF zJos9C$J|_Zr2lxhGWZJuu{fK0D6c`+e_IEB(y%IuioF3al7ii^CZmIj>k0wHV>j5Zxf2r!q%a@D=$Gm z14%P$LDMpp=y;_jk3Vyh5DZQUnFp!n&7U7>u;#m(7bl7u{x7!pCGGV4m|t#jnSFfTW;-9B)f6tRE_R7{7+kA`qRGDP{CG|9{zgix-UQXBp*HT z8^M?04GPeV``Ra5H5z`d%y3NhO`Ka4)H+P4*-62Ow9_rUUP-|D>!glzwVRp6eS-f& z3}}nPxiR8D8IlcD+@mKZ4Blq^@}{HXC7Shr0J(Y6#Q>(|ASqD20)FVyLaWx*FnIC0 zkB1(zi8Q%$WQ zz&83z67x}Sq`xSnfEM0Y5~Px)A-<{PNEx2eW4|y#o*bElJ`xlgf~CWxn|$WF28@Bs_MOSm}ze3wJDxl4IO$wg3d_uF2h7 zpx!ie5;BV(HJI;M7wgvwm#Rb0FzUm$O=;*S27hHo`Q@q}I>;#>j>btDTYJiVEG;8y zDsawY1F-<4|Njd=`p^mVVfxZk*!T<6*Y*g8N!u zDV0lW_|g@4HbylhXU(+Bub zjD$;Qv614gduQFYf1iEO@DWC=EcGo6Mfq@aj|DlWV6|g0r8sbf5+9|=i)eS+Tj_8F zr#?_PIfpberUewi3400CxxOGc;9#LS4yGU3sJn0ycx50V!rYH{AR1fI58i%3e}9y` z-Hs9E|12R8r^}M`S2Us3c*1Ms*yqmZ?j3%@<6M$hz@HW;PM)urPj*^LJyhWV3Fmag z!#7f1(#8tEts=#8G`PI}x}gmyR|nI(yAzZAAlq%ci3Uo!>bt#!nijrGS9$g?z7XRA z3YUuE7%!-J*gCD{@8{kwoD9#@#J^L( z-&S4Lm*l?{-ya4A|EeA1&uv?*$zM!-?#I~E^F?CS(2KBr_24%(#oZC<-#en@&FW1X z(;PH;4s|A?tvQTBdSYDr-e25N9^!j2Ub=*+e7qJ?QP02j@=!1%vyW65$ z8yx`YS*N?7#2pZAk?H{ZOePA}h-V~v2g?}L;AnFiH-v#GW_ETQuHNVBeJ5$Xo>OACdX;a*d9g+OYb_%7-!2c=UN|6J~(fV zA9%(X;Ruy2>W?C%>d-QbX5VQZBKiq;iXsbd=2BAY{AazuLI-5~OCR}buo|+%Eoah8 zI54M|X=AHuUH&Qqv)u&$MY^Lx6ig5OO9%R5feHi*0)r=%)zrkr#i3W5ZHu5@|cc05bRtLlAv9vajdU98edAMNkrA!qwsdjI@ zO%O&#Plgotoo z$5M=K&kg8UwX+_|{mF4CddtdsWW%`$G9vq!e8}S^ER`C59c4?4i-h2lHAj@%iHHit zST%vE@AF;z?d`p; z)N8?|Mx`-SlU{Rm_pC8M`l_xP56@RI6&mTuE252}l1S`aNaiD0zZ0vpu5-Jc&iQHA z!{#+Qr#YFIIkrCe$&hW@Fq!OcI9UH{0@S4tsuB`Dk4MelQlssyd|0L;bhu7n`RZ9C@;$4^pNN?L%{G{_LyP z&W^VdQ|^km=7yIb6w>{@M6E}^)Z^rybBPp2(jc;V_jD?R|_ z&^~v6^d;sfoZc-ax=gMUHS5CtSly;_*XGGk$Er_$Dy_k+7ZVo z$Cti{|8(R6&!>T6{I1F1UK zz|5C_p|ul&FE(93YV`RRHS%~Duq-`Er#{q_)<#^X7J1Y4#fkuf->o7w+c<3Znek$S z-{In#4C)(apkn-BHkL}qWlLWUh`$j))7cUT(tQ#WAMmNI6D>|TGuye>LGG6@;KGA* z_8g+E={dMcaClfRb#1~m`sHoq5gFBV@!ZNiMR2LUxK(8rJ*(7Ufo2tR@t~jW5$M?0 z;NkIC_;{_W#PS9w=W-a9ndLaR2eI=~wzm*u+dfPvm~fKqoeYp{J;mai5M2`|$IORy zCyV;rHz|Bl1YaJ*m)+fR8niOo)AnQa|LO`x3tXK%t?yMRsW~q3n<3L^-&A-SDj{#$ zSrUg)f98!&-(_n(-(v(I&V5SNu2Sq#@@C%Ty0&1A>fbI)=y@k_Yng zbzC)~iL7KW4`~2eXb1@=2+boz-_l^kXGJ-Rb2di?1FWo{2zU#1SI-&IuqkljhPQTD z@jTReMg&ZK>d10(+>@PZdx?KGH!cjU&BLa(KZBVC{YMT%#TTI@1%uwZ`kp(VbUb5p zU-^{0Zmr>HFeyKR_3*$t%py;mdPM&v9}Pq~fJ_RVadr3A~+yMefO^QS_=!$znjj^Onc< z>Wl@t-cOz6+^wC{+5-H8vIkS#Ffj^bW$q?_WK_4^f_lJ+Q3h{a$V(IeGvs#>R{XN} zYXttME@$2ML4qZD!Su^dL86I3-i2+oRcGS36lZM(GaxP z*~y100$_r87Pvu*J_VS!tY+lJx4gY6L_{tX0Znda-`{}=?+(CpFXOsKTb=f08?)=Z zVcBf{bRdXr^WR98e@W2mmc>9q2DwBIYv8y{$#%8&*WB?V-AcJ9M~a)(DaMG z3XC2-a6KF!ZUj3m7(-hWAODU-jf^niD~^ZfpcoXRjS+z*9Xl8-POr<{#l-8DZZuz| z%VqWu)T07&C1Ow9#rL;xQkCKgw{~hh@FQbm9xi!MnzKsVONr4!%5PlVjzo;8=AI4x zr^43Qn+usg4E#s<=UA=`>dJ3-8o0AFb%;dLk90Kd19{vBELy#3ezPP)g8MFAZx2GH zOn2kTs#=v8)jB)VfSmutM^B6OGjof-$g&Kkw=&f z`(T(M|NH|gFoRlQzs0*u_c$tMe?>#?3B(uCX=A`1r=B$&Oh%2bAWj8#FPBk^NaQ8P zuYboI^670SeQNUIYgc<~3Nz2eN;0}gGIXnA%3RK?wFw^KuwYJ zQIQwEiKx-7CH7@=R4f6!6xGWEj2vv&O(G!q05A+kOT49gV`M!1B?!Lmpj$`9Ws`-a zy+LPf&tXu11(h%xu>c&|QbTpHp6CwHBmnj}T#im0K+1q{`J4Awgj93gPU73?rXuto zjgOT-PwuhD%1ZKT&;VyP<)?6(gIfPyjD#<%YJ{#fAWjMepbx)*35@He&4i;q?~_d{ zsKS7DcfmoQFOla}jz~fDAX8eEYP%ATBCKEFsU6T4`cNVv$NZ0v_^mta7AK;8juVL$*?T1& zIk;F{31QdO142d4w*%(NIp=>caKdPrs5=x$@|nBfRMgdn>M_N8lHz|@9*pIlge*pt zbY%8-uZ4O0Go1%Q+#>1e&~ZXuWX1QcYFB*ITciEut8Kk6bYXkYQ-@{(!mmqBQhr-^ zSM_`S1lF9WFu2y;ZSRrKfhbiQvY+Yk0s{oo~2nwfD`F&tORAhokJi;;AHKst) z(f54OHB0-ACiTUc!oKOMb zzP%L}Vd-9oIL|N5nWQmIhSaR7C~ImH^aY9SkvOZCg1Bh%yI~qfn`MzPd*%!J#0Xvr z1p79~7l}|q*F@yV~nVYU9*qk zJ0wv^|Dx)8@_y_di@Kk@q#4myc>6*TREDX{o^3DhPG+{)%&2AZOJ@s0(jt!ssj?T$c+{dsB+#ub<{? z>BU2KQSI%gwAV$Zx+l%z30+WqhpC4u%6wbVkpNN_G&CdRZUpa(A$@08SXVXfL-o-e zE(Usd`*At2&R56B@my_~+cNF_m!jM9liuQo2`jH0W@q55$D18NL$zjom;zK(iZe&) z2Ai$%kst3G+9aGtP`nvP14h%lVpPl>;et%qDqg$`j=NJ@-Unl*x*^jxhSyEq##6&3 ztRMQ5it{W*UanHCBtrK%p$Y;~D*oP|5Bhuv<)!#SWMFkhCcCSP{Qqk9Y9JX~?nzT; zxy%?g6;x z8=MZ6@bfF1l)?GQj?sq7X8Ks>P4?ysf4BKZC`6dj%d{<(*!?vH?Ml?2Z_Im<&epwj zls$=~=Vz0HBynsz*HD=BJXFgZP-0%Z^ix?#QErEPdJj>zRIE!4$yJ7bLQ)gH_+WB2 zU``vhEdOjC#w^KmLckpf|!l-aECjQ5~|haLLix@gFo9ihwYS(zSdo*x^>w`<%i7F?6^w0L{? zLqcRBBD^x+iX!f#BhFoeWWPEhVvLY*c#lV}3Xai?pxBEc?`mTR6N1B3;7KbxNu6exWWYdX`34+7rfgM~=2XT|y4YdQ_622Z_D@|q2M z#bGuQ3%p+ovl$$i&AVbV>rd7S`(7#D6Dm1st3%sYjTndymUX8FlM*c=#~eIwvz8{G`CBw5 zCFR1wJE;~zC=Q5G(DDgpeN`NS>mZ9scyKrVocLN;?l!MRSk|1;jS zg_vRmD=~k#ITv~@eu45(S{iz9e-f&g(%xhc52KLgNVD<&X-zGsl+|K}EhC$UGXg|? zC`Uf&76zJ(h!?L^p9Jc3g*yli3>%U$4e2@bB1Y#EMh?_PE%wH@f=w}7@JCRNF9|PN z`*^G@Q=eS}M)EOedpu+=3GY+nRWGxwyS%t=maJwzGdnT9m}xw5#d7Gp(QcSVb37++ z=55_)N!cvqit&k=PI>0eI;oP6aZ7#yr4yGV6Jp5R--Sof^i0_dK&+>;hcjB(2Yr5Z zepzcmQ_C2c!IR`stIq~lZ=%mCzm{Ty4c9r06_ zVoQIcm1pli@$PS&6uat_V*=v}V~S)_o#xdv;!_TMegcDhb6RgE_~<@=9+;g?G|%x( z0cMabChI!y4$8SpQU@^z1)_ignNX<(koWOW1#>IB7pk=4J0SwfR?l<_&61w6Qka*xFbdZ)_(UYqPO!+qP}nwr$%R+q&=f-+Qa3YNlpt zYO0cc`sqIBbf2cTM+XoBNu;1?nf-s$b3Uvk+)&`cEAeMRBKDg#CQ5YA`5B1j>e%Yc)dKNz-@Y`gg^E=2VXnotdU+`$V_hj>Gtz&L zx^vYoYxE)>e(~_nY`^8h*^5G!=HS-T;j zV9Mv?FJc^cm)|KqUzN>y64EC1rtTUuMNdOD)_kv)>y(~%G7TSZs2`)lnM}E$GJzE@ z<4AYoRZXz!k@97S0c6kLlXlh(T-DXF*~$?zRU)Uvgk0(vSPh{({BR3Nl2|{g)-FgA zMck;v?|tlPoo_NdL(V8dTUX!48Bge*gI)J<^F(Z+P{pc@&hiLXAKt1XU^0I(ljnb{>@Pw;-kcBJ_MI`gz<4(qvh zL!K91m;=(E)fv}=j($?|UGiR^pPzkK!mIl5%$o>-|EO zpi3uw>_7zPjo`~(sCc_eP_u?Y=QQ?NpS z?}&bgw_Tg4zup{EZ;hl<&%8%+)uR=3Mw7Zq;gjkK_Vdrhd#d7a+PT~3eMRK5S2%A^`1Wqwrg{2c+vtWaSyw1p&yrkX zpDr+N&aS@A)tQwuIGuh!(uh{kF#gbghhk$PQ(vD>>`6c zplvo5v7n5l(G-uG^Fu?jdaLP2eBS=t+3x&4wu3w^QDrsloD_;iE&*kGXo!}!^61uL z_kJ~;J+M(NtG{0kDr>!acB-ckZ0Tq+9s8#a2q-9Mlwr2lD;2Qm8*pIA1pIOSGxiEX zBAf#3H4ZUqfCFJqy@k*>9*S-0nfk-RbZV0&klE04%T1aMb-AKGe<_fZ2>JVDw76MB!x!Bf*VMx_c~x{~Y5~ZjnT|18SbxzdV$; z6#?a_E0IIw@~Bz*Lpd^h_JoO#d13b?J8fuVU+y5nHOuNhP|mJCVofuIgarx(QFfvm z|GrAol95rSzf88k$)iz?a$c6;sCjVbA6i~GjosP7NJ$U%FDC=q2E91L3Bk0J?M#h9 zhW2l2-USK!h7U52m27H2&j8AIMa@r)iiL4CeXxK`UL1sc=#3*!Y)<zwGZ3~w z{}^#|hh%T92xu1m$oXvig&ICO6hiZTEknzwZtdAKo7vOmZ}sD5x$>Xmr@A_#?3iao z#p`LvvAeUCcDCsJb*YduLgDUE`4vkiKmAT*2&(5<3N>C)6G;{@X>fjHrK@WkRJ+l{JkQ%h@&RwD2(Y7qarZSUC6Kq3M(pK>jcWeEH zQLuQ8f=gx(y-COyPEi)C12_2Iwu7XyyQmwl2ePugM)h0@pOSUvE8PNNEL=^U0S)rH zBj`*loMhk(5yZ5!!T%O~5Lt(sa3e#=nSrQZ+(p-u6^$8%@jgU{J15b?{Odza4z<5a zYBHywne<6`2}XQoa3F~-FuMgI!k#Htzb+!&9wK2qC}&Jg)Q4KQ#&0<&k%)o|s}Z8m zUNj-Tq*V;bFV}#{{KWwg1Ah{2MH35AH8XW{u&}ID@BX5o=U@t9meJ*)wVxl;swU2* zYE$ZCSif5HCzF{Ca2q{esr3iU zz0G(NtW#tE=;qLY$km|SS@&CB}U4m@D?E)i^ zOSDszE+;BRYTtYAX73USKdfR}VC8@R!Gd31bQ=u+UiI6Ggw`xBzC^1nqRx4HP(@wh zeGbUjD9&7I6`Neohmn{yX=&9CkU4jE6ikKej2}>OEEW)sZYKgm)%bzJBp=)@_8uh8 zQL+V728M&adP$d522w^GtfJ=emPnY(wk<7DPfK{DGm3))2|7UT{>eFo8V$M3C9`fQ z*>Y_NV=1;~*e6`p+gw;e6DTRV4I2yJ`lCwhdAbEomX8(aSO=!>oLO9+ zd%7B5)Fz$CCw`k!JFp4u-}ma;enPl6de@yiA#LZ;vg7(_jwk=Ldfad#%x~A3)A$7x z?)@5JGj63=?lMddi{u`D4I_z678qPk>Eg<@Suwu|J-`|>6@KwItTW;#3VR8Z4p<*8 zX7ZkpD3*tMywO#lqeqzq4}n8#X7z1i5T9+binY26>IK89Q;^2P5}{sStL*Mp?$x=! zfh(ZEwo~dcuKYZyba^rVxsX;$$FA4RnjQXcx6)47LK$tT{KJnl-C|_hXO^6&#}txPfOTrY zQrY22wiyk=w>5tsD;;lObNhTpF807QR@HRp6zS_=>IQa$odeqtTC_i-iqB8fUpn76 z2zqa(fyL!qUSfkOz1K_x9XH%-z6c{aKjI&+axVAB$1LWdM13oQygs%DTWq^E66!Iq zGPuMxlZk(NO9Rn0Ys7b;&e!1O>Tr;bfr-`vE4OV1kx$z`ByVKQpR5BI?(ckA1Ok`v za6FP!ucg9UxEMwiWQbG@uNqyzm$HLvx}lTq`7c^<=ef1S{n_5`Gj>B*{=RpyZeus zK-I5K zCX0^0m|JvFEVO$St!dq(q73PCvm=lY8=Lv(Up@!UH}$(@!lPqRK^5D`QDTElR^r%H z|NNO2{*|Or!x50cWW37cuu^uZy{t{6;xge|A)4{Z{JIjYupw&p9sGaqRV-{VPq)i* z$|RvvN0J=le5+S#$0x;B3Mle!7rtxx4-ypmp7>lzbmWW1SOj4~-O18D=4R5tqR?5^ zElNFY_j6LNfC+Ld;CGbzQx~kd>y?@*HR5DGeX0%c7LHFbDwAxr1>hD`B?6np;_K}b zqP5&6Imz{w-Q@YVh>ZRf1gIr~Kc^7~lPQ)IFw6ju`m*#Ll91 zF?;Fz+|8qEA8n|tCr@SdY?gVSzxny(sQCYp=|NalY}66BGYzn79hcdV6g4InG7 zxzAjt;-rS99(v_W>bm0$W~-&y|Q7=;;f;u9nB3GeR9`VbKz!SJ(SA#+c0 zKlGW^#}ZoREWzRsMIfFpfn zbJYY3yQPbq0YwH~@R%!te9uqOQGbLYf|4%crYPDO=!-c}b2Kibu&_8l86+L<2$U62 zK<{vf1aEMo(M~y4mivSyVNjc5Nrxj<{Yx&Qmt>R6fto`V(Zu_ei2pPN_PusT3Rwi0 z#Tnh~4*ut`T=q9$s4%X}2c418SkggFVPIHB!!{n5&H z%`@9Y@mfpW79MfCP5$UuCNhu-yW`)4>;md1_^+R`@BQ4mE%vRO^m?oswHk%y>3@m) z85aE0Zi`AoBEK<#EGVayl(WRT=ajM^kvTt+l54gxpc$&@H-|k3pUwRHp=-W;B_*eZ zb`M8zx-zWKkDR9FoHMn$qX2pactRNf2959UcK`%+Hw`k8&K_OxYJO;e(bo45)^v^5vySg#rCp3VpK;-<({%fxY+L0y?k z6Ht#fL~T4s{%8)TFlHm%2xI|QRq7i#g<@rMjfFPx_#=8PUAdoIedP9qQ0oAmNETK= zVNOsdBx^_OEsQQN&VO|W6>AC#ENGNc`b3=@uXeVOKx1gY3{w^McagvE5XC-@4(JiK zkv_`WmV43F^(Yr4`Be#J-B6-#OwW5*dG63H`BiJaf68@UKfr&r)cVA@NZbP|Z!t6x zus+!j0){Qke=a;E#30%8!p;o=&N|49p0DwpV$@FcXHR6CT0PX`mHNBk8tIzFbJQWf z?gVHiEZ@OafSLrv=CuY3H}Zf`*-J?`a6w!Cl+F;#SwDac~o&ny?dZlFOpnl~iR z*|kZz!eImIi6_Ly%~hZDw-ydC0xO&yB&~1=rZ#T8=tD<1@qxv6Ww~h;LyDt0-}JE^ zbZPT62P_&Cw6vmD4Meo*_6Upei#B`~Ev#=`*up1cqn?kWhbc!&z;q5GAl#y1jo#+8 zv3A%A0;M^NCxm>T5>}=>!jB<=77+{_e6`*fY1{jYr?9XP9)~3asHoXii%LpD0MtAg z_^iFo+-jrcWHjO(`oPLpNUGqG@Q&Dw^1iLa{B03Zi9t(xQ??r!j{8d+xB6X1$gPjR zLJ2g-!f0kg5esd9ILvk5PN#krHC^D2Vo28$)e zuez&GOD$k%9d|kuRX)gZd+ydxdMGEHfzIoHm(<#z9Q@z%#}Gyb$jD+ zfzI+gcZFC`6Q&a`h47M{yl;o}1dWX0U9WV;2WyWGg(lw%sA^|!>#_^H$?pv}7GRI>;V{zZ+&~sgz*}$42%RZ`ydk3YflpF_S8lwn@FB ze`-)DRHh&%ou1eCPhv}vq-LJn2@^OtlNGtMYPU~yjO|He*luhGqPnH#r|HUSmIvdL zs~)W!xJZc^wGsj@=85k$Jjtj|bTo*n*Ed1?9&Bw$`m*P0HK-OCG0s(De;iA*zB(Ha z;(jlboM!N4U@BFzXeOqoQZ6GvN`ZIylrJk0a0{Rqhg(sM!+=o1}GKQ zi896yz;-3N1|Gf@EMLnl{K0$!U%QY|`0S+b!iw(o|GOR>j|>4C9ZL!T$C}l{3Q7T- zyj@ani)k^+f2?;Gl~+AJRZ*N}#1GPlt0d?w82qI9FLH$oRdaxoBLn}#Qt20Pg=kn6 z{AdrF+u)>zJ1wPRmQ%DEu&U3$Q|5}2*IZ+1^qB9T1*iFdekkoUZdDI2Kkj^Wfm zI2--gjUJEvwsN`eKM2YY6w-PL#l}-^k2tlu>KHJePTX?EfpYp7-x*}5dR~{4+>>F_ z^`(TQJsN3g^cf=9W^%r|#`utF$@8U@l!@GZ`Zurl&Q(OZC$qe%=Sr6aiX*xqgox-o zu+R9tZ|x~7E-2s^1a0=*Pu{K%#R{|0eadFGWXkG#DTMk}5wA_f9TS)J~HV1+^%VdE2%wQ!IwOSVc0B`HDLK$5fe z1A33p%cxXQ({B*Q9fN<*Ai*#3ruNSe#VavXp-o9il1TfVx_wDPzepoX()qm+ZubR) z*<%cF7Bjs~R*L0GR_JtQg{HC<25c$zPKt-v2mJS>sq%8JO;}4w`)_WqUPFDeq9pVA zOXKP<*GW?%+2Ep8>My^2i?@;i*?Ia9QNvM^CajE;dd=GOq_rKfQ6eBnd2p*RVuog~ z$lXo|pMLespc~@+rv1K6UO`SJ$U(A-*)1o56@7xrzgugjHxDk3j~*neDjGh1_^f4* zaNENl@%Dszdo8p{GR6gT)-?x5dK=z8JJ19@RqQ(KIAq>a^hK=1}#zHU}v?M1)X)y8;GNUv2Flh}Vz6_&0sVkkL zmRE`L$52Wg{jPs#SGn+03pRQS@t$>YoTu!MZfZs&5WD1^+9MPO+SvyR}#{aJc z#EfL0c!lE40_fqCvz>HxoAp1VG-uobj=jQKR9@Mu-Po??Z5dpC6uKH$Xf-YFF!Pt#N1JBEa48dCD7B(8;vCSHl?mJKky5?Sv%tx36eVI zslA_3s%!O2YS&j9u4(EX&wDI>Hn?~o5o(ht%!QmV`yA}%&$u~$?R_sM3ac^5QbJ&N zqK)uYYTJe=CIKnc-6{xjy&DNEO;}8Qc60{qzG5&E`%Ok}J`R}QJ~*MTW_^TIu9DOJ zYH8_*q?JeGxK(BJ$|d;cvACd`isc~>Pt*O2{~eicXzJg^W7{dehhL-c6JiWE2xN%( zU7ub;K*peZ2B29agUVCP-u#d%RfuP@qjgvLgzDK^9B&uyp`NbZUy1q-B^xf(5dP16 z@)^RE%KB$B&`(EcmndPo?kr$&e=KeaQZf<5RJm)#lcU(o;~AJem_FJd_z@w$KJTwQ zxJ|5bfTTnb2*uBpuS42aTH9OY zEgFBlm01QzkQ~D>zXMOMdY=%;^2ZVT^V)TXyxS@uT4`z*7wZ|F!MXA(&pVW({^S~V z{K8|73-+Io3T3J=7SmxRpHZCjK1MuDr{mymJ^&F7XZiK)YRszhqCNPR)fO3=rXV;-UwIg2G4OkdWx7D+pwV%0 z=1WKO5#{Qk%o`PmejHe@``0)Q?17$f{h0`TWYW5lNA-j zJT~jL8WH&y1-<}15oO{?2RGHnvc>|vhUjFDfJv5n8mR^wn>+VcNJ&tcZ$A)#Ag=7L zJDmDWUL?T0wfdQ^Hp$<2xB7G_x3W}b>L`x?uQ&#*e4iDdI>r;>l{W zcGWVSmdhNBn6EDUL;<(ay^5kbopIkV2=-C-c&Ahz415l9@CvBw8j>Db(nGYQFQ8TZ zUIwHk!Mz{*rz`g$W|9cPg|8@lL@7PuvIg{Jlp7e*si{%RnucpzIDUVlHpagxJD?q9 z`~`^!M$A9ST&f&G*X8|_)$-GKT}LA-@V}f#@<6*{Z%tr#Dg=& zg*?TJ-D<>-F}qXB$;!fxoUAkjfYK0^b}P?k(mT4WJE}Val^Eb`DUCr<{n4^l>0r+3 zc<|Hf{ki^?cr~qj?*K4JXRnOq1-EPNOF}Am>=lu-Ll&HCYtqh)FlpAG8q-rgG%BTo zfrrNqVcHIA)x|YzIp$DpQbmTS!X@Z08Q{NsHG+QohNGZe7Wwz>YI1{#JPMlO-{DWG zOX>-Ab>P1Uic8Kf7}^4&uS4|3r=Ciw>hEJRE@#lv#7?F&DdvLodF&l zN^9HnN0KlSu_m-yUEQGmv$CRzkzSd=g6K#h0H;?^d|?r@wJ(BU@`bHetWm$f{LeIMj;$}wZI_ThLd2Ivz6NNBBD!~z5IG)4)h5}Po)Ttvis^Elei!&ynOG|@gkS%-GwE^K*IgI`RIyGS*gfD3s(9O?RV zP5(F|#!=@3C+~dJ&@8)-(P0#EH2yfG$I%`g9dNm|I)Aj>}IT zqh?a;Y})iAY)Zm9?GH`5_AML}d2=Zp_aqqi8l9dJIN}_2a7&9t<-j2J8nEAqEg}xL z$?xX>q;pQnQ+?0@f0{?ZE!j_Q7rnVW%?AJ$O1Ab87>^F(ctF;STR`6C`l7j%%-lOaom~@ffB{MC6ZZc19065UB|H^aeQ-)m^Jk-Lw5##@ zlkUp)?pXVFBuK1;RVooo`{PVG3+Dx`U6r=Kpjr$F#-(}O)Fpoe4!5oic}W%g6@#hW z2x*_2(cTRvwy0RxDh5U`zc7ZboP);YoAyt)j$#=hWC)g0D$S+rdI28#n6i9VN~r=$ z*i}ZF*7l}7LX^-M8rZ`cVznj<5twg-mnRZmRG9g4=Hdiwa7fwqHGf?kd1*U9&k@Kk z2mpQxI>%D`&p%e7yl0nwTZ_k|;*Dx7v~OE~ihT?#pe9qjvm*1Wa8U8iMAk}v`suf+ z7L2w=0H_Rw`1sAm;YzbI@{h5WCKVBpGQv|tHy=z0UjVVF-%Xze{ncQ~vu`vl660vm zFi*H`Y;zqAHZgPrj`S|b0~7Yx$HgCBgd3_738drh67`0ZG%~51?i2D3`j(u{Mdfxd zLz|yR6VhRyS6?*;$MN=W_yZr-#AW~fRb8%81-zQLJd}A&q|epGJZ!D$Z!Go)(z+Lh zYVrExTW;paDaF!hYw&brqMQlHXB`ljxNaPv&+x!8IkaZ2Pab}Q94y-x^qGJ!C?ILY?@D1 zy4;xY7Hdf+R7L;Rvorhy70K+u*gZ~q&toKlE~3D6v0+EI#?~YluYUq&UT+A~H>k)7 zlIKRuOo?SuuXf}v(9Ky(dnd=TroWf43AIa?^d=Y%^Kv9;C%&+KBKG_b2zdsYw7m<; zO0E+;fB$MzgX9oRg$fLg+Tr*18~-TLI2nAM)OrpIns=UqG~TFY&h?rn2SghP=T6jo zUw9U5e#e{9L|540cJgSYlq2?7HJEt3A@JC!g4JaFq^ToC?vZ(B_K2VPdo!E%NI@al zGcu`u#{3|$0s@6na3{og+7eDCbhNV;=cWVis*l6_VwiHJ` z6mbd>m(a3eeHQ;Np!*1trq+lsvu|}le4Wvh{odC2fTywxBqCQe%Ggn_ zP0rW#jAYqC%&$ZoHr%0)H`uo0O9He2VjZd^^5pZyMJ10<$Xr?8*+EaU)TMxmIY4N; zJxpO^iG)_yXRgl(s|*r?16n<5iHWKx7F2I9f~d#rr0xf=AeNQ?wCFU~KM4)Ako!fD z-2R2$B5yrbu>lor-%VFJ1W&lG^fpMbEtcuk1swq|Y#;b`6J!2s5bm&p3>Y?y2DpS- zEzMC5*NeajE^YH15f3sh8CPlO;n z4nOk6Ca$w`rUR%fG~P+`J{DpViQ*a0!%|%!A#$rri@M6bdpeT6o|?h4vSOK)GcGLZ z%`NLMoiUy~q#!(`+`CD?x>;a+vnzxWs!Zgl_14#(6o7iW*Du&cwllY9JV}4r=JXY8 z*flK=UUM@ulPa9bRdatR|wWB7%EsOSS5G6YgsQ}qEuPLX~u)Q)_M$C>Z zR`}k}gH$pLf8FCQ2iCVkjP-Z{-SbDwmzyX@47R~i5KVU!Ty7`A!SLP_U~8Cp4<>r$ z;X@ye!ykgFN*LqSO-b_AZV}v^C*{ctq2^WTp=Y6%n576;+kS*sb{ny&W8j?)rld*) z483L9Zf|Dr1bafVnM_JEiFc!?Zw(<;TOQxOK_g?iK0aBgn~S5rxC zZ~W9`%w2}g6-(*$bw8^Wxjt=|EI%=V!Q<2No31@LfN%tw>-IMDN;|<3&e%WC`%y)L zOU#i9-`vAu3@1tk97@J!AF(kb``RzI$+nS^05Vi}QZ+a&M9mK#c=v!gZZm_gQ9 zsbK7oxdP}cV6KP%&=mtH%LgNByAV%J?aTII(InA5$u)Zh(yjOmGbO5zXLdbD ztUF=%=L{hNJfo_3g3E42Q(VeU4^%bLe(Zv-tH7jYyFcqBy3Q~I6oaGQXF~g>;04iownQEmAi@9Qy~>u)CQq!v1Nn5WrfsZaHbhAp5&zPv45-iF>tBi z=XcFX>$ETcXbaF<0Bd}7Ql-hWT#v9nKd!tL)zx8pBH6b_inG1odQ`PN2j5@rUhd~* zPqrte|NRG=3BgJPM;zAdNl@~^*&!5Yt}S+QnhX2K)?jKE7|oJ^UA5xon+!=E4i5Ya z9dI3%e|tk2ZW^;+`6^=_dV(`r?6Bp2{;*QPrv=TKGC1slY){EJAJ$jgvu%`$W1ep4BMVcsJiKHAK7Jy%}U+I6vl-mIgj^$RAyvdDe(>zhcg&Ot$AO2}(h%4u8b9pB;wX<~>0lK)icoT~uw+i0b> z{Hit-jzm#J45_>ut;Wc8a^bjkS|oXh`re^w>&u-v_gB=c19z2U2`m=)#wk=qPy7&) zR_LerpElz4>tT7~wkin0?3l5&l_^{LB;o|${U*&Q03}eTIhl}4yUc)I-7aQXf4_!^ zxW)8+TfK^sPIdAnBphEi0bQH9q9O_%MnrI7Z8itZH%B{#=+FR5T7%BkJs7_85iXID zxH1g#+h*NO*^#nsg^W0o4CGsco17~pD$SoiYtA~j+i3u10v-w+mE!k7 zb@wO9j~@Zy3|%Q?Qb{bUMtcLH8!r2iw0~P>=yU*;`V9c%6)|qGzD$ zVp$!y;|H)(0it-)ULFc6PVq3~Wp-sz>0p_2?NnG>)wyFfPl;j6q~)|bUKko#sFsKRPV zp;SWsg;wgsC9UIV3_H5tVX`eoorEVd`7bGHI>2@UFGIiI#4Cu-bb?$^%LOd9<7RZ#h*8 zOt8sRXaPeMD5-1dTBJkBXt>)J33;4L&|l_m@;8&jAQp>8W4!BPGx#5J5Ks!84%ml; zULlovV6K2>*8ZsB#CooB^-~0pVAAkfGy|%4Yz)F4Oa1*9lMh>vq=jN8)mb7Pe9gr& zA4j0k!^ObsEojzbT>Zx*`rQT<3X1W5?w9j|GP~Xjv9aUm3J6k>W}L850zm#*ZcSBGwnBADxb;`u!@D%B zTs9`D3zZ~P@{WRYvRh2d5!dNTG%+KhuqTze@?`U_T=|ES|mvq|f2|H-f` zbX5o2>9yY>%|Xe=_lKWUqs1`lhK@#A9}gf`)fZZVNtIiI4`H-o8U$CqVr?2Or?h{m zbvj>9%Pm&x0@JO#Qk}P4p(928&kNLBudi+9=H}E|?Z_Cqp7UthkBgvnsF-!swf)pA zb2%F@qKR`U!P}dwL(;8$hePB1J0-3!@%G&6q{g z4b-ZU(NgTqa)`&JktR0rCDFs7AS7*3hNhr2fxHhj zSz!vp!Z-LIK5wniR5>75l(ES6^j!q}jT9q+fC>B)DS8|_X_osL9f_q zCLAqgIR=gh%oiytD}_jCU;XMHG}-?b^&QcgK94BBZ1n>W-JViQKL?&(!_F}srDa*a zDAYSpz1$J>05uetRV$=Gsc?M8g1_{-hS<@rFEx{2nMgQQCLiIfg(wPE$Z-mz=4PXl zEzn%b~)vSJxMz&9A;3wYkmbm4(^E{0L7^y$NxW?@4tjBdPG$k5c zcAILomc>TPY#@*QJZj0ditu4Hc2w}~T0iT8)ky!<*bfJPcdf2ATujsi+Q}4#4lT1} z!ocjSfb#AbAYk}Evb_~<4wIiXy}|7mMmLn>=fXb@0bPJ=1WYvy3mihMR%}WW2PC~= z3ZgoDO71D5@T==}e5>_lK7v+9g7&!wYlh7=qasz3geSc}mYSItz4k z0IO;2{)+l~SayDOZO2`N`lf9$w#VmfpkP_UqF$^r($XS}RVpFoVtj=G@=5&~eud~c z+*rEoB;pLT3B|%5sr7Y~ZYSvHjg2Ky#&P%8{r8>!=E$Mie(#oty{1v$D<>)ps9GWn zwf&KPcu-hK7TC`7F<{DY9n;qro}H?-Ovkp_Ei~cgNp+dWAJM>$Zwy*q5w}1mKW!G5 zhac)sRHEY)9f_CC*{*{GkRx7I?MM^zq5=ikKBaH3OjvF-1zK>O^r!cVW$1QWtxh2G zTU$LC8q`MeQIa*jtps+>{O6SXZZ2izEW3x*xm|0*w=>9fj|sYLe@@t`!curaFH6d; zMsoB1FwsOrJsyH*ly=s7g0-G!eWt*x1Q#pWs<7t4QrvddwEHw%#(oQ@-Jnn5koM5)-~V{i5tcsBx_f|*}-QhH-2@;O=TxbB)`ZJfxF~2O)-#xYE!=K)TJ$ip?pwK{C%}p4v>&t8N#lVMPMOG?Kizn z22#GW3Qu^0n>!+ul~4i^x*}6Vpu9TnJ9#S22Q8j~ix@q?G&V476$8ol%fp z`RCzGH8NM&D>bTlH?J^IGbtVwig0)3w$*><+Hjx`cgFms1$>){Xsvnl zHAG9n%?$AKRtb;9?>@HiP^ChxmL+yHxa;zw116&kT^;eZ{t9avl6elj$)(7L$jbd- z3iR2eMyTTXSR5#Vj$vYo*ulE8XYv!iJPQVt*YmkTfS4WZXe(gj?L6|f9ha#wtptgW z=*)T<6xm_hQ%!2zt-#08PsbX8L3=gXH9p?e{t(6Mm&AzMSaFrpGN;YXImv;I?$H>B0im9 z?4Y<1E#h28!Tn_)nGrcJ*x9uCx7cCxwk}Ql9D)Ta>qut@FbbektFD&Wjsp_DDHy{B zGix@Su|D!O_JKT4JKD?H)mn@6wWZL9=`C5R4sgWg-GoMqy?URHlOTEEoYkk{+uNT( zSBa{6oa8SXz&Mt?NLDMhn`}iRn#Mp@6}R;_x_t|aE12;r-iA{+R1)TKfNQM z3t^BHhi0=3V>0U1!#d_zZy905Pi^KO=WXXl)Kmy4jf9-qgnF0^DoBT$V-UVE*8H ze44(3?hsY#{#|H-j2wWWNWcML1XHW{U+t5(OqL%3E4-j1(=!fj#eh69fcF6nJ=-(L zX#|-&h{f8-n?6TEiu88VxmH;@H!O0nYFVF(UKIQL+@dBIjbA5ghl8Q^-Jr!nDLwLU8s&?X{ekjh2iIsn|}$M z2~1?k1KNHZ)fg2BR9tqTGI8#LIb;iP*wfOo$7dQr-w#gk9L`5d_xzfd>TS&F^H$>A zyqsYCe5B7J@EVns9oJgh(r!6XtKXeMW~(cX00lQNG{u>ip)QoyVy;I57k>W<5D&V| zTzujDmPFGL9z(OdYPK=aPafxO>@#3a_1J*U1C)JRdWEJM+2(Ge>he3t2f6l&-XWg= zIjLt~0wPbgG#Q1B6{j7cG0yKn=U~R;#e8@qds^n>Mhlzm%95#I$mRZJ)&8k!ezaa1 z_=T!yqr_2&BklQU{4r3Fh4pte$9p>!FRvM5EzlGM6{SBMy^LE{H)ZMdG|gcfaHW4z zLH=^oJcNed*P@tkCxZM>kC*_=wAQ~p39`|R98G6OaYiiDk>dt8qum_KDxfuW4MixB z3Kb>}c(uzE{8$G7SJ|T}1nI2!p}^(`VqN}g4hF5&NKsnIKp06f(B{pcuk*9EHmS_0 zVb5{G$Ku{Ca{t!A9_@i`4w# z%ysCPNfBor7mrsxnVOpElvR~eF*P71g~W8U$m&t^i1iQ&70cO}(TxykwCbtv;wq{g z6cy>9w8pfgKEk!ops;~>jG?H`2mL?{j-l<*M1lxq^kRv z7`+SYmmGzBfFNyQ{mWNdZCLDev{MOUYXe$f^BUO#mFmrdZzYq&a&pcP7-ez{&Tbc~ zP5V(j@cNxU;38Yd62-+abJ-{*I_ZqQI{^Rn+jG;oWu1&a{uyw7{prJYZ=s=fa5wJ4 z;xeLXw=OC?l5zF~{tRmdY!ll{~bgKhfiD0t3;KlFZqfmCI{-H@%qs zuD^W!`Fxj8?PV1dz@cQ8wwO+-BS#LH^5)-RLuO)mmy+Z3`RZTiRbS4Er)$+UvWa+A zfpH*dF7F_-z4NFcQvkhMOx^b&;R@LHA;0SC@Winr)RjJmJ@$lfr)N&yP0hB8SulFYd zLql~|o19hMpKkQ62XXUwlant2!!a{S-IYw&Ht8+xrVR2zg^~&sBkOQ)8oyglBqM^O ze`%csAqqIft(No}@e?b?{G)MQOJOd@KTFuXgidSP%U8brJQwI-E$8EGv?q5P?A0sk zYRy^<=A@96l`91ZlZwN`gbv2+wMKKUL++}Af~AqWZUUWqn)3fz*ZWAQNG&tS`rzT3 z_b%HG7em6lkHV{xB}EaXvU#r4ouNL(sJCg|uOBNyl9{!kYy@ggAmr)hq&70c%(ZA} zIvd_SwbIxqTNm${a}?6MMK6RgypA}v{y~fmugVJU?+3rRikVjYdvND-1VYddR3!OU z!#5~m;@G!x96mk5v|SZ^v|RwpuKB#@N{=JHi%F;;aryepa-C$N!4} zn-_8U`SA$~pPjYCW_Crqa!%6CCP|35IE3a6V8cb*>>vWjD_tz%@r}^(0RVcaCOu_t zIrV8bd?uiu%Khu3>QW{6`}rX!@wkfl&~5TO2Gw+$z}m#OsnZmzwW#r8 zxbDwab1m0HbQT}^;=HGM7ApUU zjE+|mImKV;x>Hp#-cIa&M7SCvWWUFT&hB{-Zs9<(M}-_dy$#>KAD#$5XS!|vCfK`o z99`9pnq0fLzgBR)+53lyf3dOl_sBYZ8}_Qe6)0p5HeD%(t6RSBgG%(oxw~iHwx82K z2a5bOd0mW1cc;+*WGhxAss1gBe--{UVIa1yVwiV3{1-T6!ZhK5ecqqi#ZUVYE02UL zFNO7)ZdB6G#>)@Ipsj*AKh{soOVI8M+&u>=BzbsIE=lltLc5u0C`%JB*X=-y9;~!= zgEKx3i$hc?^5w=u&oIS>>j*((vml0D_VG)Atp^8iWTpB;Tuqzah~LzJ3FF(#w*N!a zIR#Yq{$0GOCQh1avh7Ke&B-<=+qSLA)@0kB?8&xqvhm;j-i!C5n=U%1v(J9^^Q`Y$ zpOyY3?W6E;(T9nIC%ARsA(PhF^f^^RWG#(V>HPu%%m~yjdHb78d$laOC@hwh7CSL- zC#d{4!95X1!6{VyxUaifHlE=jzoaHvJ-*r4Q^OLm{O#ztx*<1 z$@B8_V4=3)o(nwg=xkV#3c_gBs7w2ulG`t;axrd32pV6`77t!E7nfeodfH|y$QW5k zE2fD1aa|6rhbn~Av7<$amb3)4zriDR`{lIeN%Ut^J1(TDMz`&Cydi_%OfIf!g$$GC z6xFOYhjs55Kb{1QjPQyiTf?elyM=Kzv|T>5lTsk*W}8t|M7vl2Sek;#70dd#hI^$p zKYjhaluXW*>9@P7CQG{2Wj|20o3K3Tdv3^g6B7fVg#<9f*CZw7g-4&?INY;vKSA&C z%&C+8Q!wp*zAF0k$w>qIt!dSNZE;*7x%NHKD29E7sAKDQla}?ew?A-N7;uOGk)C<1 z00F^}z&j~^i=X$xYuqpr|5ECnrQY5p`E;;9rZ!vrq_<%!OPr2!rI}yYe!C&f|A&H& zo6kQ2bSl}~t+#unNO0>O;~=V^WNf04mAz8QdxKW$qwQbN<1(qD9kr&%k7Z|#A;E$7 zwlFEWBzLQZg&s7vvl{ge>F(dfHo6ySOnFjZIrGI3(B7)gqjq3Q&~%!+v8Rnw;L*9I zP%`zaCPztv9EjFr5D5j>o6cv&#|zba$Q|yJCirP22ticSCPIPDZ@UZ2J4R$#Pv9m( z3nK-LSbk@5Jy$aH_gPSGU^!ir9LBls`IUQm)>N}FhvK=>A>CNBT(R2mWWDXRjfKsb zfQKnc<#=Yq4VcbDsHs?=r@<7K2I;x@oxC(IYduHIETOug(OKTl2hyM~G? z|Kr+sN~iv)A5EiMQ0k)h%`USpGLTTS|y*JcdOfS#xDK6KCeb4(_IZf6BG z-|UdzG|-~<&x@}99h&!y+

egaDVx00F%T(VE(_ae2N20<;(N!Z%bpEGWDihY(YJ zcqQUm%E^E&f(+SCE}iE+ldV^?$z=eQwKM3n{OHc9gPK>Zf;nvyuV7PAU=M!&j650V z4a0<0m_OJmtK6FguI37{h?7Ud1HO5MB!IE`dqx%gWT~Sz_KBL=PhT0>=$$^$r4OO; zLFo{}s_Mh?Ms`(VbOc9k&WXG}{t8jLylksz(VF5)fThAyRsSb_pjWe`-Z+_xy*7W- zGvEqc?@bqVgy(z5a{s!y=n9^1Ks7oHuD4**#dNgKwX&9c9t~1vu1-pjdpjz6n82g5Y3ygKz*d={yU=9q3!97}8WF z2bSM2;O~HTP@BKYFPP5>0zv=hEkZ#d3Au)rFIDo>luB!(f}2`{1t@Al!C$sEduDJd zylqh9qV|sd{muw#Gx9 z{752f|E~WLp-Lf+y&YLP&ZQJqkeVtVCD=D=pesr*4l%AEL^WyUU8#Lw#*nubOhNpc@n}JR8;-ZM0AONwVhpS#M(a$UiGHaE??Nx11qvnd!6E z#n-@Fr{N>RdT}N=pN34$nEQo425($QROTTaP$kvLpgU%>siV_9`sT2Bf)QPLNbc%DrIU z*r0!OtdXrv-5m)nT2$rA{3JT;ftI5n&8Qu}I^Bz2@B)8EK1HEb7O~Ls`~LKD<97H( z2@dO>jV=mgjU!`9B4BLe&5F^{;K#sblIx`d_w&-t^5aE>6g>tvR}8k zzrIxw%h!19CZZ-PYOc#6QRkPO7l#gDjCsv+VCKyu?FB zkXqT{#IqciN^Pw$ij_BP4Rf>3R@AwD^YLx9%z`x3|MsCyGe#2L5KFKJdcCM^-O$JaDwvl{2I%i#?PrlYowSR#&?lQQ1GeJzWb2%-a!jULBwIu!9oQ8u^xo;{41iK8c}4B_;EF zweGoQmY|DKhOS-UqHeEyfQ*j*6?g*ltiWK2xgEd=Jc+=z$}b~>==F57byC&lmTJVN z9ZoA6QXz#6mL9Ft`*5CWy;B%M1XJzt$&e*fh$cHYvhp1{VP~+$41FU@ZC~8WB~?i3*HxM$DxFGdHEx17BBr5?n_R zb$n*61}f`79a|wmGVb4ejH0YtI{@XU%KaU=tUnkqpP8F;Fl{FBHdWKR;60Drf4Z10 zECQ05-6(OcjTz$dY$iq=NyA=V6Aw1_yu^w$Flp&Bmt1Yt3uyv@tx@g(B#BT-5nu@i z@?Juw=?oX~sfigB2aerNIEPzEuK@SEDNvFPIFfreBhr7G+#?nxi%jh0hc z7nfw#-N*ob`b+ouo+L1`y@`CD#j93U)}NRVogez6eeUu0vA2^3u|z&2>6KL#9Uc|M zK|i40zCFWSIdqjC!4jRU{~T^_IEI05;!uRAIUaAXz9A$i=Nib|`Pyvl$}*4eIke%Q z+A#St`>*whx#aeLi8fp9{Qy4a12uj)o!|2Ibn-k|CFKawNUgjG)#O$#R9Pi`c;%FHc)IwnZpl%@GVW+n1zEz=|l;S?xQ{`6}dk z5z;6K=D$-OaBxpUaNE#n&xFgrc}<45rd^;f`e z3KR2EJxKIc&ZjVv@Oa{8B&zEk?n4rTQliwEtC(sOmLjmN%%}%JzAQN22g?oj)SZo0B--c#j_3>~W36JYvuK7+ytt z@DksvpgKBml7T>?EGymA3LSaBpBfnS7$!;H{h&kNkHi9@vXzpzwvduL5X!P3%0AIM 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 DoY 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 KX~(B53j7~En5i8A literal 0 HcmV?d00001 diff --git a/docs/performance_report/images/min_detectable_offset_recovery_snr_100.png b/docs/performance_report/images/min_detectable_offset_recovery_snr_100.png new file mode 100644 index 0000000000000000000000000000000000000000..3c6b39391ff393d1fc07708e1ba36b481808904a GIT binary patch literal 169928 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 CY;Ecf{J?hBF$QNC+13TB5 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 literal 0 HcmV?d00001 diff --git a/docs/performance_report/images/noise_sensitivity_pos_err_vs_snr.png b/docs/performance_report/images/noise_sensitivity_pos_err_vs_snr.png new file mode 100644 index 0000000000000000000000000000000000000000..6d6393cd5e5aaadd40e2267075f585b713768b37 GIT binary patch literal 167399 zcmeFZWmJ{z*F6fTfC!>=qo_zpNat25rMr96-Q6ijsHAkbLApV@1eETS?rzxh|GJ-F zyzd$3+Zp40I>*5_Hk&)vwXV75oNL{N%E^f1V3A>=prGJLtO)_1hEv~jdFGkD@`Wba^RW6jRY#>&jY^u*NB(bj>F zg~jT>pJ2AJH(_bfbm{{~xo`Vk-2nxK7!P`(nxqXWprE3ld=Po7A4!r|NUJ*gxGro#yT1N6vrV+S{W} zHZzkOzwCF+bM*F6a*{oh>bDG}Jn%wtj5_t@D(1+jy4d)vc{PcX!m<6IVE)e+>)Sz1 zca;D6H~1ba6^-8g|NRa=+2fMCZy){lEAV~oYW2a;Zx zts;hF1?qH&pQlq6+&`=pFK=AtZ*TT)P2(TvwNpLUS2?cJ{i^!!yVu|T8Z0Hje1uRqIXMYe zyu7@$JP+DYlAXrXIXF3$1sk)ovqwVq_kQrD0k&oQ!=}peG|IuRfN$ zSwY^MHT7?f=JT#4J0u8sT^R4(rrb=8jE>sPx~=L+85puJOi zdvj^CpZ0XW@PRUJ2@|J>d`SW%)rs8Qbb zkl%LNs+!GZR|}=6c9X$#Zm#ti{@u4~KHg__bAupDi|Tf}9`bLOAVQ8BQ*US-we?jq7;WEd&uCf;=mo^S+Fj9DgiM z@s=U>pM}cHFPbV?lA?`o90qt!1mIcBD&dLWzEzDhFd>*?wBc&iquwbZPoc7v;ZV`cT~kKtDU z#ATgS9=5wRYlmk|w_YP`qgP=M1&`&7`%|^2(gZ!6gT&vvNpxN${4CaKNG$eTVMN%C zj*XRpu(9UKNLdh75!Yq(i$&xm$I>8 zX+pNMAm=e)zoE;Pl$6}?M(&5edf-ulT&w3|eG4G@yGuK%Bt1O%bCtq&s-`19u{62{ zteQQC-JbWOLLU||PCBfiq@Y;#f55DFb9D}`acXLcXCV;Z_3EH=d<#j_K@!QkN)n^c z1L7;?(|FVmqec)oIXTr|Z02WeQhOuy!Pz;C`;yfq6#s(DKHqg|>K+&vxR7qe+^yYW zmf_oYo-LauL-Qp)Bg2o^Vbyj-Ui=_{`pP#oH8ro3aIJ(VXG_w=58yl0$o$9q7_WosDA7mSPgqe1XPb4Ks z)}<V@ zuX}rY#psn8_yLHCQ>qqdmgv3B-3D8q!^+AEQCn5T#cnqAeP{{1!&IqVqSx|syw-N% z-SEhWlDVR$riHnMh2$kT#%c=&HHFjPuP-Detag7cJsch!)JIVSzu2g8aBx;9P0}bG zQaiKi>ZU0?_gfH+D8myIYNbAZ?K;1`%V6D{_{MHR)(l0671WgoR4JM-blO|sXbh`o zAa`oMahQEY1)2K#UYQjv|Qu<{&WkHQJxm9UkMPMUS=5!Vhybd}f@+zbP>&lZn%OVJ$2y?5NsNm}Ku4P_&b>^De4c zO_aZmP#vF{v2q4zrO;Gm6~C%PZ*((vd+D=8mDX$A`{!kvmK}_fgF~tQB|rt;;o)KS zRe_kM`0hOqM9ewB*!n)+tJ$+glNbdtdZWa|M20@E3H=b#xwHIJHY%_q#Vo8)j@GlH zA}5P@xZ`!bYresJyf;qFO-+CNEcQA0q#N#W^}A+gdz&Nrr7V~4c{7F(>*mk8y~aAn zl%}f{7RF8gC#-3=S8I$q(Y3XFaCH?kACT@4dSqQt?#)7I&UjIfo681Lo6rc}U=qio zt7ERXQ|=`YDR`=OCm~u^$gPJoVTHeiEr}S4*T3VWL4*^!g zdcbw8{jBkbm-n^7h$6a)E`ZzSj}p3|OI;fr9u^i#TN_o?UBQ4MTikOlu0XI0 zK8{^n&fV%PSRHr5ZtNN^)Ehl{Unbk4fk0b=ohEQRAdHQJ!^Xk!>kh6!^VRv$#?H

mk}2i7p-&X z7mUx&rrm8g(*Xy#bLY+r+1MwTuD6$S{Q$?_11{Bcb5cx7MwVGz95t@%lLCc3Q2#e^ z`2SfuqOfg76+q4hEZg(e*4F+ud=34>a}hsn!gBS1`WD&g zw))NFJ#Dm>+e$3K>=s4zdG!uu>buO-1tk_`G-{Ri;WW@9{~9vB7ze1){W<@VZRaJNBVe{u*2Cr z*M+GUv#764+e?XcT%W=K1gx*G&ja`)otc>dxBazyMXf{+wQi@1ytw`l>t%`~o<2#@ zxNF=iO%;v(MM>QYJe$UI+HX?9EiG@s#k%gdV4U}u2nmA~9$m_jP3s%URYd&>isZNl z6$*4x6p#X^Y*~X;pjN~&srxI0fgEa3x>=&WO@IOr7e{mhO3~-;mGzw+gdE-eYLbmT zfE+teD6GJC60I3u%n>@tmDcept*QA2#R~<3Jd(5PpKQ zd(uE%A;%51AFF`~8E=l{qO-nw^@c=Rxw%zERw6vN0fown zoQuI^>OYc@e+~+p-sq2?r4tF51)bDB^^S$3G=ZLT+|c{Ey}y^J!5+Mm0QTDvV5mxz zm8e{&GN~DZ`?Mis6A|*6zr=9qdMI1aNgUiBgsJ-mZqz+`)vahUdMyztmVeN zWG9U}Wrm@pOx@pyH`ubcFwoI^jyHyJ^sH-E;=*c6cYEiqcU{n-qSZSQUHUNWi;@Xo zQs|WN-76Ab5>>UGlt;Nt(!88EycA{Zif%5OZauO(8`$c%wDoI$jdJ^`I_xgDFn~<0LXe|^b zlmwhut2*l3sP0 zGliWkg_E+2i5{S+#kK#lo>45by42^t#UU*)$~BxLyH?Wn@D5$W*?2r)jYJ12o{S9gfe@zchmls((E6c>YOE^ZLEA7>{(0s_~geob&sKVI88cgn=eOAx9$ zB{#(%4$56@ZA%CW%QGq}D^c4V>KbD%>2-XrPqH>21ijmE_$hFKRrS}U1BlvI6QLtg zicU~wsJxElAx3U@v5`~W%QekvF~-E)h+MS0rt1EXGyFogfw8#WK1<-%dq04h)$P!b zRyI`%AmfH(BEAfd-%59U{HDvC*BQ>PDyXnZ9F=$vVNgUrB~Hfb;r-#nF5y0@4l6L-O>mOpae`SPcY2PyF2bx{?s@q z^CdcK6vZ=ua@-Gx$wF>HoRMn12o$)5hBuLZ}=2YFV+l=^`G{-B$**Q~+#x z&+9E+jLfrRAT#;%ybd^PE_drXy`%vfB-7hIyLx{*>tO?wgj%IJAy7xS&^}bJFda;I z@J1<%C!YM-711!}r(FLPz+@@GhWjFcfRv1yyy{gS63ECd5c#gOo8y$y zrkjf)*c3lMzhoz{aIAW6!sG=S_f)Tt5L@lk525S;1PJg^Uf|%+fzUtzt>wB9l(fxR zmSMSm5-yOPTv`wJ{pu^nyju7vHI)i02(4uIeWpPZJk)P%i-l9CZqX@Tk#L_a@2yS?H?3EyXX#hTVNLBQ!rr3R%_ z0Kf$xA&RQ1fHz@8(@JLosigP!W7>(^9I_E+oK#8|=~hp;*hOmduzRbcwzw01x;=R{ z?sKhb=5u>}wg$xCkEtqTV$3JPQL1)c?Kv0h7fYc#;3033lJx+`X4;|0f9UCg4AXTF)npT z5R^A{zmF24h?uqBb0r~~n$mzzQ34heVq&ixjbcRVW@l$#aRt+)t|^lYHXU{` zz9@Bg-afv3b=0q0JZ=bFvMs^LXHfz`#>Lq}JP6Rz*C1jSmzOoyr_)ezn6#>%>9~IO z?jY(h{C?(=ymg;Ws@TNLOfRtEi1i#V^uADEuZ!1%V_%*5+;WRkdvSoGb#;_>yL@}y zblaKgvHJ(q&vqQD{tg9I)lRSpJFm~?bT7O;5C6P$JDoHE(jO3lPzcaju_Zfp$%Un* zaXfY^i6Q5TXYu1R*PY67HiI%mC(@ClzdFLl|*~2qENqkuu7lS z55eZ(jc&wZaul)A>o{D6LE)Vp_l7VBfz)+5Is%E}KkvDW>V3|;b%BCN2h?!drYS}E zA+KQ!#$Pp>-szU$?43yNkQFC#2VGs;mU|Et1HL62NY&c9I^La%;k=?JNR>HZU=Ab$ z8mI;C53)51)Jpv!C+)jJu7cs18o`>qmsh)(0>KX*@Bsz)WAHtGf&Q$9hLo%*A@?5m zT3<@{Jz}k9DEQ#OZpVY-l0tg0n}ettV7hRbOObyXO9a;A65`r`?CfG6_zT1zZ&*t+ z82MDlI|)^_{H&&#w0_!ZrHKJkBGmVvenRVX2SA|6u|d^-;N$Qc*JYaYG1qPTFYzp$ zev?4(K)VnyXiSmT7T4_l6@pGQ%MsmF6X2cUO^mI%gK&Nm^f*ONGlAPuMOu5+sPvMe7cJ}oKt#FS z!oWhpv*!t~e}fZ8;t09ed9U`T={m7tka*8o-mjYT_V8sB+!A{|hK9M~q_Ksg<2w(o ze-(Jv82_jXh$=-c0Vl-&>t}hH1J3hla6R(5?&Mt+X2Zx$)h3NY*;*h6IxIDlyFu8j zv-&uJ@d<1(m>v&S{!c*P6g!X2$wS8y0Yb;m-QJv8R*tG{QJiUt*0@YxWaptlGU!F= zF4#wN%XU3U+)+`U%g<1NAv`znBSsU1w)(+;k`(C5SwOAs>|gKsH09lP0j=2ypcLcD zg}lPAv+KOa7@}QS++9Jr2d1W`bb@h>8v7T3sS?V$ z3EE%)vdZ;Hw2oldvcmu#Uc?=k+20Maqie=xPB3rw%!|2Z84tzzubnt}byhnH*buhI z&H;a{C~sC8vi*TxHywrJ@^7;OC3B}4l#x$cwKg+vG933B4?4&R>CHu3S(nSYnaPik zi`OT>^R{m%R1Nni0@ckHVO9+JSq7QKL? zNTS~YK*4|f@3o2r#1gyH4hj6MKXr50|MUi)T$EnLH(dn*s}z0iY|?$J@O=3tOr6iV zJ&X`qc!-Odq`GA<7XRvp-3sKSIFmg>{4ChR{SF!)Ut112$F<7kecWz9xsm}yNKjCa z!fp8rB6j(S2HO@Oe&2zk5EmCGeaJLP0@<690*CLz*^)u^(sG_OA{1)?^7q~YB3n?z zVgjS9!yu0q5laLt7TiN9uMIEi4gcWHf*g$xOaTSTBgwG{$iIx3MX(Mt-@UnlaRDba zE!^1MT^&)BeT9%(wdaLQcBl~%SyPr`q<(dr0~4ih2e=6cH$@ACpLo{V<3^x7Bs)); zL9#zdU<|@%;OIT{l?Awbb+ra#xt{j{dXi@)M$r}EP-pmOzU9xt$aQfTRx_x$ZD6sw zp%|Y8z4HU^dpJ}Bdy;v}Tbr+bWJSKS06rBiq!1)vNbT{J>?G?&@HW|a`gNf(uml(p zml1?)sxrWP+4H%*JO{f+_ksctyT{;IOrYt~T2}D&O`Q-4oCkO=;Er+1P5M{67>k)k zy#P$FYVWxdH|{xrg8Z75RW5HDESx0c2#C+z639YG*)WY>HughF3{~U5H4fv`9vfiQ znV}K}91Sl~GFy;x&~*U^O9%y=)^cQ#8bU!3vV8i-%o}CpcB~u>dO-Zzq>n;|cZC4d zYh#r{4dpyWF-&Tgzjg@NNHVC7s`c50RNBLZc7y z1o<__F&1FMD9wP)q>(2}8x4tAV*m}S;P&V%)&Iv)27d7WILe^Nuliw7kvM6cbG}k9 zGweA}5Wi=3Ah85~Jbx_WM-J0xUOQKIm;IbVxPeA#J-tq1x;R-m6d z7k=Kz=zSA@MpnG#RmTh&Yb4E{$Tn)Ka%nqj=B6uqc3|-iZ7JWlrN_JmqT%FcXH@bu zM3@n0D*&7MHh(JTt9%2>HgD-c+khuHWPz(s&am0=)RZ|>cV5B~AoV{MCrVc+u?m_;0(sDGdks9ztP38nKe6@t1de*x`paDp7Q^4h}A{N`kZlaIiwaXTLz!c0k7=;Pfew4GL)( zp2#+k4Qf@Eljx-HsX<-60$gJr=vz2Q_h;C`;cS+`@bZNAH24t=3`)lV^au-w!GVEh zsQ(NxA!rX(O_?(S!2{fC=t7{z51{ZK0aAh7&>IK99JN1Ri7y9N_Eje5k8ycV0$TuN zFz2MYhe1A0lHSLmM2aYf$^P5g63~5c^r3Hb;8xBgiG$(2mD6Z3+_~ zYRCXhDl2esSNC#iTw<>jn4yrHf3V+%dlV|`Y0%Jr34RWcS7H=f;3umzM7@+v?EzNG zCxtMmf)diFOVC5)BGu={4P0%1$&B-~zB&=`WH`9F%YhAh1ld@Sr`eE|(I<3iS=4x8 zE+crN1d$PQb8`vWE3kTxU>Ac?uE0l;q&-|AflF+pugF)DOS;vjkJS=*X+{79`vO_d z&mwvJK?7u|mKofb!>Sat$iPCI{n|OPx)_~y^}Jv3i~=&PcyEwP-}qgu&2F}~wkEwV zcX$E9BfE8PTD4tfDhIy=Lxn*x?PA23{0u;-N|?yy9+>2)ZWjjLt-i2)$8YysknSMS z*u{{a67& zS0OqG%`()3VG%k+)$!+l1}5a6qx~~`6X=2s@h%kL1*CpdZKYM@kh%qtua;+w#rm?q zBQh&NqXP~8B>De)yr&)x`Qke}JITOr(R8P4<@W_@EDCI%Z}B?rpS?+;ujz0X~^BUj^xQHJRF-;5!KbqC|1g#7c;O@{BCejzcEXIpgfWNm4 zT81&}jL=U-KgRvfAkhTouRH%-_N>tVZ8B)_A3*r;_|X45vqNy34OC1U80fCiM*k@p zRnfHC$oTImfsyiX0hrk7RaJ4L`KmUjjW5u)<~~c&2CTVhx|6{1?xMbZWVxXq{wI!N zZrX0QdXpk4e@=SGL@_dL{cM###pU8k_INA0zwy;{j_2w1<)KX4ZK$`Grn#rhxZBG^ zleyJ(6ZmDq`q|2VK07^f;Fc;*8$B8Rj7*HCkKSsTU9YA|_V*|(tdYWXmCB+?(iyIOtkI-yn@)?32k6(;vtdp4 zFHT2tIjDR*Ik?iV6vR^lz8uN*sW~Zk36Doq9b6T<_&j5_SAuON27c*`I=U##j~e=G zSU#xMO_j%U^JQhJH|@W}d?h*`eL4LgzvTSynouXefb>(OUWAD-^r5-h2*cdN5GsadC93>II6bTi z=@XDMjPktgs>Bp^qMwPzY3usO>$l%8RmT^oeCTd=r$z747W~ZqGS#tfnx44*MU@^U zE}Gg&YsBZ|PGJu5!d0%lrQo=>xb2YskA^Ci`>qm<_Rq82cVclAaBx+KO=Kf@)YX%Q z*kYm zR%-U7$ffjb*2AHb(q$iX&5odA-q9f@1G_$cC0JjbVsxil&2^<3*`n)NQ0DvXOmNrX zWDxgA!-3dJ2TMDK>FRSPf#LSLxSLyY#3>pkjvl5}M5$vCQP$O?Zd^I^cam_tK}}KA zkxF6HlJTNUwI9N5+pwmOWRH8Y!k^l0p{Wp!&2x<_ji|ff?x3Rt-v9K3@IC`A)yGq` zZA$_xL#7DT_`s>E_rAX!{n(yggak2FKUJq?7Uc7NOYauRQ1cDDn{@c2`lnXDJlf}YbM$+{=Z%Y)5>AXd9^X>- zv_E*5g?rt_z4FhAOzu0jat>=xd#_{{EuBsvy!*tIG17aeZB3bMAl;E^Os$j^zc<1{ z9Bo8f8h+C~w>=NXQvFi6T_4`eKx1@3~$}hhR-ros^N}s{i+1sULm}R@5HM@@2*> zf(9?p;lU7@fILnxr*or;rRL+cPbS3nt{$xfJK4+Rca2F?*Jhj=k}Zt9X(@Ip`8Jo# zJ;{;-i#$T?Xd?-I!rE@cc%hD#&15_PUP_Bs>AHE(n8_8#*GO}Gq3O1voh)2CWJ9C3 zep(mh$;f`x%+>(hFq8g{`N8W{LF<<&QU#9NZfAI_0^>N%TOKkrb^}x*&*VrDrMkK; z1+XT}H#VAKqb3cw+qLWK7ksVFCO0-V^eJn>vU~5V`sllyN#-Z!Ug>X=3&Z>JxmcG{ zMF*YwtPIy1#MAMdzNCI}eD8R|el~uFI?tadng)w|&h@1yd!TE;dq$9ll(=FsXsP-c zJK`yxmw~!jM^?A#jR`k>ceY0kspHNR)wuW<+f8bllC3$FNGytS?Cs-f!h%G>*bh+! zOrm#jC|p=+W1l>p_`;e?7Ra@idx3Vvr?A;(H#av9cJ`d;X%q1Z ztgLZGGsk`u&NCtWot&?RGCXudf`qmCQE}76Dk84S8IS+9-S`?Eg2F65Xh zlb6ts-7L`0u!?!4qP|+V@%(bX4LLJ2VO2On<;mK&{6|@|VzV`|wOc$B?!7Y=K|C!- zxH$jASwsA>X;4C@TS@7tn~n zJ@K%4j zr?X;~XVx4wOuQ4=ab!=pL#%O|K3){#cdCf0*hx9bn!k-2`5Wf9mVLh>fbH{H$aS6; zA)eYp4Q@TD=U>iA{4L`yq&U{9^N8J?evt?XKC+$I{BcvH?)CS3LD)rc{dN>yahMvq zd#ZZRF>#%QQE@{~ym~0%zrFrNacNl1cBbrBQ~)mJ%7fR#(uy+FP$N`f|CT z`ZT3gPl8MP&+Vn4yEO3xQP2`@+nh6(xit5NCb1IX1YY%w_*q~1{!|hxZD0%bAJJ~s z$cPU)`>QrV3Rr~(2VHapE!aFVjXR&_+&EmV8dmhk=;4WCZPflBU>9a+TL zI{vaX(u-+b6noZ*TblZYwGy-=w}pwsG7TI9+KoD5B9B@hg=eHI1-VSpJucMxPF7ri z)QXSaP%89~$x5SVbr*~a5I}=XkTio{HjSj$`> z0evg>o}it&3MML+Ax}YSdx`6=c>gZxAFcIfP{Hr;e|)LyVPxHYle&w={AyZvn&*c1!a_Vgi0mrURo?0| z)?c-)gICC{M3sSu8l)7_9S?(Do7ivMw8;fvB4 zv8$)zsw$22<6!6f>et3+T|Z&xEommH9WVOsoqXU_tS+`QFQKxm!p_2csd)OqTKk0K zk*MH{QXbF3g@T{nA4-C^RJ5cOCZEShEAVpQkcO4UGGMADY4%|YBAABWFBEG9RlW|J zdKR7Wko@HLgC8XqCQ(>8g|dy2ZnuN-En)5JTYG5D9NdfEdyIh{dQv1-_jBvk?PJJA zU!Hnj!;y;9nD^n*^xtoAAH1)>q4l$3bKEalc1hC>`&Aaxp;PvC#G%*^4yUbt+?Ob} zgToy~1t%FgOPU*Ky5>mERVyTEWdC-YqScp*$bv99-LZpV6JL za9CEhcrF$S7k%4H@^>`MDs>22%Jv9rM|rmT8e_D0)k`@W&&*?jxzy|QvRsW(9i(6NXLVJ|7zu3x@5iJ zyeX_Lj$Qc4jebCYq^pl6Yz(6+^vWqQ)FXd_LYS`9Jav8Zd+1Kw0%JQfElP1&Q&kP= z?%(^K_w?l+2*#e|n@`moQc$bX3l#n~=GgP_#AcIf(S2BQzf80Jg?#3sAV%RrO~9ob zIxPljL7_mAx4GY*Pv0kny70w5Za#)h#gXCLjfLN3+NiOi0q++(6+2t!f-U>%#G-hs z_R@?@e;k!Y_!V_s7)JNsdbfti>0>9Sf6cl;&V&YgVg`nlu<3oJHfjr^dv_0a&)C&1 z@*TO_SdncBX4X#{?BJE1uye*vBA@6D)Eh@Vf6wg}&M5DS#K#dZBGJ^@$<>3xXOjmJ zk%Kgo-I^`E7$Pg(v=K#ng(0wQ>ew~>FsoLL+T6~euu*BE@(v2h0;?g*m5~y234c`X zPx#G=*$eIgPow(NA8r)h{R%XIR zqlI7X-EE$A!M#eX!g}1}U7j>DM}^TmqyO+Gj1!J!Nzyj&b@qjSp@dFUUfmS&qwd(; zQ5N=`!oM6AIBQL%p-xawH_GC2tC$e4Bl_~|bLYv>#Ot$&yR6+EDqP+!xaaXY?_NZ! zot%6JeYTO@HYxO2nJmksmdo9&%PvO7XTNSvxiw%X^qaV_di&q{m~S6heacihKYH@y z_-dg{4TZ5%Q6%_wtYkuz$-d^T?@*%W_|#Xr>=<y1__R>{Cr% z%7>9f(jXHK?;ozO1Omq2QIAjj6gz5~YUNDyFQq5>kX}en*EzpygGOX)%vorX35*ynPI7)_Z)2ft~p1(<5z9L#cY0 z1`6Hh#g&z{tnNrf>}r-%JI75KZ|~zSwoYfy48Iq5_`j+!kIOv?lGGr4zw|Y`S^b*1 zGVe_x!#=`j`m>B0$D~k1q-^xk(M-vMPS-C6W4s*?NEn$IlLcKzd9yR~ymnbIQ>itt zroC5DJVq{EvCs%?o+tg*B&%a0JV@B!4W9#~UHtB&0u_RafP6|U6};-fj1mhpRo)Rk z>56>Pgmhn!^gz)gSPG6e$|s=2-u26V7^f$>Gc+(T#mPXsPWX<^A6$ zr9YXwBjKl5EMq5j!n(_FE}!4F7fSDu12Y5NE5*7Z0m}F=bF=Sp{c)n@h1qF;DwLho zXl?0V`elg+q6W8(uRkB=@tU*~!^pi6nBXLN=ZQZbBD8$?!xQ!Jp8H_~0lI2tY-<9C z27Rk2OSJnjDM~QjQwx{mFlAcb4PxS!TOIrey9=ew#-mqEM!4cG_kxv8Qb~11m>vZ` zYb9v=yvtbBtlN+{74VRT?HQi5^Jd$f=T2s+X6(-NvP;DB=e{0EG1}KMMP$!s?33!eU@;K7MvSf)FjB-I>^f+t~mH!?zG0k4g@fo^w!q{`eq(Hs3!claD@3uQRqtHTPt3=Fyr< z)^4?C^p1GDutAV|;v$gJF>01QwSSZ~nt(Q+vGJ#Xl4<|(){~nom8A)?!WK@Ud!ASw zS$bDx*T|X!yYADYj?O~TSsTd;f9-D`weHsVEN-M)OXXfx{NJa}FLzHY&rHt}(5C%U zLhd0{vl$!hjL$n8WnEa`xIFTxC2fQ2R@q*?U*?N^L7|;MaNleS)yi&8zqeqbH0Xl0 zWqCvWl+vy*BRAqlfb-MGzJeBvj(d8e;~5`EXC)${i|7<@_8-iS@q8<>#_~J(QyV-$ z;;7zW(x#V@){G1+9rWs*C({T!iPJxy4^x{D6Jh4xlm9x?rHCbNfPL+A^~~AB<3lsU z>z{h40WPzlqaz~bYbjbKGk{ zrld?*SwWh{S&|VcM2pEa!N2^pR?Tos zHJdxoz#4G#At!qq8jIMJ6*@PB+aFQ(tn)9| zafh&x5AUS5%l+J?E)?XzPGi-p@KYl+j}?!0HXCCu=lMo0eQp!i#M0T_y`}%#zt(rh z1l#`o)RN!v2abvP1PW)h=6?S^lM<}9){hnnrpf{E!$Ax7hp8VjL(0^4_bF(xR!l6q0`NYxaU5o&dJo#Vd_Q<^oK3EaqK-Bx+D>DW%wuRDd?2yzluUi4Oh zJG9~*KcCe_%3+P8j)yvSq4x**alcjn@)5zo;$-OhgAK2KRyQ85%T4}3i_5fEd$_iS z_gX<9jfK6gWua+g;;}Q!&RA=~6UjoE_&_R$78BN@2Spf)FWd8J_`dAlpYYg|;W5JM zI(ctX$GMSsx*#O|(QNx^0{b1Ucw2kMjzEHUX#;of(gymWa=j@tvZ9ggZ&t9RM9^tW zb!ax;bvamE=Of=_3lz2RK>3T1R6nUK_A^?LO6jV&Jx`OrHm35SNRfeaaxY1xYMuNY z9U{lr{h4L%4u1@nBB%tA`t3=xE0unc)H+t%`|V;HYaDUscC>^l+nIMUn>-vG*}oAK z;xx7YqPv0BcORF`qJtq4UKD3ATAO#$ez=zA)2MU`CPR{-HYRxbVrYYoZvlFU;%K$^ zvYOqNrR*#;&E#Ar+8F8s&Ye-dMOcFJ!I9f3VXQo%*y|Mk6*)W@gcRX`ue zeJy#1-!c8foHEHvyi-oa7_;q1KkIwcrxGtEykuHe2pSUR8mcI}$FXy;%&~KNG^M7O zuSyCsowO9Gh_e?DO?7k2Vh1H28(>{IR#@a@!YhOPe!t8qV8Jgg%8oI>3gg~1J_;pX zb+BLXeyC)ju0M4y;);2>onX*UPa1PSi}yhp-P|W*@s<7S>>P3fcz6UTL2ckX>c z9XB4RB(skY)64 zPCN5}0kP>rON~lN2fS_9_CFzCsXrFYk}xeTBnbR@5(Phe-YOvT$VNK#W&~TH`;mq| zhd6pnE>)rO@~;f+y6Jn?la*D^QFJ&H^t1PdzmcT>A=zxOCi7?B@7%%iO`d64jKsyw zDMpnUknL>Fy2~f6huAM9Lt~^A+~)984zL;5tH4Kul7g|*-J5BsClOsmgE1IwA$tl}7E`(=-iB9hPO(CZr& zU^uA{t{F39&kg)6Sh+1%jaiwjoohBp1hbo+eO$?zYH-9SIW$i=rg1o?PdIYOOpEeO zUaqiuENdjzSz^>#sw&r3#ssIhe54Z5wa*$;dtdqZYCS2i=u_jhP60+5#bjpS_|zL0 zXgY*iHYf zFZB$oB6tGWG&j6xr{O^C;&wk|@UemZ`?FZpuT$3i$@EzW9)wa1nd$UriXBZ=L(7cr z&gBQOkF~M12)c#{YHRZzXsf6@s>=5;TsZK`Ja>Pw_*&4Jukhc_fs*juf@(kRS=T$h z8^bxOg)DI_npFi#r{Lj{u(Ye?m!4n@eHqOE)AS1*VMCK+(35H7m-XNQUg6P0=m{n; zF*7(is$A(U$^P1@EZK3GfbZcA&v}v2_p5h?=&6(+hju^u`*`Bt=a$&uu@}y&RGw1h zD;iFZr6LM5c>0v%7g{74QHudFliYIsdZ%G)=n!f|*k+Vj;7m3tm729$Qotz(g}^gI z`(Bl1l`l>nSHenfmrb%-k%sMo?XI!qi}%PC%^#o>Kfr$e4rWfAIE3ZNV9kD&FZ8u1 z#($%b_jGQ0p;38nX`x=!qiet2>>i&vs-o-<4l%QEm7iU$bR{XK{Jd0WKYmwc64o8; z3&%I29j|0GrEl~zUSNg!`BO17(!JI>p)Tac2su2n6{4=#HF0MunIWK1kg)RfWaZo> z3Cei-cp&-EOy({}jzHp9p;sT$vJKxj487DBg;S&w1-$;_>Kq2!#+g}tqH}siyJ7O- zLLKjIoXF>A8z$cd&+sTG344yc8YlQKX1C4O(`^(OPt&V)22D^VMeYdpQch^-cd|HN z>%pY+b#&HBGs+H}5?@5i=%pK5@L{16pPbs-X|i)u@NGXZCT(lio^d1y{!RO}&EOka z3{3`p#nvpDpR-0&advipm=y?!b;Pm>ogD z*$lU{JDjBK;`RoYo#&&qdF!m1IG#9_`r!BVa>VutGH;v#?~mJ zhy5z754qnZQ0u>ri>jt#sH98qGmMcfPNb;Iir&AwOrkZ3fr^-Y_N;Yvv5=>8b=yJl zaw=wNF7lkXV>LzS7XSL9Y6Ll3bR@If-`G3Y-*L(|xYzB%w|9J=wmx2+yY#>xW$Tp& zuO_sMGBW6tbF;JEyX35_mL1r6c#`o(!7TbeLmA*vUFexiFoX09Jeb?Jk&~uV8Rhdb zk(~T@e(v24kyKgqclcsdziD-@nPu)_zmxWDVK1$Yk-z(fL_{OtZAQeqjR|UTaTv2? z|I&-SS5~5^3KCfkymDCi*^%p3yc8!K`J!wV`N$9lCOXkp1vPoDdK`Eu0|R5_tNYsW zNk2Zk2VF-rm7&nT71(x{uTdF^S|ol^!PqykO)A;7sI%p1oma4gSy8+0F8lvz>~JM< zd~R);fBe^!-@T~NRM$+7Xm}{r|1BFQ{u7R1|E;Bo!Zx$}16XYqUL_+^ z3m!KiW0yj#bQd#p43--tR-5?2V~)qBAILR^pZ3Ze*B1(X@1U0%EqOzX!izoWiiJ^* zF>v}zR9O*Un4{a6S|Y)G`CzBNnI8M|e#mSG=+DdP z-!C=(@LT6xmzwCie;CB(k{{6{JH7gZsOv@?%OOGiygGp}CFtyJ+*?32K zmViXb%^D|lO+K!yR#X|&QdH>!MUhPOC~Mv}jtk)@EJ>7v<%-gmv1ntIcg`Hfn}swV(Q95R$>nO+h@8~Z2R zg2-m9=!I6z>#&G?>Kz*RcM^27jlzFB1W6Ah6B-P1Q zL~acSo@LhhkLDljHKo~F5!Y4{UN+wuw2FA4&v@+lo0#THchoNzNBR0NoVD(Ig$y*R z^R?-meq%4P+(VcDWv(F4-rX&@-vj**4q&#kVz9FbOfM*RfBK>ho*-A=dWi*(EH1?H z@=@k0X@;`#kLCYp7$)W4ieYN<0EIwdnim(VPXOSnHHNgZ+2`MFs=POq5Gen4Ax# z@&={yMy2wU!S9YSJKQe_^UTQ3q;EMwn48cvaXzUv4qjPZOjbxw`O)IzjZ{BM_? zgysn=Y6jbvm-zY>Q7tEeTE%a;maDb261I@FXiQK~Vdh(8sUZDoQm{9%?m0$d>t3j?dr6AFh{rxm%^_?1fQv+*Q6))%J$RGlen~-5f7=uM#`JP&&0B-UPutHk9zVl26)riz2$eN-RgO zN}${4+jT-pGM6=VTR2jpurTN}a>0!|`12zeHl_l-{q6YylD+e#-Xrb`O#jcG^9E+p zTj9=MZ?)J~CtJ%d2hEFeI^-v&TE+%>Ue{2l!!zj$rGn!gukO=gtApWWyJZ5Y%RjQV z*(%u<#;LAo(Y*$ooR4Kv1FbC!)=l;sFG)xi23Np*(vpYcJ=Bh~kYOS(*c8jpL5Kc3 zQrq2xi0AGd=}ez$Ju~d@iAt(|XN>dw*`-Lrz0cxn)9$kLA5?#N(L_GGQ9r!qlL`KZ z9J0A-r`gb}$!gw<$q6Ca3$JsTwSOT#m$Rph@-g8@-;*jiEhpBb!p3AzTKrdAD!MBy z>#Zacp?U2R^p=wPnxE}Ee3mQ=CSu8Z@bBvJ^6>#(^Y^iVsv3nXL5;i?seFD{p~C-R z>8zuo?!GQgD3a3MDczkCLw63{Fm$7&bPU}kIns?Vv~){1h;(Rx-UF&|C#s7ER zd+ynLe@@crcTHw{Jrgyb_JdZ!Fh;yUEL}35K`X3iza*eGJ7p~4@%BoRyv_WA9<3~xw)Ky8z7b%C?<$5W?GEOpdC<)&Pe%fGk-vVTLK+=Tt^zzvjj>lrjzccv`*?Uv6!~JmTL_Ly0V@Ki@#B zoW#w6+|EuSg}EdIP2eIujg1OMO7;{RQZ>X2t2=P<+Q!rS7H}P0F2>T<>mJ0{!lVlFc1$HhRu41yMfHyP;8$k+DYW z!RczvmR+O&@+J-c44*XjL0occBUI7rcZH6psoOw=pC>+~a`1Ye8EiD*#2$Hx7}C>Y z-ZK_PfBk4KS@{e2n;z7^Q_Fwc_};nNe^(MMU(nQj{+1(F_A)MjF9uI!(VbWitf#LOCp?hj5A)&X15fR#Mx0VnL6|9*UnD zt~gfj($o9dl%HOS(vH-Q8g<-?7?G0}ZE3N|9~e!;y3#sfy7u$Z=^bkUEvADt3P zv$zt~SoN_pRlklQJ2t07L6<%}Htowi!c3s>4CByhR-Bc=1%9?amZg>Of{)@~ z{VAIqOySL3k7^QY@c0Z&TVtja)ywijRyk25=4ED+BbQ#!7v1F_A56Zar}^aq*1v`V zUASd>b(!DPGCJaq=CyD5@n*eI`4(+_*aK1@s1+fdY9V^+6&2W}*rvXx+|GmYod-<> zZ}&6oPn}|xazU3M0c{i{{_$NHq8b{y5Us|QxW@hv-OFhlms#^aj7big6WOcc=5E8+ zl1!bKueogTs|#D|em7f4gG30pGPO;o+aJhK*_x&UZSYCLodA{8D_;BypSr@F@Kh%( zm%C@=f6eg6d&?iZx$CH&j>8BG_*1qwI%nPG@p7Zw^&Qt`SJ7Qfwo+7hwlo2!PMN4- zZ$_y;JEwki)lTqCuxg3W-8faIrhjSL#b$>&<_D&^{J|bIdgO60)?`=#UrowKeG*pE zs_9oFX8s(xa`V1Ni#I?nYpy_wy=x6mJtDAa#(#UTmw^UhVf7yy<|8bXQ`_|_3`?1_ z!eRgp09ZQbuOHk$JGoQvG)fL>FG4ixJA73 zol&gD90RK(2bEoym(SS25~+jnsd5ymk@kTsg6=_4D8lb4Ean?Vx@y6=X;M|E8;=85 zEc}O{1PyP6C2nExj%Hxvih;*yp-}NMwCSnoeQQ$Y?QsUGXk%~fO384g7*km+W!XQ-bv056|6DJg;;WbD$LWgA+rQ~01k*S6k zljKL$-nNl99_!Kpv)cB(a1yT^oZ>Z?7e}RAk>Vx?+u5MwNb#6GivF#5pE-0d&HU3s z@mZDADT5hlhx!mjz$9aw-l~a^nI-7Ur7kOn9y4my8(~+uPSRAAtfza25$I%Jb$&-6 zZc&s6^LB?~h0G6P#6ryAcZC8Sw;kO13^8F12gnXSUCo3EtftyYzkxE4mbyn?n`{Ci zA_NW`30KGLP`cB$q&(L|0v&;)r9AH7N_qaDDPGsCpB7_%qWPEsmAEJdOlcdJKVvcp zWQzq%)_l;ewRp0U%WfFd6#-kR6n}0_sGYM8_&DB#Gx{n$9~4qMjty$OPlwi}#(4~K zEv*dB@avnJ@A|1TCqT%x4aYJU;mtmIVx?AlJLp|%AU{2ibX`cXV~^O`NhS<$+_r}X%p51gO$pB)suM$uN3@UKWqXL9ztf0bVX4{&Th zW`-Ezw1H_d8$2C9n#N9mWjL$>)m3^E(}S0+AeP|5Zx*w{5U*604^qQ=T56?8 z4y`O7_nb~V?71{<3uQ&I+-4L3uP~wOM8T?^jd&li(J)@Nz{Ck-adqZdXMP;P(_5ux z(zSB%OC77Nr!i3~ilKNIg%%FeM4l&{UaimPM!Cf~%gl97F@t2zxoPG&AQsV&gDy&= zgt`sM1hh^T%kK@0iVhLZv?)KQ$jP&(bco%(T$}AY)>g$NEdKUO6Og!AqrpoF@o9tAs5)r3s z)UFRpw?BDp!ssRy`mNo?_V!acy2s+^i?`$v~Z9? zwFJ;*Y!~37XfM-x8Y>v${m(o@@|ZCtd-0Eh2XoLgHlDXlV>Sldlk-3RfuRXU>W3%{ zSN;wP{OEyYVFX}c4(z@0oFU0~ zVaTM}Z(BYeBMvI%6|1$NGe-hLCi@hP3iFkE23gM_D5r2-{p@^kFegrpCliwfQUnG`W0jJ&Nk-W!k2H@HA#WjfZiVFPp2XQO zh3k@3r_@tb$TM;>cXMl`#xs0mq0|#l2Yprjl49<|>K{&=5kzL*ab%GzBIEm%$7|(R zHeN-qL1eV=MaR8{|6E=BTV*Jwd8;_bva4F5rM}P~q*kK7IwAYT%Z|l277KvslsWox zm#g1$XScBDXZOiosL`B4>qJ<+Gf_Dx4eqqRk`JK}BRKRuUKk*lCH}@eK$Xugc=>H3 zO;yuDvvHeOJVjb@47G2sWZR!W-M6|7g zCw_l?1wl7AT-=e+(P^8BRA3RGc>I_#PNRu`_G#q%WqTWoOo^tcWYD^pe**CI6tdD1 zLzt4Fx8}v576I(O(yb<;H-U#J@5P;OSL;h3ES24=m}>V;Yj1Dv6b%^SL|dgc5Xrfv z6}7)mfzOx$em;!VG??tAjyizVK@5acYXF5YzI*Z@BGVMzuYx(-KN`e;zQEe63_BRwONE$3Odwh9NSb_q+yL`15binoh4hE(dEi@3H?|%X&>5>#@ z5e!s!_gA`UvNm%L(nQ71*Wn2gAt12s%1I%Kqb4N6SxdRkT`&E@#KytOhTFxgUv&7y zS$qA+HI%BPS5ioi1R19Nuo#naTnzQl0CY-j&O_656^uHc%Zt#*EKd%ON)IET!x!K^zB7lm{M_osOcX|Uk>V5q%?F`wg zJAmi_%wXHp0@jjIWQzBCM;SZ60=^WDJ;$}7)$(0ulbJS(5B1*C?gJiZ0tzcz8n&Vi z*wW;qF#lKg{k{6n*8tmp&9q>prTpT8$lg9N=xPepl|M)?bw=04g=-h|rs#AHbd&1D~~G){8(igoM%-VDD99D=G`kCR|lL*@ke zc~9p!X|h@3&n#Mgp&|a7f?&0^NbWT4MqqRZ-gY{!J<_x(dTK;jnExSjuS`#Bbkv0Q z%>~bIzXzDhTP-9HR}CB+P8^AeYx=~Q#M>p97=u@sQH=xJm~i3-skmCQO9n8LhdnnJ zpwj~T1;aT?h8w8>I%3>tU?8=k^vx4(k`lZyaWOjsu6j;XSj|W2%rGkQVj3i71M6uR zs?1<#O@0TJcf2ivLgMKJBN&& zZx{dC(l~YS0>=ZFvUjw>hSlD*NldR%Zj1xjx{+@q>4C=|?3!oE7N(4@_E6)fqqJ~o z|5gV{ZKS7#GiuX0rpZ(ff2q`lZfjqys`kwgz*Hb_ke-Yi-&bGM&C&S>V`IAg3AQ+= z0OdXS-r!)(tO^B~y_*WBuJ?yH9D}L%G9!HD{?qY@*dtxrkGv-so#1Rrn&l|;hj_|5+u*|NBhNK~9stx<(jbkXXsXE+;o1CKbAE{mj?C#{Dn4^@zt^R$-=gfi8+Qhrl4w|^1NBU=W+e) zFSy|Lv9Y@^dPk(K<)O``YJt8AL|F-Tjq zOVnbKvX$|CCYWo15;o*YAFO&sl~7sqHGx7Es*uOM9W^cSU6wNJ&=E;~R!<3?qNsG-69mhUj88Bx4?7u!AqgLM$Vg zrIgp3Yycn1uPbJY-3~zv;>?KI<3v{Xx}6__DPiv&<`bN^Yfa+r_j2IoV3y3Xr(fSE zXKrE6w!~lFh9xjYg>R`~I)pV&m4RAlg?54nmw23TfNlN5Pb-uy?#VF5vEI`|rf9a%#R3Y=6@UYp*XrMV=~^AAREXjVhUC zh)2kyW73$Xgf!-3laLSu;bG~Gdackgb}i!x6r=Q;N6`jU3X|wGXQ&glGnA|8@cW6p8!y_3?%~ayy_mrYaP-wj?w->%6GinPlAjBm2ehvvcFE zk$Xj&i7i9!Ej(6{XVf%xd}X;ud)ejhZ{p1a0vcmEYb^5m@0rG^PX(2a4NU^bf|c4_ zgbuN9E4}|v%&nzf;tTk`+3# zzSpg;$O6FSf^1%_l&pRrWZVZvC%~3&Pk5m+o%dV#QRr4`KZqK^IKAkgjeWEMa!_4# zVXfzEefz(Y;kW&7^DgGMlAlG0$B+X#&r>`C8l2U+Lz=IAG*Qq}Za&0gzwF71grP(p z^)A$v@j<93BTMif)HkNZv^S;=NMuaq--Ie5VLQlI^cC%0Jw0`Z=0P9?;y##br| zX9OGu%(_hp{i;U7U{X+rZG7L&Q*_GA;k*jOFY>!=n&C>3s^Odv1k(IMMYrF+8IxlZ)k5qXakjkHkIf9iuO#zGT%yDz>%agdT@$UJSO?s!eM-GzdRk%DdURFeL zQ+u5K2y;AMXu;58oKqWg%2X~iM-8m7`;{s~#UG~@ss*jc(*3qsVW8@Bt4_B=FWe-n7&!` zJ?Pm5Dnio2V`M+@Ex*#ckyx^Z*^xd&D8c<)PS}iSu?adhQR`3j37en1u-{`OeU@;7yH#;xP3}5_0mM1<&1RZ^0DSjzS&lmAD>c%?=T{8ok6{-jS8y7| zsh5pKsL$3g+qTb}$HEy8HGsH@^CvylA1g_T__be&eEbKjX~Wr8+l(vX?e6aG}lx2#Zu77 zIvw(040J7)h|gBxW4M+65wdSW@dCaFKKcjSHAVa>WxmT#H}jFbhJ3hAeV6^KV|e!$ zOr^1%h|+HULhY!eWqKyDZu`%h0}^%JMiLrf?gUKB z%L+#4G?y4DJ**(gqTa+oP8G;{cZaL{+(cLbVjY5!sBbk{MJWfrCR)!-)zA2IJ?O$Y zWc56O9a~zB^P?JPw*=ZeWQUb^+*>-UY+hce!_62TX1U6i3A##Z>aF z>>}v-WU=EmZ{ZCxYZ(7em!VDi@^6AedZIgx)_oE7i~E(8F{P&0IXdmb_{V8^@z^gs zE4OuO?@rodls0xh+W|Nd*iQHB1-LzJSRi4)e=<4;VmJqm(`yPdf0>I!dfh+w@pf!x z(573kkqq7jktNS1Tp*w#gc3%y1Y*fKx9-FasaxP6j=&j&0++Z85WEfi-yJ7W38Ico zrkoio7J@PL#n z?O6qdHQ}8AnAQM<46Ul#xFa?ZoSt4+;M7%2lF@uKie=``J1b+{(heUiqLNC2JPO_2ay`hP(=L3LK#5(EY0MMs4!{cDPr*9QR?Cp(A}T|;q5!+=DkL#NH^qYINt zPqTV=fvu%oJKlixE}I~T1J-ysvI{fN(zDs3u;B)-I?1)zV4!1|H^uUw-s=v96z%J% zSbCm6l7>sX1i$Qz%$;>fsC>v5-4oTjX}8A@Z+}&6fyTTtX_ZNAMO7eVqlCzRWx;Lg z4MDqP1`pm--)%C34VJvWwgHLf!x!okcMEVJv-oLFN~1;p+R`tiH2>yUxCo`|&J{Zz zY4STcVI1>@xRk3*W!9W+U!4clBjO?tGBC!^`abB?D3rJRFo7qf#)5RU($=~s^pQKsNiKPJBe|N>7Ign;t@AZu7rwcxtN2VxbA~Z?o&e<%e^E9Swn+wv{*Op|#bA(pYSh^YNfAhZR23! zM8Ma$K-AGcQy3U(e9N2xu1GB!(5Z^V_t&~q-yF`6979T{)(Yy}bCVc#Z6RG(0M=>{ zlnepiqEOwMMVjQ(($LQ=QG;}h#VVx50l#gG5Ey_~#}o!&J8ZjB{5q1N@H0(BED+KpN58~Fkd+tA;!1y z)ozaRmeWy)b5b5Wm47C=b|3$eHz{t7T}#OB?;uVKzj6Bbyu?rUg6_3E|1Cn7Ye_Io z>VO*$>2smlM|sQhtqRM!7tzDK;%|QGx~X06FMl^mbC^eGjQ{pmIu$$bqA3Sl>7}vI z{czX2#m7+!#iXIGWCXnx&xFM@w2+(lU{YPKqMK40tQ^*2@Xaa1?6t+#^+d2YCs;3V_J6}Hz9D&&u>Uy3+f=gwi_4;aSVZyzHrD9Q>O=TWKd!F!- zUBl6#Jl~Y#{H){RENH%Z)jyD|p@zC&M#H#%(;pO~`DEdJ-da{YL36u=23$i7tH#*5 zTO(#@E&{(Ax$$NkuY!t+6&bZ9<-9XH>%R@4q+U16&5Q zV+yWxtGW%_@LUcxUz!}s*S`F%*Hh@&LQVGAPljQ2-DAiP7Gi-SFrQ7^( zKxhVDK@HpUI4C170dHJ*odFiEeC5IO-y($-2#_lCR-3iZmlRH>`iMkuKvMb3_kr)M zLzqVjty$=x6Fp8}`P;Od;N4Ko`M`OG#d28H$wW301GN^}MaFoIj*N6gKlZxEuF;MXq zqjZr7OfB2Zfolg(z185&hLDpPi&c2e^A4S}acv6x2BkmqEB9+!sXCvpvi)H*xO&~+`h%XILR zJbuK_<0(l;g|mJdK;=gJ3-0n}`!9Zb7PGb@d?G*)0c+20Rv67SjK1MmjrZ@i&_F95 z{dqX%-#MC>@rDz-8p z0G=ys&s@ADp7oH4Wr?m4=fCzYh0M$Ug44A|ujGc%wv5`zmnC=WfVaSaT0LKc!0Tj@ zLY2MB>f}tM83i;~P9)U8pkq=aiGoDT=}`tdLpn#5nFTt>IHzD|hraAajzXtloGC)z zhsVI1Zq$=k0XHPw6f&TKy(>muO3C`T^qwE9zIs+->!(0Oi8bZ@ z_zzRfw>|i`y5`6bHmMKByBkX$VfF>iJw)5nm6-tZvl#0lVU&?H-5vdUdR9L#|@rn$u@|WjErt+lDdFO)cpFg5_ znLpuII2ix(Bcfq?q28`JXYqcQ5;wF^f~ZJ>$fCR*oT_*+5}(4n(o#5-6~j^TyP|NU zVxM$YTsBn4aN0(}oZd@VCB;}`1>zu+y>0qLxpxwOL}3ia7tH`CWw`~a!Lsbt2+>Pj z5&Xr#`M!-Unx_>}sl6DPLushwrhRhI?isG_dt{GYN`0Qc`Ojy}?o*>UO5dfGlFy~S z4hv=t%UpWEljliSTGLh z%j!C_CYj1tB!?|+Ag)ZMXZF9$3WJ1^NtIT5ynhQT%hgeXr^1D%x5mp%eL@DG!G-%* zjmb28lv+T&@;~`93`6c8{+)r0#-dt6D`&?4tj_1I0YToUWa6P|7hqrLWZ=e>&NImOZbI3ps<= z)}Ze4o@%FoO1pu|hFdL+q&nU!3pSB9Rlj}|czXkuS-cnxBL-551U)WZ2AoF561Ozs zpDf09g0)^9O|%Ksjc;{HVk58)IArweP%wVLa}dmpLYhP=8}u)VuKF^2$jd71!bk>6 z4b@=Jh|WzaSU=wQj4Gf94sjDJpoePN_1hvD?=ob3`ZjV#^lS zf%z5&1HgBa#VM;rEl6^Q=4VUoFMxy^pAlkZrT9+GLS5AAliSxwBUnGADoo7a;z}yN zjvlZinlh#Qfs;C}R+u+-c3oXMq$jwz?>?8(qG4Gx;0Jr~<@HiJxm+nz$d)2_uwWK4 zFc0JZ&IZiuz|p}FhfEnpnnD6u=$!&(f3W=)2{$Vl=j?MvAYH_PR$-nIP@%tD8hP z)_nZLp!SLX+pJQ=*Fp}L!P^ZIOhltc$HK<^1~d0u8+WIdGA--L z55WGA5E(Kr{90ln;{Ip&w-Vntwl^c$QxvfS`y-|M|Km5yA#0G{0P8zOY_Pz{6fU2BDV*kY^obu4p2jhh9& zoW;m$zoFxHxU@Imnx|=k#a?hjDsV5oQ_IxGl$hH5T8yU)fSNe4~u4)%EIhuh$ZF?>vBr`tEI%Vu=GY-b^!N z=(ib9jB_7G9;BB>VJ@ch29&2K#ar*|17zW@(#Rf(p>ve#AyqeY=>^z4Lr?$PO1cuA zl4YdOP>maH6&0Nx|L@2qfZ(xP%jWfC z>`G3oguVaWT;#BF34-@GB3bNNjWs!^kWOfRWL zTaLMJV&ByjqeRTzb9Wfg2Nlrb#u46HjkF$nETB5Eriw}IOVbCc{n~ZTD|psZO#Kzp zKXP`Rh~!P+@>>e6(Xi@~Ca^-2Z?3qJ3m>$&jx8tqfdNC>H8d!MkX!qL$x7O>m}V1p zCRNMBDG3uW$!T3+D6E#$XWliBm0yhJCJl2VKzKXl{6n!oPI(HUDPY~6nAyQ2)NM36 zfak&X^IP4$wz~NXRG%hk;}h4#0l3fQNFCYyS0e zu;H!^z6EMD8f|b7?2E&^FP(K}L)fN5G+%0fCk+=x(5N>v&;-%|L92w+X&iw4p07l|5$NOVli-JnvlJCN=gohj{`SQ+GZMR89>p={|CE$xNH&5k!gfU6qxac#YRl(*_* z4@>FE2=se%+@0knFLFQ#G2dtNkH5p-m`6}i7IQG;!Tda35Adu4-Nd6@+Ur4lb+C~V zTfDNX(&L#(h@qe3_|V%Brz;Xy1~nI4-w+m%z0+chCG$r4J1)SYYr{HoJ!YEhb0Jyh zl&vO~Hn^QoTXz53Kjoze0E~-UA}2rQt)Nu9_)l5wx!|AKl^V6;!LS;DBe8@XS2}%ISX8^fcbY-%zgOx83)9$U-EMFLgosq3f}OZsW_3=PZ=>)+Ni z_ga}a$lJxF;@;zyk`ufn!nS1MHJ96pdGBm5uY;NL!@`I55!`EG(v{{QKJ*$%YvE~_0gT&NFpHg)1E)2l&6_0GK*|zX z8D>PzESxVE&wYVY4GbcwsI3u9E*kMqEbCJe*ecC|XamG1{EvXjBx4zsW%YBMtnT4} z9u^}0B93&zu~Zwy(XF|1zkX~JZ&sjBA5-k0j9tpIU_})_!GQMkD%0;Fut|SWCcccJ z2znM?gfdLRG-ow|Z;6PnOUpMT+#pU6{}g2MCGm$@q93=~Wr#>#xWAX|lLI{Zo2&;< z3RpdVh;0{Ji1KKC&laW)E+kRu)RBg*P#sc$-{C=PkL%cpZI&l=zh zcKM1`!V}Y4v4~BTdJg~m**%skEbPI&0|#=tU5qn*EhQ0riPFc(owEMv{X*b%T~oO1 zG|z=Boj*Q+T_jZa<>Op8m5qu3t0~u+kv;|_g(@^S_#pZmk_`Dvm+W^5@C|(RfYTH? z|GDE5PnV*m4ugg>s-=d&a&E8QnQUTD@uk9P34zNU|A~cz?p2@Wf0!pMX2U*8rQV3ah{1uHxumL`_?FOMSY9 zqk|zi-$wkn3j*^Kyx?3K`DOq%d>}i)cW{U<{Me*LEAdxHLRkl?_K2yPO|kFEzdE8| zZX<)9zhwGjH@-2Fi*>$?FqgG&6$z?-E?3n=7))+x+4dVooXX|#+($4uB3WC~oYH{E zeq)rKHjHUQtnr0jEad#mC?+SkM3nA9bN!Q8*r8^IPRv1NZkG%NG(4Kk$W1`32iE1S zL^Lq8%vLR3vu(8{!Zig)2dDXYRbl8MEIcF>B;8~xtH3|#9h{5+H+m7%A;xfS(hRB! zW%0c*JO-Hzb zlJf0bjgd)He6-(r_Qe9G88uLfc!z46^JInR&|5;$VJ7czA*7MnGMuT|cPJkW;->4B z5C}fzswRLdMkB&2_EAuj7;Y`=+W>BTg|q{5eF2DSS4q%&?bN#`L|y|g{C&OuG%Ve3 z@Ve$pj^Z$-{h{?(&aO$4$Sk(Ueg^pAG$uT5c3!TJUQb8GO@`^F{e8*U$mULao%T+j zwOx#v8O%d!??@(={(5=*Cy&BiO@cg^A+2clW>&6A|MgG}Hysdz@rmNmLmvai7t?zLLkG0@Z5wO^H9>fLEnCAmuSV)gt44&bL1cFH|fgKWhS(7s zOTzpS_Xl?v(D~kqLrU<^O}4mGd(V9=1w$A)V+cH&`(R#OYMhx?HDsT!Hveh*{f9p9 z4Chaevzma2EG(Mu+0ybUnJIwPKCP&AR9BBx;M<}qo$GG&QHb`hL8RO$T^Gly{gVwCSNGMvx4~yl z(c|v!Z%=&n^T(bziW(*F;c%(~hFCrOpL;!|ZzRkd#`eHZ--+u)QK8Ywr(;Dn{@dT3 z-1%WOT_I@j3uv2R(kAh@I4Q(LrUe-PfBko1bwM=pQ^A za9}5yS*07oZbjIZOEP5W&Yv5dicBauYyPAg1(an$QVkF|3ly>3T_`}C7AsDZWkGv( zpp>&kJ1Asz$jLb%HNZwO5(Zygk<1FNj(<3zl=;+XiL8OX?qJRp5_5!YqRtc&SA%}| z=eG7zS7zE$h4O_8_L%`vdbb94^89fs%TfG}w3mD*mi`Rj4b)&npTMF4A#mI8l9u?2 zoKqD#onWrAQAiuC`H`WA-zJM{-azv&FHi^npE%ZqolGF)>>tD#HBg1VLMrtr6kjo3Z|N7`#f}2Z4Iep7w1i$|>Pke7EM)@mI7bH$ zKAQrV*s=b!IH|B`Ruim3rJO3R_%NlUZTZ0q%!E)~On|l6V_XakclQ@@tY}UryMa_e zUkCeK8%5YM)`kk{sm+mSqQq$TB9O(xFDB@U{Pckj6{3{j1!2VFXW7d2ruAx~4lTeE zgoa5UfW6Q}-Aig`iiUd?ovBaE#^~~l-qG;<;%Rv%mGBSEQn_i$b$G!7c{QtUUQk18M z-tTk0v9yj#0q4POD@*7U2gKm8@-PYl=+)bc0M^OUv#%GouMg6c`P_=A37?q%uqY7umyklOLzg7ch|m%0k-sBTH&(Vgj0Z$V`JLYn#SIs8 zS5_EmI>g<770e>W&LYlAOG|s4d;THe4x2r@7uUt-`^P@5xVaNUhaF;LlL?#EIV4<7 z_BmS_5qAl{x+>Po^D!m{(#%u%P29~bOSM^|5WBj5u;o6}Jc>^=Tw{QWg}qeH2bmtF z%~(B;rJVBYh$L?~v$saOT(ejafLaIpdy72lIQ9e{-T$-ho=y^|l(3&0QrHdbG$30VCBJnVvYK zbGIYsVou=fn`9y2W<88)jf?8Ec+HJ^ z=|5@duEM`;(!^>Iu2fDLgx{ey>eip)D?1DrJJ%-X3uS4=_&s3{4$I)3Ud{lrM$mU3fQ>L#mrfLf zN+EC4M-`BM#A~_o!KMz#w-_uvAf(cY_ytGwK^U*C-zg39kUm+RSI?tZrwp$RK zHS_NqU~GNO>cP?>)_HVHq@!Z*ljRIYS=8iYcLKj|2_v|$%CgH7&LW2wq z_wY5KKRZj8aj%(192rog*#y=$?x&CMK*_gAtnZx_c8d~)qJ58om!|3UtJlSY45g^B zqijX-{l+u+JHP0=PVj2gLKu_{$?^tU^keJq|C}RIUHR+xA>P^)#>)P2$2sptd&Bq!j7o?) zTjhr*@e0*95;Y`&M!8egbY|4vE^Gwv&Z>H%B%RM>ZLUQBcBgB}y zk#0pOdz^^Jd9(=co%_!AFM3InGSF1kTlcc<7+K8c>etIpCOkBeHC|El7>S2pL>(l* zx_0|(Uv>Vv?^x^Sh=fuaU9ccyD9Vc#Ui7lJuB_Fxv*`8suJ)(n3g}&3GG_^>Gsd4S zaug*Xy=NyEY_Y!WKD8$PSjCAcuSb!8;~s4VF4{M7B*yP!q@;OkKB%G)h2GdWHUoZe zCz5K%n4elJIseLDV>o8XrL_qrml#P?(u@1Z8odD~=kQ7)i}chrmpEVh>sJNv61I7< zo#S;mb6XoFhB67r$|_1Z7HsSo&E8jhp!_&gfJ{dYOp&jr23c{4rrKT@3pb~^#qU;~5b(YRl3 z3`>O7Gzywk{*{$ub^J>EJ4-%yMt32E7Us0e=emVc+=xsY4^~|w3SpVs^A9Z_w&QDl z5!;%z8MndaKE-gcvnPwVnvLx?!NuRI1}dnwj2HeGq0rW0ED(^Lg!t5mNIxw1^+ zHMX!PJD~%XunchRlSk|E+sntL&G0x{FvM+OKfeshn)T)0`mH~`Al?w}xs$>B0s8BE z{&DCmZd^F6(^wL8&roUmth$J@y}9HKn$VIE{gNTq2|FsmRmkM;!pHBm@8pa*Iq0o+ zKpOruxh>E}dhT@Zg6(T~Dd#XlcJP5;1EtEzjg%<;@SW)XRx*yyhELtGW6LA%lpy+S z`$qS5Gi!o`{i!ILcV74#5;uRhKw&gV9&b;fd)=)g-(T?_(H-dKCmW-8!iMXwi5+E; zb=fs22X}2Xf@FR1#fF00mFK7DgimjK{aY!G=fa6S0~y#$^9%LF;kOeCTih`4r)^0h zheX;&xlWFU2>5{5p}jSs#?y%q7H`zJ8&`~s$$cX_e6-Ii#sa)psK{dbTj1E^KlY#2 z?uK2}Pc}Zj&igO?`U$T7evly~c>9LnkI(*1^30zic@(L{6n$@70tWFNu`F^UpQ|sl zoYco{JqFsAd==j*=Jn(3t8UdCw7qcK$J@hjP`{5P!pH1VE=o))*t5 z*ZEde!dOXD{LokhPVMY@V#@kdz>?K~oRdBk>LIc6d8J6mJo}8rRQ~J_CF$|L!Skc- zblwql_I=w@As%}#BOT2T4xc^tIsHjFWCbO8-)dSoUa5V~R1f_ZQ~$R`zol%x&-v=4 zdID}Wt0{)5ffpvXx#svcEyQj93NM`)c)PI zh)qM~sr8+I;FYz6hRL9OPF_j+9Y=q=St!k0)42d3BP7Udd$8zeZI!gra8PcajWilU z`|l9csfbLN`LqkWf5j}CD!(3o8Bw5KfG8^{yAEgI+P!o1opsw8G^mp

Pg3t1%bQ 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

eim#l?qrcjEWb{hSJ>?WTw_vsb(gDO-4 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%0DF11a*5Gxobr&$(kTtj3Nf%zLfE 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 nRsyPJk^#)B&6*sh9!E$iWS_z%19Z?CtGe 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 literal 0 HcmV?d00001 diff --git a/docs/performance_report/images/sigma_asymmetry_angle_angle_err_sx1.0.png b/docs/performance_report/images/sigma_asymmetry_angle_angle_err_sx1.0.png new file mode 100644 index 0000000000000000000000000000000000000000..92f76095fc506888d0d5701849bc562d77d7dd58 GIT binary patch literal 434921 zcmeFZby$^aw>LVGE|F3i6+|fsB_tI|0YMr8DUnc8x}_T>r9){cMY>Y~B}70vq`Mo= zc-Fi3yVly@S$qHSo$or=b*?k7wH9;D`OG=*XWS!x<2S~*0~H@i5#mwdp-?D78EJ7P z_|t+yVSLBIf>(+e3$Mc;0b2MkslGTdNnAwl7Q#F54T~yfn46xOJ0@ z^CmyrWfNOltCs>C9OnPN;-;mIF-L=z-FNsFTq|kKmnhUF669Yr!g+L4{168f)Enq2?0#a_VLKd-V^NuU*{@Yo(CA9aucj{PxBmPpf!K#Gqk#D}@X8 zJ(U-!SA)DBtktaSwYduxVP23x+dBTfK{Mjwu)DhaeXL?_#Gyc%?PBmf@qc`%U}me> zq6hr*V~i|v>Yv}uZr4+yA^yjQDy3Wy!_|L!q_cR-SpVb7#8r$qnZy41r*jFITK@5e zi62EbyyyR?AHI4um-{W5)Ia~UD%Ssh)Bi>C|DV`tmB5OMihGPC`aS6qnm1+vG>cWw)r(+}7qXp{7Qwdg9`~x2m(fHcoH1*mo~a zEx*Wl$L#mq9BcmYJ1L?7@vDiV9;fJKn@yS}CdA@biAP38SSp$Su3y`44E{8g6Jtgu zCNV87>Z@;X;GeX#H1bi#T(7GP48`!xZxa#>+oPEAW^i$FO@3q&^1c}K?Cw?+azCb6 z>d(JFTx$O2?OP2r_S5~DxjDnR?@9ARpIJLQJ5zIVaGyVaPC(5|;O_2jSrV#MW}*N4 z%bTLoQoqbhrd;*HF!z(g==kc{wKXDjb#XD1BU9+*_XK7j5nA$lGhGt1nPd1>Jc$dzpy|i;Iiv?VXoQ zbi&RUmX>RHCL3++?CgZX&fA_@S=YZO3kSb{&p5xhIJL7hFj!_uKlJ&zKRK&fRCy@7 zR%!jOUzAl2Yporz9BKLaq4V=5G{VkgNrDbHtud>Zl{4?MT{Ijh(2(})e_bJ2C3|gZ%4>DBYI=8Nc<}S{fvVb*2VXlo2?(iq#q%G3hFw&Vq~^0|etqSB z(TiW)iNY=yVN+&Ksn%?&|L%Qcxc>B3r?*NiM)6Sli+P18l*jP~_U6_W>qi-tmTK1n z5?H98pC49h7;Rq3_k|x>J*DPaj!sSuBO^4kv$Gntu6ML`bgUQqa)?Hz!pAS^y1x2k z+$AO;2X}NqjQ-L-43DPI(K+@XwsdEcAicMhmbJT zKy)pT^!hne42SNMhc0P0aok3DbRw<+w1W03w#wNdpxS2r9|CLLjtn-YTGlrXR&EWjl=ZcJf@(Fq6n;$KP!q0dyFINTZg zyFU#2t1(}fRu81+eu`64QZliyfQuT09S!WFzV(a%1lAftiH_oTT)zxXLC?V894#&F zZObtlFl6QU7Yx@f1{b>>*_T&VBKHM)VP$XMI{Pi*%Ee&vC+|M2j@N~6Ot&@l_g@qc z5a$IwvP)sBy{u~B7~sg;{3eKMc1AIS`d{a~xMl0y|JxQ>sua6813k&gVAZ3=VL@?BJ^WjoX zUS7ZCWI6%cdC!+~-=p^hG&MCfs_fZ^N=(rW4Gm39P1EdGhSs;Y#lblRc75yWYCGIn z>iK9S3x1)oxf#R4!U6<6Az1zL3*+bSiFcGulfX*QP{~40UU}+;?NP#RhboRQU`G@| zVveUH6)(}GYh`0ObYqx56&2kDEi5wo$&$u)?HVRxO3u#C#VKWAt5^gSDAZuJ)61N- zPw6KIb1Cz`K3!*HXHP3AIM2YqFgP^SI66v8&HLi6np%vU+ripwImoH^qYZDTvK`}0}KlZ7v7W$z135)%4i6`7S8ynli*p!6y#;>=iKxpAW&3}Jm|K)0!-1+%}uzq`BJ6Rr@jUk(6e zkI}MOO7S>lJ{F<9Vwl$v@OWQT;kuMyW~HY=|^QdM=c9Cja=4*i=_XW#e}QT0f1 zu(IO2>@K6Bu26pe@q-kil*ieLLou%EW~N-6*FA5n$@Xa03&Aa4Iy;+T134jHy6*lm zevlHGk`k`pbAwTULh4#?6NB-MeSfmrXqTJt=r;ppXG}B|bhrAS9$2?k*6b zN@GVyUbFfB;bFSd)+~6VdvbCiy^J_0e%tvAiAhPt#$9ypGc(2H<>fPvdoyH<%F5bc z&BQb`Y>W{Y*w}_GLFDk7y0oM7a4Ff`>B$j%H-;xkTH?3N_WnJsMtdVB{}-`#zI$E;8BaohLr52dSx z+zw0Re#PA~_NjB(o=@980GCFpmJ;b9a`_GxDG5n;v7r>GV#DAd1t5s~{^w~q!Sx#q zkEPwmM%CviX9eXeQ-;tAUWB(=>dsDs-@c^)y}822cS#{xr~%v%mr*;JxP(NsX~L~% zou2;w*f+JyJ%9gxnw^)&z|T(sVM;Rgrq0-n1vdB$MDF?$(;pXTXb4aNp`k6h9w)wF zzE?OoFKldVm<$xqUc9Lt016$@V!+7As0Sbe@d!_<9n*?NK_;o-c{S?Xg^y28-Xtax zfZK$tCN^g}-rhDP5pY-y0l>puV{C+&1q8rzsMb(w|9}9TxXtZtTLM}EG7#hb???q7 zpW@tHp)kI`Cj-oXRrNLSn9>g(c!h=%BEANdtzJln;0v%$P~vxe<}`x#h^}hXIP;K@ zk^=Y&0I(QB&37JEWY~5dz~7TeCswr&^`MuysJFc4R0f8IZ(hIlY;G1uH2P?Fr3sce zw&-R)T1gIK@(T+)AH$~UHBhL_AS_HvNlA%AKp>v=Flqg8=XrTm6$3kazT7ZiHJ(a` zwXiQ=q!H-(>eVZ-HSq@z@Y3JCE4G>x%g)U;7^`-|%X>}Equ+?Z&(A*rGLTkKkb3+$ zzE|9z%dj=|`9J{qxb4IW%gTGfb7zz1ipq*NUPimakcXlM!#%j_sGqDH>36XUH)C7R( zK0Uyi2cCva^CO0A4BI_1v2*Yf7bqzM0bQZL{_wukq~|Jvx&Tdy!*Z0Al-Bn*4EY5F z5F^rcKgejz^*=Z`py1R)LDVAx^IIPJjE}7C!2>Y}ULq&k%4B3@6A6~J4PPU#lMnGY ztZF9;*x`X^5i^7DMKQA8 zl$4ab%Ed(tegY!Mt#jwjt%LnXS0;f$kb{Tgx0*op_V&Jxj}P+nMD^vV6Tv<2&n8%| zw_MV_3?BrwAPGAFt!V^=h@fOX%j8D;pM8Ct2F*C2nR1SGGBPr-kQTtOkKRcVYFF4` zZq0RhY|(0Zfksl=+uKV^OV@vS!|*00g(J#s=cl^k_B^qiynOM?xrf==Dl4)AGuHnV z&Z@4kX8#-4S?U2^LE)(fMn;@^fcMC-V1Sh+@R~P5*vCglM@J#?$JN!fJ6DwzRXPW@@YSr3n$Y5soqTsG6Z#_ey0DuO76UPmF zoSU1AxWb1?0={bbkFRiZlW3K`VE(atiA}>3JQ5@+G~l|#APMt{{s|GY2$B&t-C7z{ zkx5UwL75={K15bMJ&zneK$ODUq2e*~fxX53dI6>P{5d{KqtcccR1<-a05j46c!(u| z|V zVe}A)jt`d#DR^H{z)z1a3J>HcV|)H~d|g0wT_HYz!93jc2=&#SC9p*M^gt=a{gByW zr2N(L@(aW|AR;uLvWMm8vu|&2qflVE*ZT8s^sb44+va@U&juh8$0##1bG|>H+WqWg z&p>@4@;V??a5kvBkU$kbAGoPMZf0sa8O%{zZ&`P;D_Iu^%E#}#eFN(}4GzFZNQNQA z;eIWtt*zY$ky+1nQra%{6SA$-Hfy}+>LzO%i} z`K*)T7;p{B^IHNRWRFXsV-7NaK#L&*FflWm0{6eakd=axj=%=gdj4*&6!THo&BrCu z8a!L(r@sFFbuW)P(yRZgxA**$XWD+_a=6WW^GP+%8)+Y~makESbV3wELqm@H>uF+F zUsuQTJU7^$?|INMGCGQea#$OSb~@f(_yM^inx}y}dAx|5bI#XW?b7OX&wJ8+i%8xI z@$m2CG%>9$B!Ss6|l=~oCeTr zWoL(p>dRHdZ}KNn&sMH;cN-iWL@6HA$*K#0oFvLDM#+-%GBf?w>dxpq8PW3R&0b&= z(IHu3$>-0$j1QfzT~m$8H10}n9PfR4)d^fR@o5ZQxDvQ0l;R@S4ffc64vt>NU+wY7 zhEJbjAfY>2vtijB6BBb1+%C!!tQ4Rmb04L!^KFO&FP|Xf^s&3`3*aa3 zjEotrGgi}UO?zqS;eST%!y=2ZYFtZ8OC;=o>NFBou_Uaouaj7EW-bqrK|Zc}-i&+{ z^`D_Wea{p^FMy}{?lkYB+^DEmuh1YjE^=6V@&W>}`A`Y7z2L)#4_lsOM;1gxy?%Xp zYah4}lr+hkAgyb1kdOfd&=}3CKDNz{hAPmh!a_kXW!^B*e)fzBMOGCQ!_8+oMy7UG zDF!2>6YNvp)HG+^u}5|Efs%F&$QbwNGoY9jkva&&2>hR#p59pgbt~iONPbu;ad1!r z^;%Onm)jITE^JTzbEf402K+@qd%XbjL_K&x^dH@)fJ=sw_Ovo-M zc(S~fFU=^{7Dfw^<2y;&&q}-J8R2=kxs5=XaOl?hL`FvT3P^b5Mdd$;jg0gL-#Q7Q zvm631-1?iy$ajhy+}t0Vd1G4Cb=`cCv~ho9TCC9;7F}dB({7M*%dj=XAW}Z?--!v! zP`K!6K;7wKUV6etE96`~z_|Ig0rp@`<$?IL&GZ*0mp)i3_(Hev*o=86DZIk8E zs!PCov_aY%q$2}cS~ocGNIBBy7bF};bg@j8(vh=4hDJuJ1{K`B(HS2 zX_V72Do6)yRldwpUw=cgi=*HPWEblWGDlyBh91w}X^*fUD`9VWvueD+q7wZr!BuK} z)`jha;K9%t*emC)Tlc}_JB@dlx-c12#)lbO(CUE+A*QDf2R$+T7SE&c=~<{85)Q7A z1X^v+Kcb+f?ue4vlQM1dFR6Zivd0VdiZ&4%HklqI>q86d0(>0%Zp0UAV&XK#EJ%{T zg|1WAJUltvDK_f3D3{1j4E`Ka5%kNN>>H5^A`Kw<$<@`haN7hU}#{a-xiJ%Y}Bc;^N{PH*Va8q&H`UEf}^g4IW34 z7~T*1 ziAG<11nG*4W9+VthXb4Rhdmsv)dlO|D#qdF=zc zDlaZ6DaLj&cIo-rVDWwF*PXyqKxChsm{2SzeDsFp(DC0Tk#wTx5Gu$=F~DOTe#!Z3 zC1xxZJW=hyVFni;ANJ*{&3JChPhv5*Wu_0d=8P-{sV$D&%00c=9dceH^>r`$tg9jwXw&d`e+Ac_#e*gYWrnRP1M`X#$ z$EU6#u?C5CgK>&m=IaZwu!QpRavP5ogt7*Ri1N&oPdN9Qao*R*hwLa3d~o{X&t{e< z3cntBttm^;|H(Y792h-)THn!u{~sg@Ae#xGq(o2m-=!xY%w+V1KZ`l@@5rdBg8>bq z{ed|9`uYscFflMtC|5VPjrpE;HqY;O#IU1DlXNsTHAVN!Kw1Pqq@#KT*oJc`h(3Xk zvens9M_b$2cmXklLj2cE<;urgt+JbPa&jmXcu>~TF%T|DaRgpnbupC%bwr^QQbgQ1 zh6_K?(9)tsRiAM@sSber5*4u)e*6*u^qZKN%eCq&^>1K4**{@Im?T3aMt+Zn;v(L!P#QUncySqD6I!crVDdYO)W+PZW8p`;4 zqSL!M84uEzFJDeBE#;MjX|T0IlGl-yW&~1T{m|E+E`gt6SMa2UrH`3oVPOGL4;ves z?uwVj7#J9-c1!&TxdX}Zo1~=tZ70Y}0>Z-FmpmlYF;6bAZ2m=$+c|*22Uh^O30-=6 zIzlzr&Ud4M_B6lcGF<x^ZpO_Aj66)6NaEiK}m_w z6~K{tYp~rcwYYZ=4Uqnr<8USLs~rxGGTCCa z^9~+lH0MwN=9X(dX8;X?@&vmeOL)J@MI~T+162oPb{JF3^FLGgme5bwWa35g|Ys z)Lj7OzH4`#5C#C&3o7ZuIMAM1vQ|-A%8UB?z|9h2w~C63(JucgYf-kbO z*#E5OJ5YzL(#C`1TF#fhkbo?8T_Q&W0C`*Z#$CO^#1r|g&z&7_5g|nxDJiMr%?^&1 zF{?ZwA=mv2K!5p#hZCt4Xa_=?)zIIsR$jq`xOH0By#dsA@vGq5H4 zEqM+Zd3nKLBIqc{7?Hf=$}2V=9&)g}rgVv5G7`HnA1D{}7wF)l5U=9Aw@T>Y;Q`4% z>NR5{I0QX_omN&>^?+n_GFLc&VF4QKuC_J}6i$$oR)2@?Zo~^vz$@EJ18X%*>1g%U zPFs3UpZfUtVAwA7N<8z;0YsJt*bJe40t0bD9k<4YkV;H;PR^C<*Rdfn2eXE7210K5 z_AOt#Op6X-fsKugQT33vA>87XxEZ(!gs?b1K1QLS_!R3@5FJgxO2+TUoSpPZSw z<{A!M5JH?GYzFZAmZP;mE$e~t;^5+dV7nkrzL^HLPvFj0`LtbOEWeSiNad>?H0)-!|6gHyF^0)=qa*WQiCLQGT)uF z!#g=S`E@Ek6o?RFYhS(w(3|tlqA%c1;Mrq_pRW#=5dl9ah|&Wl0KzO5>Z_S6AT(Cg z1bB4jEzA93pr~O#64yDnxE|e*efThjSvltR0)*o?(kd?+btGv2;=e19)B<>lSCNsV zYK2b-fv!#K?Cm8<;IqU+9q$fX&YTVbdO>JE2si;y+8p z1Kz|8lBwXRQ78aA+~z=|_Ux~eji;uiy#gz41hO5nc))hvF)dijpeQR8G1d^7E|`#79Ln)!>b7GF+Np z)UI1)zjA?u%_zmSn6E`1)|p0 zR)nsE(h3%^QXjO+&I`NjsyLp4uj>YM2S)P;H36j+P;-FK#rjQHoyo$~5Y{}Fc76T) z3?OR-@A3)?#1Oy`Ujb`kU}FOc)wUkMhOg?k-=9r?U;%IE6CY1?o?e6iYRrIEn>st? z%F9nr_QnlC>nukljoy!6S;!5Eeq>>B^E?f|C#ZEJ>?4#Ik;)DvB24n}K8cAmC187U zd0B+O42r>dMU#b11j1l6kCj^!C zLMR)G#rgaD%l!hDs-yZONZ`-XUbc;(+u?1L42_b6gtfB^c+1qRtgIrlVeqSZ#>VQI z9zf5$`6aot_;X{aur3{dL{U+ZC)}F0wzkz&GcLkT0UrXPY2nCa3rSD<|C*lAF0fdG z4*+^)m|8eXCXxxt53x?}PKwIPO;CP7aD0iyC>4bLFC87;@7^(#zWC(@#n;Qs%($LU zcgjA-^IKm9XN)LbD!2-8@Zw5JBnaf0pARUkJ;XzTe%{ZK<&_m{=va6$RDuhh#yc*K z68KhNLiG&|y}?`SZ_R!itn=`QE7MVfuNRk=#>rGjIq%})0{Q~Q@}{vdI-vOP!s|n2 zmSLHfEcXSvffFL2fVWI%CMRo9YB!JU{nljS50I%GIwgzCdvo$|4NrqDS zf*DVNtke#*p`M>8-^s$FGO2Z{qeyT zWP?$sva+)G!F_gaK|=@vOSwFLhuC&Dkt9G0-2O^&wYHa>#X;+d(+#Z{qyQJy{uJjLh zhF}12?0NIEDguxN`W6;)0F4;}#c(y-m;cVo1F~t5;*g-A)`C1X_|*W&NYiwx?6Y<2 z+yjRXz$=U^Cu+4oNdQ3Uu_lPx+ZA6nH-9*3m&w*oR!7wen8%_YB$C ziKQic6bMTSv&`?$Wr|>cw?ZKm5BT(xhJ5BI;5bo0&*o3WK$FB9ZkE3iM&YAH`b}2r z6ZfFLjvFo^CDk-MOs(s>fr+XIhYnd>VK$QzB~o32?5q{|Fyadr*1r!|Sxuhn{Pt}F zVnxjTrRbrO7 z!0k+)p}K3`T#jKEz*}Y`Yes@B2*=9CMhwa~ATt$T1kOQ**w&Y$tZ!nX(eo|m0w`D; z6mwB1kZpHQ&pjojh}V|~piY!1;zk8A>2GUffjZM;*jGtw<$)@@B|jt=@8GEOiH(hI zwEG0ec>+2;kPWFQ?PzPmM)WNyDXDYXpNPH{vI3;y0Vezo6lUhI5|m+k^)J41J9!0g z3nY`x@Ht{qQty(I+i;g@fQ2ali-Tvuw6og@vS1?a!M0u=FFsXD3VZJA|N1` zn3(VcpK5r#zX5lWGykl%*s}Hj%L80MT=FN2Q2_!>OhJ$MF7if%(I}fe^aN@ z2XfbRaI*-VVr9h%9W*#7q_+uat0^dyfm@xq|2G>b-rC;w$;vX8;PVd1RGnb0#1ZMK%i2t3wn}V74onATS0PZ09H<}trY^@*alC1>)4@r04xBi4a&ealNX?|8Yzv5ch=X^$yu7Rqw@sfudxlh%fZu3)FB1uXA=bu29)5&{ zUi;5(rawjWpU-j$qJu0@aO?l@=t=lXd(8iO&HrXwXtt^?dbT6v0QaHthEUKw@_!2E z-x9i-{$RBw_!3fx0e2$7=bNnofdoKz-u$!b&(JtB4U`l4C;_COXF^OZss@k%ODlBL zZ%up&vcMyLG;@VS)fPYdL-SOS1zL}k{QFkr!(7S46x|;A)Q<+bYCGAvYRLPJiK^_F znB=49Sl(&hS_!f^7yZUr`W@pI%udcs|!DEe4MSS~lo z+^h=nD=PAGtd+PbYImxwRHA=pz5nCIt8HaD^Gu4Anl1-w$VI(Xchuo8fi2Mi{0$Is z&fPIbJ|%f@SbeG#o$cd;yd8qq+slHy>U5L+k9W=HERm11sW`r@V#)I4JN@wBxH;=l zUW^@Rb+!txU7z)u639m~j%Q)N8de8paF(UiLwNbmE&H#}oR$B~CI9Ptux~7Xv!Xx3 z$-n<|cFlk+H8q`j<6`r_9Q>hZ!T(OnuVUUj7Q~DHn@5j_KgHeJ^3?Q%N6!pU=|L74 za1q+Xga59z+4p~|wK+}gpQM(47IQ8DwgbeV;%lApf35@ie-H;69!n*q5fj$s+<8ev zYN-ES_BeksbpPpM{`{NW{@?vrAjN@!wFKW3yGjc$DKW8IV)>t4w*Tv9{XgJ&{#@8! zpUu~0puka_gP&B@{~vtkpRFhV>jMABzV$wqO0<6~`QM&wk6*!hO$4%d*O~hy7{GzZ zlmE9CqJ)BFyaM^;a{l)l|3CEE|92aY7@dZ8&$k<&at92+8H8U_|35fu@cAF(-ANhQ zzj*uX2Zl;C(Q&287l)inB%Atq6;+j6wkB}2g@1?d4+K6~TB2M?*YPkOEd78VAnxdV zokpDq`|_Qem?%BH+;IDoq(^m5w0GHBBZs@JcC1iJq(4w7$%}p_1LKrC@%@tb+|lT; z{U#URpq{>e>Y81qJrk!HmwJM_)c3JW%;F&(-JyTu-aO$`qo=I-y7>i|Lpu(B(dKr) zpUzG+eD+@#bSJI&Re?gWCYYHF7xLr|6#6ZPycnsXId?`{_Bu8J8YaMF~+CRqPof@K*@JX*y#P7$agc7mb#%>>lQ^k_2o%B zl5?jOz8B8A_fADbFG3d&yTF~)mg}Ku#_zq$V{z97t??DsY84;rN~mH!98E|w6%?GO zFkv`!Vsi~2Zw~f{)@rlGT$9mHcc{utaoBa_#f5_#J{$6FY|4>zj^+BTDVN!(ERx`^ldi+eYf+^sVBYp$D|!)a($b6CE+I zGoReAnPKUAA5T2A^E`AY^uwDJb*`dZVdWHlJP+PtoIz z8@~GTHDcT7=i=kkB!AKmFLJL4-nv9|OgDMBk?`f)n{6Yt(x2U>g`~LypYN(U^RDW; z1T0;*U=Zav^RAi8EwFD|v|1U%xTwY?t?;c`XIyclngS}IGj4J6k?|&@8C;#YlvjC} z(aQ=&8k6$EeQOK#gNIB;f1$Nr^pk!l-IOnTrF?Er+_BbMS-9k|nNIQ-o z3~Z63%WFG^J;$WjCCeieSWJfj9?_mlXCspH>@!D-5)wXYItl3&S`714iA3w%vDOtyF748Qr}_Q-XpMJM_Y2agU-s zt)HeQru9EZi9un+bd(9-gzHW(>U)Tbs=JG%X5{(Wp9ImjMfVRZP%owFob?x(URhXb z^lG%;vC`L-%DBZnAT>P3uGlt)H+7CnY)z=`GilkIH@VduxAH7}N^7)IpLv^o>H5~z zq&2xNOzE>6LWA=3{fs-bYk~HhTK4y|xhst8%*UrS4BK`;m)@qy7hWvNHNLs9blf!I zaahnj@Myt|H#>~CMyvi~DJA!hk5+3#3>b;E>dS+r7KYEucVC>p#Y+1Ay7A@t&HEz) zXLsj2Uc~?OlkIxOnQsvi<#T(a_CiQ%$Cbvd6`G}n94*qf8dNf^c5`dfW1rjTf7iIP z#oL=;w5?k5mXZgGoBYbaeQaxSPS{YmxhBMay!fsUrY|}Q(Cfrt4Q0Gr@BW#a4x8&4 zp7_4oSAGRBi|;j$(@onXyZZ+u`#zay3zB#SNEM3o4d-w6sj6-S>Ij$Q>Y&FjnmH1u z_}pqxxbWunhmzWuN-BZj0jW>%Khp{_gN%!D`A;sBJ^C6!ksjtJPuL z8*}4{KYn~kOh$q`uBGrMHmjN=PyGkMO48!H_zJY%TQ*ip_b>{ug-KhjOYJ&)zV~2V z%ygEP?`r+#!g0ZhkEZu^hK{goiMcBMER(bJ!w&KKq`7h@T_@L&C|33`*2079p*^|a zb>1#sIaR${aOOrDj^2clKCDDk*lCWb`&O@n_V2T!O2J7~)V5uh;pEW(p}w|MhO)A{ z_sg{ylaa9}ByDa~p?Om0*15Mo_Z}|BFIw3-h)HvV!D_@F>Qa0UAPi+n$2whJB`b%#>}y zj=1A58>G+9_`f&H(VJJ@Nws&A{XKVSV&g=5KiSQ*^DKNAj5*!>5_Vs%aai?;tItTN z=lFr%Q{!3pqCM@Os(Jc8_7=NExu#x;%i2Qa)M$0A;cpW1gdS>rDrFwBFS-AjO7ctR zmxj^duE{m(ATL)LW7VwWJ43c6IKgIqkomMGB~0RM6OkTP9unp@eAYpKt2qx1Z`5Vz z$y5EISvO`kX_$M8RE7B+Eb$`E{LbiyMe0ZM!h`b1%jMDe?JWoxUb-=gXHB#&RN+(* zGez;OnS{rr@YmOiU$QQYnDAIUFJ|eFzJFF;pv-W4Z4k%VPaq&vu71bEdwrYk=p$c7 zdahSLIEgsU($H6Hx_s+Xld>5*KY98lj!ju_TRg{>rzNa*ChATRCO!V--( zHMk90a2u2D`X0^I0qB<(mWCYp8wx&`6b3g(H=PE!#H}}sy;RN0%L}wOr%u)PHdA~= z4$Uwc+O@|xfi2rcSXhteyKAq!Sk!{DJ;S!l?E-DLkiN4$qgF`)m|?iG_>)KK-Ybgm z`|qq~7J-zMZG|2=XXGPh1H2OMwG>43wT(ZYr+w-CUA`=@*~fh!6h8Y`5qSBn3(I>r zwI1Z6rO_$jFV7y}6rAZCyCzn}dQF~nv0r(nnPtshvao~`{CHMc;d^}&{vNU8;(0tg ze%(3wUw{*06|@>Y_%VjLEG-Lq}qS($h zt{+ljDkMnM4)B=d`F=5p>YY(6u|hP^Qs%|A5hiJ@v5~o;+?q-RGx^voo`kd%j1C zikDm8())|uSJufCVr8Hno?UwtR?91NiO?@7C`iu9`2iMh*GQm;>-U)Hs-ykv+?=UT zDSifD*ob^THotv(eE5x5`}l{tquhO2bW*i2ucKIDvc)#>X8j)_v{uVwG{SB6N;f=C zZc`-~uihPY|31(C(Ob;v_q4jk!GYzqC-v85raH?KuBYZpJ@@^X<&a|7VobgM+g^XY zqq803R;j#XUV%LMqW`|X!5q;Mm+eE*+biADX~(NGddoWk=epLg8^$tTi5=vBawxW0 zE^J}KRV5>5&+lb*yStO{vo%D1`ca`NyDxWLou$FI-{#U`^2Bt{e;WjwQrF%6hV_$t zQFs5xrPy!`z3KrgmBQy~itc7@*D#W6gE^}G8qzc4#16(q=88;rE%dM28a;ZQ;hOFs zvA|zW$aE%j5kfYekw?Kk{_xydw2bTGfzx$4jXPA8egb$qXZxoL5QX%Xdndbld!m>- zzI|<4!{39R_+x&8MXHZ`SHHA>X^pv4wLZXc7SlG&qJH&r`^#|*a<Hn>3zpwy8Z&O`xV?)Sp4jePNre)lBssa*uIAfs}g!`n{_>wuGdRU#ud|!C-aR5YYue@l6%SJwO^36uO0Xr z{4A>?rhQa#`0=>B-R@OgX$|=^i=+Uo{6*%dQGPq@yjIJYIK6@HV!F&Dxw}b{{dhZt zH0SGo39E1T4sdD=v+UZ{tG9=ZM1HfV`{)uFsR1qz69}{S^@sC`Juq% z65+Jo<0kR6G6?GR#&dCU{#4JdGhWbdmTWal+{2lt`m$>Wbn0NS zi726z{C?cup`rV@PjE|Uau{!XBy;He@~QJrZm&50X4 zY|=meG##}5Ha8wmXs+Dw%Rtcd$M@wbFHR;o7kNr0>u{6E+o#_}OnjQZ5MMr&zGu>6 zt!XPR)ZaDYUB4Bb$AOOet&;pwgVv2*?#UgJB>!@jC<&3k#-YNqdbjb$r#$GS!me9e zCM72-#cM9Rm(LA*@P{b0xq0=ElC_zq-J9H>&SIcgS0yT$Hz`!4Be~!g9a%bMq%re= z>brsrb4@SyQzI?fPwpvRk_ADA!^3l{`YnUH#MF=YnbRN%cw6E2k+E1R46sS!`Wsir;m#Bf#56&7F zmw7X@FHtj>$n;L`h`y*LQ(RyY&~iD5d9r{`#a~0zdXuui_C=N5ss)XXhmxZl%t|uU zQ3pI4CsZ1IXl6j=`fSZBTK=k0&+t`Tox)Atu&Sv~ zgaOVM8HCh2#;8ElA$|{o3@542uqNjZJvi+btokg~q|!$A3aR-kc4%6i!o|(6O;-kc z92$(i|5hER%>3BaEX0yeL43zK2G8isLNuIE*HTK&Szo&kfV8gV{<&vr4_d94&Kjoc zIYV?OHD7dY&P=QC8ywu2r)GVUGQ2Z=Z~1ugZbriV2eZQcghy{i{HqL>OIEvkV}$9y zeEZf!zw~`#Vz<#c4*CTqtZ63>RMma0wI!W-OAGH{GAIj&ynXLj!^U$5T}%B0KTqHp z#ceff?HIBYKiycmwi%DL=pTZtq6df3bBDoxnN&=!qvWgTiDc~t=@G>izi=_gD)eK* z!mu(s=K~9B;+gwAD2caUIhg&5=&F>hK!$;d+E5i z8nu>sW0kg+7t^L*;S1~d{=Fr}JQlid!?==H$P8l^ey#s2k~4XOORbpgCft8+A-qR7+D)VXegE1~9K**@aQE z`b#WrdE;A_2G_2-k7xiHU7lJS&8;$dC4sOihn*|C&h#x`Fi(1RvwjkM$SO431Y7xj!vuC$c>+h%+pTfMQP z*W)kroZaE)zs#}5bu&?2sO`hD$O0KY&u1*5R$!f2&=5X9nw{CAzAVLHD!1oae?`$A zOH7ysHi}|vS}{bC`&Et5$?2%b^65gii(6>!@{#wg?gEdmkzDS{%ihyhpIr%Lze5T*gr;V+nPMDbLQ)N=^ocaJrU>N z*eE37Y;m&4s1(#SdJy!yJNKqq@)MMNMew{tjWbnfp&*->nHW`k6_3}z_$P7_w~il4 z9ar8SEqr`n*OSeCt!0O998;O^;f>-j0KrAsXL!J~5F`u}8O9QL6q*k$xnT^?t~eDI zK2nQjX14fFAK7E7QAM)!BDn@1dmzyhOg3D~n59PXQF854*|`CQ5ofseB3%1WN&!DF zT>k!wU(24+fz!d;TaLo3NB#}nDnv^UJ3WoQ?Zs9{(4+)eIv3`u1X{x<3M{7MHC}GG z%+Ei+q;(zQey!OaEy=sco-d!#)RN1`TS8>j*wST8?u zI)^IK8+I&Fj?h+3jtSXnh&GHi_QLUe5J{GmlmANf?E5SEPea%G69z1KEOZ=E!uM%E z2=meR^9Eh&>5w&35~yAIi18-cgy&m(6qzv)E$+Ko>9$_wD#uIWt}{ZHir;J$nQIc| zad4&J)&9M`r9{SK!diMpld=-jH|{5AYuDVR#*)fM#df_B+?<~~6asKU zy;R*~KM3;GHCvBVIa6K?wG=q>>1%F}{H+7B1lGfAChJm+#&xzEG|Iyq;%bt-Lqt}s z4o6va1H3xIQ{nVj1^<#JsQm8$-u>fG5p9}hiPhfZd5nB)2R2H^1WFMa+R5%GD>Ub6 za<%!`a$xn)^1Q#WR$;Z+Q{C*$+GbIoGtMCfK9lu3hu3}Tmfy>p5wQvWlu7Q{+I$}i z#AU33Z{2TMyPgqPrxa(Z`F3bhP^jkUT+HWh#bfX)-{%_~Jza)eEk+^{2CNEfrEt4E z7RLVMbF~~B@iW1%rCnzP=qZ^gO-A#s#T*Oofxfra-P2glQO~H*$BmrIX8G4~Inn-m ze5`d|M#jd5(Ep9J&_T2R*@(Y13b zEqhqp+KwsW1J#wHyoC-fo;YYyN4dr#VdHmbLv_CIFw1umxtcHlR_S zK~_dg7OLMd>{@=%QgHRUly$@aJegQo35AZmb{f)KWeR?NY8$xXXGSS5;qd9Ly*>Zf z*h|o2#)ctxyW}?K%cG~+*|~a~m0eFsrl7En!NI|S^rUVcd^aejfL^CpaQVX&k^GWl zq=69r2Ra0A2w6OC!cgw_IHemi|CyD3wGr|%U!QUyMv((go;-O1W9gNOg_6RuAzIvI zRF4E{-RHxf~^Hgpx z>4n!ulBw5Ut*_3ctku?fONMj@LHQl&Dn#aK=q!H>;OYnqria~^kMk*qegR}~PXlI% zpVYbM7oGGTR>C~v2c4>mupd%lV)|m8MR!i3#(pMv+Mhh`U~H~|!$P3Xs1fGu{GzUs z7PmPO`rCOg&fnQ3h3|uIQ3DuYAA~M&?px&7t%c!q7-V&z5@E|PT2yoBgd9=OU<`ey zvYCYmrKYZdh@{^=+l`P3sB+q3s;;gs@;GzrfBTA4i%|}DANze-dQiSP&5Jd}<-0;F!LMM95vUbuy@wbz=?(K^N zw;0ffy3-(%cHYTV>`ITJWXh+(ROM0a91*w&J!8=A4`a8DAZZwH0!c$VH8kVFU|=Y8 zjogTWZf|5F9tL?Sp?}l2jk;pcV0}B{di$9=r4|*WYPvXQUC@~hP5DJ|l7Nq|FK)P? zy=B-KX=Qyo;LQ)~WON)BG}oh}qI^J)$%Y47+S&|ZPzKR-q*F#~YCGO@^(>4$E)W0PX4RUkYyIEaRgR}?76|a;KrrcB3LN~lbh}Z@Wjwhnsv;yx- zII3Wh802dOoh!aJ&<2Np=_WG60R1jxhum%qI<8fxCro8(Mn7Dc@JN|k47eU93*mzH zYnNNy%Qk#GN}+qgeIDG~+k>O0SFRMmK`>I`biVNQ(DX)Dngjxd4%eu`ft6pMu*b&6 z%3byf*30FCD=CVt^qlH`hI^%zX3BYK+1vA;?oSgTHxy1MOhV_7`#kiK`Qz01G`iUx zdr~?MfiQd`BK5)3gk3wN(_Teol7-wmF+SDJTVQ6BPLx+(@HVIu>&-C1r!m;eN#@ra z@;M?dsE_bJT!h}yYrA&(`ufP^8*CNRj{&!x4t^*JMgOQeE)TJC_>WIIC^^iVJl7j} zT?!ik-Thu=Wo4cG1viYiI?~^}jl#HqZ>^lV7W&rpJx^(sk4G*i!iR(2B)!*8^kEV+%M7# zj2sXGqjpM;)ms6(8Doqab-6&8gFU8OkE9z8*D`4LbXL$k{`?t~ffaOchskX;h@5p| zdYZw-&Elb@M%3%O+q$z{<)7umw5_d2az2Ur*1qEP^XPxVbfsXP|0bXM1{PbpL5ze> zojWaJW;VYAx(7_natvq19I~^EZYj@p%rJmIjB2so39;ogZ_+^3mo2s3plwTner?kc zbWvv!;|lXvH-m+;ouRcdlnaN;mAEtl$*DZft67`qi zVIW8xlVZBEYCbnDjfsVYI0NkSG#3s9c!4Y8ACZu$mnH8~s%0PQ?@Zb?SwFXgmnauib-$LHdPuXkvFQn}cc zZ)6$Tt4Q?UAe3u-$ydtXfhCO`|#M<;vl+^E`n(@Vb28QheJ%}M8Aw}*d&W?_b6Im(ljW8B7UL~yNBcf~XpPT!8 zY4iBtK;(c09n8J1Y`*nr*OKadfV8}EeD5w$Kb5Dt>avTN{ z;ow*gEWizL%n>yVWnCjZ)`li+n3eE>^Dca++eU`SR#?C4M6!|!Gw9e-uP_~-Rjt)} zS5*nZ+|mYes0|EWh;e?3so`-BT?*Mn*Y-Jt(dY)iL9b(C{Ghj4uig`l`&B8@iTbZ| zcm!&XH)TWUbjlas!4OmGJ#S7JPk{DdL!?80v!fCJin;LPSVz7OXSp#+)bH#Wo}(gA zT5#$EGMj%HW=rVk=roG-UMZGs6_w6&wGz(uM>L0j_`rtT3eu2lU~m;VQv^CZ@poWu z0%jR8;6~v9xOdRgI#_P~PB9ry{eZqc1Nc&CGW3IC1^d+z<|r4r)zjK>_vq~fp8_$Z zRS-Hfiu;2uOao9d>3xqIMlX7^Z)MMpV>_w${=SEa$qm>w>xJHHLeASb5S^M~B+GXb zMj)GDU*X^waMd@FE2bqUlZbeavRcE39XXIVL5LYr1ap@`T545s?eo~dHwozaVaUou4G|k za1+im@!kB7-d&^_6yO^4lHb_211M}oy?lt=+dD|T=$i1=FK_JbO2Ylac`PB&0i6bD zsnNH}?6X{t+gsKVAsXL9!WkvVxk*A*rFFy`5@FFb40GYHI>XR?4g;H>$S5f2 z1e`2^33H$v$Ua)S3gif?{A6@^98KT$Yj}7X4hIlBfr(1wkS_HC?FJA%a*j&e#ul7_ zhcw*7pcXs8i(!NBUfbqjO-s&pR|Uw6jHJuh?Q< z{r#!v*)cjcHnxzmFF3TukklXxzY%$$p+a`NKK|=S&xX51c>t8qTBvl|zopg9nPypD^hm0A|e_@R>+Ky9V#;tB721F-}QOk@9+8ReV=-`@6R}&>zs34*CGBo;NI58 zO0mLC;UTrzv9Cber-`l{c#bgVA)Y7t zK9y%tQJa{Un9N(>QNbV1+SaxVN^Z|7$({M9b?%4w^*Lpku9LQq*9*t(gj`u4u#r%J zaiyWZa^GkN?s3Vsmq}liR{O#s-6ULoY!$3O*F6!k@FBJ!Gi7CEihi1sxQ#+WLIA8> zz?_Y7r`IB=DgT~1r;13p_z!*VeR?y&@^OUfJu)&vj0?d@$DUs?j{gF+%9mUl!>CB3 z#&raE#mV?GI?fC+5LXi@ooTCR+wW)%&O7NB%kSXgI=GqVR%T@IuiT0aqJtfIM>_Kb zvHq|yfmA~pat@My;i6U@W(}p!T<2ldoV3aH2fWG}UtVB+o|c)czD0SjR^hmgO8?i4 z%zK7&ze`sYeR|)IG|?AUI&8O0Jv(cWblKA56!qj6dXk%kz z+L@cq7jUyJgKcGL`oi-fL1QO~UK06huwBnVcoueF5r^5@8VE_C#W>G-Y~iW0m$)o_ z#iW97?<`B>hJ6V%y;tE3V*2IOtrmwr!l|ZfKEuikA@il6@g@q{8VHc#El5ka>+do% z%aYZD!zu&?zct!^S=9OX^39O?;UnoUgj1gtG2WT6cqF+@Yv_mkiK)Vdcm&i6(*=Fv zfo|)-CmylegZo3w-(CB-2G1>d10Zma#R7OLcoRU%!~R8%}9T^Ba;*Bp?3@c9$Z^wboQ zSS|hQ4TSrS7v8s`#WAtx1vT&9e>r}~ojdu88q0(V@DpaeT3 z$X_7pqWkpe6S<1e(&ek@?a35(oQT_&DQ^AKLuCbWC%nhoi1-pp@&EhS=}V*Xl56m|62nCRbkDm6FmBm% z(sDB#c3>&TxY&vFQd(E1{5u^IscQflaG3j;Yvbi$d)wODZ2u}4Lx0??oFgyC|M=O?FGoYY>m06Z;?7WpK?B^I;M%}Pxz?6p^q-^&J4ZR?=0=s# zl<6rJMz=?BBjjPN8Ah~}D$fC;HQ=6`!E!^dbjErH+KNv&>Nb6!w^L5R9RU)h2dwVs zco5UcbPb-v9tAYMrKTN$$F@)E0Mz$bFWL93`tLbWN=!siMPMW{P%9Y5Yz)c1xTERX zwS$|kLm^mFT}^|^!OmGb$e+Jtnp|+1`{95#kQa0U$lD%3MFD?J3iS0QP;+>_;DVr> z$Sp{?g0BpsA<^*qu}bZuSTD@^YVg~aQFn2NJ-x{)$Fp)18s?Z*qIg_hup@3?$Bz^9 z$&Zl6_)x7q%+1HRTnk0p;dSxD-;%unAT_RD?Ipkzp&lBW{~ouqXXBu*B&aJp`vekP zvh7gYCcxB_>@H-B69CR%-(F?fx=-Aru<-h=p6Uko^4Ft24k>Roa%qJb9<0b^lja}1 zT6H${!O-eus_w8%KPG?GI@a(I^YjjXZ=*q@` zisJL1RFWshotX;wA8VCg==#>w_~~)(+cN^*fUj`E@qAQ`I?My8z#zn?d|u)8DL43< zrpHQP9QFVqun_?ceomw)hL-m$-9k~4-T_jADnraC0U2PJN*fdsvKFUe36C!Pcut|@ zPYixw%%L5rZU5(|9nbEf^XWYdr=UyttH63{dUi`swiOMf%F6~)w`dVt*+>o4W$v>n zhHqrLcX3Cv{=}-94{?(~R`CBwgLx;H#Wb#z{Eb7$eu*YJy!ndQygOc#PsxioNjnAsODJe z5S<|2y)(#hk+pO9Wg-Ptg+~j~NFhTf@+`!BKZ0KXxnPs$0Yxe7OYYl`9!}n3xxBKU zE=5d}Urg?NQ7{7^S80%@D}TN7VM>*97zBDgux5nU0<0jIUcmqaB?WI;|HH|ejLSMp z(7aB-`;N9Z7t(v!8ZZ)9;gpn=cg}N`M1YOL805R25NQFJ3El!C0%x%wCp4e zK-`$gx|7}exwsT|b+8*<|9DPr2X&;Rt0+Dp$6-4wplLksJ1w6P-$)!!8h*t;3hGUf z{jdR!L(50WK=a)-D&k#=9fLu@t?4fdm0Ld7scX-_IjG^xz*@GV0{;xUN-OVYkNa{` zvxF^WZ?FqypYXKN#t$Yyl}9^w8-?%s=WT-!rP&x5@he`vdX*HraU!wz6%O65!~p0t z!bn}+7QEg}mKD~EORlv;Q)S*A2NKVvtvk6U^R-0)3pbnmlr4GnQ3BsP~gUc`!>9C`wQ;bK6%HPP^py?mM8&!3Ik4PR}o zWvqI^%@y~yd#>H_z1QT6afq}KH0bwMuD>poIbO6#H_#AU3A-C`hu*;$nk*wA3*2;w zttc{+NhD5dRQxpECd--5DJgwIR!DV9 zy@h#K!EO}n*HT8h`)OnK>bb0zsFQZ=&}~$vP;Rq++t=*&IK@&IzcXlArvSYQQoJFT zF)9jDz%>M5VC6|pMjS#B0CpIJH{FbH8f6u|y%FXCBp#r(=2;{Nf5~re!BCc{SmPxU2yL~H~BZv0MD*O7BetEn-N_>2+` zspudPf=K)q3f9Em943X%LKf|wu%&wLx?CqIeIx!CR};g5@sR4r;#oH<*J*qUijECq ztgNf5f^#-i)+%er$hTxB6o0((4#3NR*x7pt+raIThlX-PebHedUM>(K z<01P9i%`#DTj{qP`&ZP;^|sFLjFlag{VtIFWT%=C9Ua~0I%k-Ja#t2aWDIs5p&Pof z#nBJfP;Cuszk&^Fu%4*<26?QdKmbil@?f_P>*0q6vD~rSs84OYpOKHE~5o z=EJn(7p3Yf1rS|3XknM>pBvBL-_M>{#V6XhxGrcU7Ph&E+1RLpI=3i1`LD2zb{i}X z^^#UldxC4;eY|!sb(PU~hDQN03Bo0@2AodpzesYg=TWDfibuKLKELGJGY)$cyy~A_ zHbB!G(dONBS8BifJ8*07;fbYG^+m)lE@4ZEk#L%BuviC>NF4lm&g2yrOMU(Jt?_k8 z-}$;5H*P?K9N{D(X7cowOAafw*g&ao8QC->6JOqh^#xeLq5=R02GE>J3fv1(It7l~ z;c2&%Jq2avUYO5qAJWUUrb3J%kdaaX7YA4ggdK6PwcUB|G~&N3j*yY$ap#B)<2^d+ z7WOg$nOKfEV3^W!;yXuPV*!W$=3`S)I`}~V7u(sF9Y$KWW5t22nW`nk#pB*^ZCZnV z+*%P4kVL)OTKyUUPU+rN|1PVLL$DQE_(Vhuo<} z_`0y)R#j1n%SuDXhz53m1Z3m!>{HZABxi^6Mzph#JH_{^Lg~3am!FftsrRsv*-l_2WZuFEX`V@U$1`hg0Qt zcG1hpS4h+rNHb~4sCRa3QG2R$v#lrvPc$E2P_+68^p?63%Ha2!fZ?1|X_7n`3HTbpKTjV(k<`AUe7Kbqn7uzL+m#(yB^NI(C z&nh=f-^JUBfO^JwhGA{Uuf+_cf`?Gb#0U%kH-#E_p#`9&v13v6PxbygvL8Ttmz^)3 z1R&uBwJzfaszWkf?*T$~vl@?-DQoF{%#{p#)Q85`pb zb#`?8{MTrUZ}i^BXQeAkU3YBTMuDXb{F>IE>S=v%+8wX=;uzU0%rW6r(rEeqT^2QL zFIP9LA?aP@PCkSY3m#Oi<_MsEg~&mSTR7OZfP-{6w> zd8?Mph|s1sBGQXmH5m$`&)k9@2i_^U$g}o<%YTQy(ZUFULiyi(1$Yi!-~^s$`gITG zWY{9UsZ}^M%Zu#N(WoiQxM!%ay5c>SMt~_Oag$Bc!c=hrOioH~aF@^6plLPzD~y$4QmjGjpQt=wBmZ}1rV;N0CD^7DJteNM#aJTXOwYZ6 z=M2M}rbrb7RnIMZ6|T5}%X|t}zt?rsOc&3cDI(P$TFzM`Je9}+uYaTb$<=x?lFVbQ z2@jE|qEwuqGkPsa%6kEQXk1xJa^DHa7|xTx-rt)M-A^8!3?_HNn)fs75+DaEVO=N{HnR}%suUK1D`!?IWY)>&uXTZ9?xuKenclC$aa&e9`$k zhQaVBMEOJE_d>LU;XF;Bp&uJQYk979qm4Ga=Ym2*5Bv4{puwo#c=>w-tjG3?ewdJr zZBnz5FD*HB_1wctLhnZjYN}jM*|O!tfdjn9j%~%VT-imd2eTEV%)~(txj#d7qN@&$ zqh)uI4$K2`0z|U1zIHb}O^YA#t@S=~G=LV_cUPV*HLB`^Kd#=g)tv|aJVikoK2N9qTv_&uZ8-2Ke&8Qj-}0i`@^YD6%?vNE_2Bk!G)IKdXBJ?g zaUp12U8}6##>B9oRO4B6zR30P0jY3a(f472y=#18qhOiD7ZAc8sbH1D#xlU*uUS!9 zNxP}Ddf@}GDDj&tz1eE3%d8sJ@0;8ug(LY!T(bH_E-{HkP4SHN z`XMyl4!x<;k!r{y}(O0#zufP9DD1ger6DQOhYyYmEJ{8RQLF&c*TinT| zzJmC9XRWQ@HK{QJAnT(AZM$@Ccx^DP3Jix!*O|^w0fK#fr7F#i@l1IyT-nDL7^Otn zzxjI>qlrSY!6iJm0a$|j(~+0t898dP7iFWuIXJ_W8rFHI?V9we$BWv($7IO{+4UW1Q(E8q87e? z58fL~tp3oaL7gqJble=}J|s8yUcKT3U^x;Bb1bwuOTR7s>)@>UlriDJ0pBo~L(wcw z0J)q~&G;4m*O2ky9~`gH!}5Ejn;B%E5%RAJL( zIAO6UIzRi^^AGh{jRKdts_NrE!<1*e+?Q_0ex6gFve9;$TI~G%c_Y3f7GB0M91sQ8 zBbVA+P;_{8Zqac?HT02_{t{wTY5_`Eutw$l8WHdqg2@fk)Y6A{Y})xEv0tW`b!g}Y zA0L;v)WMRkDHF$un(-JgB^H+{*tu^w;(JSB)l6Re=%GjPlYw(TBEqilcDGPv7`g^? zn(-Wka+X6+Pfm^+7PbHT7){el@%`}eK^h})a;0zHo9B3QsqG+9apGS4uv8YJkc4R; zNBE78#H>B6w*oWC9%D1~tRf@nyM%q{1JltanIhNB(sJedv`yEmW4-)IKcxd|sT#Q+-J;%;6(BDsPRj0BDP5}ERO3;Yy zpB1-|srcB4zcW5=x^I>W=;^m;admjh%%vAJ4KbD}s0Jnf%1H6~-js|PBXN^Zw(bj|{lbJVwBwP_ zXw8e*3z`d}YAZt3Dj{Ne>q6&@%46KoxT*Hri5XKtnBov!Q!vcWZei%A`>~^-Ffe#Y z#LdjGBfcx?m~+S!S~fka;(C`4yGMs*A9IeF_B}aN6Y0n$ttMmdUQlOq<#w#^*@MrE zGK$`q)@EcCombHDiq%xDUdU*wr|!xs%7{$FMctO^(rn8TPo9R%?i&6Lq3+rm z%3+m}1x@u*J{30oVfa4nHWjumGUGRS-j0YDo7P?wP36`~O*z&plE9;uJ=YOIRbI)1 z$}oV?^Diy(QdVXo!Tj8sfXzm}>aQo6_3kc-7;5&yv^itva*Y^o?XHA)pMr|0h=`Y8 zT3#n7Pao&LyEJ}q!qQdK%tp_sA5f~Pm2FW#bNr59p`!RuU25S3v!1S*Yg@-BFBoBV zn>t$whW{RqUo-Dy6Lyq0rPNjyC;MRh)}aLPwIB^%-sM8^`WW?#cRv>Z{611oMGox! z)}p7WqsfAPPSnWBznb?@;zS{w>`O~ZC>ZilY6$p7IjmSxa~xKY2%}1_e>{0{ID15< z`f(J9%Ok>l(=9Wx7fm6@yZVp1-4?h=Gv}R{$VL*2@NjnV@Sq?H)*(vl0OQ+OIL&AJ zXrDQAZ$eX3L*uhjb;z-ttgO)ag1#EI(M89Az^UNJT#Hd*@3;DLyJca{iLp_@!8j*4NSN{Q98YK# zN{j`cit0bTn4r@aufNW)OsCjD?c+9%7YJzwwS`5w8Wp^v9zS`)wbSv6y&pqMOPD>p z%qtrdb!BgaPdFrw)Lfj;=R77oCcGHr+J@`Vu-nL}+SR+icn*Huuu;9Z5M_q93Udne znL*A%WsV9JbSz?#ogN2hD_3N1{Be!?oB7zp%NB#k58mwvM|Zh)matj|cJJBqpXGVcd9I^ZZP z=-?l`ccFVSu~NiDamv@lB-B+(!139!LlOxSVoO47C#@a{rvgV`SWy(89V4DDv#kcxX@l))xz}XEL(l$;|d<%;bCM0 zM!yvjr*l*vEb(8t$gJL#Uy;zoqg!t4;uPkpUC}KgGd2CI%S8L1^1=r^j&8>PnaD5< zCMfwdBc-x`Z}5c;V;ec$cM>uS>R16N8XIDA7)=^gTx*L{a|^`-6%fv4by#bj?5bD{ z-4^B<`tLF&`0N@mHU2Fw()I(-d!r+x)D#yA6JvB=Q&sSn7ckJm8%C>pgv?*5biI(@ zNv2Vu_lWn1rXL1)r8+MKnlraC?7KQPp3miMKkhY=^S=Rf46|s}B{vO-{%=|kXl@F_ zu!APVoTVYmj)>W6F%H_aDu@$sn)4kHOeJJn}&7%1rH`1rBuI}NN;yF%12 z>V<>v4vtiz&40`q@QoNdBH*`6^IzI7jxspH;u$?^N<(Wz)#th@=}!rz3|0Me`q!@Q zhdFU0rT}>jFrEy+6uUF1yORzV{G+{YVNM15yVCHjRemC<%85qA^PrzP;8mbq-oF4p zi3xA7Sann}RDjC8Tya6kOc}2MA@q6(mI~-4)}Z)Tow+vBW_jrIz`WRcb;UKYKX{fQ zpzYkjrPDnQt=M?*Y0h51-eZ_JV|3ua0VJhYw7T)Hadgg@D`+}hyB5cHTGp*|1Eoj2 zg5Fb#Q{3dXjm<}7YKqJVD69FA&z?c(HqO|g4(@m_O1kCYB>w=SAB%oGxz*`;V|ic= z8P5p1EPMjFT~l3LVNz{+^JW4FJGkeh&_kACinJc9t8uG;RrkBP@jRoJqZw#L%GM7Q zw-vQpni;qvB1&JpQ47=Fa1}MRqwmw!dVH=-3wm0&ZaltJmp$XD{HS?J}@^VZuqfW@vcHpf&^D z8XVpulMCABmj#-frfGLKlp1&zBSEjW#fJg&5uJ+XSw+6Sv?ND>6Rbhacz5x!kgPOo z|4b6p1~syQcg5##hT_Q(=oOytE=Qqa$Kr?3Q2NedcRe9q=F;@6g5Y1J{~_oZfN}D6 z{+EHn3HPGeJoe`~-Yfjm!#``3p<8_Z%1{jz!$-o=* z&YFsp?zr-bun zb8WL-BC8te-|M5Bz;o32bxIlriUlv%f=Ip1t@vM&5`Zoi761ZTnoA=l2mLh_26{h7 zP_J8e3IQK=Je79IgLjUvSDRoZ<>P&Rxi$*mDEgB&ERF|?jb0eMwjSJt9nV%L z?r=^`(~R#@D)9}9I42*pZr}fn7$a;D(!0cngmjAzp(xkZY}=C<*|XE*y37j{1P#$H zb%bh&%;*IplnfjOv#{U~%EKt+dO_ntBs-|OmHjuC0JQ=cw50hAD>lPql`wRK9mbep zbIw)JwS4mc>kakGyXVp*=~pb#4Z>6L5EBi_{4|ssRyIvl zRTUXV7KZ_+Cr_SCMBt}xk@hME5&a<;xrQiG1KE^fG8l2u>{-)*E8Fws)r3Jkv57^6 zkWAS@Bt&0w1H9+SU!s(t4>19w*IrD9ATt0k-}4I`hDq_(qtC$>tw&*aOaqkhnbb3b znYNMJ^!M++9@U@CTeG>}_{Db{Ubt|O^JLZ@Ax?YJO2W3CNLWBh@kP8g!2CXe;!N@{A-}*-Gi!|3#AlIBI<~oRo?b+= z;OZS!)t>Z+?reD-*?(QGfpq7HiX)j8hNgb?h~Zq<7#L4f`!(C_3GY_QT@r4@HlQKE zP+t0#)wOFLc+&N;`Gg;iO(J5V=V|DM?!nqWAiD+Lc zRD~(}SA@5MJcW=IKwK@ud}Ycx-hZtfCwA;$($Ut&Fj{{w*ABt>8uVGxa0StVngUkP zeSljsITF|DBku5)jAsA!^F+hPA5=DCY{V&exDelZb7>%o$lQEMdqV`14Rm8 zXlY%3o^}=DF+ws33fcyh*_q!C|Jn+f3d&NVU$kB>aM2RhOdV{UMSBNxGYe}anMF-^ zVWQ|(3Z9g5SfZz60wekAK**q&`Kst)2D0>n%^yJ^p9J5KxI=>tMPKdj=l6y1M?q3R zC5xO^xVi8DYe$(Vi7ob>y0?~QP9DLA6rG7K5xh`BY9pix$PG5xG4DB1fd)3(pHri# zH`;XK4*utx+bfJZI_hw1ZGYF2iIi^3GwK*xN)K*6#e-0|(Ny|xG$82Z_yOe7Lnz3o zJ6^=<&eYE!Q8|vOs3;o0GbpFQ2!Nju8G0j6<$F&i6p)>}9zeBr1EEu6Rwuc)IPNOA zl3<;!p%5A~$a99+8!`+L-!0s0Z?uMUJTIB&UIZBLQX;kLrjY;iSur^F&nAzsXkW~6vd-{5gl|%)@hOOrNeo7 z(V%hQUK1N^n%>-Qw?*YwX*|YxnA7lF8wTrmC>R$$ptf&-+ar+Xu)3#LZE8%)&FkKp zsc)k+yz}a?ET!i?%8}-&~=|fyY^j9rks*rA9HhA*;>49|G;%2 zx&V}mi6c6?ee2_PWkzGxyScf!XJkJvIO)QI#kL;`RAMfV;ObR$zDaVQ$&^opCtfp6 z170MP{keRq_xobWPPkuAOfL2#w(&cv>!ct$~iZa9E*;mZJD9E37{bg3R!kO zgkLkE%40pkcjuHBDxJD4ywl#Nx~je`gxYI>74#9A#qhM^CuG=s)z>*F!qAr8PEYTN z7P6+Wd(f;M{?iH+1PH3$nR!`Vy%LX=SJ4*Y?{N*-OmO!tuYRxs zH=1H?V_yzvNJSwPXuNPPiVNs)xb@2aRN#gjWeB znLc=YrNcjpYc|zSjWIpy0UH3f&$CeHP=VtCkxE3zlQ8ZlB1e7ZmzY9O1r1{hWeEy&&47qDXeR}TUe+Ly!nOtxxRw}z(kyB3$eE8K2eGBKhwmFX%#Ox3AFXLtB<^_tu5}o^=W0s->Ka3BC+5I zUAJ#3t9U;}ZVv|W2P(R4IsP^}5!_Flp1%8AC4Yi{hZiyifu(U|ZY#4&kJ&8_``F(f z6Y{?qhgPnCrI$m6IJ`#5VeV#EK^}kLRXqRTd%nbqpE9Ty(3dzr6>WqE^0jtehK;Kw zCSYIyK;1*TxV+mp=-5Rn8#n`UO-s5^|R*e&^KRbK|+9<$ozvY z*Et;`v`R=gbgjK}_0w2$!;lJ?2S|Qbo8oi1)ZSP_QJTr3NM#rifdBVmaS_dg7Z??R zvF_lr248mgpzP>}B28v28dQ(abHDzNxvj2!_f!8gc(_*}rd~iqnVgjFXc@H~d{)`i7M`rjMU_reAS+!vL{IB(im=+WQ*tu=ju5)0v|7l5MO)H#z z(g;Zf6h>y!IHRyplRz{{a9>?{Wcak`NXW|22)Crcpb~d^ttqF$M;PA*0^S#7ZHO)v1Aoz?__um?wU%I`oL_nTqOa zA7BoHn>Q6fuAT=cKT5(`D2z)@z|Fm^_HESsfQh0BUG#B#hm7=eeMD&OVz(F!1)oNM z%>a9@_t)Bzw&nr9m=_q(r3vLR9{EpYW%m)!GBMN1(4-kO)eO8mMEDLa1>O>q{^~GU zDzze)d7`9107=3E11oxCu;nf$j?!aY*H&d21lV(&R_NkcM`gihwLwIvfGY6J>x+qG zJQ}7|2=M-d%*=MyZ=Qu2{IMDgK=I2rCu3DA%6))n1;EoJnnFl9ou>NqaaJqF7Z(?g zgMmb517QRcn?mTdslF=N#rNg;5AVdSN$v}-@CAQ@-)#wq?vFH@;ba)c>YV$kNfv9n zt7nMZPFfd4^_sm_1*btTB1QwqRenM%C)kep8)_gIoke&y>&)fHNCy2+54X!MVra24 z&=eE~FFSgtblBOOCWk9B@PvC}#0#Ns_5Miqun@GZ^4L5|^O`8^7!dsiP@>5=FiiW{k2jOj zS!5F^@pQ+k`@<@-v@W;xzyJ6VgTKp%39bs^JXMJOnwTaGNb7MVJVtRx4W{X7A~oxF zncf10W$C@?Al(e(Ewmwfm_c z#WS_Fvhb=_=(EmtvqzKhs3%~$<6|)WF1^0U26g#7re65Z?xenOYe?glOb$#61aQ?b zD%`TRS8{RWcme>?O2Nv)aF$i~GrShfP>4zX`?)q@IlD#I5Kj(3!99#~0#2{EYE@{I z#T}k#x!n1Q#RC=xuHbnok}C@=fNQ)5awfs{3(R75cXb{O{2;S1z^)?{oeJ?(!^%(b z%OEWVAl9km-7><2tP%tRGTz0178v0YPCS_9WMBiq+gtF$Fn5SgyF4iI=gw)JGu4m8 zW&#V8eEfJ9wU4PDZ`LWi4VUnv5?1pv2mGC)Ff|1XJJS6R<<)rt^5Zj*#8on`%TqAp zMiX(JFt%||q5km&4R0?~JE|#~NO=Ix$bBRM7GQFZgJFTY*u5`m)Z1*u!pDBESX?T= zEL|g9;ff_EL_FZ>QjP0$*1!L1_MX52AYKZ+a6d@A{Q9DHkxQHTKJ_G}-JlD6!s(s( z`?n97uW@?n#Y6?*3lH%H46LjgfGqtravXk~PSq=#=h-Uv{+*-MuY=EUr6wTY zASnb^gcH92E8^SeHuTHrJiCa=W;(jxP$dv97BWQ?z-|!sT>|j$n6XF=^1UbhJjhBv z1Ecyk{6b&23pPeHk9SFGy3xz^`9nLA^0IsYJ{v2$`h#5=J|r00bfrOGxO zqN?LpZ%bm*u;J-$2s8=I_LDKX=4N@A-Cp&y2Buo|0wL^I!h{%0)`6N;RK)F!d8GJWN zqdyKrLDX_q>FRjeYr&y?+!c!@xZ%F6J=Xvol$=HH^D_9j7+~67KI_itf!<*p4sW{HKGWcv(U{i4 z4#0=GB*nDJld~r{T9bgw6{*hcCYt4Cg~8 zQMV-mu+9i!m`u3_PYkaSD|z)7TD&wbeoFapub7|)b! zO8#vDzl8RG$G!aBtquu&za5)|rD#-bG)_;!cT{>R;UMz9K0mXbl#8a*&1~ICyZy0AHP?z>q-uMSs~Av#0cPQl31uGOZ*X0H zbqbGP>-##vk5VYW;cr*S=y-qtsRG#qFs?sspc(Yu6$s5pF!nt9hTlI4eUB|z-I+fG zSDBDxM@!tk+kWNrZio8opqMOmCvBZfRTC;JI+@z}t9{hRH7$?>FfRm5HhH;_a69Pf`KPX-zfjx6YiSlCtuGb{0QSYoi-=>WqI^{;5Ua+zoUX9+8nmj>(0ta z^vM)Eh`96g$0%hgXkWj6Wh)h*&f#6f3$9$$|E{;rt;B3RKQ1Qcbw_vi?DETcmb}kD zZ&+!4jro-l{NupMFc=`PU~)g>FZ9ur~@cOBlUnr&0A z#M<27tiD_2k6ps&rX8()4H4g@Df{ItO^WoSeAakP8@JAV2?(K|<~dhiz#Ao*s_bh& z*+|PMbj;T+^4lRwoc2txlE$**bcUU~6~|AJVx@hLtF|6W;vZjB!!qxaGtcmUm2oj& z{p!T8)fuOhB5pT5IhApbT9z+|(!TEb_&8|iZU+}xUcb*v^Mk!lzGO3;W~dgw((PYa zuTq>M_nU6x#(djAp`9x~>l1$MS5Via90+Hc)gDG__=RjBg=*T8X6nSD8(^qf!T zZG^A?vFx&#mrs&v2+8g4Y5U~q=NQgek`_DjsY0|@V!OJPh(fPuzre_x;L=2k>`G+5 zL~lUD!y5CN-HOw0{<~+J8UWBB-ro0mZ%4UWOcBR=y{bIywgr>89z z?W2Fcm6W=Ac~Z{&d`<4k#S}E){u%C{rQ1F5`s7=&Gld?t4ZUlXmhBD|FXzriiMRB= zlXPKE_P%D?n$BpoD*iKlAvN;Dqd1cw!*z~1%MqTb@1wUE{~G&IGjw3r1ErA*$#<3a zC66cNb-Zrjoo=uj?<$a6RYPS+u8h13x||)_3BNxe`8Jx5%x9j#uICDVBL^( zxyo;G<&yVSyz@iAX-s4egIqgh$G zv0bWY1<65brGZ7rw?lkix1?4Lwxvm3>1HTS<9IcfshM{CLm89#v*JToT!rXBS>N97qh9<+dRlTz z<{eItBOhl~=h8OmgQV!>t*YGj4xwG*tf&3gZydr zW$yAwk+Q0}UFGWYe5IvC?2Z;Hr2{UdD!( zZdPfq-RFam!gZ{0?(J#1`>W9n>3lWS{8|dC%%^P94!Yz{SkOf9Mt+l~QgSd@iYpuF zEHo4G_4#-U%Q4i#Sr_^ItEc=j&;NBvGbDR(!P&j+ zjnv8OGkiSZ37Kohm7GVT=<_84h9fK|bSGXicQ|qN);9zt(w9@wbB$F;j^B~GqTiWm zZ91nZ>1aojW7XL(^gJ>>6kldfw!(B52aC;%Axyd-OO|4>;t0_gBoMirUnu%TO zJ4*`BEBx6H?mDN*c|I?Q7GQEl6&9VtS-NWzX?x*adxyCiNf+ZZ$ zF%c=}=kf^|DXFaV9*i{P(X`k-J;Tu$KY3zAjh^G+L4)lp*)lf3zfgDjVB#<71EJ9K z30;G8%}I}ZB`$IMWM*V2O!F@QVv-e?%pYf<#*!&~+a~<*Wa! z-etuLQ^cIFYHi;5LZT-leap0)7PRQGp*)u)NAt!)#X z@4gF;HF}&0w9gQ=oe-~a(=00;SJ(KeW5=U5wv;#cPj>GfySFAIO)j?@b~7$#1uy1| z?ffd{5gewljb%P)c`sf1?Wr3}V&6U%8(K_#7@+!j?(-%_CGCo#BYUg#zJ{e9YF90m zK6-1QVSUN-x0R7|bvwS-wVwGHYv53Dk#n^~Ru)}wXn%aU*@?N!-p^;I@XwO*)fCJ1uB^+>^&PyXDPyzghT!YZw$fTE*{bU)2a$r=HJ)c&%Jq2=GpuqV zPMp^%I?rW@Yp=1@KzsS#Ea%rp7+8OJjdZtLo$L^y}@7UDAUle8V%H4c3s5gpZuq zM!UsKByQ6)HN`dC+$J~NOtLt5y^2@sFYTw7mLhl`g^Pv-v03-?<*1&_S@?Nh;HRWU z=T*NsviIMjuh%C@Kem7U#^f{@^wX@hp8UjcWhFfzZ>N%%@aTiAIQcZnw8q@p+p3ys%)m_q*=R|N0XYk<1U7>k4NP+1)R3n zX{mF>U1CXy9Q!xc%(JA=#=Y8kYG01_ZMQ>_9s${(r(anweGb^k^UrPl&6W1EcMawT zr;Pb#Iu;*u>z$|2SxQtajfbbZeHZd=FWk+OhTC}V^_tsmiAU_7sFkus?4&HdXEqso zkxkF5>2c?1@=skJ);Y@`CM^#V%(ZiUg^vB}WxBjwj-&ZZM9eVV^xW3uw#-S+XAHiL z^I`j4_AXu5t-8QrTiG{BN|9F1?SF3TwnG%J*+Tk;;ZPr5dKkB^< zBg|HB(7st0O8s*shT2?{?D}upl|iGS4J~oY$#r!GKa%pqB4^uNQlpC=tlGM*EB;C! zD<@N(Q#PJqW4Wgu(}Pj$(ndu02cP`)$YY;1k0T2hoX*QTFw*x1~7x^o+LRmp2X zw^gLo1~)H!^}~aLF(=bTsVea?7vbcWme;=z&_48em^AZq|C7QmpC8&qT+lO`3Ei@^ z+@GK^r(pX;vil3q_qYFCkJ@tZ^xREkP}j%VrqqkDm`Mo-l>}sS{u>NfYZ9nyJg@gO z@0L(>(vP8^ny-b^`E8hKM5>yOJbl&p+1q3Ggnxc*jJWl)M0ZPrwoqlV4wVs4cYI0R zkQzAl>W<4eB-J0Dg&lw2GZgN7K20d$^wS%CN3K1|VQF)E;#HhtI6AV;SL>6>yEw%9 zdu&t9{WIZTEiT1GJ1IGgi@odLHSMM$Q*_43^vip8FNHjtRr__$-&u|8QY^B@I)d7d zChwWf{V|LH(a}Gmkrx}x;L~KJp}6!!t)j6F`k~~ld^bx4X3d3_qPW-w#Z%adl)3fC zugRI4Ge75^J8oNg5r^%WQRRW7;aBLXRh~a%is?32toyB2_xrtVvF@2sp%bsRU-s%; zf6HdnMfmA}m$kv1ndoK<efYLE)EE#*pV1pY2SRoyIHA z%9h@nam>Z@aDTsV#87_sPk@bCzfHqF@e9*M{ztAR5W^tm_FH~zQfcuDWi*0gx>7d# za#ooEVvHLDxoztIgc{f1YU?}ER~>P`-YT0d&Q?d8_BYi}jX`-vm*QwVEgZZ;yov$R zcm9J7*H*Ounhz+JX&F_8)a>?HTgl6Rvx-+cn#J^DgYPddojlg<<*D}vG&9Ebe^ln` z8Nd2~IndzSnDjtY5nrhPbJV2-Sqs}2Rg052>I27`iVV9ola6jS>Uh>1I>~t|%|82; zdICM&Y|`+dj@fAAp`~s1`-EdpP#<6+d-@`(GG^J`_f=a8*NLZU2hyDPk@Eg$%e2lMx}#^(qNw45CF{Pj1|Olx|s5z@o%@GU7OO!=-$?E!cP? z^IV(N^Xr}tcuusmifD_wiPQv0+e2dF<^Hlg%QbPmWZ+n?BMIrXT@?UGUq-whT)v^Q zPmW2ho>{oETB-#GWy(*Po<`O6Vl+hQUmM#z+hyG+A~l-51GYHbN2!ILljr;j51sf2 z$&+?#GbQy*ZM;hVJ1TVN?X&(|d73o(=2BK)!nBudi{=S;rpm3lFEqWMgud0F_c*jz zpE)wl;;7DhzE?=?$mLoFk4%oV41@EWzDZV<^&i6ro~2z#_^xKn9ZK!dT$%a~f0-w0 z_dVP5a-y@ZFPy5W?sFHk60`ZYL(%xbI~SOl^M^ClkZs)WemDB|AGL@L{;r>gZ#;=$ z5pjGx?>-Jw!zU%b!#Kwt$5L-^9O-aB}u48sgv~0wzqxHk&u6>C#U$Pw}ZnPXTq3<1SxAD=u^nS;O zJ#TAhAr6{^?YQk)$X0YZ%wK#gAZ#&e`Uefyx9QR}O*ZWx)7FPZ7!TCUrJF44ixzZ- z?zzkGEHRa45b`Pqz6buT!5IM0%`RQ&siHF7=O%h70xA#p>>HUCergCPuOKeWRK=ev`5D=H@AX zTA#C@R_0O}ROJz~6^dq4oa1-@$ji)P@#kw}U`a*4jr(nh(Z1KoJh~YXGQM*Y6VLnU zD-Zt%xbcn*E?wcHiWv@03p&!^Y(8*=(XBW-(wkrK&!0d!uU}`o0PYz2&(6zLTya+Nm+c=MyYvOhXQT|50$KgMPT8uD>Ge>be=axS5|x70T<;Dlqf0 zi>)6pZhgxmvcXJMHTpU=mk;KdK7QGwca?t5>e?e28~HY|c0nwYB}vmC=WnJ4Qz=(rvR2{i?tJ zwS#5ko$Wj2%pVtV^RzF{2F$j$w{5eTn+$k!85Fp>)Ot4Nc9S=;p`Na|svyjdo{Wz52BM z(3q^2@yE(T;TrT2Kjj;!1$%dUU0HqCY`USQ>~yaC zp8x+#2Y*eNS}r=uTszN82NRU-EK#y4)jglfy!plb6byC4n;Yqed4$8M7}e<`LT!0p z%Gq{Q#zcthaFP=J=A?aQ@xJq)asiHmO_42{G>SYviq|X*Ekqxf)w+h%aE7yGy*y!+ znVsoMKYYt8L8@Vw>Z zea#WmVJsL}!)X%LSWy4J<>RfNJu6o^HNii=F{rHVF16~`N6L1(8+gwLHtyT4oU*>5 zhHT1d6y)ibk4IK6H*0Y0K3-?Ry6Un&!AVVo!_^sM;Y7tGNkuuD29 z@N2SOiaBN!2Zw_T&9;zC37bDzV)??5B`V(DGcBa3Z-#Rxk}n+jyQndcsU}*7`C-7F zb4q(el=yU3#iwA@3Yv$GlM^P(T+?tE;_bG-lm z5%(5QS*`2$DC$99sh9|h_G<5cl-Szt;3@Xj#bj{+5{T z^*@?PAMShf9TU8AH5`};q1`7u(ryH5A+GkLWY1xhQ!uO$v-CSB&Eetyg1rF${xI;G zUn=4_b&1pu;{Apjy(MhAwSJy`$7}*MC|Kgt{*U)B6aStu*ZIHv!2kURn^di?hQIlI zAK%?gh0n6Zv&wzgf^^zzMh3mByzCyv-xd$f+y2`1segP|75)$U>d(t!Uh@+P{(t|g z;8h}01;6`ieQc_{myqB7m%nwvzI!T($cf3bizIA6jGx%n$tL$NAN-$}KJ2C}fzHqTge8b27Fh|#kgeTL* zegE8v?$?OE-#_iK_J0=6Zyxt1-LKjEmn#u3JvaHn`_GX6%M)*$N>$OH+lNaZqig*C z=@#gxRrZJNo}4`3`#%HEP~mEL;9qX`e_oo2`d_vR)%*IAJ~;k~3;B7E$XWjW9{fz- zvi`^A*`CO7_ur>$)vkC8G3ciwRh<9X4}aw<5@z8yfB$WEFN*!g`)o0oBm4K2HBfY% zS8KtJSRxw{wa5PbL&U593zy$<lf&|?CxU84FL9}Nkw5?Sxj1!!U!NNg@?WzZTTMB6X5`kdA6o3=`t^Zk zj#6yEfgJ-s-})0*QnDCbOJuk&^eUVFNt)xIGY=;+l0u0$p0NmN6W{zAphfxXjquMl zK2ewI5ErR0a&sd?B_0^3-ROhS0qQ0n09B&ijb5Mrp`rOpzU_eW zD7gVQI^iZ{fL$Vugg#+V|DS))4L{b_5+LxYHschq`}sb z4|g;}qUa7TMxV`Fcit>LjrI_BxHG>o7#~`IR3ZZQbvrsM)O0_3=B0*I5rpwt5COYZot&JqArJrkUdqo>P*RG4!V(>h=umlqO$5IAS*56c z!07Q*6u_VZsTKJ{4@N{~^KU&hp)F{WyEEPv02n(ObzOi|d{9u}l3O%OFxL(amY}7n z+O-gXGN5#C>grhhzY>Jh0TF*r5E__mzUfRVCHFY`vAO`0N?o3-Tesg$bb*&PcR;X zS0MJ=B~&NloKKlL{m&7zK~d_A;p`uM*q7Y|Zpb!P4{2$L5D0+JSI~Cs1}s`fp-UK$ zVMOm15R?#;asfJXsZ5Uwb9m`@TVub&HgR8u8c?7`RZcb~YleYxM>OIdJmH&X|EudR z_#2P8{48a{N*<=VT=eDH9sf`3_P@XKU)}rPnuK3I#QT~bn|`yN+@v+~Cnkwge?u@r z>fb*^y!v1L`rpnD@!S6;{zyH_OV`zXoFU<#6I94=?LYZM1ESKuv*5(F{7nC|-$gk8 zM3mDS{9n9~|2(D$3s&n)OiYpTa2i|Bw9Ra3ZI5j=Gc@;1>fGq!piQ%WUs5_h-910= zW2@5src*T9cDsaNVv>#VsN3gHT~rAy{11I-f7;2Agm38wxaQrguH1R(5W@zIn!0*S zdv{yu&Xqe_{$6dz_2dNue?|9cX;~$u--o7G1Y7Wdu6mINDu%up8FC>TJGMKiCq^9( z7C6@u!&t=-t+{R|?i3SG0Ea9sZUf_&-Bq6xid#wn@U`J_xI9+d2U~E zpJ{2I=64L~gTt=n4S53S9vdR;THD)iYt8Q!XcN(4Ps=!7&?UF=UbDeaf2*AQzN*B; zk7puOZkp=P`Qq-r^L}p;6j>Jt_fF!m9jT5vdpj#5P0Fr|8NZzQ>H81-^mpDCm6)@W zA2Qb@#{JH0r&BkHJQmpchH>SPDVK-7t%v@`vqth_s*?#nS2l<=hEs!3QieCB?Yxnj zPg{$MVTW0qL#ycY8`758e6zMPq3CdZae>Pf!4D!%@yeghs$peW;vbi{a*U?Az^LD5QSfZf8^fancR`$cYj$0W_}+bv0_w1<1*4RKJgYD(%UvZ zPdk8@Z1;?$q)2f@8wc-^8`1t!{Z^A}XgGMCr=n>&uB7ruREBgZktDPD;P!fb-p6Qx z4`~N;H@^&KV%Z(_bGQ>A9r-jV;#7^+ElHqGUc@W!yjvCbS!JzR+`uj8sZ-WO*j$!f zdK^(&n>UiI*jciP-)`V&!n#IXM@rBIXQ5A=d`!p>mlSwzwixPh2;9gFd_*3E1mMNI zBd7ixtH1kNf7ccZt4Z3xwGWR=M3ee-n!Xq=HXF(d%P&X1-N`3L zkvGk1h*wvyuX>qu>X|=D>#sNGM{f^sB7J}HRh-JtcJc3Z-R=oaX6FiNBny z{kU$*qB1q=$jjL!eebBl$m(VCAG|3t6V3vgTGEziW|@=pS1PyEP3)~Jy-ZPEHJjvY zbR~m3N8^yYySHB1D{C25s>|h{tl5^GsA}r)Zv6Ee3J$sXOQK#n?f24F3+=bB$Z33T z{}R!4%2**wLFy3w*i$dZ^1wC2MHkCIpU6GAT9LM|K&|PGve@23Vuok$&UJRxl~dmYZQvDk#V-!{EShcY$OeNk1n*lpE!Ls*5vqV8~wp;%lkTBZ4;sN z+_cYie9vg}A%oJUq>gOY$&j_q)&Nve&lhaD#q)m0;BCjv7K7E-zRPu2C)QD0EIeL1 zlb)6pBewB(=z_7#NF@Uq>N+9U6!}h*HUjsN)BE2}R9`APH{_C5O);uvWaeQ52nD}O z&!Lm9>Q(pMPd@eWaiqvI2bYt!sk?`oN@y;V=5sP*yH?TkDtqq^_& zx?a!}hvu`$PlZj%e#gF#i`2Z>dgPFZ!|`1{f6pr>$?SLJOOQ&MIsQH^qqpk;EAN(OYDr7{<+)=se9PfjOMcDM46=Gj+wbQ(!NprNXoJ-Dy2d5oE> zZPi*u!OH4GoXeBYKek?bIUMcK8t;D{og$pOsK@$xzo?|G3s|3PNcCs*KDcsaxITYu zxW0;AEjw(mYW_LX6Q+o~rlT)k@l8zRY~pubJi2RWQukZsmVt_XnV{s1>Ah3TZmx~_ zV;}F$R)^*J1Awrfabs+Ke(aq^ZFv4LN%~3%*MObvwi}~4v#Ytr)CqEtGWA6_yM+Fl zpNn=kG_n#rcYuz%Y{;6lC~$`*tTr-6rqCJh#aNCg4BW9ee2zCz*06R)@fPb5YK|Vw zmt+stoQ+gI9OIauzf@BEe!ZI3^{>`X6IDS`b5T*JuFbGsielz@JGyqujE=IV^g-N` z{@@-T4M~Blxl`(1UET?b2^u?0OcQg+_g5@$i3`rx-5&SF>`GbQ9|Z@mm8FLt0qQ2fMgFSY$vxsNrfKUqf&Q?4Cze2>yOQ~CJDCnCCCzMNkAb{~RB@+d zsBMb$EW_MX;>~j#+0OF^jo0_+Ozcf?_wb4pt6SzCy&B{bUh^h-C`I4g!$&69wOg;ZB%=CUUc_7eS)nA)q%EDoKk8pgQhJ;V z)9tPo3<|ard67f1>(MoqU+|kVQhv+zC}MWA#qj*rq3~Tgy(O9hAFN+ruh_=Tru6*2 z9CoDJ=pnbL&e{fPr>7S`u`_Lrus)srf$`Mkz%Mld+sWEFqexj7^Hdy{Z+S4Oup63b zz0>fFWze^<;VvnZrLH@@^f#+8a^MZk~Q5&>)MhP@$4jZhtwN99$lAPvmE3L-+Y;=lDb!o>~5*>1CjyB{9qN`zvxU z#w|L?{u!6j`9@1%uOr{v$5C-?sC;eQ<=HMbHQPoXUgRnmu>Z2v+*)IKzg%Z!M#2zj z3zU?&Z!6s6MNzu&J{y(h?z}I#JljK-nt3NW+z-E1)mO_(5*ILUoO^#V$UN2d+j#@o zc7)Lsr_`>;h>gCp59ApvgI#*`+)HNe@o!{%85;#U zmZF1HmPq15vKn#&F0*>Ws65%?pnWeP>=AgTra*pNv}~rkIc+%ZTZ>>@{ra~d?g{0f z&oMIAB;9CY+65lzu4VWfNN$x|f4!j>~+ z8*BKU)7v;G`fh@eS>DF5*t%9>Sb)0Eo8We;>L^cG#y=JVN_eu^0>_2yeL|#dQ;+<- z^jM&(@6k*{p5`e4C}nHGP`y&iWjejbc1+#@4$X;?Yfoz*9PDlXO2m6Eol&=RuQ9)qkk<*D%CE1YM6Zq7>jIP5*}mUI-R5bCXmamoHqCzLL+g~6>!Wq9 zIai5z=-V-=q%Hj6uNcy2@`DNKs;f4A<@i&{w#B8dsanUKJ;FrzIJJsu8X_c?^ycKuByMR1?iW<2 zYvWD66!w^sRq-=7r=Z&svos&Q?s9|XC85(rL&L*2q|08uOaHm>DY`s5eBhAMaeiiApbg(L?>@Y{KBHC{MtJ_lL=laaR9=W2d9C>9IvC6kbUa>lL3 zl`64Q-b+{YF#v;NaeNPU3@eq5g${n63`%pX6z}V+_SGr;oP5V2@6?=N(^2gsjT#Oc zrC+L740g~Nn#cW}>I~qZPwx0?`KUqVu1Qs=y8`4?X*TCsA4yZcsd{P)%(Yaqvw*v& zr{2PkE!FF{j|c{iJH)y<*adMndZ@YBzDb$&|} zD+4?mm+IBX1qJCQIz4Z;2lmT^E5wdyP7h0R{nTJ_N?p_pWaY`JJ6Hync8_45exT42aC-bFBmQy*t%%(sr^Nw zijZQdH6T*r8MG3MC3GP(iyJ4~FKk7&^|948>8Y-P^=uKfV<8=%p80z@=p3*!3-zE) zXgXPyCpve$EP9uie0#2g;F8ra1%ukx*R4~`$MH=AwdUF00$15alc+RX#;Enw&}<3D zPR$4J&Lpb;9qUcnh)ps4@gX8)esROIql}4b;-?p=s-|bY#-y8Z{7t(s_>h~6Ox>Wdkjw&pb;kRKEcBpb$g}ey?TE4 z{MkL`qI-flgq*W`PDSrqH4+32Hd@WMzcM6&c)D#d3HGNA*448qtMC={UF1`*vhjT} z+tj1j>{)N!by)tMMhI7=taawu%(7;xYt{BC(MUpnlJP&M<>eZqA8L18Eq{Vc&rR+8 zShQ!%_~w(d1{=&FypfECCVg1~f!C^O0;;SIB^69_*!!upgw4pcWUK! zW5@TlN{_6_T`#2{oCx6xd~zl=f3E$2@}%%{Hhk#>cRw=!pLz!RK0b|F?rndg`)+(; zQluxE+EsU9`3o7qho7B_cE8pg=faRz8K#`cExT09kde5#X{uY3nBTtIrNwuSoR2TL_A%zZp>ox zRl4wTh3db98^+n~+J@z1RF&6ltw7vTTjq(sDXq*py9rUPW$8_{emPwbUdp~&2vXt5LjP02$5Pm>jrbs1kaD4Pv znd9+&hOIPbNjA|m966pW$*13Sk~H`Y&M~r1Tzj~ev^(yKRF({F-MXyA;>*VC9jWhS zCnhq9vdHPCM3r#)$6Nisv>y33e=1M@%#RJK1N)6mR4=5AR0JPMdSCZOP`g$u^$Dk& zRKAGej+wFa#0BS-!rjB7uWdrd&$_C7F^}TpDV$tVQ_L+m6l~PL^kY0EanVU4R(O4* zPhs{m2Jk^d(r&%n?e(w4f25A-n6R6#h4N?Fe8}og6FGJ3$`Nbb){OQA+H*#mR_fHg zGuz4a1}gr%_K|0MR8hT;6+?Vktn_vBv(Bp;a+;@2t*$5DU=VSOraumTl#ZDm_p1Eq zB_Xqp%y8ocG66%C+PRlI=VY4Mtx580p@S1V+i7MyNToylfdA<0Z3Yf@R}x^y{XdX&{bq;MtU--O#5hwu=n6<%1|lYxx_K=0|?HTyj#=lqEE z+j6kz{((VHE9BwP?;;tBcH(SGmr(gYrHUV~gi`I)#*X;9NEMVJ*~fl&FtL=v)4+G-$h0-Q(m`Hw5L4%KL6djncqehwDM$}R>x|yoTu;X>LY98OT4s^nX&1XMw(14 zRq>|$?6t6o3!^U3GV7 zeoKZ3nN31KWfPv{Uc_iU*WpHIWUl4)}mKlQQVlMko% z&eAl=w#k)^+`Zbj0*POWJR~P$A9L!_%;4wBouzxtB8)It$2(?cY7)jR)0@4A75n@8 zKDJm!5FARMe z*I!fHU&>AEhN$6&6i$gcD#wS%*FBH0N!AwV#7A^Y>AoiB8kx0omh<74KBm8)s&Y+Y z)2#++zaojbGa`-y^0Uu~GLFU~bYdEfRcZ!c{U37_9tD{v}~zuAw! zt>w(C(pe+S*o(^E((62qdgi9mW`ZotO~b#QsBlU8Y^+roG1bW?U8}22Z#0QjQ6p42 zb5*lZBQaN9r_iYB9Pv2I*Agr4dKBXDY}K^zo*5xlK}Y(YapPr34xZ1DIr(%;qxg*| z8}swm_ExE8n;U7-erLx6lSxPjmO3}M`^CsaMVNb=_!A>(Hj%Sv?@VnqXjPd`Dz6;>Z~}?avYyKkQ{ES#<5#B~->aQLenXR~HeIy=+^;!EP^X*y3-8h0|oP5TrfnJ?X z$&yXO72d0x6*}f^5eTQZxbuFnim%;}Si`=CM@n~_KFA2rHx0kZhP(|aT8yay%j0d^ z+s)=1ODD*VS5gl?a4^@$r~hsg**!9A+5BtdZ6mmd;S_4F@U7L9C2cuhbHd>E`9mL{ z>D0VUQVEO|VYHLYI=tsb@rxq_GW=szcm6Ys;*H$10}`I%G}c^wk)LwE5~&nwgZ7~2 zlmk}=(LFAi{YfX}cFdn+tv#xT?wiC_CCFBc-&T`c>iM)q+>7S?^P^&{+J!=dkZOI( z<<1XHJKssB@Tv7K4)-;nd6|am=AVytQognttOQv@`&g=ZNA@R_$kQB?rR{Sl>?~&*y*Cttv=ROfNSh!5RybS+Y+yVFNIB{5o+}p!AJl>7tjS*gQh3i zR5ET`%NxaxDeZvfZ;z6N$*B_vK5Ed2;yNP@F}om3$J4g0;DF?F-Q@Jq;Os?1kVk@; zj8GLMm|awYmwY0@0Qd?m;uP#E&mhM@u*jv&Lm3Lp6qKOlC{9QztQ>F8+SGX8Q)J6# zu3paC_1hWmVOE!;=hHtMbpVriPgTE(qymU@CYgJ2t32W=&)mmV!3$xSD$qXs~RKazq3Fs1Jb7_Ao&z_{MiG! zKm*^R+uu%rdlx!OB$VPM_m5I>YRO=Bi8Tpwx1rMAjr1=~O%okrTnefe0nF4+(Onch zapez!Ym#8I0R7}&bi7`9cCvN{tu50HuY|Szq0A}$jZ4gH9pYiUVP#_C%w3wt(U}K^ zmfEK_0BT6>A0-HLE(e?-xCg-A5x;-bBWLiH^_LSNtEe2%N6wb4)r%j8PObA|?~~FF z;3SGz1sY1d!}Z029r<0Eo6K@Fhnu-AwE|E3 zf|NZPyW3!v|1K`32=W7B^R=e2fC+@lSUXks(f(1Q|M**iyWL%eHsw@yo-UrtXibWp zUV|uiyjsQyJZN9Qb*)~g-;nY1x6ZB#ep=k7{4%sCtKJR!Ccd`+BSn?p5W9r;LHz-C z^0p$hG&6m7!3c{dTA%!JdF6aa9xGqo52bvn5{;QnBP2`dL5pb3)X<+NzTMsI6D#Ic zUtdqaVoHT3KwiqF%lIZL?T>7y1rCB!3kyN%osv84Spyo=-5vSyAt~H`4eC5}Hw;Zf zH{Jx5jjLoH6@fu!$_SANp5 z=Y)uCZP)k5I;TeIy5oY%T$03uXGnK?V_p`&Cdk7;Q>GYEw#lURLkYW~!$gNb+B~+_ z)i^nNV(h*p1gR#{bzN@OQc!Gbj4(KrK+_!;P?nLJ5!?MzTq#)%`rG7ukzwElBo;Ct zHGk2cYYHwqPEc{M!H$c0Q1k+MAh&-M7UB}9od~)dw5&$%ADtPjlOj!=XpxegrQSTn zs!bs&>Z_jpLh#dr2e&qETX#qYQ++5cE}p8FV7v+z4)8Id#oWAFSJhEK8aTi|31T*; z?`t@)#MQq&rhNOY!D^z~Kx&(9@{|5(?}3J@e%^Q2d@c{}oK;vTu1ml`)u(8S>M>-2 zf-kMC@Xp8quwY;2G29WW(hO-_Jnr**7akRZKa{EOlq{m$c^(P zvN`M;c(X9-F18(HJ~05HU>3{w&*mi@t5FqM=&)wf?F0;jI96b#fWr93{(ZMS%i4v4 zjdusk9BOzyr8s?8)GS<11hPub{%|)I1AnM_b-$MDlD-~8(BY(T{rh0K>3nJfE;Jl! z+sOtjEnmASVjF}G%~kbZt5kX!ti{kQtSy(D`Bv@;^EKA_;bk>w?nJrFhn(?U>GR}N z0HMf9;+gosa*5;L17u@holC1%j@Q_Ka4DuBb>2-iWkIml@8oo-zM6vuT3+8$skj$L z-6@->FSV8;S;9xqgAp+Bjo>y6X;aGvfloc8q%lD8P)3EV=4*?jYrDKvF#i3A`{$)R zG8(J;=Z7_YF|Ma?Tw&@r1P|G3Xm*Yymr0cqA}C>l?3+Mai_QLg|0rM}`suqJ1@?W5 zj2%!G60O@UE3_fW=_`1{nG-!ua4Tasf3{Z8z=h66Hvj1gNZw|@UDrMXIx&J-3VenT81MI* z2h8a{n3M>nC4;)i8t@KP;eW>IZZH|up*#f9)mfV#N~J#ZRbUUhozC~;otSt9s08+Z z&CH!%19hcpp6w|*UK4^N)v)Egj=`>@4|1Dco6Qzqcn-G?vEzA+E#zVkp&LA3^>rfP zZIFi}m|nQB1fZr_ji)11Jdg>~*iqmV1R^TbQm;VxrG_eYB`Z15-OXiQ>79j0CB@nC zgAo0bh7co^e1{;O45{=7U_CuZZHeqFZ9_@a{Uw=QUckPA4Ui3VQ3K$H;5KS_2$Mrc z-Hj7O0yKYb!5a+6ue7;22+U;tn~OnqP4LeFQZ|6+A$X7=lc@JR-Kj8KiB0{dD&qmq z>nZ1v>XvaI0gd5T=m`*fOL)5S2thuu3vqG82C)y8?poX8)h!HyS}^GjVX*bVJ0WC0 zbr;WfkeUWGc_oCeD>#||1vsN@=Or$14spA>;n0D0slTu2dN9~_eHer&iahtB_#Omz!(LJba7C18KiH&lYBAS%sq7s^cN(+;|4IwH^I6@ zP=$eUoNk<)MegS3hdYS51hvu(PT6UK6KWi+q$EHT^|54Eu{fNuYzerbyPhJu^tA>W zQOpgoP~c1~%{6P&^4xx*`bzzVyxXcEGsh||++46^6V^y3`1C!Pf;5v>u4oq!z8w;A zCLTj%X@DH~yb_GO_x!_0H{i4Ob=q~u=#}}5b>uYO+B@vGzGq@X>`|wc;wvvB>LoaT zz^2JVxeqRw-q)As3FbK50~Lb;7}HSSu}jLUfMH0o9zEqaGa zFTY^u1cN191spd^Q;wOC0s$iMw|1CZ3rHR>0dy5Nl#o^u3bgw(hm!k13#A zbi1b5U0lKfGV9l%(sN#4BEc~aAV8!I(wwy8_r6s%ytD1=yb6}U3QV49bw9!B1el!H zJcykF2qr{uGZ4J3Fb5^D0$%gP8UY0JF<7nBZhYG8x->`)?4WgYL5Oynp!7x%=5q0% z^Urz-f`$tO?gUhIdL%B23q+661(r9q9%LTbz*+XepynW0o$IhN%ds&+1nrXR*DFt^ zfXb^9-svKE$Os`N)p}(tSOMEH8n{Zt&tg}8G3j-TE)@xxGc;6Riin6;6ta8}MbNB( zu@uqC7s8Qi&or%}j%|*Yb>M4^<%E+D2YegQzVnma^4K{>ZRzn>Z_Z8iUWBTL9Hiet z(Yg;J8`#gqD!1klk72@D)ic?#mzjas!(KM)%HQ!fhlIqcw4>0M=;y*srzX#H7%JW? z!G^qr9S;69EKeG9b8~#vtHj34!RmCr3)voDOg?4?FAjI)oCO`{G4rl`gV}62w+)c{ zBZwry!I%2s!)wf;IJ+R6bleDBi5DhpJs?LU&@8FNO$Y|h|{Jql2hb>(+aIK%fe71Q__hrCJRG z9emE_1U4BQYFc7s-Sv#4_<5z8(k=QTPModm=RK(r68q@DiZ2*C2>MWX`mQVEd|ghH z!m)A@x6=(@q&b7~v^B$+8WJ0Wp#8gnEebmN6VppOM>s+&20z%n)PbvN4*|+5cHeeT z>M;54n$jIqQ?lcutSl=lYlNsFgNSoEkeD=J<^kszH*ekLa@E}I>^GrlUOqmt@G}t3 z2LtX~5B5idCMFbr<+Zeut7ts(s#tQMV$$|0F8MGrXsKzTXi>KND@PeM?_01+oPX~Qk^rem`cW04U&V=uDZFQCosvE~l|V03+^L3U^W zl39Z05g81^iV`Bz(JsLCjtsG5GujZF1$HNd-|{Hf&ULV6-RqhKEKPL#ZkT%(nfK9O z<*Mwry{#1yN=ZKJinTNdcZ{HMMHJeYtSN}tbNjI&cBJ&GtpZu(!pUS(li{cgREPLu z1inHy6k`K{JL=cyevhgB+3Z!zUaWLtT(t@u2}2A>dRR?= zvR1)m&@y_56UN>MG{slR?jY_#v~n4CN&u^wgM%a8tn=LTa`^QlmtWLt=KC8fpGtko zhAz4qu9D$aR?E&$*zv>PljyJ%b-+IzF67{cC2?>(evlo?4*Jn9;LRqYM1nUHC+U0q z9N5ky`7?hEDy=^EczMn}rx`qR=WPnAmkAnPnNV(b%>Ee!*o4Oe6J(msQlkp@D*)Kr zkU{ot2NFFf_CJG|Hdx4k3z22A>ecI4GzTB~r=@1RI`3y32)04>-6r?VtBQHJ39cE4 zNE(9JmWW?K5cN-fw4(iDZA_N6J@1Ef&J=EU%X{NBovv}-Gm5^S`gfWua3wq;`+Mba08M>+`fL-(eB(9q zctO+3WM|g+`T=Bn>mmJ-wyS4{a-zz4to$7Cm4k*COv;LxCaMHYcBI?713|e9^I8t; z{XR338SFi;#XM)=In8!h*Ws#er@@;`bXEW&x|dO;7;!L+NPS|6QC#Vyq4`kIqjp6h zJLPg0p`-nBbswKDv^VgVrX+uvn!-kQOw!Qt|S^=l4d zMIw+zDu`e)1$Ctro_l?L#r$LX-!U>FT!e>2qpub$6lP&QkvOmD}6J0#$-SK0QXMpHIyxO;PI%@)7pOK;8@J0&CX;#q8DY-RfdNg4qC;w|M|`%8BtS=EwexR>&TQV)JpA9fw* z)E}oQ8Gu@Pfm~UCZ|^4vBM?ys8c_a_5tIzVY~bKiczM?-`fd9lWV-!*f6{P0UwK|1;0W#)GsR-LXv1AaaEaGOA$?L^vIAGHmBI$At-RaN3Km zFEWvp`D*HX{iw|~MGpi>Zk<<(|* z^0L!;u-imI0|xOq)*Bgk(k~)rp@m&V9Q+c88njjDChM^%reSZnkU7RVMzk7bJI?t7Vm-hNxRl=(v>v%Tu_<;o2cG?D1Y$T8336oQ zO0g%-g0~zVab%wz3+Q4ACgqNjVYI~!)I~)Rjcg=R8O%*JNLsxGB?y(5iHTZxuSB+s zpscef2}wi0r1g&o5WGQM+S##vK!A%jlZ)afQuqqw*5t{I*iqp z)2F__Q;6BgXWqpM-G$q9xIWfl|)F5bZ8pd+io}Wo@$|kTZ%YOANfzR@EkjD60d8( zNLjC?W?nE$!jr%MuJ>E*N@V)`u|vlIf@=>@`9n6lw6inaUI=RT1Y0)z<^2Z_UIrgE zb~MX%j>e4pgx!ZTj16CkN4bTV5LSl&Txg#oQn21NHb#o>7<8ca}tyXnKXn=)Wn$6S$SC|#4 zcyI@QY;V64RJ*@1Fx8^D*U*xc>z~fh&14&VseF_tD7W;0RlOe!!A3)t{-fU#s6pFY zDzF5%F4+@S;Vo3)-NN$tA*) zcNo4XljZ0QUj=#j3s#*IFNkJ7B$*5$vqyNWs3Q>umuUm18xy$6i_ziPnyR-Q^$I2- zp^ohDeWRn&5CMSnurSZLq$pIc~VGEBR( zoN0K6yTL9#N1uXcbxPOiwo_Oa6C6)}I__Kh7ACv-CY*C1M|I+Qay3>fF&rqo5S;$b z8*2-9*$ip-?fZyCh2@<)Z=h83f=%%;sQkCQhtR{hJHsE5dV-i7<-YWlMLRjooae-o z@INwKJ4iuid{SA?wY8;(!-0XQz~xVu(up(h<-nyU+DmCk1IX+Q5IOpZK2)SE5qAXL zuH}N`fsV~7#Mi|3J3MGJ5oUMvmdMnK%*slXQZ23OhASrsv$`Jz^X`Q9NSKDbJ^$97 z6g`OV?HxjP?#a6|avvoOL^B!B(}cj*T;dT@E2W-sTMUKM#Q}eLe*3Az$fd(^^;%t$ zZ7$iedGnt;cXILWY2)U5xc8h_-Ov6h{=OgADt;Uxo6=y>-d5D{$Kfwv<3Kt@A88#z z`w2-rsIYsjUV}Tegmb|G8FxfHs8`Cs{YOkR3*X=@DCCg}*c;3%Uxn^Hti!X()@~c) zm)9d{{rYm!?$5;v1E@nLUgz*2*HqSe1kptWA`dUvY%VCyd{j~*jf_-aZ4reo!jz#T zi20{K-T5sO+q(k|nsAKj5mn(-F*do6{Hp<6)oNn4EKZv)E-BPx@n_B|d5~PcXa2)Y zYe3iPsd5lLvzb`b(3g_dN#-A>OU7R#T>nDy6BjyJU zsPsKfOSAS+*NJ03a%Pd=C5>p2@VcLk+C^p*ImhRa;jo?TGG*70 z9CiayI&y}kST2ONjz<|zV@51K5^MpIsYk?C;M<^cannb(Crpnn=L*ji2@1|m$;rHB z6taIt6a(ycXPR|}{+OI-N!?;>Z2az8Lg4KUEJ)%6(>o$IGmkB;0FOQTFh>Sy_A7@t z+Y1iA?nOu3`3p|%E|X0vjw!9EI>ld&-ZnoUdnr30;F?Esab4YBW8+4NLf~TH6L1-) zXy#>F)_0&a8eveC#*n4L7*ESwK(L(Z~5(n4l|N4l*DwIoP#1Q#$%wL{64 z=+8vJE}c<;$~iwOZGwP`uqV}(ya8hn-B!zIiyI>6p#+AlR`}dR?gTUQV@TXntZ{1Q z79;V2Zpa&m_1W5d=>t}jGY?&wh&vB>#7wiGAh>Pp`rhi~TWGBY5B z@eJ&9zJaU0$t?O3DeMH-@^ZasuP_w?D!6VS4wlMr!Q0unxd*peR z=!kzmvt&FrTS0Rx|h7466EUspr?uO5uOPee7Jh28)vTzzx z8T#?#GD=JhUi$FXUqR^5C^P7kIu)eKn7(g%!S;IA_sy7zsn>meN!lt%Ai8^d>mv?f zbLB(f{9B71x=RTU78z3XlS8%@dCljU_xoZoO6nRPH`LrFC_j-{z66g%C|V)FAr-(ooz!0vmcIJT9 zU_53RN@m#Z<^$~hWdxBuJjflpcgxnhqUMLh;muVUfs@w9t+Q#jS`yY*(B=mPz9ns0 z4TUao^e_X^j)V%tG4(QAuXv~gMw8ioZ*vfgw@P-862vSrA*Dwgo9z(7!*g(*9FSs2 zs0`vXrznp3t_8W6Un^hwoXDAJ_FJy&&$VD{2cn|U(2hjlz&Kj)-&}aK(t(yyf1Y8fvam24TS^g*dl;12P@ z14EWO9u?3gl~u5QhyHL#N$x;DIl1pn_YGgdUBu@5yriS%(2bSZJ3Jh0KFGMkB}&LxMrm$g}l^XesiuqPU@p$df7l z^h6Ihq$sd|QsLzgS{;azy-CY_l8$GXaf-nD`g3aQ67_+6veKkJ|6JG`G`1V8krx)i z$A^p@&x-2jX5_SqP{21NUzm%lA^V&2%$c3p12P)+`>3cM!^9B##1&Sd63`%bPwAXA zNVL-=Cnp=&t)WRhYFbUB!13GIoMaaR6;ajJvV zUF6FwF1|6;qYNbLt0~tn3xt!4+C_@9OE2flbL)n9rioDdOCRjES=U+8I8-xv^Z6=G zTT9C`WVMyF)1b9XF`ErZ(Hr{uVz_LUc{fJ2GLd*d`^c#&3pfW2UN$>^hT{4nfy(UC z!Fnvz7&32fZ&fWO?Luc_(z3Jpk$FP}E~}N^Eb7?zO(3!8>3KG@Cuc)nfW9Fr=(s3J z?uVPZzI=n(!Kg013ROpTpjRXg2=KSkdNv#xJR@Uj7N#_l^Bx8ob%8H>=_2b@gzN z%W{;b{K2Y7TP^;P#o}X6q92hS(a(h*U*Mko4C00X;gxU3KgsYHn!LN!{#Heu$6Fu$Kc{Xe%4@oM~dBTJqimc+XD9J98-n5fkWB? zr4$-g%#jz>Z))+!)l&OcjV%5gYN#MtjtsIxhefei4$|RJFS1#G?(-(fGaiOhD@}$Y z!y!B&!8jN6W}2GF3ah0~AnkQYOpI1kQL81~`h#&evi1Jb_IuY-norw!&${*d^^erX zME%cGEvenF4wp8h7&S39tsusK)<`qF+~2*-Bim$=lOe%tgCI?DU|tVMh~m&LlzDZ5 z&2IJbqH05@TO%P>gD7lgu&oCJvhQ$?Wa~MX_I!alk{n&_X9pM8p&c-RqUi6wm|)+$W=q5 zjFW*Op0YEc$AwEPeC--MC8bsn>+NS`G%wDLTW4^hne|;SbYqfU)wm<6AoNltP{Aa8 zu)yHlhNQYo;!?z!r~w{nV+LwQ#toI!F-tv7nM7Sx1LdMn!RcxlP`T0H|JS$x{W$r)eDT!o=IEBVNE*(66y^JnQ*PNH@fVrhc;emrBL|QRRNj8 zydYDHpTqc&gFVlvu0C!_gkTA5%jYmk#2G2|LfPlcr~c9pP0K9E+Mi_cwLwx7n9ADh zEjJsQ1@Fyx4e9Ega?+wo=#bc1(QPQ-&m-M(Y+X}|RVEe|$Yk+oBkhMbeABj{X z7xZ|$oM&a>J7mMaiEc2lm!pHGv>CTXglSN5q!X21%tegA=9=~Qz0L3g(fT$#{1kvT zcrRaCTLr|Nu=|PN9pc9jH-B@BQ{m0iR*uhn9No?*+(wH^=H3?z?zVSwB4=c*L%Pg6 zN;BJHlezh%l4l%^EjRaK5vcfPFdJ~>ES4)ndX70^eq}iE{tdFgoUPs2_h9_VyoNEI@b8j zL!!N(00O2+HO!-$4Wn7z^+c*22X`GJ*6MCUzIDyi;iz1C*JcyT^D`R@7$79DIleWs zBfWEf(I%-!5 z5~Eb7uU8*>i~3gvHYRab6|mTfE;R_pa7&4**!z=EHo|evhPcVYR$W~kz%3#`gyNyp z{;KeZ2sY)!;OR8ubB5g3YmR*+Ioy0|MuzPEDx@Y}^l>cQaMZj@u|_^*i3vj9F|^Z$ zcZt-8k<5nY1`pcKOk!Bqk?XpDINh;oQ$5`Sbw~W`O#LsLG6Y>^ck;8nYrNml_jnMu z@+xQQm{cuiB=;{bnku@h&}>~q+R+PQPzu%ff(UgXbQ_WMvv+WyJ##YSmogcu&9bnQ zis|jGtykgx^&9e~oG=VfvRBfbU?Lo|9q?AyP;GI?sivi+#by;)p{MzI!+l_U$5FlL z97esuKSzo<*gvld2MYOyU1iU+pFV0SMJ2^jw=0gXPLX}3TO-e(i!;0_t$G)>bwwEq zb8|{u#6NEC($W`1$2m?5W}zhN9RkuINW$sDhET~v;65^xaQ3m7FFNR)m9n-c-1L(G z>B1JXE$8Ls!J;!DD;abZqVf(1RjoZnvwr3TcX%7S;6Zuvv8SiB zM~(#?KsKef&rpf$ihPzPqq612>JqYwddd`b#4|PfYs}UV&hlp=ju8Xe3eg4P9y1wO zGE@S)<^(kRWkwv&EuFB>&$m!pixSsTF&0(GeLm(A*u_&d;Kw)%paP=X0B&vnfl*68 z(QX8)4pTk%mIR`|yZ&Op5mMZ!e9h0o5=S9uMJC>GSZ90mPlECX2~>nKs zd)?XH-OW0j>%4p->qRxMwaKJv|0v3x3cy#VHQzvHc5!8et{ZlxJDZg>IQR&8BxLT% zWGe1I)Z23fAr_1>p?7-Y#E|Oy8~5rbNF)g*B?_b%wj4%44~rEl-2GhBFmky&ypx{a zrerY}b!_a@d#G2D#nvTbdF|h~k1W{7NK*3Y)odE1))2SzTMzwpBllUM?YLUB+uwha z;nt6{v;TD$sp(XtbfR(FQNWB^&c?E_S;NrUPIMT}htl&q2>7qhjE$DRD&Ez)Y11a? z)OE1tb``maB6;@;7rr}kUmn+~$5Th4ib_ju0OYwO$mt-j_Ya~#OcEky;PZWqbjrax zSTrG~kOIhk!mUEOJ%9SplReBFC&(N7?vv-$(R8yM`tk?XTpSE3(f@E488OSnsopy) z&55em4AdZbQS`RKt@7AjO(Z737WjOJO%xAu|qxiUhB5I!=vl`+OveZWtO$;7R?w;9y=UGtU$n%cOaiaggmB*VoO?EX_4(Z$bIWs zpLGW2w6r$Jj_EbOlNj}qA5<$(T=m^a8xbBpH9ITK!+X5i)c25pu5)cpUS9v;V89Oz znwQY^q&TU}UZXv_ZO2-4s-tn1m*LnaicdE}%T8(LHt`P;AS3~+;_@JZl?{GKXvqf*MZfL}l6y6} z^dBRumNjI|HdJR-GEw2^=gG0?-Tdm+t5Rc&$u40)DZN?-uwP-cyduK)9^(HPuNVhx zXkk4N!wP!Q50TA5K@K(S%=$tgMfCPJV7i_Hrh~e@d%yHd&Zkd1zL0GqBa^yxUg;FG zgnvyHf%4_eszK@+se!xk`-mEm!J5C@L;!S9QO1sK6CswiVTdvjT}yY2ub=0R+Y`!p ze?3LeY4YF#L#Wjc82e4gP8kfu5hoOKfeQHsJEDvUU_P+hNOa++Q1GOwgRA??*wjs% zYaV8p%^O*79xn)_Ir&aG$>YI;2de)Ydv6(5<=6BLZv;U=x}+79P*Pe1Boqq}ML-eh zme_!FN(fS-(ny0yBi#)u4N8Zw>F$naPOtm3(^wQ6a}%98OUvLLI~g(V7;B-^aPnPjI8 zVtgg@oxzV~DG0xT0}JIENXf}{8`Gd&J79v^KZ`@N1vq_90cf1H^HF!TZ>)`;@0FF`)4cipy#|{hu4bLksT_x_8NWdIF=gNXq7&r`A z5A91u?c`PqQtCT=Z8p2_d_bl_F;=t=76sLNGe?>bo*~w2yASrTopvt)Y~b<33+~<6mMdEjP!$Hnq7O>))=zZ^ zEJ$?3Nwfm;2Gx6~0=Bn^vm|u=zELiMW<+Xo0}S%7h){xRgxpnN5Gl{g%DbS&249Go zbZj*GQvgQgJD{GSKN=u53)JmFAz}_?`i!QQca)rzHt zQL0S4aA9v>-{@^EpaZ>gd;tlkpq-R_3s8@Mt7uUV`S_d*Y1Rw0GJj0(;X?$~Jr(t> zz4XD(69~x_Fd9<4a4U4+n3(Lw{EQLd1)`8Hq@NH#=lqU2B<8?|=|dg|sWa&x*YaWc znT-cDf5GO{Z9He%pQ8Z5Of)cbAYG^fSdu&AB5!M&{4p(qMg5-`7=Z`}YC}$59y2%h z9da`Um#t8e2Xm|dW~~RPC`5{<0e2-#kbwfA_5+X=1f+uGL}B!=#wx{r43N{b`284- zA&Z69H$7Aj?alwTrR`3}17ioMFhT^T2)NO{xpBdC+Rk0KIHhLSK#1xiFyYjQm%0F| zL(okiahuRe61zuOoLK|~KY`>yf{`S0C0!60bqGEhw%Q=HxQ3Gi0xoo@ zu8IkfKv0=WVs@dCk?IgU;7~~?MY8ySbV>p6D{@kU*2X=><{Gss9Dg8@4UP|ZB0S*7 zZmo{TgFtUUEk^-J?f{AEE|?3fbVx^l1xW(%0fGfbS~G(|yg;~p=FAxclm#x<7f9M4 z0Rm@hdAMKQ8<*5cohI;qHdEVPz+FYxie&*!;%l>mG;fHd*~KuM>N zy|En1*FshO1_;yvf-+7B@A`gjryDf>verLDyDUW8;T;30!~{eVl=38qeb&pWA@xdB zSB8OEw1`=U{kVGo`0@zw0{mzURGy5z@%kOBeDH-_v`iL~ZHG;205$@mlVO0gz()a- z6OlW}z|h`w$jf&q*Q#-A-dui}+0Ru5&2z}8j!E&H#S!cVtd}v|7{PP4M+*U(p%$lnC+;aBE!Zc^-fO=mr>WZ6PWR-oe4a>4L_-V9su9YbT(k zzaoG%z$3te^j10B1Mc-cq<$bz<;!3F8IP*<1EH98Fjlrgeii_(5N{g!B7iLsSoBM$ z`76n_S3!JXaW^4!03Pc6udfv2uDguj65^aai=aL?Rw`CMK=vMmK)0zEA$5-j*bTjr zWk&$h9>I1HH0y&Nd8Podli~w%B4#B-Wc7~Kq>RJW4&p>2qY9VLZSI^ zI2;51UKm!H{;X=e>&cbP*^Y^}s9sd%@y;;NE(0Lt@dzMG$RG{dB6V)=z|0|A0XRV{ z(4iU;=;k}LD1;FLf8aI&>$??l@6fBOLvPkUpg(CVMOSxnpl0=^kZCmaaUf7(A@OYu zoK496w18EI_VXXRYh>RB|4M)9HGaBB#n+C3vZRotGb)8MA;h?6A&ZRrkWd>?e4QRx z*rI^515hgB8-fRWmT#1Ct)NpB1j-DfAX$+B9jp;q09=(}N9?^vkKX4SGitYrHGP{ZW>$FNG6;JW zfw;nqA*k+}(-U!ofs)U+3W^Dl18^xYkdcFZ9_aW2@b?I}7(hIw%G$rnY>WVudKV58 zo}Qiv1Pf__2#GK(MDpAY=Gh@n{17e-AP(lex#SQlG#cyAiWdiQ9Eo$YeB;LQpaahM ztzNSY02gckF{T%E3(`6fLDB;WC^#sH2t`qI7nr;$*gCBoCJaoOYH>rnqEfW%og(JsQ(0r8tNYGACL^aRs z;lovhC&v$!^#s}Yo5_2B`&G&7tyXoBaXvo#Y3y)ix1~J7{MJL2@TvXJ7_mHoZ}v1R z)%IiJtAS)&TU%=|+1IAfW~QdzH+fK7ZcF?KLN!vzh7Az0dB9o#&>I$S<=PqWrmz4n z0Kfn$6r=?K4nk!e4ps^8BDX$*ZC?j9ivfILGl(?;g$0x;ey6=8J7db6uC<;E$@%jT zMTm)w4TO`jzM*0Lk01E35$p6qBz(b((gm#OUrsqJ6v0_lFcnQef6Dw&@M)Aa2C(;l zDDwiIk1kZe*aHwBzx#;`6duPyWh^d`!D(pzCreIh()g`;ViY&DC^|I92Ba4krStb@ zG+fFjB!mPqOmD$I#mAHaayVm(3sNk+H+P{&rU#rxbO26n+@HgU>~e5wG>vP>-06SE ze#&8)lw-hE2<4efj%^_#A)%peKI0*#B!LZo3^!P+LdxKf2_i}0g9{~$PbqCkilRq_a(t1c@XOb=NGa0c=q zI^csIp|`B`1k9>W>@<{7_EATU>@Xfy2p2#GXb+TXJ`kuU2FS0kCKZ0DkiJ$y7vstA zl`?x9#vY;N%4m?9D(XB#iTVT2*#M>?cw@ubuSpkKJdX4;9&pyv13yGzh6{?8zsbwv z8>x1s2R{rs3L_cP#N+1-QZ!-H<2-UR?XN_g#S4*%m&V4M_*^nxcgS2#qN%Crvff1F za4`P`y}w}qi7uk2PoFxhl+B`UeSZd33T}UYMn^|C`GY+k2L)B5Fv%g3^`Md0!7;+X ztCf{iE%*=Kvlv&Cr^;mWqybmDddOjY+dDhuLFoc=oRpN*1E8JS5ZRjR&t(Sl;t4r7 zAQUR9la_(yzHq}f{eH(|VP>O7KQbT_$bs+24`vO~g9!4i8#EQlL!C=n<#MNh0a=Ug zS|gz>R$*+*@n)y2!@}1=neNzE3?jhcgQ?X6&;~-7|LMZ8|FgIX9uZCt-&b&_$)2mF2_T6W4-10HFl{1ey+nolii3f=R2= zfnV}yO;%rDzjknNzuIkPZyke%+U7djb7`MGeX6amKLfNz7C84Emjr78$bn>j{n^|V zx`Pn64zE8;%O1=aIzpcN_wOSuqCZ7M=)pF$di|Q}Am`;b;(Rqsp3@=0ME=o{%d3Gr ztnKY>AXWLk_X|g$|H7{ZP~6&=Ng?G|B{x*a`Ps`%*;%rkXiU67i^T?VS6q8W_&~KrJ!p> zqortUz;)aLJO{sC^Z77F>g43)e4|b#Q86(@Psmu`ngN*=1-1rYefa5u@&O2Pe%u>Vm`}hE^^o6k$ zMbw*;Y7?##6Z4sS?e4@ zCGrxB-~6veZLy+dY$tM8;|}fljIvooZHZTC%DfYX70RF#|av!zlI!etj zhQ_I3JWzJXN>4urmR|n#YoRoyc%FyhVLv)MTR_!xcXfGyuX8oa6dzSqR)$=ou&4-8 zK#5j3sF#b!mn>fB*X4b4)2ZTfZ`G*ZrKP0>pNS$cD2RV^%v&Og6WdUyM}UG~=MDzP zCne=FQcwe;r2r;OatzW zy(x*K^Uj+X^;v}=wKw2%>KYobfus5+IM`N!IA8sId>pIQL9Hdh>`z369Bi5F?eFV= zPOL9tzZmosIA%zq2iei=aSk$9!WnNmkV25)ssC#=y`J@jdUKM)=~DwC!|2d1Du0i0 zsc0-_8Vyv>cq?Kp>FEQ&1QMLx@z`>z+Kr65d(-_0YxVojpO5`tkFQpFtnQj9a`jRQ&omDd%$Zym3or-^ z3qxjfV{?;?ni?1K1c|G0UM*{wnW}+Z4NPfPN(v5urEfiZ7WGq<7)3xxh$vnaH8q6k zCgWN2@a0P;WUu9`2ST+0j@X(`-f`b+_|Z@D^rBvj4!uR8&f%}uCUw%YGaxD!aqhsW zP-!k!lG>I$*k1LAstN=lLL$M~DVfa{!^PQ6>QGbWEnKU%wibnY^zvm;RBwMmVc~*K zZS>oUsL!2d@d@;w!h*i)f+4bhS63^k|D;vW`k%izzPjBy2 z-BDio+{qXTqXf>Sl95--vM5yKGg?eUE1}LSwyGTqi&xGwjgDOVe>9HJiR+d%m6Z(0 z%qlCBu_?uIJ@gF=o#wiB^(r4=;fwMu;6#_6o!tZ`m#Sm@R6)z9RbJ3&J^N@p>-oyo zxvjzlzoNPzLT^E+#IQbmb}i4oZdk|0yXCroz&iM`4d1_?1ApT21sJpDd11@35#6kU z{QNoq^ZJaEWGtBRpKMuA^?#D^Ry*FE8Z9Hh4jYq(j)N;MTa6mgTtL$X%?VTLz&}Z z{9eZO+{TY-#Zc4GG`Q1Yjrk&i z4_&HMbpaXly|q==*q8${wN!3yHewHM9oXj~VymK}jhGNLnrw*r#FAZ+Da8E(@1bRP zxpi_82^Q)P#gwOIrwfbA_zR}p1{x{P#QaN=2i9?G>QMY1tj9S3K!Qbi68Yj$625$(;hF>dNv zRypA8GrAwG<3ax6uP!8Gi%PQ&zYZauI>>A8HKV>_(0n$2r;jnQQ7TsbBk zEDVIz@j>tFdVUL^revRDQa4vOAK%=u47EF)8b^iY2M;+K{ zD(dHFqdT9S>8bI8*i1600chVsMIeRx<4#Ya(|M)c-@tc&vQH8R7yq$ zjw3!=ZXrpN*SWOzg4ZHnF|d>S^MRr++C)eHe0JuRlhX}g(Be=~Pyo%H5G*VzrRm0# z*^_r$ui80J_(rYsVK3H3M)*$rUZrd4foFWX7gSGE!!5TP7lamNW5b2KnJ*+v!9t8p zxiGwjr7b7i0#@e4{JcN7ahLk0Q^uMY#`}c~zdT3Bd%*bWJ?NI`UMa>_^hYC*W6^rd*56R$iz!LJjAg1o(u%7H|C3S9qI2jxUTO? zFTT=8G|w$HB|NE7b*w|;9_LsXpTPC&e3A~=bEXBy>_0KL1knoIF~E4uSciMq@^1pj zIUykdg_wyiU%qq|Z-g=D+izboena@7!D@NRyHu2?SvtBE{GQuIChB=LMy;QP+SrqG z>mPRp&0c^CUATK{)J>WI#0J8)Iwa)A9Oa|uV9`8lYNQ|u4igc^QT^g%jFngq}M++<)eMetBf*ZPK6Q`Aqb3is8t)vx1o% z9U}v%8tzD3d5wTRNlIzyduQX0^eI*-O*?Q{6*%8vqv92b_e_6t&CQ#1G-u{3M>!n+ zCNehe3XBo-n4xUKsvU@UiwO&}dA_oD&ivS#*DbOnaXR=^nc26-AM2xY$&L=kojFEt{i9n-ja9LZf|;&QzkTw z&F?{LQ!HJu;jnEKEc>CzN|g6SMN$)BnEYJ|?F`5tiF zyUCGT&g%53#VDsqK;g|P*&b_x#3X)tRZS` zY4!=(PTw5z$eCkDM9!+r7XP)rh@)w7av5juMiI>D*X+!e2l20@UwoKZO85#BzP!Yp zr`vCqSIBQ(w#oY8qq2txn_EB+OM6*vI&$T%;T9^hmvLP~ZxjEhv~gFSG%y+WoM%Ip z!ox_$858ASg{*G&kS!hkj;6_f4e0sv=jtwNvRfB=Ql~pY?#g;y*u-^zGuIpak){tC zd0jK3$T~UUEG!T*LvCtcLdh$+EAWm$$cPIONmN&=7CVs@lO$89u3{I@O|cclNpA|NKd1Hi>G_fuD>IYok;V-lpj-h+n(kQ9Prh)AB* z($exd9fm*>P!oy3t!)A-tp{+!62WIn2R9gw>fUaUk@AMpQwU26$@oBi;TG5z0Vw4K&_1NG=89Qulrin|GRiLWfn7fzfTp3mjY@lEKhQj&!VFZ zJ2Ry6^=C>rxVhXfN?Bs+m*M!0ZECilGSsNc?-s=ztTppCQ^Be4cc0$!a83TjoU`$r z>Yi&?NDO6^&@VZwU7V`F&B|*jf@Pu&P;iT1^%g?Mit{^|M#EzNZK69Hw*Z4{0 z8-p07g!>9y*dDJBd32k0defh5ikpxI;sT#ztLoB&yABtnc*_z{yi0=t z1@rT!!xS4EYa=TXrLkeD#S&~HG!%ka@C+kAxf|Q2W5^=bwb{Jmf|Qyxq*i1PMp=rM zTarJncPJgAD{dW^E_ZFmI5;&42VM2+6=b)6S=S<xB3DUK@zA^!^SpU+r&7IbV4){4!;P^U<)|!JVsP z>NOSxq2|KVQydP8&QRxu8Ym|0VR5?>vMP;o8MN$|0L(`3PlyPwQ<%Tw(kCM@jf`T zDY?G6eso&@cPmXzQ(}VruaVh2JKnB8eph8p7+<*ty+s}|)3bJ5nJA!fm%a1t0R3m0 zLS#*K!2a)}cd(~mqAW`;T|2F7{5DFX%kPf4L>d0oy|X0Nzn*5iMkL6?CM< zUOG;wy{OpGo>?66s|ng?e$~*9v)xb9txOwvS|>bmUzxczN3+aF?d9InzdzZUcc}br zDfx|@xlR3GuDMtJ`lbe@VE*BBU3{?4;FHWpv4Du39sBLBdlGqt?g=R%wLqh4ZRCz{ z5~DIQGm+@(tC3Q&+qab z8&2|XfhvlEN=z%IVIMxcQIa~Qgv|bJMMYw8UZFmKPrc}V_R1-b!Z4>|^Y^xMuI#uC z?BB76ZVcTG>8zh$rct)4ARY5uSzDeyYtCqX`K5yN(S8h{ppaZm7pa5o>bcN!rBt7T zdxv?F=EkP<2{mlCNEUs9H8n4VqJEHl6)iYsxxbO>b=S=K!4~1-SrK<5zb10HO5Gr1 z#3R)$Z2~$bL4`q1#klN`R0qKX9v|hM1qJ;=tt5zMN#qg}tFcZlG0pv1^caeEYJ7RW zIlFY&YH5HtB$vWt!5MB!<^-+6Ot%jQ(%*v2eU)y8is3~?&ndGNrymek&M zbr7qW4flKJwI-i}d!>%7^udbZ=jOVx*w_xfS8IBIH#33w_3d2AxVfQrD&IQ?r5~RJ z+89|(s(!PzexH*g?6kWrGmE0RFt^CU{^f#^(v^!6Ld>XyFJHVQkEL>7p{C!wr6orA1$rn*tSqki}DAM!eq`Y%;^A`msggai<_=(Rut}S(wxrI2&%B$i1 z=(oJIGomm@zmRBYe6G@|TvkJa@M}J;Xw`Dkds3kie%Wzk@fR-!y;hzVt*YYhdsbX> z3k1SP-QH>V>?i8HxvgB&S^c2u#7kD2Hg~|;5aDIVv;_yGXMTO_&dls!Ya^?vAfemI zc2SIlYI$@hQOo#TY$c5_P{yn+FDl2Qw%KJJ=KR`2EL!Y8pec||m~2)AxI(+jAm^!;&q!PcRv zjg2NpG`{npMX`JUrYvXZ_1fO=FyRwZ48UJsh{>Qg@hO;?8Q3JrO6 zjSI=8g#-~vy;fJ!&^-qBQbyjk%cyIx)Zwty`lcV7Y_k;*F(UK#c=>sRbmYg`nP%MY zykBeQ=QR8je|RPbiM?^r)HZzO5qm`bLh<{pX9h$Ewkv+On2jPYELc|xxW z=lWbP#=@e)_t8)MlKaU+oh`9&1X!`puT1zW<}6<#_kaK4a|o*%MW_}_)r6^zu3w9@ zLw!pVwa2-8&m2Xqh4O#+^Ze_1^NWS0PqC`4YzjQ(&Rk}j`Lp#EM@6l_uBJfXrbH^H zXkdWr@|BtTw9lLeyPKW?nM8DSjir#jfeP<((^W~t&Ul1dtFzebM%RA*_9vr>@F_5| zNIDoRZT~SyaD1>|Th~oqB(&}4|D&<2z(4(Wtvar8ha!5T()<fGApj#5{jNxk5cvN#KY%w9R~V^WAt6;k^TBI zuY}O)u(ZDC7wOs5Fj2;ccYdFS^GXD7!~0wc=R-AAd>@DiJbIxV)N-Tj(m*S%;T_!4 zCoh7Ziy$2tWHj%bpy9ZN(k>; zab2bTA+|tB`aFhhnUX!(C?Q~swY;8p0NV+-{JUa%L)kIe_xojD!6%Ay43qep*qSL# z<9FJcE*tyH%}HEERZED=sHx#a{U{SHSiP~Le|OwQPeAsja0Y#4MTIo%U|N4MQSH7*Y~NjJF(*bCY@c%)ZIiYie@MNO?2u)KG%@I z3Af%X%xkt1;Vq4fPR^)iidfa3uzF6uRaDg7T6Y!*K#yLk1rQF>-sR-ls^sLUHbl$ zXZ^`3^t2ai3eSA87?II0x9v#{zw2EsX>o4H%JXZY~NfM2$GV2t&q8zHT(TEK;i8?=zZdvZiXDr7l zt*?DVV^Xp~N)<)yul`2z*!55UAbxpyPvy!yg~)qXUR7GUg+wKHX4?%L@8BHa>%E)k z1N}4BHt(=d&1?sA!{aoPpBWNTugEx=GAYJCyfvn|{qefSU%}F|(0f-+@#YWNAKY8s z8vOI31)JCJ6aJi_U&30wWsj;2dhp|JY3zAI4S}r~((@uxMkp}Y6+QwLISET+NoLEj zSzY!rq%T}QU!)E|Z{8>9SSo+>j(lEyup^uCK=It0f(Yz|g@sTnPFf>-E$OFaGeOU= z+7S~UP;~_t$GLv6gIuU++ppS@{tFK~SQhUUHy$gS!aGl2bLX@eu?S_NRyu^|n5Xa$ z?F`d1zRJqEPFeoP%``}GjHf{O#j(1o#C&6m?rAZfZcwtE>VRzcvep42P z|8C;}dRqUCZf?pMlpG6LIat<`mYX`J7T)z0sin4)xa2G;jyl}jWKKJ~(zh&0F2vBW zNR{A31UFsczjItK@GrI4-Q6Q|+F`9XT>qFMRJh@+Q))N z<6Rz}nm4<$ld;d+zJ4F76{x5D<8FlwZ}|MY_9Ge++vPcw1fzM%ICp*b_sjZY*Qy1C zyBhxFFwIRGl9+RoJzl*#TtFx!5N^_=h`w&vjC zT$)%lA-Uzf_lcqL@^tM;BMRHA^3QZ1F**MGPi{0VJZwpOWA)dC!<#QqE}gYEqDQ>4 zl(9Ph2lqIt?4`1+ia2r4IwyK13oSJ1Hh!6!Y)q9?Q8Af0LlFH94D4a>ayPFaPVh^J z$c4{ZPA+vk@VM*Eb1a_dRU?pb&6L#j2Gdu5TB~)mT)cl>y~NK*0TC;=PO4v{*ZgcZ z?WN<_rSohGZW}mKB`GywCacZTb3e|wN|e98wVLml_qtg6w#gM1rN+q~=Kf24wLY&A z$HnpU5d&FID@C6$8^^WG`t3}UQfslZ)Zxv5!NPtu6qS^oex^S+m1Wg}wj8(gB1a=* zcz81hPe$W(E2m%Om;*_Hd?)c7*#H*M5;?fCYEub+`1yyAHBkC{)LsNhGlf$hf(YT#EC7+o3T|G)DF>Wt=Lv4x~G8k%U0r034q=+J#HvVl+l}FUa4m zo)6sWHj?4HvAyFP97k-yZiw013HV-?>ez2M!Wlet22gL5eQ7!;CkcI$pAL5h=UVe7 z6_G#--2^ld*tJafdK>-grUC?D(o9U18H5xl0w&WPqtz+pw=9#8&jjH!)`ODn#w1bG zI5z4g|2ZOaYj+xDGiDTgKH5v2d-*>+5xhMo_3oeV zl*bYLpMO1c{&Sxs>fb-a!RmVy>4TxM6P^$M`VM(v)iwNo|6SzWgHBk(fAc{9_16D1 zVX|NTHSPaquqPUH7fqLCVdav91I3&E^F5Sf>XJnN^9W4^Y@Z*Z{>=@Ld90B=L)Q4A zxTGckCkZkKaFy~e%bNH8{URYl=yswMa-6E z6Alep(Y6|TjCznExV2lSd%XYm=j5!(e_w?y1^-^AXEp0L@`Z^VRGglf$02&y|n+{!_@8Nm5-Uo*$CVNk$p``g@D()$e}c8m;beWFB?0nk^g6*+=_4dXN~lKK9C5% zzXt2#iEpt(8;syo@&8Iy{FA6~>#nTIAh$sMlPUTiHQqm4%zrWf;+Ii$mq9HD9iEdGD^`yb8k|G81LBzqtS!VZ)1%NPCSAC1jFFYW)Gw)#+9S`(1|FN?Wi67Y{A z$oxNu;6EG11g!sm-v5eO(kZb&&c7TYa?qGqpd5buUwTCUe^gy+A}+ zO@jp0)&2WUzvS55+$xSgPAOH4KYY;rh!+<%x3HL?p~YOfe?x|gnw9e^Hb2dWix#9( z-}*=TXfMnq$&-kbmJTF9OnhDB8wAbH`pdbxv$9Iy>@1y=XMgakua8xjjSyeN#@mj9 z0viX{&ZDa8tZBv~8RJLKloWB9im0edXRyWVbE?FyW}1>wg?Va}tVk|J?C0v5Sa`qp zAkHfimVS1dD5uHr;<261$K&B=Q5QvPiG-=yICwJa!{!7>s-Lg`w?6U`yc=$KhvRB? zV`{qK)Jzz`a`19H*+3H!b(${+M^0_ica z9Obn5=Ki*WXYNKV$(=Oc(vNX(Tk%*QvF*k=+b()^9J}afr-Y3Bswmwsy8JWXnz!BR zEs{Nn86sC%i4nz)rr)y4>0H?^k-Y0#w{a5Qda;%d4NEIMpy#~pBlYxmbt{|*!K z6LZCe$|twrOgd?;`P}Xa$L)inJSYT zQEa6dGGA)zPL3Dh8jeaT%p)h8B@g|me6eu&#`7e3E#63tn1qxBhJHo%NejDfS=XRb zVPYn`Imz$LhJ9%q-+Ai88k9NOOb#S$0S4oN<;HhiK<=d~Ru0oUnf#IM+bujib3Oeu zzPq}kVY15a@_A~BJ|7;)jNc_G`)ZHgwknj#N)F%On)6WfT7l8Ke;4Nf_Soo1LUJZIW6S4vG|lMe5YirLrHIqiOibmL847wO7hCOFPG|D!7qT^4 zDksJUX#wg|GWm`4H5=CUYod^)?c&#vXPKj(Bo@itAr-m%p3b0|;aby-#kTlY2!#T?=EOtadc@3xoajD(tRP`GY6v=I{XsHSIs zl^@v_yxctIrk}ezUJK}%s`AphvF7tnf4?pbfA62tcEon55k;G*W+XE3JSw5`8@1Y` z!29rC(cl6|_2hO~7#r!l>3L`R;@t!Jw2{cfsxW++qfu>hi$Ekd^iH8=xsqI{Q%)g& zQ9FQ1w!F6TGwnO;0QB}F%8hRX(M#h!q8;s>w3>JabpvhZ>;*QE9q?(YwdIDIE#n_N zNXAU1-D@#7V0bW2le@zBr@xi(z_j3|Dyb zRaaR}+tp=!8hedj{Q;q*VV--7*7+UkBoYS>4c+ayuZ6Zt$)bYkLup~*PUs`)7FjuJ ziGr88A89^$`+bk=a+>hxFG3z~8) zt+mzassxqK?**y1_o@`_iqBcwd3)yYe0%r6>Oht5e&+9xR@BAXI;PRsrNrE1uflqk z*s?I+ch60@$g$>DraVyc&U40Q6ROf=9b@-ppMJJ|k#>bV@k;?~x#)oOgUd43Zde_u zh6!o@v20&^`nvD*W4W!(&9E^J-}%D2;gDt3`8X=4nx~v-C6M@}vI56##K{Nn@eORx&_{LHf9uC3{!9If>qPGGG%_1$)&LC6E24r8_tP! zk@W3Qr*mY>HO}McUl~{4Rr%#@r^4x|suDU11ze&f!0o%-hL+{idP@_0E-3 zoBCaFgqwq6=<^bHS3$tFHpq5psRTbD`}&>NwCz&)jpvE-Ml_KZ7Flx>7-(1@E34EW z8tgWVW;32S`mCd${&u9|N~x^`RjR>ng`M5?JlP1v;I95&X;npj9{H4{$+6P&sG~~8 zKdZ|q2?=w3Lz;=la#u4}rZ3)RsU2@2a~mV>>h68~8RK%t_`^ z#EuLj*dURd5t;g;Uu?N}f$is0^V_l+fh0iYd-n$BYUTU;W~z0{E`JJ zW>85+XHh@3D=sE3Wc9R!=nflhK>A-%>9(qyirr4zm4Tt+*3z=^)hG^NpXpH?)weDca z9Jb@yqPMne$xdmZ`#!_2L)gLmx4=2t>;v)Pq79Ur)2hAB877pd(-3C+cW2V@pAG_7 zdb-Ae@>e8^<`N+hYBz&ATwSS#%rec$s`Y7d7y=tx$0dozwUvB!GB!+)s*UlAc}5%P z7r5u<|M)54k@zZ!Hw~z~(Dcde{M_Q3e%Ghvu)KT{Bkk2y_n2RGl$*Dur@-jZ^Cw;* z2P7T=K0Y$ecF$<3<8R=j_7YA}qLI;83ymmg^d`Q36pj9{aqDG&&EVP>yovdyUTu?1 z2Z{G+R>JYB0}7Vlma8`h@eChs6wV&lEK;oR%w-`e0!rF=o z`j^jc5P{=B#gxmDUBBA8qu0ONLYaeCesjhrBI2P>W{8)}>EzM%qhbe=jcj;iTYRo=uUmaZSuqKW6Gz4N+D7%xl+q-+3+ww`h9EL>hDgh|7v`Z^|FwJ=`#Z#Cbf=F_-UZQkM)v# z({4%I`9Z8F@yzG2S)0(KLFwmRcITN=E?bey*#JdmZE1k?rr32-sIp05u4bvP`{N+_ zZbZzdgxpN8h=v30g|3yWQj4#Cac7NK`l)x--2KFw!EEeEL5D2VPO;D7^>2Z>Z8@c|lZqN~ zKdEY|H?uXdK5-3aREA2p#{-h-6)~xnaWef_@A7l1bC@*3SL%F~iW3v#Za1`}S0~@7 z)i{z@OEVFKsHp*IrKf6OXPcRTV(G}qaWX8|Fj3El#^=PqXIj0+nC7~LAtsgAsP=b@ za$=QeE@h2NCF5DK+Yab?TT!P0&O#dCOSXg*Pws_plI&5P9Bwg=(RNmg(-jj_6NJnf zQcWH<9a>GOSJq=>*>@VBSQ5QW4eC)Bo#yG|8X=SyF>7-&=V;@iYBB#RVw1PfE3vj= zU%#cs{5IcTH|xQ>_ImsHrRH|y;MVBm>?`$I_?IF<4IJEe97(5twzu&%xiqX>R9Z<* zp1xDj@%)n(9GM3XQo2s9Rp?Yt?8ueQuLRypR%y|k%}LeX_U%1KKS+e}#Z51aFaP8> zEyW;vxZWoqja(Yf4{Ce%(avPH@iQU!Nq>$>myxqFDFe&!y9c^ngX0U@U{ycNwEgE*8 z7PE!L{GB6%EHP(%q7BS-JaL!nE__GJR4tm*LPF|}Gc3B_Y}RXZy#DmQ-UeJ@_-oYgpf`%+Korxu(qVy|b!z)C#j)T8Fe9W5f;{y_|e-zA>%=+?J)*2^o5p z9MSQ+Wd3sJTn)~p)d&&bHXjg}>37W`EI8NG};%x5a=_OIbR7qtM`1E(tK;AM-PK*9z_AK+;h{wVCl}WfY7Lp+`oMjG}vX+UJvUl%z_S+5&)iEXbW%CNWd$&D2^CjanuQMv$l#)wb9*MiAzCXlE z&}5nx-t3^W&vibkTPgK)eXU^6b)Bc}NQ(p4d;77;>1O}Oft}xyZO=r{R<+<{6s{hg zoO5$nwf8x+N%@)M#r;z2_|-?p5iQA~th|fiX6)>h)iYwh_eF(X4^-;Y@EoHVbF*TT zZ!mvJqO0K@@r>+UcQBY{aIjOWJW1#H+IXN;tUD{>4*iV&l{j#Zx?3N$Nr$j5AV$*F zV*1#OnE<6-yBFuMdT12AT;RG*2E09DRBig;@!CR<3CVV3wVR#k%)A{W@=>@~h63$h zn3najPR{AP&F$n-DVyhBZBD)1#<;}~4&nsUAKz(qNzeQ;<&VdwUnwSx@*NJ|z1`V7 z4gSO{3t@5`*%67gm&ckOwK zfr=XU>^kE|sM=KA`5|h2a$wa6g|a+eJ9DRv_NXiPOZhk4RpNchbsBPwl_S47+pbtM z5={wnuA^x&TYTluw(L(-ANxB#QDx=kr@_7Bq)vB2e)ITq^wO!)sA6lwu+Dg5$|D;# zZDD=W4n+mz`V;A#Agnq30P&s#-z zvIR2@Ec&d!$fvYilyWJbrwY5xF$JUwrdF+EB2<_A3#H1_h5}e3w<8C<;@lfYkK!@a zgFp|NC5t+lyx8V4y>58uQlQO#GU7&sTAMsf=2ulnT=ROYrWQgHe@N9GVJT5KyC+U? zhIy=X#?9Ewe{DMk)16tM@zM2Xrs-M_%`lpEnRx5<>%4=}N4D$6P7J$B2D1^`9rf+s z`xA7}1Z>j)A{KQH3?sjS`Q?9-j|i=4Kk=*OZ|2 z4~bJxQuaYVze8fl;8at-vssrkYLl4RzvX29#qLG@B)b|m$|-0iI7Fo8V7ph z;e4n2g<$date%tfQKqgT`L6FjYe~grz9f427<_c?c^ANkmKP<+xH_S&`;IZOSKD%9 zt=S;L!bo=}Zkg`sg)bUCa6D8dv?^>lm`~*UWqxo{pWjGXS?J2!NREGCXWKyXu|-;A zaiYri^=z*8puYgg^6V+2#ir0~G`j6U!`gy<`#9!ky((znn=J`S`#_$8|FD-67FRMZ z@BFNtmRou!x~9-v(1`1JY)I?^pY-cDr4KdDC1#W~{l5!{B&KHjC<#}4*Vbha2HoU< zgNK9JR>XG;!r$TobU=bH6Qkcu%jhG}?qCTwz_MEFuo9z!2>^WMp(NuK4* z$&eIPL}ZW}&8yo%xKzz1zs(e@doz={t2G7BHs3i=*ePQO^>vJ2z6C&1tdkD)6Ew$` zE%R9Uu=tKvi-;71v$53aDqnSi7@-F7=OKE_?8x7*;)AqSTAEW2u}~CRbZ?BL;`U%= ze{4!kPUU1GD;tBW;OT7B#C1Lgm$ z!Kf{QKs=>b80|k3NJgY^KJRGni~~-o(BPMg73VCsPMKFyW*bJDDYfDca1`Tq6n0L( zd|>Te+euJ*^fX6I{QW&a;|Np0QE^FafBnfqxq-k{s}kcA;UrpJ7q>S#cdA0&;rjmM zXj(M9^Vw#X+sSeHMX~dMarFzpq+zF&L4*4Dnqfg`jpm}A#F3KGkM<39U7r79t98YS z-zAX-qBzoQ4VpvLc6A|*K%pMZ-GI|osKVfT_wwU?BkcsYN5DRls_XBk!NtXeUa*Z& z0EKz$fyryt<@WUhH39EcV1!yhM`Ebgz&JfUU5`oRC6X?2lLXH?Btp`%@)t2?((42>#tU#JgpPmjGq=~FH@0ECO#rn zQ&shamKqaKn~pSqUd=Yy8FB-t*@7XN_c0Xg3hCgMHPhKY&jMPow+j2 zJAeF;2C^^I4Xm6ud6gAHGREAygfn*f&8Xh#8ng`1*GJgarFP5FYmuo@WRgyfIH*5i z&yJ}GCO>@qm=C?kpw@Nz@jgC2K0;83())?U62ijNP}xT2@#7C`>hebPl{d_4r5v9@ z<8pV`+ld!f05*?&7YN2aEiPUX{EHudboKPrAJS{7ari;`-7^R&|6_9blecm#bwHCR zWnv1huzza#?fzx*SW)yD=mK^}M+ZY3i2Y@!u8SS-W`f$@s;+^tp8?cg84qaEWsr2a z097V$o0#a;yWY8l!nL=3n;b(8|EF_ z=jO^}Y4BN*j$}vk+}YE6A2$aLxI{mykm+O54BDume% zx@In3Uepjk*nC_-v%|a7x7*1{*$DIn9ps{~GxOD(t1{_lxS|O{?|R$2yFP=72a$wc z5Av$2;Y0D`kF&&G4+IfGsI0s>u|B4EhJT@KhS2XM6QVZ!_P?LhZx_P+LuG_KsMbkI zLqmA%`*1$!1mjenQ6)CEXPCC;@B||ob#UN>bR$OUM?4K%$Wi&GUII0GfBh2ViC$}K zp@1;-K2~*)JIQ!X2f16Jz7VZU?d&RtoY5(P2q z_2dA>J(7?kBF8c`R8YFxN`t~%(C9?f=o(n`jQiK}+ye_4;b)2#cv3LlvD47_exRL= zWb=tSuvl8#vDQ4*B&?+StK@}KvMs7A2`tZBnw#~(VTOf>S4a;1+iO3!?oeS`nXBe$ z9!H!E4E2h-9Apt0egB*Bn=+opg%cvNKU7Ri{^)tzRQVkmbx(?m^RO!lj?FL>IOEIJ zq>6u}!`&*c$4aluLnEVOR?Eg3dufXu6ptYSA?VZhGcG

8DWtX9FD-l^5e0fOZzF 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

=<6CWocwUvZ8UBc67Oq!w%m}tJ4m_WKMDM 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 literal 0 HcmV?d00001 diff --git a/docs/performance_report/images/sigma_asymmetry_angle_pos_err_sx1.0.png b/docs/performance_report/images/sigma_asymmetry_angle_pos_err_sx1.0.png new file mode 100644 index 0000000000000000000000000000000000000000..cfa75230dc59f5bcac3b78890185aa6478ae9ef2 GIT binary patch literal 618736 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%0D#SmwLdRv&BVI#7{|Q_akhTY{!A zp+A5EMc2NYY8fonJT788ifdyEk!-(HB7R1_QDL8!5tF-@Di4;rkGI%d64%jK_-!w2WtvhyT(_(V(QQKqI=U8@&u zL6V|-bGM}OG4n;dIO^DbRf?%^=+~)tNo-w_{_gS(Ni)Uru^)E_Zu)SNBQ3e`t_l6{ zhm7s!X7`U53vYXH-=T&l@5jsVN3BoUC@8qqg7xcKN&=O&((KwRm)VwWFWCLoFtXmR zyS1x5VV&hQiA2Sose}^o&hPj8{boiTQ~Lx`+m=^cQkG0vf~)0(6vq~Nsnwk`sQ5y5 zMW3BKaWx`+?Z=+X8K$T$D{ti}dp?vVT03Z#`roA=llfiiE=Rg(Ku#Pn8 zw2uc$*gpP=7md8c|7Cd3u~uh=@IvOUWruw7tJP~|7kbSds!&;FXC`+n>zOktF#W0X z-$Y?tBlqt@-#SB8z57OSO-WXwS*~=$eF7%RIX#_wMlw#EP#e#6uo0XeR*kQt*yJhe zN&l36?7Lfj+P^E`PcQFi6)eeI{&}@p~NUaU!RU$<`35}ohA&vvPB`uB&MDA8I)^p=BkmV9T~&9+`!vyOS6z|5Y0rp*XX zq`Si4nAee^<@>L762B}t(i;rER~7v?cp*M?_(=A8adm0tsJ4tf&9%pKc!M>wZf?&# zFwCx~tE&At+P{pWU0!1|Ke#k zAt(QN*|@qT&lwy06I`PM+>1N1dWQTDzf3K;+VW&=zm$QV|80j@KYY{?r6mTXw+DNj znYQ~sy|MLt+Mr#sYU01CAJ4q_8&|gMJy=;f94!2D&hf)rchN(gnKTPFVYjCWuJXOx z<;q>I|6Q-7*Z#q3v-GoSxru?mqw#9GA9O=?)gD~5yCZGkySdg!{cG2Uy=M+@V++yK z@D0g4ps1+#X3iRmXU*5U^i19*aW;ySCuhC${Pz|b>VDg^wcoJE^P%H9if}=-eB;J0 zVU?tkj{8Y(DN6Q778{;TFHGEaW%O4k55DC7@bd-V?)lZ12bJHK*IeU&eMiUBG~8DE zy>de7Vz5+SOUuwNq1cq2Bg%C;r`9?mqdewb(XXda2xGeOf0%pgpt!bg-?#DL!QB%) zxD#AM@Zj$5gy8NDNeBe@;1US#!II$a?(Pr>aA)t|eO0gO?7h#cd+JubF8*5d>eW5h zoMVnP_)BR9-7wnZ#HfQ7W_T`_{YeDVw_#cmd z;XLChL<+-Np3xR>uCxv{;|LSd*A^4Psw;WPDtn{mTK z*ks!Lm&0OCZX?#O@AWi!(jS&zh_sNkr%x{P=z-0p{#2#EqI~SPoxP3EG-9_~pfCUK z4V^;0&jOK+u9*je3FcJcvz61Ta(cTFLjy=a%6p%e&Q2sBZMc7?lCXQ<5liB2?Je>& zenopEASgIbPh!wH)!ArcL66vHw1E`k;qf^=yzG6r71@|x@|Zn!dH1Ejc=HF2Rg1i* zrKS$?l5jr5`twhpOqOnc)uL{17`ci6dA@%n<>uz$vH$6>3Fk;E81No&J>sMc7k9mU zNC-l?8B*18ALSG}IK$m@~WbeS*Hk z@^NCusg}SlXW4^A<xb2@Q*W@+aoq1?cBk4G*e^1kBW>iFT zPyRaTOKv{(uXJcQGF^}xlVdzNx(c>R(Dx$k{Z?XUC2r<5^gLdBaVCZgnW4Y3>Eira z-jDs$<2Sf+x#u>iW?DDrUXuB{{uTNxBMLcctJkJqs%xWx)f0d7-7(=8wZk5}xq`0B zo9d@g8u#rqQno0mB$^ThO&3D8)=SY%sRR&+oD@pQuVeAjKMQVOUX?pY+fTmP83=%G zh}60MALd;O_#g>C%sha6OEpkyRnyco1#OBqptPFZUgs_f6eh@bfM=G`Q|y-OCGQzf zLIt90Du#xbp#B@+2rwL5P7y%@k<~64RQO;D-$1}KmV~o2`-BZQv^BJ&q0YR*QBt!E zcUqddE-dtiSqkA*xTGCI!B^tg7j!DqK2HN+dl7w&EO22H`{B!fzJ!<%%3ci5jOWVA zl;#o^N(WQo?+%&KXqx4U;iHS9F^%uCu^(Vo&ydQQbDNbj6gdjRhL*@%ieRA`TMJx@ z3&f0;^vl?flh@L77*RThH=gnlk{}w$`lD||kxp<^v?VN6jL$Olzyy>xB8&eKTD2<| z+|SS{m)221fN;a=k!GuwCZ_13ffX%gP{GEPuw$2{qZNlAihaL8W=uKxpjV(uQ=E-^ z$}i>gm7^~|+u+2lHdKvTT1ua0Xfv6bQHWsBWiif~gcC=eY$bllA?_)REE7v#U^klD z6mRGEA(ZvIo37~}_|k}~xSG?eS~eKiF3mhoYM3;l;2>{`VZ`-bJ~gtfJl6)!His?a zs+9!>-5XamF5WdQV;15~mk_VpoXS=jyI2L~*@cjgKV3+F{t79cfS4|}j`j_~)b$o7 zFyZx=6?f&d$eZaCEPhq|E4rMZ>s>trInIdx1+PcDYNSXR2^7P^ugj?AbddO&18P4`? zt67=ghzJnb311haY;1;84OLWea7YL1#l`H&Np5XZY7UEfVg;OL3KJe~A=sLle&pd< zadMztljClu5wX<`Y4Gak8hP?O_A;V>SS+b*KbTO^yP$#R9m^CUR~x2XMwy#%DRYIi zoArx@`wU|{itM zk)iCw`>BaoS-~IfhO*n5upmY@)x27anj)F6DB z!)lk|Hm<3z8vG{)+vD0TSV_b^MK>+Cx{j!4)|?OT9ln(It$$5ML5*gV?f9>8m|*Yb z?=!OA(#qe6`x#0?R13l?o5?=P;SFW5hUpYYC$u{l6oNVUUOnpEbCdAt3JL|UV83pX z>=1M3EZQN=dxtm;LXiQArHZ#4Tg@ue(Y3>KWnQK^&!^OoZgza1(w3 zEYW0A6%R*Pb7+!=FqV~Ry!Fz9Q+<_Wt6rRIQUPDWhrnLc;Jq;ZX5-v&R#JsQmFKqN zl42Nf`h?w-uxtafWa|s9t9BMJp>mN6O~lWbM|AUX9U1OGiveBPkol6=N!~b74NbjH|1I4$|Y~&Oy>z0P3ccrV{+jP8I`CX(5W+ z8U97JTS$&%(8f;=@T)tNnS0T)MA6>94ODy9`#V+cU`S3%#Z<^kd!D+x2WKm+i7D7p zO><4sSs1McTmJk?CZQEa9vw~jg{`!zIZ@n}WuEG=C=yL1?s&^R`@j$MUR8##wx!jq zba2`Ph#?4qO(qF>sA%2T8&m2uFGWaR{H#Dtuo}mMnzqD1+|Jg8rz=~K0=dwOE|>0n zYgj+@d~CEUS1AfiI(l`+^dDm%M-gwEz*83=>l-TmdR!tYJi?8A6behhems=)L6**0 z(nEpwUxK-5F%A$|=}2UIOg>KXtmr8sE9P&APnGzV!z~E%Fu0)Ojt~ zpL(TFs;b2^$`Ftdda8JNr6}lR^lJId%2CpPGKspq;gr7h=;~ZRa~piYm-!*QB^q`b zvANl(EQ?pKoH<*qIKfaqdfZbgVvuzrE&0-=>ib7g5sw)yeLf{Bj6(BV_2Q5~t(Z|i z1HzpxG;jmCe&{;4aOdVZvJF=sL77)_uv%Ru)aBSaepUtcjQamtBd`_!;@WB z4C6QTj*Xj5)YzA7LV3U39WJ%y*h7Wf3HO*VpvwHXD=Elr5Av+qR5Y2RmWLibp43Ys1u@iD|nEy)XTVm6;V;h>FAF zsikGyqzUoTo)x3U&#NtliNx!PU>?A#+wGs4f#+<68yy}(rjAGe0glDl;-UoZPFd@FkLHO6b4n(!%e7#W_b9(L=bu8Y`yA;>5uzV_HhOUCM;@DFYeAfkuxq zPikwWfjdu!a=vO~9JpFR?!;LipjRO2rH*iwt|X)V#=DKZdloNesm+OlTgELKEzy%d zV!*LIPC|cyZE2i@#RA_-9ZWpU;15y=5lo|otf*Dr`nZ-2PO56f!N#qKkGEoUI7+IO}B7bO)PrcC~ukz#b#%uVJaJ=X)J_i$d%}<4Es%Y3Utpx)WRM(wWCL%r&HY z3C0{T!3L|w#l5QM$UiKbBURJ(+ZMUMbVyps%%aiJ_p^br5 zUv0QO)pdo9&COy)D^iz@zLgQFgf`M!72%v^VpSZm@v=#Z`I5yEY_6(BT5!k$ho;cu zy30t0K#Q0tuRRN** z11`Mv-B!G;U<@cLD-f+G@pc@K^RFLDCv2X5N~Wx3-EXrXXnV@;%O8^By21oxC8^Qe-hGE4Sw=`vn*lp*<;U}JaWr%}61o(* zYdQ!u9cPI5E8rJPRH+L}(0Wzj;I-x@3axs6jQN1M_gG7c7>Qg(473^d*;7pcqA zv-U2fgVLv;#CQk3wjptiH^(9fMxMLebG4IGO0ZkpJ-@W zt!uoCIIhs5$j(9B*A{hQpxh|iQvKJ@Em}#u%`RDLsfcK3;9YrXA)-Hs^donDvcfZJ ztllP1)BIApgV;ezu-oeEhVJCPe5Sd3%u2Mj6Q!)AKw$}1Okya11bu%Paq97+l_u-V z=ak$+sW8*f+pNlra^S%>r+f~Ck#6wrSYExgh9=Ga(h%=4}R= z(1*q&o8kg=^!}0xX-98w__=w*{x3SvH{|ip_LmpKIOW8TPh)mguvBsINc%>UZZk1q zC8p)^vMDiR8@IT7H#@zOfWt61UmFO0XDo<=BY$=-0X&6)STvQTB5Q)U{@pncxrCZ3 zW;8VRu}PdZjXE!p;i6(mS6imr8Gdm_KogQe2GJnk`-Fk9W=kZ_R-Fnt=T72F&x(xN zqJ^KEq3P~{qaBOBt%u~RC#{>kf&tc%ZBY>7Ye#0xoR}*&6$15#bP{5Tg<$duRR^y+ z6)V7UPtev46`Hl~udEE!dL~|#$Al@Z@fSv)>xdgM*1$sNINq}HH?9JP`J9|4l>VLZ`-v5mvb*7OmPZp=ap>Hb$ty|XFI zwOsYoRt>DTnAf4L(cHM@a<~@BG+Ry_QRiHy$a<}Z>@IRo7ktU65+hW!b)suIJtIUu z#o>Q`*SOGJkBW$P9h?~HKwO%lE`uJFpv5;YU7Q z+YfvyqQs|_k|UKP>L7)#Xt7PxDC=)9)qd!sfnVh4&>30wQZj#A^ck$Uj}ZIBJi6ki ztpuhdS=Qo?2UnsZyMsBex0aQ-U#LO@joI?Uf~kTW4CCdrVGB4Yu&r4mdU%u>&$HDw zL~TYWRD(q$x~Bq~h@z&rYWp!n3+&QD4ACU=klDD1;Sy(v8O_-@&Ty>k`4IaW&h^0+Xi<4-Uzmc{cD8m) zviX`kn;7Zi95O3VpodGLhj;$pho6AMrGFjXjr!}|G~nIxng~6k3KIxo&Tn1a)Rjp` z+ttAltou?oF=f(4N&Tm|GQ67Z@I9lkf1T9W!~ssygPt@v&J9kgVWW@pf<^2B9M93g zj?om*3iA)I2~(%Nx6shRe|_x<*oYP!1u_|zHVeXl(4r^>h9@ zvd2z{3kZ|{^b!iIZN?G(`~N=DQqy~H+_K~zDMG--^+#}CWB>g-p+_%Rd;V{I4{{p_ zqua3VvJ{{nQ-WV5Hq7)22><=VYqT9dcnzdy|KU~CXQWK}52u2|mxN>g`MH1dmiuOU zs=cFU;L<9Xy-EL|L|+T;fHVkeuokNeKZo@ zxx@bbhwm&)A*;C41%m&2u~q!*Ec$P*@jn>xq6xj_Q1A^ZDE@8oO_+j(_xHa7dejTe z+MO=o@BjZGGy(azms#Hy-SnT85R|F;9y-hZ{*~+h;;-fXH`4=p=)YZ!`HLBlzyIW0 zUMw*LFy3nd7u{SqSXhgh4XXb-QPH5*?;l>d*=pA< zm--X``L5U(E$`v~;rD{W_qOc+$73%w5g_+s??_Eg(Ct4rXpW8k2%jz-o*yOcND)y# z*vnrE%)kl+COV-wUo-;#Lu=KxoyEmh*|r_IRL#2bGXCvHl_jQKQ4^wBF7x5zg_7Oc+DAF0UAqvF~e0JN- zEWE~aTg-rOlD3Z5b#uqwAx^P;4Lv{B?24K7ii>gTmsk3EeA8e5;(JEl4E-1R3F$cW ziptq@n3Zjd87R=(kvr6fPx=q{1swjLSY%)cf08%+|6-~Z;Jdj~S4b$ybAr9@5cu-{ zJVX8`i^5&S*_Qx}S`!TOzu5f$_6q-QBL8g@1Vb+Ot*H5f^Wgup9GnXNiuwQj9scj` z?tfz`|J52pha4MNu_B~(xqn^U|BW&HKQv%_;?zYGYvk9MPu;FVoAWV6{ye2ld;=el#{%z;|>t0v91_BqL1MbUp4M6;`yaN40aG73v44~0)Wm41d z@VzTG*e7iM`N~p9joaklRK0Ow&<@uN3S(g)&^*)G`8l)+0l=Z$q_HDG8Jy=oZYE7A zpjm*og<22PX@VxG3hS)GLRyF@Xnh147LkC0K*Pm#5jG|UhTy|LZUjZqpt4Z!x(yVm z2Few5f#OwmP)uJw4ESa+5HN=9e)pG}0I5b+*?KjHp8qi-VrS|f-N`);8}4k?=w?Bp zY5DS_Bi!0%JtKY4t_MDB_3&`fe3uH`QX8SlXW%>i-Rpw&V#)hhtXyON{(2=C6BYs( zUT|Q-0kVyoqX`%d0jz(Vnb6hO_pgf-x`qFLa+x%v@=ztKxX=Q=srVDVIv6P_k!XDh zr~cKWC}(1JPSymIBoF3kBwFo~qxw{K$#WP+HxQ%#RK-h#@upaCLK%c@Ab4L1>D4Z$ zGo*F%#Hx76A=R=`h@Lz@)8ZwH9m2HCp4fi(t75wd&*{dObE6^N;4k`^5vIE6ld;`= zNfh<`N!7RT@K8KS$dLLcs>%xKbBV>ilc3qqEgYVIYcy zTTh%X14se6Nw-=yNjS4T?xvdEs1kAkZ-8i`WC}jv_ zd*)o>)qbU7>FPv)q~VlwF9_!%W4^Wp@!pLIjdc)b-qWo-_KTDPaWWU2p)?i!NDxfw z|A+!VGxL49SMk`d(T!WSgg*4PX~@g=gIxECTYY$1FkZI_)|l(B1Vf#?nhZ&1aS94c zzIp8(pF+fhM9sLhD1nRPO;~>=q?FHuxh+jtue5vm8H-wuE?zw|xoMj192`Z#t|r_* zXG+jr$dn!YhmW;Wb7bcvSHLlu4+-`I!7uo zvC-QAf|djOkrFj(s(Ql6-#uN`>E#3L6Vqfv8u(T=i8QpOknPu%kAh=3pdvmez8r1< zJyw~ezJL)+94 zFmsI4n|YymU65L!L71htwhPFpW(dmAGp0}6Ie5eB*tz>&oQpx{lC*l;wZ2B2)lv{l z0~I~}@cchxOv0MX3bAY>^LT|}h($%V-Jcgs=sz-o;3e9bvy{J*rR;MPvt*4`4=l$AoM#M(uc+KS8wlOx0=V~eub8;OLo`DBKL+{UCV`b^XC+VO^YK2fL zSzfrgh7?4yGm@kx=qZP71dZ)0f=MS{70-0*DImd!Pg7HiO*b}w420leKrVh|*9Z

$Y{jXd{4kXKozmXVXixF+zv1Kn7mPMF0VrxV~JAtQWL?^LG-WSCl-gY`yhFAPW?b}(PnzD zWRYF*6$WB-Y!kfn{m;t5Aq0*FPAzGI^71XM%LmlTJD++1B~)AJDw<3FYE$CW!iUKr zw229M3Ioz4Vyw1;AXW_m>^-wls;h!zMyBzd7%b3)JqYb`lrTMgqZ*)*wAVCF2vW6) z6`9Zoys-pX+=gXdQvp$h1wP@<3T(BkyT+WHHqM${G^OTlUDDNC)oQ{(o-2?C36q7- z*Z5@k)%Qo&$WxFW8vQkgj~^xtP5ZZ&zQKaCUa(3lMi~kDtiA;RIRQ?xelp z?+^ukk(nQOnfOy|pX5}gCIUFkpUW0AhJykIP)TcKT$IN9GfA#H2|q`*@UbD;)YvM* z`AGPr?rRvRRxExm4&wM7AnWs#ju!;^cMkH@N)wbdV&35Hschv6IfaW<-{UPAQ$>@7NkWj{n%-6a=eXFtrfFyUJw!gBdA5{jR8A1XIIB+ zo6~tM!i1=o3)N81rnpxhwJ8;pA1l zu7YuYK_~Y54krTl25qfuv8AXFQom(Oo8Gp898{<=i-QvnCp15ri+Y}*K5k%8&CS#4 zp+wQ31K!KhciQEXZ@A^5X<}g%;7l%jQe7t&tr~dqo*LX%)U4)IU89gvr1Zf7kkoeq zyAB;Hs>82k0!RuGkx4{6iBE=|F(p=BLm_#!b|`(t=<>3ewMht7o5RVws!&ifZtO;; zXo;8IqWB?MJB`>hqLKudXG-iyWi9pSH=hxT>>93IWJs9an8qMqgr&tkPu(czOZpsN zyLNRPklf0R=-u4aIfllqz>(hHFX6X&IlbuU#)6MexOar;&h)xJNp3?;b6wIvn0WK{ z7e(fj#*=rhq0t2hARBF_uD)(&AZ&(m=#>si0)iIxj2+A(N(wEy@$kheTH20V^>7ImxkPE#-EUc+rWV`Y^_3k>?d1rz@Jv+b}g|F$a6}_e{Sk zO3`1z8&!Q^3d+zorU$mPkT~%-Kd5f)0tM`?hol!rnjrsMvsqAY-keme7PS|vXqJk{9cR6kOhwNbFmq9%RUwsoI!*g?GiSxU?^$m!(D<>F+ZUWq#lHJ=r!Ow)U z?7h<@ZSQ!j)JvQSs|cMDq`KUH&UTT07g}7kvxaFD4;=VulRhxmezbg1J}{yj^#D^* z^>yS8fqF^8+crWx^||Yzfr+QVw+-Ka4PszdKPkYwl$B)=)ef)5$KUFGa`G-9DU>1A z+~rvzUT*d7?cFc=81$9n!zY5aob*YI=?bjkZuZ_wRyHOP5J#CAoiwqfl8(j;>WPWP zOw%E()HZDV^iekBs?QLz3E=4=$O3i7GcizS=i@qM8vkliMSbv+IjC5Th^Dy#wLRD zi@3NZ7W~#rfrDRTGsy@9T1uKfKp!5SgQu7iwyao48lADtO5wS7O)mVaB*WZ>(|{8L zk!H;m+iy4T``(mnS|wzK7Z_7YQXj&UF}i`ut_M+_OH8leLzbQ?KEnIM<)DI`_NhA; zb99}L>TK_4zANXF7)_RxNq7yi_Lu0RFG%OWQ?ZbH(0V)zYi`&_!(PhD2>gP1ge#yA z%12r_ZK(0DNy@IZpasoaZ*hB@yiFZMMKXrt3AR=bO_35+Tp=5A4-Pt)Kj80 zfJrh*-OF}FPI-Fw|P)-17NR(jVOFWcWO;~&yF{sZyxdVyIhr4EUZ5m&C|@ebxd zDAPrK_k(P=7MJ~#Bcf%Bqqr%ZEC%q;yLrEKzO-Nhij;`YG z2d1POs?}$0(a~*%80m>D7+>JgS5ubRbD7_?(5dcm$$^v=dm`_%1Ga-3BNk2Ggxagt{U zVSm5%+RHzF>q2gDW5Lvmblt^?+S_@WyX@m<&E2Mr6IaAJJDs$oo7h-Qm6^$b;u?h=uJHkdhZcX0` z-3*Yk{e(^$=nWVA77>UY|2&;}D34(LiL>PGs76nYLF}TxZIkfpbople=C}L+cT&S) zjKb-|&Z~xBO4pfsv7lsZn0zU=b#{09+hcj}=ub2yMfA>zK$t3y@yv+q{3i0({tF=s zXT+^{OM+iTmeL7OUWNb3FRUhdM2+q|z`9>K&ds=1e#y@bp9j}!Y?FU) z_cBd0h|YgDsA=nJNU2yd#{7-M$w&wl+ee%27mb^f^cBT20ntKsg9>g#Nh*4Q@jMjL zdRN~NM$wKp19^`=KM}D!gds?}RM2WCTeHD|Rm`$%nZc9&X2h zxI?9*L&w(R5zZ1$v{cIdgxbQX75&2fw_m4nq1emqRm59U7AdDA@C~;%(}TL3C_cYu zhWVQKw^GM=?SJqM81Nvp-G4id1Rqpki241;cXApFw6SK#vq&_b=C$~FMm~p_G=e2U z9+>+Bw_oo-8JiCXVYR2*v$8gP)?J(J%mX=ZQA_O1Kexnxl3Wna;gCA|eoAk9m@A;) z989R#4aqhYa(RJX`1R2@Y`uebsaLjdKuNg79WPZy*-q0{`y{+zqlwgsY|PuskW;DQ zKJb{xyx6Wz2+xEcd1BEI{}LD1N8N4aH9v5E`mPfxDieB@Ju`LvX^_3Ah5i+zu4 z-}OE`_LB8!eu>kctOFaZ5*le3UMG#)oMpunsHbniuYRnv8stroJ=y7}YH)XYx?o>c z3k(9Thw(3ikb=xZ=qQZjwG^Vf&oj=m+0I}f?%ez5|fNmz6_ z4Pn{Ft~3%Y>~1f&Ffc$7ypk$$UFNG^)SSH0KJ9va!Quv7$HSK%x(I#zsj0?NC-e)u zBt0O{GP#t)$J%o5T5g zzFOU876CIeR%Y)@3=fa_eY^JCaEU6{+HPOW*ud(@D_3TbFR&uMjYwbeI4T5uha7mc zE;b}%Qb&+1@aHx&x?1E&XUM~Muh9ado6CpVlFZ#eE7YOP&5~_t^YWfujKaxLN@NPz zh~{>U>F-7ly0dJJsB{bWkn;oa-6ED@!?;QMbIH)j{km1%}U}ZMcPvM z>a`?7*tRYV`d#DXhLE+}&M#WCCxsGG6d|;>xmvw+N z`g1UxarT$Tlaa>r8>@X|s+qx_Iat<3evENM#2q1n`Dcm}K5l)_AstgGt~Wm0DqMQs zCEtTb9VG?yP8ysrF~(6p^1k%pK1Ufv`3O;6X?8kt|b`h)LEYy)w>K<-X< zm!IBy?O>I-9yvJg#L>P|GQMMH9C!UizU!Gk*oUXOX;;krgbgy-FvzDg1hQndH&!oO zk(9MG-6z4r^>6L@wb>jRti4SnSBb+Gx^G`equ)79q(Z=!43|kJfU^Fw#n>c!v5-Jh zH6;9{MfOryccSm6CV20q{F;$ ziiuKT{HLp&d19F$KAtoz(4px=r9*^Bbp3S*@+Hx0Q<^_*Mi_`qje1upc<8a92y@)? zu{pxZhoab@`N!rgJ}|Xq}@20A_tq^X_+`g#QvJ5R2sd^H}wJ`ify zw_P3gmopnhunI5U(K54g@~n(3C*G{(Bq=j+Um5~fMsrqbSZL)koFKtsog_rLmXVTs z#Nn}|)TU#fQ&{?Tcc4@;D=-K5y3K>2P(%P3?1tBpOJh+=N00a_^NKJKFZ8QUx@N=h z!O+MC7zN5L%;ASXGSCgU2Mt|=%+Y4##NND~?iH384U9g7RtE=ky+&B#k|CX1XjC^~a8mN<~hQf&B4+ zf~&q({2A<$_gjG@!t(jZd6jo6&wcbRE8z=Oi`lm?MU=G+;4o!uwNi-lS_)yzC!5Hy zSw+~e&gl#VvQZn(R;pUYY+jz7-u|laaT`BcJJ`T^& zPTE8oi+M0+b;~MLBNUroN?n=$+c}3Jui&4DrF+c-(#H2n{+QpVPKGFI$9Co#uU|id zeYoDyi@9k3V^lgvOGN&AnKmCk>HCkLq@`Icm`8O@8B^1_wRJG=zV~$U=;$kE=5f9F z{4Pv37l`?Oe2yqvXyatv?%#-YH#|Qy^_Jx!CUv-!l} z94-~Fyy1(cp$~~yA9_~JVIw_urcSeV3P=Kl>~Ur#+{oyVuXl zWsK;PI_5hORU-+1<9#cduIZ9Y_=4l-Z9^^}Tk$x1qx6AIaZ4!1+1KDnBpYxTBCzCkzKHqeb0P4X0;bs^kuqED$_YChKxg%+irhEq%n1}J6Gy>pZi(s(M!? zsjm(fRpa&xspgYH=Nm(orlWHhQP*I!%BA1@V~Xy65SzXFCLF3odGMe%@d-dTn1Y4obCIjTe?uID9pS3W)2tf7adV5?$*Z&~uPIx7qfv}^$&m+&l@F=|P zAKz_X&}ZZJX6XK8X;8L;Iru{{Kd6fAFD{=#*1>_fIo@cl@E(hfGl=I4Xn!M6k7lAb z_uEz4&u1EUU>wJ8s!+YSyZhKr!t;BmDC}$0GJiAS^cR(ms+17EPoJadrtE`N3xbl% zxtU{Pl{JxiFsiQ>ZEj_ZMy2L(9PKIQfxZ;_~}na7*L+rNaof1K_w zVXh`xW3o{7P2}Be)QeXCorQqV;u^&Dp6hKr=VtX~itZ-Ecvwi`f)F9AuhXV4%l15G zz3K7RI2#8~Ky$K?B(*|-?zvQHkd{{J3LrNZ^R67~{CUV?v%3*m`$@6{Zymp^B{-M_ z4DL$SEb5A*_wKeLC@x2>v+tNaQ*B7mHCjJFaH?;4cnf9l_|GHetE+d6PM{5K;ah$D zm8h>@;JQxe3R~oxwyD5 zH;H6~(zf#x0si+%X?N;*+e8Dsz~>@%qQUYQnk27hQq!{QUKP5l^A>BxB*hPOSqZ^7 zYL)`K60PYVs^Yedr2XSS@VarnZxkjidBML2SsBwJz3+{#yGcEZ+|DL!(YotU|+a zl7(+=qsk>$mBmNil+pPPt6=f{s^pR+WxM&kfVRmd+@@4 z@x-~JJG;b{BuwJo_w?MihP8Q6*Sjku`zz~lX58#Ot4P?29JxU~QQucC9OK!v&s{xZ zunK1yW}3Uhzm_uaqogE|7DxCs$pr%)M*;IENIv1(g zMD$QM{BG{(?t)JWRWD+m($BdF1+qs(@gW9h9#I+yw;eES68fEy3|j$5zEm;4`nGp=J}VkkfCViesR)-Ruc z3_X>gAPE5FYgL;dWO{CWPP=k{ODj@(g&`O!{=X?rvwD0}w)Q;Ahqzz_n6VLWw2q4UV?Je66G;14yO-g$H0#uplgs0|#f74W5zjQ+^bQRu_aZ#J5(+;y z$qVfq0<5|JT;u9!5w%z?3IOX+x8D@20oZZv(6S{!n*xv#s(;_1k+uJ!x@JjfsWVU( z00gJ5K?P2nH4jXRjO>Ol!4e?>4R!mQD=PqOJLm>zY_i~6sH$RbxbS;jAH@PlHVmXJ zR>8^Xfu_HtILI*^#-a!PQtJb0ydjQKo>VcB-Gz~Im4>LEwKW4kW}*QyQVh8eaV~0& z;`G!M^$P`ervdf5SY)%yR$*)-rU}XDxHG57l5z`Ois37Q=xFAV{W#@ zZPNzCXC>q*l!y;M%=iH0mzacPwB6tTVt*QwI#HI1vH~!T04Nf$=tF@b9hl}1K6ieg zhipct4$0jdU(M+7LF*t&E=UKRkVuZ*y$e##mHg=wH7~CwA3mf!paF<30%kZ3AD@FJ+L$;7Hss6l4xC zj#gxqfWKW;WkunmrmP&0l0pc?d;oX2-t2UYg?W) z8}BJ})c{-}5XZXM|3XwI=n}yD&@2plHDw_#nyy+b33OP8PURI8uyFHB`1fhsi~5q{Iqd6iE^uiSbBp&Y-$n!8WVX z3lNHI;QN=!$DZ~C5v5%Em!5VmFzCQI1FpXWm`t#+up!IlG61az9##O!EgazarDF(T ziq%l)m|VMks`PB_r2>tWr=wzdByV1oDyqWG(KalHdeN zRDjGlC{c+8Tu(U2Kn&XH<~=9dT^jc^SLs7}|9F=U_%WdU3qUPqqJS!5d(M4-pw4a_JJS)!h4M1Bw)rA)A<5{yo}Za_21wg$6Y2?b(=_?Nl7B92}r2DJl5z zF8w08C(8)!>;*FiXead#4TS*#03g>)v%m>TjliM+LM39wYPn$J5%+|4J<24%jQS5M z5_OxgsI;e~+vATXEqOV?Svp-%xHSSujp2jhHCTXrBxE-U(a-@5M*vI)WIY%F1_uBE z#Rki)5XH{K1-pq~m3|ucx|2dmO5gu5Y3Jl~ZJ15o8NeBfBMBXc9hEIqFHD`@r zq%*Lx%7Dr)VC7bKiUb>40Vov6aG#u?2Lq+lXV~mvN)%5_acCB*xzudA8^>Bu4sLcS z>+U@uQ5p*RUPDs55&6rQW>3`E!2{<&P?OM>nz?{IO=pB)p>ax@|F! zzp%|pcvY@J!_Q9y*r`=Ox*e)Cf7ay-bMO321Qk0`3rzn4RVo@9IDqd1=$|5u-+(no z1#o`AXgWDLbpXYw(CwM?&OGNYN|d15=G$IpU-a3Dz7JO%f$f|QXuWF7a0&-g9Vi|p zfb{~Paj44-5CHQOb^CS{kPPtiDXFPlb2IR8Wa(J*-!-F~+lNJgO{nww46Hz=Db7ou zkn9F+vN=K~Mn<5{9S*>ofUjr@v{2bN#$Iyj>gr-qP*l1K13kBk!%}NOZ5}K5Pv|!O zbqwl^c8W?}ykGK^7mBov$Cu|6|FTS`K>t;_SPf`HggFUA_}unB4mtJ%KxY4kzD94u z^UFpcJ~Y~G3DyhPzQXhJOufmsR)g>PiNGTo9_-qL4L86kL6>cBuQU{02{bRn(+mMd zb0};2MHXPCc6|R12RZ4BY1GL|;^khe{K$F3KqYOJ*TBmrTbhyo^(!_MCi(7NFH~6K zoSTb_lAm9D+Xqlb!A-__hy&cHeLH+<=@d>`K}zs>gupHwUJ^yZ)A+uuS}!XUx?FGm z0#@8}TG};WLZEZc$$qYX(*-Qr9N-N=7p(zr?=b2sN1^DFUfP+|Z}rIq$?7ZD>(w*w zXtkeM`MB+QfH4M~@N{8cVjwg&V*Ln)1Zup*#9)Baz~-_c8_{EuLP)ssq4|qRFQ)%H zuK;yRlFhARu%oFKCnP0>0>UC1kS0JxL_Ddl4o_=*jzY4>*7m)opj>Zsw8uOFtU#z$ z|Mm?J5EKb+morH?P_A#TL&HOprce_4P+U&!^>7uFtTd96qPlNbE-=bD_Q3Q2`nb_x zvY^~M25cEjO-$_kiM4l=^2Xu3sB!I{jT+l;H>wY4jGn(^PLg{Lq?3T~1R|8z0UU+G z!qnvs2_+@zgVXb(a)<6H-ec@56?$B#P7Sa;V4I|}TP_6a35fm#0Qfc(`MDdauAb%X zjenFW0^0^NSBfJO{>5l8K0Gn0LOaxPqk9S1Fo2K+p!A~BQk=Ow0Y7{K0=k#eeZX)` z>{Dp7BY@~~!so(y;j!@+URpIKN)})REr-&9ACjzm%+ATy?O(VMS-k()v5iv*oE81z z*y^gPr+~XC1Ug99S|4g)==0jJIWX?Na@1_rGsr??c20QC|FW*6(vsbT>0VXo^>SOe=HgGY4TZ)B?`)tEaQDf_7r>)py zV_SjOZ?tK4ZAA?D6re>?S{f1DCu19%C@dQ3C%?zc9u2hktRT|f^-9?z)#R4e){%gf z+cl+ej+QpxPO)|6$T|)5R;lRdWUOp?csaU8zmzczGH|MB?qtc!CV>5sp# zYby9UfVr-!stQ&1$!Twl)nfszRq#MrIHc_f1Yodw?%s%>j)>?wj3w<0yI<{<|HmN% zSlg{F3pAo!B2y>|1kr?DN1btCpDZ7ENK>@MYK-hoE25ANQ1@}8GY^)UIS>v1`c>6~ zC+_WecdFpFaanl1hS!yO!Ft-8QQ69|iwqqSqV>|q!^2@PmVh@b4t8k3&!xQ}f~0;e zZ97%7cl!eqHw4%d(y^JZ?7ZG1g(KLuI)DcNK;0|@zB|VqpP?fay+e9sebr&leFxcH z!2HC-1SK%NEG#TQe;WxBbA2Az`k8^8m^{XB=+OSujf3bRQY4%rS24FuiZe&NsJ#-5 zhrT`;K+z)s^A9#%sW0u!fPM{~jzFvhy4l5a>Il=q-@V~XP%W7^ocMsYb4Ux{Jvlv1 z^IXb3$pTEWo7-Dhh=GTi_t$-3Yt#9hVL3jd0Rp(BQTCBs_3a#`4C0*$2!wAbQoys; zUwu{bREMiOQtDW4R+M0wmcM0xR6IPDyxqGc+r5hmK|9<1n%yw8#oMp@B*NCgp?9`s zt`vW6X6DI##P>qXt}RD*(^cDRFvi@xyry8nf_V!SGz;NC9a)lAH85bAh_@pxXY)|? zN6Va`;3P+$)X8Bvm&bVcZG(jI=!*t1aXq_0I9}H$~0p83IM)|GSR(;f2F~c0)M1*At+((d9ZUgapK-Kmg;6g=l2hGVQ~NA?3%0oOI(Tfh~myD40P>$6$ih+0Taon+gl@VJ29@7jteE zKqK_JnzcOrjwu3xKqYG=!nsOWW{7MBj=+{psxVKI1XxF?K+R-kex8P%9m}K|N{Yop zeDDEd0F^aj2fA%QcNY;jKQm2kOlaubaApFC-GI*_8P#)-xXRKly3lMYG*-%V(%o?- z-3pXu)8;M7|t&iAq_ z#?~)dfHEN;5NJb)lnkn0@>T-Isj{AVw}E3!LsUwyTdo>r2SM z_fkD)9k?T=H$Xq-bis8P24WF^953>&&uF*o3b78LwoQJ#e-1=lpo&ulKBrPp6!aH~ z`$)RX4yY2;c9y@%4{U{iuStzZc9(ufS02}+)`UVGNR^KbsN``|33A-m^*K2(AnYKm zl4wD>1TFMZXFthUlB4-ra&%l+wxm9DZC7kJ9EoD z^YNvGKUt4|kbqJnBQ6R8DH)lHRuK`GiMbhCq%2yf&hwWvFe_jtg7|@8E#i5lc8&Co z)*aB?JOz`<2rBAqZ{L$E6%Fw6hy&@KyPs$0gEl`M%tquP@M}$giW}CKGQi}pTaP^h zl7$^Vejo$kjy@nG6xwpWnQSl~RAdHx&$gp0(ognglnBLs#%SU_zh4D`0-t0LpeWA{>-vrJJb%CQ+$|^D zk@XM%h^+6;`xRM%*9tR^2jt6P>%Uf(`SXU!7l4mk#`4y(u&|Kt4;#0MPRDM&8{3&I z#5PGw*h#*bVJ+=@wQ@|!Z3iz;x2)teit!M5QQ@8VV_`MwS%^7`Q;WVTM0VAH`5Did}h)b8r7y z-!$1FW&zgUYtFB=z}Ma~*Kv~-qcZEcxgTDuebEccsVW%2Q_Ld$v1y;wVTLF|$Pa^^ zPWiI4{nym??YmR@Wfn_T7v&097KT;#J}2wn=_=YnLNTYWxW2cHVU(x+a<=7$p-;PZ z?Q;6}GuVf!9|(Yg=`H*`bSlIPiujJt^XhW1UrQ0ATYIItM_zhm%7puTeZ}2IFGFX3 zN)aprP_KuTy`P=cDt0}Bz2iHWlUh-*VvDyY9Im3Xv$xdC%yF;dmENsFH`(KDSeU_| zbW`Xmd)nywonen2MTtGW09ZtJaYQVd$J9G~?UIo68Tc{4VZ{gW3%&$f01pzY2CTXx zyXgCCf{fu$MLZBIuZY4$ouss-mBsP$o`OIsJ4%oBb)TGSl~Q{HkNs`M3|QD4w9b4r zkZe=0m!4uq6@7=CYdBt!mHIn3GN|ok<8|sGbMc0Km41?rW85gV5l84yOlWa%8fnP$ zCCRi@&@fnjHf%SN=t0j%TJ7zRNx<1M_WXH~NmO9$TbYMv+i7kfPpYb_QUIyK7;`IJ z;MfAyFJDd!y*;fUGXxXc>bq;gTE|}fD_J}9rsm@}-XOPhN~|eMm4&1Gx-1WtHul!DMip((SE9}MTc<@&N7g8S;aKeSZF`r27#U#!WIy-hRH% zPVXA5e-#9K03d#ba7>%Wdq^{TZ1S^&cuQMd@*F&RNlWYg-MiG$)*eSQwf{NBpDFn_ z7(NfTK1}wIGSz5%V&G3j&5T*9V>rw{h_NptA|Ahd`4CfK+(&NEB0~eYX-UYrW@>7T zNDjNt@UG00l~+1i3gpJ7nJSkexE?`F7{^0hiZHvLlamp^D?mu;#gPnRT`NLAlvcy* zrO;S>R}JkU&;&a;{7`aExUf;C)2&NPi5)R&CY&aXB&|C(#sBCihK~I8H^*#C;Cx6f z9slurrP!~JzDpjWf>i9ahs)~@35hMJg9=mK+C6{6osCntaN=%PresK1ZytZFt*;G* z5cZIaM~jP9}#lora+{}%I*F7g&e33*(hgaEb-`Jd09c~9H3XZ1qI}Y;a=X& ziD1DNux)$K9NnGtc5-}z>nMQgv7$NsXnhUTzbeWm7M6FhwkP@=3x!Lh8_REGZ4=GGMeuoZZU*6)%n*<(6?)lhgoC`oQ1+g0Aj9h+F8H<^~Q?UWw>pBOAZR6OIfAgCcD1_r$~r|o&3fjJ^YjO0=`?t zOh^k&?mwv-GmqV3zE5)~u~|lDC#~cBn!e)XVJsN(7F?UNb{~u>jbQ@FaoCz0+e3}4 ztpnlq#ANjl*FeC1zIQG1KMepJr}N0dJumAA zqNg9VBMhMV;CIRl3>{GD3EtbZNEGBZ(!c$at;3;3kAx-ujea79!D|;>B>OGhPyN#U zEYx?+_`uSt54(OTeB{A1-9;e*HpCc)atd1qdZWwAY2Q&MFwl8rysJoOCKslU#$R`i zQZ^vh7mOEk37(IHp-iTTMn%gxNA)67UCF;z8(0k$($77 z#G6|{CBze1y5Eacc72;Aa9|OW&m2ZK0#E|;!n=bMD&pNo_-vfCFYnMizuxKm*R%tx zB-xWrt*wm_-Vpqyot32&kRq9%E@x)1B8*PL9`Ser_DX%*6dD>zIdpACSitQ3YuM%x zrtW%ExX`-$G@gHosY1rMJOyX1Dpp3Ov>Hr3*L!PTzPxWb7`}0R32!6IaZ-F%?vWk^ zg-&@IzFm~sULU{gs_h#dzP>2$DB8hWRbRZ!+kqzH2Mnf>IZ2L(TP(#)xSyu&=U=of zG@c^szQAe8;$Q=gJgkp5ZuFzY2rj4W!tWiF(&H6bG?Q&woLt6#K17Ff)$lQC+Q^@B zqv7Rim7U!oCB=z`kzly+R`opG~sz<5OH*#&kw z*3zRcta@`<`D{PzLmo=X$mqQl3JVK+5UlUa@XBpAw62&qexO7X!Q+76T|WR{t!&Fs z)$u*Dgz#8_zGVjM!P79qZW@hG%Lx)*eSgHW> z*bgmOfvn+I8CpRbUh^+n;EmK--#jM@_I^Xk+%m5Au4MnR>yR@T? zdCI_w&o|eiMF?izo4dNY2=WX&+n^^K&#t&57hz6W&xuz+P>_l0=BrVcGd9jkbk6-V z;`>Cdev)_nH*wmDHhZofJeDE$|L#6;zz2e1^18bJ>77?mY6zK4ABXuZ86Dry?Y?** z(rs2dqU8C1+exfdex-1A2VA*wCDnb|*>&O1TatPwF*Z+3jVAv7E#LRP@P>L#2wbbN z7k}r{@Q-MEGb!qB*Qv7|b~QZYP4l{ph!O)|R_O_f?9#;XA~DA9)8ADw68y^N_uE(Q z3V{2G7ZS=fVv0xqgNnixdq=9qY2fh*+p&%#y#_Vf4>2GuQ#jLnnYeY6KaAD>+VPJZ zvDDaiVZk|hPFeE3cf_RXyjHfs6iKEq$b6mlM@h_!J+~SJiXuN3dZhd?)nd#D^1BHr0Ii+|^O?zp zgCm$L;(U^B-bPQ8Eh9PI?p!!&mFRjNKYHW|UXz%NO4XoNSGal8<>bArG=|yk#r4kZ zQayF+GN?-ae%ePeBx+hbV|wCKbTScsV$F_%{QOjdgM$jT>nS^5%q?jPv+ZRY;E~!~ zys}^c<7!5#$OVjNxHd&cOM%Bk#|$DE>gxH6&s1+ zI_-O&pC&Y`_>DP7+v=gvDUr^01CE{F+S>Lq)3(F16wdJEAur9e7*ISx!e8&q02qTt z(P*--s@$%=gKjQKz0tjd1RqdqgiAwo)GD}jfb{a;o37vepc256=Cq)y6=F^o3zz18 z)d6|*8J*&VbWvJ z5hbfDi|^(<`uqeli`#ijLtuaAI9axq&#?Bz0rF6As#_E5YBlN$*|AY?LRHn}L=^(( zIxa3Q5@%q9R&E?5BXG!>T3$;lL_-IZee#U%=XVJT5rw{UTc{poWp-!4sumps4Kc0n zvYI+$-f+X{jWnp2_yrvLnoDH-6@3)3fq8<5fAKHzD*5NKz{TzYyCd$SQfMd8(E#eO*Zg z`YhrbCL}bLz6kcXvheY;PYa*x1XXoV%c$8h!Wf=1|9}i|GjENqZ*LM3PMPkybNH9f z6%*TSV|?wAhgWbXB;kft_wtArT*(c8etM4Jzg0*0^Sc!k$;7pdo|Ux*c=IG6L1XkU zqaLr`iY0xq7o`4u{p#OY7YW#9zdY)=4!bUz3zCDq#9t=2*LDQS%yJM@a5!deB|FvS zMZXM5m6 z-O<|L9HtwSb)07me};VcxmU6QNXXlSgx2AD&f|Je%Qfh6xM2M!lb> zA3Z1`QH=l#WLYrD^L0?MOS7Y*aAC>hk=%K+_tJAPO{U*usQbC9YRxq)*F|yuDIP|d zKXPndr3Q4DMjEV`UC1^drEgSxJUzMW=y=j#I-l$rPPMMiOg(G04w8ZmFlU3!Sy9bO zpTF><;9y_aypb~wFZ3z^bO{-Hmo7a$=Q0w$L!htNb4BN8Q1-9!P%+a~T!$sNVgtj- zYiORq@idnagj1j|K85M&={;(DcWS=St5MI-ve&)iy0Y{S+$uZulj#IAYu3+lc73!k zcuu=ky9KUn6>uBoh`$CW8i!>9{6bxkoNpEGKYZ;Cl%_{aMHgC+TsiiNs(jI=WLe@K zD_1>;Hye(#d(Ozb_d#xxVX4^)L9e?=#uYJ-Cad4(Q12z&DqEP&8al^N`(T! zL*#@xd-AmEK3aPA2<7rk@SJOeOK+fR={(A)% zOs7Op-h-?Ep*xk6qsi_q>v*;$rG|o7CsH{0v6BOXFhP(-28SoG6$H1h&7lIL@gV$m z$%RQl8DsB~kTxW$;eosT;K7S;RUD772aB~+f2W+iTm@h2G;-A8cIwYA-292F{da9` z7ne8#nA<8Zp1{FO6gBg#HPdQ; z*Uh98L;$EQ@n$8_8(N$GyVffI}QvKW5%Im;QzETnP!_zk#tc_hq zvszLehBYdys*VXfWpJ2+wuuytgdHJ>=>Mr5qbDMtLFnAaQJ-i$HP=gY7n^bg2 zBYO0a*JE>nzJ1#&Co9EuX)SGOor2gA%QI(~$c`e?=aUdbqB%Kk1|__dRG55Qwq-IP zuFV7O-+)YqRZUEwOv>$Qre}+JSy>sH z{NUZT4C=$8shXg)6h`eiwPv5g(i@$G?yJ^4|LzJ<(IYrMO=Yd>`Q>RXqi&FDA2%h|NUFwBgbr4?= zC>q$QEt>7Q#2u4UggnZ-MFw^0MjI-Ez@F-CvyqmS&{uU{|j z*Uequ?Ka0l5>>=eN5-eDG@il1?CZECqh=yyZ{+E|4Z1n>WYVcGaaZbi>c&j)$`aNc z@i{5oqT9yMdZO+tuv|Iy-V6O2Np7f%4;J>;0Yz8lTm1czr_-O~9)QIy%tyQTZvxIJ|-Yn1G~&dTjnTia$>pQxKdLaF$=s z!Es;4WtRR`eW(bfTc*2<0-5uD&}HVy=538-UTZ~xBp3}&BjhpjNU3S5Z=}#o-)Jnb zIe+6_?s6WaqBbC3E%c`LUBC<8yElKRFsa||%$YM410SFI6k3A1(4krrK32@9p*%{n z+Wt2^ds+r`D2dhQOgBY^h6?T7d)lHp|G-w6)jWC%!}ZZQOE83J)$_07hQ2EuGhSF7 z!_ihqP|L1Qu{PfEd4<_*Ow-UXO5^q*J_JD8292i{;n8_t4ETiaKpk|#98hgFDhAY4xTm zZK~dA@ydMs^MSp470|KRo_~FD4;TaCj;9Epz>t|DE(r(-goqg3)wpe%nlr|zB6If2 zZHBAtbf0y!wHd??8hmPgc=b^BCxgp>C(|^is$Ulj(^XUg~ zm>VDtMp3=R+S-~J1j70#2tkWs@jX4SkCNM3hW8ca<%ESbl31pqp^LKVF2D11Ve;~YT&0ad8Bvgnqw8a0C+ z`1u{PvN}NdqVfVc-#0v*i%1o%J0z30y2%+xU$VHCjw=gFU8el>5qMx9JAT|tL@RUj z=+`#~43n&s1SlN#TuXI*>Fwj%gvCXdapr{_32I+XAI8Nm7vJcoNK~&A+y}AcBFwV- z`}fV@qT&z(v}Z;(*Xx9FAN@wNY;BB{*Fn{8qNHZRLi88-5yFi1oE=YhZbu zytwnl^pZf^x46;zDwI$arBQCS*V-QrSiyniW#Vo&eV5y}`FHRB{p5Bx(T8?FKe_Yk z^$emvfg+#>Bz$S9{6kK0M(mR;|78#uekaYkt9+QeIbaawjsqa9X(>kPX@NRAI;4S3 z{@c*Iq@tEHJv~!!C!`NuBJA4nAPi>zZFrGb5^!PvmWq!b|2$c=ZcSfv@7}#~2f9No z&PW0D^z@#f=Xu@djXqpG*gGXN)uw5sme@pkd>U41u!gh` zM6rz&{**8?rp;{kIT66QD@iBr{3&Cay5|<|rlbp-yJlo$*J|2>0`cC_v0R$Ey3xdK z@X$1vn44oCy2i8iG~JIj<58YD#`j_e527s+Oe(*Qs76!;Pplp$uDmK*To)8$-cE71 zIW-=jc2a@qk-UOUH2a_3qikuOEE~9PDajhJm1!!bc`|+t-;U#^aApVXN&NLMFUEs% zpGJ%bQ2CVhEf)w0XB1>)_(nt=xmGvzQrw~;?hHFEU9-SXm(79Ny60pWKUt(ew6}#Q z2p}69>XiMEc-V+Qcs$%>X-N9&{TAH8))&@!fAeaVP+GL7{YC|LBe8Ab8N#(gG^0fVPQkUCBX}B z%^U&BUeGQ#N^VlUDUDk)y>JRv*KTho{D4!XoBxi`BSRJBP=Ot*pasv;WY9_w@GiCn*|(vcYIdFP;=# zcOsAR_dveZwze4jmGW6s8;@##avZs_(=$wB4jh3aHKREG@A3UB!HEodC@%RSbe07((;?5z&7q6iF!>n;G4}1 zs{d(&eIK$%W18^^%oY%sZo_Q9rIpWUeao!Z)Zf3hGehdpLf=wM-WCa&9}4qO(%TaL z%xgI38%uGv^NjiQP}3QEn}5S>C%j88=U5+Lw1-mZE(jr8t7oUU$5tsQ_N3HEY&5`|YNbeyZEp$;-5ncN{Bb@l-+%USmv8 zPmjWIO+P=FvEwZ%dPXKDCKESF6$M_6$?Xqbi2q=-N|+ekYR*rd-pPpRnOcxrXr_TC z>An}<_MCI|h_d~AGfKSp#n{FAiKH6{Y|iT+dQ>aPC>%fDm~C~rsLnKqSA3r)*6WJr z2fa9OxxB7!orHvh6S`00LGLVsEJVR6Iovn}KGp{Xt-eP{=Z8hQCi7*#`JX?3f+5c^ zOIPr@=n>W9%jfP12jKk&4v<1GIw?tlX0)%$e-gNY5zw1?w33r3UI?p8F{jhw^;oi- z9&Kkoa^%Q|PcTG&{(Lu=n;y56ZQW* z*droC2dtr6aOl%LZ=A3P9_V1CLY(( z;l#k7-zs!LiH8fUAbLQdrnHF@mzC(NimV{KL2oO_`9U`HiD%M{{`#?7OXmCQly-8s zS~a~>H*3#MUVoL2awFoS|J!pB8}FVWvqLsEL4@s%IfeqloeLD+!Q9gw>DOwBP6B<@ zHYj-IR+q#GEp?%Eq7$4+!{W>Qn(tpe<_b#El-B*=`oWGdDVAX(8^uUM8H5kQiL>At zeF+o9v}J#($LgX1IZIlND#;qgC>%J@;*dFp&`^dvU275J)LV=BHLvmDAeD&u{6dF7 zn5gExDLb>2z2s~RR@+zWd_TVN(p0)*7x2&di)d2EZK^d@eGh-_(@d#E13ax^{2f4P zIdY7Mx!RX6lMoLRQ9e-|;`~2?AO&g-XU#hnDxjbstCX;lAQjc>9tAd*v*r-VIf%eG=NH8mwF zXRUv~!SW+K(`mfd55QOhE`bri>X?s=`M4;C;1|N8qFp*~;v~7d7n|J;v%XC!?d+O= z?;qF1=<3uqv2*+Jn5ml+BP+?0kGX}NS3qE#JacAK^7`K2zp+-aO`R+APG8%&EzUks zpkUWB^n1h;TYBdErI=H7`9s;0cfyQK;)`yKwu$4V_2m6B7d*9Ux9_6OQRB@KVF5pV zkB>Pm=2TDnB)WYWH~|WrUEhfc?=_=qMm4taw_6ReM1$F(T=$|k=WatmXM|<}xekJ& zSdZ0}n1O>1P06+U_wPr+B_vhPysT^=lu+PhXTVNnSpVFNJK%m^tkphy4dI5a)RaY@ zs+t-u<|pUTHsL<`6z4$~0;EM02H}wUZ5I>U#2KKRc{)J|BdNnJ?}wYzp<9Pq&oeps z!0U?%`nPY~yy^4&B&D?CLr|zfa`~mBE0xV=c9%aj(DueM*yTRb2|t;DuN5MF`yjde z`?b?)&&$kg*2y%xlW^(ngV`BGivPG0C`JhwkNS~b{>!JmOzc9HnDX%H|A(ruXV%KD zCqe^?ef&NCu={T=2d|-{yMq3hL(X0L#eVI(P-2u;Rw_O_$^X7?uW0p9fu?5k&egib z5PyCBz`svCc;oGRN~u1-lH(&h0H4mDpx+hx{Om{&F#1lW$LKSU?!^rErDfV%F<^VY5vC9Z5YPEXH+fSd<- zL@Fa7+eEh@GG7d3S05lvHtIjP1)|Q=W`+1Om`76v7zy@+V7FUcJ-`X$+Ds3nV_441 zZ=9_57L0UKh`(9;j_n86YJFX|Z`E7VApTgjk|Nbtnt}H^z`&>3yat6=7^0}GOGEaJ?mh&az`SUda$~&fOi8=@B8X(9U|NQwwSRoRg zir7AIE=rGzLfX#lJpKF5siy+HKs{=_88$V%H<07M&qwKV5NP5`{Jq5O>ew{#F3#}^ zTI=%VbVwZ;?(ksJ0AoAUbB5h~`khZgP{`&nQfct?r>;SBWD1%;bvqsqBTd0)M?D~~2{1f~3a5Y~mdei-W!~v-A z8l5h5ic0AP1c)jtDx#dZeCUt%oYWRJHXmRiyjZ)h1i3vjGSt`)oV_MU@WI0P)1~iR zc(QYHY6#Uwu02s1K#bvqoKXncwtV)W-{kp<+~<*A0j4bVjsz(`#K{7HT~In_>h$JW zeX*C)H&Hy;Iyfkyeqbps20sCii~i&1K<*=VA!6H%vP%KyAC&7oWUCK7MVq4rLohh# zCy>{|!`>ViO%Y#ymS1wD^R;rd`Er&>$A^P2%ztvtY#p#En36?*GuGLccA zd9l9?M}HFXbUzK_cjMjWD(iMtUTN2(^bO`nFSwjSGg$qN8 zT7^!cU2b!FpefHCGOc}g?#d10*Nv2$#T^eKPE?LwMT7(;cz?0@@hM5?F@alr;vE_g ze2Jm`0^lI*^}fXc@_|B_A`k~@sEloAN3>lLz@7KeUaWxF-qp>mx2MMwfLEiIw+Elx z{6dQW>k%NqBO@d0*RS^kPm3uFrkh8{D)Fp|A`Oki4kUg5EeFbxS(&>E@-C5@1PHNG z%kgBvE{-)~O#O28{|Quh>8j;8F9+fGEP7t<+16BHpYgB>Gx(k@`YtR4AI!Gyd_Z0b zhFR8<6ZJ{@2_{rSRRnabnBqUW4h;-^?=k)TcW&jHMCyp!{Pn-d`;JARb5y;{ykeTTq({e8m1?8UK9o@|Vs>Vov+ zkWCjiO3Q;n2F3sByNS4Pt^j%=fC{nDm_zO_51~?|Qy&AFAfR~n$Eof{MeaTKhgWR0 zJHLiGJ})g7R7m5_VxF|aQL2d(yYKJ&e4^y+KF$sk%YAbDw@P!?tXw+!`vv3-z?l8h zm9}2g)qS|MOequ206LJ$&RZX% zs-6jCR~1XU6s>Al?%mei^5VqRi&|M1edavcyuLC{9?AAtb$0~-0lKDW_wiT$$E{38 z@!OK>2L$2~2n{ztZih3^5E{Y?6%7<){2W;+U=w;nO(Ty1Ooyta;hp+E3>o*9`!JEB z&iIxfGtVV7(T$?wkGVW9$S#TMA5pA$Ku$2Y_6DOWA+R~*?@eiOyHEMBcDem@Lx z5S1#CJo&U_wdO>7WhD&_-`0*H0GGV3-k9`^1M<&Hk5(723gQi1GUEOHKIy!YZUbus@Xkm0L?XH+GC&m-74LCd zFh-=<#Y=hwy%n#Fa};(b0P@2Oud_pI#CP@lp9uwF-vUFpJjR)v>6e{)q>H;vovx%c z@2hYzYVob_OK^|y`Bl6yv~PN(brS@uE$#Yo7cu?*px78M7qi5Wp^*DX1~iB!2jK-z z`pVydkCL}WI51yHw2l37U$!U9)Z72z%|M-Ih=WFGDWai31;%$7Y8(8*SuWmhdHzTkl=}_QnW|CRUXkBD@M9JdO9#LFJ;g?~_UkPO$c# zbRE^Ig$j;8xKYe(P305Q>tLlE1UqGMCe!@MefrcaYiA9e z##(U!h6{V}PJ8{TyaeXTeG^T43u0gO$k_yy&Awt@TW7)3WhmKT&_d#cU7sQ*d$uE9 zym;{fGyyA4{MCt&&IBApw7O*VgpZF;%+1fO-=gn0a{7+^y(oQi;(XCBIZS+@kvsk@ z_fuB~b$iV@uZYkiDSwhgS_nv|segOTjXZ9!#Tz`s#vR(Tt(^YE1(SvuzYh%!H;MpIQ^1~(xaa9}>i#9CQV&yppinmH`Y_E~?dB0X#z&SZHQ_Y^|;BgBK6z>!e**k>KJvcYGdI&ElaSO}bTO+b3Nqdeq=|bwi*n`#dl($zliVXNZ$B)gr zyzRxgt^VuAvgSfL7uT6$ZUufaMgTZL@RSjK0Zw|fwKj@oYy#R!4m@50zNIoca9e2q zj*bQY31muC+bbz0wH;*-Xjh;LcZ!ON;$;Rb^*l^mjnfB)ZoA%|yz13n*cf+M;$hfB z_M^=LpCLn&1|X`6-x`|EfuBG9o&*pbIJmef@IQ6~A2yHzfnr{~i0Ynr5eXMfZ$wll zIzCb}Lz4}mZbFWb*ff{uvqvU?4x9!pZaE^5X&1v zp^fI#c{#lxnnfxN7~h)K2svxXh7Tc%znW6IWPs3P?Lz-^P5m+`<0dh=!)UzW9%=BK znwrWv`jKSpfUp@YR<}8lK#37v!VKVTp_c+V@UAgGsaRAw%EYoHDTx`65|ql_h=_=I z4?|OvrNl+5Qq6+%eK%f8ZouksS|SJ_lGV+$t3#<>sX1TAgCY?Dp`;VSolMO6x|@Qk zgBf7W9s;-MCK5pb+9PU+N0ID3(IBAI@deehl3YBE?gKc7AFw+P%@o}-On$B3v}p$~ zyE|>Q?1R0SM|jmf6KR0qPtrUhziKMsh8w&7z33Pn7= zi!4pPbn+<%BO8U)5J33|@;f;gZu3AR+WZ4jeIQgy6*V<$5#V+U3)dj8a3Q=r? z*0Nvf9ZK@BY83F-&N5f`+E?*MC&!wHY^H+L6q-r-z0b)Y2XreXW&fmD7)n}g)3wDe z-S&FV_4L8lHrW7Q-?iAIqKdgE#6Xb5n~kdP{wOHb4I2mo`Q!re<$1A} zfoLjL##dKZF-}kzTd$ALdUO6&AfyaLpSf)tMMFa)*Lmh$S+TvbkZ!Igv{^kshZ7vb zuiq5xYApV*ijFr5I`=+)-RM9{erD*@FqhieDE1^0n~~y=f5@Lg8fIJ+Nfs0f%*(s& z^=dLzBsg#Tho4NnX;=XZNZCV(m%BjSr3K3s#Q zY656#KlFi$_*au;(iVLL#azRkaOwy&N{io848NyeJ9E{v<*M;zEJlOKiaN?5Y`%go^^T>;gu zV0ax}@aNB;ZK2J_1eW}dbK%K}(AuE~ufY?T1SCQd9tyMj0c@uJ8JU@+Jtxq8Zyq#1 z{93y$DxRTqZTpvZAoQ}XtnR^c>_pBv25gSX67NBN&1;LDH_Q-R1_kY z;=j}i7SR_yMFmjXOdXR`r~GV<&$mEyb^#CLg}J>6_<1Hrz0{>Xl{r+8skPy zhX3q`4`V{J*9L9gyWvlXW0rSM18BU)$(>pM*Q`!;YA0*Ql z?6fh@(xEqOvhvr0S{#4vKSBW`AyH7$5NshuH*fpM+uZVr2PW0kjUCjr_lC}^Hn8=K zJfN6rQsgzAuDA}*mRq1Qg0e0#{v5R@!C%mEK|Hq$QF#*AZHKfpH&*?jC?-r2!P9S9 zjbf#}oE(AokX=sZlht1klY5N@0oy^d=pXqlWpKLPChMtZkU-V;lE1y0 zc4UQ!PFY%R;p8c<>L`PweADK!atVqp({~m|gV3V%qBgHYPej42F#(e1A@1qX}14@b$kw;9huaoPulfDeM* zwOFX+in&%N2pJU_JRj`i4KNZU`9tK5Aj}BbACs=uj~k8W~YR zsf6Lc{W_WS$e?+t5fZ0V0TBSC_s1XTgHToxi4u!rW;90eu#V#jg8SSf9sKfT$L}NA zE_2pII1S*Y{B@1FhVx~?X@KDfukW6{#9U8`05O2a_g$Y+@obmFM-0m6f0G9Fv&%i)Y**wy`JRa91hn z9s6oi;w97L6F`Ajv=t#eCyVOnt{UPO0p}egU9z<=79hOFHL( z0ORQZ&Y%Z1?e?BQdKJe)h3&t;uk{S0~8R<5IpUw{-D?YBT_>NMLLHY|Va*qukc#nyUnvTjeA9I|Lu;RvSXO%_$A%%{F} z-|n3+u(*c9)g4_Cg@XD2NEw$tV6iQiN8NFBoscIK=hkF8Xm=VTj2yjs?V6uJ>pgGp z@9ov^Z64ZTl3U?uyjpZ=aqi`S6|MlE=LvhZoabojktja5Zo*;XE8iJ6-?qsPR41gQ z)+%xq2VqL&FNC`}$ry^pl!zNa*Oo7Wo+e98$ef0_En;i$kKZX9neW&5Ah|t&&UpL& z{mf`qP)X7=GgpGM+B-d&kI)okQSDKjmF-yBp-;orVUl~EtLT@#W)GRVA|q)|6Nb-% zgDWsJ308q@zr;Kp1w}o%2~hn=LBjVaEQ}GqJ3_JIdjk#B+rk;f`KPa(SWmoH!1E-yG>NnIhPonn@;CMyO_Iwpdu@FIXc ziQF7i>75r>MhOQb7^}CM_pL_jwTz9NxqaW~bqk$F6Hlx~cd-l^4aF#+*SG_Q-moxm z0#lzo816idXD5Q`3M26nl-y{65bLUp8&Z^NB0sxT> z7Nja*dv;0sSXFqymEs@@ESS zk=h6bVmm)!#P76Y=T6$Xx;on%HxvNp75^LLGLl_Ku^(<`A%!i9TEfUtNe^0qHO>^r$iL&AcUr2MgiIXxMRI^Np-U1W!)C z>eqGqjoMzUWr%61!*GMQd!N5qzm4EfSZmJ8KWd%TKOGmwk97XqioyAE6x^v847_co}XT0G2EtDj11w0rKjlJE@*4-c^QnNeEZ{Vkl+)*GbSdcq1f%q z_&AuQQsjdDwCh_#LXX`Iqs^+W`}B3QmrF~X-DRXiR3F zgqi_PKRz$EY2!vrIVC!NCaet*0W)_lMf#849p8UKf3a4YlITX;nvxJ9sbkRpDQ9%Bvn@jn=$I1F&V z1^$-|EnBvxD>E9w61N>5?zSOO-bR^YA{%RQ`Wr!a6j3H;xzK-j~{}*x|1{(m+|jQ&B-|o zMhj7wp)o)^`McVrXNGd@9cbO4vGQgJ!-|mKKhk1%dxanzVbWp}*2wgWEVXr|$x9tB ze{Ebj3Of>xMq1j;JGNo<2s>F6m#EQMczY9;)5tANcJ_N=hzl>h@HLV&|LVZ#d0h3l_JRmKV2dRzXHyyaOIwM4#vQ$}TXibEuKt2()& zh*JqW!~l-(kW{f4JFun5Nqw%R_(aUhBl58ctRq4}G<}DTt&iV&|CN-(JKLhqiMwka zzt$>R-kO-*^+jYnZbN|0d~jd-=^r{x+3dKuD8qdqEd6a2j!`EgZ1=%$LuTET9A4mq z5W|O(YppRqKsoEqe1@{uMb1qsS6cKsmFMyk^x|$U-dY~X_FQqe zP(W?1sOW7w)|^~R=y1j)PHCr9GdAz=ty$WM0j+ahHKk3T@+Vm?Wb~a9J2ROLaN!;# zvve$+JDv5h>x6L10)l|$2^x$p*IPxv>+M^?!MccjnXL{pqwShDhlqIt~^| zL5;V_e8J@}e=aa?d2xE@{Ix;v>cdH~F)`F=KFdI-QOSSETta9mh3pL4Ed{yLi=94r z)VOV!4O7GfA>Id`<1T#00lj>+A2~0wg}yg_>u(|}!K-~pqlkWaO8ZKEfULFKA3$K~_!7s5Fai2>tJB{Zyr0eTsL(pYCw zX}B>QN%W7*TN#re8I24b6*IHlD7(GGM<9!wANN?@N9*8*Ob3PJd)o}{XtnLKwe#%{ zDIy6)aswV`%~VdFEF}U2!_bAw>gxZLeC=@;_u!PyJP9%*%0CqMG49%EDwU3j=Y#2& zah_gJt(-|ko$sKHb=^dmN858|=SDKZc`$u8%uM|}wV?6T_qF{Z_U7FJtGf8IWbX*> zcUD=;c(#E?u%90TWcuFS^q6SpSRHbI?>H79^u=6I%^gF!^H|qlOA5=FRH5UeK??x5 zL42wp z`4Q{)@7KWFYvou+lr1+E31KBd3{XCdu9 zPc7aCAjiJOgM>LM8zQeqaBL6~7ZtrzQc@Bx^SZ#iFzpG&Iq}MhUK^WwX3G&$6@ru~ z7uCgp99~5a#$`d?;Y<-#)U(nv7O35wt(w85Y}>zI#pxxQX&`zR%GZ?I+WviUxv$j2 zSYmj&al%YrYy)Ws2ug>t!aM5C0%T25s0#jjh&3b%H8x)O&2<^`68jdY#1jQra29~= zPt4BVLoI@xXe=q4(;<>ASjjP?Sx`_=Ap6cPeBDfOy47sBlxrB&dzg#ixiSr`hFc9< zLJ@eF{G2?)b_(Yk+dE`k|E3)84{<>LtL#v!u>tJTAp1{>S65t?e#xyix-4VTV3-Q#~rQM3gEWInl-Tpvj0}Xj@JG zXb^aAvK3AK?By&R6S5Q!Q^!7&?@SABDa#q~^-f|_7|}iULt9F>c*fxXq(h{5Ks4R8 z;HIgrPNYJRpHWk=4ijfP73dJ=Us!=vkl`I0>8MTj`LB8{@kc$aT0cTVjho^N_}Hxiq*_iJS>M8v2*NcOUMu0)9$VAN?Vo*wupKDx`QoVIf@Uf#`5cx-H?y~0wlK*A}* zNvS4$EhkrKQ zT(dVzMD&izUZ1}kLe?J4JbyGKyh&FKdc0IfNRH~nVLRMLQjTNELjrq8Gsph~&JP9+ z|17*Ue(3P!wmbcmr#Ch@?}(cW;JZR2F!OFs931mdPBYpO;S1Z<Tjq@tSIC-+P|?Bt z1Oj#s1sao=lX<{Kw$sbq-f3G$^p0waqc8!=@BzR*U>d;8id*#{!n4pO2_swxKtuDT+OmsidZ zu}QxDN5dn#HZlmDk9>$ma0_<-U}JkFGU<$U?kkWO0NP{9ybc6u(f#6=sv+xH@qJL* zu=B_zli{(DkgTg8H&oYk9qei|46gc2tIyJIn z5T$rDvH>Rej_c~awCy|%#^Jr}vbVA1|73$#&`uGBA|3^y<*)9S23+ww#2KsH(WaH3 z*1)H2M-RSDg>oseN%H34L;W|3dYIlMKM`RGdNvfNf*q+m2rT%2yt%4~V#?Y&Wp}Qy zboL~(25W)gdA^WU@jY)rR*={9`Lj3fE541{lNK_afz518K{=RqMURVP^b*e#u_Hh= zSR4`%fPLlv&Ha!?o>I3)=m9lgp$Zp(ol-n5?ih&Yn_2N!>Bq$RNGOv-l1+6IfVZMRkEy3hRKHVWgFOqumV){drRj$t6xz zerOYS95`^+Mm`_VCW5PPMur$!*g_Zx{G}sD#1CiGV9hF+<^5Wz@*yvup+889H$Dkn zb1EUVF)z%&D{j!_uC<;fcK3kLBtVsYXJP2GfOqCU<>s?_3sYnxQ?ue3PJgbgtw5R7 z2-F6p6%)Efkp7-VL4J1?Kt@HW?k3C$5D!`i^Azr>q8hQsNC<&QPRA)gjYa}^w2%w- zzuG}NY1x^tp4-UF&i*#%hW`uf&s7fO_FKcWB?=`V5;#$y{0`AAcHN43Dl$U?G%GH6 z*TVD{Ze{>4{TM6yMOLWisNc^jAQ#2k>$i?go^E% zauE5?wDFN;s4wT_HuIiPRwk3g_>IUOAF{31sLC0lL~{J%--D0!aifvP6f#P_2?%8A z{XBuHd56EdM>?*38cFguZX5&&m}=IzT^c%xa?w1yemc-^(W<*siDn1`$uXr<`|PgA zt4eb|{U(?-$G)PEk|*DBJkXOeX)e_rA$v!t$eAB2W#qpEOe5PfxOHQe5G3>&`jKMW zUTW)(T!M9AI424Feeeu64W<9TR9URmi5ShuT z+ybgm5y*e)I~P<1s6_TYTT3~(GQ`SJ5V_;7cZtKW@My^M*?cIl8saWtOl8k#UMxIP zu)_dfqtUz_i!x?rV+k1W-v~Zp6WY}+yu2yw(lNEF1_np(abS6st{9~Dw?^AAML*{+ z;ASGQb#nQCRroNiF$q>uh$>cn+%HuFw z04qVZnsg}+VkT;voScCTHAu!-GSGr(uKPRq=fD7c%ce&1_oMKz3e0!xbaVW^EJtV~Zowgn$ z8k&dpY^0DKo=AF|fGusR=CJ9^kHg*9fb2m8G(W`D1|c0wz=no-GBA>gG0x-9l9w+? znOyXvrD>a|56T*KM&TpnE`PR2+_I8B+J=lRlg$P=EXWV@;DBIF;=^W-g2r~Z`2eb{ z%F0S8;v*|Syzbd4<=ntioOHuBVvG0}w(+%oj)mVlX8NDOJkE z^C^&^1qKC)LM{ZbP~ho>BF9;K4fMRg0MK;ZH@HFf{!-=&F`4xH3>5_h8nVOOiHEUV zFL4l2A*5bZk-rvIzl3t;^ThCjngZ)-o}lC*q#_GY6H4W%+PwT5^NcE)ha|y(1Jv67r=E1wrWVJs#E7I@Ez89@u;f((wFKRr~cTcBTW-0?!r5v-AcFqJ8*q`nkp# znT6a}FXWAcYs)eewhD7U-#jL#YO8Hc;fyESdk7_4v8Aixd$0<`FCdWMuOo z=kOOKI@^@yYsKJq7do?^p-)@@VF}Svh6-iMNSM8&BVnkB*_Q7gRd+}L5O5gO(vikj zleXXL>Z+TsGs-O3aXZrVfm0Gm6aX?`2x`24IlJwz`oZ>58l8cgiAze#h=Jlw&?fBW z&J*xc@9;WMw;;?302&HJC~&X`dhJ5G+TPb$YH79+^8yss*y*$K1pTqe=>>F=b}TX# zCqckZ7u+)Ng%boEo6HMp>EoTjtWwvkbP#1j$e9prj$gm*kfnqplIZFXAprr>KTJJn zPaKWQba{=Zhh?Ti&K?^PK^MZmLUkh#?$Y%Ie26z86vG0GLn23~4NVF@n@86DvA3!&4j}qQq(??8Y}4eUVXz48g9nq(`9ZrL!OS723IwQ+p>7MYCd;4^=uAS# z7m>P2?l(bDPS6+(S}l(MUi_H$77mK!jcm%x(-pRKfP4nc-FxH4Cn@X>o8w~FvmyK> zLfXo(NMs;aiklyNM_`0%gX9Guf~QG-K%R%R^pyMiG!!}QeJ zC{=O4p>%k3iF+gL+rtwXK1l$7f*kG5aW?jI9E97a-0C#=`QG}|C zw}tw=(C@`R7?JZSsFkILoS|o3VzUNyg^J*y=mb_Ah5e=!|P?DpKe!xZqIF|Dn zsjMt(>0iodP^YZX-uv_THlC9bd|#j?Tc5# zI;DtE7sxT-7k?NZ8`Fmzx@oPFkT_-V!`VQ=#w&AU(>tf&Sj|A=8xg#QbV(dS4#fS; z?Za+Iznl);O{D#to0o@-?ErByEJ!d~K+^8EMLmQb>RMXO!^1>~>J}WWpxlFml({cPlX`NP13u7J^R7&KA_6!Btv|%vKRq^kAPbY z0Up=%$OwSSh}2)n_7IR9s6ze)2N%-Df{Q`Oim#t+`@NUzrFhT&A{PXd9-w1FORc3tku_?EMhRt?)t# z{9Rc5J5~Kc-sc`bA3!P$5YM(FA{lF`%1nsLf?szHd^WTei8y~i9Tt&R0*XG|7|^Um zLpt+7#T?Wc2B&ENN^Z-8S@^(a)CWNZO&W9*9oZqKVGDaqA#U~{A`ON$VTnH*e=O)9sq<~Kd1n+_= z;_|4+)f%)CU~(LSIz-;^y@s+Xa}nF%c8i?h{Bx^I_@-7NL zJLey6BDn&>zX9wFq5(EqY5%zp6;B@jo(H%{eLoSDQMVI;!Tt3ClFHFxU1F$5 zftv{dao=Xxh;ZV<_Aa!c;|4s!=V#>k=Ab+a`GvR!n;yU{AAok#b)Y&!ujw8Oi-coX z8THSFh0D+eMHFQMxv@a+;uf+E5QPUYrwXq#0m#j0ORz!9q917MfL=C$02V=@ZbP1R zeQSnP@q&9KhHs7H3libNY{ZTlWPKSDGj&=Ipq%-pQe&ch3?wNbUOy zdG`@;t&59G1N0}XYxjwOr^du|aqu*(?T3RozEX)@rjEos@I$U~P3S#+CZ?<&!*1#U zmyZMokolrR)d}kQ`T&1$fp@<&IJrj!Oj($S2>T)wspmk~h3KyhBuPeogVO~@gwa8# z=ua=cNkIoFY+$p^(5at=AQJ)ef_o+!_Xm(fGkBft9}&+GW;Oza19^BLw<~qF35VZ6 zp_p3ttA7d2ez2WS85sr$P8kP>=)E@-C0iI;1K$VA#PMK*4?rpwU^Z{yc_5Oc<>Cnq zLU^V>bOs?eM_x{I%LN1=C{8MTzGIR6fM$BlHpMew{;s64ao?p!e06AxjQYHDHUfB~6Mt$iV<$ECgH$ z_KYM}h$8)6QUqTE;hn@rhp?3d$#_D)nX!si^vbyvkoQ4D{+^k;1XQyPeISlS+WJtb z05Sxke1ymdmBix650odsOt)za0VvfVBX^+S#jw`}jU5SQ-Qj&O&14YQF&WAx^ziV2 z8rZGdB;O&dB1Tw2`uCKwR1Hry9;Z#Eq*qtXLppx1WbFoYKvz#t8<0A`R|F5Af;%OQ zULivCcLc(qg$6mtr*Z=>6u{q+!r9US1#%#I-MX!sX^n-S`6N3sApskJSx7Gksj6ef zPXccR@EmvI-8rsSRzw+{cE*)-|KJ>r9nmF+fntc;fR2O*$ax}5PfrP>M(4l#VK#{) zSUzZ%Uqvh$wh|(uvOZafKRnD`|7vnl8(cDGjt-*kP(oYf6j=eCOmxE#7!i`fj$X$K zZVQ2!3!m-b114<;Nqiw}1XkA-`G~?rD8h&X_#45lfV|kse(ATCJJSPOTOxgwhBDI9 zh>r)NpD7TD&<}e`HbMczsPH}=uxE`Rumym-CD9$ zwXWB((cC_)Y#J07k$Vp(49Eh|nw39>Zl!gCHyN1&s#ZMnjT$<&mWz zH|!IKb&3Sb^TzW1ZT5(v{MU7G-s^{KLO2I}9zOW6*CWkrdbpt+&?7l1EG+Z^M*z?; z3BwS?2LLh-x_1ci58(B)P+}x}F9=$MR7hY4V0n0!BmT_lZ=n3kgHRI$0f0-v1hl@t zjSNDf1_|PML?#G0g0nw=UWLCSa|N1Co_)SO9kI18@|}{n&Si%dA{cm6R(^_zo3o zB;JCKT2o`=C8($)1qbmnL29|(` zlWe;|u!x~#j(^+yFHSnAV);~2HdG1 zOoDmTIt0pe*z&jFZ=G$6Af2OZ|v|-aaNwWGCgrr%>kpXpE*qlgE z0D&Y53N)rd5iSfMcbhyCz)VNta<61=tOfY_p)XZza=1dOi#!>jN<)!jt6zX$opd}; zA-vPPeW|3eZ~S%`R61JVX1(U;fh?7e+Ky^yi2GGJoWcl-`r*;+Wr&P14A;gZ4TFP% zkP#rrcx#A8;J}0(S9tUGA&62Lg5yBc&R}RA;DcX79H1;UY4oP7z#7V|d;4o~C(A#6 zd@2`MO4M6@ruYv{L1($tENiFKa7=V`5rCc`l~8>}OBlZigMkr#5G)I7X6J7JPqTjY zLULgYughliYDiW9CI7s4wLtGe)z#HS6xrT|Q)iN5jRV^nl!RV49@QgNpF2ag>TZQS zGt-ZoZV(-c|cMPOQfElZ6tT-=5N~gKWWJ`e>E!)5Q#Q-k)?pjm0-mKuVYhdh;sXFkrxJYTOlshqaxB=F^HnSpUnn2D>e zQtxk3P3c$uY%qztmn4sjL!?AgTTGe|Lw&?PfABL*x&)z_{X|13seyDgbR`L`ZkzN7 z6k{%O;(PGAd@wmdGG|TAVRzlN-?M`vr_--}$5@HU*#?9;%tfhd*vr%w$j^Vyw#Je4 zKaCgBO6x}oLcphR^UZP=g}KPk?SRgS|?cNwU^Nc_~O+P|l| z#Z@!DQ2Sw^`aHSLT|dUz{PbWHKh#?N2Ha4nX21z@9{qI_cWW;PJKWKh)tt^1b`F?+a3fZRL97b)U_;EuJsR#yq%xeM^Y<$J=sY z>O`N1uj&pJEBSJwF#M?hUzhxfFaTtE$gI`+7(5wa_7%g$%j1`=y3guO~=WCdziO zFH(ER%nS{cthGe6qBXR%#8{()b=PWlh`U#YiIq+Tg38#KnFn%mRtKziF>Xf_Oxu3E zV4N^E#(UaT791Wknq#;?zG{-YnU$X}39K(TB*d5WRrMJ&yvosM zgoSY^Yt0$tp!x(QXYvQe;|qG_RzfXw=E?yUI-W>RfQB_csa-H6hKcwLFDZuR6f)CUh+_^>{oFom|F8XS+n2 z#V2@&;j1$H0@*wBfkt{dNtrEn5TOe8x!?t3eb}bAO`n?k%;Tk3=b_fuZ?S#3DJLM} za40I)zJ5XP8T@idR($Qzmf*A=EYJ(ikJEKca#IaxX&27VzD~Z2d%C$^eOk>EdV1rx z+w}3FE$tl~-`JTk_09xDFO-F4$UKceMa5vbOy$V7Pkqm>Ku5Mbr7AaH(GPWsmqo%= z$+%qYtoHYuoUA$Zo2zF5ymk6QK*oWt+Fl#lno?G-f2FoZXl{XC+5WKODV`I$JHtad zw=f?0;!W2V9VxF#YCK$)C?k8+PuX4Wx0SDKm(S?w>f(ULmvrAC2%F(8I*$L^-|u?J z=XmpKWTg7}=tAleB&#quCVzy1{l&Q-zB+EdgGke&#$h>VUNOvg;BGoOJH35n@*1A$C-t&|W!i^SOB(HRF1KS13aTy+iOyM*_#TS z&Yv1CG=T#JNSfP7U~{?Q&g$DKw}}~Z>4_6T-Jy{$S9#vX*|kqZtEpi!cTF+x4;iU( z4Q&4ouO0o}qU@qRaxg{~Tc9+uajK1VVb~+YVr?k%Yip}vo1yvId?l66`N0Vki~$h7 z_q)+K4K5KRD=(-5rbj7ICt zoYHogmCd+0zXZ>@Cbf~s%E;`EvtOKfQMX}lykHduptZY;m1PBnDtm|T zI?s;fXX$pkn}JZdzodhki98HwvjRaqS35!$IuR018;aPzahs zCh9;H+#kxV3K`1KK|=_$&<9}qXYU>HF9+Tu_vlV}VWEiw$^aab)=f`E6)q9!2>7m5j>S|R-T*febl}Qx$ySBw zPL$vD%%xZ~{k09ji;b0QEq90rXIDJEMaLcu)1VX<6`5{RL`dC+z;CF!@eA7~(Lwu6 z+d<4-54X)2lM{dX$~Eb`Obu^i9-AB0(?wgQ{bHpz8^L~a*{rU)iq|@Io{M99C|&(m zdzR!Os4Mslbvc|BFFcqZ*e!I^>!6H&rj=O5yLlKN+BAL^y=5kRBL{P(Q;PZQ1pgjV zxUja?+j;?NFyk6Cp{N^cj%!J&+0q^ki|mThLF}%F#-ElaQFytzYtwxAP}J@APbn>5 z%E$$@rDT@Ozb&`Edn;c$MclM?Y9tu)YB%0^PW#}U=EZ?gS6aNQt^R7(rY7E1jyhKQ zjMF;BYjtRF3*YsT2Q9COdQT$C06|5b_0Py7g9+PDi^Ox4NoBW$>JKz0`m7t|^?ut~U`*?j zf15pM%T!nJtL5-l6A0`4hOf&N*@*>naZPNBi}La;eK%Tv|2EP}D_D4;h{~fI)^O3A zgljpYUZ1=9dT;WVT}_GglIM*#=1h-yhwD)dbPfe>;bdOKP)>Q^(4aN%w9nT%mkJ|W z)3eo|Vb1&8#jmig-|VAg_Rb4df1X%k!zbc72v-it$o!iG{2)^_)2G zT=Jd_X-R1zsd4`0vs~(rTIOK%A!_z8E^OE=1b{WCy$mgbh?U#}wY6^8TzuQRa zg>9*9E05J3eqedkYo64aPf+jg_h5&*(k~Lu?h7A2#A9~-97VJs>Snh|OoCmE&h;AYw;k9FcG=p%5-2v^9Kq|Q$b8g(^^#@+{uq8OueQ=34xl>F8Y&Dq}H zmg7Z6Q&r+z-(qFS2H)RNCU_YzfS zX3p^@xQRBX-L*>PyIq2ni&GgC{Dd*4*0J2=ZRgam(GU~i^jPHuvZW)<(lJh+kx`X@ z?PhG7Uf@PgHd0&>x&ceLR$OHn!xe34dt`B+XT9c1>F*@H>MmwNKHTp|wW$G9uOi#u zC28D!Fnr*-X8r|MV4!Yk3-&{)=StO5Pr+8+V>fLguM4ww$_)lC4)U&PP0Q`l)JcPT z-ri?3taL!U!Nm;}DrRoI#Qo852?mM)oF^Fy>qwUrVdf))b4HDUSAx*M9qRp&!DTS_ z_Ay{jpxucO4}bw}0PwVH)_Vm|+lTZ}5{QVgyw-0KViJs|SQL((ymr4;+7{)Oh+x3T zoT(656g?HTRaSrIt?-UjPwkX$QMVPE7DA8K+^Tw4U(vdiUeD8Hk(~NxjS26SI zr8#{e3dJXu48_us0U^bPZy43zN~>&y(pC;$%iBl{DBrjp^L5>CX+Zi0ZNWU=WbU=* z&KmL;-^WGP%^VpyyWY~3ZS#ImWtiOO-F2SYikwGD4$eV)xIRX$6YF|E_NQ)M|0B(B z)*JwSnlMbY5#q%hxLlR|S+2|i)ENh|0+0CbUm@mF>>C*%XLDH3E}z#>RG@KcmsnUT zy!k<8L=NXyVOe8*z9&b%qdSb&%o2TNSzfRZU{1^q;u`?#Cd^x>Oi|3SJ1Qf%A&rTUILsZ+VyLQKU3F zxe`}NVJUGfFB323TB>LfFh?HrXIxG^xFO0w%-hd1H%2<@!G#LGfnbVcWwM*n+8I;w zV)0><{YrYPI;AT%d0O+f)u9*3KsF_CKvEPnLW4=OVw?}|zK=Ueb zu=mRQsdLBHt!5>WC;YvyTNl2EzL24uzIt9)I^!y7#Zi`cy*;COL_RN<^p>}kvUA85 zwGUA~PNwo*TsJ{NVJm*$hY23+`FcIORjgA|ZHvt#HuNPl*|_W73*dU;o#+|sT%PUzUZjeNuq42h1qxoSDf0Hqc(1he9U~Wqw6n* zUcMu?eDy{2$TWKyH+S=TZ|(Lcy~m?*BUt0vgJ$cY^?ud`@e<7L3^fCJY~zC5zRI*B z5Q)^)yHN=mSf4IzEm{4sn1*lFq|+W|D5w)|P2$tru6eMYbgcNttv|Q-ZNxDTW2@-s z`O#)99|Rr^YS&y$%I~c%W0NzVp}!wL)T;{*QPu4w=_@T=-rtL-rNFNA<926FDXB5W zb7f|GS#!4c=t|lC>#V@@7a1*k9@=lDd`iWg%zBOx+@{c<1U*k!*Ay%4w(57py z#!$mk!|Q)_uq!vT6->iBZHvco=JUHUJ+dh{<3y){r;a^?2%vDtL@oj z%*auQpECEK@Q4TKgT^E1-PH_ck<*u9`+P1v%GeD2;c`mmg-*<=DE>_tOy2nFflrd5 zB{?H41HQ0swa<3E%)ND9idv!A=I<>8S0f2W@tyH8#pJk;Kkc2=DpH_~#>CA zPq?v;1rAxdo3#NFeRcbJCYhg{9!D*Yur^0A$sfk}_KMWLE z9{-9-l!09$e6A_-C0i4n3!k4r`i_hv{WYCuy)D$lw0*53moE#HyiO~fYbYhp(x|Wz zB&EVBBcU3VED>;)vn72i*)ltlM$^HZmFI22(!Kq?k1D2*4y7!LyInm?aY6owWxWzF zbZ6>}qpv;6jCs-glooJZ0MxYtg~2y~ueGBMc*@Z&OtUK4syGpq8F_Nj|1 z{jlU~gRKp%nC~lC%34P%1DjX_eSGr^{=GN-En^V!ntp_QT3tU8a3HCAfRzOVKZfSEO9E}`&4M!qK+N1v^i2$#Cz(<+4pf_bvL;4n+*Q2b;ixI}~ zlNvBs2OBeg*IKmHoH&N=7ue;_4kzCnPri@+G#aHO57ld8)dzV7mp0++51nx2vxnY% z?P*$CdNwPqN`{hL9mfE=8I*J$t%lQCcO*c%7!w4b#XHNu=g)<*da@T;qN&FY#y3ZP zHCumE`Rb0^x3sVTUgN9#kF*}Y%;Y9(A^0($^KO7ommy|Nfg>Z58n&CbPjJq(`F`kS zwX6?r?Yw2TZopwu1SJ}eQF|20qq0{K60%b+^eng+&Icr%U!`wd+IESclAi+*5h7_l#6Se$s(QJoF*2lH9wgiGfGz{CJa&;DVX19t=(~1!?7tZ6N!`# z%=u`FoJ|IpTMtOPYWx1I`PyZ-g&nz#xu1PUt51)Oe)8E0QjKsGv*)?r)U4)1FYx

psev9u6T#PfqpuI|j@+sdeT4aFqof?!#|7e`Ay_Rl3))wHQQYhzFE=3B)2 zoc{4E>Txmi!LunOgEi@yx~4Kyk%X8abIZp_Bxq>$9F~Y===-yhSa)sxhr`61Ct7)%DYY@sW+WX zJ7;q?4rOiIwmQ#^cGZNlH2osb=xpa7@lm;_GP@n@`hIk^6lSCspcLeZZ{In?-Tr0U z_JOpKil~ec6=Mw4=hYst;l@ z@4a8QBV_aEynfDRT{Bk8TU9+$wxeRkE%*7h!C2`{IKJOL*+8AOe94x3AEKN$@1>cP znJAtGHGj{cdDGn~`s@Z<%~0(PH}~O#G{vCcZLK3hiy(}4Lzaozk3P5d_HLF>r0v=j zf?F7t)DVs!Orq+q*E-6xv2F3_Z zccQ=1l_i`0b$t_YZnJCiK4DbUuUYF7*?HOJbe*-2l9+OoXQe%u@;@8v%Lha)&)%`x z6~F!R`C6;gdIjFqsi&In$_0&YY=ur+nxEK`UTqz<;UPFqCv>rTL|n3)xe=|V!fd;_qt+MkbN�x=-5jH&)Q;n>NRZAW3S}8$$oWKoW;NBO#vmsK3^!kq zGmh*8>Pd@S1w|FVFX&Iy?G7H$UpZO`^f@rez<-^roMX$$N>%T#Eoq`@SiHnrwg)vlB`u#91lZlgY^R$$qidV5M)mm1%?ZxIaHpPW4r{`k*5aN~@8%wdV zv?Y#ejoLC}uw8X*j~Vt#trLZF8)Rl@Kj#pK>uSc`>~0$*U_*0kSE59nd!Zn>SS-BB zQ&;POW2HLmQvXu;NRZc8hDpNCmL^IUvyr+#{BT*T%Kp$joeyPs<|~@@-dZS%vs&$L zX383wG)Feip_u)(nRs0PgyeTOO0DIk`?1;g$QQ%t z+926Zj{^FSLQYehtQG0O%k$7_)pJaI)=?9@A^XreXGOA9Da zWG{BDf|B`IK8mA$6n}7(@=CJ8){r(*^zwC$^-$8e;NLGkgMyrRof z_D=e?6f>h_mYkEsl%?kAxCjP1XV+8mp1YRx5h;FoLeRU1Gg^W-5-V~?;U&Bq>dvi9 z=`h(a%9z>oX{Ki%A3nY9qfPItn2tB)VP8`E+BfeGMsQd7 z$RqiXKyCW%kCgu>o4EP(7p=GyZl0t5$cb7y%SYN9yeoY@5();k6bpYA2zu!e@?i3 zJ9=mkpDCe%p;87q^Osc;a$U#mi&;x0>D=l+W>F;en5{NXHYpMijOay^GEt-SyPBHO z`l@lcLwxYbm=MFrnn@Oy;PahGDXi&P1@pnC9ro}}@vyvZnYp>=mqV{fb+L&`l%DsP zF@vPq#6+^TLTE^n!C;<&MR(7vm7YD7F+o&viDG?dYS;I{D~WH*2t5ll%=U7PC9q|y?fz0x7;D6Ee1Ib=`zJi~2MHGXM#e#@zocIfMJ*=;IJ)wWHNu6G zUcGa-|Kk5{J*{s$Bai5^^<-Xf-ghqZ4V3Xe{ciVzfcN|PJL$frF)Ge1f-F~w%)v^cu5?8g zzVW7}!7G)mMjgzSvB{fN$m*$yoso$Z@N1|yjD5%Oi;V1GWhM;e;nPr0{us#(Ny(?^ zsO0YrE%z8OF)K7R#8MP#NH#NchBh?`r=6tDhBT};0wlR!3zkbv$Nl6sE+?Q z`;vhXH1IyIWAFX5EM>FI3jsD6nV<5EDox^e_)2GMPE#BEx+AW_D5Lxn4V_b$zM9=B zes8a!qU(Kb(VlrmRVHe6Sg7Ndz%xeYB9{m&b4pq9?q zPVESCeWZY`4te4`72P0@%L~34iXTn7b6DZ=>9T`&Pi}XxvWe*$HSdRIDPP;Fe=l~2 zka(4n{4EEnnaOK!@2RTp;X$m;VIFz&`yF>#IQTXvMq`pd$n`<4Me=u(ce-XS>*~>^ zfs8d4>+)H-l8Uw|(^6-?RE8GWuph-bHmazeS+S$e{i6#Y-_c3g+M z$1&uFqweM?-bzpIm`!+R%%f^kTr6%>ikIcrx_>}Z5}$W(4hH0${<3>9qCqN!+Aubb zffKdZ!ItyLN@Jj$G!B+Er>H8+N{A*}YEIu0Q%gzdgEI3wMOvz0@NL`0WxkK-RtYTmJ}{b}&NDyA37YH`N(paD(}j!E6j z{PVS#PV@XY=>!g;kJ=bvi*oOz?{rA@1f)tcy7lxlUos}5@91I`QF!H*^prljX=(u1 zc#-}t(_Jwur?U&)EM?S>uR6QOe{rjxXM86RvDE}3qRZGgNZ-u5Otr-Mcxg3_w-6-q zl=US8&8P2-U69M(Mg3wZjHzFksw~5JyD*FNvkV)HWMJxCRrl8xaM(`rnaWc4nEC`6 zpshV?W)vzNiAS1#M|K*=6mfnVF3LKN?S7?>TAmX#D{Gpd_F-cDG88JK5O!T_k8&K- zjA`tdzV=gPNUDc8Olv$Qu5qgInsg+Y>9Itn+3fVh*`EugSIla>-8-I4ig;5{Shun` zsgg0`R30&{M)8SGV6o`wmd}>Im6uu3?_=RiZa(@kj;^`{>zHu<;H@(4tDI8q+#Z>5 zEmi-&f-<(A@=D0ZtEL_Dr7KFwyI&L*ZD4OyZ<_zA-?WYG`q`0l*ZTh0dw5k?f{@H7 z&QAoyD?NglT5V`4$Ts+)cvgAEEL5(3yTpg=97^V*W zuliNy%Q;_G>QrZh45kjrVsn5pDREe6nb$M7YH>MTF|>QqKv{X%TThXdw{K*m@|)%M zzCe<5JvV$GR)!mBqr6{y6;s5GMR|Z6n{%a0_J!M%b_(r{=Sv2`P3r~(#=#Sp{oDK^ z0p(_Z!Ky1)=vXFVq(NAW_a((5S=NhTpY6LYy`D~!sht-=kwRZzVpB~p~9fRz6E5zfAN#nn9TPt{sa$mlKn!{ zLHYZ?|K<&Ul*iGwuXFoG6$;#tJz_(PCpZ6;+5hgJ{(6Ex*Yk$}^S}SoVZwg*?f?Gp zKOYJ4KNTVN`R8x{>wnKB?)zxcx%Q=3xX1qEYQN7*BTMuzeqP*%Rs0u!gNG%3|E%x7 zc*2YOKmPG`|K{&|TPc^4{eOrMFXWq2Ib4FPlxm1X*5F_K{HO1H?cd+94(dOj@i%Y2 zJR^}8{$QCFRwEpD;lH^TV&}=2kN)PX!b2CVW})z1U%}^xko<|H|K3h$Y5$XrVIg7o zzxqj|@$S3&_XeEmeFOV8NO#?+B5{_zyui$bi`$|IMQRJ44qQeD{B3RsTB+AC{tW;Mj~^{Ktm80-4m` znBf0>DC9rb@c(Z%{U1ZeR?7TYp|Y}*94z82lKMP1i=$sXlga^inf2%1A_ra7O!2i} z54f0^_I+6|O{E`DPrLO=Bv*g9-*o}|U{kTO{1@`yDCOPcr;nUzcFvN~bgopH4}rsQ zh`v4a9{KGl8UGrmq2gG`hD2KPL2CaK>K{kR!H=9fS$~T}`)vBlG_Iu!;f9v$p{?9nQ|6+TjBJThHfJ^*0$L?Vt z%0GSH?mwI}YW{z7p8fm7@ZTN)WdENZ0Jzx6h&y83O#GkjsH8&i|B{0byz=Mk&Res$ zapL3R3dR0cpY$Kjp<`cGl)pcx&fJmNo&VTyuKze0|53;Kmj~#7i17a3pT5MQi{P`6 z^Plv;I{*KTu{$e>{Q~z0;f7?0i0u`v2;=K^B$&>@kPp8|9brB_0lrecKMs-17siTsl8_{_nM z1YK>H=biMYjy##B&{V?;1qUp$%u6V$c8?t#Jy17^Hf}|9C@3fRX|;aF)v`O!f4HX4 zn=Xdpe^l~1I6ZRO+${83IKRe`5EEYcFS|=9i7+IU>DEm^yY@BpQbp0*LCv0yQxH=t zwO~Qi48uZ3cE{p#uS>3xxeKTR%A_>3mMG`q)cY?_##ghZWhwhJo?jxF$e`2|;7is_ zmozaJ;1Ty<5Y@z}v9Lg1x%_kGs?Ic+3uTJDu-PNgCm0jwQ~WwE7T+!oAFxMuB87&&bqAy= zXCQHh%6jOMr%=tD`4S3>6f;X(<=$=RVg+^o`VQ9yxp$%|_3QA5UQpHuuuDg!AS>i81ZtlEx*ZAK*&Y;Aas>ORejt_M~J8g|+`9|zuGgJMpa z=NbDaSLQ2x)lI#F6t0m!-+b+A8je}xONhEVJ`E2+Csv&8aM8qQ={f*m2vk+(jlFQ3 zS|t{qf4799WJ!^8lRafsa=AMupO$*6c*-LOFP?+8nU>9?fG>wYaa_hmMOY(meaR(2 z)@@Fb#ES68v?FPrtjtcX_sfuN)5~n+f*(|vZ8+$zl3Tw{gO2TALbdwl8G6x-%1qi_ za_v=_@-IF_PVO%~%za@;T7`}Ns5-ySWUPqaf-+A*S2OSp7jKdMF^6&_^J_~>$~=zE zpN-d-hprhDWw@PW-^~$i8PgiA{&l75#@d@kCAXAxZ~K^-&hUt+u*~41(KEnTw!N6P zJqFG9Dx6=Bt2bHtvkfsv`8Co~b1}k~tn`-(9?y+^#cs|x5Sd_oXk)pFl_e8Y6M{N< zJ+O6ph#{OH!RuMw=YVi+rq+^ak>!ExtAI9;*H(ZTHJzg_99Toyu~k}3;m<3)$+4_v z@HQrOW-TnQ`bqnJIHirROz>fertL4PB=>hT32j*1v?(eQHH}2w;dkXDA@!}D<4rjw z-|*q-iQl%E>0O?ipcr1v=(xw!SVV3+YD0r{M@7Y@yPl=(N~xHZ+DrAAui-ITZ!U+I z7jArYRAy8O_4WxjU7HPg{><9J!B)baTu_QeL|K>Tyn^)An(J7q<>mO;IpGZfqzQc+ zZznV%q!^DvE<{91k|}ZX=IgpdmRVEF0BIv`QBK7o`c<<0CF3c_ zcU~pKz8M+qCv2?~aIHaVrVRFe1#5L=l5bvln#~>NjeOxl{huaQuXgeTp8G`K7#FB$ z(58QE?24Xm^x4qRfh2Xe)l<(>n00i3+>#<*A6ybx3b>@g^8znz(A{}3#d=*wM+mVx zKb1(n$XK7DkpkNElI8p^6Z!~4vuZh#iDF6*3rcxVZ!uFP1JF!Ls4xCCm*b|fNyRNs z0AbAWla4xYQP?{Ej&AE#rf+WGsasxN@psDaE#xSuq)&V%)z{L_V#sg1OnyiBUTiJi?)`;QZq9 zxHAq{|MJT7n0;XsSW|2l|5mnT{GEBnJywaCC>C~_4r^Y}iD2rea{dA%p!>EYp4r$^@PM zwrNshPEtkbVB1@BL^uqs&$V+7NWQ0Xj|)~cbWY+$GTp%o#<00}2Pe+jKdnSl;n|bb zk>38RY)8%#Y==aJoE#FGrW`nTrrIh?ZikqTQN3aXpS5S*u%sHb@B)0+)F3rJyRjTm zl#9Tvn`c@_4PC=HOr>N`B>ebdZwAOJ;AYCJ2AA;yQYqcnsrwr)z&1s{a2D>k@%4VD zPYaF{baT1?*ykx%h1SHQELFOD%=qN_0W|4Hn+3rj=(I3i()`-#++^to7PikCzs9H? z9bUk^;oJ-Tz?Xv8QuHvXfwd!=u1Z&wdGqnS;m%2@RP8TejH+ta)PQPY)OejaD3k&v z8#oVztV{$SjpjK-thL-94AI=w(H81!8pbi^HrzEVxdDa=b_1|Dxoc6F*h~B2%V%1$LlT2QC{0+Umk;YKj19XsR;pv*u$P&d4mFb z&e5RrckoZRtdhy_dfdy`ggOlYt}dg zVzp+E-|BF*R1-pzTH#Y>)7aqcQ!2_=A}k*L18MxZKYpLJNULzO8hz65**CwN$wmLX zyQB9XefInH+&WU`3RLz@C*_HV+lYf2ggJ})7n zu)Y*L7lAPYJDXco`(l61$+o@2LrDJ2pO#+7Tc)pl=+Xr`j(D_cqD|2kQ9seZ z(GYEl3OCGvf+@+TypLs8h~FefQQ4FgiEF5E8w}VNZGDxczznNg+bT>eC$B0y5Dg%L zTD`TB{T4UJW$(n$N77cf-LgMoC??UH1JolOV z6@lutsiez3HQ9FY(!uTiS}9@5_1!Y`?Vp^^N&2&~HOB-+StI8qt#HbwYTkOfKK!X8QfRdxToZDlA5($KB zLFq99zv$fUuHDytZ~M01sqt&i(5|EwMDsqdv_PeOf-11qXo&^1ZISZ=+{M^ouA$RQY3SH?0RUeNSAB+bddttf`?e1F`ji9Tp!BXS;zOxj%W>Z=w znVdsDE?C_#JeX^YBPops0K~IAceaDY#TeYttIZx-jYH!IbdfLVeTd53$W66(VZHgA zF5m0v{+gUbTryw{Cp&r?hnLs*K7Kg5QI`@B0o``78m-ibVDfSPD#R%qNB#sC_6D1G z?}Q8D;+9PCq|R2?)SjAW-Y5HXF6{o2QdQ;P>|!MS%7-Wdf>t6zOhS>?&CT8-t@Ys| zO2NnLo03?{l12DMT34=os@~iR6LfCg(G9UZ@_6iBlk_t2<%6Y3Pn?%YwTGJK1&8jf zlJ@-D*b~%KboXcyGjQ&h96LV@ON`Ws4cfigEvJ{aqyK=RdN|eF@2g%dD?NXpT);uNo?cRDk7kZzN#ymAz&7?UR)5!D znL_oei`-G#)xUaP8KL1T@!Yoz^bK6$Jr~8e=nLBuwiUkvJb~MF?_RB~3?6XKoKQ+oNAa2(aI$oSnW-mAPtQ}Tg>^ThE zM88QwE?bRXZI>wXE`0YZd+7$om&sbjwkkKXZ(D92NrB!8xEDNM)4ImpSTYro<;yI4 z>)c-DU2-0s%w&Q4&a@O(=h9-66ftueQcKCq*_^(~t5<;YSx@+7!x)|LV4L^Vg#>fX z(I;mD;Zfm@v-a)VUc1^9%+^+|ZT@*heHTkJr)56XGPQP_arr|d-xqHj(%)y*KBbVBK}~Ld?6aveMZm&sPl_3~}%hbS6nUEI79% zpLx9(pG3^Ew_E(>30hEGHiOl}a{|eLh3dd33b*g=+2*!5L<a??FJ@pn56 zBCMg@`{tRn<>xQc_BFpJOX;h~&&lI5;_F_Z<6(FT7yWckrim!(u0?10 zqTxKRsJQHAM}62t&}s9tCvSA9gznfunRlw5Fz(cvYiZoinn;m-q^oQEH%q3${(iuVMnxhrGBQI(l*-uag?jnNN6(%NU;B>$X~mB%``}UPOskGliU?OR4v?lYKrbA!}Eu^g4v=1tX>j}w(IeAt;gPP`wZ*!Pejvd zSG?-^%RfBFv)28&E&t$8FS_mL_N>p}b7&`&a810-4By;XX0a=~=eKI*vCS&`M^;Eg z{$S(F%!UaZ0pkqo_nja8LsI*@FNuY!J*iz_(|pjN*;^spQttD6MaT1kTim{Z{ws~K zJIy&t_;MaLNtPy4{AB32Y>Y0zaW1+Tv(Q?eJuP+U=fj*E9siv+TrB^w9%sFlB-~uE zzh=#_tIOw*qMmBAMp^JGi%)e;`@i2O|1+<6Mr##*p6Bn0qSS}cU!41o{JwdI%0roM zw5DHLM&wY5R!fNGrDtMxwml)FF%$iDKgZd6=)WvjB~Y=qG~WNxwpK~E$bE*CU)*CZ zOZMPyo!h;!g3hnK=J{iU3QR6l#dLXm?%zHxO*weO>rN++RFKm-AxqnD_qqef436Aa zUXEOsnd_aA`+iKlW|5(vhmSq{vsFkYwO`}myQD`=Ez3qFEz*Ns2nD0}>r;Dh|Og$r&^>c~y48!hZ?zQ*+2li8XTXSnLqzTC_x;qKS< z>soykdyo>*q#(1caM%_(9{Pa-Z`{Bj0>6xzk0re}} zhh{ZSTN&Qik)XxhkaO!$K`^78s9Pj;9nS$K{jmfk1?%ap&}rwzS$#2~Wagz4Pqglf z>gCXWr5GEWFt0Rin{EC%T^093klo~!=dJ$bPLHE>#Ver^0~It0>>|@w7jCLWGjdfV zW|JjHRX$JK=dyCeG`8p-S5wEo#qG9DCUeRe9k0X-trd#T)5Fq8vL6?{xF~e_$A{Kk zA`>*9hVvG`{!pvXmT+6wJ#4(iF!^CevVr5h+^C(lwneWTUQl!!QAS2o@9!U4aj&N` z%`tqw->X=tN+J06=gzRiq}uT&R^i#vpUY`iqn#~NzeyIk?zkuUq0T2e-76#5{sAZV z*xlL#$B*Zi=$@cc=vdb+dL(&ne1R96&fD^`DSXMWg7(6F@>&1CQqzAX#-pYLl_h-J zMt^fts8yUiTmLe%#(jD3JMQq!t)H=EPa~S&@Us@LEGW-?u`Z%0#%Ma;~V4?Z)y0EUE*Rpt-k(hZ{=kiGU zcW#T;fX83ne(7F29wO;h+2z#7VWuInvqY)or?4O?mD%00(Kw69*9F^uF4Y<>P;48i zrn7SeZWf4;Qt>wJv8c6d}@?&}n za(PL8O=t?T`^SI-X$z(OTdx^LKFnJG-WxDnP)~3Ef8oH!zA*WK^&>-GQUTcs75ul3 zmX-hMQRG=8kET%QtZaJIpp z{*|>Fpy#sbxXtFub%)pA_JuV(e;h16dVlS5I`?2ikAeG`eYf6+h!)^4s-t_1)d#p1Y?W8@n=SzJJXqpc-!R zF8hWb55-`V3q3tM$9m?af=fTyBKs*=oz5=2d$&qPQ&m#LQ$op+>+>zo_#9gLW&%!-{Dy)Q`Yw6L&f;X2!*{K93=IzxGX zBku*_lGVW@Me~9iJhBerwi*`Fk$T-p_GLEv(r$9Dlzjrweb;fM-+6QM1fAQe&tBgEwXa{}0E15Y_}(5IQD=(e@8r9A=+NQ9NjVWG z&9=Ddn&>0;e;ghA@#!>&PqDWMhjPbWIJ|Nu*=j3Tp3ZHNHu>J>7OyJn*;)fpncME1 zg?0zb(~?8GI;d`W9IXDk$RF{RnSHqP+t{6_eQ|#`og9lOl8)H({!M7bPh=SuU{_K< zGc;Jgr9LFlU6m0b(Kv=CVz%u^(WE};$SwzHmsU<^N4rhk7?WI03QJ>mchd(v8 zc@^PWyE4^3?zg>Axbb3rXU@kv(VDU4hWmdfGvR8S<|sZ_+TIy?{1WA$wY$rK)x|l- zEX`Ig1vU*P4)*XoqxH*z=Jbk+eKnVd7DqGX7V8*CvU&3wLvtcBk<7JXXu{xkJv9`3(J^&UYQ7btw58%DT;*mew}Vb<6Hh zP=?LTK!=ltm6VjlbSp7|)5h`gQQSz+zRjYrRLx7kZw6Gw@ucpup~c7l`Kl$++|3CvOLtNHv>tkA%{;boHu%v`wZbk*nyP>&@+RwP z7pUH=XsF*Or)&B1p>@B1M6K`k`1hc-ZnD90>gE33ZB8Q+?fj0O@{-uxytFA@@r*_7 z*ZO03gA3F1+B3`?jxKD?I@}v+JMliT!dIT%jWc*YJS?iRw^J&yVmYxos#&tIxqEQB^}APA2d8J~=hFu671(~Ue&$tb zyM3F{B&R}#PR@?KYo(W~tDP3x^z+2;pVe);r}R%Q^P%z4?aiYuIg%}_00f=`M~DM> z=)h5{N9&y==QEG}c_&i%Y+tf;hNssUqaRp2tL=*$~I~uAoL&V<*YA8=?3_7^b<{q9jkzPz# z;5PnaT(VqVxAid~h$@A(^|XY;V2wI8W2EGS;44LchQQGDSLxp-J}LcId8xv4){E}@ zfv)@ynsu*@injhKj;>m+30%LwW-u){6PUtcT)B8;dUdFl+J=TRsPMr~lFZCshe$>{ zn$oMS8ajE2&!8lpzqzxY{e_`e*G= zjade79SKiNY<_p+TNg&O!PPhFtab>7nyXZ76|qN7^?r!Oq!DRbvck`z1J8SYCdwWKUJ+IU| z6&?Q+JmaxJU3yI97?t4daI!(naIe9XJy|)q6y;$O&dqghn1q-^ zcC=xeUfXfH zPu$GR4AW1ny55*}WJSl{K0!lMN6eC)n@hPC&IG(9v#{MYk>#&wNY}*wQj7kTp;+rc zdgxACy^^d`)oHI@y~Vd8ECetc2R}dk`j_V6mq!>RW-w9EY5AYw!Gi~_JM-wl(p)_g zsmf6y@+BaeY-%g#_WSqLKE<#PBaFsjs0FK;C@%dN!a3ph^NjxnRl9?WcvYE>v2$<) zV2a?-^t3X@8)J?v+~asPGE{bYcfK|*fOS0f;0i1yHM2BKF>_W&mz~16NI>n-#sZsR zc-V?g?e^V-zz3v)@BKAx{D;57RTeWU8}Z%W6cm^@MzO=$edi4J8MA}a+pl9XE+(CZ zUo-C8SdV_YWs8?#M}3Onf(ED0Mhp|e!21CVPfWi?zK1>aqpu)P)$_-SQY4IolOv|6 z`aXHGUoM)X2J`OOjSQq7H_AQvSzvVp6TdAnk1&cO?OK>b+m*Y0bZRe-Yd`AaT}q*O z;J`a>dxJks?-j=cX8Ffs3M`f{6|-CkUlxA;n$a43HXO|$xu=w86rQ`U&IMF-{+dW< zt@+-p<~of5s4(41fFowg%a>IcM7e{__LlD}g)5~7E#8hTOizw8FtlRWV+s6Ma1Qkf zZFq0}5}q4T*9g-ucNgi*lcm(aR14)7(g6~Z9cp)lOsuP!b)iLLUnh8t@e zlMTZC69;QoUtizuy?f29tm-iGH&a_Vy!qF=+p-+GzbYHVA`{Tp*x$NbW>RO%2>DxN0J*fq}5k*10D&ahomfzi}H z!X*YRup`ugB@MnO47$FRd$?J6*(+f7rEja?8BE;M!58)(?)K8MwzXFIa^~9)QB3y0 zIU2(_{5#`cAHWA_=WmN!UmjTPq!Kts;ZqEsKEg`;#%q-q(l9S!@P=LTE9GRRix+of zW@bil8z#V{+TT@`ejwETKG1bUU2? z{UU#FttD{lmrhrn()NE3hPRJj|55vpEH){r1+KZpurRRi`)G;-SzN+SH6pLUNnpyT z3~L@ww}o+4xS+jkAH@jK48spXJ1_|klX@dD37>+7=4y%K2uu>`_4M?H1v{(;Yj;NU zzdxptT%`O+N31?_Y`M?OBtn~PaM-cLr5v7JZ53W#1NILpM={uV@6Me&Q`6G??Ncpe zeI31)Nw|cI>OzOB>GH14NJ=yEo0Bm9gKfejq9VR7$%!{Pxzr(h_#!>H4T?X(cEM$F zf*Lb;YcPWoLr@QH_q`E!onyub{{h@wOc!m#i2k*usldmN_sTRYicGg@kBICo(H?65 zrmY}yCuXL2x5E4cFQ>e3F{YsM!$#WZql*+g>R6T|n?~T8m&~RA9+SIeVZMA!z?uy4 z?z6yaiPIAw&W)(FXm>W;uqc%L*I&_!d0jKh%jvfVDix9?=vA5n<%D%DwzlC->9V0S zF_xoWbQm*q=j34!kMZ=w7-LVxrs9n`+WuP%Dt+-gN76LOM5EZ6=sMS$KY04z^@_ZI zA)1r*f8sZ+hu$FC2nYyZE-dZM9yW^9_HW<*{7@7m@2RbQ%pxC?A-3Kc5O7qea?C#@ z1lL#4;G;`;Mh2T)45z=JpWlp!pLT|l+Wmx6)i7Pp$C%}TIuTJ(KGVwG0Y|^&JYL*b zb-Lb~^aWE)*^SG^aB_|=4Myl?nH}ww6XAWS#}t{DI52FxNA^ zFgr^j?%Ylq8X3!M9AMgYaRxgsz)kp3Ny&q4ljzwpzO~9;n!jGYv`5Ob=TWJZq9N73FPd>)v=NIYeelPO4 z>-J@>S$Y_93~e*|I9x4rr9Sx}=J8(jrqeB8IZTmlSsqFt~0i0c)NI|I!>$B0^)T-IM_e9ZiEO*5$jjy~~$i5r1;m#}sB zVJN=yNA1=x6>3?+l4;KYj>$pC)m+DNraOntbw+F=@Z#Nd9%JG!>FYm*LGC%YEMqG9 zBg;Pb1y22)9yjT+)bjG?IKPDVg1Nalz6GnDj5lEz^Y?EP<{ZPH!2Ht=UyrW0F6>!7 zU228i&xUnHW4N1g^cLgXMkr29_x|@>zkBW>8Eb44G0YyOIT!J-!SvzVTgx--f=o;g z5wV8G#{5D;4hJ6>Bzz*q$Hz^cwR-;xQOYUboci9fm3_O(%xh(3w z&55^(YDEArOOXFB(!KTeS|QT|cROlrd|M@@>u?1jykAyEF#C58)!$JZ7>%Agckf!( zhcQM}3|U?A6!(yN0;eT1&sJnPmaXVWU%~PR_RK<^$XwN;F-b{Eupc-k>G|=EU?2xn75b-?ZVD@Dfet zpFbKrMk>-zaAW8&qDt!ojgq3G<)8L67gtwUPJf0!mQTM{U*BV`7E585sevP9ueWWj z>n#)}!j8=Y@R(wN|E~|ugh?uV!!Bc&cCO@_YKHW?RR4Yzzw{I5Iv&n404;FT@qu%Q z?9xE8m}@0Qt;=k@#Fu|}Gn?#NwrWq(@w6$H)^9C^bVEOXj4pdfB$nsSG-bs$Z@kJg zD0v7Fh|7pU-sfCqOd6&mBO-L*skiUQ$?C?&0K)8GGH0gqLr31H2WPiF9$f9$$o|4k zl`jMo85c)u`i)&RczqVGQ1@YFG0A%x+olw6+l{~iV|yVU<8lpu z-aMWBhuPYizB&c}zKf0&jW(|*vht5I@72!Y*zW+J1$ZY0nAe4b19!k{;tH%VWd2=V zeoM`)`ObN=>odl0!{%WZMm!7H_a#a_+WR6}X7~?k7*06qN=ixw1qBhqwWofb-7ifq z7p>`-CPDsyqGjbS^2^Y8ebN ziEJNHj?UrdQUIgiUg_f4!mF8sw+Zv% z0ygXY1#Q%RR0eFUskO!RDN(x~JNBTinp7%x43LRWt;t?|vjr9(zCGF$qur?+>bOLtl9G&i@>@L%{e z$Zs5Db+UapXqIUbFT&G@JdX{S1FS&)gfq`|lt*z-pY94+X@~hvH+)}Ub#rH;!ylj- zrNg5VPb2O-6X|nekIrh0T)BPfB~K#A9f49kJ%!vPkr4d6rpfMt60dEEyu3WrCbGZm z;q{Oxnx^-{4Vg|OEA^D{1znvnHg;~Bl9l*Vv11=;@BBYK_LaNg1&#&Vb>rW&X}mUO z_rave5(|##*`6v(S$IM!*}OLB7-4sT(fnI0Lq`yGE&n}GPslZ)G z$;_1PE!_^$Ggp#6-Nbr(ed#8Y?it#zlU7&o&i14AF|- zVM7IK1v83(dx8SYQytmbp@0h%G|P9>xW_i=Gi=kkHn`2BWKG22zW{rBBC@0S^@W+i zTfl+nexRWs%m>V1p0}wNsF=;&a1Kw5$<)d~)N+OKP-t5>g1biQtVcEPz?u($N?(CdmVGvv!C9^<6rf;KZ-o9jFhkq?wk#t2zU zHx06c@4P8@eXmTqLVP8{3=vvkZIy-q$mGHm+jQesF)xFprv=vT;7PGKM6?3aOV{_L zK0YjI6h5uho@F09@|$uhBNG#Y($ZJ} z^(?kFR$())QgB_djTOZm3kq&t^V)NFCp2)mu&gIDGmW*piW+S{{kSrP-Z|N>oAk$f ztRn6bkUln+2Jt@~c?~8PvvVWzJ1`cOr5_&WCvZ3}Ny?v^HkWS6n%(3vNtAJzK>ZFB z9)hw83GtGJ#q}Mk$KKu25uU#QpGR646r}(;<`|V7zj^Z}>^x+f`Ho7F)57TGIBqx# z=j30XcN0Q;x_fg@Uva&Ysb4P@rii1PsrqtnZEY>_li?lk_1z71-Xl?Ls?wH9l6S_# zx`ub{SFB%^;}SVEBo_ZYgDB-Q)zkMMI50Hc)*MWIDE{EFfE{u_Bu)t0P@&qqj&lg} z+d!<%IlHcN4t=eyq4>ZJZUX04?z1$PTb?a=e*N^09;CW(imWoq*k=C9q)7N$~{0_57PZg&fL}ks~AkvQDRZ??lh2y>jE49fMR?{4twNMXOg&EhC#_&m#dAJuc?IPPfbn5i{9m^*xtIZJ#GuXB5lW;+nl9?G3ENezk=fJiNb~`5=l+@)-8Pb`pdg7LrmLi-rQm>KYc$}7< zoc>wF1D}snuk9_O`o@4=|3g`aedW5|jIRjW1?q?ay#*z4C5ZMj0ywip2Z{>y_jbBRxeczN1dSJVV8Vymn3(V2Q1uBe`}sUQ zSLWs0nznDM%u;*y?Hd{#l=i1!(J8wxhX6Ld9 z3pZ97JG<+5ABE0JZtKN-=Q*%{|8M*S5SmX>zlXCbpM+h8Z*tn}+)L|b@tWiIzluMj z5T!-Y4b;OZAz}1Z3&pEyuAZQsot;jh4fU&6uMp)P#l`Wk(w_J`k^kzJ{PAv@OY*Oz z&ib_v{(@r%Y{AdMIVA;7cohA;s65+^?@n|K;CGnfk5WY!d)}k{W4WXY?-Nj~rx_U^ z;0%*fP%yQy*Xj0B9Ht%TcoGT(0bFQu^X3;sMAx+ib`Szo(tAOx5mygMBOdiPyliCP zSyHj4V0l0%zwGJ-&VzGmX<=M@f~XsK;T8{{C`7$xxVnKxt?cc67DctkbRE$bbW9wG zpf^C<;O=}sd~h2*pZ+pfKK!-z$?eytZ3`E1p3OmC0Vg1;9>M1%jB69^M^y9%-PYIE z-oly?p0Y4>3k@)Ym!>>?B7%q*?jXHWet*2Q-M zo*#ih;jc0`ZO|k?8NU6fH=uzx_cG(S~HqpqeF2k%-?6N%z(FJM7)HD zXn|Gh8C+)+asivvBkKu#mZZQK@RpKiKJP^$quAW_Gv#!RLNnWSvolXzz!`!)fI*ZK z!AK)FB6N{?#$u>=YAd*lI>g2LWXTHab?ql!7KTlPKXi07HL>Qq_8qnWaU4;YP6TiP zesdO>o8z<<5J3biL{U-EWp^{28iFr`jnCIKd74*B&$6_<|2cKMKU>*yhQ6({{guPO z;P9qC8JmCr6)c&ENDqFe#BG@y?Wjqc9l~FDH}Yd{1a9o1%UAm z6CLc8RaI#YriYGMG-MYDwA3vej(2+zne7?~Q8}{KtQR z-F-c#CEhkYH1r54#G?)aNX~&ew4cBcb;D=}-3(Z^k;4Hk3cnpNpPRVtOg-sDN=;9y z@<~BzL#5{{0xqoNgR(TU2PY;Pv$aXvb{;x(tm^3pwR&kryYPqzX^c{?udg=&r?4>D z9f@dkd*-*)MP7R>@lzD+Z{ZY*jlNuTt9NE;%dwE^l852Z1smx{qyZj$FF(fjci?Bc z%>3RN${;zqc30DJ6AoDf4YxdPG?dOp-dxQM_KY#xoO}I7<419)(?e0Ijp1)Ew?V;uhR5bFn&t9G_^Lyn*vUg3F>XQ=wVbJ{2G)ltPMc~aBEmO=SI3`Fq; zGgaC02Qa&n8-;z~O{HWBE`N2e<^c|e?E~*NIg6OGrwOlQ!r8v1i099fdod32VPO|> zB6Ldcu%nW*>ig)5t9>=m3+ye(17<f5^Ef_05O zJ$ihvHL^7P!Q5V(M<>EsQ_Shm^32R9gef$Q-ogVDM}&3Gp`5DVP7zOv^b_^U&(%@A zH$_$2IVG2_)M~tKp|ZINW4X|i;%4A;VJM{b^2#A{zr%+Q*CK!5E5Aj~I4)p)5qn6m zRWr^x>GiD@#@BP6-Uu!8+(hX40dLMm#17{5y2{uVKAzg@Y89kUqTXAX9V)r|H^w5D zaEU_JOG9ks)Oq8LLV?ewBjdG1WI-X9TY_`-W$h!*ADH4cx%Q_vuYz?pM->4l$+isD z(~NnlA6*<8&RgBOMKnK{S4Arx@;v)LvgZG-aNeLf73n44F~nL8!Gz@8Xn0znG z=FkkPE@&LV6#oLp5xJfs``7JBbIYqJ<3^+xVfXIb{f>@ei9PZKVzuxNU7Ke@6gK+N12WtZ&*M1Qk3K6hGUrzFP*2{Vzc@G+~PjM6&ZYJXcLR^9+BL z-jz?Anwhx`a4qcoFOjyB5F7^>AJ)Ds*Xml6<0k%?R638Marji)vp0WdJ2JUJYwT&l@p*=WJ!pWK>D9JjO>)q~WfofgkvI ze^HL_-diRRnxJCl2Wt*+Xysf(EMg|fv$|*aLW)L{AssDr?Ds}swGUi+7Zw&~mX?kN zypn%xH#qrka`S`NF8h5W?sK|hStD^jq-T4ZMjT=0C=Y0Lj6jd~rcz`nWtb{+%*Wc= zIxM8W_1OGWJyXp=d0n#T7!8+RHEs^eAT2I}^p5A)q7|_iLGrD zLK!TkKOuLcx$}hAd8~!-Z}txgqN<+z=k;&s$I~O-eM9{hrC+>zZM?8cM>YKzSD+l_ zucMqgp8(BptoQuBWN?uC!;f9J)8_5Fj!lA&lBGneL$RWH76`bzQX84eT4(1Yo5 zvYv&V>1k=}O9{rfGuk7ri&hCd=tY zzUZG)8{m^LJZu5pl-QK$UaWQiA_2^m)mMLV8-2Wn{u0cdDM;vs+{?Pwo41YKye6KX zNZniv^xW~j_DUi{-_?=g7cUrz*a>oChr$JikTU0u)iPI)9!(Wy8=%Y(;1I$iQ{fEe zKmCVr2JXTa!WAU0qZX##V5bO@AEmx;fW3wW713eFS*k4Ga5vP1tuiIz)FVK}l-yiJ z8ygPT2ZA(whVM_{Orn&*AFi>76}9e%d$}1~yq)Vz`mg&ne{NOyGCxgRTz@ZQcXg`5 z*HePwJbItN374ejlKwe|#B;Y#sH1oPLM=@WPSN44Pj!xdLQ8>Q0tlp52P0qtmA19D z3EXJEthV#7ll#dk_xaI7D2GOYwIWifSU>@W!qz&@@6w>TLw7;Q0^Q;4rU*x+))ux< z?&b9()Z0P=0v4cAD*JSR0I|Gk`n){i;`Hz&yEoY-1-H~4GMWQ0r-j;vz2rSO5hzLb zdnuAY_h9U`Spy3D953$+`B-ipz3W<)WhW?@Grd)^G}vJ%&7KvBE~h>-S>uS~+~}7k zTy5*G7s+D{!7w8(Pz@R|3=L(J>fSxPS;W}c*lj;3onB7GD-=!l_v?#Y@87@Qn5|>j zk?6S?1jRKWTl4dH4Bk!R&%4Y16rfQEzKTdaKxv>~KL7efS7M-q|AV~a{bUnI&S9{c zQ_hT)^TSA8yS_Ht&Fc@e-M%-*hW*h;N~X86 zvWj+HLL*rt&j1sM_NyKfl#oaw;tuLNIBLT#IJ%lgzO|lA)`!?wTu|84LJIZJfIA%s zJLnkym0Yj)F0*Ec=)Rk~zFKb|J?XVpy3%=s(XXznw3O?HLGkYAr7`pp?r}hO6!i35 zAv_gBteMgY)VRJcaj%%qoFP5IYwJeP1t`M8WTeQy5vdVm2GMc^^=om0#t2)DghJ_Q z2m(Y%NJ#Ad!nMgF3mN>S{I_q-Ht+j-QG`cb{BCF~+fd)VNnYihSa{4&Agkrm<95Mq zR11VdHIsmr>7-+OJ9X;1;HLh7mY(W>5bh5a;d)D=EKFz%s5ktdJo!{xyO)QDNA_+s zPmS*`Ng4C?^E(ex@ha=<>&NgIA7&fu1Yt1<5m$r@$ScxyYa}%owFgKjDJrMerV28@ z8qRs09scNxbFSe7hnu#$eosv);=_|1IYP5858LLNh6Y*bqZ)$#bH*d~K)lapj z9RNv$l0{C#PDw$5YO2t>?IE;m{D@~4O{>s^bXc6wL{h$%uJo+Bbl2^PACw6iTJ)0m zFieb$QqpQcp`mqXkqln&>Z@}$-qU9L$0&MfOVRq(@Z?9GtT2`ftn5o?qTIqzb=&yv znie}Uyw!B-{&}_ibaY}aVGsgQQc?N5dUXbQ5d9CQ@vn?1tkd~;jLPm)qtXU*BO}Ia z8){o;fFKvnCJ z)d(e*e{QTYrqSLacXyO+Xj}Rz5@jhH(`c{ju(@^@5ci?!E9AV~d0UiWx z2A#R2XzSimL74z5Q}ndF%?@*F=Oqq5B^qx8+YKHb+}r_u6?zmr)d2Uq|7aNINfYWJ zS}>tf6bBT8UaoBkrZ!Y?Vt#yBO=fwZ*MZSB*OG2GvgdEaLB!84EKub?1bf8~H)Nxa z^}pOCm)BSpNiSsFvOOq`4-oi-I7 zd_dYncl<2Jel)-dq=(YC4bTd;C77Cv8Z;m8{GnL<+sP^-q8sEq_QlrACOp0+t%i*ne(l$%=j_CFQ+66eicAUYNq09 z(OV_&ly;%J*^3UK$nD?WPvqIc!@@pc^<6+aLTi_fde=;ng6d(h9Cwgyvn zR9jm+`Y$+1c?*kFT65VOnHt^YF>z6^4{U6y@BaULF4NJo)3{GXH3s z{?FUlK}m1p_iDeeI)K{4@K>a)!`=7;)*f}q0wfQ->ygUZ>i^+u0%E0lKc{&e=n@N=qoCy9j zU>V)PLx*PP=U+m78DS$VCr$SWrt$uPfstVzZ{J&)nMtFUBO~}6**VXsETEvEpjd*P z%j*2{7EST-jgTj)yLUuily!F(LkxsFASF<}=_VJgHd1@Z z&W;l&tmfM{N}%$?^rAl5+1aTPi4kP`0uHeP3dqH_Xz+aLu}U@v=Wu7LN7L@y<1^I` zvzuoNJGT_}??1wFYGdfUakAjWk;%zs^q?*;R-oNtdj0yDW7_)f?WBy2jqR*0YH(lK zHM6LImTEtJ@+R8L-ie|stE;N$1I}_08Y&#@LXV^L^k1;O<3EdD3*Q_3{w+C)Y~St4 z5lV`0<(t#>Suy|ck6`5x4p{+J7#J9+rC;Dnp>Jgl#)O084>}%HHpcjp!WS+CUUs=C z{bW~-!TPG+(c{OnQuIgzhI`PnZ76y>{pV8jUr(Xx^jE*vrKE%-8Z2za-sa4k-M_N; z>_0=zpIWGFx;Xdk$y`7I(~+s}hlT|&`aaRjEdY~k+1fl1VO=sYIfWxPf&?_^t|e^% zH#SrsntuuqPsv|jDfC2Y?)v$2Xms>U$jBY(wQbUMubH3vAjHsgA0dd(GqepOjvqgM z{My#`xlJ{^<0L)3B6_t%#}0vrP(T8bkjR)`BpbZQ%cG~Se?Xef-Gl3IU)hH)Z_<#! zn)5SXj%?;`?_sV!}>7$V>0%aQ%Bo99wAv+O06WX)R^SQQ51^@g&D?U;C z%d1DCZ4Zo{9~l>4)U1NnxUj>Z4>N><^N0sl4tMSh1NDsm`O{Wts~xV9dlB!ZO zMQ6vv!omkEHHw3%E(+W|wup9hb@fcu(@uFCJ$gS%@7jiQQYI%<`ge-Rmv0%LI>(Xl z*S_4KMB=QR-u2qk63dauh3xw8b6or&c;c9+I<;R72mckY>#t&mU8hf+fFzt>n$l;SxC1#mz(S_Vi-*>yMR~_47`C*9qenih_w?+# z{jc{xB}IiKIX8GSfUE|+F|?!5)bp`c2ItCbvz9zGU)T)wX$Q1$5Mk)K(mI>NTEI^ z7?qHakcfaU;$V;{2eeH)cMa7W64+hP5LA4mw6(; zebaGPF3dW_7Ez84sIN;ezB-#>>AO>V&z?#oCVtCQ=`%z z9v%>Iuhx+E%eh@8fxD?(6kB-iObynF#kPBZCe$&JY`Ma_vp1djmAjikvFnK1L$ZB@ zrt|Tk6IWhH8|U?Wu2@Zi`Pu8FQ&I?$?Tt2gtbqLdd|`%@ zCtDDyt5>nq?f6i-teoSY(;;(J>eUeDcMkBX!E?xL)xcbsUm0vl88j2Ju< z-~R^;=MB8*KuEPj%}vO1DEyr7-5W&;W@cs^WFg8Qlu%5M@1lT1RA@rM4>e30vd}}? z)WgZGfsJB&?%Hh@KtH+N*YiAG{6sHb zz3TMum&m|bD+`O;bHlQF@2o$A7lAGzOK!0l>C#_rnTQq{s+SxUwWR4X*4ohH z;Q49S^+w9qT@SrXyc?+2J9_L`18{VWUL=I75G}+*HIHA|nMcG?{kWS*2;}_%0RfFa zoX-mgq$0KqdZHFaN|oIx9yUH@%z8>JO0#=d0lHCt+~EDvzY3HGtSuW(3nRhhAo(o6~r&vHulZrHg{kk>wXV^8x@a(#(~VMudc^c!Hc*?!I*dz6jwvXcG}ca!(;Am^++OxgUJ5J6oNi$YTG$ zU50HR;}|MugvbCIp1g?LFAmZ|G|Ka{KS|On32Xiasz0#4yywn+>gibvY@m|E+XYH- zaq&V6zim;xfFfR5A_|bThcsZs7$Cn1H+XQfO9C_{;xqw?v9DeW| zywE5?lu?gr9gzQVk5yoBFg119+rA@Yn%*smB2~DSAO?MUgnFnFgC}WLhLtPamCBy! z7jJCk3dh97)uRu@+%jKyWSZT=qB^apU5>SJ;+B$<65beHV(#%+nUUJ99d+(J(Pko3 z*R-MSict8@<@JQ)A`S3WDk@}{!7dL(p1Z%jV_2N?P0{rg&! z#B8*9O~SYKu{-%NFMGqC<(}6O<1DdF#~`-G-o@A%?V5CVSDv#!fBrmB=8dj5jF6_) zewNbQ#H9~LN%O75$x7-IRLzuEu3SOEO!V7OO8}#o;@Oc+vLHU4larIIiKuO|rElpM zzelaRJlDSL^A>R3yZQ0RJo8|aKONumC*dT5H>Yay!6LQ;4G?RtkwJzv8bcq3ss1Px zRW();s*Y$q!At~5;voUi>O-GO1pPWJxMsX|w91mM7RqS(te5QhR;?$or!pff-evva z3X8_I^YzLL>yIaHK+-9kAbVaAjrmsS!@!plB3=M{pnSe9USB2))U@={`k> zWr!Z{^RA#c2)!gEB(VCAz-AF5oWk!J7kQN~UAn~Llnc!@U%bMU@chC;DoFJdCM_Ll zF}(KQSUa#va&Dv2p^&);2h zjBWbUUBC*?06Y!xUf|xON(L?NWfTNm4u}}gI#;6~0O??c-lD0BomOgkdUh8Bw6pFT zY%HxH(m)MC4iZY+A1dKH$dELzX|qkEbGs_Gu$x)qx^Ib*5y`P#&p|RknGXqG9q@%r zrHU4=w3&&?MUWj`MfS-V6#0-T=H%vzI1KKFXb0WrAV9Ih3|f+-kR(@Fw_4OdFHcCD z`j4<(<31+o`mlha>5ARR@MxfMS<6Rn_8N|^0;d6oT7e`U5oa_S08xn6knqxQ1La9E zmrvkD@hu0i$9U^TV)hGdOY5)CccM2&2sXg`JI;?Pk}ysr6Ft6^(jmb8H*e|_TOS#F zt)Ch8qK-`XesmitD#XukA3lneSK!^+OucyPN`Es5kOKFFp0%&8Q( za$mB-#NYn+i7P9KD-(C`>-9wO7g1;q?m+z)jP7AVLINT3Loy;^^5zSdD#?GAkN|)a z>QVvr-U8|$GcG8pSa7C^_O{J51DGEJZf)Hr0Ar2%t;Rym>}gL)ftBogv#s78K?h3{ zdz!Mx_eVRazf$<9@Gyi;+@_SDMbRlJ={qYe|MIW8!=j04Rqzsg}aQpWT zs0R`e*U&>C$OpXeVb2#SV8S(|q@#H2CRI0{hZ-qS*lj7NQ7p~94mD;f^j~&J4*01K5E?A~>uqX^owzwW`7hn> zH5f`ldkrn=cfHFe+|^IL`-XMkEpJ`th#g139tGhaEoOJjqgn>)58k83Xgk= z-Bp+fFFL!tS{nudtoI0W9LXaRt+~6}_qLFLY z_fdCh6Ssz!pFdKgtNGuF)rCKlP;>%g)ES9wu~fJ3IJ1^y>h`Jg>;t_q!RL6uiI?|L zbP(te4?zwd7kGkpp{bo+&fHHth{3zrFKAE7aC)NK3MEP)f(vOyGin=+L#uSg`b}>K zQHzRsZ5e2s@-t?wb(#EbKH6KH;kbbmrSMcpQRZVabLdGg3*B|RXz?|^2Rsx#5icj^ zI_HBbRrW_Maeg2}0Q=g4TPotQCV*oQ6{cJ;=r&l13`5|k2#fAAWrmEK%T`s{q2vdb z#g@MReFvzrY#f=E78ci@kX>1mEaKVZ<>1#X0m0#pv`5Ac#8d+Q`+drL zJb_6Rb5#qYy=iA>{q0q7Tp-aB-!le)s`|!63W7S;rN6j;3IO9Y+y*8<55&7f;3ATz zb8au*u~xkM@#l~A%a>{8W`A4v$17YxtLW?3uct&s6A&KT(32g|rhX^z;{Gu=ht1_2 zE`+Nf`U^+#mQboo4{xxbyS6}kl#puz1|ny_dLJ=c^xJmnu=i(WiP{~5-_+vnb2)Ll zZmtQAj*bq0c^XSR*Yn!;Y*;MSt*2E^5;Fy1i0YjNq)H5@t~3OCml;A&oDV@70zu`A zcG_93oZrZFOpk|=T@lV?g0QTS#L6-KNTBYY54P(qrDkPi^)GHNAA@{yi8s(B0ziuF zsk*eRO4FKB^WwZC%Q=2!3miv6{8}9m#aoG;0GOMdnIZJpNCaO|ujl(6!;@Sht75~^ z)-l6n1(BS9*CZC}ACuSH8x6=t=D$3<5Q~#ya^r@7FhmX^VmcX^)eMjY4N7)Cv)ETDo%wY1$M3l6=+} z6hDUng|RVb62Clue(I!z1|D(umTC$|6Dq_L3*EguP%`2jjsrxR)G{nA2Mf90w4ar_ zowAliDoNRQ^HEMQ);@dmXUnW|kYYG7E>B`9|X=ycpFgwrj^S?wU?p}&7-F;tKS^56* zKd!ZTOO4${5?NAyEV?oEgI5v$nQ|0%iB(BMdFr z%pJ@mqo7{!zxdGXA`&Qmep`FH85Er<6+~QE)(-N;6_uqhH8eEb$?TMiCIEMAc2EJr z>1|-ShP~4-jD1{4Nm=Tjujn-7&yTh8n|#`F7>Y$uMZ!i!&v)HDAlL8-DiY$w3h|N? z@J$Vy4D~u=`6k{q^1H9xzG%7*4EziyY5*-eAfwgI<$jsuGAN&z59S(I7?HW5diRTu zPqAq#>biio1=Fch7uCMsm@Y784SRN`)uc6Y-$BQ$gegHox#)EH%(?$X)qBTt{l0zU zREU;Ygp6!Tlv2|0p{z18QnL5Rs6;}ELI@E`*(pYM1IG*baGsUdNc-a{TJe(HZ=pw(SX;|=n#gXIh@81XA4pHg>z}LXr zE-5VqR1%(PuB4>2xV(I!*u`FnaTqTIEYeDX>|+)(?_iiRdALs35)!WHcdmbMSmn^v z6`3yETdFn+kCa|jm%qQq%RhomG6vC%+aHV015gqnm?8e_ahJ)99Gslsy3Fut;3*)Y zhls*Se0M_kL2#O|*W`et)Jnp;{*hm^vpfO<_aWIO5D1XTeLfpRT7=(s3HB7x{xkHk zHjo{E(hxI3#Q*pkEjr~oCQfw%VO}zr#Mjq6K=qJulSEpSm6e4#tV4r%$mY8rpcwyi zuK_BOzjWKfYKOt?V#`1l~_rxFS)Cw+~!;SyLF z9RE4cafs+!Y2SIMP`+@+ zpDX>|SMg`SCRk0;gfOrO>SXB)D{{m9^UsFklAc=@vI8f$vdu2rS}RF9D1cel{VF;b7;Nzms8C+c=bF^OX|tO0#_`M3BJlh?TPz}Ro1QmXCf~Fogx|^@(Un)QfM-z zfQ%+lBk_!CjI_q&2rhRa+~9u0vcU54^3i-8N$3+5J0UGXuc+3gp(ZE2kf1?PLO8Uf^!2008C9ImZ7@cb7f{8kCgaqEiiS2I5iT(1xZ5WYso& z)+B5sk~0FKZ!=5))Z00Tp~!7vk`3o+3jXkrZR=K?gl3X#=$aBf%gM>P!T<^EOU$s0 z<4)3`+0xwfzG&N)zRM#YV}C9z((l~2*3;Cax+q71(>M|Q5y2b7W+N6`Z-z%jDPqll z4=gu8Rqrq3&TeU3pr%QBmaYN|R%LJ+o16e*OR? zqdpHF%O`afuAY~t390Ma=@^`d@}TSg7nT&z~RX)(ya^oHdKk}i(j4J>VLH?hmQkR zTN01~mg_gdi@u@Dm7uxjUGe+arFT1K5B6E8bC0pHS=m_KmI_`bQ%EgAYgruO;Eu-- zMn+vI8Genoh(b6h4<{TsBuIm0YkLqMq?x!+_X5zv+S(~@Al7NqQ?|Oxlncig*7v*X zV{)LjNdN;VD&ok&aDEW>Lkdl=yA4&!$k@CvIJt6#vKgBVJ(zOqiYJSRis#lE6_}$5 z42eTvmp1Rirxp%O>#CdmADJ#Ex`)43|G2DWf>2nSN0;^VoN%u3^73AUU<^{_UPwZ~ z`w@d38i%v^V@X$vo+`4rP-Pe1x&tEMO;Xo!{6qbh#0RjR7JSMe zD{5la4j&7!Jv~mv^Z!M0|F5#(_DN4YO??xS1a-znIgl{9w3#qkUY)!W|_1E$mC>siVOE3knK0L$MF_lR7;EbRF7S z>VWR7Apw(b7U1Wn0%8C*cHdi_^eQIkxU^aU;t=&La#a`=YS4g09AtfLGdKqLy=tv3EzOKlv`T* zqMXT=?b~m4?moA_*U0e@keUEd`>U$akB76ifE|}Ia zj~4i&Er#Wi4TEUOiS-VQGIO10@(K1~t>^ps z57u8mR7e6U3)~U+P#iqw|H8+QC5_}NB>2z}?G`LiCS?sv-6C3P6?iX1_<$vZ6%*m6 zp|psZh5oQSg31tNh5f1<+ApS#9zyP zltCV$i;GLRm|hr)rlO(~DlO14;=v<+WjsM5HpQADw0-htyrsM=jW{0i3N6Fc1*9!s zO}a{ra?Y3}dM-MwWXI_TF*bF|tQ31b?x~euS;sp8zU-6aeCQPV1|iKPzclqY*yypM z6y^yvjQ*L5ftA@q2U`jTWhnXtM?DT4W;1+!H&5hzR&y+Y4=XK_6gpZ67!yY>!zK1v{3>8_4a+&8>vG;N z0A=8rdn{Bc67kgbdm4}4Uw8(=6AYpjnZyWBHBCD3QjVBGyOfL}8c&{P?8l zBbRCaVn=*-^2eguDP%6{;=A}47Z)cz?MK$r=#RGt(NtsEJ^^zcVCIkS2a|=?u!8wI zItxIw8--f)u(imZ!m!`oyJP!y0pNdO0T1IYHiBH_2^LIFc3w#?sA~EgXkPfN&n`l# z#1I4=@h#&Y+GIF+1rzTR2)W*g3DMk*h=q~{EDTZBAnG=}4v&F@(tW)F6*AyYt+9jV zyb7&_s$=gFtP>g)B_u+fak=r7_F})n_f$jW#RLOd8l9VVv-4X{zHb{&2e3xk``B16 z4DQ4Yk0K_amYkGC#Ad{^M_(cYflmZ@34i2r>MnwH-oO8reCHZ32C3vSt zZ_Npz(Ix3K6wLMOe?%Q*p6cbLTul*Q8v7;)s#y&p9k@FEFU{`UCRLYr?<@7|++1T2 z$3(x0X(pf${LZ-qPlMF+oOp(4M&d^gCa?bfcZ4^x5x-r7%@VZ)-jhIJQ2wUn0fsu? z`Tjg}M{o`rn*sFp=%DG^G++b;oy-hc8x;0vzQTbf|?EU=f3pG zzoPzK)*sB8X1W(2`bghEx+5=yb_iRf2q*;L@C^|hu+QDizb4Rk>Ppph7boN7kBHae zUlQZtp@gpmZd9?cgUJWd@;*O3;_wNW*IUokcR2?klNag`U1VLomTk&)LP2G%6p%40 zrvd`<0D@Zr3hmH&A&X26;uS>}20BNeX{4!z!Z{IWyWH{XSe=ln5TyWKl3uO}6&B@Q z6jiKxER5RPGp`I6q@<;#>G$k8udE!<{%rO3)>=Nk&?jrxnApy3o6D2c#ZdxU1lc5I zmo#JWj?rvHa*%V@T_P@L9_u6s22U_vPw2f+-tvPaQj(JJ<32s;ePq^t`?CI*%F5Gn zSG7+((u~^0ExEt%S?7{?qDOOHf#@ZjmCLAHnde}{C%`hGikDOQ1U9~Ub$_c2nk-Cy zBq$1sgMQ-UK}T}PDz5$HPvjn=z7Al&CNRE(itob~3SUDDW8+GIIOV%d!yAWe+VXIi zGcq&t)mL`>?Qhd-JYRZSK+%c#;{g)rm)?pX2r%GF2s(waPm9WRb!7Wscs96Fkxeg;lvpM-1@Bfz6(0-FrlJ8G{rBKd`3@!rJZ8cobX}D84!3Cjz@)O z013FE3_X5(F(l8NrN><3!nfF`%)6d)^E-G6qss+d>jyJ21qhb&!fGZ*vG*HNA zaLN&JpKUb8LGm(zV_`cRnVKf%J<+>#$%5Tf6^Emkm}Jm_U z(S%C9N%+$-OE*<+3Q7tJCHd1@v6N3GJH&Y`uGE$JaaZ#T2;>oDV&%_g@ip?naURlD znqmc^gQ)gwZwq;DsPpc+b?y^$U%YYv(-9nvotEI}QX#(Z=9?TH{Q&>PMW9Ur!k-4) zxN8dc>pZO~WM5D0v9YmHUT6f${{Tf6k2@Z&N0W6COz$|k9z4dOeUn1i1(eBX$Xbbwgm!~oF1|37Qr15fmpSsW*$e9$ z!-e0c4!*YeyvqLN6w}6if9yUlL#0{bn({I;&p9A8lmYY%Tn=myQbA_1sRBF$)Rv)q z$^Z)p1)?-BqAndo{CF6(ZA7_+GK$T75zk^^U{GKcujuz1Nw1hXM#2TVDsbndgS1}z(-ZGbEuo0lVlC!i> z%pByF{@bJgwGh}G?;9PK{Qk%RppNC9s}u^cAEOUGz#2;9@7ad}{M+HJelQHE_?0_1 zg`%oF{I~@_3R_f3QITFr95ic~GM{z%o!?rVGBis4BppMq+*1~9nx@R7l3VM+8+JY+ zt3CNM1mm<@w=%O6eH;K~@(qX~@!8h6(SvB-F~+95ykGlsA_E;L5K6qVJ{$-7`|A(~ zu&F$PM8}~|!vL-DKOkB9eZGygGHojx9_9RXl2I zAY>3ADd6fJ=={T;K2?UAQ)}AX*qA3wBmy*xDFX0J2Bd_9{GfMI`Cdqg>;`$L5UO3( z8b9>*9-O!R{MqmKu+E`R3B^BHLw@g!4l;)PY)@XuaH5{$`Y_x67k57P|qxxPfd zbRbogY7VVCVgyydqNoCd(aL%h7$|??0uw|QNY-PP-!ZgeX>5ENqMyy1H`7lLm8#Ii zoH%Yyv^7k4vn;$6X*wUNAR60^HDod^3l<9Pi~X-r+Be(AA*8^PEq71dVX z+Sj%xsg_FtrW0AH!oRZm@g_H_4U9GDH)49R-B_x4~6O^<5+;fV2xgm4&5u!1?-A!dP~Ajv=T2PL<6lGp?3RM3UyDG zFPU##PS7gSe6^Ob9cdR<*4F8-gv28o-`<*k8L&?S1}>zMC_p=oqi1Kt$?@;$?-2n6 zOgLimXCVpm2IdG;aP@>-!TzU+E^}`+%Lg!y2T_L@HxR_xv8$4_pIG+USy>sXt}K5( zxo!ps7WxH)-}WN2$9~D`So~86w1O)Ii1QQ3e3Zg8Be3T1{0AWK#*}mP#&|gWl+(?d zmUz*?s8sFEmp_jvpfe$|c-R34Bs0WcRRhF&1I;hZb`E+>RhumDXxz|xJolXk<6ub6 z0lQbPn!kLh`1mmheFx^v`%j+iL?InQ0cAWX3_&cAZ7%hYR-9(ltVr+Kj+VjZe}0J) zqoB}m4KOrhs{mi41Pli{OE2&&YDMVW)&M6iPR>=mm4T7-PpDY0)U!M-c|Gm{M20L;m+_nKuKx%`$THbT+{lEBr}a%9Y(Pee}it^xIq;!2FDe6LD+nK zc1#Qn@lQ^oo@G??=KTkjlf<)NVQc!EQxX<&=pv3VG+~TNjo3m7ReG%>x=XG2$e0tA z%bpn;$IOddM#@r;055d%0WeL1ZRx1>jqm`yU5mrt?ceWY#TXUo3;ZBwXh@7zUS4h_vJAj(V;u*t?O$wJ$qS9JjmuuW!BY$hkhsIz9wQeQD7Q*BUD)C;9g&-#6#sZ> zJSujtt$sUPx_CGK*Rad_@xh23JLbO$(2YjWKX>K`;B1o7Pem1KKA9W@GG0@1#4?!=C+8 zJ$}QnW5>v@8>G5@bq7_+a@5byUc0}G#FpMs1t~!~04IZFD{tq0s2-*$5m>cx+1YAl zW_%hwQ-knQDZ z;+ZcOJ)8WwEd`WfNN6a}q(2@{e}Dfbo?>`hkgjaFLQFUKQ$Kxj`1*f_SnVtTJnXlc zPoK79cENO8CRz(wk28bm*3Fx_g@hD+b6#726F?c+`$A^FR5X)=rze9M|B37kHaI%a z4Js&1f~4|a)PkP{Io17F((*}YB(@X^C73VadWBnaqYMzEw0CqETU#sP9KfU;PCpV( zye172=4HXZf8c@_zH7L*j?PG~Wu~z$ zHzx}cI z-Mbrr$@_fBW5k(|g4gKX8}%Zza?Nr_`ItkK!v3}LyBwYk{3DjPhyUNT2c8-$c}dbR zR-Cx4u3e`ivdhB&A_qW#Fl@m&r_<4^ee5kNkcin6^l-DtS0T9$>DyA)cg1H|-wC#` zaJ~kZ7t|g>QuT{nf>7;2|7tju{Ws#mP2-TAPXVz^1SSI#(5S3TXvjW5^kMEqcLV1V z3kx$G<(|t^N5)%UH3DeItL=yHoKH}YctHz4%K#uYY#qIK@ALylUN5yay3q? zjm-6hU?X<2cL5Br9Q_hcf+BF_3=9nXr>YvbIi%3GEf_Lf&2mobLGR_QncHFj=QLvmJ zFaM-L8{L=%H1Z^13>`%P!9!9l&MBzZ#T)Sue<09R;w*x;1n$1Oz^Tr^IIaY442ls- z=5ZT*>tu|`=({cy90BbQMCaes>z;N9f$=H`dxlvKESW0CZ0*C%r$b9%AGV6univ_W z14yz-LX#klW5fR`(+PToCLN%V*=YKELfE?$0tll2n=5}@gU?MOV89?&!khwF;|s(r zPM&~vLEzJ(9+0pNl=$Yhwp8d(aIU=E^f{dNS#WRw_awjt!G zDfd&ILb3x%=mJDWGB`5z--e-hDG%Sng2r6|pU^E=OT^w3r&S5mwVtt5P-twDTE$EX z5nnWtfk?J@j`8~g2M!qF_@W?S9wFDU-iW~vNqW%rn1gbG;NlnYGeA}a)E9=lL{aXC^bM+(5k*bwrFmW{}<f~cWY!n7%7a&DNz+|A6N%9Dy{E6uj zr6`~;Y~r-;NtfJUgfjR)oUHzGCgvh#CzOR%bUCB=^p@|`dBe6n|DdYz6x z!;DT1jm~q}G;v_IV~ryUF%IjQ1RvT6kz&k%mg)(<-^+8%8*7&S&JLXQ_Vy+qG|1gJ ztTtqk=0bpsN6K9mivJyt3Lf@>;>C|!^A6=@>%wvg1Fr0Ql;T$eK+a{fZ-F*LE8Bn* z>b_HbrU;t|M#v%s_=NkQDRE2?zzvFkZwSVSH|fc`B7>O>j;x*idjas6;-%qC8~*fM z1^6EtGk#!rK0ZFZ0|SYg!gBr?6LKJAN0J6f$RPY#`Rc;6v^$f?7>BkW3`{Qwxyi2A zkC3z&;4tRoD8$8Ux;E9ec=D{y@_X>^(9)8STSA^n%7n`8pwnIINt3rIq8 zrhvo!23<~sWy|;PX4pnVl8esd*W#=xrr!qSY4NqCGnGltt+X+e;pTz|3B%D1wJ2U> z#z0@AlWp)3Ju53V8_?JPiT%ztcn-YT7_AZ3HN;^1Np3qH0ZFa{iA(3(gEN%w86P+I z9V}#$4$yZEl{E+?ElvBn&`5rF@w^zyY3F~}ki#`l#y z^1?pC>DhL{cnHxQpeTN#6h$2dCi)OyGo~bS92F!9iGCY8{W_$H5<5D+B9D;JW=M5d zim&(+@|l!EJXmtTVn$?>H1qSZTfrUzUV$29S)FSt&h^Fp6Y z;?PLFz%hLd3>5@Is?fy1S3s^GAuc2J>T$G%N_g-j8Wm*NS+r@H7i4eE8Q~Qovc(6q z0>(gpfPuhM)ET~Q@LfHI^gLi-3Uf;xj?qJ(LA{iwKMlmsv79>fRL2VA(sI==ZZqn57%AM96 zhYJR5CE9QX4vr?Qt}%F-b6SpFA3X&JBWi7xI9y{)5vTA+XNi;rB5NEP1AzBQ6-IGN z^JvBM%Y|43ab;>aKuPu~&gTfNgBR!w$%MfnGruI9n=ZWGDYIOD#%;MtA|-H3InJ)p zQ7ecU1a2FuFY2L-Aledu3iZVeNZP!V8->r92r05$&TC|$;It=k6O6lp{ruGZ=S3u- z`vW6L3;?haAb(kf@xL|5KYbV5u+-(HX!-Xazy0r;z-CYCjisuTsn~q#ai=JuYbWuR zsBRIPTX%};1VRV&4e>SDyAVLKk$nI)M+tNiIEqO200qun;$0zG9jF~-FC!I&&OHZz z4FLR86beGc;G!^aBF7NW5GH+Fhva8r2>6XYI`qktTGVZXDof%e$wOj`7Nr@#5#_cD zGByzMcU||~x%|0Bw{$t$=y8wY$~p=iK~eyk3yO%)p@~Dq0sKPKi;u^Q&y2>Bh&;(> zPE6d3%9M;#0M?l8H*en5@JHFMN8d_>9s_-SJktjO5+U`74VP=s|H9wO@{{=VR7$k# zr5?7Dz@bCo=wHdej1Plwp1p{72lRt)N0h`3Xs0_6;fq=mI(XoR=fa=A(e`CcC)iP9 zVSt3h;SY{q(l%h2uHMs+6M*%E$);S10O>0@4~elCwuxE{>L3xwoiG}GReun#-^4>FvQv|Ni#>*K zA{IaiDoL%)9aF8DgSCTWT5sKV;iux*QNdve;T{$0;{Y~3tek3j-9TBMg56}u2afv2 zPcNA5AT{t{GBu&bDBrwkzW)ac6aaxQ3fYw+T1K4rh530f%_u8`F+Z@41ryfdB6-|WM; z<`7}VZxQEL@Up?|@u6`I*%Tq#CK@adofJq|HVB76eW`&4Cn2HA^qsil1)&`o+96i} zCZdn)M}X#!a<5oSoyv^f6ebtmOMKDcO9HO!i*-aUm_kkujGMQM=#B$gA*n-QeBGk) zU4G}bEPr}E*CT&AvFVNr>_II$f-A2~%=f&u+OOz{syB?1c-%Ek@hfS_!F+_xxM9{H z3SblkjTBWjG;Vtt;ZvL=qX0BUi;IgyP6B3^?`2M`DXuTWsd+|A1C4WhyVdvR=00-g z0X7<0w%{2sCWS!==!K223fFPCxK-u3g z;7O!L?7OUkpcL~Q@IXKdISIy%!TJl_@hcV1&me4Xyr8u1MtM;xJU~&t!@)^7PBDeVg+QZ%_d^6<5Rb>_ZTEff;2?H){r$DF z)bc0eTDQ(vNE@iB?EtL}%DDRGORXRpGCfl|NY*o98Q?BK4^X}=h;zeSEk7iLk?-Bj znNO(7WUeI!z$@>xzFKbCDHaEf4abSwtjN`d5@?f?w*L{d73{)_Nf@1m@TJMQL<~3R z-yD zd9OCYk;&~hsCWueT>PQhv`|M8->(nDiRv0hexZ?-l21xz4{BI-a)FiP_9c#<2C2Mzfu_51_pnsO~bTg$C! zz4U;^^lQOYQ2{Ylkxzi3zF_84s-flw1PZ*Kq`4DTUedgQ_}Nv@u{`^Wy&{O&0gJ^M z;1Id)^5?t4q+{2udIiPo4o+=B<^<>lzWNyD*^5zcY6o_vv6oP&)ZJ9C^|k&U9UYwlyADPyGB|TUhe-fR2=yz0%oH;o z30NeeS%^XD%{Ze~Yw1j$aOA z>VA*iMgT}S${_C)!i9Ml={_#FA*+Jibc(f533dkzdcE`pU%yj2T|FbK+5ERdTf{di zoD{0_VN~vUjg$QQ)s9O|_Bc=Vk$I1wK#bpLzxm8;099sYW)i_TWO>Iumb4^2VQBD% z)&ZKAUJO$p%*o=&ZKXWEb;&O=$VA`P$_j~iA91XZG($i)fCkSlI$_;a_w>Z#0K|YK z*s5%Pn@>viIn&z7^3vFrPY#%nJKOL5eok7h3=e^3IS>v_i4D1t^Gon+Ij*g^K|URX z2@Sfya4pRlsN2wfn-V{yn;W9P_vLC+t}Xqde!XGgPJ+#69DaH@$cbQo1{~-yNNQYYLvES?>JSHOM6;eS-=(k!xaJuvTX zdNT(MoPbe)F_Q?+!Xd35Hi!EfG53N1|>&dr2UUK8hH-i@-5YHiu2o>dz6zSAGiy#*5av~f+p^d{6}4ulJbgofAkRt z19ZtXz)y%-5y!MPgFb1HaFsoR=c?wK3 z(nOwOoAcy6i+Ng`%YJfwkEOne#k}j#iy^!`5|M#g$LMqk2y5V$h@H6}pcf$wX@BFi z7X~f@-a{(xf5PSF&0RC1qT#lBKwq>?0x{@?PJZ6x6;RnJ_AT;tQ4u6d$8pQ%X^soE ztmcwz01+&KCoC>4eZ^A2vKDk^HMqTbq+3P1awv9Nv#?VCI?mMhKp;rnCfoyB{IHjb zXs>G1oQDk_AVnNSoM0CuLGZp4r37$fyFxj(ngK`Z1B&SMWXI zp@6*a_t#|$7dc%l<{=H^1nd!2P)q@tCb5i+vF~u`pxJ)}R)mqBz5*vGf7uM462V>Z zGe}M_xm*WFu*!>>`qTr;PlbOgA@SuCJ~x^5FcuABVq}bU!$(0YN`*)`JYbRlI0{^W z^{?)R9!BO}%i^VP*JY|xl8k0=N)(FMI8h4e$R{twlNia!%|CauvicQHV=+VZNlN@0 zm-}DNJqm??DOZZ0{hTv6Qu>!(ZcFK3k#k8~HY6nQUeqWlnkX!Fohs#}!~gjteE(w0 zU3%oJyZE!89_tq+>+@)3*~6AskE`wZ(A4q#@$=_L%|Fe=;9G1|Z{ys7ls!_N@ww^! zbL%HE5vmv8@N zz0hlBvAw?K&)4tYeZVl;{&b))ns2AQINP{0$g|zh^B)y%kQ3d$=lEvSH>k6$RI6tC z`@K|ILrhI)54&X{OMG`K=w?{lD&M+}DBHotar>MM$_RT2W^IZT-BuM-6 zx7*!yINFjTO_#`q@8VXK1Iy=hbavX<+Dh&A=eqri5^MNgcG;5h=v;bs_F1qQkd`p8 zXZ-ZDd%?1A@817xrF^?saEU%PIb^}^MtHLcm5TXUXw4VMX+?>(Uy)j3>NJoR|v)X7tCFCRV^ z8^n_}&FL9)xj9M8q~S?yh>p(vo|)JOdlt4I@oc^!KQz*}*7N#QmR7g)ET=k~@YR^n z?Q?n8s)LscbiWqw(mHb3WU$ELOPp2J^w^H7mdvS&SM1U6O!w~JHPSQm))|U3pKc<CXU;CNj42IWm*Mh%lz6^-DCWw8gn^ldGh5jo zy`_vlaz4$JW!pUKeAjC;@kJ-wfFYW9EFU-|o2Y^?@x2@ z_LKLc<0+Ti-&WLr<(Lq7H2Q1cXJ%=$(#3r9Bem4ay@~&Bwx%pW)7!c}`}ayi$9&7X zn|5&%d}=3epI9hk7o6PGxUhQHOY*{O%bPLQnLhV{T?Kt7Qy=vt zpFbGSjvT)|;PX80bh8hw*UFtA;J-k6I%2#XdxxeoJ6){&FQ@p@7+^y&4c(5q@ z;vMd@Q>Vk8@5_zb{H^SV5B*shJI_%{W0t|Lc`usaz6lpa@EMGx0qDQ;B#0~)V&pVTn#GWs3NHRJp#OHC`g)MVx7puKev=e3;`s)p_< z6Q34(4Z9oY&R0xNfXC+64 z2R{9zF?`fw5I<{?6dq|bSL8sxz~|#drW1i{=Uv(tCac&5OH>Y@J!5PYBB*b7bwzBb zl=E!P><6mjvi3qx0`1(rKR=uAbXYg)Qu?_yhUMn37!3z8jz`w3_pZjM*A3E94VRSC z{&!C{*JUY(y}XyYyTgUGoa3$QE@u~yTS1)ehFf0O@7kVwJ&>u&3Utjp_FGWk?ef4M zhJ#lpWcyXNNEnaYym{2JP4MM(yIbwqH*Wn8(({kavA&*IKhODIa74}c+#+}8^pVlv z?hKv%b%FLL_vRK%WSh*-^qJ-y;LFU{cx}Az^*H2uN$AR zSS@1F*gp+&{?b(vaNDn`PEh6cEs~EJDtr-iN#29ncHIe z`6X?KE7}@TKIUf0{|x{Dnxw;0wVr?Wn2hLavDsYlUVDqrwt;?rqkF#OsxN)hXc&1D=>2ir{ZtK=DL_8zZ;sB^-U&~ndp}bZk0J`6Y zZFHq)eKoc<7y2dwH=+Go&!VaxYv}&5O~|37n6o5ZJ5_z3cys5A%j}OnRL$h_4_ND` zm#ziMji?k2IRD#2QE_)g&FP)1O0l(R<9g+T*>8@SzuY)%c;z;)cI%siV@>hcb1=wI%dUfVd9esON(@beoRt|z4>9JdR2G(Kr(m2P8K z!Sui-A*X0JirE{lHgV}^UdbN|Zk%(LPZCThQ(CqjJ<@D>gPlHgueidRhpz6{mv(j) zFTK{Pn#w&ZORkhBOdr;1Exs7_&@y|-E%~Zv)1b~m&1{%T+wJn zQSp|}7utHk>oV+amTYBpLfRrF*H;{ZBKW57@AHqG)xC7Pc=;*T_J|=yWcfrY+YMY5&Ov=jWW+IYrbA*8W1T zKy0fwt3RsSF)8nKWuNlI#DV4Pk8jjNx-2?(yX{>_5-fCcSQi^FIKQ#~`p`4oqWFZt zPc(uePnj22{(XGI9DTahL_vJYIFExFU!!O?WxfxzPeZ!+}$B(km3+Z~UrX!~*DtdB- zFRnK3*J^F)>DBJs{fv2WF_vkuZNY2WWv9%?o@n9r$k5FEftsDW`qS?fGhDvCy4-R< zzwVb>%Da6F)pwsS9$nKcw%%cu!do76x@p&zYqK8L|Gq7vm~XflJ1S|!SrI>}b=>{> z4(HA^@k6$nBC}1QvWgi(3Z)6Oe|U>}9bGOxvyKp9!PifC859@X^VszIZu(Tw_3oRj zQiw1x%8AxYuF|dh+@GJAn)PgddJe1F>K;l8zk1P%ey-R3%5Gh&{6~i(q@Oph1w1^b z%-`MZB`-+n^zK)m@4$zwcb+}XKV8bWY0f(Q`uV7-z9K`gWuy0+^20hNnwv##oRk$q z3Ag20Z2mshIefUcW?*^x`1`+6-+yZ!|5dlsOeg%Ni_W2vYyCpOX6C1;dYfgv`r6(s z+@m%B?R6SPpI`T6L*3{DCRGOVt#g67(^oCy-+@G|zm|U=9 z{+*To^uK!vw6@!)&*+#RwRtw^+MB&k+9i1^;@c1%)j|?~{Fy8dhaN_+w_Q}#logj# zgA$3NDK7>X)2Js8%>7Nf7Pd#`k?es_kGl>72`ji1!jV-=|y zsUZd$E(1QtTqMP}OgzdE+|>~q?fqcAyLBA`LHFo#u;=zSB+R^1R~w+*nb5KBF#_Qzw(Lrc?@7KM+!{JGi@ z!J=rDy6ubI<=b1!-lV-aFi~!KzW4d#vt8%dwL{vjdN5LCX=$5G2OAbEpr(|#OXmH| zm7?hMKm)FMd_&m^1&w4U*V%6`e!Ns3>@kWc-L+#qsJ&nALxi%}nl1Z6ia_DBg^Mm0 z#RFR@dL1o}?Ob_VIDqY)q>*019{Ql`_>q|yzv{>CH+x(-2VI7=b^DrSWi&)12b8t> zE!NAZXltelKTbG`$uK!9ERPH{Zn2yd=fqlTSTgl`ee^{7-a{hHi!*Nr7J0{)9&a+( z-%$7Tzj4pLZ*IB=yxOvb($cRUw6}2+4j!@k8+1tM`@oHN?=MOx1jlLmzxzS1x%esb zZc5qd&aE4-BMm*-p!=26(_T^S0KS&du!(} z3HGfr|EURS(=oTE@|N|}hg(?}9Al%Z{Cs<}-PRvG3`!c`wC=AgnI&nxIQ3S)IPsh2 zxQ|hzL4>Rn1SX!d#d&#nD&*d`VV!3zfi7v}EA7H+c{bmn`)TzQK3bkx1Q`b{mO zX@lC@ea^;|F8qQCnPuB~DH3H%CAu4FK3NQ>g&yhGI)AvRwk9Djmr^sAb+2s6fzJ0T zu8(3~io`TFR<0E=hqu|@)cB#wY3qY@}egW4!+b>*y%;h4ix4wN8Pf0pm8@JN~bDM%{~2ed4qE-pLPuzd09wSneX2m`L;@3&E4f4{wBxg`s$j5 zwC>tyB#G8PZgFh2s$5hIwY95@kB2Bmr6ThieCJw#&ox%y=hB)*wV2>!Yl{E z6^-K^?ld(xuRM;RWAbNaDqZO{wcc_e{REv&27`9ggL2IQjqWebL9UlB8W%h}a=dAu zMyvXRL|sY8!zXDZnJ)Yo;q>d?{we3s0eS50dUJm1Tl^aZujM=1-?irpHA!)xzb{?< z{%Zw2RiTu0NJM~NfxM8G$kuDK6%=Q6qbAt7%Zqlqe+>({buTV1%PuXShWc3gdbjOR ztJdjc&C2d}W|Pp(kpaJ*ghaP_n15oO?&rx2kGi6L_d|>-M`L}3^bW&0C&&94(NtUK z`Gj6&*L19KpnKt6x1q6AlVKBZ|M$M9b365|TS8eG3aU<&3zmF)Uj>~$lx49qYG_xW zflKfgriY=L2Hu?Yvwk8C_j2U}@LV?+Ub}OVPfl4+*i$X|bWn+@?scmRG+E4TVqZG9 zC+e5>S(&61s>N&ZPK@8Vbn}|ZA>jy=a`I2oUTsC&dVpRf#PG7OPaf~&c@=q=!ebsG zg|Zfln|LZZx8p$6Y*3*Oec|^|!Hu4hwRiMB?R43%qJq2fd^(1yHEuZFeSRFKzV=VA z!z4xRfOlp~MtF6^&i=oHtbCD?6%7@e2V`$EnAz{}RrdG!%4?_Q|84a@Ud~Kr8j9BY zXILku?-^Zo_ltLHqW0auKVL}yP(Fn1Swczt9zE@$9LWQ6Ij>|VgU-ckrH7!udfzc7 z9Th<>W6Bix=hta9nX}TY&*C)F<XfLr!q3K&f06sR^Q^i*l{^7GiSrdn*UubL+|cHZ{w@> zur!IpbTavdH}1Pv%BLy2^;!20k2;@pI!1x``{Y0EJ*#k_Q}GXphSLZ)y?dAGt`*>%XRKHNJ%zZwR&3@-5sXuRQ-(J)+GP|?u_*AC4hVG+p=^Y`;bM(_=8<;kF zB(X#!6r^lFvC#VKMvkvuaUSxtjL|;AdL(*3L58tyQpY0wsy*0x<_t)7s{qBk1A}<}e_p{J2Y4({} z2P?_0F!WDSh%)Wf`rfivM07`&cy&U-@UY_tDd`NFxqAkcsZ{ywUk@Y%{5BG3IcrE``6fy)PAOepQ;!y{;QM6W z`Ce9!+&yQC-AuzXcIh{X#c8EGCck4G`JHWKXyN?q?(U78KM!;?a=jSVvCIj#gP zwH+7aRwTZ6Z7fQu70Sx0X%62y8GO!1KmJZ}A-@3Ca%E5V_9wOXh0@a%^bL4i>I8Vp z^QP`H{oiAS{Xf$i9?i9Tc&*wrvbA*an0%h+(yH<;Def0PqvXMPd!N0LsnrjQCCn^l z0v5mW^L*cy@hDH&h8k$x->4@nZJ4${^~cA35+6nBWv4idQylID+`q;5gr(2XQ`7vT#d9qQl_O94`;i1-_G#;G#Mq;77#qT!ATo~xG6TMy#Y#^K! zttD3LDsH&d`NqA6(MO+#i=ZtZP_#H^581Y7TSGj^6T_(dz=qjJvitJ4x^5jNdL9_-F2JWP}vf%AmF` z&r5Eu<*#8~9O}$wwh!3WDu2DsrHYfgZcOQ^=BIGUjcu;x7VFH^y}SFL{yP~SeLqo; z?byGq&u+}2e_C3WseMl)J7xBT$=1L!h>j}2#+IAWzt_y>{>$1kd=Wd}EAlFc)0~xl z_Vhnm7Uv8RoOO?`q|>I^*`bVAZBjD~bozTYFC1du=jIOJr|#94 z?K831o=o>4OQf!&gk$A-=vNE9!|ffMk4snkjIa9NQegTte5JCe`XX~nOU3&tM$?}j zy;qI>FTLeR{gc&uYWUTTty3aq0x7H$eH*=Or*63g=?A~8rS{|TF7>CyCk@pxprc{B z;L~}u0w>_M00A>y?f&am5A$Z58AWB#+&U_KTBNn?EOSe1zoX0UuZ@idI=Z;-#r!m~ zwDZ0%K=oBr*-286{Xzb>FODCLlx0IVGnK3ysQt-~^IGfBq2Bfg)s;}@hiFjbrp#E! zhN)ysO~c#T2Gn(Se|mjT_}qi9l~NYwMm`c(yGM;h@4X39I&jTaghyAz*xqW>!E{PZ zQDqHH-7Q=y?2DJXs;VmJBere(kSX>)e)3R~cDPAk@s16dod(;a3lo^v&5}uoPq6Ugv)uUIB!*46g9kej$hbrU~ z9>riiDyw~Q`*rNgtZ0oC`{>MlM=sr{-8O%>j6`NMI$plUpb?1pU$KkCX$qmMYttcT#K0 zhHJI(t|{|uuSw!9RWCMduW#V^>r2D){R*{gE~_6)VeY%eiUXb5d*PlW--c5-iZ-x zXXbw0Pi@*=xXn36< zBwq82Ud`v$vC|2uZrR#G;eMZ*>YAetZ7Oa&u)k?nmdg{XkRyF2m-f5F1SnWXOnb-6 z+)939v1hvuE5qe)SA}< zByzo=WPJO+p^25BMM`?l<6u*XF;>>WyL$|RFWq3HsG7JIAabB6n``M`aaCs%>$cwl zW;?_C>`V@yueLbV{oUEVUGJ%hYuc{cF@=qt@2HP{61-9w?IRXAHSnO4=S5ELfzx{0 z`_9*zn|vN~J#=_%`q;!MjuqdFGDZa%J2t$U1ZMAp9b={)(WiLzSn!a!QPg8WYU#AD z|Abli7X@XgSc2xGhB&?N22US|7~T6ig)x;bFGprC<$QpEkIWmBm<;jbA7901r#@JD zDiX8*L+y0artebqeQ4E}kKd!W7$NIigq=O)qJiIg-LH;WiZVuB`Zjm;PRJfm9|mVa z>1-pCD=tdAZk8b!zk6W(q36QBsl1?YTK8_g-|_32bXe zUcoJ0Oat-WbcsJozqB>8-Qtz#57>f@MQ>%hLtI5PN^u^D-93OEljqLu6ex9+I9NA% zhu-I?wA`loBn=u#O@`>_v{=UI@Kk4K&&Iuy-OA4x{=J2_D2>9)GKu%CmJI0I?_2XX zdN*Gl-jsfEhxJhMqUce|k>B4(Zu&ixIpgM9`M!#dF?aJ(ZEfl3$G#rc^_S*9XPw_< zl$pBY{<~Wh@4ssPd~{hOcy&xzIwpF1w7+nz>&q^R!gJ0s^&e~dny#aLAALA~;OkGO z)fjzlmIa@_9!@b#7fRc%qb@CGELK}w`WK|s2c zk`NG4Lg@wtC8fJlDNzYUNfD5i?hXOzMq0WhCGS}0z2Eoe>bw7(5}OD?zPOWeF{wo{ZhN|>5jK#wA}G>e3zfqWrB$-B~G z5vEV46?2bl2)-3J$`f(5DJnvI3T=G9T&An(v#l>qHMdNF{pb}4(6?q4^;krS;LY31vkF@xsa6Cc{v74Hly5)Rxon7+^K;|`sD>a4}b2?W(;*K zS=Nl4miladWaRT17v zUwiMC#w!pDsE~75O)ATMs3B?V;JnPn8nHpBccHmg?@MEZO3Jy`ZJbxBmGW}%;lUE} zVL}(YA(9%JBwW$qKujj*9GUAkyR^}JSD9u)uL2h?mZOxkl{xQs33t5p|Nr~{{xO{% zW^?aEYF3gkd^62)@BDvXNr=^~qEVM54AOBGR}P;59qM1N3jBu_z~KGc>o&8W!XUW@ z(fTXb>r6~531zA@$QkS3UyhgYkw^c>D}~b^p5ULafv57fMKJ#U@ow$iOj1WD3V47F zyg7yc^;@`E0iyq}R|Wn(Gc%vRe|qMefy#LN=~JlAFlM2mjLd))bnZW%1>Roar6L0p zsDHimu>5EL{yWIK86B@3S|kD0@e;UAzkdBfp#Wpg16rYg*U9JmCjIwsz5QAB z_;4U_nV*&O#*K@B>S+LCF$x9i2^0fqCObcHADRIL28g7r4$Hsy6Y{PKWpZIsSyh!N z5PN7aF)?4**)@PJGf0^eg~%|0xvwF>o53K01MsB20C%ki#~%%?|E+hW%p^gl@t{^k zS=k3@;nO*#lYW45X*qMAbj5}*YXn`($n%p$K;F(pI!1%u*1ujWOidNHl|gY8gt!rh zk{lml)N6$_m(A*fX^gec@1|Umb zyeu<2Iy(AQa{rg!Vei#a{#agq>sw)=O&q6)$Q4jNxZU>e#w2kRfS*BF34n!& z02EwlJj@n!!08}tDTnBre}B?G9yQ7nMz~4$U>OZ;x0ygnz=-=^<};o4#ipwRm@#`fQqE=4(i?XF@L{sgM=+Qqpf_8|GvWk;I7)K(8mbCjeu#4M4jUhJVFCy$(Q|Z4K$zfF~RQV2`q7;gmsBORIi( zxb&?Z{MF|xFi4*z~JV_v0 z0f;i3bzNP#g@w=_e|tG}-vYuJ$`I^&Vcs`_08JQh-8D5e4MCxZO2SJNx|(J24RnKv z<1^)-K!fD>nyPfp8!9mcw4VHf2Y0=^#DS7H5Hir zihH(sewKH&5ag!+_HyU|=@Vee{amO49^a>5$=TWXsC){(%}#RK|Pi~DBvu&Fi>?LiGziY?md$vOpoR^pv|&qr(YfV^?I)!&{F-qQ;#Ej^&k!--8uhyb9Pj@tt(tDG%w zfNQ>sj-COs6eT(=U;+Y?0LKo_kobs1>3?&es^iDe{_|53=T5j`E0Lj zJWK#9#Eqpr(3fFlXZH^dmWw|Y1M(v@9~lM3WUnnmhK;Al5LI_|z4i6$*Cf@#daZ%*=ePRaW{XKYhZixEn6`;J^R631ss*2{7FnH`TkBdTaGiFZ|wzB8Y^g87-go zB01C7la1#qVqLe`@8>rZ%@ac|Gsa#yTa+e zOPdQK3)pWEm}m{nQ~mzvc!Q}V_2n5QFg@`=)(oE4!rmL~AW?g-?4ZRbq94kME-o&b z0O9IzHLq4#RkhFhc9eX;m+RuYpjP#_mpOn`pC3YR*#2rG$?+T<94rH=1C-+y1Tq!p zw8G5(o!`HaQ0H+l;S5R&U>QOCn2j6@p9%%&cBAGpK+_w8BE~;++437)AB6!-Z^+}1 z;%_^$0VW&qoAlTpHEVDRl=20TXi8BL84x#-K+3Z4-wa;nVBMHHKNEsPwSBajcNIDa zIHCda%ncB)qGDr%0YG_`fdR!7g##%4UbTN^g$jHydpLna3HE!fK;9vypa=rYB>?}4 zz*C_3Ip*tH z0H9ra{O^e}<5)SfV)B0uRw36cE-VCPXLHOPfay01@^wId4rB}{cz_a`n)~e^@e8>x zy%4B%K=Oi2{A5d-jGVk4WPX5O?hlaU1kZgf&cmQn_`~uA|XrSMMANc| z?E>%{*v5LaOVJwok{}f&XgQLUCH)^}_y0}&y?Rc-XaYq5bRd!_*dEY7LH<7u_U znT`KZ`auv~S;O!7bhzn#9tx#YNu_+(9?+kR0g|8zwn{Y+o(S7$Nk~q)dbE^()}HO< z3Hnd}ee#B6tOCPykG2*psAu$C>6w_0rar^+Ps6}d?O(Z)iHR1meFYxU7Q{gS3jy>G z_EG;`o$C#=BzpJ(cf#385V4VSa3N=wmT+K20P^eRY2+_uKwtX~%P&YV6_@_?vr!uvxn~XndOY2? z?Z9$+<{VaAKuUoLVa1mt&)kPBI5R{{{?XfjS1EzT3d}6%(8zKY|5>Ow3{6dkMn@U` z9x_s{fbiGm8VAxAR0X+&pd`VJ6fWF)pxFjE7suECX#5qL6wX6rhv5Jh)_Cinj|HX= zBOs9xsqe9U7YOCJqobq$jB_Ltkf|_TR&z?Z;YWAZMlV4Lh|prTK=>>*DJiM2 z5bFDh5D0>kE^`F$Vq%P8p@IZJWep9MwfjKU27QmME|JZ;$w@lsv;XCnl7V4B3%>E1 zpu7qhHWa83pkiPG%XwtNBijLRL3Lr_J@~-@_(6TQH%YUq$5pYds|6yae2BD*k7$)$iz9fCNY#lH)F4&TRbnU**=H zR0c$H(LcZ5BI^;LNFZcxpc>7>%1H*Ay&RwI@AFQD@{x)PnvhWGl`lY0mcDy8knq3a z^3(t1!Z2`On|`Y#?hAw~V3i^JIw0mt0`Wo)#GJ8+=)#1iJRWIE{$tS{vSG#h9v@h3 zRYnz1E&+d#_7{>0MPLjA+4(9bC(^!>z#u_NOcX2>8vyt95(H7|8XC~gkA`cx!O-NN zdmauC1~I)e^gvex1Q(f*NdQSL2iY+JaH$FV!$eG0j~A*|F_2j7J?vwhXxuf zNC|1rcOOQy-~Y57J_}3w>X(Aj(pI4JZ~s|LTxHc5_>eq8#n~dx{Z>0!QYF;y$nqWk zg291+`qBOip5MNj%(9Z6g1=Y!boTG98`>-ZCh67+c`>Vbo1}_#7wvqnqA{lPC2x5d zRWhMpjOm=@UoF1q5liB`OH(d|5-8u`k`AmojEHc}D-`7SE6ltl!$k6?LqU0%xz^f^ zFH`)e?W2*&voLeltFsEYun~_|Ab$alFt()1zB$rviY5a<^g_h%MT@8YC<_rN z5M(GR84ADApbTxEptC%(&)H?mc&)Af%G`C1mi9n@!Q2$>%2g9MJBrd(M^F2@o+%AS zG8eSR>zg~#Neig{2&k3mzKf)G?YLFK!!HZq8^FCQ1B41NiDbirlTMS&#yoB!!u6vA zG-}}l!tsgza3q29iA)nv+#@K`@6S+XC@8{t<#ZOY(eS+!-|71GjJF+8x~hE}0bCJZ zOmT_|{WELCzp=BwxFKP%N`pNzRzKW=1*jD;5_doh_-KZ8$oBh_-jEtW7ycxUQL`IQRRdZGnF{lRck*#m}K{W|gQgA8;O{by? zmyMLdy^FjG9cU=)7>aye!9KSKaE|dS<;{3ammkgAw3P`)xvKB|@;_}^*`)i+tILcs z3n&&mK7PR)uhmswy?fI)e*2-u^sF(#BR=Vzb=*MG<>!IV%vH@TOTP*F`uhjA2$K6` zhZzqHW_GyQ<6S*G`VM5Zu&?cIpFfi&75(a}+1w{w$S)DRYhrSVm-kiD6-p<4{ZKWU_uhR{wa|`syY3Yf5Yj3w%akN&C$>-&jQIp2# zQ)mxZ&yAtjDlYVWStE{{WkLKlHu3`~wMyo-YO>um5Hi!ed^x%73)bQ{``(_f9QNFN zca!{SI|=ZWRdqt+s-zw}?0oCIql6B}gH%iRUhC+&PTVf9F1U!Ey>4h>>34Mf7B5>n ziGeEXfEourK8ZPtKY&Bns8^yMYlp3UeI?SKSe#69)c(t9KyaHwb6%=5rGjM4n<|hod8RlsIHfU0vfHIRS#u)~Q%rlJ)qG!t;yfI)i)R zX{v{sIvB)^#YHlyv@fzevU5lbEwIUb${M6T$Cm2$yD^bS(a=mATcf2ZybSwo$4o}< zxO$P$(=vO;#010hCEahfEMgtyjP23Vg{M}SeEucllHZ%J0SJ%8&hjHQtQono z4qj+quh`T+V5fLVyuj)onufVD|3EnLtv?J@quQ4>WMWTvN8ZOJsZWM9r5NjGW>l@u zO{|LE%rP{|a3!QBS744NOTCvlps;CTMexYeGu&zqcE#9k_(JiT7ft}ji{Yn^zpukp zQ~L*#opq?0hh5x!+;@N*#QAGMYLd;SYheLSZUdpyUYVN{>$#XsMY(@UD_}f%>Xa`e z6sVhA7u|>3v`8+MJa863kVbkqGG3(T^jPg`Z3?w%5EhQDlTXh3i{{kSuT_=(vin5X zJ2=AdfvbA)I@VF!&Af)RY|-$|w^_xQCp4Bu4ABg!W%%2!flCV$bot!e0rBrKo0v#c z+sC<_Wl*9wv!_j-V(@ulyc-;5EYFrn^AjF zL?RQybwfs>ykg?1$uoQn`%poHx9a+@+FOD|Zf{g~PL5oFz@f~l2BaO?)NiMPd8KIr zCplJuM^6=PeOqqr7k~53iw^IJC4Hpp(&)9YN`i({;^+ex0c?wt>=*7Sb=Q}Ld_KWm zw{X=oDdXon)MOKRp4Z`)IP870(lE&suJLxjnA9AwuH{bR)Hy2u+7WZ|l})#-PqoBF zTc`f#^w>8QJ)!4WmQ|NqRBs$r2sc7xx+@?c?0mOS&(y};@6Pdpc#C$^0;SWjxNN2j zku@(n)yjQkT@`=7H>;&)y0jcK^Okth7#DHxXOYAvL;H}=i>3NbZHTG# zaDVj$sTj}CC+gh1uTzS?QMe9Q#Rg_Fx*gqW98sqK(;OZ0@ViwZ#|9_-UH2pfouE2E zCEIc`WGt;`9P=(>yrgT;rD5a~l9qmSN%fUNlp z!$~nV@2RbI`71T`^n~mc6pH!-nLOu>nw&)q2;5>%dCRmklO9e6;JKEw=32R)nQ}y@ z1p8yqz_~Vi?A3zLRHNk1`?Te;%P(aB<`~ zKW1Z&h9C!MUi6&x8B23Q*m(ZRQ{Z4Wtp zU{+-Yl89n_GGZ_EQO%U9k5>KM@z}E>qW6hac0RKF7x5b+6_j4*|N0ai5SFErg2`@VXs4+yJ&T6mc(mual98q4w@-?%|Q+ zWNxRj0Xmo5`dL`RZ*#Jk($lbxJ8Y6ZSzM%4ltwxpy4yiBsqHpU)T@`$9z$C%+q| zq87A7`eXZc?iUK2{BOZgGJZv`RGVTbe)bj;UwSFt0H{5{$23%!e`GK7!%9OZjiNeJ zcY6J*SvxP&((;b>(*s(iJ2DqgAPIrU+EH+5`ozUiA%x=w7vaIdV>?i-+5)kW#^&ZU zzCwlnyGF4lBOV?D67$#XW0B1&e>ky4JZqgrbS~8W7@;?LYCmH^@wJ#MU66pp^-7dB zZBD^NeGkE-k1=(_+379&RTYZ5nGb@3pA)a)7j?TDoszG8Kfbsfy=Z+S5~{zrwL=Ce z4(w-^T+iEDC#w=k^lZ^l#82oVMsp+UHI0YZlrE3Noe8%8y1T^b!I885;+X`#lT&c0 z*8Rn2K*W(~)oWN~Au<;jvkDI@_|k3INq`ghIb7D+Jwoq$6MVw7O@W;o(4o8ayDkc+ z`0aB`B~JGLaO2}HTRqwLGMf@_Y`bi<>GNk+$hH1>=4``3h%3#7&7w(Fbm0=j-I>7D z<9s18tr1g;Ct;LFM6LK!3_13L8Oqad`rH&k%eC0}pBLO9uHXh!0L z?e9LbJ&93_mG=2vblu=jbS$@Z%F6(lbJ-bSw7eH$E%ZQR-q<=K@5=)@*lf??o$o4IuiuB?Is+2JNsc5Pir-D@!PKGwaqPtuM#B^sJMx11O=&|ul%y}aGwzs z7kB(NfgLi;+w*q%JFHTbH^sSM7k!Ke%;D5WiQww*_gsvYUf@^W?ohC(B)zoV5+%+0 zwY)HC*!^XB4O-0plK;yDudPB=B3T=!+gw+OHpdwqs0=Jp(&;BJi|fygh27+=+y5oZ zfrIOx9vCfqROqU)wUF6ZrWxma-_?Pir!f>G$mD}kQp^6wuL^N1tAMWztVz(X%!|Ci zR`<=*+aZ3si~-x7V|5C9#yXd}9?jA2R*kqLAw9iFX4K>zrus*XKw#PArcw~tl*3I^ zo%>jt_K>r6k>%ms&LuPJ+mVgcV%sNe$xuiQj(9N(&~DPcYHGS8Av#hjq)5Pzt^1iG zcKVaFoGt6M(=U;Zc{@Zen%HeR`*2@az!opsl(+o_Z%Yw8sQ0SQ7EYH)R>n-nzFfyl z;WSODc^JXicv8Hdcq{sqlK5EgNA{;yRTWm%ZtjLHYhE}PZG8jN3i7KfD(I#>?Jo!p zeTfq;XUVqW_g7glzf$17c-P~6f@EOWF%f$O3VuFmf1WHeZm3iRa^t~nMzmy|iEu6kvw=Mu>uQ`6>9c=&8@WgN^;U~TOh~sDB!X2`?T_E0{j})Z-763-qrC2p zT{ktRo=WG!C_%}-Z#5iuVwhhjGDJWXL^nK8ipEe{L7Hw?IP=Ur$oHYO_Hioi&ep>B zM&Y;4^D)1lnLY7ygieg{&TrWVR2M7nGrsQ}e&=k`h^XN&JIg+7E`7E6;(= zXl5xoDegg*=I97iVfI2PzkJg+L*Wk=3)|ggE*^HXWHI~e;kS~-ipE}1+V5;_Vg!>! zJ6kvoxN9k4Ul#u)O5U|Fc4-B52dei;F}jxzV!6;zSmhNn{ukdGnx)V_v*lA*UCG}_ zJRM2=VAr3=!^d4$=pSUL(#@T7aJ1WbL$|G?@yO_E&*BF!l|a>(IR!k2O20@RJEl&T z5u0I)^4YRBR2QxKqzM!sZYGOTr*~jMl zH>z?@mqsb^{2Hb$zqoSc*qAqL49Gkd z95P9XrGIk$!~DZfx)BDKQnn}Gx9KEQS!M?l!9XRnxo;7^elM;0MQMJOwP!(1=0%An zU4(r3vyW#}jquACO+HKF>sW{Nzdjg-r>szW*skCUCRAqh#@bjL`lJUF)%#6;=+;-T zSbf2C^^&Ka-dIlJVTfe5!H2d;OW$8^Gm|U$9v8Qvt^tQly zfE#~%x5sTgx9mcd>$H67iV1&Dtl>hNvLY234!wqm{I#2&j^DNJx-9t9YS)`ppXlYA z*5h1o5q@TA^UShgUpjVsc}Sk0UohD_L`2{F32Anx&dTI+`8Ah)e~GAQZ~IgFBULd) zdXiT!{n2MuO|ehatxk(Rl8PSJ6FwdkoZiL`G8*Il@h!Kkih9aY;-v(kUd?iMYE~T0 zY-DjNc4M3VSV<@yn%?4YxnXv71oYzu&uy6o%g;?_f) zQ_|KIaKXc6g_#b2HLzUF?T*_6@3XWM(JI?RZq8rxlTKcn0x?)YE?+NT;MTyy{Zj4;G(HbV{nD_HM@JjTvX2) zwPO#k1vI|0Gw=!e&p3|JJl%8DboQX%f5JRrm$2ywMQYW_58lJTl3gNowSn1w%F@}k zu2AjePokFF?WG+v3t1CWBQYP^Z=d{`P_aC7k@)aSNMnlPr3{sL4(0XED>zfi8dUKm z9}D03;d&elJq(B>Y}v}JF47-|!nZnJX(rg&DY>S^y(kS9!XCGcaDyt{OKxf5CvBLC zzD{_>vcFDoT~5VbX_s%*TXQIPV-5n2hK3W?Yx*;6X%FAMF zwE13bIJ?e6H2EHx4D{#XPE<(3|2BmR7sN%8J=U1>=VQsgRdO80Nc_^r%rvrYEjgLm zv0!NS8*cu>jzr+JFszK&ukW}1jH)&?{j7B`;>t#0upu6(B`vjGx0S#xIAAGsV#`5I zzZo)slTb;*^r^BW!1^A8T!m#$TvACuq{?l(Q+3u+j@w7EV`Lx1Pn$IQNtoT{S_5#Ya*m3dd02MY8_Ydd1lbXLvDW|p`kQh_wf#ll=Q~_;q`s(tDR-YD;ZO@ z%laEa)Ya?!$FY6v_qR6!uZFZKHsx@?k>7S0QRcX~hLKq|@2)zk83_~zjy-}r5l+s$ zFQk#QqrP}|C(Ia=gyVOIlvO;+_CXctM1;uYhIiV2$-M zBtwTJ^YOu1ktk@HA?`TIOV^2VZPY;<0(Ygb;3Tqu)(KytkX!WE-fx2b)2LI-u6Jhy zs4X6XX8(j$26Bt;GUq}jJE7TUy@@E)Rk2GU3{p8M>yl>=WfL?v_Fl;*jTaM=pG18A z%9_3Fn)>4ub8qy}X7*9(rzxF+Kf69xSSm0kDTYRPOc*=IVy;{Z*02Z{GgYd0!zX0atA2#rxX+3W4+DTr6xo4*MDF;PTt`2^jy>0W%xKo6>vj?m3t zTZgCG?_E2zowVGwtNC+}Vr=KvzTQY;96sJv>4A>;F+K8yN?Ct(P86s|x@iQfhLs;WeY*(*(T8{3^#IrXQ&j*?bnsim6ElsrUL`3MQsRb_% zS<9*#(|uMIi~B&GQt_qc$9uEjaGW~!yzYwBxoa%*bMMo=WE~w_yB!h*^xf|^R<4KN zGvO|c-TzGaL&3tFXLl~ISY6qHo3D8?`hJn0n2oHe5zoT;?iIF`RU_u;I!y!m`C_Zs zr>0m~htFp$FLcn1xunOx)lqr*N8&VyhBiB5;8}lxl}e^&SYmpoq<4A=#yzxY#Yys? z=ZmJOm7~-B%XqmWNsF>jf(+4xAr(Gq#Vzu2cJQ~O3c;+l1Pb*-$FZM+*!5GdfRzw7 z_Iv%mw#@3+`(*n(ZxU7~ZGs0@q2cxR#|JY9G(Rtie9V%wH)!k=7YOiC!JecPj2ip4bdMjMocXR-7ZTkNbI~EpDvyx zz?xSaee8te8$6}-@ukYfq_ab3z#FE{@jvXKZ<549THjZPQ~cn!lSY(#$^lCBlK5^! z#6=Vr-9%*K+-)cB#G)#bV{yx{@B;TyrjbboO?NY0^r16yH1dJ0f>T~^LeXrST1zya zKN9Cbe4`oz>%5ub?RovJWiW#RZcqNKJ1F_3rfziBUAz3mk$JT&qPh)g+lj#gBNv-Q zr~W6uVvM`+rtoSb>8X5#=stN&9E2-%w+6>YPKQ#CZ}@kz=Qi!8*9IwI#!;&eZ2F61V;j4=bh%F> zRx*{WCc?!EDlQI1=`2~Nv`1clP)~MVQrpdSx+5egXV9|vDBY+ka^G-CC+%@2_u}x) z5YD#X=0PVdPm%R+v2tNeefrfl$C^+eE3HiiR^KQUB!Ljs0nM2ec1?9H;fw)@wR!Oy znh&w)j*g*vCKDEQ4;+&5FJ=46O0;uu@(Su6{9R`5w=1bB1vNkJUE6DRJ2YKW#CI+) zta%1!9xune@7TG1r>*V|zfk?9(svUpNY$fa^Omr?IW{XBnS$soSB$<{?S$nI+EjBL z7+iH@XG7!nW0k%bp3Wk2G=9FxWU^ndGT8D0Q|=vqys62DhBvHOHg8fCLzfu3xZn}C z@+!jSeyhZ|m-qU_R`20=;J3V(3qW~=hSu9-?*ns)RHD1gz+yHuUX3MoF8R|q@Cj_6#WJN;xz^f2x!q1Oq3CB#K3ssYLK(3Uo^BRdW>j&Qjo#_KYDOi0 z?QpALd5Jzr%yr^NJ9|#k?*ngX>wDK=&znP$ptolvU<_;B={<1et|Z1|KT6$iy)+-I zE@?X9uHOn00ck8A`!NE}n#+lI6PrXR2QKYW-T%xTBd;>l) ze9V0ARGmdOEpiYJo&@3mukPx?MW7TtqYAbTHq`6fa&rfOfMSLnPyn0(FM-(Llk16i zEO}e@gFDex_&Yy`pIvBbZfQvY92>Z%kn~}!JhcY%iKw@4G2l!V;9rtCIb0 ztC%{{ESmCzLl-YY0E*LxhK3!u-cs;VjjI0+8D@3`$T_Q?lp zQ7!lI5?6q{2mlAbnci21$=5%b-Exms<>$zrnW6#Rm{kMaIzM6ACJp+@3 zfl}-t;uR#zAS)?}21>}&)6*!hTrqlX4Cb}q&H>np2EfoHB&=ZLw5WQX@Xn*HJy2@l zrgWydKe#ASTt%jHDRtYk6LY}eQ$hE51NA1p#d4c^=3@lRz)X4(Bu$eG@a>F@l82^P zqT~(j9m#XH>1t@{$M^#JcxRz`LG`gLv|9$z3}U!ACWt*ehN!LAeTQ?{~V z4n~1@IAa@ITd|#-#)vop%Y!(718lr*P;KItnaPtd&jYUd_f_mT&X(^B)}L5Yc!iWF z@vtAvPU};n*$M~c76=r3S~{}y``tve*Do}| zrOBT^UobT_2)+;+(2}I3LwU^esE6N zy&2^-L$xvEdq>1^@jcYn$-537jvLu6ohe*|S8_>+HK3=!z~=%MR>PR~@yru&Z~5UD}?4K*oOoK{WA{zaybT<3a2VG?=T%Th$3B+RT@9%?RC)L^-A*htda_52K1(EE7 zA-C|HoSVDa1l$&umNH{JhL<>RZo>?P_Uy9zRALqT)W7V{L&C0i&QG#opfD*3QnQ6{Q+4-fTBJj>$jWUGZm@8*03Kk8*s< z7FHYE+i}5>I$w}SmWz_*W7mL(@cvO#uhbpg9SaT)4*qsNIJZG&O>}hq_&6MF9FC69 z{_KxrOiscj2q1x<+89{PrygIHiAlJM>{Qo{o<0 zMODRY^xME&lX1dWL{@+19*XC>H!zq9!Cj1vX+Ks|Lr|^81ynN;ocV(MQqMhUP5)ry zq1ghS1Zj)5HXmRY0lP_{o#Kw(xzfXjLDkh_0N!Vy2nCMhR{hd-koI z4hX2M9iGfy1~34Ivc$VnmrgR6eITL-+_5BJG*M4Q0z{R+geSkc+-kwgy$5nOi4-6KO_TI&w*5;XGyhRmfN9Dxev}==ehCD>5XJ7g9`&p&-L~(|-IQE2uu?lz2m|8FuXX0d2)!qtKNPz~F{LlgQZ)Wa z@yC`|*1b}I@`JbB1(;4C{2V?=_*BNpoP`P;5=);+1n$RJh99#G-W7g3H!YNGa3Q{E<9FOZx|k?EGhYrg;vCQ<@Dqv!0nz-I4z;*7ID}7 zqT%QG*cT_T_BH0oX?z6)?IkT)0rzCNHMdK9Gb$#*)%v>el|}ZOA@9_D(E1Vy;AoUs?Pi zYiD~AeSL7)2T2eE4j!II9GnY9MIHLoVp3Nbax*e;?%lh$zR&X|J^iYLgh63s?@xT2 zhcuzhIz=q0E9U5;G(|v6S@rv|ewm2HqD(~lDqkL%AjNf;=cB@mIjWg504!r;W8=?F zy`%IVMzFnJ)7TibY9?7k$%4!A%ja881-|iX=BKGOB*ES3hI6@m@*OG$T>4#t+Hj*& zfeR;SJvbp9?d=VK2IglSJ|xT+ zRPoNmj2;{z|KyVwnJBH5b6dW#vj?@=odC&&60GUIeq}?3TPhK?a$-01WRBO8vuT)| z14P1i&g;2#uZ2Wj8hd)l^OPTb794tC%rsyE*l*_jbBpHYX8C*fdY{2*eY1=6$%T&< zZ^C~cMI?G;U43vs*axHH*|R%}iuf=#A+!eCnS~T$s~=E@t=}ks44^Y#4T{=5=R`%j zJE1a6h}ipa!y1jP>4pg+|H5?~vxqL2`*|)tu2A^HTSiNFCd(w~B}jgtPzrvE7}&uv zHLWFMz6hT4tCu?aP$R3xCLz(Q{SV7$P zhK;dpnH-GSv6BcY`R)C0-{ZDd4l;5#kFt1k%j;ce;pss@OP=+nUujw~bef~108}i! zBO^FAHa0VEmN!{gu;0Ibk8|-N$wsLErwQ9>-=}4&YQDY?Z!Z3E&=-V?)F-4U<{}Zr zg}~=fXhsf$bqjgRIZ9|)Nvvfeea;^O8nGM^#9j#X;2A8oC^Mx1Ta>Yz$kV%@BJZUS*B~(FrPksO6}N!fp~xy{Xlg`v;r;Rz!`Gd(?u8Xo z=EX8HfWnOv_jEHe^A8C*3tqBb*?kCDs#a%* zN9J9!!}=AaQ(l#+XW5nQ_4(JP=Yho)3>N5!MlZO2AoT=PYv`z@m%H3ePHb2sVZko} z&7Jr4YXcZtAdqkH0wM#EMEUy`%S~=TRz`RiqI(065JNIBLwy}L^6h6?sTL6<10hN= zje_cl$i;3f4_upmI+PE0M{>S^GLc(!$2>x%K(>g%4iBnS6eXu_&rv*h;Bb2!zJNK; zc#bkm_C78YpS+K5rR|q;cDm^eKnhGS3W^hRFUg zu(c4Rug6wBwv;wN_<=BW8O-p&5KW959Fd^@z&U1dIl@J=MNNZPHUdCM&?0K+{bjDK zq$$j-A);+>XGcs&7XkSNaj-z1N#XvWzX6!i&Va4z_T1W9*ztzN`=^~_8FLyc%g+RZ zTJmiKTwFldKEJ3az~3LE=IqGAsB&$kQHu!gzLAcD13wtP7l09~C~#|EI65|iy=y?% z3#f>|yaVxCbUFL8*b8JApw&d_<(25`cOA666EasVVAVBid3fhi*>Nl20%yPoh~7C&C&o7tO~`6zJZ*GkZz}5umG4`u&@7qX1Z_&jRk& z8wuaG!IUj`MN^&@c1*BLrk>%3kwTd8nrDN zbG<)dj+AUC}G>1VA z4Vbnz7CrChznusEr3lFc{IaM4hkpl-Li+j#F`hItkx=Yjtn81>>K`2|_GpEXJGNkU z0(1$S=T%kf$?562cwh+y7Vbdfy)Tcz&l!PB)BtQ>2pVBX0DujQdT<5h_mkGaZbG{g zsjN|TvZ4rp4NHLCGDd~W^qQB9BZNk%KnMv5ssEt+z|l=3ELy<5rTN>_j%gU=5IPJ- zB-|8nEZ4^pX$!NqY#hU%nwq8n@3z5n8?t|c`1|*!b<+dWsIcEwmxYgktS5E-tr55b zHI%?|1R*8E45}~e7RLiy8Q@Nx_qrs)V7lW;5Q(?dJe0PxwN>YZLIGN}6Q6*h51F&z zx>g6X0}`%35Sk@NGz<(PfyQG5p5VwNAt5IA0h*C2Ye$fqd)@fLQK6bMW=_X9uo4p@6ZFjLRuB z6aNMY@P}c9Qez}%=M^$N&|pH}8XAd_%m-38I8wn>>cFtPFMZWTQwz5?HahzGgxsf( zAGvK37N$k-h@pjp6CChR_)EHR@JZ2UQFZ<8)ZO@WeiNY-jmzeL%2RA4mJDbO-ve_M z4Fk&%OqJrmQxFkQpH=r2gADM(-oEi_q$tzCUG381*xeOJclsW&rq+@)3B)D}ZVaKq zsb_1VfmdP`aQqw23TniueogW!&w!_gb>Z4Ekp0mzR&l|_6bZ+4uD?i<6Z+hUAFV=* zEUm8v5Inj*J3h)6u(Ruub<_$5hKSb@=zB1Tiqe3%d%(BButT7oUazXE+FC2@Mx0U+ zatSv#0tPOW+VD`H>AG$quyqa)w-*i$1H#xj9dtleq0zytKZnety$k{s_D1J$BslZy z*XM#-$59ijC(IX`(0mFWzgkA~9Vy(B>?BYbzAsHn!<{l%SB&WSf_-is;OdAVzk^Yf z^oWLviZA3YgwroII(j4`G$?^8Y0*2c8KHTNg#yY2515#3kC;Rv1oB`IctFf()(m(* z6Fs50x#$8ugxXIL>grZC$YvbRY-~)LCSF4+F3qIddOVWG=v=xKHenHCXs5JixO%3a zyR@E5r<|plxdrAUsbC+3*o%PuRyf$@;pK6$vLc)s9@|+N(W9kQFq3NldST#cWVrdV z+;Y420S~C8oCj7`iU7He+sos=ahAhx*Rc@9Koq?<1( ziTc8n1^V)xR0H9rE=ima43sn8{p@uSs^d)qHX1WmNQEIuuv-Vtyv=K)h1+!)M20YN z+PZBnhmlcHWo*;h+1l2F#6iHR`a}{f!Ly;u8adjS*x1ybZ3n3!#dTZ zg+(Ydlga+tC_F9j(*p9n@45i0>zz?tY;gWMP-kSHJ!4I9-?#;o%Q;{pk?lhQG04hx z2ZnjzDQSTwG)V3~&(R;l)f87v$Koy^Mg(c)j6FrVAE~&-TZTN72nYzkc#sV!n(%L^ zJTC5ilBBcVD(uHET6^W8rz2hn^dd;D7uUaqh2a||Ru>=Lju%hC#@`z}$n^6=hq#9g zobo2VZcz*{yiKkd`JkHF1YV+yZ@&{$QnFamj}B`fU1K8csYp!|aMR{yeUZ^hjiEtl z%n7o;4CR&78SIwuN2ID|<^#D3`9>v)Q-0Y0;ZKO<{4{hPp{`Pys&x$nOOeiH)04jLOqo@B#BrY8M-h$-Rg!O)6#(bacJhFbmO08wwg5_ zw}3?$^=^Roa1V9^k?aXnN`!=lSb?+Z5HOQ+(EmKJ_Hy{t-q%BXE>v@^ZWbuT`M^?w z3j?hpOuyvw^9LkI=9dBpE?u7ueqR{iH2M}p zd&QOI;YS}Z3Iiwga3tP=;s(i6Q%_qhnyFgMlF9Kh`wiP4Ln9na6fc76KSuK131d{7SyO{3l;AsWHz{3Om=5<{Nn*Q{DIOD8qATEeUckhB9ySd0 z^tZD55K^Giw}7&b`@EvDFxC{UT8!Ji8E57I#9AnUt_B0IApgfuuj-+9ZImw+pNQ_E zClpF>FNaVU1zLfnk}t#}I2!-OD z+<&c4umH<}1_&)i*4E&-6a=a&_vdVc-F8{Qh%?_|SygnmNBV`6)6mi;y+9!shn2u_ zX(cs0M5p$HAQ}paFN3+4Ma!Ch`^##zj)UBC>#3uv;sn;d)=>)k zpx}$O=b#M*e+5X#NU{Am*~BTRW(Yx(DqF8oJ)>1%xV+hzq-Ad#BtTGg9lcl|sFNXAFjINX&xsh^0l0-OcbcHSRBD}oeQV9sa=nFpk|`ZA_&?yd&PNgXvx8F+HBb8)pIbJ%=L2>&r_l0lR^LfgpB)(-KJ^*-Gb*5BnM5t5ucnos?QhOpJ{J+`Qs%oVuFa=VI;hQ z1xTQBt3#5uz^1H66uZEZaJrF5A^>(RAn`Rnyb*ZrHJpV~aseq71D2q7oSXz_;hFr z@vwo4FC;wtE^Md30U9D~g<2th3Uuvc*~H~N7x&d1cjiXump0j6tU6E~W7B&O+f?sSJp3r^3t~vqP!_eqk_VL$ zTWsywg_yH}k_%|W;ci~h$*w*!(0IZTJzKqflbuc<__y9?e^{WAi~9&|1c-mHmrltd zTj{E*FOGJfSN(2h*M#K_@lQlL<#?l#s9WrS26~eO%;J`omg3v{KS=uXjCRwTRC^{l z3vBVjJ_k~~z}+LaZVV>9E^7s?0l_=q=#4DCqF}QeK9~i&ze6Z%5XbNtPwA)MKz=cr zRa=Y$ra}W~5~Y*W^~Tijnu!jiMs6V-iB$4K!VK*F?hgWZpq?NFd|c4WLxdcli`_xluVuM z?Ea&V;WW2M!Bw>mR!?J!t5zli{aOCkK-ZzbZO{A!$~&ZQpgj!X6bS!>n%mH)Wij@{ z2i%u3DJmsJEb^w2L>uw=k1#yLcDG4O^0bR_k>U#^FkZ*Sg+P5gU3-3-ceJU@nr}YH z<^ft5!mhuWVRH($68wcGU8MgHOV=HUb=$UY4OyYcjM5^N)gm*YrJ?L>ky$7!Gov!1 zB@J6e_A0VRC}fnKEs-rm=677r_x|yI@Ap1Wao@k+b)Dllj`KL3+%CkWcsv-;G5=SK zoiOVC2Mb-bq!XP+>cn?T=#NO_S0AbhHpOHx*%}FJ4qGh31B=~<2AFH@mmde6;$?Z= zud?pi{8j5ckc0>L^@czqv{SKGu>|MfVMvHCU~sZd6-7pt2+ipWJCuUena1-Hnp>Wy zr;8HTl~0wGmNm>S2e?^`^QGULP-aki`iA&kSwuxoCg8zfC@3kxh+vIy!OUZ&hiWbn zJcn70m)%5~i%j-3;Sx$s*BpdP0tIeN{=|s}U!9d&;znD>dP2lv$shR_n7;4F2zUcc zt2wV#bI5y{YiK@+k3foK^jXEkEm0)I0xa!=O$Q*TQc}ZyV!1%Gh?njU_Fh3zkq?$W zU>V8q|8+rq{h&xj56dfj;*6A)`F>)1lBll?F&`AP89(R6ZJMX71l!B5aFxarV$ z?}nEA)3-hxxu*RzV}2__!!CExJsSs0-^IVTd{dng@A=0<>jsuGPyHiIVON)4Vv+?I z2h#AZ@w@S<>>FM8`A905g|fJ6*S66M=Tm?hMC+PbStW_enF4Dd{eaEiQ7tkSj$+Db zsvPxybh5g@c!Ktv8!;b4lT0jY01ct5-Il*FoX9n|Wl^0<9SwMs__b@bVN?{phYd|l zTVS;y-~AZ{^i=P?Z5C3k*XwMAFXT(zUgt_?LBESdnInfd_4)CWEBmRUq7UoNOK%h{ zQ_B@_wE>n$zgEXfUf$uuTh!Fl=5eHb=f-}w&epZPUs_r^R9klCM#1jUvp0<2^x(Ky zyuQ&{v_76c$-JOwmNGQrY*{1jBPnU@nrMk5WZar&xRzWjn85WSD}2I5R?*enNFkTk28Uh_j|CZ z)68KDPpVPT?Y{JEtmEV5ejurnWw2(;Pt$HA77VJYuN$s89~={-I8EF+P2=ED-1_j@ zLS=-s%OnC82`1vUed|ahCU5+CC#kX0($eJMD?oO*lCA<5zjWk;u1T8c*uq+M?H1Y6 z(o$kllmGA6tFgDKW>ylFd5#lG=g$Y#Pb8`e`cfr;vPx7>E=7HPU}oShpf)6g0>g-~ zuQgN4pR}M?5iN;*b6^?YyA0-MQ&Us-0|LC!K`MEeVLR^R^1GxY1p|X9({0A5=Y~=( z+-i{_17KZgh|T8KZ>^hr8Q|t;)m_K~LO93upIFdV2`|91S2#FKvGEgz8r%2nqsL)x z&Ai4$Of8}d9Hk4khE1--pH34yRB90VjP{&*ijLp^JWft2D?@FNFVZvF?s8jCk5^e) zIpsI|_`;xaTfzz~;{tIUb+HpTD)dZ+OPAo}NB)>n~ zuN5QuaF>9@Q2PV5Zl|! zVb$X6pamxeSk#=2)>}uB=E-wkJvm}o1Mi_!Bo+ISTP0lwJf=}zFu}nJE4zDewC0hT z)8S>8++ISJsQbLQqO z(zDs@*)_wbS+%=acJAECx7lwJJ-W_dXXD*mm!9{JVtdWa*RLi%p-E5`+^?0fE?DXh z4Y_V0&PQR?^6F@!#v4H_D?-Te#Iho~v5bler3ap|5uH74XGa!%fa2Fi$_67`<6V=o z?Gs{__8zl_qjL9?O}B-s3O0!gqwCo8cO!fxQGS6ER6-#`sySl$QEH*ok|`d4^cnSB ziO4mk=Q`mv?;*K?Nk=8IeuP;qx!wA!3+ymLp-}M8(v8&qIh7L-UwcJ*4KhTP** zvpqbcF|)ZTuQQ@~F|t%Tfmg`Y{hgHGjgOw3IV0kt(UPi^EFOeXiF6jN zr0pPBbLn(4EOC4PHP4E_eA&DB?x2BSQ{}peXBnetiteZilA_PZ*ckXwO2ZM4h2L>g z@Z2O8LkMW4XnhVZ7?C5Wtaky8ZuN^ zzXCUN3iwxl$H$wL#=2z~1U-EC&=Y7z4Yqg&8fOanT#FgAx2@X*spNoIVvBUbuGO#c{4$sn6 zw^e&z@ydl~o;}njJ0v7H$z8;5<#e>^(PIVf%eS%0emjheQSVotV3K|D@sjveb-GVgSH;W7dv9z?t`|8=E;?OIOT8+j*`{{E%aRm&K>zDt<3K< zr{7=Ec&Dm6aj*U8jV`IJKx&QcB;i0A)M)M9NA40D0^&_f>P(V+IIvl|arn7;HDDO> zsUAfBqOSK^PoMQ|@!vo5H#hd#^yxiSd$oVb152e#9}h!91!ElliqXexm$=0_-`~0o zD0ZKSzjfFK-mF=LHOpIrWmm*U$Hokejmc@C z+oxqHg^7G$4B?&#(finA%k3W9zX;ozGx??Re8A(#98HY=MGaF zb7W2Hj-H93yD}aCCrVh#WvDZsv_vCr#nB+fVr^x$pM=)rk`wsu z46%b%_JuMvKnVijl%BYP;rp_ip~eZ0)fS$F=!K(`NX|40KqWi7jEXaf zUx_gjaVearE}Xdv)13F;91e$0YgdgE{0^9Jsr}6Z%j#4Y;K^rZ0ij<{!}sqeoyO{KV97^o0|XC4PIQ*K(13&=A(}1C z7tSAnPo>J7k@R?JjMP@k5xA~S(Vn*FyKpnd%nDq+4g<1uXR)D1bh+|ot(sP>+1Sh zV2dqqRu*;b7X+dE2W=554{{oGBIsTNwC*q0~3X3Z6PI9r2aF6p?4K} z&{F5k*x}xi8mYwN4jfzFr3B_&2(OK1gH3pz9|t2?h8bYl{!R0@$!ge}=PdPNHX>-M z0GzQ_wcq2tP2=qBeE&gH;a@0@(@~y2$QZq-{<7l4*OaQZj;*P|*J%qoVGV|6gy5XX zSp&1P;!jg_o7WB(2flpC^&q5(YWAu$M0p%Ct~t$?=rcuK{#v2mD2561>c2VkDWX>3?W$o9NA7 z%Fp#Ssvkad=+nD08v|3?gBKUp>qCu`=e!wcEc9ME$_3c2@BF&cF%I=gzmmSXR7V% zbD1De;Xu@oZ;MtHL>HB;@`0esPY;-zn?EO+;J|@ipoGMvao!!<8+W?5UFJIY5!QMH z7>5z*!&AF7(~Z`nEpOkNb!%nGnRI^uwOK!mof=*vpZv4J5 zKTnLX<=fbKc^RR?={-irz@Sj%zU;G%Ab&48Il02#0R>th_fZT8zXkBvqNzv*iesK- zWxav+%mx;`#8e)dF8q6dLxy?(75%=bwkiaDB_H?SSh)F7L)SuWl?W#~IvV$_gB+7Y zWE5>&v*Qhg2dIP*(TMYQetzQ*B-OQ#PQ4awXqtsZnCpD+JtFa4;4n5a@>$+i_uOBj z;zLqe){SnNneomm&p%tE0|m6YY0ue2+)fbq7YA(}9q;-1oz6}?Sn>9K2RlrhMT{#L za&kY&+6Jk9`^JX+=MxzjdC>tLu=I0frktFdq>Ux^qqBOjA9tE<(&+v5iyDf6nh5DD z#%hhJEp_FI`>re;)YZ`u!Lf+Gv7$|)FnFV|u*QKV!f$xannoAu7VWp}ywTc`VqO@k z`y++QbA|W7;513ZtC^17wrWkQ+luwsb4CkHXzzROfF0rwofnCAaq8{|_ElFkerr7Q zUF@cbV9rUQ4(*pNaeb66>!{jXZU_PI9pe@62#Ed3wWL>98GF)BVy=s6uH&Z6^zw>w zq>OIXcgNX(Vgr`HfB!D2tGh6Bd+*-80Jb)RP$WDWZkr|zL%PVJ;*h%44IXh-?#qBS zMBSI1kdozhJTibUtGL_3Av$_`j5l}#UZhz*ZEbBG2rLY~;cUaX)TVoEL=rznr0lz$ z^U?U!ld8HU;&%tCBgIs2xf|QASXq6LCjC=-pYUIZ!KsHPUkQ%6=`M5EdmV4g!!MAQ z#WxZj+svGtduOT%)d?$fu0@mF+*~tYA_aNEU1t(Is1ncEjbYe z-;y*8P2UXN2zmOnC)}~C1RzR+SmAY`elPj0zrWph=ImMDC^uw3P~SBDJJ6rAjulRS z364$c`y5wVM@>!5A$|K0f=<((n+Fdc_B9OAZTgX=vQApHpmt_PZICj&S;BMerr{q2 zRof>LXtir)gM5p0O*%7B0=wb>LKU=ryWXM-q`=?fE(H9_2FNdL@uU&}67rFJkrhf; z0b$_{QLTrCW<0hPm)GcsuYe;UZ~d0NeROj21A?fdpJl1ojgzc6YvH!l*j4ZDLT+hM zs%{=N%ChKgV?)C`fcEH*-_S_WxdXICXQH8UbtawXSYkZkoZJ#~0#!JpR}Zu7pJaTIB)rwJ?J;uFWvC&LlLkR_bMOQd8sip%H(ZfPI|xg zr^)?LATXjmyERmQd~71X-#=n6eY3~ccTYP7k_A+pbs&BMixjio3HkY$wttWzG~Cy_ z3pd`FsPbLu>go~@5@I`W+iiX_n%N9zoEo3uxh!nBv>_?qdA;q&wz^wMaf&8y>lWuG=u0GE z6b%&Q6OI}1XTICD|8sUGIvwyf%qh`JORms+ti`!F2{@1NF&nv$&}eN+4Dj{&ilxP%c^>JnO0b@Ew*Rh*hT=G67LPM zXmd;D;_cFBKx}wIP|;6Xyax|9!XlJGZj;$O+Lj*lZF1`BY$PRTh$JPTZz}EV)IAj4 zJ2sYlv*H&nI`Lv7CY`30cu9!=4 zuZ4=&5Tek($9|w+V_;zTj}cGr=9T(U>$Pex8}ZRI(CgZj{H@_yoSG0GJ~03OmN;>@ z<~a%zJsb+s`wj_em#DojygYPTvlv{M7hn?O`N`f>7cNvHsuNh%e-D2`uFISdB)e+E z8Qe#&W6JAonR`z)b*BRCfw5gzYV#tG+v1b;e}=XKZqg^G@xV92_%X ziVF6}KY!)ewc9i?UkODwnpQ6`@ctP|b5K2;dwHk?XhA?vj{&k856aM;N`VxLPQmRh zL^uX9p*KwCU00XqI3yjC%nTQbZ2$Z`4Ht8I_{uzd6z#s_jnEfC!HUP12P6N@%joeA zb!XYBR0A)#gT5gK(5PS~UMXkxjqVB*hrzhZhDbdeN3VxHlyGXxFd=mSBd^qb40PO@ z=;Fa|XWsKYG0|QB>8V{YxmJk0pX=%>K|>G(HM{FJefTkZd5{r4g9>k3mUBl_f36#) zWpZ1%<3aE4bm7!%ihx5bz~_DL^SvAPYo^I%d0$e44qyZ0R_591E|&>uqS*u{e?K_* zUP{V1i=%RadoB7Pn2Se!5R$w##Ei$SsFgi(R`;)NYFB9y1`vtgt1+}W7Ty<@N5`gm zAC-yQ=-bO56A@vC>W%gN3DkdN8v%`Ew7QzAst;aBjQvRSDYz`ZICw41`o|H_B5KwW z{r&xqo;`beDYX34r|kzXr?U(JTb~4~ZHS~ngG>p`W)dnJy2>lu&C3S8lUcX6=ES)l zFK$ZIz+c?MHQ`rVQ#ur$XETuQG#a0jq`bTS^6%n1Yc*lb4E)6la43!Bv#vrnZal|g z$PWqiL^y7owx?K5+0iZKL1-5Z=Vln)|MD5x;^BX#+r z|KtI6avZ@(N=izBHZuY5vazAzI2r`s+)y;*r3B0bxs@c+5eC$(M5X8B$o#LKy`N0{*%K##d$+f@A0B_IrJ@ooX8I3! zbpLQuVvgMa9eOT|A-(x~ObxFVm$PShSWxHM;n}f7p`lypNep+B6Pr6%&Sr^>n*Y*2 zwtGPW5=CMKOb#vZVH(NJW|o%5$i)zMA9EOM|1aV;=;TbH}(Iq-}tTDI5_T;RDWmt?hLziEl;9yCQ`x_9c&xEGp%C|3HQ@I zoRtS66_TYmha~!oqn91 zxP0dh72=VoX$^+6}3yI6JaVH{_5=>6(ht8;>m zP7!D~A^Hq}uQwzeF&M zL*&;(!^3?jzsXu0VD=Wut$RbO)oT49D8gmm1dI&(cL-;cC5sU@Umk9%;EABWR);^~adKGdVR>D1FQP0B{ zFZ^(8jS=)?B*qf1cjeQ9(KdV}xjn+gyfJ=L*X@x5%FjipNRy6U#&&tZzQO6t@r~2R z?7w`eRLP0hoch-hl?*ghn;vX?%jWl_nh>GDP1xAj1pN+B%EgEJwXDtFK0Xg# zO7wnx7h1Rm8 z7TbY)bW4=Y6F=0}o_e?~-FO3eg~;T_eV_bd3U4Vpbu#Um|Fy(v zm1EB$(bUYfo|-xa*rR;$6=%iu*W*-I3ch^#f)yDjfOl`@;ep&L2;x$j{@o~NFNAd? zZJ&e_I#_@pP#k1q2_eB=9=2?Jb`X;$&}(0EF2Ham-$M`FW5f?WR3lzM^$o$)#>^hS zJ-hv5_%W3E$N@qx51D)6bOp5E2zM2H62#5L6@wAo#yxe_)hx}M$WR`J&1l4uRu+*8 ziPt`om?9>(pdq@8D|Ek^ODY)DC4|@SmV*R1hfW)s$H*X={QFZ%`&8|8vC9P>EIYYj;#byk<#BNr_R& zINXHLV?tn(cp*vlZQeiE%=&c=KYk7$hWyK%H2QjaLDoM$^g@_hf*lQ_ZVR^>7-P58 zrRxov7wKnQrNvpfOBCAD(mXuJZWW`86go4b*7W_Ccp_TRG8|RKlG?l-6Y*P5DyZr^ zIXm+K1Vm5(iX~1$D1dZGEkjnHQgs1rUsWpD=ub~e3n%$F0ZaOeFODZz9Qkz3IT=N3 zfJ0h>1%f>R;}LCM9wcW!6NMRd7K^Abrm?LE_Wln{zE)RXrgb<7 z`l{>3Kvf8!q7r1pCK=h{49U^irfXl5&SsqPugAawKX1R4(cLd!uNYfLw)j*&rRN3d z#MFUoIXBUL5*(z=e9zj3o221^G`$DU(X2V?g-DMb_A3!}E^Y<(qbeu>Kw zp$UV^&eDPhD`-6~t7GP|Gr*5!U#1AJyQ=J-ZItr!yqzBOu6?3Z4ngxV*6jNyB$$^w zKG81_p#&jr9mhNF1P2ETNRk|GJK1xb;5w*O&_u8GQ9cc}wUSUI$m()eu5e>D6oLzn zMa{0+EX$+>?+r}yLZS3jPL#BL`R@B|A{sv0J%X@-1LHpyI+~0E4zwy_3JR{?I#_jog55!EH*@Q}#J zR69~7`C2M}JW&VzYdW+vODK!}>)ZHZ?z{|tIvn$kpQ*R_GTX<3@v(rf%lC}^JqA)3 z0c(1PhK34oe|)SeSWZ;g*J`(-E5z`uvSwIBWMnW(KO`(NJ%ngSI#9B=VYL1I*+YgZ zYVPiZX=QgFLqFO+vR^=ehTx21A?1SuJw~MgwCirSZN52O?>I(YuBrK*y*%v(vlpj~ zT2bNdz(N9OU_K!#)aTk;HWX)n!!e(l>^%_(m5-AZpntQ@+{0KaKzXN1hnWJ*DSfQS z-7hT6gvui33%2ZD#^fxGcQ;lTka$Y;E2zEK%gD&Y?C*4Fs&&*2c^u|lC({-5-9vqR zojoe!tEQ%X4~}**^WL<{Djw8V{ZM}E)-4-sBO$^WTq$Vs5UHdeLcb(u8@>_q8AYor zlH@0YiZsTHm$$humIlE{M16BJnV7=*j0q2^FB)nXtAs%R9vVP8Nj;=LzMo3VIkjt2 zyNWlsFiB56@6zL)UkKsVJe>dMm?XA_f`!&M&Y**!nDkPXEh%I!i*PDvH0Z~kpg!$I zl)i%;`1;abBEZE*_jlMGe@1sPcG#@}nFa^0j8tKG)ntJO$~N|~TuaRh!x_Khf(_5M zCiC+i?8xL~a~um8klr94cjj(0N}uTNH<&eSFHk%!6xt7H=Om;Mre9yKmwQy;h>DTG zrCf*1C?`&w*sqhrjC_$ODzNH2l7ak8KlVMVbWPapB=^d!+}BUep15^=NN{NhjBzjN zK#}O%`?EKC@C4kRD}V3fv_DTr;>9cI*#MjdEF4GtAk95w6FYV>yc-6BKvsuAE=Y~+ zjV}V^5=Eq@WdqBV^#+!o4}|$AEYvwT z!uu3g3tp*cs!w}apIv)G`On7U4BoYq_LUJa-MAi1Bs3CP97Fq=vG(^T@QE&FAG+S5 z8P6XgdEx7egBySt5d9+F`ClF5z~PE$s`BeJKeBJIHzo5M?Rcci ziYhVDTe`MpNI#oXl~sy(`I7kL831Im7+FM3L8d^!6K!^AA=L}CD|eBTj|+yBVgVf) zK0ttJEIjG%E)y6Ss9^o~WqSZt#lq4h#!RJkd_(m7HAA`816qpZ90hLKRsC`2!%Ly4 zO9#}bqPso$kF#`gWMh)nL7f~MDik`wL8 zfmXlL9M@!0C0c=aWPoT%M0QxUvYpGgvE|*i<%~$ju=3%~3+KhYXNMm(JwNo|{7OjP zqJ+436bcryu!@8kL?1sd>Z4Yz6kT221`hvAT3VdQ7??qljl!=d2L#l+4bGO~(og56 zL)Ud?k2QWzUbNRzi-?GTw7mj#A5msvq!Cm7@zO`I;|zK-LR^#8ySO>6t*r*Y|6*)A zv6(Ddy1%b)$4tX`S3v*<_6S`JxG(L)2eNs^BB>e$I8a_N?_KHaA8<7E`Gqo||EV;e~qkVZ7T zIm@n+mZ=ybI*^+XpU-e(xp2eprp-oOx%TvAxfp8MeeDG%I#1Y2i$E~jfUY6D5B?^Z z`9;vacxks^fQ}G*N;+giDssy>K9h(Nu^4v2PWuv49RrwY&Y7;74%8TfE_5T;A-U}9 zoj#QgijBdFzgZFkzn+B52aIi1fDu4MFdaK~j6^}4$_VGUA1|T4SckxKKQK_0w(scs_{EZAVjs6o*G5)U@(Vf! z3m!O74nRs_nTzMZ0oNY|p_4b&pY4eLiQ1hU0jb+FG$4)S^Nt}YYHMr9{5t>;8}iT? z=qN~+518*)T_h8Nx%jbTMwr#TFczv-P@51e3a|id?Wy>HuQfG|qwBQiLY}DwX?=~5 z=EnPkRPGbd39{<8;r#350zt?9V?cXrYHCC<-SYbF+dcrEG>nXFGDX)rbE9Ko)_~VI zp{>mYV9$26RkU{wg(hiK2%v-JuJrqN76=|!SXwltPb1$T=PJzEB7d{8vj?p4oEbU( zYRb;2<8sSLR+_aZr#0({{X(9LpSvS6HYvnF0mj&N`-uX^kMtP}jh(pbd|JDh)CFA!sDVRlhhJ{)Z&dX7B+a^V;K>&o)NDb0d4wuiAsFvdTze>_B8Ol3ia&eoegSW}v)e*X!=-?=ih29 zUP6^)$O@(4P7F4Jfu*p%_ynz)Pf^+TPusqf+j~Uc+;B3Ke?{-?j*=vYPKDsTl6`nW z%xqr}wON38dE&}ZUw?Z(+#gs3Iiip{(h&(HQFmcl-U(2>nGJXR(h5!|-HR6T5wa{> z7(M&8YQetg;#KBEZMHXLVO2@V@k9SE>N`BV$kp`vAB)GtjUSYi4+(SoDe_7mP~^;H-CGO>w|n3+e1oG`KZ3NTI-m>P=qoltC{)PU{AaUGqoG?DlOT9!TA z(c=PJ;YBA;pd3s*l(cK7TgGC8CxXyD#K5%|N1y*gOz#2cdJ;!$6AC|6^}Q&_*!3=- zJxdQW2COmThELmN3e5U>aL?ZS4IB9Rlg4E6cU+_mdLAjKNeVJ5Fc$VT4o~S#j^*X_ zHOA(8jBkB#PBh2%J3sHVdw@esBm(?@8D7eX89A_YM+?UHKoOR~3FEob7<_3NHf|Jk z7}X>z+u$64ondm$&L69UGN9KW4KIq32S6?;6z~gy0Qs@XSV1!^<>`|rv3B8#2!lX> zV*&&7%0?<a>P!^8#WF8GHhnc3e)50?mmC9tc_gAoxTEToDnG3HX}UdI>l?G7Cf@u8c+=oq$r(v%gkTfxPNW-JO8Ktu;l7Om$xPB4ON zB!fH9CKaPwrJ}TJZ$9OD+jg8`qkTiliGfm|;$k`ca`~C%_n8O1!*xxXEqHi%q6^bA zGD^voYor(ga?W?JuG|Ce)Q5>U@=2g7AS5HKyvUe4wos6N$SdU(l_B>AZUneAg=r7v zVeQnCs;|Ml{oQ#;9&i60-PjMkyYFfTmW?u+JAlcXBRVj%!oU8ch_eQW4EP9 zr2*@w7%g+7x=Mgcl;f_2FYnqY|1P_Du6fEqFN zKRmGvo0}Oi^L>!)V+4Wtb8v7c98<{ZVu9ze$Gxe^J0Xg4l%;DZ#Fzqu2XTMjT>JXc zmu!DjP#~2WQju41FcVSvOm{amZDdLqGu3F(e8pin-cz;k>C2bX@vq246h<0$z%7vD z$#CDmT_L?bnd8vpffLf|kNHXl0}!2JM5|FK;bR#06yJ&Id5oA!3|pWgD2EDwjxyBv zj>Tc3Yq@d63N;3nXP2QqAe(3RUVcla?B%<8DRgIsS8BIW>Z`h_?tbGBmaY3;e`2g3 z39W+sS&+?mhP}&k-DEP05VZI&BR~K{-9@rL?Ihk_hzvq3?m?&_sNYI$Y3DM40!yuDOWSryp7X#K zA}A0nf~}kqmKlrM{XFHmG*wyJk28mb>49hTbI}13{&+X_MLlEC`8cGd1**C(n=WR# z>)xAlkgI^x z0{8j=^?eDHX81(}6IPIHLxZ;ys2`D>x67c;ECvK&iOW4Zfy&Z$Y2G$k{~7kY1JWwR zjIgFpTU$Z&nKfRypKCO?#V)>^aNJwa-lQ>*PPF=fAW7KB%F41CtmVnFXrcov<_)(+ zVpal_4|3);m^h@c26%^sg^{}k43?N4)PGB;F(E_e$el!xj^6MDdMA8S?fxC@2@!vJ z)_C@P%ME{8f9isc2l{6QAaJZ+5>Nd?(N(Ilv2$~B!o`ZHX5@d^V%an%RIwA%OQcZd z*3d;F5ViZb6&0WiA*TTA5@$AeJqea@R{eWSfaBxa$-f1QvJuK!l|?e&h^D1ff)=bB zs_Y+pP;|c_))Q8JDuGX z0Lx@*1Ol3OGlM|dNSbSSe&0@q&}lKoA$jk!uIoA%LESNPIW-#kSAzMYl_RsvaEl=c z52hx{W-iBGHIIcaKUKQ@ucSRnY*GN9A5B~N4iQbVW#@&&Hc!|N>Hv- z6z#Z7)=VX|ys!&wfaVwnfQVp$+3X&D`45#5i9RGH*c3>-c)mmCg4>!`xuqoue^yeK zgw_-TP_o6qD#xSCu86bRWRB(mJU5%$gFm5WFAw zNv|F!zT)Qmh50FCa$GgD%pOg)M%)+q{L{Y3G2yaF165S~K43<>_Y0jv!w%dBGMIh) znN#uJ=_6hL&=S;`;vW?N;*VICQCPjdkr5&3N^J2)^aaEa z253aXl5_^&j%Ckj(BJidM|*R#KYX}bR3wZ4?W1U7x-guX*1TJLGpz%|rLP%Fhk$6p z`*;(ZXXt7HH*ugK{RTntX#y{kt{Cqfn%cF7RMkjsP1KKsA^d3dJL!B*Ewvg&-@}NA z6uWSoVpel%qh~-(|;bYgDW3&B(zV+*Eo@=?q9A#C?s?>%&PEku20kuHY{bj zI9d^(2q=8)b;@wpcYu@r>rX-t27IBYO8#+N!?$lql&>WuW!6i*Y@ z7MGA}xrr9&qMn}6f(|C?Cchr-?m_D^kJq~i;1OUQI_pZ*`NYHxc!oUkFr*T`0Epj9 z+OV;*(gg2|>`qYIrxGq0T5UVgC2e>z5;6VOc!yR_FkwZ&4iOK(;j@{y({^sASaHW6 zQ(3t{lsjlBA$Zx`-b;J|fGFCGcSsm+qQB_esgv)dLZgsm0cN_?%gki;82ocoLrtz- z+sVgw{Eg5LOjW-;dLxMKfMBLiOQ`aj+iDJ<@T0uoNCv)?N}$~e(&nKb*}`O~9cWd8 z+eUO|=)FjciP;{6iPv3w_RzJQLG*{4CXqK1{Sxk%S$ozyf!4GH=rR&#s&TJzsrM*< z>cXvmz;)OQl5(_No`ffUu`%k@bqoP)1aYecm9@9;r4Wh6w^3mFNfYIusW? z%3dxorpKYk@?}^6N=M!$<5uzQ`RCnog#X^UnL6cI<*Q$J>_ePXVUFgqV=HD_AzVV% zC+=*}*^ob+>#_H+MdPUdZAlbS-0=mqm)w%xhsKc2np*M6DfknMox%RZQ0XYo=-HCjpx2@ zn(-g54XrziNP)Xk2JD+kj%NNMb?3fC!fS4b$`K~npi6o-uK-#eeU2aS7Wc(VcSCOut^r>6UStl%r8d(GJ~65J=bIf*axzA43tR^kpA)0<}pxYJMo;aux?yRTe0&n+?ri2hPjci;=DcAXn@mCTq zH`^nukvNx`S%#uOkd9dm!=bG0?m+4Be*7wm&|9Dk@|ij@z!96FuWlcx!pW+!ZCH$= zxzua$oKto+U+>f@8emp}u5S^%?uCSGfnvcM-~iMmw36Qie~esyt6YL6hqzfG?vSLO zQ>QinQB#fE=}6nS8T{D>Hv+@MZy;twL`Y)f<7(~dOUu2~)YK|hPD+E2`WXmZ@s?N|+|x5Ny+OcYv{d0v;2FFqb_ab8>YlxozWUCJ z4ZOAa)sAVAo@ttykmY48VkS??8Rc7&aurDW#iDsTV+B=9T!YJHQG6z33o;M-W zLbUnEH8ip-+`~|e;xv(oI8vS>GLSj3_PM?2z`_s8*>>Zu@E~ydjQjz-D^H2|hT_t8 z`qw#?%^$i;M=FJEDN%9yoFY1~l18k=j0n}mKtn}Px&U91t<{{b+uDjg6Vesjwf8ja zRPew-=j_WGNc=N5cMsSm+KUY^N+b3*XkMJAzaCW!Iv^;xxwb7cuq3{Jc$g0A3SwwI z{btXsK^&a$#6;wTv#WZt2*kuIt)1nqVILF}1ZyXachxvkkm+NhkRBWk$wRasamMNq zx1$S&Fs}mbQ-a$v`Ul$Sw}6K+7r?eTU$9bg0-pjwNnBErpo+*RrD5Vx@d0t?UfspX zFl79!tY36~L-}tr%M!WNUw@zH=Dtfn;SjL-S^wcLYbW6YO~?tgN9sc4kk$OP$p}+HjO|IdOO0GC#Dl zy%>fJTm)+opFgpMotE*8xK1RhxU?=_86Kr604%Sh@t^g zOujem7XMn4{(R`$8+x2(qAkMB3s|EULZt6A>4~+r>dBWwZiY4e5GH1vT3RmzTK{F= z8+Nqg-;p3pP#h2*gnkmv6Hri?S@jt{we0cGj=pIynn5i7yaeB3Qi%nQq9QufcHO>4 zcu15tzPtP=Jp2Jvyi(t9;%zmqXh`q7Y(04}wMHq|Zr}_d!@*!kLK8>QH^VKeVvJ+o z@jWZZzKeZrBQO%k*QA7;7G>cpZtMRDefsT{Mjov^W@r`SLxLhNEM`S)A& zUT#e4O5v?v&ht*z$=Uzpi;stf^fh`m4`GIc({C;@aEMRwSnZVv&mwKw;>a zd?u|9%0^}sDG>Rdb+Xcsrdy(T-gzLHsV!Ld2;_$H9u}|7ROQR&WC+-&8=c|95H$%= zHw>O2+pCH5V?^{nFD4e^by6E4y-zs?DVhsj3vB1MW1@oCZ(#DJ^q&Pptbj1kbW%VO z85$AP0Z^P0iFKX#v1!P$}}|W@B>E2nLX)eak?>TxE>! zUhF2g@rx)_9R#i?%=zd2l1`HbI=Qz_Yd$331}~gu@D?WX=Mj?>2A6@&1N|h;olPMM z5()(zh5y53?u+}qf=GMu0l%aV;6dpKM8Z8l^JCWEHD7PWtzq$g%KJz%bW!m$}TAf85wHYfA)@#<8uqU9z@U1 zeY)1j<@SLS6<#LV~0Kmk-dbv$Kc^<3oA&QwUe@E|t^h*1zU=ANhLTeLC zl-_i7=TZwU*`H8ALyQ5cm-Gun3IY&>$PqC;VOad*#}95yZ)*Agx(q_}@~e8Hp>s(X z9$!5nV6q3Setg(S)NsBf6q~+a$)WEq59?*XY$_<-H7W@L`32Wp1X?t)Ri2AE;)>h{ zfO~nY{ELehx`GpCW~BacyP{x-f9(sqHGQYM-(l>Zq!Q>_Dxrx`8#dC_fhP@MPW?k|dZCUg4hR7Td_d%jyd<62BeUv*#{c-hNI9^t)vOMvV%0Q!qwPKWUZ zVeW`;-;*a#hTijR-CAGZ;z(Y)W}3!(p@Rnx;@a8u5)Pc8ms0La901Dz3wtFdCJH>v z1G|dg5|cZsWVdEV<~~RFgz6m!1=)85aUVT@>uZvJ5%05S&+e16d7u1`R5z(}GhD>W z0NAR}k$aCbWTTd#nR7-nyCtO(Ek+-5XpG`-LLA?;=_gA2QjjV-T zCi_RP?+dLa(`s;&3}EXpWo;TeVyxk)@qCG=RqL>T0S=m=Jr(8Fa0?TQJL`sY>#lrG zXs-kV8gOHMav3Sa{euX$tqG^_AC9c}MN3PI*qtL+#tVJ_f7y9Mj;%3K*5O+NtZIcB zM!m2l-Vv|#?OlNqTiDphm~~V8y!~pSru~KqQaATIgL5N;t~xq8JtK*&ZwAnN#FXy_ zg{PqPVn={I9Ky-mBwYLX1m^M1O5GqfVh5f9u!V9@4 z^#Mi%a~L_WvVF2@&!R<7W%fh;(bh_^i7;5$q$i9{9)pgv<6-ZuG&yzL`YSd@>pg;9 zAxJrl@(Kp-)X8($cp!JyE2+w!c&-90y+6#jd*Jy1@&%Oe!0P;n?K6f2H!u7`8-f_u z8>XeTcetIr2z*uf=0y+yr6~2?-TnVwS5mrL-+UVCbu#Tk_(=N4bZ5@k?tDAWe{;Ak zZPScB>)b-Z*so#hO>$EOU0}y47JgM@xjFuxhwGGOB$5Ly^^wK z_1ocSWsGj8)DqW*5J;Xz4Y_~9_R3C^j{(k45jJOM&YU5G6Y-;rkbnB3|GHmz!exiN ziVD+X@x8N-smj;qvI=K_K?$$3!^n9oP;>NjdkHA9H8pAR+xPDc=(TSRH`2l^Pvsr= zNuXiK4E~$f{Q{?f;tcUbH57FqQBDJ;B}@}R3(@jfb>(ZB1Wp0f6A%YO&>V3d;IO_4}>nNl)k!r3K zhnyC5+#&0BR?nE_seI!=M7b>v?}&jJudKUHKZh}Ko5Bx|7NQ=mYpC$<1UJqU4yD6U|=1i{1Fi#ltGF%YyJB3C~@9JKI|N_Hi& zoJ>ebM8e`j?UY#TtwF=ill+i5PZlc5NWtJ8I2PX$?1(7 zHgfsk{1G}Dt;Rm}BsuhBzMl6I`s)FV5T%)~tr;a}OQg?eOzx}rbrfDx^}nys!tcoy zBHZH)1Ota652JtVC`gQFhaU{~sO(s}j=zjS4*xTq8F=^k7R2yfkpx!8&9bO)+v}#B}zGbPrr&o+hpAX(YR4v>6qZ#wR<=1fL}ns2`FiSJu40}T-?B5;j|}65jdlvkrXqyhPsxNrn+Ry+C8dFM;U=*DI*ck)vC`%C zZ6g>~mF7>OKJsyYY&V)36-7aRf*!h-pjEFm+ScoGb{N9rJuEfB?^48}8+x;nyMW&e z)$>8sq<`uX4TbYdoAAO;*S&hv7IeS6r@2w3&4Ub6Td0^qQQ-C_n7MxMqf>-yFa#P+ za+QuyC1gvaNJ0i7l-I9pJ3Bjt=_|yx8-WPD9e<;V+M)@3t4k#=?~&p?WX4QX{>b$N z)P@I}d{GU$1W^7Y=B5=|;F1|P4>M+IS zrzE8CU;1zqNGd_$8nzB0I4k-c9#`UT3XqwVo4a-;^)g)2NN+G*fwcU&CMoPYS;dBA zvMY-g6}0c)(^^`bL>QrowLHTaP$b-MHbge#+r3+HY-^ktpO@HPpt-D!JjY&t>w-Vp zL0mFHuDFy7Zokz(g!u7HbbQ>I)e_QzA%TRnX}Hs@Q#$8#R{S1v)8{&kT{2%W-t=_u zWf4$Ud<_asqD2@tR1QD31qt;oBpj$62&xYUgZmC1D6C|zioIx;sD<*eAN63)?O8#J zqMWU%>Dx&j6`-G`IEcQM2b1F|aec9J3aXLkFvy22bi1v5`;M5^lfw!ZJ1~xZA9j(0 zx6dP9D0sgGV4PZozNz~>bD1ZpxBCbmC z*&%ML$f0Eo4Ju<#cVvK>HiNJja}s;lYAtTV)^KwH&~wLdr2x-y6H-RA2cC7ud>%#9id^Gur0t|%$Y62umi|=Xydesx- z0XU6QP+}P2W0z8@FzHJQGAAdeV(9aLJN`Gm7??@8Mr`w_2Yf{aRndZ;ME%gz#Z9I7 zj7U8H8?hzGcA=XKac|Jgy|pPwCA;{a_9ZFafyS|<47D*vm%mXpP^<3O%GcB!WhaP{ zq-0KB9@#1YUIS!tqKzv+-t?DNBPMLLYBpdQQuLK_J$7kUJ! zO?pMg@KBSG5s0J;pgb|VMdM2M#1mlI3H+xa&F};^PLyEdAW=Y#q-u;S+&o-3zJXry zg{q!0et|bmjDwB{%%}1Hur=txQPWzf`X#A&P)y?09LK|)glBX=J_);fk=vpJ!7=PH z0r#Z6lQV>X+(bi$p3dysYg)+uh(4r2zL1O;!mcl7S~Ze7gR1yT(w{IlSc>6gXu>lX z8i9>CCsn%^s^O&Gw+4Q?WKjw#0wp|1as*-J6jD=!w)MXu@=o!mkS}b4LIWT<{gd^O zV8kfjZc0WyjnH7$ks}IHuXkc1I9O(Z#xq9xA8HliTt##bVd3Hbb+;A0iNPZ)hp8#Y zj%iO`k1>oK17`|mw^eG7R_daffIrueW-~l;c>m; zovJ?>ck?uA0Srt-wp*abm4D@k*Hk(^#{Ik~K6va+`Vldo!mK}wsY{ak1O>?&3=}S5 z(DZxm@cs)ULIrxW$gAYKeYpxQ*9#2|5j?}8?~-QNKX3>%)?dg0fhds-0USt3slwDg zxo^br5htM+lErdTQqU&A;gl6SI?P(rqU)b=9yARUc-8m5b>3q}VmVY?&Ak8K-MjKI zb`018rxQLbFIySF=#`>mdF^x2wS=F-Y#fX#NY{vV?;H)QE)1?fYWi&F$BS+6biwz6 zYMf>G7}hBmI*Qv~{)zfC)#0&OqFP;w#(izY) z(3MUVEPe`JPu&NcWJ}>lT@~&MFuZb7z2U%QS^r>zC#pC!8xQKVK=32_)(amL6D!5A zE~bl5wdOl#)-&4M+bi1Gq{XMY@k?<2JDhcLgpND5s-~BWDIqySh_enDW^Zo1wuk;o zKU3JMi;DO~&Q@s-C?JHuDfzYfmvi zCXQL`AkG0d2haD)I1W^7RB@REy|g7LJ3ak4G8qI~`@`}80?-y^XJ$fZ`_fD!2%~KP zl<0A0&011;fJ;R@-=7HBh|tVvMCl+UBLo1Pdp!Z_P{?Wwh@0=g&YiG1zy%CZ&Oo{I zWRfd%M42(cR{2tnzA4+5zN^a1TCAqlR|S?_kN{wMTLIrk-#U$t`_@KjF6G}?bl{86 z1DN|<)}!!ZH^@^8nVDd#KLA!Gr%wCIm40v=rO1^&NB-dw^z`;di&ezCE)U~Sq(Q>N z0KE=T6vCGy&HVcw!-fSI{xZN{+b}R4AJwV0kT1>xB*BfnW#a7 zT~bj&jX+l_Z!#d!0#QHoWNGmEJ!I9&j7xbBTRN~qLD$$B=sGol322p|KqQUpk_-+2 z$%6Q%IJ*QmY;c>d4__1>&2-WF+g&uLV;xU6@6godxGf$*o+0^`PzMlM5GGeKFH?5! z7kQ#LbR5?K=(qur_SMIW^!Wo?4M^B&npc2zjg-rGk7>3e>fofk0n};)qzXcd1`ENZiBxObwaU7*g0|*HSrOEV3jDn8Zi&w9VF}5@h zR1mrD9+@_W|3l284LZ&b*E7mx&#YELAtw< zR6^;LkVd2xq?PVY>6C6z1Vj*|Bqi_s{JwkFx@&p<=X;lDt>Y{FV(;0rXJ*gyJR2)e zuz?_r0Q3?6gV(_k<)jgH#DgRSTE>80iv#d}-mu&>ADEp-sh_Dd9zD|?&bhNVl?gV3 zD9V}cA6f-%1=hNw%jAwwLvH359)6KRz&a3O@;T_DN~;b>)Y71443ch0h=6!Ic>i-K zK&{$A@{U9t$UlM81Zo5cQ9U(5n5I<$rS&=_J%|<>IU?i@tF^x z;PnnbY^m64oKx}kF0j6RU0%k5HY9gAX#!4gZ(Duqi6S}#1dOy`0qF;FJrLozcCBCa zF_7gWaW?RsA;nzSX0J7%h)&w!JPpesg+r_CBlshh58VP(S_Vc{e@^`d zM~3wCAv8Z)W#&F$e=Wc~r*TOo32>s2Dij;F;UMM%^Aa!aQDZ*N^L$~1jx{K-Q(FD# z&GSgln9u%RM{9yWJB736kHj5N#zaV*Qm`7n6x&5zo&h8`f`3HX;~@`)fdr5TqS!&U z4FYp70K1$e+W?Iuz>Ap<#$pZ}Q;^bxLhcZBWkq!nnkivZL6Ubwc?HgIkPtLA8H2@9 zPt5bUD(j?}i;ZaU*I{uf?I12g+{ov%2OMs0N6hQ)kKj-!?culnTJ&k$SHRm3=OQ3; zFj|GCGkP`D3)$*h;Bozsz5`rZlsj-EK%(J`z)V9jF}c?{bHFg0=zpM{YpiMEUv z{3_r6_3JVrA);DD7vic4bxFW=K*SVvV-5>7_u~gy(Q}9V$IemYW9#1U8g0<1$apYr zn>rq?MDO|lna|2<+~%F>KDLgmTv3!{MK3gHLavuv4+Ka}$X`G%DtpAK<)U@Rm!@=y zh|G)(1n-YD!dqSOew8op!qv~odG~F8V~T`t2NYVUB@9Jv=DGPXiSXJ6B-FSQb}Jf_@y>!k{_<)U~Pm`+eLf+p9a`cduO8dOq8I z)d31N&{+?_4_whu6;-CAK5)FX;BmMlL!L>ZW5y!?7E z`L?!{jE!!Jih@GuTfww}Vr9ZPr*5}s@VStBsWxnT&o{(@Ua6a#Te(d;bge<>#bp4c zusxrw;s0>M(prj)oV72#rbZ1yRp_d*oR&jL%oexdUYgrCc6zr>=qes@BtBg*dKO(! zA@Jmpmp&j%3X%$MdI4N`!udA^(=+p2dk)rQ?GqhfvxSyXpv5GFJkWCW9k4whwGA6x z0oNW*_t6icb!%+CKK2d{ThK9w417Li%<}{wK+N)T;u0nMW^w_hm^>1n9F0SE4|o5A@#Lh-n~?WuK39{!FEHC`x*DPWIKP}JeqVnq1K#ccTS zq-R%FR!U#C-{m2Rj!E17KFX41NbtmFfHUW_fH8xNOz+AJu}xBvp@yjx|Kji5!`}rB z&j(y;9yvHvtDkU+d4?uAZ5aGU z*)_5QNf~tfG|OSDLZ2Ws>XShJ2ua|T&yQzsxnp(E+`qZRymNfbv|P}RFDpne7Juc^ zZI4?Nm&egb8PdO+8RNffobHp)IYLQJe}iL~0q87&A(`^jwyQq~A<>Jen%uiPX3Ma-A? znHmUJFbtkxwl(KGCO6I#@kEYwKrjSo!y%#5 zTVei}S$(f15fUAde0v?6NVDGZj~mVM#UE8a|32S(QqsmOZ+w4)CavN)YK6q~ zbJnBp8GTXhWF6}hVO%v%J`o;^C%*t|A^t$NC6}^d?2s&dv3|-3UbMXy`Fb!J*(pKqNnJ<-IJodp~ z2nY%X@(u(74!2clHv~aBz?G!(T=cjlOw2I0b~_<&kF+l~VRYT?nUh0Hw1Car)7jg6 z?I|DA8>JS{3LV`xQ;P_{A%U7c~6Lx-!7l1>DHeI;{E+86;CO6 zbm&yv9Pv!Z%w&YN0Y3*VCCEaw1?ZSWkA91%EM4Qx|Gbs+gF|$#g@hV)vz}8~u<KcCAro{=g+cxQQLai~2f}|A1_HCB;Ko9VMUa zi*9)ue(mvh!_GQ<7S8<7#X*nGrjpMtdfM=5O|c$koIR@#hpOb1-E10&?A*VPFm9Xn zmK<`gd>10s5ed6b5=%Ck!ShwUTJHk{sB8}JSGo_{s%MKAJlFcHf|tkFg|!DN1lwIO zv2HDW`*sxoS2k`4aN5U-bHS$Z;$4sQpP1^O2lI2@v>%U98=IP<1IwbKuE6|(fctm> z7sXq3amaK@p@k4iaFNot6oi?S%TER!&O{`>n=?IpIFy$>FfpT5R?0Z&6$a%`8Z*vhj_?q0)5~ zg(zstNrRI*4d5pFgFy`rIw0LOdXGAXLOqnYqXL+TCdfGf)_D$v%o+In&AmM}moOkI zgvzMO1a^82oK3{Ey?_HGB=?20DWGKAEM$8od!Y^gnKN#ZHHO&9$2bGs5gm!em(6PZ z;?kf0bNE z=Cx$?`-*gj>yv?HY3FyGwp+RCF>jqbw8XpkC0N^H#fc}E7~)d7t*5?RQ;zv3g06C2 z?e`7m?b^bLLuz)KI@!={`q>1SDLwYAZ`DRSiyXner?MLF+ zU*Y?6`;DzNmzXxa`_;c4%svPl?iY>m`nrA1N zdjO+X@YYm7zQ#o3rK#E+{cG=u;*xyT(JHS3LGRPUBcnTwUgH?rJ4>1u^m0$U-QjW1 zeLQ~pGTrzwS4_w7@b=|1A+%EtU4Er-U^NSDUrM%?YCLxufBM_o>%)gzw3zZvp9+~ZhTsOeC6lDQfDR*P~o9rXZS6mX_AKRg%XeB=mP7sOed!TWi zr8MZeY~#f0h@Q>k?q7hpQ;#Vw;Ou+kP8o}F_H(M>RS&oAs@cs4>Lw1)1$bMwiWdx1 zm~MQtD1oK@w1+8!geax(C8ip_`>y_I%Go;C;JgbE(M9mtq963Y_e)&QWJY&@wFjr<*D-D9fhiTiar)E!@p`&9e%#3mjRPz zwfHrVx<#LqBl@H;-eE=Fy4nGk6a(vsz>VIa#UGB_$lo%C&PNo(eiv zg3Q*gk0tUOI&ST@tuF|X+0zOz-Jdwvv#pxc5C^OKMnr7966;$q`pt-9;tXFrm2v-EyfmDwB5UVD?s`h%cThK@#ggiZEQrz1_&$Y~ zTn>G>npR}gi+5%u$sRnvEM&woRh7m0%2TbY+J&sr;S!Chnb^r!uj~rnd6dCg+|%aS z?c{ys(Q4YH&`WVY+v>Vb2Akyh@3fU_l+9h(OKR|q;SER+i#Tkn=(ijXx_n%;I5K?6 z{oJ2f7hfC2-gsttvV+E-rNY#*y6X7V)1Klu@n`Xqoy+m$$E6Jqp1CqHSx>&qNUS5( zk=}*hDqy?i=JwOm*d)LFw{c174YU3yd9*h#e375bJW*4+qBmPkxJXQVQ00N?KCqt5 zT%Z4{XKSlCU5M!PE9BCpIj~gB)EtF2S0>I(8m*mLb=_T0$;ue7DRC{be&$6y6|CD_r*VEJ3>%gP#duGjPX2oJ$Y}#!2r@)?1 zcSz#`Gz7o$E7BJ(m5c3MG)ofSIxnM93TBDs&A5RlQ5f5QYhP(vsdSs$sL4!7Bf)4p zH1ZX&T6?GoqqoJ^*wfxMeywkSJvt1hztau*o2oGvIM0Y5FQjpwF4J_Lb05woZ9gn? zUUA3?>F>F-p-ZWtQBdvY2eZ9oXy)I7Hv6K<%eoE+<%uQylGuq8L5XR*HTuL>^v^oo zJQX@0CBKpDKa|~(B9wzmMx=fVlFbxAc|lE{0~%xtUc0{z3|y8R)=-!McBVn#-$EiN zAaDd=$6eT45pGF@T?A>Uf}U1{q%j`qgAnGO9f~0b{0Lqg+6M#R2p8dPf$H9$Lt@7? zD4bD3cW17^gQtLS0ve7RfbbbHt383<-eTxN1d3`b1Xd3Bfqp=UM?w+(Noe#t%Q=37 z6+HYxK+nMy^OQt4B{y?_hZ)5ZOMLa_21!|JnA!JvR8jm3%m-W#y>k_nHCD3)OlZD; zZt9AjO~JR>DWbf1De600hXi~@+aCCr`s&H4-Y8gf_r*w4-|!BKUeu(yvP~8T zuM>U}xnFcJ<#LT!MXsB_w4x=iLKkv`V^3ydhT`QZVZ1H#;L11Uevv8!LT^-c{9NMX z=!8o4N~40!&EFZDO&5@jwqAPg+V7Y&daXVSrM>aFeNbxdAjQ-T&vyR`hdrzjyPt{| z)Mjgf?}XKD1ypje@3e(DDC7JpW@Nu$wQ!FG)63{b289z zk)Bz7#)#6w2-IUP1e(e9nf3-ZL+46WE4;lYX*>_86C!W*UPI zUwJVr7h_@#mQF+u_PWV6mMINP3-6due>eeLG8S6`?5 z>J9hzpAcs9kXL-E^#}IXI|*;_^2-0?AOoK&KiZhWc4S&{n$6|pzeStvf^I7ysH`br zFUpOb%ca+rD=s@Q-Gf%+rGKwjb28rUK}~Ewm5%j=ALO|`F0&=_D!e%B=DoPYWqezi3rajMP0P`@_FpS+4OfQ<5fY#D zCU-QZW~T@-Fo^ZWpRi4pZ+lmS&+Ac9Mg?p%iu!dFlgIyF%rzhGLsR+@)d)up!a~o! zGWETyj@TlsO>x_Q-@MAID?}P@qs^J7{FrNp_S+>~T)Tk7yk2)Iak3ZG)10Xp62%(M zJ5}Lir>@%ZZ%#{7qC1LzX#6@coWadMk?e!@$op!=U@Jv^AiY@hS+ZeC4a`_|mbts* zS0ONY?m~TeykA=+FYM`+hKtwQIUr*S6Tol7W!jdJF5Y)!+53#$qHS}2(~|dTYJJMi z4G!wnLY{ya77PAzD(-?sTt7XUMk6nLI6tuP*x>m|9f0@wT(aKz06e8L~ z0a=ea^#q4Vd3x}ob9q#!u>_(bKyQTs;}Gs z@b`~*Tak}RnwSDX?Phl3344YoAYIy#$jxoSm%0t6?gia=$kQy+?U$Y?VNXE zJ$3Ak7kXHJve*INkB$DJ_Ra?y7o2bL<0n&#g(uD%xerw{9J;yWu;X;Ivp0upR~9pV z6S#jU*zp$l8FOPaKm3Qa|MYMG1s=v}w@U~c+N^ktI@}j#IPKutd;dn*_6VdPv3^t8a ztZl}6$qW`mVpmrm{O&fDFv(chmP;CJ(o9TDO(`RC+weF1u_)8Y%IazPTi@@GL#|lw zi=WCBJFlaI9W34RN?qqXN6>{arrvgqi-R^ z=ktw$eoBm*mDLgeKuKhp(K9rnbn8E>dU`Q)V&|UKy>KAlZZ>Xrt#K}VEE;OL#B9kR z*4NqIu$pQs5oNH)wq=|4S z_3yaJk;k2@tNzT1AbG*Tj$6Zdm)*6dYC*SApgCR}LPiojv5>X>r)Rm1KWGO(3N2(Y zc^*_fmzto+S)W&>oZq(Jyvl$NBFt=EfjB+V#iBQfWX@^=f3oeDgoks+4_4qFTet0R zcn}yK{5WKMWHU(OODX7oIy-J)L3E$qG#7QBaEUWxI$epHGcpV}+shg6Uu!ivc3q@c&&-(jm0RPU_z)z0 z`JRa@#+ZI>c)e4zUtz9_3~toag|BNB`G$I#`mu@%f%=6yEx(sF+{f|>U7fSYjqCPN zw-W2URq%Iv_y~v|o8?8ID`TXTM}$Z>swK@2@t7=<(1{jamYr!8tz9H0GCrHE)u44J zmt-`(!86cye6}m)rmqfYkMy*=;kA)LSR&5ozO{#GQdXmFqxZRc7-YhuUU$F(g=C>X8wXNTuz|f--5{xJ3W*BhI;q>u;WLjTJ08A)X$Dzi4;y>)RuNV_#j^2jUc0wk0=$&Ml5Ir-0)D;;Le-kE z>YS?|}v6cJ`)HN9%~ zsm~2@ZVc{I*@QRq*_=?>Kw`4JPMuflNo{;`!rlBKp*wM~9QxJ3CkaOJ5gw=@DdMJd zOMCoq0W(!t@~t`j=aG}-Rj-LKnF*DjIVjmQb}TJjy|E(_e*fiySfeA^_rXV*8EdP28$2TPa{oGhCtm-Y_sr0h3jumkwkBkrKZj_6dbfF|cQ@ME-F=UR zX36wywQ<$OTm+_|U2fy0`s~ViW8Sv-vPWv?Y;4-(%Aqv$DyGNw$o^VGat*o5q`$M% zy4CWwt2P;hdIhd@NKZ;`;S`rl=);zV^2eLwKir(ReZMRVmz8(hZAB;*d!1-fO?zS! z6Wg1wnj5ZEG7PMhqn0Ue>c9B0^Ua!S#+l{_tv@YKf)`txp8)oNDD8^&qx`9lD)L*^ zOR!(O>>(}MlEeC9F^HplehLe_8a4wv7J4fDPoD;RWM}T<%E+`usB_X6mR;Z#eRih@ zWAu9^O@Q%Wrh~b~l6R%{g_P=~s+035DF%k3gCUpJZzi}AE*cs}W*wZ%nrkPV?QKSL zP(&*&?TGdku;n2x)OSgY3R4{~oU3$mI@@}@U5Dh93i82~N9AoreV+_1S>6@)a)1Hl| zs9Tu&x0T+TU5PbEmWlY&VRGZQ6$j(1&v`;{iZ|xOmMyG|vpz%=eR=q!cR}jlM?2%q z?!H!{vkK>yX?0U-HA};DNT|hMS&%BB=E6n!bMOM}%vkEB-7Y_`XbM;OeQpk@72K3v z`m+4<8{5wIx@m^d;Sb}gxX8o8)AvhiJz$Oly+aq1%YOzx3C~&cuR5kmly&wStB~6) zakiiL#i^!pOTSwzxWd`)THcCM-wMDsCFc1VUKg@h$%Vj%Xpf#Zzqk|+0)R7)+N#i`cesA zha;5leAW{K1)UQY&#d=8p6fEV)~Gh)p-wo>_?1Ou+O8R>EDGD@htH{NVK4- zr}+7*8lY1Vx)JD_K9BTC{KSH`P(-7c4vwG@%^`ouPqi<^a^dg*0YM^NWhEsg10d@J zav3P-)gTVfW@X`oS|Gq=5q2b?wa(q!l?Ns#;Cc88J+ugeRb(W=RGEb@H29@Jui9A+ zl3FPb#V&umo6}GluNsSyP)B8^WVQStqmxbc4mwd3eZUlxEuZxT4s*J4p^KWP7R}p_ zGGmKI9bOc~(){W!jZ}Q?cQ?U#F0eS9oMO55ZcgUQ^O~HmLuk@7(!Pi4xoQR23ha1? zO9bz{mdJ?9nN@rw-*cHs#H^F6|IQYnUZDUOj9gb!r-Z3e)?H31_jmNDfv#3O$oC&~ z7E%?J2=W9}X5x2WXS;99i`mBd!`z~&YlKMBbn)(u1pkI}y}P@STCXBrl<<%( zFQ){Bapd9QD=KIO*JiVJUS}n!4~I>(!Evv7o1TY9LCZ9<3S9e}$;l?2S(LwNW?*-( zguUmdko9L}Wdprq7smnu9&oVS*02m_$<54uM{|=s-=Lr{VyF2$grmVEpDkZ7y_k>g z-Q7_=f9IU!4Rb>matgA9+w$6!TfeJW3Q5f0AA5cvCB_<$EccK>F)`l!G^tn}7a|u5>If#?@b3!we4yFaX8^Vc-g*5|vNjAoo46M(?g1Sch z&Elr_?T3VS?4-lZ-oH}QZdF#KlhSd#2oL+!{7LY9iT$-D)&evbO=k`5=DyYoZKjKX zeZ52+4MXFDKK0q$I5It!I?;=Urr4yo4xMyT_D{rV-apPt9M4Jo^l6~8`wG|(maNTQ)%#!t(MBo*IQh=rWj~c~_HPQW@@zfl*Ub!gK$QA$AE*TXJ!O57C$!Q)kb0 zVA7=9+08UxHbc99-B_iQ?NxMq*u=!Mm~jWY@&Ny8I(vtZO(6lGl!{3%j;**5Mlspc zK1Q@?%5#m$j80tcgfmV{>&k@S4fRRl?6NYd?Cff|Pk_&xpuOfaC6lpV>$a*;Ns{Zj zos%wb!1p1GOcMeHK0fd41{$Sp9F-MJT^k#r_=Ky48ARmhF}n>hk#rQAn#~I8!6S9< z67L@eukhTvo59}pzR`9kEc@q@B? zcnF87#Aq6Y-p<0VJo7j=F1O;(WP&Gnr>1sebX>|#lN{Eh1h#ne zxUSK=`FF-P=2(|xuE#I`NX^Q_1D1tXdW+k|{5*FVaAn|2Iw;^HUus@^BA>9l(%dn2 z@x7}nIESW|&}Sw@qch)!M#lmg>%|`J?nK7Ny*#qWPTRIJHSoS48;eXr`Rzfj;hhsj zWI4S*bTzkriqDHC_Ki4>UYu8|tTrethyd?-=7Zk8dy}*KoNm0v%RiQ{!f9ycV$42o zc7*^{udK=!H1Fl#$S=TF!Yaj3pDwhqvQCpCtwOC!OKEpGUq%Iy1L48^DUHK3ZvL0K z*}~5NZLahxLP|Ix&Ho#a1l{b-|7u|Uq6CNB$i75!A;IwJDW`r z9(@FkK6A^=iG(fB`xHtz*Ei6#ydtVqI~N}u)b?`uW6X|CwmxF~nq8N6e#=Gpm8C_? zU@H-1{BQy9a-Vr|%_RFrLt_IEOzCJ*M5jqNuoTKjDYP|OCRMg{AN2OOwB+qDujdU7 zj8KL3awuxiwIq$03~B_GBx&jBaY~oHe~4_4_B_0*wLNlXh6MI9(gubpmv}uqGKh&% zzHWRag_U|BJkg>ef9au%OI7k~CigaWe7vuQHt5P8VnlH<4D@2Urg*KlbI@o-MN{?n zSa`RC7Kou%wOL;23+q~G8~1W7JB=~l@c7Hx7=NSC;*`sZsI$v+7Iwgn1qDO<`#6~>WUGo7ONkd zS}(X{GCts9_j^}ykwROuxo_fveP`sWsF1+WXNsd%X}P#o_ZYs#66M;|TER*#sR-~5 zVl^Qq4($JQXJq)$G&a~%(@s zEFtT2z2Jv3vV=Ct8>6GXF%5J)!MKsyTIUI~IUy@IG&Kn1(L_(P=aD>T9w4IRtf|p5 z^%2W|(KHY$^48@jelai#jmf5|kC)pPVc+VytK<1;ffy{_J@2Q%WAo6T^Yk-v@>dwC z_=Z(Ot4(8wg3cfE|1gCUJMY*ElAnp}ifUTnI~mp}@8SfyUiPq8G4EbB-`rYC%}*C< zsLCQrU=4PQ@rk6-si*wdJ4Dvz&-fs`N8;B4-r)AL-Hgr6=Soz{DlZPQR5Cz3jw4D% zow6c4r`DPDJ1N6;j!UkGN_;z(C>d?#XrTGv7sn0a{$UxVJI*AF-gYi{qbMqf^&9HS zuhtU^Y}8|AUX|P72QzHDFMa6Tt*sU5;uu6kWlWb$;a{9JwC<`Y`iMe6!by^B#jLFC ztf6rS%A6Md=+3X+owjb_P~N-8S6<;SLEq%N!)KTu^!jZzdLj_`#-Z6&3#WY)kwwZ2 zjIbNvud#nMH^rc~;V}6|Jby=rt^1T_7%cGPU^gCAN*{D7xyx}@e77ww_Lex``eEs+ zNVR=|4E;HZDXouP?Nq2uA%5Hl2R(>FFU1Ii~lWTpVrr zW!H$})b*m;m2@Y_C|IW+NOC={4@bf)yyqF46-7QV4FotnG6ZqS43_f9MysNJsmuR2 z3mcbjWH{#=jfsy+vzJ{=8LQq#h8~x6?<&KE_==1C{okFlmyxk$W_V~CCw7mT^^N9a zi;lW}qz(@=TDBzrer6_kl~PNTg9lm$(RT)RUdd-?6=Uk5T^XkUD$!=jR5H zpCkM4PoV$zCtSJt$cd!50+63TpUW?n`*St2H}Hg{_lED-?QGQN!F3-0`Kk6EoZxgX zxhVMB$efKOTn`Vq6K+})awjq(spsc>=T|;}6t?*I7BnX0XTH8nFnC6q^P|r4A;4V` zFvl@_3>!~B2`MSAcG{b_Z~sdJf5Uek2$ui$SwUe`6A(ncw_uk{hQ1vDyGz_cyKQZq z*If*)Y;V{|0Oj9tcq!^o)=I zn7b7K?gl`-146M2K;!^0rB-Owe+ANXh}L?J1~l;g?X$zR26B|ZcOd{|C_pj;;wsRC z&T=dc7_55%cnB~Hn7QNQG?akY@e*H!@(jQ!wtxvAP_^jL3~J&BES=3jYl`4Sk?v^d zcLR7hE=uF9zT3aCtzFHUg9dnvQ`I zQ=5Ka`HtA0zSOhtu4481T7;1z!Lzk^-Crh^fX#rV0Q4l!_b&fWSe(e4!wP4p2Ta9uq873iRc{ z|6>7#0m$YVf^srIn-3V{V!@cv!qD4*c@_)$_7Jo1o%;u?S;1yzW=7yuaN690Fzf

-N)-@W0ZQ6xW$o{mTW*v-Ey2BA4pgHT z0Q1-aP!K&wMKF0MXS^Ww$WU z=;Z}6?v&7rIxwU}8#fNXL0RIkzdr-=?Ftr*>bcv{!2iBLo>`I_^{mUoq?ELT9vr+!%#l5iPcB9*0%#(2G z;Q@$}O3alAz(vC&(^vlSj*4Pwnc0Fs(0T{Z$K;o#{$VA<*JttI2^;`?30-OLzx=~w zp5}gg9jAL99y6x}@l`N#2qYEsKrB}{0BHNS&oX0;*O@o~$$X)=t>I_dWtiwR7zIGU zfoA49!uN>a*sFD5#z3C>Z=W=+UjWNY1@FY>^Aus&1@6=UkgP!iv;GLEo~uz^dP@JP z_YICv@;{j&Lm{$3fQJN3Z8JC$Ev+0o7g+w#ruc@9;vYuq-UT+B)*+WHjt`g~1oegj2AUwCZMX{UW~M}uV5{U{tN-xQiYLZE z!wW*@b4#G|0Ctdq0LB)eHx+h(%pdb$vtq3&LVtfN`oj*eUPML@sI<{gfTO~IXy@mZ z57CK@oN-TT1p>-K&Dp_PLcOJGNMaP74gC-L7O$|CXDl+;@<0~pV6 z0rM>h0u~6_K1go>io$sFYg02fpiiniPeg#2Zug3eG|YrQ%mje5_jK+&0ZtY&VK}J( zwLD;|7&Yqpr_oDBSi2GX{rS0;6dGbdrKlNUs|-d*+Gn715)k1L|Jj+j_(+IAk3a~a z3jQD1yu}Sdk&~V9~TaQU5lKoe^~W9i8{Kvb1N%3drkmT1z`2KxeIvGQ$QM1 zegaVv;3|d_ZH8eDkCGm!h>F@JMaB>eI2T1Gz?}F%5 zgK4FfmF<|4hWs(gH6kaN(`SG(1`!Q@8pIHRvU>qa`Y42f4uSlGqV+kjz%-DMRER{)-0! z%D%hc_L0thgsvQ=0LBSu>Z?GFr`+}rn`7Ei5g>y>stnQj1nM%?-yQ%vMwA*gw6%=^ zXUvuA2a(I{GIX4L@z~cz(ZvN=iiq#_8g@UbJx)cb$|3J4!o~*Yo=S#h|jUyUO((36_N|k_(*SXL8OC z8-Jd^OmO1lZW53C@z9jicX{%^aqVv)F9f6{g8Bo8IZ8ta_Xf|F3ZXIuCp7`Vs1y|| z@afSF9A!Ce>}VKDeNlsD)KBT`I=Y6gUv zZe5wz;GxsT{%oTtL`Wko`5#t$)+xDwH5niq0stjtVq$_q0U<_8y0TR&E=v_aU?`22w&<;(r*7z|%}XRUitc5cMOus1%TNfi)QdJQl$e zAS^84MiAc$3K-6lZD1R&w;|>|fou@L_=7w1>wpeXL{A++xF8||o*WaQB(U9GQ3c{1 zC1pvV6a3pJ%?p?uH4(Z5L>V4ZmwQrDR5?XJxCjI;n1~w!<_%EN{t~BxB(+>fpa@A5 z=q6l(1Y@okn1bPsb09l<2SBKhJG=x4DWJnul>gZ&&p}{=Fc*Nyez4Qf)M3oT40M&rP&ICkbfU$cC`#A+5_ngo+ks9b=(U6vTO%D;Y2 z{UNVPS0Sv!`T!23MQ;Y%+kD-8>NM=ebg@u1ZQ0Wnc$RC=d}7 zoU=H0uGlD@rJl|2%Uzje>btHRVzoyn#Xn7$CvSVFUuoEHC~%;jO!}PA`?FU&8Hiai zVN?4AGkey?KzQNK<#*~#XJg?&WPbo6u!yN8i9DYNwj!xi1w>(E(h;<=GVB+-&&CX~ zUtGodmp_|CKzp13NAj?|79rX;0k5W#t%U9kq&))G6CVLNiTo>M_f+EU8hgJT*QQQL zUvj`@RSeFw{_KDK;1VEAVS?>4U#$mr8WWjhAXZ9%%#PRP*Eg@#B6#Zm`;VX3+r36{ z)SOo~&{VPz;go4{K(4U}m6($Ka;?wk`oN(Ci<5oVrCjTzkm>`x)+Y2azL*E42~fRR zg5-pen>!M~IY?P)Qede+`GbC=CjfGGW<}Wl?e55+Hp_6;``t}FD7}>bkpUF~) zWIbC&`?nwef3N5F>&hLwf0<+Ck)x+!!;z7e?pF4Y0?9=P4*JfP1L2wc&Yr?a%>VFK zixm+5=BVX&gC`L7Iz2W9hU3XnpofdG9L*^P^%<{aEOfZuQc{&6 z1tgfw-~_ky&sgD(chMPN%>T3^89vvZ)a1p<8!p@4L@dXE6!;WSy{R9PPwId1U+X$Pl%LoZ?$z`d8H znoIJuewPG>Rw7^ROt}_$=(iqM(*)9Kaga7aL?-=09iSK}d5STPzqlyOC;sE6Cz;t^L z57_!HBLGTVOz*h25TG|M*7?7cf1?~m-q61dfsXooS|6w>7 zfy6fqR-Y|s3;>f=3xtZ*&wgA1MqL1XD`{vv0Igfdl8j)~p<4GA;;DgRV=2gz_w;ES zkf)(K7*`Lz9#UN`43+K-;F?DvjIrRgX=!8rhx-SJpB@;4p3?zXDESQo??D>?6=$gz z(g0VO@ko{;5cLItY}yUCJ!^0P`&_iee}=%t?8UsaCt%p@<5vrfzmS zksDZqGGMMC;XC$~VuD{k_S)*jX#4lQv!50{W#DvNYU_XqeD}?J(5(i9I4(c?tE;Mj zGyCKcRV4CoXJNl!Yx}pw1g6Cnj(85QyG5oP-h$jBK@%-P@qhN=)dN9l) zD4HSalW=f^sP+LjI`H|RpjZVdLZT*VMzpf_U>W@Yb^s1$+HA|Fh!^Hj)5X zG%2jSe7CV&bdG!S?eBR*YCm5Wv|d#?B6FTj_A1F|V^4;DadlSkt4=9)y~mXM9;V3h z?N;jf=OPcQnFD*Un+EH+V{DELAFE*wyw+I#oSk!k-GcM!K4~SSZpyHrNYmM%0 z7L|CsM$f%ZRuIc!S8nZ_q{-2%a*@cwzLTv^N=FV0TUg5Z)bf+G4#(R$!%-5qZIO63 zn@;r)uVcMpjuJ#W*+N-%v2kN?`$#;6;>TOMThTbQl(xADW6I;)pYuS64fSTpj~DqC z#3NJZUvD>8#T6&~OzUJ8k$xP)bTF~k{w0qjg^~Y^jeuPHAy?Hy#?`BECu1u$V&zPH z^f!1szn;RSUPfPOtX}d_G7NaBYBj^I4KGC<)BHl``FU2CISG>|aRokfR#DwT+I;Oz zb)4VXNcpDRU;pZZ-^4_hzL`J0U^aQ4vNVT9AyS)2%4l74{qb7LgQ(pLQrRi5pJUeL z)fySE_-ehCvey%G;yul{ofKRt>y*fGQpBAdDs6G6K_p@14dgN{|+~Bcy#`m~DSA{}V&$CJpx_W?;XtmZe)}Gad}9 z(3>M8D=qxY=ETG_bEA@b4?Z=9!nCq!I<Nqk*JyjA(D%c0DXQKTgD3N$_q9zn-%eZY2&xYXCkQqV*N9#G z-VmQl1-1~SXY1S9tD8Zp!&P3NFmw)HmFm-~q3MeMdBz{;<3Zh1GEWrg^#qb^i#NGA zwMTxK5X~_0SY68gO`5z+w)Sa7VYJ}Z#qYZcDc91!GVSv^y^eOeD4*+CrB(5gRWT>8;g@mko2=WgtebXZj$zkcNw>_+~UWgz2LlOkJ| z$!Bb?)xL>%HBW`uq$RobWTG72EbD1B=8*P@c;|GbH&Gzb%W;N70EW+5ceca)gWUN2 zGiQaRUma5;lpI?2IO#$CVs})=^!TP;C?#{NPKmMfXc@dOVJKvYocP%?(?3Nw{iP*` zdR>i!TUkUY;}fhrJg}d0Z#qQogGIAdoNN_YhWQ8a{$3#hQy`2iM(2$Y`ywD_%eUV) z)QX0V1BUgmSG4D(mzv0u=iMHWm_yzpHnA+P14D~>AFyGyIS-@KOIO}H#J}D}XM8WD z$=5!ZM&tN?RFRFnlOvds>F6r!@41OLY9C%dzbr?BUwp$Zb-4-D%vPVmlDRp^{U$dt z%S;f9RL1L3jKDXNc7iB}SDn3|ClW?K_S6vWeJ_XKkj&+vue}lAH$!-7{b;DMI=FAJ zj^^DMwJl#^M0I!M`R5ov&;^5fr)0HGW0a=fvaQ(`o4@d_<{Eqd1s0*6ZPapJV<%@Y z8|NzfilJ%R_0=Jq0)m)b(rU?K`DdYyX8hTf)3j0{81TcIwr`I#YajOFw|&mxUyt>H z=V*OoDj&)8vbVXm)x`gDvfHtRd_S+05B9p6PnC9gdtV+2leEmQ;MZXI5)$7XVZ@|8 z+J{;RABVIHy%}%0yBHimuk?%aa!fg8zM55?byw|OiSK*NPh@JfE1IV(Fk!F;%yA!f zHMZ7=%9@b2eYF`TCJlK%5r1fqRz|O%WU1g)vsLzCIl(xmEUKG_QknL)jH4ktm}XUS zIc}IhO?X{`OPS#mF{l| zt?|NQWvlRjx%bTsy8e5G?~1*gEtdl?6OL7#P3`JRAybS(%E)N4eLrDjb<%m+si@?{ z$I&rCq_C)H%6evKqfH4~O=z!jEy!@Rm!qhg7skYHk4veIKDk=(XZd%rhI$NePKVTM+OSPNYyFaUk%Wo! zQg?}Yw(k4XP1gQ_(vHD8x|qD_1p_^K%Q#b_nQJ@_q!#Gop`PtsY22#TM+Q&TC_Ue5i-e#m!?cB;U)U!4M#Bq zdtyr*HPxDQVO(I$em#`$;g#{hQSb4_+?TY`)l`UnWO-^z&*St;nMikqHho#asrvnVACOU!hQ664r|Ms@#fN ziYapAqscr@k!rTP7V?9<9V!-x&zoUKqlq@fu@5!^!&~(H&N(tQ1M68)L$R%Zc3myM z*m+=yG}$fDja=Jgx)$8ja1IA-J0nv%u!aa?s+WqBRZYu3ZI~SgNgD=K%3exjUs>(u z@ei&`lYm_?uyf{qgUI5a8%|~LAfBkHep@Wl0L4AjmnA}xM{AJ>er?@+$fY{%)Kb2HPZ5E@j7Js&YIPce1F^jt?JeF*nF_eL&r(e^~X<`J047r54A2dk$vEb zWvj$AokXWE-4kD?RhqXM_Lm+@DiYXAd+=7qeqDIo?D$TB$XrnP@F$*E-4$ZR{P_VS z{H!jdw4n+2=WK@YNkf>xOS=qk%D92C{?@7JL0QY@&RY*+VM2hCOQmS#@UT}*-sJt3 zNJ)7Rsp{I{*MpRB&6KXI{AUyd8hiF4aPp?N??~bc#CyrS2@-j zslhgvV88s>-I{b)mIS-{Lv_+AGmiiHWK7e9@@!J+N1dw7uM?eo+~88m%%@y(gS>4z zi=lDPnPD=FOw(u=La%Wykqv4dg(ey^f|s@9D|}h6$)SRC{nuz$>mn5+-M*i754^Np zDc(mF3#n8lUvLISCHrD~+;3QHvcUa0<;KFBbX}LG=UieTNSH3-vuo+8xqk8c^Gp}~ z8oSM5*zO)i3LLTa^_BjxJF-*7k;#r2Y|mqpe$)lA+p|4S9-JrQ%iC5#`I=#8nv+JR zNxm!8kH?gc^A#tM1PI4 zLe#k6`CX0&cO&-Duew_^$4eu@IZaYV>y$XHWbgF{xn^*vrILicv-RJb+~0}a@0jgw z>8b-);AZ@^;B9G4tXC4^3KoHMM89LNiK?2e9+>zK8_zf>ywMh7gOCu$rp$?qu_ z*n=5Zxk4ebWEmi%T*!M7CCNb5>;Ama%7(LRi0tu}#>;dUF_@a>?p9oUf2CQwIph8g z1th@YdMl^#R%LAT@vlBRL1RMyH|*ecK2D|)jJ=OhWbN&|E)BMhv(H-@rAxFM{djrO zxWJw-zHlLo1b@A-Nqspjz>geMCM9C{lfPXn;iN-fy}+Y=VIPm zpYz1RlEn~DFwz@O8^>|6`7?rXkyd^lWo=!eTF`4Jfe0PEJkzH^w9oEI8Fi&FOQ#na zp?2o?IQees*Ya__1>`^I_yS@!hqF_Ul9FfrH=#fSr9Y%>0-UEOPcNw6p5g z9L8TRkp0N}=q44%N=)^q@@RgYhq^&euEbrr6}O-L*YmorX9QQe+3@+pccb|GeitQv zua<~bT<(3g`C*()?E&S#PEikY%-Itr4w~C;Q^ZIqqIJDN{5AY4@$}ZzMLG^B?nar#S~!nAN?GoD-mZUf319{aV6= z>47WvcverfTzOl0Uc#(fG_87M>NK}Ym@wmohx!igc~U*rE!(~3MR1YW+`N!iYfrk% zxz}cuua0KR-S;WupU`Ocl#6IR*%#ZRx!g*-as>6CkfRIzj{O6izfJ9bde)w-78JEf z}70v9S;8_CIR+ptp#O6I*&DiM7H2{GbexG&j^h zSu_32?rHV!U4tA4=|0w#w7&_dAM3GGu|4H5`*5nh>ic}3E&t?x+`P~wrVJ%<^FKxF zkVE@ceP5+i1V^M?p75Qgt+9b;~&97N3 zMSs1nQd)f3VwHVZO!<{x4=*J*FD~!l*==m<9d?7a|EPK|9Yp66JmD{>mQvfR^!4hu zeirx9I>{&oAzRPqk-JY+wH;@l*udFiBDdc`JmYuIz~XwGLe=->D0HJ${&i(-=u7)G zS6Vl_QPYR^<)nY00n>EXg?V=+`}5a+H?*zTp?nX^Q@&EBUCZgozpM7Ajq{6q6{8oi z#qJJ=5bN)Kuy~}Qp06CC6a4K@cou3I-uW{;r(eCAj%u`LQpd4SsFqMRTmGafKGaPz zx~u(U-MqlNb7>|s9xrlVKCgI=m@O8+WAnVz62sjnYqDpucG|^PYM~3OJ-L(`Ex&)C zYD(LA-s!i7*^7A`IT%>vYRw_4lXFD+L>M#rAm5_6YYgS7A3w-@ymYVl`CfGWxZ%ya zHJpp1$Sb%f7@{Rf2S6_d&$@`iE2VraRlKekon26%24hTp~xs z{>v+Pl3Mw5aLGmHS+tLre{X>u?T&TmeIci~JMZfRGPxoewz0hock|KREl~esp+=+i zn+aRDahtDg^A?oEd%KF_tBXdSxCC~7&sJ(K|JQMO=>a<1eTUX^FCHP?&+HL)k10Fc zE}1QT;aGmUsF}4oalpj21(R{2%|@p>E|0t-*Uz3Ql9BzA@xMzvU%jyW%7_~snQ+{{ zh#CFVvA^4k{Cd>5PbpaG#j6ZlX|uQZMPJgIlvY3SDJ-k+i`^T0+s#G{DP~>bFLZY& zROWcd=X;Jh#R|(U5QiwLAFtU|yM1u!kk#I>z%U!$6;l+*t<_`Kcv>AVkze?stR^D1X*j{h2qv%ZPK7F}1*XHk^Ng(GKL zo(Qup`HfCwjQu_S!XPPRA%^~rqA8=Sjo`QkiTdbj)`c_~MgN6gkqhFkJ^KKceBF2O z9;Z=*k=LAj3d7p6u!Yr=`bN7*O_M0j>@I%Jo{qo=j?vYJdnQ)RQ}aJ{PEP{WBlBvLs8;@hAGllm z^_m>l?TSvml|*%W?J+!jc0y9SMWg)I&e@nw=hrKgzRoVqHoZFKAATY7>>Jt!{utN4 ztG0TZy!yE>_@=$bgYAbt6Ik)EQj&YllCg~RqD-(u(kF$l4JS7zX zH$*FkuUzlxsuR?yI`Hq4hY#ghRQ>#pbEIg+f4+mGFmvei@?Hx2NXj{#@8Mp1M&(=4 zv&WYT(#0CS8eL4a(wNS?CuAc2D6-o2NCJAF`>Z=q`JWmvWOovAp=)j^>TzN2Nxvl( zy}7oblI1y1%hiFK{fc(;byb#52FeSMk##1W;vQzp7$vm!rd<=+H|?4?U<8mMK5t2% zPgAAucZb@2QG~$kr&S`$i0t~;J{gt(fCv)^Q#o*aYn>11wsySS%yH%utIbcQevJz( z1V-}LcC!-Wu>VXy1GO9I>XMd~-MszL191Azg5M?U%XB}cJ; zQ8}N4UN!l0#P3S+-%R`8%V6CfDfHxSHl8?~DrL(}=FT}H+wj?C_}aw0ZsnnIW6N(P zZ+2-Xg%FKwP4T5mwH5m|if#Yx{FX2KVM+lI0=whmL;g#}CU4%qdS3U_*5SWszqOa& z(_;`8zm(@TUmMd&Yq}@oD4r*??IS7o8|_;N0$hd5fL!ekUI*Wc9mPgg!z-Fg1+j}O z4{O_fYHFzLRy-an-^aE$GXHmF7iTipW`Pm@_kY9JG?!}lefy;wxkjrkh!TB2;hX)U{wo{el#%^~u~G4&I%&LQEZ^6}-j zc_dCAHJm^ROC*1C)C~ly>BglOK<8Ti^GD15{6z%4ZpP!82P61Q0_OrsJICzYE!`xW zR?$z|a4m*xmpapqpr{jfs&D((T`#=+Q_>4Jee@#r_r5B}?L8&9W4zmh@#&+=M`#x0 z^9JN9!c0?zw0_rDxE;|>ip3{FYR-$yA5JamA$3{S2hZK;l(7AT=ZP;DsKs4u#O$WY4P}0~KUzyQ9N0C~~4tE!(F(Wn|wM=T^|D;O^JIYp`p!XFuKc!=i`I z{>ckpr(R>dRaxIu()LsO*Cm#xhn}U zk7ai`a9=#E>7#mup}r5I@Tg8P{%il{aG+^)vt*NG!_?h-rx#1{s0^NQ8@QhjNvp9t zW`67g&5IH+?fYc&o6zQ_U@c&^<$!UtImUr717MK`7`rpbhl|m~{_i65ljNO)`B7QV zrk|-gWlHWq!l?gpXY54Pv*XJAPhMXI%=r9m$OWV6O+iOrh{XL9Nm4kh6q4JU8U*xH zorkNbBmMl5f}f$x-ZyS=-tKhge^7Ae7kzS8l^9M^b{8uiwt8Ys(%T;4VG(8LH!J-N zWwxgm$t=|#Hm5U};tdY0#2auJ7N)!zTNjz{F{8QEFiYp_oGx8psSyY2i!c&Z}v zJQNsPCHq#Rd~p@Oen|=Ab^o+8*gkdnYQ+A6odzm5YG>b1q)Z4!i27wp&c>>id;Pnq zRrHf+vwrpm1v=daa>Nu$MsA;&UAc@vP`*-a5H0VVFBxolKZd0Ipuo$`*p@9P*SnR9ke@Zb!u01XJT%NqH5s; z>S_Eg_aFSz0PU|Ttjg?D3?`$Jo>)2I*H7l;IOYG;HzQg(dc}T=!R|F#HT}bN6lckk ze;K;&RU3EP*{3~gde5e^znNJzrw%7+>A2w)iconCjqPm6M!I34ZabBL8@FHQ=RCU* z!@Kr?#Ed85Ai8>OoNVp!W`fJ#OO&e?u{1-RO+q`3?JkdIazjq#+!H^eJMU#iKepZn z8joD2+wbVr$@cWovmGk^yV!hf$|RV2d;_coESRNR71FBKu7=nsJxMU+J*T3!HzdUS zZDMc14i-O8M&LDTL7uZS%TX-Pn4dhSNX?m?Q|Af>+I@n5;9hFe^I=gxN^HY7TvQcx zmSX`W+&>Z}n&!oK{B~QpZld<$m7aOA?J<{Q=f&!(Ptt9P&_>WI1`2WOkJ(h9Ja>nmIBufOB z2jfLz<7W_uGO^GR1b;oz(xy}0Z>j{4jEE9d-mAm67#|RG2qh}Sxj;?XxPqZe# zJ;6e~Y?yyocNV<>ryBFaM29;DSD$^-!Z<<{-|xzAPcZVLMI998uv7L$g6r%sbwWSK zf)OG2aMZ0zlcDfCVj;XRKo-OnI7y!o}uQl7^Tu+`_l$9A&~!{ zgH^Hb@L|Oe9xdmU+2&LOy$ko>hL$L{)%^Mo;O5XY_Cxky^)*3!#nu{GzhKqB4Hh|| zygY)lBy3Nm;u|g1n~pf+U#S_zR>SD&LOr*b!3hm(T(ZCH4fcQ=^{Ekl=Q+4gZSNT=9A zs*+=oUvXYHBNVhotU{7Sod&RlJo+oEF+=a5H(C~3P9vj7Y)YBN_v)@(y_yYP2e{x5 zLDL{6&v3R3kBq#XL`^7aFs^0yR4{6uPppF$jMxnQ*05LwOEaBukj|WKpfhYQa0$Xk z-NVZ2_u|Da(2tG2zdXhjqL8j!IA}2DU2o)5x%m8Vq5zxH;I+yJX@Y0ZZri=Pzb(%W z`Z(fwg2d(!_uQu&M6f;#_CXxhbzH$Blg6^kGveyDYPeT&cE-c$o<9a{X#hR5##+9*d9Q_o;aMJ1W4(y?nvPc zv1?`;ACsVzgFj0wcY(;E3~PYxLN*rp8Ht2lpNlt=L8qT_u@$*ZkS+z^kHh|oG zALDsDFkiup<`DB*x3I9_zBKlMMfl!2Tpb+a$JyD|jOEh)nZB$+{5xh?%*jlK<&zrH z(Xt8fvEM~(Vub9GIDYuT>(tVkV7R&;rw`(srZ-wfP&{d@q~`YUw$=RW$r7}de7^Ic z3QX4t3RkjfoGeI?@N^~EJfNT?Dcm_EtjaDlZm_K1873Kos0LXb!8Zech4@hf*XQ;7 zU_2N}k4S=Y0MdKI$1LkT9~0*5Wc|50me$>RW+;~yea>b@`q0O^+FFxRA4UX78uo*B zIQQ(bv~t)_>hA6)xR}HORNNMXp);P#&e75KvuTfO8(P@T`TE4J(BAQVf?fv4rWfol z2>57Ny}6m5)%Vh?&t;8Ibms&Dt}*b^eFNK7o=gIHBhGzlTYrD)`a=-z7=eupV$LpX zng-|oO7q+NcrDZCvgA;*6YaviGcMaKtoS(;4j;-ZI8}(HB%iT4k=W1$Hd)B<)p*|L zUaJeH*6sQ5DyIXP$rz`I_~LJ?o7lFqq%{lkIj?%JbG_*GHbymrBF+o%?s*7E>pLU?+=}M#PCb6 z!84IzPjZt*OQG8ZLPr5}DMCGA*xAkZ1$@9iNQl^c)HOC%16IxPrnomPyLufLCm20v z=~dHqYlsBkd85x2f!GKy|MO?*GQT6dA<8JndT&o1=RW%O-Mg3AntZRnni)GVToCY5 zwbF$DG=eiF?EcaIKnECc_3;-su1nZD{1~VIPq(pLlQ0>0zWqE2|JE5fdxct zS;P8*buYuiza#18L2P7^6Nz7a_SV-;sjH1Y`jorJ*)Bd`^s=8@Jsgt$e2EvN|4J}X zzu@s_WoIMIux|FS*Ge5a{Qv{%f1-Xtl6Lds23X>G#ob*T(%M@;;xB5nj^fc`BOzPc zCntJrZH2Vs8_;z1RL$!VuC(l7Ls|bJ?cWpnDx}A{QBP87Dxpg3{QUnT>fndvJ5AJr zpT?I{#ebvVJJ`{ckP~OUf1ijU3G&2s&aL)6DvPpw%5CKJHu(5t(7;kOc{r3K2^#-;1!WdJ`1F%VB=>)R zo~#qrTdYt1{Ys-;69}xW!f7YgU=jWUt5olgpz1>bRZ&wz#@VMzQt@lDv62ig1U$|p zFog+4H|hh-O3=w-X57bJ_uH$gHa(JI4~XF3z>!~o(nnrSE*|xXQuyhM!zI%WuEd;% zN*x6g4fTr;2+G9TVBFA?h4U$rRn)*n@GOm0!k|}W`%^^~6%%AB;=)0J zg5_?tkazfngfQ|vVtx^AdXLLwr?S3Ouw-0F2o`{zM$toYneJDL6xxPiNvf*q1P;ye zOoJ*!_hH%@_GyQ5_>BbJ-D~B)VqT#=WY#<7ha(pkS4WhIs5J=29jw$eKJlJA7lMUj zwhL2aXz3`8@^8oP_g#q0M|*kgDyFSsgQXz=`F zTRFAG!`F{`hYcwX0Sz2{XJa-(0OdkFA<43Qzf4RChW4wid|;psw1KGJ0%_=nyPahv zB@e*~4)`qH?!z1VbIj(0#i={xrRC*z-QTuBe1u&`12q>Ew_F)6|DX`+fNAn1bx7Z0 z>A3Q49gU)X?Zr%Q{$nq1Nw?uk6Kf!_Z@yr8stQsL<;52SsTI}DUPLV{6opJJ(DO1{ z5RB&I#F$4`w+xIG8<}cf-u{%AkI$HhSor%y#A-|-b}A=I7P$KD{}`8N@H4c?Wjd*m z|4v7N2=O#Ligh#kaX3s-7HYoLk3cEcGnR2@%Xvqaag94U(kr^>G~10bE}QxO)(>h>M7b^=r0AdvOAEqqWZHg0-g# zw~p!M4K6QCM~m1!M!au;YQWs{$@52SlOmj_F|+R+axh;Ka~gkV(ZmB;&#J z#hu?ZI!d`rokV>Q{CgZMXJ4i>mzo_fOvZZXhVvh~-yfQr z!Z3*XW8L)lUv$FS!?W|9ph0q=a4|JiG>S$jZp5e+&rjYc@P$DK2l#&Do4=sL`4f#2 zi#ToBrmDYln`SA(dgosym25Q^TM3s>)6PgN>Y)Z+rSuv0>36fxSkrxU>&zb@GlM-2 zdN;OgeyOT@j$5I)@)LCovU)UvIw-d(+8KwCW<<~3`MD|nZBJTT)pEAxREJMlgMy@h zv{YHDMk-NbXBJFtH!(2@e`9IhHM1EoThNAX?5Izq@*#H-A9p~NZBO!q8yMZ4C^jI` z^#0I6JGC1f>Sr_CVPJg!an`t<_Dtt$ax{dV&a^ffOF84fZ%6TY;>a3;CZV&%wIqOS z9BY;%4n5<$VmeQrwD`BSdJ_C^&7+GhDYy(vne;Mf&QrQp7iMnJV@u@JRF#0;%%D1v zu5pvGxwIPsl0@v6#0pJsbYB6Hi^b;AP_a%9CCAx99%lZ)#Km0b5OPr|oK4Emn?^`^ zN#a%65B|6xb)m1N94k9cVtuhz(K)HA5g$k{i4Zd1M@L6T zDAtKI?>PD$8|oA1JuH_Jgsy81;GuRS@53BIeyxGNW1VGteh90C>z+M(q*0CzwdI|4 zn-dq;OHnYF_ZVPqw4;#~rp|5YD4CxsIaS0j3+-h%YdCP{P7> z!X5#g>T8rEr~~C%U0dzHXqun!AgYFRgHNGE_6EjLRpf@qy$nel){fU>*D;nuTmkvI zqAo1cQ8N%xK-78dDXL)*3M^U;UGD-lfd)rxW~7-ODh;fP{felyu02~_id2X=3v1Q- zbkbQ=iJQGOZux{cge8j_)@>-c1FH+dT|)(SG+4EK6CayeYc3GQ4-y6UE+(`Od-v@5 zjEuqzwXW3i-;LNa9+6-Yr%(IKXpos1py!2vXW*TronaOeu21`!*(%>pwZ& zg}GjzKAOnSmi73_uaRDzd5iAgqEGmg8xA}Bj{pl<6VJIqn4_P z)B6OF(_~+mp`fFsjWiWZWCn4Ax$?EhRGMrky9c^FU@nBp5__$IU9pI2ieIF@vGO93 z=DuuUBQ_O-6kkT{lpkJFjTI-ov24k?(~Lu;M83MenLf2AzAE0ZDSp)k671i(R?ope zC%Q+J%GA!!2uL{T#4c7WYd&K?s8+P}*7*_G6{;V8w`G6+o9B$DiP94mMZ59v328kL z3t}Un_oHV7W!X4QXBI*Vq{R@dR(_>vVE2&% z&#(0b>$fYV+}05%&Ebi6p_)weT3f|E#rERzm8E>GR4fQfy!cGgV-dZA9Mt0<9TX1= z$7_VESLDwmCi#^8%|owhv71#~4%>Fkn%*$NgvkUr25l);do0zmRq@b02=$5k0=Z_$ z-V?HbIX0tNRjQyX!-iUC=vpB7>qkN9FP^0E^N9Jxtb~bz8$sf{32V%sW#FJ?eaex1Q$8=0Bb?AvGGYFN)0zYL#vkMHgApee)Zyg>n0wzY29B@D|Wnh*7SBx zWCL_jyqM@P+;|JMCUx5`t0!atpL41SgJ@S-MaN^^i!wn$SFh$0>Fuljory~ z+WT&?hkfpk;knD^eR&LY9L^-C(BFQGqBn2fJ`Qxj2p(Srix!jHPr`8cVp*$!U4w0&a+r6{zfyEP$8bYb7x81l-vT_fe38h#gS8%SLjrjChYLlv(&aM9#Zt(s%24XB@P!{qGzIRL1#b*&^jsIF`U)0@ z(+IKh-Me@3eYesJ)OvbO^~xU-GLuG@pd39@A~@%g;)SUR5i{TlL%e*5YeP{x5Dy^L z()Ppl;EdjTXz@1hX8DeYOZs^47-YHB3GGx(YEe48=m`q~?mRgXNJ>9CMo_cWf;Jt- zadBv34PX28?QdIAeIpsa(9|w1E5o(E44D!Xe>+f6B?4O1@F*{9+;Vk#v#J+u)#&kj z3siH7H?xsi1tFZ5TuOJQD*@{_^>(vPip3uIZ1h3U9FQyJwJHv^ zD&nd?dgEyXN{xV!@D0Z}l@5-yFBte*mI7?hxWIhhMqYwG_TmpcE za0I&((z~1MVVw}rF%J@QcW2ePdH>T|x>ee$Y!|Fqpim+9gj-lB+`Jh->Y`KnHZDB| zxtqgveq0%U)F=Q)49dg(YiNih7kc+&_0Z~|kw#1RfatZzd*)1S9*7INAFP#$3%46}pW*vcSz)He&cDTEVGuDyuuj%~=>OWRg#=Usg*mf3#7qA~a2z1Pi zPm(pmK?%LA9a@O0*BuCUx?yoFTHLCl*6VSU;$rZtNe7_7&~@Pt`mOeO@mJv=CmdN{)5^;IEp*+t7lSVFf`4=pBq=IUT+B?l9PL`hLo zMJbR$ztk#)#j9j!?`L56hG@kM)0Zu~S>llkZ%AV&(AD>vMFKJBvKBa&wdLuz-(W zb}cq8{yPxoRSSh|3n11`uQiXk?vo z8Ae9q&W`GnN9)ZGcwou;v(^9uN}R6)vW@}D#?3q95kClBV(IheIyr8vm4YP$-FVv( z=k6T9vQ8pcpm*yU7~pJb*HYMl99s3ZB}F~qI%X;e$)D<7%k}OSmZJG%5;EHZ2nk;q zW=%^!jHqWaltvVI|Gpny_kHP+PKItN8c3qkNztHeN9v@Sjsa^%qZ!Lk@C%2gMfgVF zKv!f$DvL4i8`z^nK%R?ia|rk$XW`pS9oOq0LN_#GwJF832gf6!$zt2qt%Om#w9R2@ zipCk^?|aT$x0$`Cr=HZQGTG$f<&T*nDg{9Fs?jjl5+d-oM+a}fvFtG_2}QD&g2Hy3 zzt<>0FkN`~?%ip?ASw_@t~#!a%#36pmk`-DdM731hUghus*sZZ;+ftJC}L8RmXLA zTcKMR-VY3=t7+`4s(n!5z;Zq=uW1DXG(3TjrqS5(}BsTq1!qJGAN z1oiU?K0c-2W#zf_{hPlfQUqdTI@5gi98onsU1S= z&SUBkDlj1chO2%ouW%C)Jp{d0-AQ6^0v)b`@2;@68(sl8P%kT~A3xHz6(apqq1T5q zL;`x1KAx%qOVRqbG$&9uYy|KAR~W&+M?FKkAqf_n=G<{k@3H2atvM zS8!tZRpcQCC$yJk(nqRCAh9Z}UO~UN>~$K*?1KlaMVHbDZDsJ2OG_!SrCw^cZXH89 z$I(28Ipw;W*4DMKwq&|s9UXkDPri3x0CNf-td~QJ`3eYL-wkeSq=%h{&npeP)3u+R zL&?;TaFyP3Y3zb|D{`C>rUe7ofg6&zP!3LQ84>c4>Q232a_{Ji^IJC z`*7Z`rDMuEo^q}!hv+8iBt$dJ#?<1+TLUq?Hg*rE3b*qxenUfx zN5q#gwKaeDAX-MaBPgI(R7>^QXz@CGu7}(pFG?I*V%gjye3bc*P5i(8%@IM20tyKah_N=i0RBDfQ~~>a6|is3n8Pa$$)Wv0GXAJ zi`J_U^bU`$W`{t5G+_S&2M(YG`_tcF2Dd(66SZf4er2t#gtA+Xm!0JWv+5-}!+>Px*?lxt}ZWN+#G->$FQ9a5D`*0Zp0>ieV;AV86X%n zFm!|VJ;3vX*o1@YJByp8iJIYn`1hJizv>lXMTeV|l$36erq_N>WMTtIa?Y)T53FaK zE&qIdWZ6*=0Z$VNdoQ$hf(jIk1NO*rRj8Y?-o1;*1JKAl?+x7qd7~Y?{|J>npYHpu z-k6RSE%YD8@WRaA3z$hSj8|yie5)U9UG*C^>}Z%)ntE@cs#wSFJ?_fPap`+q9Z`(| zgp_@A!BBo7^7rlp$}`=?J3os&+=v`;cvB%@p`xOqD>5>F`uZNpCcHwZb6*@vrXKA@ z!(fBC5QbAKYHBY>CBd;fNnWh2sVS|m4?xW%$4hfS(eCBt)nY6pu~KP7;C+F*ZE|{5 zl-^QGZiXDjn+drkRnkLlqZo!GVftcB*VgWE|K4MA3jqy@O%z~1l~rsdIpQ%$L~_@7AJL)dJIt_|TK zFf8l|A`>da1foY+%?%D_K<7^U(7?E8uwZ^gKl~piXg-#=!HKv1&2IM07W7Hqh>zj! zUNH0fQDUZ9@9Qf4)Z%hns4EC;71hHR|s7vy+9@@F_E6#p+}5Typ51a+dh7#)Or z?%mE>WO{`o1jLL1c^TCB3YG~6V{%k;EeJO?SUv@F=zGF`w>m~F47ldul_l6wl;9Ex zyK08f34h>rkSi19B6@8mE*Jly5qhWbwg7Dz!8!d+?{afZ z@D}aI_2>S337f~~08?8|n!b>|EGM@We~m~yGzE88kw;lHo*W_*p&vwd+0)y51%Vb# zX}W%1;QftTG&CF?&tqnaa!pg0bPV))?gS^9rd-+unsIz!vn7%oaoCC1l*#;4ssjx> zFm`_Be+W~>Os8+IgS7-rA@Q;2^5j*My4V^ZO^MAg6Zn;L=OEZF#Lz{XgZYMlH&M9& z^|Kpq6T#bu5nmG4jZ+r`UZL=+2d0b>5=AnkeLg=RO~pCz+N_e=%}a3>PbjO80-Hxm z4;sSNL~*5Si0;F?GqVA|ZBWi)A*`;lY<(!@034V{R4_{}4xaF1mEd_Hf`MPwyeC^i zt2P6Of3%WIB)IGAFyJ9PK5%zr*NWC}+}zdEb0Q=Q z8a3=ua&1cT0T0mZknqR`BZUs5MadG>nd-%!9@4A&%NP$4#tf5_lQ8BCfMWtW3Ngn~ zxcGIa!$+)c0O64sWn!3C6?o1<=nzrWp*JJ&H@KltZGwFti2aHf;^-XGdHocbqM>0w znjiFGF#q=B`|{|<#f$548W4=G>E=vYe&uBJlqquzDJn13(CH5=FyYls?@G%o3RDhP zsw(z*m}gy@K$N8b56o?+ae)cnP>fPA<3)dWAKk5{AwC}yX2_fuF6i)#z^r+@_# zC*x;%xR$eFXd7a^3*ig`K=+jzmoN|j9J>?T-154A>X5TPF^M~$2KN9g%!`cfjN8}? z(^!McG!$-RHye7z{QKu@e%nd*%Mp#KuM}g3#er@B4%c%nNvTDWh`cbjDr>zvqOB~@ zGO#5-s|RIlf=22f5GPQJXl{7wDaP*t+ff{1${ieAOcauUs&(yYjUv(ps3^UJR&-I znvADjgg zXXAv$ltK(rQc~t#i~m)D({=LnX*KOoO20vA{iS)9A~2c2$*2{=VYIR=$X&i>56^I8iI{i zXL}B$oF&v!MJoByPAlhHaUul@X95{|NuhXm5Acp`Flrvkf&Gr-c$+-#1TiSq*4ZRi z@rg@s+v3=V&VCrkY8(vcG^&P;@j4x4NFK_4P-n^#UC@H%Qpq z87TPK^us1_e7qJN$569s*xzp3DcfPuqQ?rUQCld*9Kfz_!wi^Kz;qcn@@>3U{4Owo zxJSf(TI2xq3B~&%CM=@%gGUed_*O~!ls^m^!X3s~sta>ZntL4XJPlPfX^N|4Vh+>- zf^k4i9!ZtDCqgErTJZ)#JDD60Be4CbsqvVL7yt!HFTb}W7zLvnyi*0TTDda@tV5SMO%&k?|Oc5>w^utQ=H z0fStCOcLl9E{AH>o<6$U{tFj-vB3HB+6M;Xq59iKPmeA}wA9Q0YeAzUqjIch!29J9 z@9{;Z)$w(~3Y7GXGWQ>(jCQXVHTv?nbaMn9~w0qkX`cEe86C@{gR{uF*Y%ItC)TyjNk&h-e z{w_68FQ_M0(6M^@GcOed*0rF5Q_IjjM=-DP)Is$*1|DAWOwlcA7KSkL;>vl8#;thU zE$f0~wbS}gd;*!e>KJWNQ=;?G{ipeRx|973TW*Wzuf94en&wU>$(L3B4~~C#>oSUs zN^mLB@IAKF(k$^7ej!_e451K0Mj#f<&$mI1hW8RYHeus8PYMZl3O)XUU#uW6FK_fN z4{6SO{KMfG1M&E|cXszMcOGue6i}Yg;0YlfimM+?T+iHtEDJM06qoKUmHW=Bol4k~juOJ76k7F(v5iFy}O~ z&uIV!{m^;K?F5QsZA9-H+HWZ%1i0Ii+GfRmlJWZ5)D7* zo`ls%f&DDcmUekA!dc$}5m3umMRDA-dygzu6!l*oxW zL2#`E!8#syD;hjo{I{sz_mkKZ7#~`GM#IT|{(NrZIo^@H@YvW|R5X3$7CZHF0nemh ztx)C;Q)tEI1b$@H&I>oE#m9Ri1y)k~IN90j@k59a0ya1>W77mG{2-6o)1QaY6QJKy zihOztQwUg)Ml_G&}QDP;poB4tF5?cNa~P z$zAPh+n-j|))MqVrk9k9&&00NP3Z#Nnr=s5OC?ZX?apGhrf*Ow(7FsP-b8^=+K zVoX2!W6Iiqk$P>cL>1DeIc^eKga7@&tgI}2isUvj1TqKU56@LEpr5rQxej+Rp=p?7 zITVlfMs{FbDaP?P$rQ!&MpjlpUaX7<{sK9}d`WgYRWLX-R2Ke<;TYi^tO*AJUNwDImmHO$QROian>^jdhsKfB0Z%)8xhNPd6$^B+p#jvM8N~FJ*@) zZ0-;R9w2e=&3y;{P4;MJ=!OtXb7I(b-jYjC;@jz?wfDRh-I`%XY-&0nxWrT!BX$*0 zGA>P0_Q#&Jr=muwlT=&DgV|K-)*U;}iWX4>MhM$&qT)isMKngBxQ1nnTQcq0Qr1ca zOeXuVyV1fSm74xK^W*N9unUSlZt&8bG)4{V)3X;T7gmiCeUy`vV@b=t)dCbg0stT} zU_rDMP-IjrIj35Uw4+U5OXeAds%c^|WGlK);%} z%G#4GDj69M6=w_z1zSw=Et=n++7T+a^XWs{YzzvAYnqxTqk0mO*?Rb5t}IJcwX8}7 zWU8>AQ@t=`kg6G~&}(Gr*R)18B$y}3=taQ+C&+i|pB$}P-lX7Yi-?HG4p_zj^ZNRg zHhm9*3k7!1X0=JqWX`_WfJ)GWq93o(=NGMok3OUovpFck`5hmty|%8iEWt54A4s1 zQRLA$`y2NS9W)0xO(+|vP7^m;!m(0B2w1S`mj`r^9yDO$-QpAO&9G-nJ~bVWR-?7O zveE~2vE+Nc?3^5m2BkYhr76rqb5tC7MPap8X^CInjFYETrg zXW?+n$I0}(@EH;LyjPSP#X!k0mW<)chKQZd~j*F7GtY(H-w7(Z4AQU+muk>d#&2yCBmbl7|!X z8KbhDuCsz$kGkyMyZ~D?TM-wR)MlJ9;z<(h4P#y#CZ2`p4Lt*U?C&Q)YVgdmi|`cx z|FjL_w}7_MUl%7ZQq5ntx-;%M28H+(*FIPq-0+yyLRMg}DvDLV>Hg@YPp|B6)hou9 zytA$t#SxQI^x+{ls!l1yO9!c#E%%r*<=YMH1`eGwx$N<&`uOZ z+27UA3bQ_ZP$*N%kdj2ufdF7gH@quuGy#Ob#=#+kefQ}(mRNA?5dM<@FB24X>cua| zl@Bl)Xml|1pY+fgc0f6cc^Geoy>WFyC3Sh(ov{$wn(cMi4A*XHIhc%c&OB7nhC=4USMVQd+jacEN(h|$E@Af`@oNlAN- zA*BK8Romfh)E8G}WU|l`kXGO_-$8&-gs>$2MqwmqETf{Bb|ngho`1g55$Omp8DC+j9@ABY4)WKaSWlV0>S`s7Dv5bR zDdv0v8RKSra*X!trOuo=BU>d1<{FGcQ~9td&J@EHn%jZRE9)4;9`|GgQ9cV_#)Mn~ zOC@%)N$R_vQjPgm^F9X(pX|mta)hwWYt3Bunfj|5Un5`-POK8IjgzVacB2fil8~f< zVjx>QfWb0wqZXd8i*D8L{6t_83k?`C%K^cH%BZd7Pm7$}fmfUhy z__u8ZF4unMHYkE;2`LF7r6CMfks8jDD;Xr0|6WcgPhIP{np1_LJi!|KJ2R8`?wwj? zH9ckH3Enq7S=YXE^R-`{0f}4IY;o^a_;!T;lJjp2vtsA%v$MO)2R|C~QEo{Fg|CA*S84vh0Q8mAO`| zQjt0DqMmjt_UU{IRVJbSFXHi3la679b`os~|BTPoi|5COunNG0(0L~84`s_O4zwBq z`mO<}li;eLx}Y%Xt%uiuT7A3R(zB=4v}dBT9=`t9LP^BhoUWrWC3rb3P<;S_0t(Oz zT#|_78e-;PKLgd*88&J|uepEr%%PuBKoK9q9~!5v5BV;Lu4O%gx#Ik^rqDo;Bq#TW znTbW*7eZb^JyQ$&QQA}{bB0kU12ePv`}C^H%Htv;5qJ@0{%mz%2rOV!ORUUUAh=^% z*A+CEf9Fu~nrks72s4nvp;MqJsJ}qQ`PQOpEEF%)uzTm%QARrNiK5JA>&!kTDXq zy4QiFF2XpUo6f2cnx4+bp%hLCnHAW_>4?^Ju=RrgMp1p3CiFw#MRe?;H=EU5e$${l zMDPZhJxq+@F-<%rwmNXjciOhn7Upfit_Gd{cYX;(Ut_uqeBH+|jnStH zal+({-hj;>tj)IN-I{{8!xSQ19N<1%c_&mnMJ^p0Wb z*b72q0ZMmZx>e#l^ravud;z3S0#_X!+DQ=+5}wNs;*i+c@n%aV%wqu4kfMG9RYQqs zoCk-Zt3kX<@@vKK5*3tQ3gw0X4^KBis>A3cIKwX{S>>eA_>t|6{^Myo=;=Ad#iKzB zy@yd;l2XJa)K!$lc9dUAcox5ky`+eQg$&Jiqu_dOH|5pT+>R}qHgy480b+r-v}O11 z-847mI#?SX-MT><0WWUQi}99UA!rh6XM)Ew7M~Dgcbtw%ggaXZ`_NkBkr;!_TL6w5 zt+(uqQ5m8!F(Cv`?_w%n=vpEmhSbYHUwTp%l$3S?cn*HR;Cm`{Y-q?_Xe9p(;@pMB zMYP>EOHT&W({e;$H0S%A>^-B4`WUm;UZley%`gG2w>nlL3gF!3 z;m_xz|D~+m#fA$^M7e<|gTwOQLs2`Esy+HPaQg}e@?s@lMuq=9`%Gms|n;5r05TpEypunGws>)_eZDqpK~L)44$5z z(5XN3mt1^`wnlNk@cX)p{oLNc1&V;zf-;N=l{P`tBv=#VT^nEmw;y(OFqidA_ZZw# z5BV>TL*Ur2tc@5y;n1@i(4%gI)}{n}fzJdgS?2`Grv5w=QBpBsm;@3{5789iB!h6X z;U;;?T}jXfUbd&6geBfL0WyU*UQt&kVE2_?d{L5CRaHfhry+pUJFf;3r6U1%0=b|} zP~X2N#IZ0Cx5efzX{RGg$j<%e&Wi7*Xvjm-hNj;gae*+l2e4%R<9pNBI1HToq(tgY z?wS|8P$ig$$3n=Nz^ptK6>JS3oXj^%-*v)n^o`uww{PEIOExD+y#xo)`)$EaRMh+^TFbUD(5;JlF#Dxka;B5{_YArJA{tnA^ zksFkGFpa(Up6l&KLcxx2Lp7^EPLd^5voJsr6rIfELrzWrCQrN+Xb9@T3ji`zO7IYJ zbNj(g>CY^-k6`WrOK!0oe+n7I#&{^9HI7WElS#-&M2G?D?KaADBIP0bES;&V%svG( zIoJyk;(0BiY^?$cnGC3BEaKp6jui%t-};?sf# ztEk`$1_cLi^3Kf63|?8lt3l&Okl>NdiQ1Hy$*>E?^P~(0Y14LC2fnnsq-_cXtpKr9 z1I=j&UF%P~NIAG1(tO1Gh^?!{u?Iv(u-l-5B+5Hf;a!-v05w1Q$%}AO0N$Tr(uC4O za3U)((;uuwtZpJuFi?dRAOIQcF!(?XOdVbbcV~_%jQhPiQ|=4j;?W0Smno!e8Kl!% zJ(9!W|MjZUI6tjF9z(B|p<;;K2#+la+2-gUoCI?W6|s0Fp!Uo@O1J*eVjMGU_1lsI^Jd_?T}Puuk?;TT`m*JmLp1prDlNJ;f(PyPKl@fW}) z!4PZrU}ZAk_Ru?CVDuB$4{~P&1p>1InAhHNOO?BBoN=)M1>`U)|e!rrHF%+L?;UH=Te^{)b#>=_Z>{Q|bEb}ZebYl;7lukViM zx_#gNXi!l`X39+2Bcv#VBpOC$$leX9WJTGl$cl!{$fi=VS4CNw4YIN-DpG{!xbENc z$M1Q)?)&k__jP|&pU-<-*Lj`iaUREUz8W(B%nFxZ&4Q0rzR5_?f3zRsZpVmir_(Tm znlKZqcThGsjEZ_Btm(k{nyL#}xLwGRMtzd)9>CSe&hTTBEf|sf3BEc6Vb5B4o!L1)f+@1J%a-L4gW7EwzKXH!wzWQef=z?yy z<*!TVyuHFMZ0ouz4>WXgDa3dNi4Qi1EeOE`2|^b_3Pn|SzL^$6H)!W$_|mAnBp4mz z9LUZ!y9BO~ZjSN9BD>ZugLtqN!m;{=giZj4PS-Ct6TKZ3%l2!H{X`$JjE2+7VcR%# z5LfNqxcLy}LP2p1-_h$NAI20vKhR(>iF8EfERH6x(h&xiJjm`2G9$IZWVI zE)7Et?$e~dA}K2?fER{ULb6*FNiRU@PWOD6lTqbzFeOYQO$@x09eo=>LVOCP_O;ov z3XjvC`X7&*>*zkKssi$<+ehA@6i8BvOS5|7rcae2>LCYId+I?yah(zLJ-~_^BQ>B? zCa8(Ll9Gj{^NEU|u(Fa+aoqtpKq}8;o&zTw4F_XhkFYi{-hE83@W8dh8H2m*L4_hi zK0Cs0QQ(yZyS6s#NY{8<EF_k|^EB$6;O zI{1rIF1?DdRHE{Op)4U$3iUmqv%GtP{}>f-&OCOv39?9XFrY?G#daq36Xj${M~w%I zj!ie0)82B}J~Os0+3h@XOBw9&+j7l|+RqnUQZ!=1uN^A5mu--Pp+O^nD|+9*kGXdb zK0965Hqziq+F{*6pKoXo-`Cpr5{_A`IZZlu4vCN2w^B*1>3mDZF ze}8}1{q^N06hY%%ISDS;+NyZv^Djwd(`X zwI5e(w>`H1{7A^7Nz(%J3Svs6sHj*RagdA{VqrPFnV*88zL=wvfJFbLeSn^V}@} zMlAHx6JRVz9>vbA3=BMZbcBxD@%G|ow~v^;_3n`nyr%Hi92rD#?U-iMXQRr^%}orZ zp&a(`@E~;84Phm_JZ4cA!(;(YI-t{rLWo8_DBG&6vj-jTX#5;LZJucA4T+*@GoI8M;Nt zJu$EvU32?ZF0&|g&>I~8Cxr%vk5QIPZ5s_dJUxkW84woD__vZUF6J@Yk1R?(LtP6* zL;);~BuZ$XN-iY6c=hG1(G#SE#TGTI5L|5^iRPRv&7T$Bw0?bb@z=zpB=W>C7|Ldj ze#w{9TpET!ptd@GERzL{PTV5pRf}!)*hQNoWwuyLp zE^Ray#*9wg<9KcdAR`qR-^j?w%cf$m$~A2h)zhLCt#d_x&doIdWF_YU0RPJ61?MZj z50n6Tm0hfvz>X-oRndaD@CG~-QbS?AZryu6y>pq)@CYS6?i@0mBalh=K62b_-8ep3 zkKqp?sa7-%#)+3Z-j(bLcQZHV!rZEQbj|^sejE=tFRkC#Qd7|vXgbL<$lbr6| z`M$ogu8o@g_Bd8*ySw9YE*=hLMk7%R{o-d$y8s1di;~m_jy@REbVgE#PjkAy6$*!5&Xk8FcQ%6kBGMoI!%MJ z5&um@rASYRU>8Nt;YEnPZszR1*Y`X%YkD?Fl;;dud{8t*5cC~s5ZSnM;+TJ(V|W8e z`KzXQgGt0Kc|Nl0XL1LCYsh5Y3MJ zz6S4;48+LxiM`eF?x!>ChiJIHtC8y>W=G|oI&eJWk#gX{?4FGt?49=Dh(L>TBi383 zwO97G{Kbc{JX*eQW_>J!VisrVrldU=D1VXS>j70n4lE%sbD8U1NB536$FIiaNr%sz z5eI{-p{C~QsVjdP9G=4ptxxyF2{ld4uv{0AoT8doeOBcWPFSw!N8zfVIeMSxuhDKJ zwD`Fm zAnPpdLBhUnU7LXT9l5hyVkVEG-r1t!gSwFmFbwQ-BKqwK;Q}-eB7B|X#$zRv9&|wC z-<^8(Dh_K8^SH2DXmLO2o+;050IRYA)3^Htj;g6BL#7sbPrgfC?+JJvRBOy2!qI)vB2v zKZXd&;h_f1U_`vN?>yJ%{QFTcZh0FE%RvM;lu^Yp=EgTOLKpd~dfvZ3xn-cE;8;>r zlpn^ZiHnP?PZxnsjKr#J_Ylg?j4O*IKgWQ1!o^sOMCpsZy=~9yt}a3lLwXq)9!^WT zt>|^?Ci_8TwRcoQWll6_Oh$*5!5zdF$hBVsh6FPts=YP#f#}--|Deq=+_H@v%*@;4 z^iU$g2Ba(3SZ~2pSNG-@xlf~`0#j+k#Snyz`$(;@x(Wei2nn_{<_;y;Qg&x5UYId~ zVKL#`5RHVeVgBoDYiTJTFZ;q2tT{o#9>CDkva<7-%t(}DsPYIcaO7ol#~uxwzo-@B z%}NL%6~-$!V`6M=jsM9>U(kGXW4_R{0_^rLh&e#qI4>(M1Rjmsjl<6bt|vQ}%Hdsr z3?@dvsY_ZX{z_gtfMBTVJti^|(iaY47vkG@iit%cF9ECBY*O(y#E?W5gI$la&($?L zKXI_B_5O3a1?M$oHZnohcfh;*(qC~K*)vtyCF6tiVQw-7hiGpMSu_+cxNe+STxzZ> zY;6S>6=&{GRBJJbiJ_VqwTQ6qf-#d6=z@A$J0M8mwO6J#kHnX^b~?#It77});}n8B zV7%V|`qKaKJ+bT3cooy*CXxh8_V2RmLY~8`5BdgMXjBjZUys`_v*jdkiZlb%-XS1A z0GU;+1>wNrAvw0hSAMnIW3N?!dA=ljLS=^;^7UBELTei)CXccx8JkG=9EUj;p+rgB zz5ax_8Q-)`wM?qz(9Sj@bcOL(%mOjX@rP9uHpEa#tD>~$8w^fWK{r|}()G!ik6V!K zkfDRQt>YZOR8K+kk9YOsjobjG^$>R&-1IqH^*g*bVbgJ*EkA&!H)dY<_QjbW=uj^5Ch78q|a|$smeXQvE+!->(SEhYGeGT@dQ`auV-lUiq{*5~{nQiG!4Au}=zCA3* zHIW)680c-q*3$DS#i!#sx9+>FU3Lokl5~A#Xl}p*k%eAK_MK(^w2f3J9N`F>XIn$J zetin6u8e}_)u5RCSYOq8fE81FJc~sq04otcGt6~7I?1q`IoVCOn|EFi)r}2aHyjt0 z<1f-(=)oVKh9InAe982D9J`O?6hiz2BTD?MfMl-hvpUX2$F=SmgMI$j;X5A)Ej3(6|Te4oIzKG z%8yvk0j}ow=zHw?nGD)G`?S<+3AXp|7adUkfTjnzVIaTuFosko#2%kqWp&jcTP+I< z9x%=#w(ezOOX%-GlIYP(vdm*Cki)!S(i5|8H_e#dq|yiwY9cJXF2uiqlsR z4Eh!m=pYsW}EiEm~tgM6v zHc=^j+&Gh7o+9k+!+5`JN%G6<3pq5-k4@}e->M<MDX!TkAt8Y@ zBkNREW&0XVxCL0$hcFiRkgI~AYkQYFl=@HI#*QV<8{<1o@(j%5^=HQTl&uqniba9u zA!(NM{(Ua(w6Pz=b1o}1n}=p?`%oy_aCFYm88WuLEzOvVc}>>;t4)pjZk%>Reb;&E zvhl(^IQSfprV|vc-Sfj+^8yqi*&nyEv%f^P1odihJEiBQZ6fqf4Gn?7iKywj^SF%f z6@T$~{sQyBAh^0dJ569bWS6cu3i~uQJYlBXQQddBPwyYY9uyUamkd17^{wygd-l3G zcSP11r5?BU3>60l2eJJ!$k~hc5bId69hxX}^Lt+ubADg+&YIr0UN26(&K3DL0O1#} zUq_(P#C|$~qeBTiz-xdA4rZUwtYH%XAPRM+jvzA#fGo&~3Hk4+^6pt;s!6rZ6Nv9; zU?H)~J{Yu{nwrXG5`Q4{QlFdl%8Z-Gp@nHsk>6slE|#mFUGlYi*e2-u>>#m5fN%Tu z06#wp%1ej7VgZ!@2~T=@J|d|P&&bF)5nnM=OWU#CO*QD1!z?kFz(S6_BZ7Ye>Rs&K zN(KBZ?tz}!DvhU&sR^bP_1qqOPiP`=#rlzJQ-h5!}ILuyI zhE`s);`8uu9XN>Ti^osJ$H{)yekke%_OIfT3L6or7HCrONp65|bYr$?IpKK{9EGWO zbZpEGlqJWmHvqwmJa=Ceztsd5)x&|c)YMk?_VY%zedJhyLkrs9y6?RKjj1bP3q{WQ zp7=XvwfccvI?pvM0q_a^@7~=8j=;%8>n)xOW1UZ3%hq?G?^fT@q3d}Jl#af$rUT+I zb?(eH-i$Ua+HeunPp@-Gt7~qsep-bt-^|2=GQUEENbJg)mx_&JUz21n2_4g90j~~e z8cM;NOy}Zb@A+=_`gw@v+&hTr(IZ7Xbm-M~=bm~|N>m3Rw1HiN%zsgr*N^@~**kbdIt$S5~0wAm82FhZX{nc%Qb@Mhg28b{K z4iO>$8VBSfgp`kVh5GauR_&|hye_Bjv$LYI;!A~>j9-me9jr3<+<0e)mE+K_@r_!7 zeQayW79I^c$w6$TYetldrj_2t3u5TNq5e4W?H_6%x~2YrD9bADU5v}-fCZ4fD<2IY($>)}?gp&^n1KFgX$ak-kRCJ58#h$h!TIc_!RISRO8Nbm z>H51j{)%0E@Zi}>{A*B@3G$qFdK$F&__Fwgg_c;MvMUof{irlT+akUmPtkt4d_8R0 z<%EzZ#?BmFm!n~8K7z#ceX zL^?R<8jtsO!YM*8_xkpA^bXm#q!Y|o>kJnkp~d~ zjTn|s^p%XMmI%cYt{R%n^YmQCj%c0~2j$#bmR+isUfO=Ax3^a}<`q~tk;j;>#NQIk zEs`>luRypW+HZLG8lIXc*4e9|pmkRc!1*wNj5Mi;Svz9*HsW=)kl7LEbCd-d~KdUW=Z++vFv9gJlmN=MSnC`!eRy8=RRPel4 zl-54onlEZz>?c)FzG+;(7F28E>Aj_+_g1|vR1SkmJoNZG_9@y7-#NSv{V=PNK) zBxuoiD|mQ`u;pp5d5HE7>iinCEb2kvIffoT>1N*c8c-F9>;;n_{pGbeT<#7lwegX8ov$g$8p(&07lC4&7!hun}uAO37yVn*_K{WAjg7z3Vn? zKxAA6{2*KO=dWM!2GUz)o+@QetPl8`*Q~(-S|RB*!*mz@H6X|g05l=LISgeYOyPLp zx^gp4tT|!IAlIQYi_xs?0%@Ik&(zQ$HWSHO$J@8IF}pV&MK}V@N*9VdfTL(EKamlH z*#-xE67XW`fl}f55Jwcpn_I?roMm?CSdMo4b5_b*{2shHaRo%?43BT#uFcr!JG*?G z%jQ14pEi*GyVfk|Id}(=ph;lOlHP}KoTl(1ghR)%Hb`=aLz{R;lRiH91Qe2a!t<&H zJiUyuVF2YgKP1cEJwi_fY4{k<9ebER5K2G5^24itEyStJ=3L*l=bRrva4nAGR2@H( z3yNLfTn1N$5CA-{cH~?~mW~Gl?&opRCOeRfOk@{2J%m(;j?5nvyZDQdG7cu^dB(9v zQt{GsKMsM{lLo>EQE}tcfeA%=acgh-7?1%yFm;H^34wvwsDV@d;H2C~9)OA>U}2;I zA%nP-&>hmW1#PHITMroIr4em@UmYqai;i@vXvrbM;NabGFAC`Xgy6vce?bssrX>+fR>05a6*{!o!LJca&{d9t`7@G_5Gc+8oEQ6W zZh;V*_{kvyBvwbq75@YPX(hOta_OpT&z~z`uL>wC-a~1NfX!(fKi0Y7N^)Y(R@==# z5osgT)6k4K@K6FPL@QD8l&1%C&sp=K&hL`SrSIH9n|*PEdnf)m;tqB~Ewn^bd*EOW z2&x7x$MlHUH9L=u+E1akm;C6-P z1yRo^Cm26N8bIkR=u7G`_XUgT7Hu`oQ}j2fNs$M4Npi(7!owF3W;6(g@l7?T0ifd& ziW4Iq=FozdBL_xr3_+MMm;6ghOHcH3=n66)NmjfIkdzbsYvkO&!7b}WxA^{Tml8M~ z6K}`FL=I#EHiUr-O7FsTXkV!Im@q4`5!wW?cYxEXZOlPXH^Kl>_7t3YQLudSLwTQJ z(us0RwEzSJZ(3pl1#7B*e83A}1`Ha1p==Ec+-&%8nPxZVkE$xvyv&&17MHl zoHbHs)bsv`fmW852e1$_hHr$2ry zcDOqNsDP!R4WNXO+ED-G9(5ScNH8A)zi5PLQm`Tk+2tQEqMttCVtxPhiy*F`-T{uA z=q=)(n_^puWT{xT%syXNtCk>oAgvu3_aS(18W^m+==V8vNN3K6vT|l%`|aY1ik<09 zp3@bf7Y-;lY%)?-<7WA;b6_o_j*iX&Mh32f8A5Oe^eQ;4F}=UffJOKTloaksIUPYY<%PaBR z@((y+OE`*F{{B1;g0=C}0dyKA0aVd(?PCWrb}c7I1imjJI0}S!Y7(b@DHO11Evn`j zScA558D3NYU(wsD^P^gQ-yp{ok(YQ|5XbhwOT&C-!eMh9^go!p_ntf`9da=9+a2^2 z;Ymp$Z9f!z0nXicBbJ4(Cyc!I?aJk5eJvd~0ig66nV*1mIpxS#Zk&dsAB2QD5GV18 zKD$2;OdwDqQ}WK3@BvAdxVh9dHElo(l{AL|60V^<#jpub zGW=l1s+^+z32_*{W{gnxiFsE#b~ZP?%fTJ_!}$ZWzL{&r+TRdC;T-D+ObHEp1|T^q z0Cn*MR|5wivp!;W9&ZHYek0NiOO^};n%@ORMXMmMubvsq>`DN3aTSMoO@BWZ+5m95 zslg%t9WCnHkEPULaKQXP;}qi zS*D&`(?7%TFlYcl>YDhyh6j3DYD!Gjqczu>&4Ll}z9kSi%&6 zKnq)3{mbf<$g1hJk_8Dq2#I9lk1 z>NxzO*8}HJNglsDH-^@ub#I}i%Ab+D?)_vyfQ2M`K&T`+8E|e=&=zFrkjG0yowaYS zQ|~g^`bFr;K*vWL^Uw$XPm-N(-TL(hAb!Q$q{dRheQE!`p6U9gsVTzU`Ni5JIh%Z| zW;s8ENsZEw^9q6&SM+BQ=x26>YEnMIy+#>0=gg~}$@kIYhM~BeBsQcaQ!k2nK4IYvXU?1niHvN(?jvcn z<;}zXI>C2_a_Gm@x*0j2RTc8-V}=-L1sjpdLH@bk!+7F1CuRIY27mdIX_4KiJS9`{ zAz5R{N#Hr%fST|VRD-ji))lP=AEyT2gQpo#JPIta4L*1fLDM0LY`_smf-*?18ryFQ zul7UzcAePj;9<8-Tp&_~LRe>0GD9ux5vmZ4Yu5^gZ|@#spg%8>w6O&u_iw^=I1R-FUNO=9A`1#a*+x6izWp70b62zC%3n7^I)(d6P~T;| z!kx7Z4Qr9|0)?OE5g0W_I8c7@))H~0ZEB9fliP`PeWUK<$89LWYkgN1Pm!S(?5GVu z>JElC#h}UZn9@oONQb;}n(g3)AeXm-ll$*!-<6Y&%H|Lo4x;^z2V(*H0!f%L6h|!9 z9{uVFOnU&imrqWP4ZWXW-E8K2jLL6?q?s78bvB{Z*a+ZOcv~}^$Yu+>jI~W2gU6PB zqg-$Wa#GS*7MzU^2Xq5flF}O4Kpm=q=NUz2U(g;vIAy>u=eq2~{!a<1ARl$&Rb89T?z7h}cXWMU|<)7D*YwCqmTt{zCEq zy+}dfQZV-wA|fe-3pO&Vx`BbJj_bj?86ttC_yXiZTw^6IxF{qi1W3%o&%YY*-fsY2 zfgEg9JmP2hBieetFw07g+J{K7)2TGhk|tp{ky{3}jldoQeGt}IOKByUnsNC>?(hd>U^X0OTY2aqWF zp?|h%S0WwpjcAiRpTNm%DIad59a*3TKkC_(*}^Zt|1ey2vh`1mR6UG zX*ibmEn>|4(W9~oHWROJ5q=A>kV24A34IsdK8J8Nb z@reovjeDAuv~qw3zcI(I==A&DKrB*04Ys?x`C!?JbY?Ek`wt2fW0UvqL!5%alE#r- zZ$D+UGt1_#GcBXR#G3yVwII$6+G^%6Yi`-?N1FI-M$uyV&RuvM5qApI2~c6K!uebK zdM;zb#aD%~Np@^*?(Q$J!bwmho`$gU+-mOq{h;Llwy`C!C5E>m$iqxS=0sV~7U63CQdiK40hZ1W( z-=i4^e34bd2GNsG=rFqhxI)>KQx1q3)leAE0Haq)YyX5oLDo6z3@A9DtlR){4(!ni zrL^7E2T~qW&R4>=-1;#}4~}=NYxAj+j>J}~`>lR04y>l#mO4oZahD8WSxM^=tg*co z~nXjxA#XniU}10y=0NxaYJ*6vOvkX}CtA^ga#mQ8DJn!!_v5jBW_))2PraC_;{uK_&!#_dehdP!8`o+}L zwGJ{?05@=+sr2h68OA9Z0MOm#8lZ>zsAruEB%m{xm(Uhe{7PaFq`UPa9#tJ5d|;9Dkc{zl{zt%0VL&4W|BQeB zY`0sRNwT#W+a=JmkE~_Dw<$guvzHOhcV1apa^It%FpPXk@-~BT-uRjg7rsB=@o*|Rs08YuHc6Ld-c(uKvv#oK1bt7W7YiS077 zbY2MwdQ1+|r#7U@EWbofZZJ?l7YRVx+vIXH0O!0lC?D{>B784A3*j}Ht1>){hYgmW z!ILu3)8)^Y)gOHunoSdd-^`lx51W{5AxGF>J{)eh9;xs}e|Y>xH~WMY7!V}gWfeDF zm)0JF0;}Z7vI6m*Crb)Ytc9&@AfC*IKUoNRsIf`Zba-q6#~mx=@^&Jf4Ki1q$(P#O z8#*eSnV2-ghTm2eKuat!tW)g#?ik5s#V+ z13%mGN;C~mu03+`Cz`MpNOXw8AD!|Yx#uajCjSD=s)4Qy9k#1b`jZp3_N<1zpo;hM zuf_d38$&!e(@gSqJ6nsMk^oYqsu5mXd;nB-tjrLyl!@97R0hWbKVWF{3} z#JIIaC>;VWjRJZBh*Fyy`Mo8sB^sCHMdrAgv5zPHXU%NXY;?RW%Yc z;uF_5DIgRWtdp*l|8;$ip?m%{QoW5|kS{6EeYA}mK7C(SD~uI88<|LexkM5&?0m5g zF@D)C+V83a;xv&s`L6RnNu^i#5_H-kJY8^CF|nvRxAn&{L^lGk6Z{V8wIz-tyVcov zn&GIiIN_T}-VvV4n;&H-J#JIr0`a*q?eBgYynnCszivf;HItCSsFaG^e%*|<;dlk# zeL8;L2X!3D4~kH}q97hba$cLxN-92p)?_Ks{epLFmbRVfG_c*^(o#9HFO5!~B&Bcd zngk@_IKW?ErKWT_VNOXfHZkpHS1RQrG2_Dl46*dLR{g}R(}3ONyyFc~#wwd>Q&g!S zi6P0Efx=${2D%12jU>Zmm%eVOW*#S;EHLYI_auxq#{fD};T{7lOAlJ>BN*#9=}%MX zar^{!RgVW20e=W$QaauWUpzvj{*GpVvUmb1r$L-xt8BFpt;s7FqyJXl74xH29Tawq z$>Bij=Vf#A=6(qwAu5X`N}1aY!4#!T@4H^eo&-^xUbyh6ujElVqHFh;dp;x4hlm{m zF-Jj>gnVx`PEflieELO-v>QUR%K;=8qMAs#QG$x)Hx8PB?|TW!5YMFu?g%LJ2%rF{ zh4oz|t=7#bgA0$k$8!7Qa&CXj*;We3cf9|BsPXlW4)wC@t7ZSp5iRfVuOa%G(55lEhf(e0=qeN=-= z!Mx`W($k?ZWx*!PH(oiZvMfFxvG(!alN*)$=612u)m~2j;bHuzGU|Z;Vol%U+*5l& zHOGa(rbrc?FvN;C*VMryAeEmG(gkpWKF1j8rLaO{GWHosI3WrBP8;n?LT4uQ4}vjjv34*?Fg~ zKj3hrVpO{US46*gRlnB@PYapJB9SXwWy)k`e=V@E>W-QCoI-+fM`Ll?|FG%)4LV9U zBo|-J-Hp&3O{lkA%u6{}^d+L@Ot|xsPjHMqPtpDF^p!4SySVQ?d`M%}^`QRR{ylg0 zZ9DK}GvkEOA5ELC3^`_N_u4fhP6bN$JG+t(C@S2KmG5@nC46zW4{!cht{P2GE5_TU z84Sb~R0NuRw@#5`{pdADeI#$)q2sOk^Zi9!>=E)`!o28ARCjxNEt^aY=wJB8y(ez> z7*$68^1cxJWBMK8$7U+w?&JLR zFO_#LclNZ+3E_+x$xSiUkerDmXOqE7@I~8OYXKLQ$5X8usFYS8j%n}p|51_0eSmX} zo~y}yjQLbxUh3r4*!k41F)QaUJVvkfwZC-}sOK}z>u}q#r1#;avCs52&ZkL=Zj-wt zv|g{!1nb%Hy!^IaP5wwhm;1!Vr1z&IS+HlsV%&qsn(I#o&prMUbnMKj&V|KI0!LMK2m5KFiWj=N zmT2}EKl*2}>~P<9EYrvD+@fLIk^K|>+)u-qe7G((Ds_+VTxJd*xm@pFAUSbL)otIX z*@vcqh%?`mIv;Y=P>N;PigpejW>4`_&d%Zf)g(AOV`M(?Dl4|eh}`OZY37uKo|XHt zy#tG??yme}hIbCHjF2_G=KWEXfI1Pf=UA}drt)ge6*~myf75bW@;P*KKux8l?ykk> zE~*4e{`nVZ&~Z(=hB%Rfwdd`wPd}S(&)tpP625evYt`MYTk7{4lr=3Oz=fe1otmD$ z29+WiibI^ie=qjr-_uf4>ui&K&DBX`0~XRP_(~Vnen53AiJ(dBJwh~mr}9d{ye5wJ zgKj{xR8TCEA@HOlPH-uL3Xactmai-?+Pxt0))f*+pbQXJ&#We$Y0|?YSgJD%gQ20g z{gt);-)nYT**G2J)pILr`uazpX#URCU3oK-`L@3FlsyT*c&*%gtEOj1m`~ML9d7MB zto)%aQ_kt!-k;CqmCoe7%(iHL`>t^KJXA=54`ldn?}|+Lv$D2QIEW ze|E2e`oY^RzV?ii`p-*&reELCEZl8a5dCu8n{kmTxn{YZZCZrBgJXlM%;;(MltX2o z*I+4EO)GQWO<~xnr{usy2B8b^v4Y=p84mxWfvc8xf@Qy zsHUCUT4ukT_#m<|d-etuMee-8uy^AUeWhrpz_7(o=MF{&8p@b-<+b+T7Br(fKCk#k z%00I@H6%T6maHk->+jr`d3f*j2Q3fvpPK}Iru((CvTYpN3T5Y)ja^@orxZBi%90*$ z#oM=#WF5BXU`}Vdix(T#I&i&Cs35I~+_%-TxQ$cG{&sZ}sAyX@OH-v0h)h~1hs3_anzSSYQxG%>%U?~4+!F20Uj~uc; zGB2fgJ>It8p_Qw)|W=(R$5xew_Ltg=uuX=mJe>>kzK z!R2?iHR=BBxhKDvLQ~HuyPMB?*h`jqOC&YvtNJeg$=hn!yr&R=;AUO*NCbK<@HeZgL}2$qKN)A6BZGn1qrSm{T>W~2|)M23jH4F zS%*ZAf^6{ubau;C$xT*s=Ai zK>cXmA(M9A5T2_!`p2Id&jm;BV`qxq+OTkB#6g1h*(dIFmZg)tLYKlce)mQMnY3@^ z(}+676dCaMjfT(%8u~7tJ;oROG(Xd1_cD=xlTgp|%!2JEt$UidLOb_oP1lSMqF&Wq z4@E?`A7gpKasN;#FTHvi*M`t7)M=ak2xKl+n|wZL*=@*AhnVK~v|Q|5p~L#)Iajn_ zm8S%=CMHQgO)O#E`%WY(MD$bkB)xmiy~6lEtN0j^dD^fhs{$s_q$w>kx#V9u$I#p4 zPhpSN_g)XYDk`Uf`fL}&9+O8waj$7{LjadYoX+xy`_k@`nO8cO%FA?M)!8XtoRKuo zddq4rRTQz~iaf0uW0?-cvTx8%KYq163lD>msxX{z&??KuTu|_^U(wA?15Bz^9kMT? zO$(8|E}tu!T&0!GX(5xUoZv_I#<70%wEESSay_**Lgjfhb*f!#!ij9NK~^>nEuZYZ zoo(X`AI#gb#>=ohXRd4VrGfG~M zd{3Zpm0nHp*LH?HglelKp#{%Rk)qkl^-TZR65W zh!=8hSNt)g>YKs-6oUX2URS>sqk!6*YtmV^9dhXp+R+|re(&*Xdh_npmLg}V8P!;x zIL}T*h2>G$d0CA4N=J5381bphR?jyqHVZg~9At91FcHTkVd%B``=9r`F-CP-vJ6fK z+0(69H0k!fY&So2zJ_W$>tDT;l4{M*k(ApnJ~^~+(Jd0#pv4qzG(&Iob9Zf5F{i1R zLY+F}x@Wzt0zvz*zIZccC__JKG=LhVc47e<-&vccEIHi&CVqAyRQQBBO?AZ{UTa z4eC6HY&n0w+qXgCAiEj^KQ6rV$FfS<=RM^oR54?kTKE}#Iv=gWEXT{Y{c0-9o6=9{ z#yh@Ni>iIGz=*Uj@JQ~%LNoi$Y6ltRv!dm96GqcCl06k9XmihCXo2c^YsGjZQInL?-D3w2?c|g~aA=1=^ z*7v;>3Ou@udc1-o=;749`Ebfo>}PQBL;5ewDcYJ_@5`~K6>evAOd1Y(^O2G_xO|Oa zi?B$dT)Do##e;R(kIL`2KTzHAB&a4U_=rnr`Av3qOFtDCnu7w;Ax#2L7{ZxRw2JIE zH$O}_^t1GUsBZOpPlnDgjhFSA18Vudw%nwp=acd^4E*~-ck(*reGzu`>TIJxKC@j+ zw3qmIxbHU=RjBDIrga&uiPCaGxp3&f;eAN{h76YN*dylUdNWeaYd^Ubtk0cga}Qz4 zQmsgFGha0GuA;85`$pu|qN;U2Z_0j|TDu%rrWSH=*UN?{ai1^lZ7^gwRk*Etm(t~| zg<1oybwwK2t$e79!zB2MEaW=Et{dEJVV!x*wdwJ$Rfw8~=Qo%B*vClKIvWaG#k*p2jGb=Xk=iB_g8k_5k!N!0_)#MF9QO+M3{ojQb#vnA~PpW~Igsk0BhU`VdYP+8{Rob$HUtlY|K-n{UcBsb>b=g`acR50bJLc zcFz=Zt$WP3YFE()fgn>P{QQV0Oh4T9a}y3%d^)Q@eT?<=(Yak_OiVxB`FEdPO#)C? zagK3CE{bB*k&Fpd9Mow~uD95IJa^*B)!>J6x#=v1N@C5;O_R3BKAy(Sv$?R;%sjcG z=J2ywyfUJp};-S}=b>)~=9HEX>+}zi|79CYZ zJCQWZ(lK=3W$mfkgW4jsM?4aLQJ)!IiR?^Gn=wfIu`BL_VOGMZa~k8R!p%rKx!yg? zk>E1$8FcD<20kv8JPt3QGxwu<>nu9?sW8J=Z^bIfuH|gp0yIOHSuoACz>o zZ=QQz*~VnBi#|k6*WrRA!gxboc@<9Gm72kg(I;}RwSIk4snG0Bxi34S!l%2zBT+s1 zD)KW83Hhs(_fnbX!|S=W_+++yHoWpf$vJW5>#stK@yIPmo7G(UsRc7yN~dPN29%vZ zy@7?LYTD20u<`Ss8z*emD!q@6>wL39lhMh6gBOnmkWh_<=z(bQ^%DmlFy1c3=Z>DX zkBpnRv+3y}&NKlEBce6lFYSTqIlEizvJw-u(?D85W}?H>T$0*ms#GiyYuco8gLpu1hgc@6S&-$S;0Y8sR8DCn0Xm^>bW3kCZRl%?<^mJul#QDIVp)COn(DTq2I#B5+ka47TtcKHBWcq1k8jU} zjq=4J-K~_~m#aVJZK0ezs2ymZ)}p;8)M$O4BF%@A2>v?Z1^6*tnYxS#ovu=;z?K+joHOQ-sle9uw-iJKm(=%>Ez~R2ld#=dA-7A?1 zd-mhE;dj@pe1eSSxAW2deoq(t{GozqMm~;4{>S6&`D1_S&xdX+*I%+MpbHM{T#FPf zu*`A@AaQbB=ZqYHZkNJ7F96`GeK&3b_M$-%4QjGn5DNH;`9j1QMR znwCnj*h#52Z{N!Guo77$O1Ohg?TjCq7CA5du(*7Z{;GemzzCDVINjQpB0>W%9J%&j z7x7oy;gnQB_Mn=kb?E#c)rZ$+w2%4dz8O?lJaDj^9F}2D)lLY(?!@uy(0%M9b8pk_ z8oe&=CqJq+OG$zh63Y-i!Vqrrva8=uV|$S9(20p&e?A}KdcM8e`7%6ipE~UFtb8r- zBszM1-(DdVgj(gC)&tjnZ9r=GvH!*2c_)7QYXBYf6e5kTUc0%cer#IVd-;jNIS(sLxPewCz(z|ZWqM%w@?JiZW~ zAl*qLOP6a@o_ZFBHOKY{rXh!-#Sx*#_x zwwC18X5OQ}e#iY7zSwbQ-uGsQQ7!wO>6y zQOB~M=YID`$wZxw85)N~~bRDxb%EITWjlYZblP?QULtf8bL zMvLe)1yy+6Zmeg5wQrnb#{t(!Gqbe~?f&{~2VC*1|MfGwqW90A=>6Y6$zW$b6iMYj z_laLQ(VhA5 z^eQO6nx$q>&!rse;EC2CopOvuutwMRH!AeN)8MSAfOy9ntueV>EQ1(f5gH`aOn#)H zw;N-U(CFC$5rsO2e3CyV?iq0LR0VmPu&bfG=yCK64axd$t-bYM-WYz>C1&lj^ZqiS zm4Lx&mOL=}RzrW9=0;dGvMajF}0`MmFD#Ds(-T~}vhwwGB}693Nd zuh*pG&%nT-J;gGJmZB@=ogGQ}WZ9!`lmFbTU4nk0CT)G)TB zN<3na^T@!^+j}2aNgl0BaK?gEC9tZZqQVu5iQq&TJo?o7xx0Romw_YC;Icd2cVQO5 zzx_Ck;wvS$M9O;3jkm9+-0ztx!p@*nLpmnx?T!{N#;n6sXAP{?OIntXqs!e};Ux$6 ziH9FBo`MbR;vg_VXUstc#4eiR3k9}a-+5Bo6hkwiyCD-+G*6AfA%hOIl!6DbO#k{g z7`v*#!2yGUf<1paV==ZeIWA7$e!}xh(Tk|)=&PiU2h|SC6K+LscF^Y3V7AhDeH$$W zSH1^hs=#zKu%FnD<)~_sK%;f+SR)4C6vCJi@}?8dk~OwpJN6)_F81HQTgQx%V@hFd zWDEwafa(P|4w#EyhmtnwG^UI-fSyjFU>97B&nIMNtW`pE2N!DShBc@Bg_}|_Yez#>U+}t6PvVcf~OeQS!_-Ti!s#Fx2EgL~Cx(4SvGUDoTl{n!) z;#$G|Rjh=x2jmPMjEn631}`K+We0K=U@A^SAtQ~+rYMnNV$^xdm!GrxO`92Q!^Gr$SOg2dVFG zQ1~qVhw0PlQHJM@#&RHLZPnM;f5Iy!geORI$TvfHcxYV+!sx?1JiPa17e%0Uhw)*q zW~n;}a~O{E0!(Q#6ukStE+i|TgL5$F>N-ff!DNy2S-60`L`DYo;?qRM#H271g1jm$ zjJYI2hybgC3tei^JKQTW1F?~JIGSyP84MNVVXVvX8rvy;Lqk^RBvUd4bi96j2_@Zp zXom7~(*J#NG0JWM?UF=$kco^24rlY=!@!MIgGn7l?~XFaBcOHYv4(+up_1Lxy3Got?d$A|0GCB(-E;VD?5rw$sm-Fr1YMntjDhH$pJSFf_~ z>1wE{9X)(^ZG(rG*D&Z&wF4Q=MQ8fUIf(d{avwAcTuZ?1+b7Kg!vAB*Iq~k?Nkdxp z*a#LlB_SHDff$Z2dL71I^gcPw2@lY4h!loE7QlIxH@$r`qYl5J{Q*}JAhFi2!gLCY z-4a78Ks>8OhYM6^YykRP5X_-@hTp~c|NQ#Nq@v2r%Jd!ZZoURn141&7%cq9**YyN* z&-HLh-~p}FDI{i+DM0*_f zV0NDQ&#w(}vcxUJ^NJ8Cg#ont!4V0^&3b5shzfKrN(DjIY0@R*Df|ZzY#P5*K%A3; zr9jSUoGXMf3HsLmcQJ#-Dy!4F*Uj4@z zo4QEe$?WW`*Ec*Au)M;`DFc%mm?V9oyPPij&U1oVX9 z59gs_c-hn-;o5ZS)G3NG^u9!uh0~SEvx19oUI*$Ccw)41v*-#CwEz@c8xhxYHpSTg z*MY7xED6a723W8W`z11)nDjeYeldosp_{sidec@TdLeQeWMV`0d;dI2Y@*Ixy3_~) z3*;X3ahm#u!8`x`+JjOjWeu{TJ#lijVQc{*)e(9Y2>MhM(#VCt5iDmiPO95Y7->g# zR>}RRupcL8fO}wX4>IJ`Wa0lxMgRAIo}fW0>kmTGv&xtQYHBO=Aybpe7~?RG`QxjH z{$m5;*W;B$Q-A~renV4}=l=Ic{=fg-x#loF5$*%kxK&q7aDX>uasDQBod4}-W5i3N z0ipZvVBcFc-5RFG_W?3gs?4B}kY%NZxGnf7@hd74y;}nW>;a%7lT6pjbu_#S@uWw; z<3FxAD+wWdQei#B5G$q#K2*x!Y7%-U`qK>1dt1gWhN|(6Unu)$k^So`)eo+*$eP~H zz}UXxc9E5N9>P3JNOhreff6kM($o{e`exhi{l^91*GYajG`v8hw2;|CxTAxiJMW=_ ze3+xU`Cq?KN7X8KdJVEQ9cu$DMx2Q%Amh(q%5HZTF9>!2@skzG*wb}&>$Yu!5e@2>wt*n5X_*@yrC?@|caD|>}dC?k7DAw~8c zkr}c#AtY3?6Orsa%HAU*d+%iLz4@Kj{r&xp$P%lmp=uW_E|bv~aD zzIrlb4U@x-^FvPn(pCzaCp;S&UFxX+_#p7*ID9y)%)pf4J;*MghY(C%fJlK2J8e)C z$?Uc?0|Bf_RrN>z!-tefh7Sq4JjPS)ydj7&C{=UGSqOudSylgS{`{}6^~dzXqgjp!%7Tz0NTls_8SZX71C{CYB2l|Le2(=Zm~baQm_cEIGpz7gfT= zuwZ!Ke=*aZdXz+gZ{D<*a3zyIrIWKPNHsAGUJ5+xvaQ7Jvptc+Qr6$&R32u?w%s^?MzlMPmP z3pDm_g4ah9ylU+><8h2s_}9(vpD$X}E_1N1L$3EmF-;0y$Rh2Y2s#>s;rCs)nGl61 zm|_8U7z=iAP|?;y^oro=q4ks)empbl`G3Ut@Klx1khKNDLNlbD1>h{a3%$_w`;b%_ zLK88f=!IzTD(L2r4I2p-Kn$|N7W*&5@c(|P-v>6vaYS?g*O16jQ!fjLDBcYMGlVyc zn*Q_WHAFqL&_w*7_v|+OE_4%lPS<5%t4jU;9a?t&emPm%bNiN>dd<6{tV|+rNUY<( z;ydK77?t3zAVoL?754j2pH${VA%I3!AShh?4*-J*0k1yUBc}fx^knp0Sa;yn;}2#z zh#CZMS7welv7AVM}dp% z2_RqvtqLY0mO<2Q@QNLF(JLrKaB9YbXdOV8kEEBVX>e3Wlt%DTRMda{PailNKJYi? zTZkYHiQ}NtwGO0gAL8P$Q15>|N3MYggrE;r?@$4H&OrsPtp0x;0lCL9T$jM`6eJW< zkWr#)>*_8knEyC?Uc^JTa~IyceKKmYSzSIb=a znnMg8y_`WHrUNk?khrA5gDCS%6H*??!9}wF$9b^V{m<@+20sj$*v!Thri0dL9rZ{5{tJ?i4Xpe*;d>Tb$VL(IL{tJa49WNDzMF562oM&rVT# z&ukHy6#wfQAQpxE8OwWR&kYQP5Iw{j5IJsoL037HT2|OJ|NS|sM869?{AVkXgslYH zt7qXx>ZdSpsl>tS$8C4furv|GK{|KxvY!8Q#{KJmlo*v^J3;CKP;WrQ&|vq3i?}yH z+|3v+Y*ac0W?|EiG^+pl?=el5L6S+N8+w2c|2+<|vt4Ks#efS3(HV~xl1?9x=Bcf2+kOG(n zG_|Y!*C$IBWX}9wK~@TK5TFq48nVn(UwY33kb$QOXTRZp#1Q{H9BzXD+q_m(|F6R9 zYb23`8w$PgpFaY_nJnY?f7X)!|AWwP#>E)*oY+ zdjG#4odpjRtN;JM^nd^V&^N_!BiAG3GJPaDq`oMk5$^Bba(}o#u>dYE*>K&e2 zVp}?PyivFlMOXWqX7JV3-ViK1c7E;q2a!q-zhM>^1x6}__19l+oHLQK;n8>3Vjz^r zDfXE(kXEx(%IPy>RHy6yeMu&TK)vYR)2GQ-QLT+e!?!rtR&D$VZafGu%VakSdBEVJ zIadFx7b`YSa=hbr`N}!r2TajYr+jrSh6)WoZGn+)id~ZZh>)B4s;p15hZxnhb+UNe z(ygXnT8Db%kgDJ9Gh{uWBnXk-EG-B~2_Sh@(iGJBOR}Ka$SsZ{QUMn`1E)-@Q{sA(BqWYf>By5i=qW zXr0^J*DG@$2g7qfX}hyBDKnA$WuO;3_;OTwD^WRFBQNW2;>RFq7|i6xBw43|?`q}_ zr7Cq}qofoGxax(yPhXvUQI-3aAH~kLns<+!=3!ad*H;Bfb-LDQ1U`R13p1H6sIJ&! zWn3AQyZTnnftB@6MOPyO!DU@4gB%q)0T#S#nq|&MQOjG7Dh(1Q!P&1F#ueIm#+XS$ zW@gPWD6wxUTf9GSmg69-8yh55WMemTbZeaZOIMWcR`VoM2S)$x_#Y!P8?ghpsK+=n2g`>s+E~T2|LEaCZj7tg0;%bvL1@KA9p%;puq)4)Ix|gRhemFfsy-%xqi_$ z@|YeNJtroMi%i*go|o^F7%Jj`j&|oo+SkLd!dOi4q#Q=7Pf_p!vU%_GJFJs_|4;>A zacvCpOFEs3vcA6^p2$BiqQ|R#R{lNd*I>I`u(Xes$u-7zt!-JyqD3Xj^?ko^vC4>- zMvfjn?DCy75ELRTz;w!dyTElX58wId+IWOC$LpNPtGnoEudvwWL&8ecHXRBBWU?Ce z{2dl|5A;Q?ai~Vz}{t)7z^*JYE)|nr?f+ytFAsXLBp8R_4qN@7s^Ck?Ho6w-UoNaC-5E{ z5mT~pVq|_(dmqGPx_c=;`6myh37ITEen?|) zZ_j2@d;hkx&;G|Q|5ccg=cW7kk?bEbZb@3{MLm6!Yc(aeA|bj%FM{U_m;^qSBTJGZ`NcF!vAfCN6QUnA!Lt7J{l&P*@>7e{tCiMPUq3zkprzrX zT}Cn%P?c>xW05METS`7ucz0bZDg*b0JiE)-aO|>4?A)@6@~v!>$o}?s=+8xbrsSmN zl8XKFLaE=OUe1{^R#B{hOrQFfOm24f8&=X_{O1cO$}+-VS6zeJyD}Up&aC=v3yUSA zzGDs*-t#}O{)@%RL{dQ%;&8Jy??HvBv4I6y6a#D+Ii)xI%0ALnXgr${u(%aj*QIzJ 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∋G3p8 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

nJwi!a7gJQ`zkq5?@Xlbz&8K*;tnjV-F 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 literal 0 HcmV?d00001 diff --git a/docs/performance_report/images/subpixel_offset_pos_err_sigma1.0.png b/docs/performance_report/images/subpixel_offset_pos_err_sigma1.0.png new file mode 100644 index 0000000000000000000000000000000000000000..a92dbe339743fb0bca5886ba7ea9981fde562f89 GIT binary patch literal 965445 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

rjy#5S^p;b*){sY8x8A!7aTE3h>z`;6< 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

7$?0}Ob%hit&+f|1#!NrP9F>yB^la7(Ft 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
}(+b-a=Gnc;Nhm5W$&o`(JO2IH*n=8=r%we_V5 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 U~GzDFM(P^jeIYNHDP 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 z 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

_+=`fB$atrle9lMNqapHY#5{ckTnIID8b?g)`E^ zRQkXA%YmbNqvguiVrAG@ik0iunc$QfM^cqMeO(MIA*LW(yj5CK(#PL_Tsi&T^LEdX zhQ15pUqt4knqO2EFpW8g2!>O#vnLlD&fWa%@$A1m+vT!<21?)E+`YVZ@$h7c?=NX@ zj{t*;!m^{tGd(@M!Ymk&0t!PD6Dn%z(ydkn-{M<|5rXx73gDECoZR#G@59lALUVMO zA`f#SZ3oKGomk%Wt2z)PFVG4F==u{#)Gta(uAwiJ0RR^TG|9@ls{)~6bMftC>z%Nr z=skquz0vB)zfn^5;J;K86tCb9_EX%2dUe2N<+;oW;u*hfYimeQ+DSCj)MHEW%ui9U({2g$>S zm%=CZfM~%lAn*-M#`E*D_T+@14@waP*$-+q)u*^av~YX_0?3_70?#2}{plC9^LFps z=LJ&BH}Kxrmv{mC5586%x*PWMvjShfe7W%DotA)GDSDkBfo(no-g;%8fNlRKobuCv z`r(ueaPnU*J3zM<_7qo0Eo9~7Bn*k5ljxj>i8_bOOb&NKt3pw6J;AcQnFJt<2mKnb znwFBO_Efv%@58_nRlBbItgNgSEG6maZ4{5>F`@ii7rDY^T~qpr9Ctw9m0-v*Wqeuo ziM>Rb1%r@D%a+2>*q9sQP&&H0w0xHI0RaIdFn~L)jSwM@4ra*+*CI6&?&tS{JcJ8< z8@;@|$mv{uHGXO>qi_&NTHE*(x2#|P6bmYQ^r!)vT47?YWDf!1Re{LDe>A1ZtgoY3 z47jeH92_3#SSw=K?9$0vC`|;3I3B#Ld@3I;5GR0v6I9vQR1==wrrHhnzXIJeKmh5S zz<-v@83tYEp>YizdYZ9kFM=pd4-yjAJS;3MK|Pg@5Ls#EUk{9%9-u>)uL|v{7hpD1 zU~jA-82^xAP^IXFFL?vOFgrWji|c_iQ|b9_^=kM524R=kAmHFC1NI(8tl~c~3q;Zf zsJT{V{6gXqP!}Hn8?lB-Gz`z3?2*BtA=(3`>v4Kb5Jk`n*jx__qerxKMztm9vBgp+ z^wcgnIGnb!ssmIFM<5EFvNg~GO5AUD>eQ9uVzJ5L4%d&~`2ur8_zY-z33j+Hh(Ivw z6AshkygV+a@8_a(LmDCzRg;!BV{J`Za?H1w<#u5R9CxC$=%!?WcJ7~+~0-ojAa7QEo zq(;Mm8BZ$U7@mFm@CsN$?EY_8P}1KjEG&F|^W|NpEQfKkFCE2qan&&JTx|aCuxPBK ze(V}vw{EQjXiV?%bkT{_IK*q{+g&4P#or&Q279r}#r5I=>>6ng(VH_m_Y%M{0wDA2 zz^C5Dyl8#racb|a1QxOjfd^SMsTsq{I|YwG`eSWA>4K##!Rdn#6)`w48Du39zF;Lc zX=pTW5ftUDY!qiadh{p)RE64fL^^tf`C0?*xfWY7O#G84U;9a%*B38esw6725X~Yd zXXhoFS;lMe%niPMDy8DWr>W! zm!1Nh_xSv0uaQ_!AWJ?C4_mzvx^p76?B&Z9_%UiFp$ASN6a${s)_P%^)&oa=?^@FQ zs+*i!3uRyE7PUe$F5qcx1?1!d2oi*m zA$;j8g}%N%A<{;thvGJ}5Vb?vBMF}%AHXxB;q*@a6d0G44o5Dch z_$$UAV?fvrqWv0JMxttg7r(;vEbA#O3C(93;rYz4^aD_yXW!@huUN;32<lFUVyy>n^oBn*Us=W*Z)?x?a$2o6O&x3`ZAj3tl$mYzIE$9^vuL9 zPl_OREOeX%D9QX@ljF`EJIX669>@oC1D(X$uy^lX|I6<{dXg%2rzTo76}i3R4#1DC zfVrpTKer8r4Kdxl;9yMbSmtr(4$rC`P@VIG7+pP-Nua?5NH9Bg>GGs@5!d-J@GR0rtjQQ(XE8WX7;3M1eS*sBtn%u-TP z{Ja&A7OBL^ldXoJZzY^0Fxd5GIZ{isb51B=`@*^zfS-soEEs4g9|$txMMT~tWCXDA z6}%|R2O3)1+mVq>SiaI{&#pj_bp&V@CxO_FVQk}BIaJ{h7o2m;$PBxsuX7xnv6#x|o zV}o$u0oX9}X?}w!SPBFXrTe_BtSc{r^9A32IX0H1wzd}c+Rcb)Jr4RNK+fC*0Lo1{ zRxSfge;jvO5r^!JN5Z&`RzY?NJgP1D!3CG$ok6_jn~5_sHfC$C1nK>-o!vpewGYKN z)FTBs+$Lf-s7W-}Fm(JV02$UcHakQ_!r^sJo10f*qax5a1wRIn2sda$o<4Qz(4|X= z4+J3m;e&(y4X2^At4sCd90K7^fK+k#R_D{_AFYLtnAfjm&5i(g{kb3N#I-66_AMNcme^y{~Y ziC<6RX%Zg;fT&W&X-T-}D%|FGqSIB4ma}aj05NCT zwd*EQ1mFf&cB#Aa(kJ7A*5_JiBTy>Aa%twCr9~iD*3{$=RL6Dv`g(jV4zItWnRVNN z>hs9p$zesvRjF*+ z8|SK_25|;i*Oe>B9SZemS>HT7B|*s~S`EAL5H8RBas$jwqIznG64RM}(E~bsH%;OM zoK;j+HzA{lKV9nXH2du(j2F3~bLaL$T4%Y9L^1@f*WxL}nAAmJe_>VSw;Y!$MV1Sq0_!2D_dpNmCIbBbLkTk3p=A99~%0O$$-?0s*(!&sLw$`~5s?-RoZWy4RW6=eBT9f100gfpiyDAu89Y?)3?iQUH0(-C4$`&R$*I!4x7@+u9N(A7LgCO~OUsV~_!c-T z4&eFoiz&}>?ASrlR(jd#*!1P!9D2-Lc=2%+FM7w09r`LupE+M5ng&6t9JxfDlg0NK z!HkSxC+5ZCD>WjOThuNf z=Aq~};aknQws9z;Z9RtNB;5;l-Ny9J*jPe<6hMEw_U%O=cF=HYS^rL85aNcg>(iZe z)|}+WU!N)YwCv~_N<=E=;7xpn3(>WE5&sBV0;+G3MxQ-a9mn>W1(wV>MIbxr#k!xLHII{GF)Na9*f!+qc*&=af#yn9z#db(ZKQ|FU0ca7ItXMIXGc?V04SFf@Mqq<1z$nN#`4OE03)W+cw3omq>XxGN@_URj-~uC! z05yY9jl1jdah}fK?q|1FX#7u(+~M8n7k0hXLN!1dJdk?r8hL@lUqfs^nO`2P>%q&^ zGBOGhM+8JI*|x0{=9HG&Pdj%tu>Lfp4(Yzr^F&P^A=i61L8AN1gC9OP0s(Wl(ZR7_ zJlg*0@1ne=Gmr2c;#hoM19WX-C5lQ*vv_qV!2EK@UAcU@iegyrsr=raBQvvhDTR(+ zKZvTx*j1yHi=FL`MXK3Tr(@G66WctR>I?wH!^@u&UV}xxI(&F1Ld;Re_J~{s-ZF_Z z!IsEi>7BsE`PVSt&~n^g$md`E=byGLp)(CWJXBR4$YZ(3Pt)=E@W4a+_h(Yn1>2ia zQo%H$Ah(|5W^bp=M(sg27ETRfT(MeCPOb#F4f4u36L^Jr z1McAxUh+k!JbysRR|Z6moKbaJMGZjkm{+p#Ua;P60PN1!<4SrBSrd0a)#MYQrW9Yt zwqbBzK$;K&oKCmRo4$X_q7b~x$HotQI0h4tC_ zp%javRt3-ougL1$Fevu?Qjo@9d-sBfN164Q6+d?p`4C(&^I0k3=F}etHZ*+G5f4xI z2FUN)o$N;5jpL=cAW4~aJ2|%Gq*4&6mB|jA-TLV2nuSh|$W>O0!#6oM!EStn?o0Ht z1J*YBr(vW%<>Mw@+cU`jChyp@=TGg9&H%a;fEV6`u?{Wy*a99vbh zDc3H$Fo0eSC84#ueM;?jVA*A_<|~#{#=?6T7c~g>=<;PnRrhu^4fAfS=9XRT+Sh!> z47l!*AJ&cV7?ucC>-WeQ5>fEpb>9u(9r%-S>Q;>8jkRPRxvRF#wtE!Nu;6&dMXU+oaFTp}b* zVaD+>e^FBzPLbSMd4vpYLf8q#pTBF*r{&)V*rm90c- z*+EwJ9XeT_6JAS#QvrinKuN*T!fu?un{d0N_GIP2PMtbspUZc?bpP5_$A!#VvbQolYa}J3jiu$i#df;y=Do#e1 z!$(l70`$cigU_?DhG95kh#>4%tblDG-i#$#M&d?0V0NMp^6$NnHG1V9)g>J_UVGzc z@8H#c#_Z3qeWXI%suMUA9yUcjC-1G2rlDiWJG%#eJ9NUiOin0q^Pz{ zZ~x`CMMb-OM|v)|tW@U>^?@uBgLn6OoVA%LvuXI_k87!q zIzyar{e#!3MAjm&53QY4*?#7IkL^?b_+t_2fe&osVHYzmc@Uk3qa#+Ebd2edwh~*R zpx*7fsEzkJ$~`hzhsDg+eAAV?GNoARzLfg{gPon=ez<5q#ihcu!GhZa;l` z$yhn3bI7?%mmCO?lajJtzEq_Q_iCwMP5}_!E=T@}^U$+r&zf~81<&xt?l_K9S67$N zvIq+zHv?Zg2Vy8Z+ZZD0_Db?B>>JPbnj*s^~Yd+lO*d=`!yyaB1JO|&5 zjEvrKJ{l>VsxO{whNslUDgHI`@nYU`;jrKgKtpVt68a z;|dZiwyshpR$O>DH@ArE6LEUruBa{;;@|k}QGV!!X*Zfr4By?U=>7Z2zyH21_aZQA zp+{-A2&XLhGzr2o)D&x2BDeL_tQ|3WgmaeiP~#d&Gedec0M(pir=R2B2UNXwonnfEB2mj zh}^EA?%w#rML6WrmvB!tJ2Yq-lW5fr0Rmu=S$epnV>$~m&yIe)1}efQ*NE??| z7yHy1A{|OY|M0@3m2*rcPV{}%`Q(KQYkaS-e)HyyY1Lzf(D> zaGu=SQEG$~4YpwL*^54Wn6h|rZ_?UgT+W_zTh!*=@sw8VZgs-Y!R(w(^Ddd@_e|If z!3AmysDlz_c>R3CbphS`vFZmyv}(v{y*BIaydHdQ;S8}|#*TY8Q@W$kif8w=_2nNC zP8X*y1y!H)Y4vU@dpmu;L@@7^X(w*h20zAt)pd9_r- z4;r#2$?qyF?LKeXnPT%qGkJUr3tZ>a92~UZ<%etOU^3u433JKX`@71o0ukW7237g> z<#jW_9V~HWr04q8l^T=$p1_W}t#!jcM%(-Lty}KjKiP;a25ZN7Zr=Q;{5!@fG-_uS zsbxNUc94uQ^OCa-Z1!TsC&O!x##!q+_#7MQ8O5XBSEH7Nu+IGAr6DHg{T0uZ>Ie0c7p_zUszy1>eHfX~VH6U7YTIjz+E+ zQ2(H$#N6>jiW{9-XOEsAODe+PCTLBxRm>{t!-mK5O)bBI>F)mm)6SO;Q~ONoxcW*; zii%&B9MgFKT`9^$jlWAb_qwV@TBpw1#_8ClrM|EkHSKG4^-{GJ4JEe#DHR-(N9@+E*1 zA#56DUMOZgecFxZPGtF=b`%l5EkSIs(Nbx9{LgIbu4iY*J}Sfk{2^Dr1GOBH%sOG= zF?eFV@X@q&+s!#K#>2$f+1Xcr30HT}ph0G*9VSW)b1QmnVKAoh+_dS_%g9q^$`#;e z;jGG>*kR66@uyE_+zjjp3>rtM{>Z;~Zx`&J{)Vce#arhwXP?#Uc53+jlhhdpXh)d@ zKdG6O^u+lRM?qPBr$p8F@1<0lbiord-0HbZ(HWQIQo8A4dnwayhNq`zaNs##m?&xv zrraM#zpUf}uz10N_Bj<(d`6O5&z?amw7f6fCwiQTkKZ-s1o39xym=71zOTv$_30B~ z9QJTktLoX&6F)pW8g@K<@V%+0troesOryRCh}^z?yI!*yI3(x9_~E0x7`PsJ{rYt( z-yV>+oQ}!R#Io{n9KwiqPL6xoCgMJytA6+XeX-4IU}9>x^G8zO$W=uWv=cPpssJ}4 zInuEY_Bp>u!lb3#G9p*;@-Vr!{p2Qi+(?@@XO2$!kmW~UVEgy)PkprXVhcoe>HG<< zg{nB~K|D?C6_pv1SNQ2?V^!9A-NVMDnqOX5-kn^rZ2Qg{7K3QgSiOAZit4l+Z*`MmyT7#0xEZ#~;O5M= zSCN&KrCZTaUOwx_jfjlz`vU_l>{t1jM)3W^pT7$^0f+ti^)=%H-bGLi-py(R=U~a4 zdpzif^6p*=XKZ7vvZA-FUcKrDKw`*<~fpCyPa3Lman7!8;aqegXARTUG*vTB`|Jsdq1z&Ovlt)1DkpUVzhLne6j>Xpnl;SRzx zqYiYk73}*C9nMC79i6)+HTjPs;o>9|L;8;!*Nf+Oy7fV$tDLrGOHq+M(Qp#=po+e| z1YPZA$JX4)?=sz=OIXJYhjU8x?ia;jyo zX$rzs4~@O0(zUCk;sTG+>6E5A;ZX!jx-Esh-;bvi0tg%Ee%!q@+khf(aq@!MmzKkPO-2MakjsV<%%upz1cn-Eyn*L(@5osQk_{rYp z%saih{8iS*@}VBa{!2#;YxQ&tIp}RM&C+uw(1-5ba^R8FGdBkZze|^fa`&b79I=fn zrLioP_B-z@SSf8`#H3K9Au1~0esv>7Q>W=ikwmy%XpvxU%?nz#l{N?HT=Jt?i6 zvjx$&^T?4NLUOjR?I#)8!Xt~7A02GnynuI_kzriA@yW-v_fL$s>sU@CYw%0Ey!byH z7ow{Y2$nO<9r8GZglO^N#rxhrJG#C*(HkX=;d2qp_&<;eS=)QoH-1d*HE#3l4=E3? zZU$}atC67k3(Nbs@I&*HC!-dwwKoU8_`V-eGVY%I^~L`wIt@}!l-ebSU%3(hmPiYpytHOH0A}n4ym(S*&y@G8cLI`;Vxz0j#)G{PUckM zj?$L10QJNKcTa|VU8>d2M6ZvaVhGv1S9@O48TU>tcbe^Yj;!p=i(wmNQii>BUGuKK z{@!`rYHhmQ_-_5Yrl6`39|_m$Iic%)7Fzx)Ia~gVtoEydBIN;)U|(?oDg>oE@9Lv8s^C48hWG7Fa4052qL%;iwWrrN= zK;72&1;w>X7Ijdk0ScAspx7W_Pll|YPpoZxHvYva8^7!Fb{FmQ)w(0Un5or>=ikfZ z{gqC`FJS5v0v>FeUKzDWT~4!<{=e1~B}5?n>VV8BL`%FRmG}Z{37QtlHY%d?7rT(V zf1S*}dfmFAaguuM3}`Jp~@v1qf&)f8QCOCrmJmWj3qmqfTxM3-Mm*Rw46@L^{|qv%}6s_JUPSfkin z$KARsB2S&t$1{n0al5McMm@v__dKC%qM`M@b?)xEMj6XTL=l_J9*yGnA*WEbQ6H++ zdTH^9PE^O)>kiR$0tX9kaGGFd>5HdpXd4=K4KpsV(G9-4%Jz*#I>|pTZ)VKVP{#j% z1J5i1jF^oNvZFlaNAycx;&>Ht6y(V4Idi(HcJ)MU#?-25aU6a7HN}}y5xUWlk{9ds zlFDAUHfgq|dM?I#XikB3+|#~&`vzhu(5?lAr5RgXEPd)(Hp3-OGS8Tr1aFO z_arsVF3pW^cjCd99P&%0Yer%tF!Hb@KZgIHgMp7PE@eXE9Tk0r#wKO%afAHF~ zYu7sn^sG*A3@63g)=*|etf=PM(jk0|N>S`Ze_VSJ_&1Fkn_%RLE$H z(n->Jq3+}?LD{3Ev2z@$prC-a%OmGYX04vIu+A>LmW_)-P*S)2^+#$tE#6tYOU5Jp zW+2TO9QGgQqg{bRUS_0UNmxf|V_vU16NW1li|yMAU~>wf|Z>_2;9x_Ow(Kds%>nCVkouhgZ>qH49r zRab>Z<-LAoMr_mne^gl-tufy^+JWy1Ga)V(;T?*38OU9{$8>M+qS{sFi;7)HMm}xY zet3Sa5B&a+kuzxC5*#Ctl_FjCCokYuWI~#y8>0zpA_$xwsN9~!&pX7GeOp%M&#fSv z_T%hCtGX@<-d59I7di_?h?!#|X$K~53(PQu*#nRRPyd`{@SkghWE0E`T!?D-ey5f7 zj;B3^oMX7_t1#*(p6E%dnCB^L`cwT#m{&%{#p%(MI>mfEK;S&D9I`dYe*5$&G$Qk3 zrmvuN2=V9Y>*TR_JxeYaSp;++pUb_fXae~yo7SDr zD`U}WcPvO6h;NNV7>qad>!mwYyLcpofPTrLwHwOD+d;ZwimEVq@?-(jQBeHs@q&6m zSy{Qc`=F!Y6LPS~5M3}{Jf*)o7#+)syKGQBIbRR6#W1GmsSkzVEMmoJeE_O^KLk1S{RK@ z;bA@cxE8HfXFi^A9{Z4nboD^@1gD7aWapNc=23JT3QVzKIzY04NqklPt(sCQpEPT>r5&BPv$W3G~ zk66pJSTCzPFC%xU-M-dw_tjSpjdBx)5uz1O8DC6fgQM|BLpR7S?LNl{GWRrnYas%| z3HT9q5U>n4AywPFTd@`jyRNQIS$@Zz?Ciy~M%XBk_GqvY8X9f}$)5hjQ4~_{1Q)JX zCPh$iS~?;y!P|d+m2yC!Xih8*rU%5)liTJV8f-Tmz&&Ky{R}<@SzK(U;#DvBJaR*B z?LiLtIhJ<)XZRpxePyq}d6wyP_0dhrQc#P1f}_?~?B-l@kLO?87z{#Fd~v+#=}Wt9 zC>03CBSwtqtf;tD@$H{$*35jP#0%X?FFz`;%WuC;B-3#LZXik}-*ijyB0kbM`2*LG z4ZustS>a1zmJXL~i5@J2CK(y}Bp0dYxXmF4`p?kytV6!|oIaj#SFzL{nSk1`Yv<0! zAOf&`F{D1JP&?lWNH&KN3=(VvNW8C>)@t%6hJ1UrZrwVka)3vBjR~%;UAlJ7gdRcd zpc6Q6>=+{>YmbT}R`ZRY^~7+iFElZUZ_)DQlN}wkC1_PzN-xBq>MyXkSnmk&lLZ`^ zVs3tlx(4~tZ>p-<@WqY*07^@XXD-tVU!%Jb>QwF}3~D#fgV3@Jf3snt$9SWt%3<%- zZYs`fYboFDzI+~vrvS8h0E<&}G`P6uSHCmmDV=V2swTY$ZcvJ&M~_AzR&M}leo2}Xs!3{vs|kDCOcaOie3o$p_B+l zu(0MGXB~NY3ot&L*G&ky0Yk?9>8zwAI^4k?Mydgpj<59}SVwEQN&Vnf)l?NvWVmA& zS{6b4Q>2#xE|<+pY8RyO6k5O5W4x*13;!jzm{OJh&!;% z&%Ae^KCG?g!+x_cF{aW;tuH(BxgdEj3FF8auLWI^C{o;qHHad1)89ESL4QV2*k`b~+#or+rQttcC^_adFJ6 zWRHYk@CkrRg+B4@MEeQ*-sf37HL7fOb8@h6ynjj|1fTU(9wY8nC3yK(pKUzCs?Zfz2Q0JDx}d#h!0RRFD6Nw zmJ3B6dWYpKkt7fOEXQVt%H+IvJ2bKY`lava(MQk=3)^)36Mdti`qRuBsw$C)5D&SK zjGWBnRmGCz;7PXQhDN0iJX7djxHYHj+j0@?d9;3?@S@*?=#rq$(kPX`X`s5O*w7<4 z(1-!1g{iX8KEj@|DP===@ya!v{yiu@Ri_PEr>=Uo2gmzDW54m^$J4jZVXsNZc<*t5 zBy{SzK(Ep_@zyb2p&pjPFAEGywJd~x@J<1-b?U@OAdiaF0Cf@wm}+Owo>hQuEWU)! z9BN6tXxdFR4Dg_Tk#$Jp33Wm7NWu*^{>*ERv6d(VD~T*gvdNyMiy6{&g2?kU&(UH7 z$-dk5^jHwW$(Gp4<-{QzKp3IM7lld5;8V=OXrBkf?;wV$X^m-|C2C}-J_g1NM8~vH ztk-hL$fLBQ^_E_ZYuargpQ1rNVAv^FE7DcxJ=FppJ(T%m~br6MfyMn3GB@c-_8vsA1vV;m}R8HT!HiujAl}uA^i)dC2tmz z|C2Is_;z|fj}QZ^2mC!$p+?LEP&NISQFuFx3$qBjAk#d#%7N&?hwz|%z=Y?b310GKz)E(_eik>+y4vu_3 zKi;;-Yo)(+#Un`-lsrYUR5*RNlX zXerpYkAFgi@{gxau5SHrXS-$20NN=n4#WRD4%fN$^}`e6b29y8$-}GnX-1~!@#nwL zd&CZI=|7u&xC-jymZCEpd{w7)wJ6ufL7-&4uj^3gp*ZSH3u`KGd+O$9lMwe$PjrAe zw%&1Oi*C339dY8OX`?&2VM8u*Miqx29-VJnh ztyTpygIMfLEj$qz`Ma%ccR15x62xZA>;_+TYGq(9_=Qa`yC9A-zHns-z{sKAJy5<0 zrMLVcpfznmGZIOF;%s0#LHb~Aw9*%yc5Q9k@Kn7(cz_C%EH z(mCTFv_zZ;eVavGjc~r{{RAw5`YgQNlh%ITbY5CEb*t_4&qTJR)h{z?eB0y4A0lcV z>0Z)-+s^#f5RB#s6Y)x&{nh=E(nx_9I+rL_4jY}_6d zB7~g=ncOryY05u`i9hN5f{|`|2V?gKmbCp)3A-SM7y|}2|+IWMq zQ@}cIlxdy<^#J!X#v(kk@X6df9<5Mp0&X|Oe9_h+AKu8yI-PN;y3mYqTbjZ|pS@z34B1)2)`Pp40T+Y((rlw4|GZWZzxaLH?k!@-sP{0&3i}DWfjFT9|)PeAm&67T^Iat(W^H zim`9v8mo8rZr?unud@X`A=n}~F5V5tZuDHVXc5)Auue_iJg-$Aa!}b|aXUWct(=@n zhvAd|Id-Xi{aO<){Buy>rZ1#!5MxOM$}*1AdzvF}S#~5Q*C62z^F<=+lU)i-d4AxK zE})Ck#Csvm=ZzZLXGma8IhqwA-=YeHoC7wDsQOHH;H(H!d0I^~rcBw9`wdbk(W7P= z$M%PngR)ho`5L1jjI20@&8cLkf74su-Wls;LUmZKI!l^8S6aSvCo3$L`&m zUp%NQ5W_rhCrrj>Qc`E)+5X7UXfuOdU`mHHO2)5z0QA&*7bXnex2cS*cXaHggJiF2 zhE*R&OjZzTdJVTY6RH$w z%b+e0NQIv|(y;yY<<(nh2k)T(5lktpN(l3ZK&?rG)_;C((1Pi$SU4?mWKT6UQD}@h zHa(Q-@*&8*5rvDnd@-QTz*uix-Pk+p?3jqAO%Zgb1#d+|3r#oYPE;k#C@7{J zof|K0k2$tEhL!aRw1%_C5V(mI?qAz$Dt{@ zzc`sR?ajV>cM))2;{MT*zfl5|CUe=vj0KgsxCTKVl?KfZ1I8Pzd~Ol?Cm&MOsI;-n z&bT0CpuSX!J?Sb)C?R=4P|0l8&0Dt&y<0Y8l4;D9oO&i;aBqqgny1}VR(=2aRp3WF z27I8J#9$E)oub0t7ks33I@k5@gd6cYc(+TB9*xP{!dm6xZC6;&Y0X&$#|7#(^|gw( zy@!~82XopGD-w+GxA&o$%U5@(R%S7K6|g|d{P-+r2daZ%v4L-Z{@l5QrUe(4P2&*) z78bE_Ir|&KJTg9nt?9?d)NgN)SfjEhJ|V&FTn!PT9dv*1f+ZaiVQd=xj$hb6=0us` z*V#>QaYgar?Z7$6fTyF5D(#nGe4%`3%2}Uz$LSMh{PV`J+A<+z&rK<6+ zK%b={t;gt7L4`FGn0%s##8g+yz=8%h%m0jfCtF|n#m1)9{Fj`%txkO%gsY&|Kz+Lb zO*9U|$!%z{whARIQ}uejKft;Sx=7>tdxI+< zWuhYoQ@L|~1>c>49(Cjz#Arr(ma;6?w9RF3Xde48(WeWv1!fg*PhnhLhT{Sz)A-$E zA-4pL!@-uZSUKqv`<{1+xIiX8=loQcKECpp4Xe&I9%Z_aMG*K6ns7gxJTU zTjJ&>>_(h8;NdQL&X@caDv0L-Rxlg-1xO*NH~KNqjuP%$AGg+ex88=O7JP`sx9@Ee zsf&@Q37v{)9)V9O{Hw{#vfOEL&=?J969Q5YG+Z$Q6~j^#h;(P{(vPEOL-{1!1_;^u z@HP@+{s=YGel%RV_aI6|9RUl#=%%E5Tqg|G_fZ) z3hOj-IFLe6P9hN@ktiveE-hl`hRS9JC+|{sivf3ja%#=P(HsY1&S6qe1JwFTD@+3X zyq$7SOx%lK01E3%lN>gcM}C9LK-X>=phUD+Xv%0Axn922#^D7i7b_0vjQ-l%JAlTC z>nj)js4SepfVwDkW1Ef@a{WQ-Z?Q+F0h{_t;*j4*HEqSVHFq5>M74 zh14s;nkYaV#NaSm&;=z|+Ou!edi8kf?!Zlj8#ip|+^g3^?lj-_22w>q=3|*bUw4W7 z0<`GcwrzXF>}N#cTErYs(+k60d|s8GiT0X<7>a>b5hB|?X+u5E)Wu-;M-x^zcg}!@ zqCa3yA)h@q5yg~f!4Yxsq!^x30dhVN5;BF`+h*tIJn|hqh9Wp*(bD1g66)l~HGUov zF)sXai%z;2#3H@7Nmp2@!gM-K*(k}>_0J0W{CK=zvrlINW@k>xzXXYjE;id#K69lCJ zofJtPHLke8gzpyO!hsz1e+r7Pg)@G&XKIZg_D?1bMgwE-7LFY|79E^a80b~Z-VB&? zejDG>iU@+lrZJJ9X&U$81dT{(F(c8ll|~4zK1X@ zLd=Owr~_0Pq1cqCheQg_esag=hWh$8g8YQ{3bsF@gSJS-OrS*I(WBQs48O=4);h1A#jzZD?QKVjCjWgP1{t<5MV+9(aO@ z7QWoqswxdAU1kKqC#s^sr!l;YnX4 zyQu?I-ZA>5ck$Sy1q#F`z`btGaa7~zBD7Lvs&D}Kim#7$@$0u|)$hn3cQ#T*_=200 zGHSdt3$GpK6B$s$i>$`K`+(Gdgr}#mudk{!n>rv(x*+-lEbK-SD+FwmLjnWF)TuLf za`BbWHSgGAp}VyZks`Cj2Wg2Ius@#WH%A#~o;fj~o;crEfzCie1}_JHYeBXk>|Ce; zmn>Rzol;M@QUEfD#Mes~< zEb{f90|yQmzV6)XDe5C8a_G>BFN_R;lszf#Y4?qTG}cSp;}L1w#3~9KAx@USc}hyR z$u(jSfirfK@fRMt=#vq+Jn&ZFIxZr@K$IRM;j0Yn(Y31yZ&;ZSB6u6J&|3m2Z_E%6 zEaC1&`5`t)gnt=LU3h+<*-%aj2*83l94^_9}+*%T%Am=a=u2i&4r~Xd|!->WM9)2o0Oimb-o%`ludd zhOB(_ic52GS2yEAGT<$#eSQWb7-FDNd~#?6fXtk8i={-HiXOa=NApZCc;5evOKWYe zp#0@9-DNjKnQX_7*WbKZ_%Z*|+<^q!S!s_KPgh?-Gcl9SC4MS@2`~aS5($(dF`I6o z&wh__FJHbi#IJ=pt=kasbSbajx`p^(5oB_`26Xd*AW!P1b+75E;LXz+LsUJVEA3Ak%1@FX|t1E)j%HE^%YE* zAkVgzRub~W|C#n}c3qwG^8cD|ZKtQFcY5G|N1*3@))@P1Nd4nqA$2S5Ao$Bkw*6;J zpAIk6>yG?YfLw7=k#MC5^5C?!ab%m6)%71hI7pZr?I&VIj|6QdCMf0U8kAtnA>kf( zZQO<`AJV^7{M?~pCWBrYhhvt>ZRsvux}>sLA*-TLH0C&m!5PO79h!CSo^s|q2`W__ zQoe#J_Cc7!NOaY3rEGA21z&K3dP0md3hM#x72S_evD!E$dp>B3)>xT7 zOZWJ*n3D zqSz|y+0pXJKTA#k*K$-XX7+L^Z7Bqem75z*%8)y`e^P5A`;W0WEQjZ_rDoHFzGr2i=+&t`1%| zdc+9D5lQrQ09x9fCSGOVCI&XH3m{ji*t~Dy2k-3J8U96{W3z#2w_vA9-<^HPIR0(zg06LP;?sJMtUD-0Z#EV&^hV(Y_*GC}|?R=LUT z_rRfz*Jpij$otTh9by!qs-YU>jqBfLGD#<+)}f@VEON8&q^LYg+Qdxm-3JH;d;Fh6 zpEK&6w~x$u$%hcBi@Gy-!VZr@6$yvH9SakNzp(u^2K^h>ZI$z#HgTQvOhO6-^vUXE z29hi~&WyKxS5a|x+Xao`k1m13g*Vi^ZZP|e*&rz1`#XTPIJhCEfVsU2qBW!Sb{vH!Q};IU&kcKCPw z20f<%H7>^MZu}{R_h!dyLkJM$B(Qn3_}qlD@F@6)9y4>NaXs^RA#GENrxUOd&A*_X zNdfYfE_U{2PLJ)gHE(ZrqM5ZCI!?4bBlKf6AN6F) z8oxqS@cXWSn@pZ~7Nw$d6glPZ*VDu*53! zuD`Li55m2D_f!QAMdGQbY#ew9Gz;|fJ9`7`21-OjcDISee`4ZK>@I58eHsdZ#pnSj zySIbB4}aduG3T}oi`(Bo`FRkZZF9QjYyprK1(V8y70SE!t?z-mA}3m>_8KZN2nB5mx9I7| zlHKkD^lCU$vPQiV%47Ql$1wg#;cV`AiO0J6BQvQDqW1+k2herhgQqsn=xc1Xa?8&ep zJkrf#pgD$0l!c(rTW9KFWu{OSfyhtOnvGY2) zno;Cv<9S@YU2>NtX+saeEl21zxC)HRg$sl&?FCO3FgwbD zhJm%7wcgAbDDA!({$AvN(F18#YI_wg`t`(>h#~@{)#&(&2yGF*#c&|rWnqtEOF^>|Qo50a40r)a zBPR6sP%%l2Jh*1vx~#&&6LobP4%8?&oJMREGJkl<8*c)y>Gh91|953&w)Vn|i|0J> z;$S12F5?)Nfx^p8_ii;Qu-{2}O!u35i~DGPb{b5qT#aga z{9^o`l=N3XKq=lt*<+WvsvogK8qVvJs_1iLos?GXW}`F1TfI~pJ~z2o#8|H_fA+v} z?uHGQ9}ilS9AgzDW8DuM1~?kU%l>lItir39rlhd90xTg%2^r_P(Kj(26)GMbz#~Ii zeG!HCJ)TKRON+7%)%p!i7^XvEcIjTGm0b|8wQs+Dak}F#z15aYznFh^e(N2mS;V@p z<>&W*8I$kkTWJUI~C736#ExLrSE-%ava|cg{d& z#kJ_n*!D`pDk+ddFu1TZ9x-OjEA1dqsLVEN3`O9f&;?4ST))!fdy6U_;?!oP)_1NG z3iRukv_&%6+dp4@xu)~(1#4kXO+xL;6@2}cIgd+(9G`%aJ2t5$ZpG?)Fn z(_k`z{Y#-TgpiM%*gbm0Q7l}bM1|=qy*A+a=||sHbpwy&wO6k2O=Y&6qIIb1DFEF^ zc9P$9QP~p4qspkv-+!GOzk2Oj>)6ps&&tRXDhu>L@)`9;+ip!;Fw@r7*33KBHg4LF z;gM;}DB3I>3*_=AzR@3%!H^-ck?G;xp3C1WmG`HN7i2t*)pHjwS~tkfEdNnkJGlC# z!KJ}m(|!~05>5U5Kgzp2DD)@(Ahy`4wqw5?sFFe`d&uJ_R}h;~IE9fj{LbD!>ea!$ z@;xWQ>dIOt(fvS9BGc|b%`Pa?&b3Gr)SZJH_`rrWz9}4`!*wzMy`;&-G9db zJ;@8`d1`ZgH3Z!%q{0Adp^Im9GJDhZ6wj4j;){lLo_IvAdF~%$)#b|{c&EvG{`qDY zHwsr7xAP19+l+@Y()sfUnG1In80+O1j}!EnY?M`#aL4|U;VNOu^0+-SxJt^}QF$Mc zzNHy{sDP|Z#rZe8vTV$XHlisC(A#*fwQECt_;TEC1tK zMwiqu#xc=TYfC3%J3CngLjgEvYDG@8G#GW7l*CBMF^E+p)Jv*E=FXklRY_@kTwI*x zYUwhlr?({LehHi_%Ix>2XHfXt_CSe(83d&V?I_4 zn&JTx(LAuCfm})QJ#hGN?11$IP3nX*+k)iZM<+_0^4091s-_liK9%url)X@<(>qp; zg4JithAix>`^o=L`v0LTlZ&s=@CMf_b(sJDP*BkCC|)hIzWqI;#(t7#z^4GY8lC8huk*Bt1M_($lMbt*T1K7vJ+v^Uq;cD=u908`MPUUjSG`-u%}Q7}uzDkn zVS|_HG`hs^;&lbTbJ+uPjo}YN9r4vochg;&kD;YV$-8V{{<)FOfeRCs(=8LcpYUH} z>I}kum&fD^}>3+up@cnL%Twv%ZZKc4e{hP!&7t%y#I- z=K`KkXIqAM1N^_kK*8|S=;14$ODLx+h$evmBqRcukQ-Q^>~64FbNrHrRJ(RUyc^*) zo={JWO|3HS@@wHZ>0f<%1^2aUPXX_msKZI^LYTm;;mA!t2GC|HW!~CIrh90t^5Jw< zy$n=i!Uru_*M^}10V|O&h<_jfI9?9wW*XfJu{rEM(&hfxbTEOS?LyLc2kItiL3`|l zYNw`&1eyw8p{$A%Kj-eRFAdQhkJ%S@LzvMrYEwkg?m6D8XWdxG?mq$l&bx_rZ#uhC zDvY2h2)7ym?iNRxPt{v*KH}KzFtXK@b1F8n70f!3LHdpvllmyko_5D7clWo@RATB9 zNGz1KjD9llsNm)0C0uO{~^yQ4BBPQTlfdQ(%N4%)B5u2RD&5f}S3|abtFth07B9HCypd9`cE>93|uoZ(I zRiG{qLPI1DkoWFnar#GAFI}b=73SsrCdBwFUu>Bk^^RXDy4NdKl=qJNK6qZzZXUlV zf@pJ6Sst&R$D<6ks1Vfd-Mhv7Kg8EAs;V-^u&=vKf`#mdD<#9-qk8gUhpmU=qX}3pB4O z1iOF{{Ft_0>1p!5jZL@vdv`7**aEJ^BtUR*H$W=y=19-5eReHrVTt2zU?+s3WH9eq zQVe>a#lz4?OaYkQJ1ldG-jiEu&s2 z!n$IJEgVwC&<}nH*a6+;H+!%xeRrDsK0AI=9T68;r~pD|`sX+NX<0)Xc7F{sU<_Sn zBm2T+VwNzm5UmHcuV*3~q(=gU&nQQ!=;R(;@%qY80h;&>4E^jX^lA(s1QNPzOIkwn z6j<{f%BM2)Y*@?1^x%y#w%|s~R_~(Ku#!%7kfwuHjS06u5osG2kfv?#cmzXxt2Wq^ z-c@YhzCC3Mqj?$V3fZ#&HM5JW3c?fqO~Np%W*nB_T!&mDgoE1P$G6LDX4j2#Tlanc z#&N1Iy)ktgGiJ;xf(bKpew|cl<3<6}vW*zrdNOEDlGBDVJc0IbzNwk+($w>4_~x|l z{V9Ip|7Uv80Orl?P78e@A?JY@C@w9X#N5URbe)1~I~z-o=} zJzKkt^TckC@Lmy83{jlTxzLZlYICrhX?)HmeI+4WJ9_MxpxvxOmE7BI2lFgyX{s0b z1Iawc9B)>I#BXT&A#QC$<-;*ZV-Mnkg;}b~Zsz`KtXt0T`1{^bp{#ivw z8yXvbF4aI*5T?3OOpP$(L(ITZSQRU8;bX%63KH`~xf*_%Fn|B|l!@PQSrRIk-se?p z^QIr44Msf^BZ7hRzHS!71cC`r^1(hsWttoJj4y5_nJkU$K&a}nn`=w%{^k&P54-2x zWuCklA-$BK)194E?K+yq#GSy6d`)G1v(XL~LESz{usZ=dImgGwan$$KlJd827hAs` zSGjhgjWfy%xIf;^R53;ZeqCGn<`^NZ`$!21_eRMZ&2+9}#)%B475b2~ z`4#EA&KLawN0Jq$PMLy>#*3xeNzw1x>Qn0?%eV=OMcFMJMWh;za9NaXb`I;gi_)u_ zTrPZ5A#VfD&JjLJ`_Ub3k&+cXQ<&;uG9F5il*mnNUN&=RhLYjdWkJx11r$Ji=oa)~ z3XB-eFS&xGDI0_sq+0@VU&3x5)8_m9Z(1tZ2A3eJ=$1p??%%i17l8slJd)dLR@CFC z|EIFP4>A=o?Ev$19qsjU#V0vAN4-8!>j@_T4xo2`RtD`I?aS1M<1%4ZfSHrivok6} zroidqcy@0*v+mD7Z}C3SvXrIR_#QHVQSVMsDFoRrMZ61 z(T9QNNUE?x;GS!?I`aFjP}?CayrQ?m=9gb8Gp+qyrT_V#COcYX(EfofI!3oD2nS_I zWFgZC49uXhMf)b4)&)}%Z@r(`y;d0N_U0(>et%Gqby1xB+w`sUU=V5yzN+GVhnz0P zC5R4N+x@yA?;jUNAuVlHL!$%T!(Vyp7IgIJeR})1s3vf^Eu*R|C1hmWz5CH&__U_I z4RMW{Bm!p7j2ACHx$Q}-ENZoVAt80@jROP(760z**Ub*YC;cN@ZE8E4{#Elm*Z*-0 z{^$St=TAFYJ5|U3>(T%7V*dWq|K5T3wg13{sSr~Q+O6MNDFI?y#W+aU!e=5pk6P>a zS3>Ox5$^24ZdnhN01HUVux=``dwHB|Lv0n5zP3lJSh8RYD%lYb;2B;j-YiBbeV$={vF){`0#=mzqUnohfX0#&1|@cuZgWoCU{ojyPV z5#vI~6uwtlm0^~^H@MnF!Io*APb2tPq;0P6I_J=@AEhZ_pV_}QCVuVDE5PNgqnz9+ z>wgDX0yp%P|aiE;e!TigW!o68bb6vdcytm~|efW1lsyf4Z9_4$WZut1-TBF^Y zepC-sk1f?-n)xs zI{rO2C{|h+jm7W^a0DX|>?DwxP(i}YqURUN#r6urWQ^&fisc4;6c2ns7;6#M$awR& zr-wxIhv1amgw=Sl5S|imsNXyJ{0C7`(Tc$&0NoNK|7>c5lu>tmeI*NdULEi11(-$@ z9q74*n=NRMQgkv>dm){2%-urtR3ZmTh>>iN;+&+Fp^yC$G>FMoG)y!2!8Dgn^4CSL z8eHTK>XKkEaRN=Ypi)?~c}XjaNeS=>LTfFYl`dSkk)NM@=Up0^E0(zJXxu>4ZwZR4 z&E!21Ey187lOPvZtXR$P#&RMKgD3Jn=*;y|{DVG&YZ{pxHl&xJmADyeXkp)hq64xG zrb-_f!ReEY;FHk9dO zgewAnG_mtzGp$TVwsDEoANV#widTtb*;qfhfC0g!jM|>Lc=xEwv5{;1sdoO>+Jw%V z+8;wo0`aQ9L$|1B=~dE=U--fne?OrBAPF$2C}=vG{#%)bL!2jN|93OwC{ce1zgt4+ zgLpY&!4mLJye;0N%9q;^e9u!ohCug3@DE6&+n+qK{$)Z<1RC$af5*MIGvLuAI0OC& zmYB^-S^Z8LO)+}UDIJR?k;Vw6FCknQ0uouoS`JWh8;oXzYLvf=sQEW81Xl&>UCO;} z9!*l*j@tl$xcLG{qgT`da7epPEEmobJW*(dt<=nkxR1dMSN-^5`*I~MZ=wxNM_IPz z-OR~Rz*ZkIh?q_gy2o+j7Iy5Kj*LC~e0|*16-KHk>nJDNy2phhD8TDMEKXpzh$4QS z{TRFCV(WboPQe^2Ekrs<6Hp{&^N3iGcQkkPy}|VR&@vj(T3?)Vk4+H*D$>ew0A>iZ zoc(nV#|>dPr$}&ELST$lB_Lr5&XU<1#VQbq24d)J2(8N0noj(&ABTu6ja@+d3@B-F zt;EhYs^#7gBuw!D-bJz0=JKZ6LCjJtMS6n#EoW)tOe-say`ke3fX#P*xg-sR7$vZEi0 zTBT*!@_D+!*&lkcwafs!4q;ArTix3nq6n=WBGVzjItii#T?0uX3mb~mscaGcvlj36 z?c3Yiw3V*BI1908xSPtL6-$N0&A3cw(Zf z#`9;-x-%ajevR2_p`e}_dl`O9*faN!vDyJtNoBUw z@6|CThJAQ(q5n^*JiM}4RxxX#haVKnc?R-MZy9S$nV0hC7gboLlR$CGw$3<*K?czF zI^!-cB$Uz7(Mrziy%4w%l5`svJxtOVe(L!8!bAVqr@Qy!8j{&(nS6rk$i#7;&!YFf zcV#`kz!@-+A6|+H>c8!@gPE|HF{dB=4M+bGZryZ(=di#>Y|UVKT6c+|&QE@pAv_Dy z;8*|JWgPM^4T?#Jul-50;s~RQm%xUuNUQ@vtBlx2SF?(=B${!=ZTd2rqeu7fq4sZ+ z(uUShtr))23OjxR1tIDnKCbZX6=Lvp>ukKn<2pdY+3b0D_qH|EN~YoV%wlkVgOVn= zu5-II*G17vns_D523YS%)e6|*F!p#rn?FEzI&q2lk6@osCDQ&i6_p@W4^dkCjPhab zK?1-sJf&3v9jln7;yx*k+8ZuUg)$2d?qSL;_{-aT zjjQOeFllV9aR$rJY52cLz`4*Ff6V3}1pgzt`@eH>y(*+Hv{<#b_Pzh&;Gz`dl@da* zj{N!oOF`KGIV;JI^hB!Q&1#}}p}aOg>8usz8auFlVk_`N6IL1CvB#HLboMt;xkwNN zvHmR$`vvMVaC-EACnbIB?g?zkG>oSXJ<8-9?1>fbd)!!ntg!c^gvRA) zFCz_NFuhNowm$S8=xLbovSeN#WayLDFw{2Tz(vubyZ)Z}5UF4w3r7|-jO+MAfg(DIm=4;cek)Zo#=HRiFcN6v@ zumRyNd*C8Si+&Hqf=1?In3b~i9j5%Fl8-4NRmLa+*w>`v7JeW8z-OCWqqWr$`6DV5 zis81>av8Yc@F0b-pj~qt&XBB2f(~bk_oZx8&8|1&gnYe5%)MMN5S?%Tf_A)v#FpaA z=}6H{YcO@y%g<1EL5hVXlM+P9h2&rs%dT9>Rrd4umqZEwM6z7mNjNvua`40f6$Ue1 z?xw%yfAKCcFR<{fZ`-ylhQ5h#3Bo12`8Xn~qL;ry>JE#>{o>5bJG`lW>ZvpQnhv;Z z$YEC(mjLX0tp<)oJ^}=+uJmr5*U^dk7^k_eX2aWEtZAQ9!?sUhK?;9(o)`ut>8yBm z+LS34&)hnzsc|k-yEb`&ZuyU?&673+3Eqre;scl}tw(V`DJx-cl3mHU9<#abk+u=W z&jGqVJtFJt>lZCqG7+yP{;t%I@3i(Lq)e)$nNCDEl!p&>#HaW5WXmx7=VRTv)zNka zKgw=9K(jO&A1@|;scR7t1W48~d&t1z7NldV(BBEAFbP<A7sT)XyS?ie@=;YCG) z)-5+!H%M5)t@$yzApYm-=Cs_xEEmkIi_tb($F9dGnGPjjvHPg14B91pAX-?mo3$8d zD-*#&+L4~9kW`d-jU?|Z*e=1XmXc8)@K0NeKb_q0>ri56lO5ylSachOjsa{;H(Wp) z{+i&2&DMS8x3M~?p1EOBallQ#g?P)TobVj(+=56fwwVA*n6?zlTe-N8={>+ub{)2! zeojBkUH_ZQxu>HXae3ZeyiILc4`p+UdfH|JT@=hxMGVZ@eas#*$?c zA?vZsP?VXXA|pD6L2AroSE*2TZA!_Yp~#X#lw~p+YZ{YEi&BbpZf_}N`Qfj`^w7V-=t#_J8?MlR-JG{7cJ|RqxrY04GkQP77Fd@q zhK6)EaR(IT2Bmx0?9%~e>W@vM@>ub>2}se3Q9X(iK>reyzF2E$(`G3UOJ^XCgL#)h za0TSfUGU!mI#U?K)C6-pi_vwMbbnq4?!}g`Dg3fs7F1IzgI&CUDVW;txtkGq}RTRQp?E$QW z;f{=^YK5eczK*1{7<3s&2^t~s4ihLGqaEO88FZm^1}GGslEn-(E<%dKGrzNBdhs=N zq4Bnkibs)C%7?`}ng#tMgI&B~{FL;1eK+v$m%b=@%EyJm60TeN8&APFG)DmmCc~w) zIT|wgLX1%m=8wtIO}ywDigK}|j`wIjptmZxTQ+cNDKqz0bU zIj&iQGgo(Ev9u9gi(wmfZ@BK6G;_x4 zn3KD~=rnb%e0D#mX-cy5RdmQkz)U=12LLZl$0X=@y&1F_B8S^l%oQNL(L_J zL2Avb%D{4#jQ$CM%TZx9;xuG??D_1ifXZBU$8x_eG8DvY%5AYLYpu+8Ua$J9rM1@X zi)H?*driA3Z#mgBv%}P`Bl-{Ay!p$?UAwf69k@AR=GTh7*DjlCaP*YBSC=jQr#zc{ zX!F1+v!3_A5c7@lp6@1ZaPsslsmOC^Uo!D>Uh2kiw+sECcU&{v$Bzz5a!r3{Y|F@j zjCO!yAh!I5qYc-i^BPjzj#1J%F;1F%b^;ioL{`^$g8uWbuacB8IS#tHm0AnqAwkO^2Eb7oCOsC7X5khd;lTFP)yH>H5@0@M z!H54WQ4!7_kpm;<12I+oPhZz9cEPTtPJx3HrD2Aykvf2OKQ8|%W2Jw6-Owyu5|QH& z8KeCEJ^l07sL^8{R|%lvui3-hclLOHP7i`vLa)H$)H@0EzIP)z<&Zz8ufntcU34KKXJV9zhHYL^u-kBg-%p&_g8RD6aW8han?DoO zfv{H`8o1Dk=`n^xtQefA|BRUn7LzlYnhBLWHU+(%mRB zm8A6yMFq83jK1{Ud%( z#<==Ev= z#sG=I`pabnQ+WdTZ@xO|XAN|O_##A3>Y?(dB_*T&TrTcPhI)gFLo9UAuN$&fL_xq+ zxgE@h`N3K$UAXT^!=q6Eb#mh9QL(b{ewAiB8WaH6(=j7Dw{QPzL*nqvvnss`o-^Ra zp1aFoyUSY>duGRI#n&WuxE!t4l2t|H%zW|LnvMG%H3Le)JY;zawiEtQGdw)vX4R$N zN>9g;`q;$8{K$Pbmn1^woV-4ga1Fm#ceP!=OjuxR*E#jYJDgC~2+O`8=JoUy*Bx{N z8)giXwZ1eJ+?%8WA>xn2p)i?}zeJ}N6_8@hwa;d*2C!|tyn6$InymOpGk+$KZd6oM zcMs3soXkpRJSz3!L4$I~uV9pac+jFz(u( z>lml~^D9rQeVET*zrQhEcEO{ALzrPyw~S+B%da5003{OD_jT0cf<2J| zt77XH7H3QS)YtRv8U&RxP!^u!fW|uTdS5qRa>@lPPAgzvxU5>^&1umBxA$Vll9WZdJm7w>@929Gt1N#`*|RMa9}+1{csQl+2JCCYS|{tG{|w_ z*0!4cP`u+%8GSRa8bK%`;JTs~VZ_3kh8~;gj4`_?^tqlpGYH_j06kYT)F^&+LP{g6 zOTDs)39c>RpGq>Lq0mz6=PBdV#lam!I4%ZBY>rS;y}b`zC$sly0Iz zh5?m3b+W;oStb8~I63dwVFiVOc1|2f0k*?to!F)wxT@p|)YERVn?mtn4_rE6gU33Q zaqVRS3fT5xq2dl$J*jGo9c4cgXgSeGf+7fA;GB7Lq>E>W@@up_GJedpqlUw(YC3$K z?<+zJq?WpzSlUKDhuvktZYp|ukvfqpbPh7irp2cr>KHLlq@<99XdP^4Ys3(H`8E&=a%d`VM&WIpfgv-h%;-yx1XY4nz+yO4sSyPTR8^fsA>WYu zxW)Fq9=C#|=Ta3_=4%7(W=TcwUYp!wLg8DXM1-v%lM1eO^k{#$+R`o^S;E#$)M^|% z9;`N8z@VQO29O3JnyzD{bQ#MSIuv0iFqi4Tg5k9f>~w?BUJV6kBY9Zr27QV_2?hj| zu)XN^Ywk`PsVKWzIqyHR>4Uj@ah3&*5UWifj3^R{;O|uFdSAuSR*H?NXs{H!bnSYT zvbL;7FEF1=j#1?PS_LzDFjw;P&iYh?$L~v`NiE&~9vQWR(iOz7c=P5@tfL|#BD(%Y zJ~K(ULg+j2?GSmCY`go{CR#tCg@6%3zmS=9oWN<{sg?V>%UlW*2FM(+coydo)(Ibh zfvbgAxx*MW(84DP^y3!s9^(idKv()8QCpdvFvXN

m}NmEze7B73XiqC|Vzi8PRt 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 literal 0 HcmV?d00001 diff --git a/docs/performance_report/index.rst b/docs/performance_report/index.rst new file mode 100644 index 0000000..7f478bd --- /dev/null +++ b/docs/performance_report/index.rst @@ -0,0 +1,1091 @@ +.. _performance-report: + +=========================================================================== +Gaussian PSF Fitter Performance Report -- High-Resolution Characterization +=========================================================================== + +.. contents:: Table of Contents + :depth: 3 + :local: + +Introduction +============ + +This report presents a comprehensive characterization of the ``rms-psfmodel`` +Gaussian PSF fitting library, evaluating its accuracy across a broad parameter +space. The results are produced by the ``characterize_gauss_fit`` tool using +the **high-resolution configuration** (``hires_config.yaml``), which employs +denser parameter grids and larger noise-sample counts than the default +configuration to produce smoother statistics and finer detail at intermediate +parameter values. + +Purpose and Scope +----------------- + +The ``rms-psfmodel`` library fits 2-D elliptical Gaussian point-spread +functions (PSFs) to sub-images extracted from astronomical detector data. +The fitter recovers the sub-pixel position, PSF width (sigma), orientation +angle, and amplitude scale of the source. This report quantifies how +accurately the fitter recovers these parameters under controlled conditions +by comparing fitted values to known ground truth. + +Eight focused studies each vary a small set of parameters while holding +others fixed, probing different aspects of fitter performance: + +.. list-table:: Study Overview + :header-rows: 1 + :widths: 5 30 15 10 10 + + * - # + - Study + - Question Addressed + - Trials + - Convergence + * - 1 + - Box Size vs. Sigma + - How large must the sub-image be relative to the PSF width? + - 780 + - 100% + * - 2 + - Subpixel Offset + - Does fractional pixel position introduce systematic bias? + - 1,764 + - 100% + * - 3 + - Minimum Detectable Offset + - What is the smallest recoverable positional shift? + - 61,677 + - 100% + * - 4 + - Sigma Asymmetry and Angle + - How well are elongated, rotated PSFs recovered? + - 750 + - 100% + * - 5 + - Constraint Modes + - How does fixing vs. floating sigma/angle affect accuracy? + - 44 + - 100% + * - 6 + - Background Conditions + - How do background models interact with fitting accuracy? + - 2,100 + - 100% + * - 7 + - Noise Sensitivity + - At what SNR does fitting accuracy degrade? + - 20,000 + - 100% + * - 8 + - Hot Pixel Rejection + - How effectively does sigma-clipping reject bad pixels? + - 14,400 + - 83.3% + +**Total trials: 101,515.** All studies achieve 100% convergence except +hot pixel rejection, where aggressive sigma-clipping (``num_sigma=3``) +causes systematic convergence failure. + +Methodology +----------- + +Each trial follows the same protocol: + +1. **Generate** a synthetic PSF image using ``GaussianPSF.eval_rect()`` + with known sigma, angle, sub-pixel offset, and scale. The image is a + pixel-integrated 2-D Gaussian on a square grid of side ``box_size``. + +2. **Corrupt** the image with optional additive backgrounds (constant, + linear, quadratic, or noisy), Gaussian detector noise, and/or hot + pixels. + +3. **Fit** the corrupted image using ``GaussianPSF.find_position()``, the + same production API that downstream users call. The fitter uses + Powell's method to minimize the squared residual between the model and + the data, with optional polynomial background subtraction and + sigma-clipping for outlier rejection. + +4. **Compute errors** by comparing fitted parameters to the injected + ground truth: + + - **Position error** (Euclidean): ``sqrt((fit_y - true_y)^2 + + (fit_x - true_x)^2)`` + - **Sigma error** (relative): ``(sigma_fit - sigma_true) / sigma_true`` + - **Scale error** (relative): ``(scale_fit - scale_true) / scale_true`` + - **Angle error** (absolute, radians): ``|angle_fit - angle_true|`` + wrapped to ``[-pi/2, pi/2]`` + +Error Metric Definitions +^^^^^^^^^^^^^^^^^^^^^^^^ + +Throughout this report, **position error** is the Euclidean norm of the +signed Y and X position residuals, measured in pixels. **Sigma error** and +**scale error** are dimensionless relative errors (a value of 0.01 means 1% +error). **Angle error** is an absolute difference in radians, reduced +modulo 90 degrees due to the pi-symmetry of elliptical Gaussians. + +For stochastic studies (noise, hot pixels, minimum detectable offset), each +parameter combination is repeated with 50--200 independent noise +realizations. Statistics are reported as mean +/- 1 standard deviation over +these realizations. + +Configuration Summary +^^^^^^^^^^^^^^^^^^^^^ + +The high-resolution configuration uses: + +- **200 noise samples** per stochastic condition (vs. 50 in the default) +- **12 box sizes** from 5 to 41 pixels +- **13 sigma values** from 0.3 to 5.0 pixels +- **21 x 21 subpixel offset grid** (0.025 px resolution) +- **25 SNR points** from 3.2 to 3162 (log-spaced) +- **25 angle steps** (7.5 degree resolution) + +The fitter uses ``tolerance=1e-6``, ``use_angular_params=true``, and +``search_limit=[1.5, 1.5]`` pixels throughout. + + +Study 1: Box Size vs. PSF Sigma +================================ + +**Question:** How large must the fitting sub-image be relative to the PSF +width for accurate position, sigma, and scale recovery? + +Box-Sigma Parameters +-------------------- + +.. list-table:: + :header-rows: 1 + :widths: 20 50 + + * - Parameter + - Values + * - Box sizes + - 5, 7, 9, 11, 13, 15, 17, 19, 21, 25, 31, 41 pixels + * - Sigma (symmetric) + - 0.3, 0.4, 0.5, 0.6, 0.8, 1.0, 1.25, 1.5, 2.0, 2.5, 3.0, 4.0, 5.0 px + * - Sub-pixel offsets + - (0,0), (0.25,0.25), (0.5,0), (0,0.5), (0.5,0.5) + * - Background/noise + - None (clean pixel integrals only) + +The study sweeps a 12 x 13 grid of box sizes and sigma values at five +sub-pixel offset positions, producing 780 noiseless trials. Background +subtraction is disabled (``bkgnd_degree=null``) so that only the intrinsic +truncation effect is measured. + +Box-Sigma Results +----------------- + +All 780 trials converge. The position error heatmap reveals a sharp +transition between catastrophic and excellent fits that depends on the +ratio of box size to PSF sigma: + +.. figure:: images/box_vs_sigma_pos_err_oy0p25_ox0p25.png + :width: 100% + :alt: Heatmap of log10(position error) vs box size and sigma + + Position error (Euclidean, log10 scale) as a function of box size + (rows) and PSF sigma (columns) at offset (+0.25, +0.25). Dark cells + indicate sub-pixel precision; bright/yellow cells indicate catastrophic + failure. + +.. list-table:: Position Error Summary by Regime + :header-rows: 1 + :widths: 30 25 25 + + * - Regime + - Typical Position Error + - Sigma/Scale Error + * - box >= 4*sigma + 1 (adequate) + - 1e-7 -- 1e-14 pixels + - < 1e-6 (relative) + * - box < 4*sigma + 1 (truncated) + - 0.1 -- 2.1 pixels + - 2x -- 48x (relative) + +Box-Sigma Findings +^^^^^^^^^^^^^^^^^^ + +1. **Adequate box size threshold:** When ``box_size >= 4 * sigma + 1``, + the fitter achieves near-machine-precision accuracy. For a sigma=1.0 + PSF, a 5-pixel box suffices; for sigma=5.0, a 21-pixel box is needed. + +2. **Sharp cliff:** The transition from good to bad is abrupt. For + sigma=0.5, the fit jumps from ``pos_err ~ 1e-10`` at box=7 to + ``pos_err ~ 2.0`` pixels at box=5. There is no graceful degradation. + +3. **Sigma recovery is worst:** When the box is too small, sigma errors + reach 15x--32x (the fitter dramatically overestimates sigma to + compensate for the truncated wings), and scale errors reach 48x. + +4. **Offset sensitivity at the boundary:** At box=5 with sigma=0.3--0.5, + the offset (0,0) case produces much smaller position errors than + (0.25,0.25) or (0.5,0.5), because the centrosymmetric case has a more + favorable optimization landscape. + +**Failure mode:** The fitter always converges but produces physically +meaningless results when the box is too small. Users must ensure adequate +box size for their PSF width. + + +Study 2: Subpixel Offset Bias +============================== + +**Question:** Does the fractional pixel position of the PSF center +introduce systematic position bias? + +Offset Parameters +----------------- + +.. list-table:: + :header-rows: 1 + :widths: 20 50 + + * - Parameter + - Values + * - Offset grid + - 21 x 21 points, 0.0 to 0.5 px in each axis (0.025 px steps) + * - Sigma values + - 0.5, 1.0, 1.5, 2.0 px + * - Box size + - 21 px (fixed) + +Offset Results +-------------- + +All 1,764 trials converge with **negligible** position error across the +entire offset range: + +.. list-table:: Subpixel Offset Error Summary + :header-rows: 1 + :widths: 15 20 20 20 + + * - Sigma + - Mean pos_err + - Max pos_err + - Scale error (max) + * - 0.5 + - 2.7e-7 px + - 5.0e-7 px + - 6.8e-7 + * - 1.0 + - 1.6e-7 px + - 4.0e-7 px + - 2.0e-7 + * - 1.5 + - 1.3e-7 px + - 3.5e-7 px + - 4.5e-8 + * - 2.0 + - 1.1e-7 px + - 3.0e-7 px + - 1.8e-8 + +.. figure:: images/subpixel_offset_pos_err_sigma1.0.png + :width: 100% + :alt: Heatmap of position error vs subpixel offset for sigma=1.0 + + Position error (Euclidean, log10 scale) as a function of subpixel + offset (Y and X) for sigma=1.0. The entire grid is at the 1e-7 to + 1e-14 level with no systematic pattern. + +Offset Findings +^^^^^^^^^^^^^^^ + +1. **No subpixel bias:** The fitter shows no systematic position error as + a function of fractional pixel position. All errors are at the + optimizer convergence floor (~1e-7 pixels). + +2. **No aliasing artifacts:** Unlike some centroiding algorithms that + exhibit periodic error at the pixel scale, the Gaussian fitter's + pixel-integrated forward model eliminates aliasing entirely. + +3. **Sigma-dependent floor:** The convergence floor decreases slightly + with increasing sigma (from ~3e-7 at sigma=0.5 to ~1e-7 at sigma=2.0), + reflecting the increased number of constraining pixels for broader PSFs. + +**This is excellent performance.** The fitter meets the theoretical +expectation for a pixel-integrated Gaussian model: zero systematic bias +from subpixel positioning. + + +Study 3: Minimum Detectable Offset +==================================== + +**Question:** What is the smallest positional shift that the fitter can +reliably recover, as a function of PSF sigma and noise level? + +Min-Offset Parameters +--------------------- + +.. list-table:: + :header-rows: 1 + :widths: 20 50 + + * - Parameter + - Values + * - Offset deltas + - 0.001, 0.002, 0.004, 0.007, 0.01, 0.02, 0.04, 0.07, 0.1, 0.2, 0.5 px + * - Sigma values + - 0.3, 0.5, 0.8, 1.0, 1.5, 2.0, 3.0 px + * - SNR conditions + - Noiseless, 20, 50, 100, 500 + * - Noise samples + - 200 per noisy condition + +All 61,677 trials converge. The offset is applied in the X direction only, +with Y fixed at zero. + +Noiseless Precision Floor +------------------------- + +.. figure:: images/min_detectable_offset_pos_err_noiseless.png + :width: 100% + :alt: Noiseless position error vs injected offset delta + + Noiseless position error (Euclidean) vs. injected X offset for each + sigma value. The error curves show the numerical precision floor of + the optimizer. + +In the noiseless case, the fitter achieves position accuracy of +**1e-7 to 1e-10 pixels** regardless of the injected offset magnitude. +Smaller sigmas (0.3, 0.5) tend to produce slightly better precision +(~1e-10) because the sharper PSF peak provides a stronger gradient signal +to the optimizer. Larger sigmas (2.0, 3.0) plateau at ~1e-7. + +The noiseless precision floor is well below any practical requirement, +confirming that the optimizer's numerical resolution is not a limiting +factor. + +Noisy Recovery +-------------- + +.. figure:: images/min_detectable_offset_recovery_snr_100.png + :width: 100% + :alt: Recovery fraction heatmap at SNR=100 + + Recovery fraction (pos_err < delta/2) at SNR=100. Rows are sigma + values; columns are injected offsets. Full recovery (1.0) appears only + at the largest offsets and smallest sigmas. + +With noise, the minimum recoverable offset is set by the noise floor: + +.. list-table:: Approximate 50% Recovery Threshold (offset in pixels) + :header-rows: 1 + :widths: 15 15 15 15 15 + + * - Sigma + - SNR=20 + - SNR=50 + - SNR=100 + - SNR=500 + * - 0.3 + - > 0.5 + - 0.2 + - 0.04 + - 0.007 + * - 0.5 + - > 0.5 + - 0.2 + - 0.07 + - 0.01 + * - 1.0 + - > 0.5 + - > 0.5 + - 0.2 + - 0.04 + * - 2.0 + - > 0.5 + - > 0.5 + - > 0.5 + - 0.2 + * - 3.0 + - > 0.5 + - > 0.5 + - > 0.5 + - > 0.5 + +Min-Offset Findings +^^^^^^^^^^^^^^^^^^^ + +1. **Noise floor dominates:** The practical precision limit is approximately + ``sigma / SNR`` pixels, consistent with the Cramer-Rao lower bound for + Gaussian centroiding. + +2. **Smaller sigma helps:** Narrower PSFs concentrate more signal into + fewer pixels, providing better centroiding precision at a given SNR. + At SNR=100, sigma=0.3 achieves 50% recovery at delta=0.04 px, while + sigma=2.0 cannot reach 50% recovery until delta > 0.5 px. + +3. **Large sigma penalty:** For sigma >= 2.0, the fitter struggles to + recover offsets below 0.2 pixels even at SNR=500. **This is a + significant limitation** for applications requiring sub-0.1-pixel + precision with broad PSFs. + +4. **Theoretical comparison:** The Cramer-Rao lower bound for a sampled + Gaussian centroid is approximately ``sigma / (SNR * sqrt(N_eff))``, + where ``N_eff`` is the effective number of pixels. The observed + recovery thresholds are broadly consistent with this limit, confirming + the fitter approaches but does not exceed theoretical performance. + + +Study 4: Sigma Asymmetry and Angle Recovery +============================================ + +**Question:** How well does the fitter recover the parameters of +elongated, rotated PSFs? + +Asymmetry Parameters +-------------------- + +.. list-table:: + :header-rows: 1 + :widths: 20 50 + + * - Parameter + - Values + * - Sigma ratios (sigma_y/sigma_x) + - 0.2, 0.33, 0.5, 0.67, 0.75, 1.0, 1.5, 2.0, 3.0, 5.0 + * - Angles + - 25 steps from 0 to 180 degrees (7.5 degree resolution) + * - Sigma_x values + - 0.5, 1.0, 2.0 px + * - Box size + - 25 px + +All 750 trials converge (noiseless). + +Asymmetry Results +----------------- + +.. figure:: images/sigma_asymmetry_angle_pos_err_sx1.0.png + :width: 100% + :alt: Position error heatmap for asymmetric PSFs at sigma_x=1.0 + + Position error (Euclidean, log10) as a function of sigma ratio (rows) + and angle (columns) for sigma_x=1.0. Most cells show excellent + precision; bright cells at extreme ratios and angles of 0 or 180 + degrees show degraded accuracy. + +.. figure:: images/sigma_asymmetry_angle_angle_err_sx1.0.png + :width: 100% + :alt: Angle error heatmap for sigma_x=1.0 + + Angle error (degrees, mod 90) for sigma_x=1.0. The ratio=1.0 row + (circular PSF) is greyed out because angle is degenerate. Near-circular + ratios (0.75, 1.5) show the largest angle errors. + +.. list-table:: Sigma Asymmetry Summary (sigma_x=1.0) + :header-rows: 1 + :widths: 15 20 20 20 + + * - Ratio Range + - Typical pos_err + - Typical angle_err + - Notes + * - 0.2 (extreme) + - 1e-2 -- 3e-2 px + - < 0.01 degrees + - Poor position, good angle + * - 0.5 -- 0.75 + - 1e-6 -- 1e-8 px + - < 0.01 degrees + - Excellent overall + * - 1.0 (circular) + - 1e-7 px + - N/A (degenerate) + - Angle undefined + * - 1.5 -- 2.0 + - 1e-6 -- 1e-8 px + - < 0.01 degrees + - Excellent overall + * - 5.0 (extreme) + - 1e-3 -- 1e-5 px + - < 0.1 degrees + - Modest degradation + +Asymmetry Findings +^^^^^^^^^^^^^^^^^^ + +1. **Moderate asymmetry is handled well:** For sigma ratios between 0.5 + and 2.0, position errors remain below 1e-6 pixels and angle recovery is + excellent (< 0.01 degrees). + +2. **Extreme asymmetry degrades position:** At ratio=0.2 (sigma_y = 0.2 + pixels when sigma_x = 1.0), position errors rise to 0.01--0.03 pixels. + **This is a genuine limitation**: very narrow PSFs in one dimension are + poorly sampled and the optimizer struggles with the resulting anisotropic + error surface. + +3. **Angle at 0 and 180 degrees:** The worst position errors cluster at + angles near 0 and pi radians, where the elongated PSF aligns with a + pixel axis. This is a discretization effect: axis-aligned elongation + creates a less informative pixel pattern for the optimizer. + +4. **Near-circular angle degeneracy:** Ratios near 1.0 (0.75, 1.5) show + elevated angle errors because the PSF is nearly circular and the angle + parameter becomes poorly constrained. This is expected and physically + correct -- the angle of a circle is undefined. + +5. **Angle recovery breaks at sigma_x=0.5:** When the reference sigma is + only 0.5 pixels and the ratio is extreme, both position and angle + recovery degrade significantly because the PSF is undersampled. + + +Study 5: Constraint Modes +========================== + +**Question:** How does fixing vs. floating the sigma and angle parameters +affect fitting accuracy? + +Constraint Parameters +--------------------- + +Eleven constraint configurations are tested on four PSF shapes: + +.. list-table:: PSF Shapes Tested + :header-rows: 1 + :widths: 10 15 15 15 + + * - Shape + - Sigma (Y, X) + - Angle + - Description + * - S1 + - (1.0, 1.0) + - 0 degrees + - Circular + * - S2 + - (0.5, 1.5) + - 45 degrees + - Elongated, tilted + * - S3 + - (1.0, 2.0) + - 60 degrees + - Moderately elongated + * - S4 + - (0.7, 1.4) + - 30 degrees + - Mildly elongated + +Constraint modes include: all parameters floating, sigma fixed at correct +value, sigma fixed with 10%--75% error, angle fixed (correct and incorrect), +and all parameters fixed. Six sigma-error fractions are tested: 0%, 10%, +20%, 30%, 50%, and 75%. + +Constraint Results +------------------ + +.. figure:: images/constraint_modes_summary.png + :width: 100% + :alt: Constraint modes summary bar chart + + Six-panel summary of fitting accuracy across constraint modes and PSF + shapes. Top row: position error (Euclidean, Y, X). Bottom row: scale + error, sigma_y error, angle error. + +.. list-table:: Position Error by Constraint Strategy (mean across shapes) + :header-rows: 1 + :widths: 40 20 20 + + * - Constraint Mode + - Mean pos_err (px) + - Mean abs(scale_err) + * - Sigma fixed (correct) + angle fixed (correct) + - 2.5e-4 + - 0.004 + * - Sigma fixed (correct), angle floated + - 2.6e-4 + - 0.004 + * - All float + - 2.5e-4 + - 0.027 + * - Sigma fixed (10% error) + - 3.8e-4 + - 0.075 + * - Sigma fixed (20% error) + - 4.0e-4 + - 0.143 + * - Sigma fixed (50% error) + - 5.4e-4 + - 0.310 + * - Sigma fixed (75% error) + - 6.3e-4 + - 0.437 + +Constraint Findings +^^^^^^^^^^^^^^^^^^^ + +1. **Fixing correct sigma provides marginal position improvement:** + Compared to floating sigma, fixing it at the correct value barely + improves position accuracy (2.5e-4 vs. 2.5e-4 px). The primary + benefit is in scale accuracy. + +2. **Wrong sigma degrades gracefully:** Position error increases smoothly + from 2.5e-4 to 6.3e-4 pixels as sigma error grows from 0% to 75%. + Position is relatively robust to sigma mismatch. + +3. **Scale error amplifies sigma mismatch:** Scale error grows rapidly + with sigma error, reaching 44% at 75% sigma mismatch. **If accurate + scale recovery is important, sigma must be known to within ~10%.** + +4. **Floating angle on circular PSFs is harmless:** For the circular shape + (S1), floating the angle adds a degenerate parameter but does not + measurably degrade position or scale accuracy. + +5. **Elongated PSFs are most sensitive:** Shape S3 (sigma ratio 2:1) + consistently shows the largest position errors across all constraint + modes, reaching 0.003 pixels with 75% sigma error. + + +Study 6: Background Conditions +================================ + +**Question:** How do injected background levels and polynomial fitting +degree interact to affect position accuracy? + +Background Parameters +--------------------- + +.. list-table:: + :header-rows: 1 + :widths: 20 50 + + * - Parameter + - Values + * - Background types + - none, constant, linear, quadratic, noisy_constant + * - Background amplitudes + - 0.005, 0.01, 0.05, 0.1, 0.25, 0.5, 1.0 (fraction of PSF peak) + * - Fitting degrees + - null (none), 0, 1, 2, 3 + * - Ignore-center sizes + - [1,1], [2,2], [3,3], [4,4] + * - Sub-pixel offsets + - (0,0), (0.25,0.25), (0.5,0.5) + +All 2,100 trials converge, but accuracy varies enormously. + +Background Results +------------------ + +.. figure:: images/background_pos_err_amp3_ic1_oy0p25_ox0p25.png + :width: 100% + :alt: Background study heatmap at amplitude=0.1, ignore=2x2 + + Position error (Euclidean, log10) for amplitude=0.1x peak, + ignore-center=2x2, offset=(0.25,0.25). Rows: injected background type. + Columns: fitting polynomial degree. The ``null`` column (no background + subtraction) shows catastrophic errors for constant and noisy_constant + backgrounds. + +.. list-table:: Background Fitting -- When It Works and When It Fails + :header-rows: 1 + :widths: 20 15 15 15 15 + + * - Background Type + - null + - degree 0 + - degree 1 + - degree >= 2 + * - none + - 1e-7 px + - 4e-6 px + - 8e-5 px + - 2e-5 px + * - constant + - **0.15 px** (FAIL) + - 4e-6 px + - 8e-5 px + - 2e-5 px + * - linear + - **0.03 px** (FAIL) + - 0.03 px + - 8e-5 px + - 2e-5 px + * - quadratic + - 9e-4 px + - 1e-3 px + - 1e-3 px + - 2e-5 px + * - noisy_constant + - **0.15 px** (FAIL) + - 4e-6 px + - 8e-5 px + - 5e-4 px + +(Representative values at amplitude=0.1, ignore-center=2x2, +offset=0.25,0.25.) + +Background Findings +^^^^^^^^^^^^^^^^^^^ + +1. **Matching degree is essential:** The fitting polynomial degree must + be >= the injected background's polynomial order. Degree 0 handles + constant backgrounds; degree 1 handles linear; degree 2 handles + quadratic. + +2. **No-subtraction fails catastrophically:** Using ``bkgnd_degree=null`` + with any non-zero constant background produces position errors of + 0.1--0.3 pixels at amplitude=0.1x peak, and worse at higher amplitudes. + **This is the most common user error.** + +3. **Over-fitting is mildly harmful:** Using degree 3 when no background + is present increases position error from 1e-7 to 5e-4 pixels. Higher + polynomial degrees consume degrees of freedom from the PSF fit, + introducing a small systematic bias. + +4. **Ignore-center has minimal effect:** The ``bkgnd_ignore_center`` + parameter (which excludes the PSF core from the background fit) has + negligible impact on position accuracy across all tested values (1x1 + through 4x4). + +5. **Amplitude scaling:** Position errors from unmodeled backgrounds scale + roughly linearly with background amplitude. At amplitude=1.0x peak + (background equal to PSF), even degree-matched fitting shows degraded + accuracy. + +6. **Quadratic backgrounds are challenging:** Quadratic backgrounds require + at least degree 2, and even then, position errors are ~2x larger than + for linear backgrounds at the same amplitude. + + +Study 7: Noise Sensitivity +============================ + +**Question:** How does fitting accuracy degrade as a function of +signal-to-noise ratio? + +Noise Parameters +---------------- + +.. list-table:: + :header-rows: 1 + :widths: 20 50 + + * - Parameter + - Values + * - SNR range + - 3.2 to 3162 (25 log-spaced points) + * - Sigma values + - 0.5, 1.0, 1.5, 2.0 px + * - Noise samples + - 200 per (SNR, sigma) point + * - Offsets + - Random uniform in [-0.5, +0.5] per trial + +All 20,000 trials converge. + +Noise Results +------------- + +.. figure:: images/noise_sensitivity_pos_err_vs_snr.png + :width: 100% + :alt: Position error vs SNR + + Position error (Euclidean) vs. SNR for four sigma values. Shaded + bands show +/- 1 standard deviation across 200 noise realizations. + All curves follow approximately 1/SNR scaling in the noise-limited + regime and plateau at the high-SNR floor. + +.. list-table:: Noise Sensitivity -- Key Thresholds + :header-rows: 1 + :widths: 15 20 20 25 + + * - Sigma + - High-SNR floor + - SNR for 0.1 px error + - SNR for 0.01 px error + * - 0.5 + - ~0.001 px + - ~10 + - ~100 + * - 1.0 + - ~0.002 px + - ~15 + - ~200 + * - 1.5 + - ~0.005 px + - ~20 + - ~500 + * - 2.0 + - ~0.009 px + - ~25 + - ~1000 + +Noise Findings +^^^^^^^^^^^^^^ + +1. **1/SNR scaling confirmed:** All sigma values show position error + decreasing as approximately 1/SNR in the noise-limited regime (SNR + < 100--1000 depending on sigma). Regression slopes range from 0.88 + to 1.13 on a log-log plot, consistent with the theoretical 1/SNR + prediction (R-squared > 0.97 for all curves). + +2. **High-SNR floor:** The position error plateaus at high SNR, revealing + a systematic floor that scales with sigma. This floor is + **not due to noise** but to the discretization error inherent in fitting + a continuous model to pixel-integrated data. The floor for sigma=0.5 is + ~0.001 pixels; for sigma=2.0, it is ~0.009 pixels. + +3. **Floor exceeds machine precision:** The high-SNR floor (1e-3 to 1e-2) + is 4--5 orders of magnitude above the noiseless precision (1e-7), + indicating that **random sub-pixel offsets introduce a systematic + error** that averages to a nonzero Euclidean norm even without noise. + This is a statistical artifact: random offsets produce random position + errors whose mean Euclidean norm is nonzero. + +4. **Low-SNR saturation:** Below SNR ~10, position errors saturate near + 1.5--1.8 pixels, limited by the ``search_limit`` parameter (1.5 pixels). + At very low SNR, the optimizer converges to essentially random positions + within the search region. + +5. **Sigma=0.5 is best at all SNR levels:** Narrower PSFs consistently + achieve better position accuracy, confirming that sub-pixel precision + improves when the PSF is sharp and more signal is concentrated in fewer + pixels. + +**Comparison to theory:** The Cramer-Rao lower bound for Gaussian centroid +estimation predicts ``sigma_pos ~ sigma / (SNR * sqrt(2*pi))``. For +sigma=1.0 and SNR=100, this gives ~0.004 pixels, which matches the +observed mean position error of ~0.01 pixels to within a factor of ~2. +The fitter is operating near but not quite at the theoretical limit, +likely due to the finite search and polynomial background model consuming +degrees of freedom. + + +Study 8: Hot Pixel Rejection +============================== + +**Question:** How effectively does the ``num_sigma`` bad-pixel rejection +mechanism handle hot pixels? + +Hot-Pixel Parameters +-------------------- + +.. list-table:: + :header-rows: 1 + :widths: 20 50 + + * - Parameter + - Values + * - Hot pixel counts + - 0, 1, 2, 3, 5, 7, 10, 15 + * - Hot pixel amplitudes + - 2x, 5x, 10x, 20x, 50x, 100x PSF peak + * - num_sigma thresholds + - null (disabled), 3.0, 4.0, 5.0, 6.0, 8.0 + * - Noise samples + - 50 per condition (SNR=100) + +This is the **only study with convergence failures**: 2,401 of 14,400 +trials (16.7%) fail to converge, all associated with ``num_sigma=3.0``. + +Hot-Pixel Results +----------------- + +.. figure:: images/hot_pixel_rejection_pos_err_hotamp2.png + :width: 100% + :alt: Hot pixel rejection position error at amplitude=10x + + Position error vs. number of hot pixels at amplitude=10x peak. + ``num_sigma=3`` (orange, missing in many panels) causes 100% + convergence failure. ``num_sigma=5`` (red) provides the best + balance of rejection and accuracy. + +.. list-table:: Convergence Rate by num_sigma + :header-rows: 1 + :widths: 20 20 40 + + * - num_sigma + - Convergence Rate + - Notes + * - null (disabled) + - 100% + - No rejection; hot pixels corrupt the fit + * - 3.0 + - **0%** + - Masks too many pixels, including PSF core + * - 4.0 + - 100% + - Good rejection; slight over-masking + * - 5.0 + - 100% + - Best balance of rejection and accuracy + * - 6.0 + - 100% + - Under-rejects at high hot-pixel counts + * - 8.0 + - 100% + - Minimal rejection; poor at many hot pixels + +Hot-Pixel Findings +^^^^^^^^^^^^^^^^^^ + +1. **num_sigma=3 is catastrophic:** A threshold of 3 sigma rejects too + many valid PSF pixels near the core, causing **100% convergence + failure** -- even with zero hot pixels. **This value should never + be used with the current implementation.** + +2. **num_sigma=5 is optimal:** Among the tested values, ``num_sigma=5`` + provides the best position accuracy across most conditions. At 10 hot + pixels with 10x amplitude, it achieves ~0.09 px error vs. ~0.12 px + for ``num_sigma=4``. + +3. **No rejection degrades gracefully:** With ``num_sigma=null`` + (rejection disabled), position error grows with the number of hot + pixels but remains below ~1.0 px for up to 10 hot pixels at moderate + amplitudes (5x--10x). At high amplitudes (50x--100x), errors become + severe. + +4. **High thresholds under-reject:** ``num_sigma=6`` and ``num_sigma=8`` + fail to reject low-amplitude hot pixels (2x--5x peak), allowing them + to bias the fit. At 15 hot pixels, errors for ``num_sigma=8`` can + exceed 1.0 pixels. + +5. **Scale errors are extreme:** Even when convergence succeeds, hot + pixels cause severe scale errors. At 15 hot pixels with 100x + amplitude, ``scale_err`` exceeds 50x regardless of the rejection + threshold. Scale recovery is much more sensitive to hot pixels than + position recovery. + +**Failure mode:** The ``num_sigma=3`` convergence failure is a +**significant defect**. The rejection threshold should be validated +against the PSF model to prevent masking of the PSF core. A minimum +effective threshold of 4.0 should be enforced or documented. + + +Summary and Recommendations +============================ + +Overall Performance Assessment +------------------------------ + +The ``rms-psfmodel`` Gaussian PSF fitter demonstrates **excellent +performance** under favorable conditions and **predictable degradation** +under adverse conditions. The key performance characteristics are: + +.. list-table:: Performance Summary + :header-rows: 1 + :widths: 30 20 30 + + * - Metric + - Best Case + - Limiting Factor + * - Position accuracy (noiseless) + - ~1e-14 pixels + - Machine precision + * - Position accuracy (SNR=100) + - ~0.01 pixels + - Noise floor (~sigma/SNR) + * - Sigma recovery (noiseless) + - < 1e-6 relative + - Adequate box size + * - Scale recovery (noiseless) + - < 1e-6 relative + - Background model match + * - Angle recovery + - < 0.001 degrees + - Asymmetry ratio > 1.5:1 + * - Convergence rate + - 100% + - num_sigma >= 4 + +Where It Meets Expectations +--------------------------- + +1. **Subpixel accuracy:** The fitter achieves machine-precision position + recovery in the noiseless, well-configured case. No subpixel bias is + present. + +2. **Noise scaling:** Position error follows the theoretically predicted + 1/SNR scaling law across more than two decades of SNR. + +3. **Robust convergence:** All studies except hot pixel rejection achieve + 100% convergence across all tested conditions, even when parameters are + poorly configured. + +4. **Moderate asymmetry:** Sigma ratios between 0.5 and 2.0 are handled + with negligible accuracy loss. + +Where It Falls Short +-------------------- + +1. **num_sigma=3 causes total convergence failure.** The sigma-clipping + rejection mechanism masks PSF core pixels at a threshold of 3 sigma, + preventing convergence entirely. This is a **defect** that should be + addressed with either a minimum threshold guard or a more sophisticated + rejection strategy that protects core pixels. + +2. **Broad PSFs have poor sub-pixel precision.** For sigma >= 2.0 pixels, + the minimum recoverable offset at SNR=100 is ~0.5 pixels -- essentially + no sub-pixel capability. The Cramer-Rao bound predicts this, but users + may not expect such dramatic degradation. + +3. **Catastrophic fits from undersized boxes are silent.** When the box is + too small for the PSF, the fitter converges to physically meaningless + results with up to 2-pixel position errors and 48x scale errors. No + warning is issued. A box-size validation check would prevent this. + +4. **Background model mismatch is not flagged.** Using + ``bkgnd_degree=null`` with a constant background present produces + 0.15-pixel position errors. The fitter gives no indication that + background subtraction is needed. + +5. **Extreme asymmetry at small sigma degrades position.** Sigma ratios + below 0.33 or above 3.0 with sigma_x=0.5 produce position errors of + 0.01--0.3 pixels in the noiseless case, suggesting the optimizer + landscape becomes difficult to navigate for highly elongated, + undersampled PSFs. + +6. **Hot pixels corrupt scale recovery.** Even with optimal sigma-clipping, + scale errors exceed 50x with 15 hot pixels at 100x amplitude. Position + recovery is more robust but still degrades to ~0.1 pixels. + +7. **Over-fitting background adds bias.** Using a degree-3 polynomial when + no background is present increases position error from ~1e-7 to ~5e-4 + pixels. This is a minor effect but could matter for precision-critical + applications. + +Practical Recommendations +------------------------- + +Based on these findings, the following guidelines will maximize fitting +accuracy: + +1. **Box size:** Use ``box_size >= 4 * sigma + 1`` pixels. When in doubt, + use a larger box. + +2. **Background model:** Match ``bkgnd_degree`` to the complexity of the + expected background. Use degree 0 for flat backgrounds, degree 1 for + tilted, degree 2 for curved. Avoid ``null`` unless you are certain no + background is present. Do not over-fit with higher degrees than needed. + +3. **Hot pixel rejection:** Use ``num_sigma=5`` as the default rejection + threshold. **Never use num_sigma=3**, which causes total convergence + failure. + +4. **SNR requirements:** For 0.01-pixel position accuracy, SNR should + exceed 100 / sigma. For sigma=1.0, this means SNR > 100; for + sigma=2.0, SNR > 200. + +5. **Asymmetric PSFs:** Sigma ratios between 0.5 and 2.0 require no + special handling. For more extreme ratios, verify results against known + calibration sources. + +6. **Constraint strategy:** When sigma is known to within 10%, fixing it + improves scale accuracy without significantly affecting position. When + sigma is uncertain by more than 20%, float it. + +Reproducibility +--------------- + +These results were produced with the following command:: + + characterize_gauss_fit --config src/characterize_gauss_fit/hires_config.yaml --num-workers 32 + +The complete configuration, per-trial data, and generated plots are +archived in the ``gauss_fit_hires/`` directory. Each study's +``summary.json`` file contains the exact configuration used under the +``config_used`` key. diff --git a/src/characterize_gauss_fit/executor.py b/src/characterize_gauss_fit/executor.py index d0f6ccd..dfc3003 100644 --- a/src/characterize_gauss_fit/executor.py +++ b/src/characterize_gauss_fit/executor.py @@ -11,17 +11,28 @@ Worker isolation: :class:`~psfmodel.gaussian.GaussianPSF` objects are constructed inside each worker from the plain-data fields of :class:`~trial.TrialSpec`. No complex objects cross process boundaries. + +Chunking: to reduce IPC and pickle overhead, specs are grouped into batches +before dispatch. Each worker executes a full batch per ``submit()`` call. +The batch size is ``ceil(total / (num_workers * _CHUNK_MULTIPLIER))``. A +multiplier of 4 gives 4x over-subscription, balancing load across workers +while keeping the number of round-trips low. """ from __future__ import annotations import concurrent.futures import logging +import math import multiprocessing from collections.abc import Callable from characterize_gauss_fit.trial import TrialResult, TrialSpec, run_trial +# Number of chunks per worker. Higher values improve load balancing at the +# cost of more (but still far fewer than one-per-trial) IPC round-trips. +_CHUNK_MULTIPLIER = 4 + _LOG = logging.getLogger(__name__) @@ -68,6 +79,22 @@ def _safe_run_trial(spec: TrialSpec) -> TrialResult: ) +def _run_trial_batch(specs: list[TrialSpec]) -> list[TrialResult]: + """Execute a batch of trials inside a single worker call. + + Running multiple trials per ``submit()`` call amortises the per-call + pickle and IPC overhead across the whole batch, which dramatically + reduces the per-trial overhead compared to submitting one trial at a time. + + Parameters: + specs: Ordered list of :class:`~trial.TrialSpec` objects to execute. + + Returns: + Results in the same order as ``specs``. + """ + return [_safe_run_trial(spec) for spec in specs] + + def run_trials( trial_specs: list[TrialSpec], *, @@ -82,8 +109,13 @@ def run_trials( sequentially in the calling process with no multiprocessing overhead. Values ``>1`` use :class:`concurrent.futures.ProcessPoolExecutor` with the ``spawn`` start method to avoid fork-related crashes. - progress_callback: Optional callable ``(completed, total)`` invoked after - each trial result is collected, useful for progress display. + Trials are grouped into chunks of size + ``ceil(total / (num_workers * _CHUNK_MULTIPLIER))`` so that each + worker executes many trials per ``submit()`` call, reducing IPC and + pickle overhead and making speedup more linear with CPU count. + progress_callback: Optional callable ``(completed, total)`` invoked + after each chunk of results is collected, useful for progress + display. Returns: A list of :class:`~trial.TrialResult` objects in the same order as @@ -107,17 +139,36 @@ def run_trials( # actually transferring the threads, causing a segfault during worker # cleanup when those phantom pools are torn down. mp_ctx = multiprocessing.get_context('spawn') + + # Group specs into batches so each worker handles multiple trials per + # submit() call. _CHUNK_MULTIPLIER chunks per worker gives 4x + # over-subscription for load balancing. + chunk_size = max(1, math.ceil(total / (num_workers * _CHUNK_MULTIPLIER))) + chunks: list[tuple[int, list[TrialSpec]]] = [] + start = 0 + while start < total: + end = min(start + chunk_size, total) + chunks.append((start, trial_specs[start:end])) + start = end + + ordered: list[TrialResult | None] = [None] * total + n_done = 0 with concurrent.futures.ProcessPoolExecutor( max_workers=num_workers, mp_context=mp_ctx ) as pool: - futures = {pool.submit(_safe_run_trial, spec): i for i, spec in enumerate(trial_specs)} - # Collect in submission order to preserve determinism. - ordered: list[TrialResult | None] = [None] * total - for n_done, future in enumerate(concurrent.futures.as_completed(futures), start=1): - idx = futures[future] - ordered[idx] = future.result() + futures: dict[concurrent.futures.Future[list[TrialResult]], int] = { + pool.submit(_run_trial_batch, chunk): chunk_start + for chunk_start, chunk in chunks + } + for future in concurrent.futures.as_completed(futures): + chunk_start = futures[future] + chunk_results = future.result() + for j, result in enumerate(chunk_results): + ordered[chunk_start + j] = result + n_done += len(chunk_results) if progress_callback is not None: progress_callback(n_done, total) + # All futures completed; ordered contains no None entries. assert all(r is not None for r in ordered), ( 'Internal error: some futures did not produce a result' From 94ea40fdeef187c53438cf033cde924de77f72e0 Mon Sep 17 00:00:00 2001 From: Robert French Date: Mon, 13 Apr 2026 20:41:08 -0700 Subject: [PATCH 10/17] Implement rejection logic --- src/psfmodel/psf.py | 202 +++++++++++++++++++++++------------- tests/test_find_position.py | 130 +++++++++++++++++++++++ 2 files changed, 260 insertions(+), 72 deletions(-) diff --git a/src/psfmodel/psf.py b/src/psfmodel/psf.py index f704957..1190e9f 100755 --- a/src/psfmodel/psf.py +++ b/src/psfmodel/psf.py @@ -24,6 +24,13 @@ _FIT_PSF_BASE_BOUND_MIN = float('-inf') _FIT_PSF_BASE_BOUND_MAX = float('inf') +# Finite-difference step sizes used by :meth:`PSF._find_position` when computing +# the Jacobian of the residual vector for covariance estimation. The step for +# parameter ``p`` is ``max(|p| * _JACO_REL_EPS, _JACO_ABS_EPS)`` so the step is +# proportional to the parameter magnitude but never smaller than the absolute floor. +_JACO_REL_EPS: float = 1e-5 +_JACO_ABS_EPS: float = 1e-7 + class PSF(ABC): """Abstract base for 2-D point-spread models used in fitting and rendering. @@ -594,13 +601,23 @@ def find_position( containing:: 'x' The offset in X. (Same as pos_x) - 'x_err' Uncertainty in X. + 'x_err' 1-sigma uncertainty in X (pixels). 'y' The offset in Y. (Same as pos_y) - 'y_err' Uncertainty in Y. + 'y_err' 1-sigma uncertainty in Y (pixels). 'scale' The best fit PSF scale. - 'scale_err' Uncertainty in PSF scale. + 'scale_err' 1-sigma uncertainty in PSF scale. 'base' The best fit PSF base. - 'base_err' Uncertainty in PSF base. + 'base_err' 1-sigma uncertainty in PSF base; 0.0 + when allow_nonzero_base is False. + 'residual_rss' Sum of squared residuals over unmasked + pixels. + 'reduced_chi2' residual_rss divided by degrees of + freedom (n_valid - n_params); near 1.0 + for a noise-limited fit. + 'noise_rms' Per-pixel noise estimate from residuals: + sqrt(rss / n_valid). + 'peak_snr' Amplitude signal-to-noise ratio: + scale / noise_rms. 'subimg' The box_size area of the original image surrounding starting_point masked as necessary using the num_sigma threshold. @@ -611,19 +628,15 @@ def find_position( 'gradient' The box_size background gradient. 'subimg-gradient' The subimg with the background gradient subtracted. - 'psf' The PSF model from eval_rect with the fitted - scale and base (same array as scaled_psf). + 'psf' The PSF model from eval_rect with the + fitted scale and base (same array as + scaled_psf). 'scaled_psf' Same as psf; model to compare to subimg-gradient during outlier rejection. - 'leastsq_cov' The covariance matrix returned by leastsq - as adjusted by the residual variance. - 'leastsq_infodict' The infodict returned by leastsq. - 'leastsq_mesg' The mesg returned by leastsq. - 'leastsq_ier' The ier returned by leastsq. In addition, metadata includes two entries for each "additional parameter" used during optimization: one for the value and one for - the uncertainty ('param' and 'param_err'). + the 1-sigma uncertainty (``'param'`` and ``'param_err'``). """ if box_size[0] < 0 or box_size[1] < 0 or box_size[0] % 2 != 1 or box_size[1] % 2 != 1: @@ -755,11 +768,11 @@ def find_position( if self.detailed_logging: msg = f'find_position returning Y {res_y + starting_pix[0]:.4f}' - # if details['y_err'] is not None: - # msg += f' +/- {details["y_err"]:.4f}' + if details['y_err'] is not None: + msg += f' +/- {details["y_err"]:.4f}' msg += f' X {res_x + starting_pix[1]:.4f}' - # if details['x_err'] is not None: - # msg += ' +/- {details["x_err"]:.4f}' + if details['x_err'] is not None: + msg += f' +/- {details["x_err"]:.4f}' if details['scale'] is not None: msg += f' Scale {details["scale"]:.4f} Base {details["base"]:.4f}' if 'sigma_y' in details: @@ -946,16 +959,21 @@ def _find_position( solution; identical arrays (``scaled_psf`` supports comparison to ``subimg-gradient`` in the outer :meth:`find_position` loop). + - ``'residual_rss'``: sum of squared residuals over unmasked pixels (float). + - ``'reduced_chi2'``: ``residual_rss / max(n_valid - n_params, 1)``; near 1 + for a well-matched noise model (float). + - ``'noise_rms'``: per-pixel noise estimate ``sqrt(rss / n_valid)`` (float). + - ``'peak_snr'``: ``scale / noise_rms``; amplitude signal-to-noise ratio + (float; 0.0 if ``noise_rms`` is zero). + - ``'y_err'``, ``'x_err'``: 1-sigma position uncertainties in pixels (float). + - ``'scale_err'``: 1-sigma uncertainty on the fitted ``scale`` (float). + - ``'base_err'``: 1-sigma uncertainty on ``base``; 0.0 when + ``allow_nonzero_base`` is False (float). + Subclasses append one entry per additional PSF parameter (for example ``'sigma_y'`` and ``'sigma_x'`` for :class:`~psfmodel.gaussian.GaussianPSF`), - using the internal names from ``_additional_params``. - - Note: - Optimizer ``status``, ``message``, and the final objective value are not - stored in ``details``; with instance ``detailed_logging`` they may appear in - DEBUG logs. Uncertainty keys (``'x_err'``, etc.) and least-squares metadata - described on :meth:`find_position` are not populated by the current - implementation. + using the internal names from ``_additional_params``, plus a corresponding + ``'_err'`` uncertainty key for each. """ bkgnd_params = None @@ -1085,54 +1103,94 @@ def _find_position( details['base'] = base details['scaled_psf'] = psf - # if cov_x is None: - # details['leastsq_cov'] = None - # details['x_err'] = None - # details['y_err'] = None - # details['scale_err'] = None - # details['base_err'] = None - # for i, ap in enumerate(self._additional_params): - # details[ap[2]+'_err'] = None - # else: - # # "To obtain the covariance matrix of the parameters x, cov_x must - # # be multiplied by the variance of the residuals" - # dof = psf.shape[0]*psf.shape[1]-len(result) - # resid_var = np.sum(self._fit_psf_func(result, *extra_args)**2) / dof - # cov = cov_x * resid_var # In angle-parameter space!! (if - # use_angular_params) - # details['leastsq_cov'] = cov - # if use_angular_params: - # # Deriv of SL0 * sin(R0) is - # # SL0 * cos(R0) * dR0 - # y_err = np.abs((np.sqrt(cov[0][0]) % (np.pi*2)) * - # search_limit[0] * np.cos(result[0])) - # x_err = np.abs((np.sqrt(cov[1][1]) % (np.pi*2)) * - # search_limit[1] * np.cos(result[1])) - # # Deriv of SC/2 * (sin(R)+1) = SC/2 * sin(R) + SC/2 is - # # SC/2 * cos(R) * dR - # scale_err = np.abs((np.sqrt(cov[2][2]) % (np.pi*2)) * - # scale_limit/2 * np.cos(result[2])) - # details['x_err'] = x_err - # details['y_err'] = y_err - # details['scale_err'] = scale_err - # for i, ap in enumerate(self._additional_params): - # err = np.abs((np.sqrt(cov[i+3][i+3]) % (np.pi*2)) * - # (ap[1]-ap[0])/2 * np.cos(result[i+3])) - # details[ap[2]+'_err'] = err - # else: - # details['x_err'] = np.sqrt(cov[0][0]) - # details['y_err'] = np.sqrt(cov[1][1]) - # details['scale_err'] = np.sqrt(cov[2][2]) - # for i, ap in enumerate(self._additional_params): - # details[ap[2]+'_err'] = np.sqrt(cov[i+result_end][i+result_end]) - # # Note the base is not computed using angles - # details['base_err'] = None - # if allow_nonzero_base: - # details['base_err'] = np.sqrt(cov[3][3]) - - # details['leastsq_infodict'] = infodict - # details['leastsq_mesg'] = mesg - # details['leastsq_ier'] = ier + # --- Quality metrics --- + # Residuals between the background-subtracted data and the fitted model, + # restricted to unmasked pixels, are the basis for all quality metrics and + # uncertainty estimates. + _diff = sub_img_grad - psf + if isinstance(_diff, ma.MaskedArray): + _resid_flat = ma.compressed(_diff).astype(np.float64) + else: + _resid_flat = _diff.flatten().astype(np.float64) + + _n_valid = int(_resid_flat.size) + _n_params_fit = 3 + int(allow_nonzero_base) + len(self._additional_params) + _rss = float(np.dot(_resid_flat, _resid_flat)) + _dof = max(_n_valid - _n_params_fit, 1) + _reduced_chi2 = _rss / _dof + _noise_rms = float(np.sqrt(_rss / _n_valid)) if _n_valid > 0 else 0.0 + _peak_snr = float(scale / _noise_rms) if _noise_rms > 0.0 else 0.0 + + details['residual_rss'] = _rss + details['reduced_chi2'] = _reduced_chi2 + details['noise_rms'] = _noise_rms + details['peak_snr'] = _peak_snr + + # --- Parameter uncertainties via finite-difference Jacobian --- + # Physical parameter vector in canonical order: + # [offset_y, offset_x, scale, (base if allow_nonzero_base), *additional...] + _phys: list[float] = [float(offset_y), float(offset_x), float(scale)] + if allow_nonzero_base: + _phys.append(float(base)) + for _ap in self._additional_params: + _phys.append(float(addl_vals_dict[_ap[2]])) + + _n_phys = len(_phys) + + # Build the residual vector at an arbitrary physical-parameter point, applying + # the same masking as the final fit so the Jacobian is consistent. + def _residuals_at_phys(phys: list[float]) -> npt.NDArray[np.float64]: + _oy = phys[0] + _ox = phys[1] + _sc = phys[2] + _bs = phys[3] if allow_nonzero_base else 0.0 + _start = 4 if allow_nonzero_base else 3 + _extra: dict[str, Any] = { + _ap2[2]: phys[_start + _i2] for _i2, _ap2 in enumerate(self._additional_params) + } + _model = self.eval_rect( + cast(tuple[int, int], sub_img_grad.shape), + (_oy, _ox), + scale=_sc, + base=_bs, + **_extra, + ) + _d = sub_img_grad - _model + if isinstance(_d, ma.MaskedArray): + return ma.compressed(_d).astype(np.float64) + return _d.flatten().astype(np.float64) + + # Forward-difference Jacobian of the residual vector in physical space. + _jac = np.zeros((_n_valid, _n_phys), dtype=np.float64) + for _col in range(_n_phys): + _val = _phys[_col] + _eps = max(abs(_val) * _JACO_REL_EPS, _JACO_ABS_EPS) + _phys_plus = list(_phys) + _phys_plus[_col] += _eps + _r_plus = _residuals_at_phys(_phys_plus) + _jac[:, _col] = (_r_plus - _resid_flat) / _eps + + # Covariance = reduced_chi2 * (J^T J)^{-1}; use lstsq for robustness when + # J^T J is ill-conditioned (e.g. underconstrained fits). + _jtj = _jac.T @ _jac + _cov_raw, _, _, _ = np.linalg.lstsq(_jtj, np.eye(_n_phys), rcond=None) + _cov = _cov_raw * _reduced_chi2 + + # Diagonal 1-sigma uncertainties; negative variances (numerical noise) are + # clamped to zero before taking the square root. + _uncertainties = np.sqrt(np.maximum(np.diag(_cov), 0.0)) + + details['y_err'] = float(_uncertainties[0]) + details['x_err'] = float(_uncertainties[1]) + details['scale_err'] = float(_uncertainties[2]) + _u_start = 3 + if allow_nonzero_base: + details['base_err'] = float(_uncertainties[3]) + _u_start = 4 + else: + details['base_err'] = 0.0 + for _i, _ap in enumerate(self._additional_params): + details[_ap[2] + '_err'] = float(_uncertainties[_u_start + _i]) for key in addl_vals_dict: details[key] = addl_vals_dict[key] diff --git a/tests/test_find_position.py b/tests/test_find_position.py index 42bfe4f..8e7adc7 100644 --- a/tests/test_find_position.py +++ b/tests/test_find_position.py @@ -171,3 +171,133 @@ def test_find_position_num_sigma_rejects_outlier_pixel(default_psf: GaussianPSF) assert ret is not None assert ret[0] == pytest.approx(10.5, abs=0.5) assert ret[1] == pytest.approx(10.5, abs=0.5) + + +# --------------------------------------------------------------------------- +# Quality-metric tests (reduced_chi2, noise_rms, peak_snr, residual_rss) +# --------------------------------------------------------------------------- + + +def test_find_position_quality_metrics_noise_free(default_psf: GaussianPSF) -> None: + """Quality metrics are near-zero for a noise-free Gaussian image.""" + + img = default_psf.eval_rect((21, 21), scale=2.0, sigma=(1.0, 1.0)) + ret = default_psf.find_position(img, img.shape, (10, 10), bkgnd_degree=None, num_sigma=0) + assert ret is not None + _, _, details = ret + assert details['residual_rss'] < 1e-10 + assert details['reduced_chi2'] < 1e-10 + assert details['noise_rms'] < 1e-5 + assert details['peak_snr'] > 1e6 + + +def test_find_position_quality_metrics_noisy() -> None: + """``reduced_chi2`` approximates per-pixel noise variance for a noisy fit.""" + + psf = GaussianPSF(sigma=(1.0, 1.0)) + rng = np.random.default_rng(42) + noise_std = 0.05 + img = psf.eval_rect((21, 21), scale=1.0) + rng.normal(0, noise_std, (21, 21)) + ret = psf.find_position(img, img.shape, (10, 10), bkgnd_degree=None, num_sigma=0) + assert ret is not None + _, _, details = ret + assert details['reduced_chi2'] == pytest.approx(noise_std**2, rel=0.3) + assert details['noise_rms'] == pytest.approx(noise_std, rel=0.2) + assert details['peak_snr'] == pytest.approx(1.0 / noise_std, rel=0.3) + + +def test_find_position_quality_metrics_keys_present(default_psf: GaussianPSF) -> None: + """All four quality-metric keys are present in the returned details dict.""" + + img = default_psf.eval_rect((21, 21), scale=2.0, sigma=(1.0, 1.0)) + ret = default_psf.find_position(img, img.shape, (10, 10), bkgnd_degree=None, num_sigma=0) + assert ret is not None + _, _, details = ret + for key in ('residual_rss', 'reduced_chi2', 'noise_rms', 'peak_snr'): + assert key in details + assert details[key] >= 0.0 + + +# --------------------------------------------------------------------------- +# Parameter-uncertainty tests (x_err, y_err, scale_err, base_err, *_err) +# --------------------------------------------------------------------------- + + +def test_find_position_position_uncertainties_non_negative(default_psf: GaussianPSF) -> None: + """Position and scale uncertainties are non-negative for a clean Gaussian fit.""" + + img = default_psf.eval_rect((21, 21), scale=2.0, sigma=(1.0, 1.0)) + ret = default_psf.find_position(img, img.shape, (10, 10), bkgnd_degree=None, num_sigma=0) + assert ret is not None + _, _, details = ret + assert details['x_err'] >= 0.0 + assert details['y_err'] >= 0.0 + assert details['scale_err'] >= 0.0 + + +def test_find_position_position_uncertainties_small_noise_free(default_psf: GaussianPSF) -> None: + """Position uncertainties are negligible for a noise-free image.""" + + img = default_psf.eval_rect((21, 21), scale=2.0, sigma=(1.0, 1.0)) + ret = default_psf.find_position(img, img.shape, (10, 10), bkgnd_degree=None, num_sigma=0) + assert ret is not None + _, _, details = ret + assert details['x_err'] < 1e-3 + assert details['y_err'] < 1e-3 + + +def test_find_position_base_err_zero_when_base_fixed(default_psf: GaussianPSF) -> None: + """``base_err`` is exactly 0.0 when ``allow_nonzero_base=False``.""" + + img = default_psf.eval_rect((21, 21), scale=2.0, sigma=(1.0, 1.0)) + ret = default_psf.find_position( + img, img.shape, (10, 10), bkgnd_degree=None, num_sigma=0, allow_nonzero_base=False + ) + assert ret is not None + assert ret[2]['base_err'] == 0.0 + + +def test_find_position_base_err_non_negative_when_base_free(default_psf: GaussianPSF) -> None: + """``base_err`` is non-negative when ``allow_nonzero_base=True``.""" + + img = default_psf.eval_rect((21, 21), scale=2.0, sigma=(1.0, 1.0)) + ret = default_psf.find_position( + img, img.shape, (10, 10), bkgnd_degree=None, num_sigma=0, allow_nonzero_base=True + ) + assert ret is not None + assert ret[2]['base_err'] >= 0.0 + + +def test_find_position_additional_param_err_keys_present() -> None: + """GaussianPSF with floating sigma includes ``sigma_y_err`` and ``sigma_x_err`` in details.""" + + psf = GaussianPSF( + sigma=(None, None), + sigma_y_range=(0.5, 3.0), + sigma_x_range=(0.5, 3.0), + ) + img = psf.eval_rect((21, 21), scale=2.0, sigma=(1.5, 1.5)) + ret = psf.find_position(img, img.shape, (10, 10), bkgnd_degree=None, num_sigma=0) + assert ret is not None + _, _, details = ret + assert 'sigma_y_err' in details + assert 'sigma_x_err' in details + assert details['sigma_y_err'] >= 0.0 + assert details['sigma_x_err'] >= 0.0 + + +def test_find_position_uncertainty_decreases_with_snr() -> None: + """Higher-SNR images produce smaller position uncertainties.""" + + psf = GaussianPSF(sigma=(1.0, 1.0)) + rng = np.random.default_rng(99) + noise = rng.normal(0, 0.1, (21, 21)) + img_low = psf.eval_rect((21, 21), scale=0.5) + noise + img_high = psf.eval_rect((21, 21), scale=5.0) + noise + + ret_low = psf.find_position(img_low, (21, 21), (10, 10), bkgnd_degree=None, num_sigma=0) + ret_high = psf.find_position(img_high, (21, 21), (10, 10), bkgnd_degree=None, num_sigma=0) + assert ret_low is not None + assert ret_high is not None + assert ret_low[2]['x_err'] > ret_high[2]['x_err'] + assert ret_low[2]['y_err'] > ret_high[2]['y_err'] From 3ecc0014f1bd7662a187bb7102aca8851787e125 Mon Sep 17 00:00:00 2001 From: Robert French Date: Mon, 13 Apr 2026 21:22:02 -0700 Subject: [PATCH 11/17] CR and lint fixes --- .gitignore | 1 + docs/characterize_gauss_fit.md | 7 ++- docs/index.rst | 1 + docs/performance_report/conf.py | 4 +- docs/performance_report/index.rst | 9 ++- src/characterize_gauss_fit/_study_utils.py | 4 +- src/characterize_gauss_fit/config.py | 8 +-- src/characterize_gauss_fit/executor.py | 8 +-- src/characterize_gauss_fit/hires_config.yaml | 3 +- src/characterize_gauss_fit/main.py | 15 ++--- src/characterize_gauss_fit/output.py | 12 +++- src/characterize_gauss_fit/plotting.py | 46 ++++++++------ .../study_background.py | 25 ++++---- src/characterize_gauss_fit/study_box_sigma.py | 14 ++--- .../study_constraints.py | 2 +- .../study_hot_pixels.py | 17 +++--- .../study_min_offset.py | 23 ++++--- src/characterize_gauss_fit/study_noise.py | 22 +++---- src/characterize_gauss_fit/study_offset.py | 25 ++++---- src/characterize_gauss_fit/study_shape.py | 31 +++++----- src/characterize_gauss_fit/test_config.yaml | 6 +- src/characterize_gauss_fit/trial.py | 8 +-- src/psfmodel/psf.py | 60 +++++++++++-------- 23 files changed, 184 insertions(+), 167 deletions(-) diff --git a/.gitignore b/.gitignore index 5ab98bf..7d8aea6 100644 --- a/.gitignore +++ b/.gitignore @@ -177,4 +177,5 @@ nohup.out log.txt profile.txt *tinytim* +# Gauss characterization results gauss*/ diff --git a/docs/characterize_gauss_fit.md b/docs/characterize_gauss_fit.md index 12dbc90..3d7b529 100644 --- a/docs/characterize_gauss_fit.md +++ b/docs/characterize_gauss_fit.md @@ -81,7 +81,7 @@ characterize_gauss_fit --copy-hires-config-to hires_config.yaml ## CLI Reference -``` +```text usage: characterize_gauss_fit [--config FILE] [--study NAME] [--output-dir DIR] [--num-workers N] [--list-studies] [--copy-default-config-to FILE] @@ -143,7 +143,7 @@ a `fitting` subsection to override these for that study only. | `max_bad_frac` | float | `0.2` | Maximum fraction of pixels that can be masked before the fit is abandoned. | | `allow_nonzero_base` | bool | `false` | Fit a constant base level in addition to the polynomial background. | | `use_angular_params` | bool | `true` | Reparametrise fit variables as angles for bounded optimization. | -| `tolerance` | float | `1e-6` | Powell optimiser convergence tolerance. | +| `tolerance` | float | `1e-6` | Powell optimizer convergence tolerance. | | `search_limit` | [float, float] | `[1.5, 1.5]` | Maximum allowed position offset from the starting point [y, x] in pixels. | | `scale_limit` | float | `1000.0` | Maximum allowed PSF amplitude scale factor. | @@ -366,9 +366,10 @@ One row per trial. Columns: > # Trials where sigma_y was floated and a fitted value was returned: > fitted = df[df['sigma_y_fit'].notna()] > ``` + ### `summary.json` -```json +```text { "study": "box_vs_sigma", "total_trials": 72, diff --git a/docs/index.rst b/docs/index.rst index 345d6e3..847c73f 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -16,6 +16,7 @@ Welcome to the Documentation for rms-psfmodel! contributing code_of_conduct module + performance_report/index Indices and tables ================== diff --git a/docs/performance_report/conf.py b/docs/performance_report/conf.py index 76c6e11..a99fb8a 100644 --- a/docs/performance_report/conf.py +++ b/docs/performance_report/conf.py @@ -5,9 +5,7 @@ author = "SETI Institute" release = "" -extensions = [ - "sphinx.ext.intersphinx", -] +extensions = [] exclude_patterns = ["_build", "Thumbs.db", ".DS_Store"] diff --git a/docs/performance_report/index.rst b/docs/performance_report/index.rst index 7f478bd..0baf5d3 100644 --- a/docs/performance_report/index.rst +++ b/docs/performance_report/index.rst @@ -674,8 +674,10 @@ Background Results :width: 100% :alt: Background study heatmap at amplitude=0.1, ignore=2x2 - Position error (Euclidean, log10) for amplitude=0.1x peak, - ignore-center=2x2, offset=(0.25,0.25). Rows: injected background type. + Position error (Euclidean, log10) for amplitude=0.1x peak (``amp3``, + 0-based index 3 into the amplitude list), ignore-center=2x2 (``ic1``, + 0-based index 1 into the ignore-center list), offset=(0.25,0.25). + Rows: injected background type. Columns: fitting polynomial degree. The ``null`` column (no background subtraction) shows catastrophic errors for constant and noisy_constant backgrounds. @@ -889,7 +891,8 @@ Hot-Pixel Results :width: 100% :alt: Hot pixel rejection position error at amplitude=10x - Position error vs. number of hot pixels at amplitude=10x peak. + Position error vs. number of hot pixels at amplitude=10x peak + (``hotamp2``, 0-based index 2 into the amplitude list [2x, 5x, 10x, 20x, 50x, 100x]). ``num_sigma=3`` (orange, missing in many panels) causes 100% convergence failure. ``num_sigma=5`` (red) provides the best balance of rejection and accuracy. diff --git a/src/characterize_gauss_fit/_study_utils.py b/src/characterize_gauss_fit/_study_utils.py index 170c42b..97d2131 100644 --- a/src/characterize_gauss_fit/_study_utils.py +++ b/src/characterize_gauss_fit/_study_utils.py @@ -38,6 +38,7 @@ def offset_tag(offset_y: float, offset_x: float) -> str: Returns: A short ASCII string safe for use in file and directory names. """ + def _fmt(v: float) -> str: return f'{v:.2f}'.replace('.', 'p').replace('-', 'm') @@ -171,8 +172,7 @@ def collect_metric( AttributeError: If ``metric`` is not a field of :class:`~trial.TrialResult`. """ values = [ - float('nan') if getattr(r, metric) is None else float(getattr(r, metric)) - for r in results + float('nan') if (r_val := getattr(r, metric)) is None else float(r_val) for r in results ] return np.array(values, dtype=np.float64) diff --git a/src/characterize_gauss_fit/config.py b/src/characterize_gauss_fit/config.py index fce5941..e06546e 100644 --- a/src/characterize_gauss_fit/config.py +++ b/src/characterize_gauss_fit/config.py @@ -546,14 +546,10 @@ def _validate_config(cfg: Config) -> None: def _check_box_size(field: str, bs: int) -> None: if bs < 5 or bs % 2 == 0: - raise ValueError( - f'{field}: box_size must be an odd integer >= 5, got {bs}' - ) + raise ValueError(f'{field}: box_size must be an odd integer >= 5, got {bs}') _check_box_size('subpixel_offset.box_size', cfg.studies.subpixel_offset.box_size) - _check_box_size( - 'min_detectable_offset.box_size', cfg.studies.min_detectable_offset.box_size - ) + _check_box_size('min_detectable_offset.box_size', cfg.studies.min_detectable_offset.box_size) _check_box_size('sigma_asymmetry_angle.box_size', cfg.studies.sigma_asymmetry_angle.box_size) _check_box_size('constraint_modes.box_size', cfg.studies.constraint_modes.box_size) _check_box_size('background.box_size', cfg.studies.background.box_size) diff --git a/src/characterize_gauss_fit/executor.py b/src/characterize_gauss_fit/executor.py index dfc3003..2d20a00 100644 --- a/src/characterize_gauss_fit/executor.py +++ b/src/characterize_gauss_fit/executor.py @@ -157,8 +157,7 @@ def run_trials( max_workers=num_workers, mp_context=mp_ctx ) as pool: futures: dict[concurrent.futures.Future[list[TrialResult]], int] = { - pool.submit(_run_trial_batch, chunk): chunk_start - for chunk_start, chunk in chunks + pool.submit(_run_trial_batch, chunk): chunk_start for chunk_start, chunk in chunks } for future in concurrent.futures.as_completed(futures): chunk_start = futures[future] @@ -170,9 +169,8 @@ def run_trials( progress_callback(n_done, total) # All futures completed; ordered contains no None entries. - assert all(r is not None for r in ordered), ( - 'Internal error: some futures did not produce a result' - ) + if not all(r is not None for r in ordered): + raise RuntimeError('Internal error: some futures did not produce a result') results = [r for r in ordered if r is not None] return results diff --git a/src/characterize_gauss_fit/hires_config.yaml b/src/characterize_gauss_fit/hires_config.yaml index 9f70084..0a7b7ab 100644 --- a/src/characterize_gauss_fit/hires_config.yaml +++ b/src/characterize_gauss_fit/hires_config.yaml @@ -128,7 +128,8 @@ studies: noise_samples: 200 box_size: 21 - # Study 8: 8 hot-pixel counts x 4 num_sigma x 6 amplitudes x 50 samples + # Study 8: 8 hot-pixel counts x 6 num_sigma x 6 amplitudes x 50 samples + # (num_sigma: 5 values [3.0, 4.0, 5.0, 6.0, 8.0] plus null = 6 options) # Fills in the hot-pixel count axis more densely (adds 2, 7, 15) and expands # hot_amplitudes (adds 2x, 10x, 50x) for a more complete rejection map. # Noise samples raised to 50 for less noisy line plots. diff --git a/src/characterize_gauss_fit/main.py b/src/characterize_gauss_fit/main.py index 266d282..82a6ee2 100644 --- a/src/characterize_gauss_fit/main.py +++ b/src/characterize_gauss_fit/main.py @@ -49,10 +49,9 @@ } # Ensure STUDY_NAMES (from config) and _STUDY_REGISTRY stay in sync. -assert set(STUDY_NAMES) == set(_STUDY_REGISTRY), ( - f'STUDY_NAMES and _STUDY_REGISTRY are out of sync: ' - f'{set(STUDY_NAMES).symmetric_difference(set(_STUDY_REGISTRY))}' -) +_diff = set(STUDY_NAMES).symmetric_difference(set(_STUDY_REGISTRY)) +if _diff: + raise RuntimeError(f'STUDY_NAMES and _STUDY_REGISTRY are out of sync: {_diff}') def _build_parser() -> argparse.ArgumentParser: @@ -115,10 +114,7 @@ def _build_parser() -> argparse.ArgumentParser: metavar='FILE', type=pathlib.Path, default=None, - help=( - 'Write the built-in default configuration to FILE and exit. ' - 'No studies are run.' - ), + help=('Write the built-in default configuration to FILE and exit. No studies are run.'), ) parser.add_argument( '--copy-test-config-to', @@ -136,8 +132,7 @@ def _build_parser() -> argparse.ArgumentParser: type=pathlib.Path, default=None, help=( - 'Write the built-in high-resolution configuration to FILE and exit. ' - 'No studies are run.' + 'Write the built-in high-resolution configuration to FILE and exit. No studies are run.' ), ) parser.add_argument( diff --git a/src/characterize_gauss_fit/output.py b/src/characterize_gauss_fit/output.py index f94cb94..828867a 100644 --- a/src/characterize_gauss_fit/output.py +++ b/src/characterize_gauss_fit/output.py @@ -229,8 +229,16 @@ def _aggregate_results(results: list[TrialResult]) -> dict[str, Any]: n_converged = len(converged) pos_errs = [r.pos_err for r in converged if math.isfinite(r.pos_err)] - sigma_y_errs = [r.sigma_y_err for r in converged if r.sigma_y_err is not None] - sigma_x_errs = [r.sigma_x_err for r in converged if r.sigma_x_err is not None] + sigma_y_errs = [ + r.sigma_y_err + for r in converged + if r.sigma_y_err is not None and math.isfinite(r.sigma_y_err) + ] + sigma_x_errs = [ + r.sigma_x_err + for r in converged + if r.sigma_x_err is not None and math.isfinite(r.sigma_x_err) + ] angle_errs = [r.angle_err for r in converged if r.angle_err is not None] scale_errs = [r.scale_err for r in converged if math.isfinite(r.scale_err)] diff --git a/src/characterize_gauss_fit/plotting.py b/src/characterize_gauss_fit/plotting.py index 0bcd0eb..30ca2ca 100644 --- a/src/characterize_gauss_fit/plotting.py +++ b/src/characterize_gauss_fit/plotting.py @@ -45,7 +45,11 @@ # Style used for all figure footnotes. _NOTE_STYLE: dict[str, object] = { - 'ha': 'center', 'va': 'bottom', 'fontsize': 7, 'color': '#555555', 'style': 'italic', + 'ha': 'center', + 'va': 'bottom', + 'fontsize': 7, + 'color': '#555555', + 'style': 'italic', 'transform': None, # overridden per-call with fig.transFigure } @@ -74,7 +78,7 @@ def _add_figure_note(fig: Figure, note: str, *, bottom: float = 0.12) -> None: fig.text(0.5, 0.005, note, **kw) # type: ignore[arg-type] # Single tight_layout call: everything (axes + labels) goes in the rect # above the note strip, so x-axis title never overlaps the note. - fig.tight_layout(rect=[0.0, actual_bottom, 1.0, 1.0]) + fig.tight_layout(rect=(0.0, actual_bottom, 1.0, 1.0)) def save_figure(fig: Figure, output_dir: pathlib.Path, filename: str) -> pathlib.Path: @@ -131,9 +135,7 @@ def plot_heatmap( n_rows, n_cols = data.shape # Extra height (+1.2) reserves room for the title and the footnote without # either being clipped. tight_layout() further adjusts subplot margins. - fig, ax = plt.subplots( - figsize=(max(7, n_cols * 0.9 + 1), max(5.5, n_rows * 0.7 + 1.2)) - ) + fig, ax = plt.subplots(figsize=(max(7, n_cols * 0.9 + 1), max(5.5, n_rows * 0.7 + 1.2))) display = data.astype(float) if log_scale: @@ -169,7 +171,12 @@ def plot_heatmap( else: text = f'{val:.3f}' ax.text( - col, row, text, ha='center', va='center', fontsize=6, + col, + row, + text, + ha='center', + va='center', + fontsize=6, path_effects=_HEATMAP_TEXT_EFFECTS, ) @@ -420,9 +427,7 @@ def plot_recovery_fraction_heatmap( A :class:`matplotlib.figure.Figure`. """ n_rows, n_cols = recovery_fractions.shape - fig, ax = plt.subplots( - figsize=(max(7, n_cols * 0.9 + 1), max(5.5, n_rows * 0.7 + 1.2)) - ) + fig, ax = plt.subplots(figsize=(max(7, n_cols * 0.9 + 1), max(5.5, n_rows * 0.7 + 1.2))) img = ax.imshow( recovery_fractions, @@ -451,7 +456,12 @@ def plot_recovery_fraction_heatmap( else: text = f'{val:.2f}' ax.text( - col, row, text, ha='center', va='center', fontsize=6, + col, + row, + text, + ha='center', + va='center', + fontsize=6, path_effects=_HEATMAP_TEXT_EFFECTS, ) @@ -499,12 +509,12 @@ def plot_constraint_summary( """ fig, axes = plt.subplots(2, 3, figsize=(18, 8)) metrics: list[tuple[Axes, npt.NDArray[np.float64], str]] = [ - (axes[0, 0], pos_err_vals, 'Position error, Euclidean (pixels)'), - (axes[0, 1], pos_err_y_vals, '|pos_err_y| (pixels)'), - (axes[0, 2], pos_err_x_vals, '|pos_err_x| (pixels)'), - (axes[1, 0], scale_err_vals, 'Relative scale error'), + (axes[0, 0], pos_err_vals, 'Position error, Euclidean (pixels)'), + (axes[0, 1], pos_err_y_vals, '|pos_err_y| (pixels)'), + (axes[0, 2], pos_err_x_vals, '|pos_err_x| (pixels)'), + (axes[1, 0], scale_err_vals, 'Relative scale error'), (axes[1, 1], sigma_y_err_vals, 'Relative sigma_y error'), - (axes[1, 2], angle_err_vals, 'Angle error (\u00b0, floating modes only)'), + (axes[1, 2], angle_err_vals, 'Angle error (\u00b0, floating modes only)'), ] n_cat = len(categories) @@ -521,9 +531,7 @@ def plot_constraint_summary( ax.bar(offsets, display_vals, width=width * 0.9, label=g_label) for off, is_nan in zip(offsets, nan_mask, strict=True): if is_nan: - ax.text( - off, 0.0, 'NaN', ha='center', va='bottom', fontsize=5, rotation=90 - ) + ax.text(off, 0.0, 'NaN', ha='center', va='bottom', fontsize=5, rotation=90) ax.set_xticks(x) ax.set_xticklabels(categories, rotation=30, ha='right', fontsize=7) ax.set_ylabel(metric_label, fontsize=8) @@ -533,4 +541,6 @@ def plot_constraint_summary( fig.suptitle(title, fontsize=10) if note: _add_figure_note(fig, note, bottom=0.08) + else: + fig.tight_layout() return fig diff --git a/src/characterize_gauss_fit/study_background.py b/src/characterize_gauss_fit/study_background.py index 13d3eb5..73c853b 100644 --- a/src/characterize_gauss_fit/study_background.py +++ b/src/characterize_gauss_fit/study_background.py @@ -85,9 +85,7 @@ def build_specs(cfg: Config) -> tuple[list[TrialSpec], list[int | None]]: bkgnd_degree=fit_degree, bkgnd_ignore_center=ignore_center, ) - inj_amplitude = ( - 0.0 if bkgnd_type == BACKGROUND_TYPE_NONE else amplitude - ) + inj_amplitude = 0.0 if bkgnd_type == BACKGROUND_TYPE_NONE else amplitude specs.append( utils.make_spec( sigma_y=study.sigma[0], @@ -191,14 +189,11 @@ def _write_outputs( fail_mask = np.zeros_like(grid, dtype=bool) for bt_idx, bkgnd_type in enumerate(bkgnd_types): - inj_amplitude = ( - 0.0 if bkgnd_type == BACKGROUND_TYPE_NONE else amplitude - ) + inj_amplitude = 0.0 if bkgnd_type == BACKGROUND_TYPE_NONE else amplitude for fd_idx, fit_degree in enumerate(fit_degrees): ic_key: tuple[int, int] = (ignore_center[0], ignore_center[1]) found: TrialResult | None = lookup.get( - (offset_y, offset_x, bkgnd_type, - inj_amplitude, fit_degree, ic_key) + (offset_y, offset_x, bkgnd_type, inj_amplitude, fit_degree, ic_key) ) if found is None: continue @@ -223,9 +218,9 @@ def _write_outputs( f' bkgnd_ignore_center = {ic_str} (see title)' ) for hmap, metric_label, fsuffix in [ - (grid, 'Position error (Euclidean)', ''), - (grid_y, '|pos_err_y|', '_y'), - (grid_x, '|pos_err_x|', '_x'), + (grid, 'Position error (Euclidean)', ''), + (grid_y, '|pos_err_y|', '_y'), + (grid_x, '|pos_err_x|', '_x'), ]: fig = plot_heatmap( hmap, @@ -254,11 +249,11 @@ def _write_outputs( specs, results, [ - ('offset_y', lambda s: s.offset_y), - ('offset_x', lambda s: s.offset_x), - ('background_type', lambda s: s.background_type), + ('offset_y', lambda s: s.offset_y), + ('offset_x', lambda s: s.offset_x), + ('background_type', lambda s: s.background_type), ('background_amplitude', lambda s: s.background_amplitude), - ('bkgnd_degree', lambda s: s.bkgnd_degree), + ('bkgnd_degree', lambda s: s.bkgnd_degree), ('bkgnd_ignore_center', lambda s: s.bkgnd_ignore_center), ], ) diff --git a/src/characterize_gauss_fit/study_box_sigma.py b/src/characterize_gauss_fit/study_box_sigma.py index c4856f7..b516d54 100644 --- a/src/characterize_gauss_fit/study_box_sigma.py +++ b/src/characterize_gauss_fit/study_box_sigma.py @@ -164,12 +164,12 @@ def _write_outputs( f' no background subtraction' ) for data, metric_title, metric_key in [ - (pos_err_grid, 'Position error (Euclidean)', 'pos_err'), - (pos_err_y_grid, '|pos_err_y|', 'pos_err_y'), - (pos_err_x_grid, '|pos_err_x|', 'pos_err_x'), - (sigma_y_err_grid, 'Relative |sigma_y| error', 'sigma_y_err'), - (sigma_x_err_grid, 'Relative |sigma_x| error', 'sigma_x_err'), - (scale_err_grid, 'Relative |scale| error', 'scale_err'), + (pos_err_grid, 'Position error (Euclidean)', 'pos_err'), + (pos_err_y_grid, '|pos_err_y|', 'pos_err_y'), + (pos_err_x_grid, '|pos_err_x|', 'pos_err_x'), + (sigma_y_err_grid, 'Relative |sigma_y| error', 'sigma_y_err'), + (sigma_x_err_grid, 'Relative |sigma_x| error', 'sigma_x_err'), + (scale_err_grid, 'Relative |scale| error', 'scale_err'), ]: fig = plot_heatmap( data, @@ -216,6 +216,6 @@ def build_json_groups(specs: list[TrialSpec], results: list[TrialResult]) -> lis ('offset_y', lambda s: s.offset_y), ('offset_x', lambda s: s.offset_x), ('box_size', lambda s: s.box_size), - ('sigma', lambda s: s.sigma_y), + ('sigma', lambda s: s.sigma_y), ], ) diff --git a/src/characterize_gauss_fit/study_constraints.py b/src/characterize_gauss_fit/study_constraints.py index 15b1a30..f678579 100644 --- a/src/characterize_gauss_fit/study_constraints.py +++ b/src/characterize_gauss_fit/study_constraints.py @@ -247,7 +247,7 @@ def _write_outputs( if result.sigma_y_err is not None: sigma_y_err_vals[m_idx, s_idx] = abs(result.sigma_y_err) if result.angle_err is not None and np.isfinite(result.angle_err): - angle_err_vals[m_idx, s_idx] = math.degrees(result.angle_err) + angle_err_vals[m_idx, s_idx] = math.degrees(abs(result.angle_err)) fig = plot_constraint_summary( mode_labels, diff --git a/src/characterize_gauss_fit/study_hot_pixels.py b/src/characterize_gauss_fit/study_hot_pixels.py index 7650ca2..6fe3106 100644 --- a/src/characterize_gauss_fit/study_hot_pixels.py +++ b/src/characterize_gauss_fit/study_hot_pixels.py @@ -188,7 +188,9 @@ def _write_outputs( bucket_map: dict[tuple[int, float | None, float], list[TrialResult]] = {} for spec, result in zip(specs, results, strict=True): key: tuple[int, float | None, float] = ( - spec.hot_pixel_count, spec.num_sigma, round(spec.hot_pixel_amplitude, 9) + spec.hot_pixel_count, + spec.num_sigma, + round(spec.hot_pixel_amplitude, 9), ) if key not in bucket_map: bucket_map[key] = [] @@ -222,15 +224,16 @@ def _write_outputs( note=plot_note, ) save_figure( - fig, study_dir, + fig, + study_dir, f'{_STUDY_NAME}_convergence_hotamp{ha_idx}.png', ) # --- Position-error plots -------------------------------------------- for metric_attr, metric_label, fname_prefix in [ - ('pos_err', 'Mean position error, Euclidean (pixels)', 'pos_err'), - ('pos_err_y', 'Mean |pos_err_y| (pixels)', 'pos_err_y'), - ('pos_err_x', 'Mean |pos_err_x| (pixels)', 'pos_err_x'), + ('pos_err', 'Mean position error, Euclidean (pixels)', 'pos_err'), + ('pos_err_y', 'Mean |pos_err_y| (pixels)', 'pos_err_y'), + ('pos_err_x', 'Mean |pos_err_x| (pixels)', 'pos_err_x'), ]: y_means: list[npt.NDArray[np.float64]] = [] y_stds: list[npt.NDArray[np.float64]] = [] @@ -238,9 +241,7 @@ def _write_outputs( means: list[float] = [] stds: list[float] = [] for n_hot_count in n_hot_list: - bucket = bucket_map.get( - (n_hot_count, ns_val, round(hot_amp, 9)), [] - ) + bucket = bucket_map.get((n_hot_count, ns_val, round(hot_amp, 9)), []) arr = np.abs(utils.collect_metric(bucket, metric_attr)) means.append(utils.safe_nanmean(arr)) stds.append(utils.safe_nanstd(arr)) diff --git a/src/characterize_gauss_fit/study_min_offset.py b/src/characterize_gauss_fit/study_min_offset.py index 69f9460..5e27fb5 100644 --- a/src/characterize_gauss_fit/study_min_offset.py +++ b/src/characterize_gauss_fit/study_min_offset.py @@ -182,9 +182,10 @@ def _write_outputs( bucket_key = (delta, sigma, cond_label) result_map[bucket_key] = results[idx : idx + n_trials] idx += n_trials - assert idx == len(results), ( - f'result_map bucketing consumed {idx} results but {len(results)} were returned' - ) + if idx != len(results): + raise RuntimeError( + f'result_map bucketing consumed {idx} results but {len(results)} were returned' + ) x_arr = np.array(deltas) delta_labels = [f'{d:.3g}' for d in deltas] @@ -202,9 +203,9 @@ def _write_outputs( ) ) for metric_attr, metric_label, fname_prefix in [ - ('pos_err', 'Mean position error (Euclidean, pixels)', 'pos_err'), - ('pos_err_y', 'Mean |pos_err_y| (pixels)', 'pos_err_y'), - ('pos_err_x', 'Mean |pos_err_x| (pixels)', 'pos_err_x'), + ('pos_err', 'Mean position error (Euclidean, pixels)', 'pos_err'), + ('pos_err_y', 'Mean |pos_err_y| (pixels)', 'pos_err_y'), + ('pos_err_x', 'Mean |pos_err_x| (pixels)', 'pos_err_x'), ]: y_means: list[npt.NDArray[np.float64]] = [] y_stds: list[npt.NDArray[np.float64]] = [] @@ -225,9 +226,7 @@ def _write_outputs( stds_per_delta.append(float('nan')) else: means_per_delta.append(float(np.mean(errs))) - stds_per_delta.append( - float(np.std(errs, ddof=1)) if len(errs) > 1 else 0.0 - ) + stds_per_delta.append(float(np.std(errs, ddof=1)) if len(errs) > 1 else 0.0) y_means.append(np.array(means_per_delta)) y_stds.append(np.array(stds_per_delta)) line_labels.append(f'sigma={sigma:.2g}') @@ -268,10 +267,8 @@ def _write_outputs( rec_grid, delta_labels, sigma_labels, - title=( - f'Recovery fraction (pos_err < delta/2) -- {cond_label}' - ), - xlabel='Injected X offset / delta (pixels)', + title=(f'Recovery fraction (pos_err < delta/2) -- {cond_label}'), + xlabel='Injected X offset (delta, pixels)', ylabel='Sigma (pixels)', note=( f'PSF: sigma_y = sigma_x = sigma (y-axis); angle = 0\u00b0 (fixed);' diff --git a/src/characterize_gauss_fit/study_noise.py b/src/characterize_gauss_fit/study_noise.py index ccffd6f..0d8d0ed 100644 --- a/src/characterize_gauss_fit/study_noise.py +++ b/src/characterize_gauss_fit/study_noise.py @@ -157,9 +157,10 @@ def _collect_metric_grid( """ # Defensive: check the spec ordering assumption holds. expected_total = n_snr * n_sigma * n_samples - assert len(results) == expected_total, ( - f'Expected {expected_total} results for noise_sensitivity but got {len(results)}' - ) + if len(results) != expected_total: + raise RuntimeError( + f'Expected {expected_total} results for noise_sensitivity but got {len(results)}' + ) all_means: list[npt.NDArray[np.float64]] = [] all_stds: list[npt.NDArray[np.float64]] = [] for s_idx in range(n_sigma): @@ -180,14 +181,15 @@ def _collect_metric_grid( sigma_labels = [f'sigma={s:.1f}' for s in study.sigmas] for metric, ylabel, fname in [ - ('pos_err', 'Position error, Euclidean (pixels)', 'pos_err_vs_snr.png'), - ('pos_err_y', '|pos_err_y| (pixels)', 'pos_err_y_vs_snr.png'), - ('pos_err_x', '|pos_err_x| (pixels)', 'pos_err_x_vs_snr.png'), - ('sigma_y_err', 'Relative |sigma_y| error', 'sigma_y_err_vs_snr.png'), - ('sigma_x_err', 'Relative |sigma_x| error', 'sigma_x_err_vs_snr.png'), - ('scale_err', 'Relative |scale| error', 'scale_err_vs_snr.png'), + ('pos_err', 'Position error, Euclidean (pixels)', 'pos_err_vs_snr.png'), + ('pos_err_y', '|pos_err_y| (pixels)', 'pos_err_y_vs_snr.png'), + ('pos_err_x', '|pos_err_x| (pixels)', 'pos_err_x_vs_snr.png'), + ('sigma_y_err', 'Relative |sigma_y| error', 'sigma_y_err_vs_snr.png'), + ('sigma_x_err', 'Relative |sigma_x| error', 'sigma_x_err_vs_snr.png'), + ('scale_err', 'Relative |scale| error', 'scale_err_vs_snr.png'), ]: - means, stds = _collect_metric_grid(metric, abs_values=True) + # pos_err is a Euclidean distance (always non-negative); abs is not needed. + means, stds = _collect_metric_grid(metric, abs_values=(metric != 'pos_err')) fig = plot_line_with_bands( snr_arr, means, diff --git a/src/characterize_gauss_fit/study_offset.py b/src/characterize_gauss_fit/study_offset.py index 4f460ae..bd4bb58 100644 --- a/src/characterize_gauss_fit/study_offset.py +++ b/src/characterize_gauss_fit/study_offset.py @@ -12,6 +12,7 @@ import logging import pathlib +from collections.abc import Callable from typing import Any import numpy as np @@ -28,7 +29,7 @@ _STUDY_NAME = 'subpixel_offset' # Shared grouping key definitions for JSON summary and _write_outputs. -_GROUP_KEYS: list[Any] = [ +_GROUP_KEYS: list[tuple[str, Callable[[TrialSpec], float]]] = [ ('sigma', lambda s: s.sigma_y), ('offset_y', lambda s: round(s.offset_y, 6)), ('offset_x', lambda s: round(s.offset_x, 6)), @@ -140,9 +141,9 @@ def _write_outputs( grid_x[oy_idx, ox_idx] = abs(r.pos_err_x) for hmap, metric_label, fname in [ - (grid, 'Position error (Euclidean)', f'pos_err_sigma{sigma:.1f}.png'), - (grid_y, '|pos_err_y|', f'pos_err_y_sigma{sigma:.1f}.png'), - (grid_x, '|pos_err_x|', f'pos_err_x_sigma{sigma:.1f}.png'), + (grid, 'Position error (Euclidean)', f'pos_err_sigma{sigma:.1f}.png'), + (grid_y, '|pos_err_y|', f'pos_err_y_sigma{sigma:.1f}.png'), + (grid_x, '|pos_err_x|', f'pos_err_x_sigma{sigma:.1f}.png'), ]: fig = plot_heatmap( hmap, @@ -176,12 +177,12 @@ def _write_outputs( x_arr = np.array(offsets) for metric_attr, metric_label, vary_axis in [ - ('pos_err', 'Position error (Euclidean, pixels)', 'offset_x'), - ('pos_err_y', '|pos_err_y| (pixels)', 'offset_x'), - ('pos_err_x', '|pos_err_x| (pixels)', 'offset_x'), - ('pos_err', 'Position error (Euclidean, pixels)', 'offset_y'), - ('pos_err_y', '|pos_err_y| (pixels)', 'offset_y'), - ('pos_err_x', '|pos_err_x| (pixels)', 'offset_y'), + ('pos_err', 'Position error (Euclidean, pixels)', 'offset_x'), + ('pos_err_y', '|pos_err_y| (pixels)', 'offset_x'), + ('pos_err_x', '|pos_err_x| (pixels)', 'offset_x'), + ('pos_err', 'Position error (Euclidean, pixels)', 'offset_y'), + ('pos_err_y', '|pos_err_y| (pixels)', 'offset_y'), + ('pos_err_x', '|pos_err_x| (pixels)', 'offset_y'), ]: y_means: list[npt.NDArray[np.float64]] = [] y_stds: list[npt.NDArray[np.float64]] = [] @@ -195,8 +196,8 @@ def _write_outputs( r = slice_results[mid_idx * n_off + idx] else: r = slice_results[idx * n_off + mid_idx] - val = getattr(r, metric_attr) if r.converged else float('nan') - row.append(abs(float(val)) if val is not None else float('nan')) + val = getattr(r, metric_attr) if r.converged else None + row.append(float('nan') if val is None else abs(float(val))) y_means.append(np.array(row, dtype=np.float64)) y_stds.append(np.zeros(n_off, dtype=np.float64)) line_labels.append(f'sigma={sigma:.1f}') diff --git a/src/characterize_gauss_fit/study_shape.py b/src/characterize_gauss_fit/study_shape.py index a989b4e..935b740 100644 --- a/src/characterize_gauss_fit/study_shape.py +++ b/src/characterize_gauss_fit/study_shape.py @@ -145,27 +145,28 @@ def _write_outputs( if result.sigma_y_err is not None: sigma_y_err_grid[r_idx, a_idx] = abs(result.sigma_y_err) if not is_circular and result.angle_err is not None: - err_deg = math.degrees(result.angle_err) + err_deg = math.degrees(result.angle_err) % 180.0 # Reduce modulo 90° to account for the sigma-swap equivalence: # (sigma_y, sigma_x, theta) == (sigma_x, sigma_y, theta+90°). - # When both sigmas float the optimiser may land on either form, + # When both sigmas float the optimizer may land on either form, # making the raw error jump to ~90° for a geometrically perfect - # fit. min(e, 90-e) maps that back to 0° as it should be. - angle_err_grid[r_idx, a_idx] = min(err_deg, 90.0 - err_deg) + # fit. min(e, 180-e) maps the [0,180) range into [0,90] as it + # should be, and the modulo ensures negative or >180 values are + # handled correctly before the min. + angle_err_grid[r_idx, a_idx] = min(err_deg, 180.0 - err_deg) label = f'sigma_x={sigma_x:.1f}' for data, metric_title, fname_prefix, cbar in [ - (pos_err_grid, - f'Position error (Euclidean) -- {label}', 'pos_err', 'log10(pos error)'), - (pos_err_y_grid, - f'|pos_err_y| -- {label}', 'pos_err_y', 'log10(|pos_err_y|)'), - (pos_err_x_grid, - f'|pos_err_x| -- {label}', 'pos_err_x', 'log10(|pos_err_x|)'), - (angle_err_grid, - f'Angle error (\u00b0, mod 90\u00b0) -- {label}', 'angle_err', - 'Angle error (\u00b0, mod 90\u00b0)'), - (sigma_y_err_grid, - f'Rel sigma_y error -- {label}', 'sigma_y_err', 'log10(rel error)'), + (pos_err_grid, f'Position error (Euclidean) -- {label}', 'pos_err', 'log10(pos error)'), + (pos_err_y_grid, f'|pos_err_y| -- {label}', 'pos_err_y', 'log10(|pos_err_y|)'), + (pos_err_x_grid, f'|pos_err_x| -- {label}', 'pos_err_x', 'log10(|pos_err_x|)'), + ( + angle_err_grid, + f'Angle error (\u00b0, mod 90\u00b0) -- {label}', + 'angle_err', + 'Angle error (\u00b0, mod 90\u00b0)', + ), + (sigma_y_err_grid, f'Rel sigma_y error -- {label}', 'sigma_y_err', 'log10(rel error)'), ]: use_log = 'pos' in fname_prefix or 'sigma' in fname_prefix fig = plot_heatmap( diff --git a/src/characterize_gauss_fit/test_config.yaml b/src/characterize_gauss_fit/test_config.yaml index 72846a3..b6cb6dc 100644 --- a/src/characterize_gauss_fit/test_config.yaml +++ b/src/characterize_gauss_fit/test_config.yaml @@ -61,8 +61,8 @@ studies: fitting: bkgnd_degree: null - # Study 5: 5 modes x 2 shapes = 24 trials (modes: all_float, sigma_fixed_correct, - # angle_fixed_correct, all_fixed_correct, all_fixed_errors) + # Study 5: 5 modes x 2 shapes x 2 sigma_error_fractions = 20 trials (modes: all_float, + # sigma_fixed_correct, angle_fixed_correct, all_fixed_correct, all_fixed_errors) constraint_modes: enabled: true sigma_error_fractions: [0.0, 0.3] @@ -99,7 +99,7 @@ studies: noise_samples: 3 box_size: 13 - # Study 8: 2 num_hot x 1 num_sigma x 1 amplitude x 3 noise samples = 6 trials + # Study 8: 2 num_hot x 2 num_sigma x 1 amplitude x 3 noise samples = 12 trials hot_pixel_rejection: enabled: true num_hot_pixels: [0, 3] diff --git a/src/characterize_gauss_fit/trial.py b/src/characterize_gauss_fit/trial.py index a3a2c5b..8a3263f 100644 --- a/src/characterize_gauss_fit/trial.py +++ b/src/characterize_gauss_fit/trial.py @@ -368,14 +368,10 @@ def run_trial(spec: TrialSpec) -> TrialResult: if 'sigma_y' in details: sigma_y_fit = float(details['sigma_y']) - sigma_y_err = ( - (sigma_y_fit - spec.sigma_y) / spec.sigma_y if spec.sigma_y != 0.0 else None - ) + sigma_y_err = (sigma_y_fit - spec.sigma_y) / spec.sigma_y if spec.sigma_y != 0.0 else _NAN if 'sigma_x' in details: sigma_x_fit = float(details['sigma_x']) - sigma_x_err = ( - (sigma_x_fit - spec.sigma_x) / spec.sigma_x if spec.sigma_x != 0.0 else None - ) + sigma_x_err = (sigma_x_fit - spec.sigma_x) / spec.sigma_x if spec.sigma_x != 0.0 else _NAN # Retrieve fitted angle if it was floating. angle_fit: float | None = None diff --git a/src/psfmodel/psf.py b/src/psfmodel/psf.py index 1190e9f..3fa190e 100755 --- a/src/psfmodel/psf.py +++ b/src/psfmodel/psf.py @@ -768,11 +768,9 @@ def find_position( if self.detailed_logging: msg = f'find_position returning Y {res_y + starting_pix[0]:.4f}' - if details['y_err'] is not None: - msg += f' +/- {details["y_err"]:.4f}' + msg += f' +/- {details["y_err"]:.4f}' msg += f' X {res_x + starting_pix[1]:.4f}' - if details['x_err'] is not None: - msg += f' +/- {details["x_err"]:.4f}' + msg += f' +/- {details["x_err"]:.4f}' if details['scale'] is not None: msg += f' Scale {details["scale"]:.4f} Base {details["base"]:.4f}' if 'sigma_y' in details: @@ -1116,8 +1114,17 @@ def _find_position( _n_valid = int(_resid_flat.size) _n_params_fit = 3 + int(allow_nonzero_base) + len(self._additional_params) _rss = float(np.dot(_resid_flat, _resid_flat)) - _dof = max(_n_valid - _n_params_fit, 1) - _reduced_chi2 = _rss / _dof + if _n_valid <= _n_params_fit: + self._logger.warning( + 'find_position: underconstrained fit (%d valid pixels, %d fitted parameters);' + ' reduced_chi2 set to NaN', + _n_valid, + _n_params_fit, + ) + _reduced_chi2 = float('nan') + else: + _dof = _n_valid - _n_params_fit + _reduced_chi2 = _rss / _dof _noise_rms = float(np.sqrt(_rss / _n_valid)) if _n_valid > 0 else 0.0 _peak_snr = float(scale / _noise_rms) if _noise_rms > 0.0 else 0.0 @@ -1161,24 +1168,29 @@ def _residuals_at_phys(phys: list[float]) -> npt.NDArray[np.float64]: return _d.flatten().astype(np.float64) # Forward-difference Jacobian of the residual vector in physical space. - _jac = np.zeros((_n_valid, _n_phys), dtype=np.float64) - for _col in range(_n_phys): - _val = _phys[_col] - _eps = max(abs(_val) * _JACO_REL_EPS, _JACO_ABS_EPS) - _phys_plus = list(_phys) - _phys_plus[_col] += _eps - _r_plus = _residuals_at_phys(_phys_plus) - _jac[:, _col] = (_r_plus - _resid_flat) / _eps - - # Covariance = reduced_chi2 * (J^T J)^{-1}; use lstsq for robustness when - # J^T J is ill-conditioned (e.g. underconstrained fits). - _jtj = _jac.T @ _jac - _cov_raw, _, _, _ = np.linalg.lstsq(_jtj, np.eye(_n_phys), rcond=None) - _cov = _cov_raw * _reduced_chi2 - - # Diagonal 1-sigma uncertainties; negative variances (numerical noise) are - # clamped to zero before taking the square root. - _uncertainties = np.sqrt(np.maximum(np.diag(_cov), 0.0)) + if _n_valid == 0: + # No valid pixels: uncertainties are undefined. + _cov = np.full((_n_phys, _n_phys), np.nan) + _uncertainties = np.full(_n_phys, np.nan) + else: + _jac = np.zeros((_n_valid, _n_phys), dtype=np.float64) + for _col in range(_n_phys): + _val = _phys[_col] + _eps = max(abs(_val) * _JACO_REL_EPS, _JACO_ABS_EPS) + _phys_plus = list(_phys) + _phys_plus[_col] += _eps + _r_plus = _residuals_at_phys(_phys_plus) + _jac[:, _col] = (_r_plus - _resid_flat) / _eps + + # Covariance = reduced_chi2 * (J^T J)^{-1}; use lstsq for robustness when + # J^T J is ill-conditioned (e.g. underconstrained fits). + _jtj = _jac.T @ _jac + _cov_raw, _, _, _ = np.linalg.lstsq(_jtj, np.eye(_n_phys), rcond=None) + _cov = _cov_raw * _reduced_chi2 + + # Diagonal 1-sigma uncertainties; negative variances (numerical noise) are + # clamped to zero before taking the square root. + _uncertainties = np.sqrt(np.maximum(np.diag(_cov), 0.0)) details['y_err'] = float(_uncertainties[0]) details['x_err'] = float(_uncertainties[1]) From ff41ed5985f8e220f71383a5bee5a3a8c2123ba2 Mon Sep 17 00:00:00 2001 From: Robert French Date: Mon, 13 Apr 2026 22:13:48 -0700 Subject: [PATCH 12/17] Code cleanup --- README.md | 2 +- docs/characterize_gauss_fit.md | 82 ++++---- pyproject.toml | 1 - src/characterize_gauss_fit/_study_utils.py | 18 ++ src/characterize_gauss_fit/output.py | 4 +- src/characterize_gauss_fit/plotting.py | 5 +- .../study_background.py | 8 +- src/characterize_gauss_fit/study_box_sigma.py | 41 ++-- .../study_constraints.py | 30 +-- .../study_hot_pixels.py | 12 +- .../study_min_offset.py | 40 +--- src/characterize_gauss_fit/study_noise.py | 14 +- src/characterize_gauss_fit/study_offset.py | 38 +--- src/characterize_gauss_fit/study_shape.py | 16 +- src/characterize_gauss_fit/trial.py | 3 + src/psfmodel/gaussian.py | 31 +-- src/psfmodel/psf.py | 197 ++++++++++-------- tests/test_find_position.py | 112 ++++++++++ 18 files changed, 384 insertions(+), 270 deletions(-) diff --git a/README.md b/README.md index 614f5e3..c2e4983 100644 --- a/README.md +++ b/README.md @@ -51,7 +51,7 @@ Details of each class are available in the [module documentation](https://rms-ps After installation, an optional Tkinter-based PSF explorer is available as the `psf_gui` command (or `python -m psf_gui` with `src` on `PYTHONPATH`). A working Tcl/Tk installation is required (for example, install the `python3-tk` package on Debian/Ubuntu). -A characterization tool that systematically measures Gaussian PSF fitting accuracy across a wide parameter space is available as the `characterize_gauss_fit` command. Install the extra dependencies with `pip install rms-psfmodel[characterize]`. +A characterization tool that systematically measures Gaussian PSF fitting accuracy across a wide parameter space is available in the repository. Clone the repo, install with `pip install -e ".[characterize]"`, and run it with `python -m characterize_gauss_fit`. # Contributing diff --git a/docs/characterize_gauss_fit.md b/docs/characterize_gauss_fit.md index 3d7b529..1616729 100644 --- a/docs/characterize_gauss_fit.md +++ b/docs/characterize_gauss_fit.md @@ -18,75 +18,82 @@ others fixed. Every study produces: - **`summary.json`** -- aggregate statistics per parameter group plus the exact configuration used, formatted for AI-assisted analysis. -## Installation +## Running from the Repository -Install the extra dependencies required by this tool: +`characterize_gauss_fit` is not an installed command-line entry point. It must +be run directly from the repository. First clone the repository and install the +extra dependencies: ```sh -pip install rms-psfmodel[characterize] +git clone https://github.com/SETI/rms-psfmodel.git +cd rms-psfmodel +pip install -e ".[characterize]" ``` -This adds `matplotlib` and `pyyaml` to your environment. +This adds `matplotlib` and `pyyaml` to your environment. All commands below +use `python -m characterize_gauss_fit` and must be run from the repository +root (or any directory where the package is importable). ## Quick Start Run all studies with default settings: ```sh -characterize_gauss_fit +python -m characterize_gauss_fit ``` Run a quick smoke test across all studies using the bundled reduced-grid configuration (completes in roughly 30--120 seconds): ```sh -characterize_gauss_fit --config src/characterize_gauss_fit/test_config.yaml +python -m characterize_gauss_fit --copy-test-config-to test_config.yaml +python -m characterize_gauss_fit --config test_config.yaml ``` Run a single study: ```sh -characterize_gauss_fit --study box_vs_sigma +python -m characterize_gauss_fit --study box_vs_sigma ``` Run with a custom override file and parallel workers: ```sh -characterize_gauss_fit --config my_config.yaml --num-workers 8 +python -m characterize_gauss_fit --config my_config.yaml --num-workers 8 ``` List all available study names: ```sh -characterize_gauss_fit --list-studies +python -m characterize_gauss_fit --list-studies ``` Copy the built-in default configuration to a local file for editing: ```sh -characterize_gauss_fit --copy-default-config-to my_config.yaml +python -m characterize_gauss_fit --copy-default-config-to my_config.yaml ``` Copy the built-in reduced-grid test configuration to a local file: ```sh -characterize_gauss_fit --copy-test-config-to test_config.yaml +python -m characterize_gauss_fit --copy-test-config-to test_config.yaml ``` Copy the built-in high-resolution configuration to a local file: ```sh -characterize_gauss_fit --copy-hires-config-to hires_config.yaml +python -m characterize_gauss_fit --copy-hires-config-to hires_config.yaml ``` ## CLI Reference ```text -usage: characterize_gauss_fit [--config FILE] [--study NAME] [--output-dir DIR] - [--num-workers N] [--list-studies] - [--copy-default-config-to FILE] - [--copy-test-config-to FILE] - [--copy-hires-config-to FILE] [--verbose] +usage: python -m characterize_gauss_fit [--config FILE] [--study NAME] [--output-dir DIR] + [--num-workers N] [--list-studies] + [--copy-default-config-to FILE] + [--copy-test-config-to FILE] + [--copy-hires-config-to FILE] [--verbose] Options: --config FILE Path to a YAML override file merged onto @@ -95,8 +102,9 @@ Options: enabled studies. Use --list-studies to see names. --output-dir DIR Override the output directory from the config file. - --num-workers N Number of parallel worker processes. 1 (default) - runs sequentially in the main process. >1 uses + --num-workers N Number of parallel worker processes. Default: + resolved from config file (built-in default: 1). + 1 = sequential in the main process; >1 uses concurrent.futures.ProcessPoolExecutor. --list-studies Print available study names and exit. --copy-default-config-to FILE @@ -172,7 +180,7 @@ Study 1: How box size relative to PSF sigma affects fitting accuracy. | `enabled` | bool | `true` | Enable/disable this study. | | `box_sizes` | list[int] | `[5,7,9,11,13,17,21,25,31]` | Odd box sizes to test. Each must be >= 5. | | `sigmas` | list[float] | `[0.3,0.5,0.8,1.0,1.5,2.0,3.0,5.0]` | Symmetric PSF sigma values (pixels). | -| `offset` | [float, float] | `[0.25, 0.25]` | Sub-pixel offset [y, x] applied to the PSF centre. | +| `offsets` | list[[float, float]] | `[[0.0,0.0],[0.25,0.25],[0.5,0.0],[0.0,0.5],[0.5,0.5]]` | List of sub-pixel [y, x] offsets. Each entry produces a separate set of heatmap plots. | | `angle` | float | `0.0` | PSF rotation angle (radians). | | `scale` | float | `1.0` | PSF amplitude scale factor (overrides `generation.scale`). | | `fitting` | dict | `{bkgnd_degree: null}` | Per-study fitting overrides. | @@ -258,7 +266,7 @@ Study 6: How injected background and fitting model choice interact. | `background_types` | list[str] | `[none,constant,linear,quadratic,noisy_constant]` | Background types to inject. | | `box_size` | int | `21` | Fixed box size. | | `sigma` | [float, float] | `[1.0, 1.0]` | Fixed PSF sigma [y, x]. | -| `offset` | [float, float] | `[0.25, 0.25]` | Fixed sub-pixel offset. | +| `offsets` | list[[float, float]] | `[[0.0,0.0],[0.25,0.25],[0.5,0.5]]` | List of sub-pixel [y, x] offsets. Each entry produces a separate set of heatmap plots. | Valid `background_types` values: @@ -295,7 +303,7 @@ Study 8: Effectiveness of `num_sigma` bad-pixel rejection. |-----|------|---------|-------------| | `enabled` | bool | `true` | Enable/disable this study. | | `num_hot_pixels` | list[int] | `[0,1,3,5,10]` | Number of hot pixels to inject. | -| `num_sigma_values` | list[float] | `[2.0, 3.0, 5.0]` | `num_sigma` rejection thresholds to test. | +| `num_sigma_values` | list[float] | `[3.0, 4.0, 5.0, 6.0]` | `num_sigma` rejection thresholds to test. | | `num_sigma_with_null` | bool | `true` | Also test `num_sigma=null` (rejection disabled). | | `hot_amplitudes` | list[float] | `[5.0, 20.0, 100.0]` | Hot pixel amplitude as multiple of PSF peak. | | `noise_samples` | int | `20` | Noise realisations per combination (hot pixel positions randomised). | @@ -575,7 +583,7 @@ defaults that provide a thorough survey of each study's parameter space. Output is written to `./gauss_fit_results/`. ```sh -characterize_gauss_fit --copy-default-config-to my_config.yaml +python -m characterize_gauss_fit --copy-default-config-to my_config.yaml ``` ### Reduced-grid test configuration (`test_config.yaml`) @@ -585,22 +593,22 @@ entire suite completes in roughly 30--120 seconds on a single core. Use it to verify that all code paths execute after code changes. ```sh -characterize_gauss_fit --copy-test-config-to test_config.yaml -characterize_gauss_fit --config test_config.yaml +python -m characterize_gauss_fit --copy-test-config-to test_config.yaml +python -m characterize_gauss_fit --config test_config.yaml ``` Output is written to `./gauss_fit_test/` by default. | Study | Grid size | Approx. trials | |-------|-----------|----------------| -| `box_vs_sigma` | 2 box sizes x 3 sigmas | 6 | +| `box_vs_sigma` | 2 box sizes x 3 sigmas x 2 offsets | 12 | | `subpixel_offset` | 3 x 3 offset grid, 1 sigma | 9 | -| `min_detectable_offset` | 3 deltas x 2 sigmas x 2 noise conditions x 3 samples | ~18 | +| `min_detectable_offset` | 3 deltas x 2 sigmas x (1 noiseless + 1 SNR) x 3 samples | ~24 | | `sigma_asymmetry_angle` | 3 ratios x 3 angles x 1 sigma_x | 9 | -| `constraint_modes` | 5 modes x 2 PSF shapes | ~18 | -| `background` | 2 background types x 2 fitting degrees | 4 | +| `constraint_modes` | 5 modes x 2 PSF shapes x 2 sigma-error fractions | ~20 | +| `background` | 2 background types x 2 fitting degrees x 2 offsets | 8 | | `noise_sensitivity` | 4 SNR points x 1 sigma x 3 samples | 12 | -| `hot_pixel_rejection` | 2 num_hot x 1 threshold x 1 amplitude x 3 samples | 12 | +| `hot_pixel_rejection` | 2 num_hot x 2 num_sigma x 1 amplitude x 3 samples | 12 | ### High-resolution configuration (`hires_config.yaml`) @@ -612,8 +620,8 @@ is 10--30x longer than the default configuration; use `--num-workers` to parallelise across CPU cores. ```sh -characterize_gauss_fit --copy-hires-config-to hires_config.yaml -characterize_gauss_fit --config hires_config.yaml --num-workers 8 +python -m characterize_gauss_fit --copy-hires-config-to hires_config.yaml +python -m characterize_gauss_fit --config hires_config.yaml --num-workers 8 ``` Output is written to `./gauss_fit_hires/` by default. @@ -635,9 +643,9 @@ All three copy commands write the file and exit immediately — no studies are run. The destination path must not already exist. ```sh -characterize_gauss_fit --copy-default-config-to my_config.yaml -characterize_gauss_fit --copy-test-config-to test_config.yaml -characterize_gauss_fit --copy-hires-config-to hires_config.yaml +python -m characterize_gauss_fit --copy-default-config-to my_config.yaml +python -m characterize_gauss_fit --copy-test-config-to test_config.yaml +python -m characterize_gauss_fit --copy-hires-config-to hires_config.yaml ``` All parameters in any bundled config can be further overridden by combining @@ -645,7 +653,7 @@ it with a second user config file or with CLI flags. For example, to run only study 1 with the test grid: ```sh -characterize_gauss_fit --config test_config.yaml --study box_vs_sigma +python -m characterize_gauss_fit --config test_config.yaml --study box_vs_sigma ``` --- @@ -686,5 +694,5 @@ studies: Run with: ```sh -characterize_gauss_fit --config my_overrides.yaml +python -m characterize_gauss_fit --config my_overrides.yaml ``` diff --git a/pyproject.toml b/pyproject.toml index 67e93ad..a3428d8 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -98,7 +98,6 @@ characterize = [ [project.scripts] psf_gui = "psf_gui.main:main" -characterize_gauss_fit = "characterize_gauss_fit.main:main" # Tool configuration diff --git a/src/characterize_gauss_fit/_study_utils.py b/src/characterize_gauss_fit/_study_utils.py index 97d2131..a250045 100644 --- a/src/characterize_gauss_fit/_study_utils.py +++ b/src/characterize_gauss_fit/_study_utils.py @@ -262,6 +262,24 @@ def ensure_study_dir(output_dir: pathlib.Path, study_name: str) -> pathlib.Path: return study_dir +def snr_to_noise_rms(snr: float, scale: float) -> float: + """Convert signal-to-noise ratio to noise RMS. + + Parameters: + snr: Signal-to-noise ratio (PSF peak / noise std). Must be positive. + scale: PSF amplitude scale factor (determines peak value). + + Returns: + Corresponding noise standard deviation (``scale / snr``). + + Raises: + ValueError: If ``snr`` is not positive. + """ + if snr <= 0: + raise ValueError(f'snr must be > 0, got {snr}') + return scale / snr + + def recovery_fraction( results: list[TrialResult], *, diff --git a/src/characterize_gauss_fit/output.py b/src/characterize_gauss_fit/output.py index 828867a..73ad364 100644 --- a/src/characterize_gauss_fit/output.py +++ b/src/characterize_gauss_fit/output.py @@ -239,7 +239,9 @@ def _aggregate_results(results: list[TrialResult]) -> dict[str, Any]: for r in converged if r.sigma_x_err is not None and math.isfinite(r.sigma_x_err) ] - angle_errs = [r.angle_err for r in converged if r.angle_err is not None] + angle_errs = [ + r.angle_err for r in converged if r.angle_err is not None and math.isfinite(r.angle_err) + ] scale_errs = [r.scale_err for r in converged if math.isfinite(r.scale_err)] return { diff --git a/src/characterize_gauss_fit/plotting.py b/src/characterize_gauss_fit/plotting.py index 30ca2ca..093805f 100644 --- a/src/characterize_gauss_fit/plotting.py +++ b/src/characterize_gauss_fit/plotting.py @@ -14,6 +14,7 @@ import pathlib from collections.abc import Sequence +from typing import Any import matplotlib import matplotlib.patheffects as _pe @@ -44,7 +45,7 @@ _BANDS_NOTE = 'Shaded bands: mean \u00b1 1 std.\u202fdev. across repeated trials' # Style used for all figure footnotes. -_NOTE_STYLE: dict[str, object] = { +_NOTE_STYLE: dict[str, Any] = { 'ha': 'center', 'va': 'bottom', 'fontsize': 7, @@ -75,7 +76,7 @@ def _add_figure_note(fig: Figure, note: str, *, bottom: float = 0.12) -> None: kw = dict(_NOTE_STYLE) kw['transform'] = fig.transFigure # Place note text just above the figure bottom edge, inside the reserved strip. - fig.text(0.5, 0.005, note, **kw) # type: ignore[arg-type] + fig.text(0.5, 0.005, note, **kw) # Single tight_layout call: everything (axes + labels) goes in the rect # above the note strip, so x-axis title never overlaps the note. fig.tight_layout(rect=(0.0, actual_bottom, 1.0, 1.0)) diff --git a/src/characterize_gauss_fit/study_background.py b/src/characterize_gauss_fit/study_background.py index 73c853b..72738da 100644 --- a/src/characterize_gauss_fit/study_background.py +++ b/src/characterize_gauss_fit/study_background.py @@ -210,11 +210,11 @@ def _write_outputs( f' (fixed); angle = 0\u00b0 (fixed); box_size = {study.box_size} px;' f' scale = {scale:.2g}; one noiseless trial per cell\n' f'Offset: Y = {offset_y:+.2f}, X = {offset_x:+.2f} px from pixel centre' - f' (fixed; one heatmap set per offset pair)\n' + ' (fixed; one heatmap set per offset pair)\n' f'Background: type on y-axis; amplitude = {amplitude:.2g} \u00d7 PSF peak' - f' (see title); no Gaussian detector noise added\n' - f'Fitting: sigma_y and sigma_x float freely; angle fixed at 0\u00b0;' - f' bkgnd_degree on x-axis (null = no subtraction);' + ' (see title); no Gaussian detector noise added\n' + 'Fitting: sigma_y and sigma_x float freely; angle fixed at 0\u00b0;' + ' bkgnd_degree on x-axis (null = no subtraction);' f' bkgnd_ignore_center = {ic_str} (see title)' ) for hmap, metric_label, fsuffix in [ diff --git a/src/characterize_gauss_fit/study_box_sigma.py b/src/characterize_gauss_fit/study_box_sigma.py index b516d54..1ea11a9 100644 --- a/src/characterize_gauss_fit/study_box_sigma.py +++ b/src/characterize_gauss_fit/study_box_sigma.py @@ -158,10 +158,10 @@ def _write_outputs( f'PSF: sigma_y = sigma_x = sigma (x-axis); angle = {study.angle:.0f}\u00b0 (fixed,' f' axis-aligned); scale = {study.scale:.2g}; one noiseless trial per cell\n' f'Offset: Y = {offset_y:+.2f}, X = {offset_x:+.2f} px from pixel centre' - f' (fixed; one heatmap produced per offset pair)\n' - f'Background / noise: none injected; image is clean Gaussian pixel integrals only\n' - f'Fitting: sigma_y and sigma_x float freely; angle fixed at 0\u00b0;' - f' no background subtraction' + ' (fixed; one heatmap produced per offset pair)\n' + 'Background / noise: none injected; image is clean Gaussian pixel integrals only\n' + 'Fitting: sigma_y and sigma_x float freely; angle fixed at 0\u00b0;' + ' no background subtraction' ) for data, metric_title, metric_key in [ (pos_err_grid, 'Position error (Euclidean)', 'pos_err'), @@ -187,29 +187,7 @@ def _write_outputs( # CSV and JSON (all offsets together) write_csv(cfg.output_dir, _STUDY_NAME, specs, results) - groups = build_json_groups(specs, results) - write_json_summary( - cfg.output_dir, - _STUDY_NAME, - specs, - results, - groups=groups, - config_used=config_to_dict(cfg), - ) - _LOG.info('Study %s outputs written to %s', _STUDY_NAME, study_dir) - - -def build_json_groups(specs: list[TrialSpec], results: list[TrialResult]) -> list[dict[str, Any]]: - """Build JSON summary groups for Study 1, keyed by (offset_y, offset_x, box_size, sigma_y). - - Parameters: - specs: Trial specifications. - results: Trial results. - - Returns: - List of group dicts for :func:`~output.write_json_summary`. - """ - return utils.build_groups_by_keys( + groups: list[dict[str, Any]] = utils.build_groups_by_keys( specs, results, [ @@ -219,3 +197,12 @@ def build_json_groups(specs: list[TrialSpec], results: list[TrialResult]) -> lis ('sigma', lambda s: s.sigma_y), ], ) + write_json_summary( + cfg.output_dir, + _STUDY_NAME, + specs, + results, + groups=groups, + config_used=config_to_dict(cfg), + ) + _LOG.info('Study %s outputs written to %s', _STUDY_NAME, study_dir) diff --git a/src/characterize_gauss_fit/study_constraints.py b/src/characterize_gauss_fit/study_constraints.py index f678579..40c1bdb 100644 --- a/src/characterize_gauss_fit/study_constraints.py +++ b/src/characterize_gauss_fit/study_constraints.py @@ -263,11 +263,11 @@ def _write_outputs( f'PSF: sigma and angle from each shape (see legend); box_size = {study.box_size} px;' f' offset = ({study.offset[0]:+.2f}, {study.offset[1]:+.2f}) px;' f' scale = {study.scale:.2g}; one noiseless trial per (mode, shape)\n' - f'Background / noise: none injected\n' - f'Fitting: varies by x-axis mode -- "all_float" = sigma_y, sigma_x, angle all float;' - f' "sigma_fixed_*" = sigmas locked to stated value; "angle_fixed_*" = angle locked;\n' - f' "_correct" = fixed at true value; "_errors" = fixed at true value' - f' + sigma_error_frac or' + 'Background / noise: none injected\n' + 'Fitting: varies by x-axis mode -- "all_float" = sigma_y, sigma_x, angle all float;' + ' "sigma_fixed_*" = sigmas locked to stated value; "angle_fixed_*" = angle locked;\n' + ' "_correct" = fixed at true value; "_errors" = fixed at true value' + ' + sigma_error_frac or' f' + {study.angle_error_rad:.2f} rad' f' ({math.degrees(study.angle_error_rad):.0f}\u00b0)' ), @@ -276,16 +276,16 @@ def _write_outputs( write_csv(cfg.output_dir, _STUDY_NAME, specs, results) - # Precompute position index for O(1) grouping lambda access. - spec_index: dict[int, int] = {id(s): i for i, s in enumerate(specs)} - groups: list[dict[str, Any]] = utils.build_groups_by_keys( - specs, - results, - [ - ('constraint_mode_idx', lambda s: spec_index[id(s)] // n_shapes), - ('psf_shape_idx', lambda s: spec_index[id(s)] % n_shapes), - ], - ) + # Each (mode, shape) pair maps to exactly one spec at a known position. + groups: list[dict[str, Any]] = [ + { + 'constraint_mode_idx': m_idx, + 'psf_shape_idx': s_idx, + 'indices': [m_idx * n_shapes + s_idx], + } + for m_idx in range(n_modes) + for s_idx in range(n_shapes) + ] write_json_summary( cfg.output_dir, _STUDY_NAME, diff --git a/src/characterize_gauss_fit/study_hot_pixels.py b/src/characterize_gauss_fit/study_hot_pixels.py index 6fe3106..3d6c659 100644 --- a/src/characterize_gauss_fit/study_hot_pixels.py +++ b/src/characterize_gauss_fit/study_hot_pixels.py @@ -64,7 +64,7 @@ def build_specs(cfg: Config) -> list[TrialSpec]: """ study = cfg.studies.hot_pixel_rejection scale = cfg.generation.scale - noise_rms = scale / study.snr + noise_rms = utils.snr_to_noise_rms(study.snr, scale) # Build num_sigma list including null if requested. num_sigma_list = _make_num_sigma_list(study.num_sigma_with_null, study.num_sigma_values) @@ -174,7 +174,7 @@ def _write_outputs( """ study = cfg.studies.hot_pixel_rejection scale = cfg.generation.scale - noise_rms_val = scale / study.snr + noise_rms_val = utils.snr_to_noise_rms(study.snr, scale) num_sigma_list = _make_num_sigma_list(study.num_sigma_with_null, study.num_sigma_values) @@ -201,12 +201,12 @@ def _write_outputs( f'PSF: sigma_y = {study.sigma[0]:.1f}, sigma_x = {study.sigma[1]:.1f} px (fixed);' f' angle = 0\u00b0 (fixed); box_size = {study.box_size} px; scale = {scale:.2g}\n' f'Offset: Y = {study.offset[0]:+.2f}, X = {study.offset[1]:+.2f} px from pixel' - f' centre (fixed for all trials)\n' + ' centre (fixed for all trials)\n' f'Noise: Gaussian, noise_rms = {noise_rms_val:.3g} (SNR = {study.snr:.0f});' f' {study.noise_samples} independent trials per condition;' - f' hot-pixel positions randomized per trial\n' - f'Fitting: sigma_y and sigma_x float freely; angle fixed at 0\u00b0;' - f' num_sigma rejection = series label (see legend);' + ' hot-pixel positions randomized per trial\n' + 'Fitting: sigma_y and sigma_x float freely; angle fixed at 0\u00b0;' + ' num_sigma rejection = series label (see legend);' f' hot-pixel amplitude = {hot_amp:.0f}\u00d7 PSF peak (see title)' ) # --- Convergence-rate plot ------------------------------------------- diff --git a/src/characterize_gauss_fit/study_min_offset.py b/src/characterize_gauss_fit/study_min_offset.py index 5e27fb5..6ed53be 100644 --- a/src/characterize_gauss_fit/study_min_offset.py +++ b/src/characterize_gauss_fit/study_min_offset.py @@ -53,28 +53,10 @@ def _build_conditions( if study.include_noiseless: conditions.append((0.0, _NOISELESS_LABEL)) for snr_val in study.snr_values: - conditions.append((_snr_to_noise_rms(snr_val, scale), f'snr_{snr_val:.0f}')) + conditions.append((utils.snr_to_noise_rms(snr_val, scale), f'snr_{snr_val:.0f}')) return conditions -def _snr_to_noise_rms(snr: float, scale: float) -> float: - """Convert SNR (peak / noise_rms) to noise_rms. - - Parameters: - snr: Signal-to-noise ratio (PSF peak / noise std). Must be positive. - scale: PSF amplitude scale factor (determines peak value). - - Returns: - Corresponding noise standard deviation. - - Raises: - ValueError: If ``snr`` is not positive. - """ - if snr <= 0: - raise ValueError(f'snr must be > 0, got {snr}') - return scale / snr - - def build_specs(cfg: Config) -> list[TrialSpec]: """Build trial specs for Study 3. @@ -242,13 +224,13 @@ def _write_outputs( log_x=True, log_y=True, note=( - f'PSF: sigma_y = sigma_x = sigma (see series label); angle = 0\u00b0 (fixed);' + 'PSF: sigma_y = sigma_x = sigma (see series label); angle = 0\u00b0 (fixed);' f' box_size = {study.box_size} px; scale = {scale:.2g}\n' - f'Offset: Y = 0 px (fixed); X = delta (x-axis only); all positional offset' - f' is injected in the X direction\n' + 'Offset: Y = 0 px (fixed); X = delta (x-axis only); all positional offset' + ' is injected in the X direction\n' f'Noise: {noise_desc}\n' - f'Fitting: sigma_y and sigma_x float freely; angle fixed at 0\u00b0;' - f' no background subtraction' + 'Fitting: sigma_y and sigma_x float freely; angle fixed at 0\u00b0;' + ' no background subtraction' ), ) save_figure(fig, study_dir, f'{_STUDY_NAME}_{fname_prefix}_{cond_label}.png') @@ -271,14 +253,14 @@ def _write_outputs( xlabel='Injected X offset (delta, pixels)', ylabel='Sigma (pixels)', note=( - f'PSF: sigma_y = sigma_x = sigma (y-axis); angle = 0\u00b0 (fixed);' + 'PSF: sigma_y = sigma_x = sigma (y-axis); angle = 0\u00b0 (fixed);' f' box_size = {study.box_size} px; scale = {scale:.2g}\n' - f'Offset: Y = 0 px (fixed); X = delta (x-axis); all offset in X only\n' + 'Offset: Y = 0 px (fixed); X = delta (x-axis); all offset in X only\n' f'Noise: Gaussian, noise_rms = {noise_rms:.3g}' f' (SNR = {scale / noise_rms:.0f}); {study.noise_samples} trials per cell\n' - f'Fitting: sigma_y and sigma_x float freely; angle fixed at 0\u00b0;' - f' no background subtraction\n' - f'Recovery = fraction of trials where Euclidean pos_err < delta / 2' + 'Fitting: sigma_y and sigma_x float freely; angle fixed at 0\u00b0;' + ' no background subtraction\n' + 'Recovery = fraction of trials where Euclidean pos_err < delta / 2' ), ) save_figure(fig, study_dir, f'{_STUDY_NAME}_recovery_{cond_label}.png') diff --git a/src/characterize_gauss_fit/study_noise.py b/src/characterize_gauss_fit/study_noise.py index 0d8d0ed..4027474 100644 --- a/src/characterize_gauss_fit/study_noise.py +++ b/src/characterize_gauss_fit/study_noise.py @@ -65,7 +65,7 @@ def build_specs(cfg: Config) -> list[TrialSpec]: seed_counter = 7000 for snr in snr_values: - noise_rms = scale / snr + noise_rms = utils.snr_to_noise_rms(snr, scale) for sigma in study.sigmas: for _ in range(study.noise_samples): # Randomise offset uniformly in [-0.5, 0.5]. @@ -201,14 +201,14 @@ def _collect_metric_grid( log_x=True, log_y=True, note=( - f'PSF: sigma_y = sigma_x = sigma (see series label); angle = 0\u00b0 (fixed);' + 'PSF: sigma_y = sigma_x = sigma (see series label); angle = 0\u00b0 (fixed);' f' box_size = {study.box_size} px; scale = {scale:.2g}\n' - f'Offset: Y and X each drawn independently from Uniform[\u22120.5, +0.5] px' - f' per trial (different subpixel position every trial)\n' - f'Noise: Gaussian, noise_rms = scale / SNR (x-axis);' + 'Offset: Y and X each drawn independently from Uniform[\u22120.5, +0.5] px' + ' per trial (different subpixel position every trial)\n' + 'Noise: Gaussian, noise_rms = scale / SNR (x-axis);' f' {study.noise_samples} independent trials per (sigma, SNR) point\n' - f'Fitting: sigma_y and sigma_x float freely; angle fixed at 0\u00b0;' - f' no background subtraction' + 'Fitting: sigma_y and sigma_x float freely; angle fixed at 0\u00b0;' + ' no background subtraction' ), ) save_figure(fig, study_dir, f'{_STUDY_NAME}_{fname}') diff --git a/src/characterize_gauss_fit/study_offset.py b/src/characterize_gauss_fit/study_offset.py index bd4bb58..1c605df 100644 --- a/src/characterize_gauss_fit/study_offset.py +++ b/src/characterize_gauss_fit/study_offset.py @@ -13,7 +13,6 @@ import logging import pathlib from collections.abc import Callable -from typing import Any import numpy as np import numpy.typing as npt @@ -159,13 +158,13 @@ def _write_outputs( f'PSF: sigma_y = sigma_x = {sigma:.2g} px (fixed for this heatmap);' f' angle = {study.angle:.0f}\u00b0 (fixed); box_size = {study.box_size} px;' f' scale = {scale:.2g}; one noiseless trial per cell\n' - f'Offset: Y and X each swept over a' + 'Offset: Y and X each swept over a' f' {study.offset_steps}\u00d7{study.offset_steps}' f' grid from {study.offset_range[0]:.2f} to {study.offset_range[1]:.2f} px' - f' (the two heatmap axes)\n' - f'Background / noise: none injected\n' - f'Fitting: sigma_y and sigma_x float freely; angle fixed at 0\u00b0;' - f' no background subtraction' + ' (the two heatmap axes)\n' + 'Background / noise: none injected\n' + 'Fitting: sigma_y and sigma_x float freely; angle fixed at 0\u00b0;' + ' no background subtraction' ), ) save_figure(fig, study_dir, f'{_STUDY_NAME}_{fname}') @@ -218,12 +217,12 @@ def _write_outputs( note=( f'PSF: sigma_y = sigma_x = sigma (series label); angle = {study.angle:.0f}\u00b0' f' (fixed); box_size = {study.box_size} px; scale = {scale:.2g};' - f' one noiseless trial per point\n' + ' one noiseless trial per point\n' f'Offset: the fixed axis is held at its midpoint ({offsets[mid_idx]:.2f} px);' - f' the swept axis is the x-axis\n' - f'Background / noise: none injected\n' - f'Fitting: sigma_y and sigma_x float freely; angle fixed at 0\u00b0;' - f' no background subtraction' + ' the swept axis is the x-axis\n' + 'Background / noise: none injected\n' + 'Fitting: sigma_y and sigma_x float freely; angle fixed at 0\u00b0;' + ' no background subtraction' ), ) save_figure(fig, study_dir, f'{_STUDY_NAME}_{fname_line}') @@ -244,20 +243,3 @@ def _write_outputs( config_used=config_to_dict(cfg), ) _LOG.info('Study %s outputs written to %s', _STUDY_NAME, study_dir) - - -def build_json_groups(specs: list[TrialSpec], results: list[TrialResult]) -> list[dict[str, Any]]: - """Build JSON summary groups for Study 2. - - Parameters: - specs: Trial specifications. - results: Trial results. - - Returns: - List of group dicts for :func:`~output.write_json_summary`. - """ - return utils.build_groups_by_keys( - specs, - results, - _GROUP_KEYS, - ) diff --git a/src/characterize_gauss_fit/study_shape.py b/src/characterize_gauss_fit/study_shape.py index 935b740..8be7e80 100644 --- a/src/characterize_gauss_fit/study_shape.py +++ b/src/characterize_gauss_fit/study_shape.py @@ -182,15 +182,15 @@ def _write_outputs( note=( f'PSF: sigma_x = {sigma_x:.2g} px (this panel); sigma_y = ratio \u00d7 sigma_x' f' (y-axis); angle rotates 0\u2013180\u00b0 (x-axis); scale = {scale:.2g};' - f' one noiseless trial per cell\n' + ' one noiseless trial per cell\n' f'Offset: Y = {study.offset[0]:+.2f}, X = {study.offset[1]:+.2f} px' - f' from pixel centre (fixed for all cells)\n' - f'Background / noise: none injected\n' - f'Fitting: sigma_y, sigma_x, and angle ALL float freely;' - f' no background subtraction\n' - f'Angle error is reduced mod 90\u00b0: (sigma_y,sigma_x,\u03b8) \u2261' - f' (sigma_x,sigma_y,\u03b8+90\u00b0) so raw error \u2248 90\u00b0 means' - f' a perfect fit in the swapped-sigma form' + ' from pixel centre (fixed for all cells)\n' + 'Background / noise: none injected\n' + 'Fitting: sigma_y, sigma_x, and angle ALL float freely;' + ' no background subtraction\n' + 'Angle error is reduced mod 90\u00b0: (sigma_y,sigma_x,\u03b8) \u2261' + ' (sigma_x,sigma_y,\u03b8+90\u00b0) so raw error \u2248 90\u00b0 means' + ' a perfect fit in the swapped-sigma form' ), ) save_figure(fig, study_dir, f'{_STUDY_NAME}_{fname_prefix}_sx{sigma_x:.1f}.png') diff --git a/src/characterize_gauss_fit/trial.py b/src/characterize_gauss_fit/trial.py index 8a3263f..47d8c10 100644 --- a/src/characterize_gauss_fit/trial.py +++ b/src/characterize_gauss_fit/trial.py @@ -322,6 +322,9 @@ def run_trial(spec: TrialSpec) -> TrialResult: 'max_bad_frac': spec.max_bad_frac, 'allow_nonzero_base': spec.allow_nonzero_base, 'use_angular_params': spec.use_angular_params, + # Uncertainty estimates (y_err, x_err, …) are not used by TrialResult; + # skipping the Jacobian roughly halves cost in batch runs. + 'compute_uncertainty': False, 'tolerance': spec.tolerance, 'search_limit': spec.search_limit, 'scale_limit': spec.scale_limit, diff --git a/src/psfmodel/gaussian.py b/src/psfmodel/gaussian.py index 3ca8813..c8f1b8e 100755 --- a/src/psfmodel/gaussian.py +++ b/src/psfmodel/gaussian.py @@ -11,7 +11,7 @@ """ import logging -from typing import cast +from typing import Any, cast import numpy as np import numpy.typing as npt @@ -626,10 +626,9 @@ def eval_pixel( ) return ret - # Intentional override of :meth:`PSF._eval_rect`: ``rect_size`` / ``offset`` are - # narrowed to ``tuple``, Gaussian-specific keyword-only arguments are added, and the - # return type is ``np.floating``; call sites from the base class remain compatible. - def _eval_rect( # type: ignore[override] + # Intentional override of :meth:`PSF._eval_rect`: Gaussian-specific keyword-only + # arguments are added while the parameter and return types match the base class. + def _eval_rect( self, rect_size: tuple[int, int], offset: tuple[float, float] = (0.5, 0.5), @@ -640,7 +639,8 @@ def _eval_rect( # type: ignore[override] sigma_y: float | None = None, sigma_x: float | None = None, angle: float | None = None, - ) -> npt.NDArray[np.floating]: + **kwargs: Any, + ) -> npt.NDArray[np.float64]: """Pixel-integrated Gaussian on a rectangle (same grid as :meth:`eval_rect`). Parameters: @@ -678,18 +678,18 @@ def _eval_rect( # type: ignore[override] sigma_x=sigma_x, angle=angle, ) - rect = cast(npt.NDArray[np.floating], rect) + rect = cast(npt.NDArray[np.float64], rect) rect = rect.reshape(rect_size) return rect # Same rationale as :meth:`_eval_rect` above: extends :meth:`PSF.eval_rect` with - # Gaussian kwargs and concrete tuple types while delegating to - # :meth:`PSF._eval_rect_smeared`. - def eval_rect( # type: ignore[override] + # Gaussian kwargs while accepting the same ``rect_size`` / ``offset`` types as the + # base and delegating to :meth:`PSF._eval_rect_smeared`. + def eval_rect( self, - rect_size: tuple[int, int], - offset: tuple[float, float] = (0.5, 0.5), + rect_size: list[int] | tuple[int, int], + offset: list[float] | tuple[float, float] = (0.5, 0.5), *, movement: tuple[float, float] | None = None, movement_granularity: float = 0.1, @@ -699,7 +699,8 @@ def eval_rect( # type: ignore[override] sigma_y: float | None = None, sigma_x: float | None = None, angle: float | None = None, - ) -> npt.NDArray[np.floating]: + **kwargs: Any, + ) -> npt.NDArray[np.float64]: """Create a rectangular pixelated Gaussian PSF. This is done by evaluating the PSF function from @@ -745,8 +746,8 @@ def eval_rect( # type: ignore[override] ) return self._eval_rect_smeared( - rect_size, - offset=offset, + (rect_size_y, rect_size_x), + offset=(offset[0], offset[1]), movement=movement, movement_granularity=movement_granularity, scale=scale, diff --git a/src/psfmodel/psf.py b/src/psfmodel/psf.py index 3fa190e..8a6fe71 100755 --- a/src/psfmodel/psf.py +++ b/src/psfmodel/psf.py @@ -211,6 +211,7 @@ def _eval_rect( *, scale: float = 1.0, base: float = 0.0, + **kwargs: Any, ) -> npt.NDArray[np.float64]: """Pixel-integrated rectangular PSF; internal counterpart to :meth:`eval_rect`. @@ -248,7 +249,7 @@ def _eval_rect_smeared( scale: float = 1.0, base: float = 0.0, **kwargs: Any, - ) -> npt.NDArray[np.floating]: + ) -> npt.NDArray[np.float64]: """Evaluate and sum a PSF multiple times to simulate motion blur. Parameters: @@ -373,7 +374,7 @@ def background_gradient_fit( debug: bool = False, *, logger: logging.Logger | None = None, - ) -> tuple[npt.NDArray[np.float64] | None, npt.NDArray[np.float64] | None]: + ) -> tuple[npt.NDArray[np.float64] | None, npt.NDArray[np.bool_] | None]: """Return the polynomial fit to the pixels of an image. Parameters: @@ -446,7 +447,7 @@ def background_gradient_fit( a3d = PSF._background_gradient_coeffs(shape, order) if num_sigma is not None: - num_bad_pixels = cast(int, ma.count_masked(image)) # type: ignore + num_bad_pixels = cast(int, ma.count_masked(image)) # type: ignore[no-untyped-call] if debug: # pragma: no cover fit_logger.debug( 'Background gradient fit: initial masked pixel count %s', num_bad_pixels @@ -459,7 +460,7 @@ def background_gradient_fit( if is_masked: # linalg doesn't support masked arrays! - a2d = a2d[~b1d.mask] # type: ignore + a2d = a2d[~cast(npt.NDArray[np.bool_], ma.getmaskarray(b1d))] b1d = ma.compressed(b1d) if a2d.shape[0] < a2d.shape[1]: # Underconstrained @@ -496,7 +497,7 @@ def background_gradient_fit( outlier_mask = ma.filled(ma.abs(delta_img) >= threshold, False) image[outlier_mask] = ma.masked - new_num_bad_pixels = cast(int, ma.count_masked(image)) # type: ignore + new_num_bad_pixels = cast(int, ma.count_masked(image)) # type: ignore[no-untyped-call] if debug: # pragma: no cover fit_logger.debug( 'Background gradient fit: masked pixel count now %s', new_num_bad_pixels @@ -506,7 +507,7 @@ def background_gradient_fit( num_bad_pixels = new_num_bad_pixels if is_masked: - return coeffts, ma.getmaskarray(image) # type: ignore + return coeffts, ma.getmaskarray(image) else: return coeffts, np.zeros(shape, dtype=np.bool_) @@ -559,6 +560,7 @@ def find_position( allow_nonzero_base: bool = False, scale_limit: float = 1000.0, use_angular_params: bool = True, + compute_uncertainty: bool = True, ) -> None | tuple[float, float, dict[str, Any]]: """Find the (y, x) coordinates that best fit a 2-D PSF to an image. @@ -593,6 +595,13 @@ def find_position( in the positive direction. scale_limit: The maximum PSF scale allowed. use_angular_params: Use angles to optimize parameter values. + compute_uncertainty: If True (default), compute 1-sigma parameter + uncertainties via a finite-difference Jacobian after the fit. This + requires one additional forward-model evaluation per free parameter, + roughly doubling total cost for a typical 3-parameter fit. Set to + False in hot loops (e.g. batch characterization runs) when the + ``x_err``, ``y_err``, ``scale_err``, and ``base_err`` metadata + entries are not needed; they will be ``NaN`` when skipped. Returns: None if no fit found. @@ -671,7 +680,8 @@ def find_position( self._logger.info( 'find_position: bkgnd_degree=%s bkgnd_ignore_center=%s ' 'bkgnd_num_sigma=%s tolerance=%s num_sigma=%s max_bad_frac=%s ' - 'allow_nonzero_base=%s scale_limit=%s use_angular_params=%s', + 'allow_nonzero_base=%s scale_limit=%s use_angular_params=%s ' + 'compute_uncertainty=%s', bkgnd_degree, bkgnd_ignore_center, bkgnd_num_sigma, @@ -681,6 +691,7 @@ def find_position( allow_nonzero_base, scale_limit, use_angular_params, + compute_uncertainty, ) # Too close to the edge means we can't search @@ -732,6 +743,7 @@ def find_position( tolerance, allow_nonzero_base, use_angular_params, + compute_uncertainty, ) if ret is None: if self.detailed_logging: @@ -753,7 +765,7 @@ def find_position( if num_sigma is not None: sub_img[np.where(resid > num_sigma * resid_std)] = ma.masked - new_num_bad_pixels = ma.count_masked(sub_img) # type: ignore + new_num_bad_pixels = cast(int, ma.count_masked(sub_img)) # type: ignore[no-untyped-call] if new_num_bad_pixels == num_bad_pixels: break if new_num_bad_pixels == sub_img.size: @@ -892,6 +904,7 @@ def _find_position( tolerance: float, allow_nonzero_base: bool, use_angular_params: bool, + compute_uncertainty: bool, ) -> None | tuple[float, float, dict[str, Any]]: """Fit PSF position and shape on a fixed subimage via bounded Powell optimization. @@ -932,6 +945,10 @@ def _find_position( additional parameters via angles in ``[0, pi]`` so box constraints map to physical ranges. If ``False``, use direct bounded parameters (offsets within ``search_limit``, etc.). + compute_uncertainty: If ``True``, compute 1-sigma uncertainties via a + finite-difference Jacobian (one extra forward-model call per free + parameter). If ``False``, all ``*_err`` entries in ``details`` are + ``NaN`` and the Jacobian is skipped. Returns: ``None`` if the background fit fails (:meth:`background_gradient_fit` returns @@ -1105,104 +1122,106 @@ def _find_position( # Residuals between the background-subtracted data and the fitted model, # restricted to unmasked pixels, are the basis for all quality metrics and # uncertainty estimates. - _diff = sub_img_grad - psf - if isinstance(_diff, ma.MaskedArray): - _resid_flat = ma.compressed(_diff).astype(np.float64) + diff = sub_img_grad - psf + if isinstance(diff, ma.MaskedArray): + resid_flat = ma.compressed(diff).astype(np.float64) else: - _resid_flat = _diff.flatten().astype(np.float64) + resid_flat = diff.flatten().astype(np.float64) - _n_valid = int(_resid_flat.size) - _n_params_fit = 3 + int(allow_nonzero_base) + len(self._additional_params) - _rss = float(np.dot(_resid_flat, _resid_flat)) - if _n_valid <= _n_params_fit: + n_valid = int(resid_flat.size) + n_params_fit = 3 + int(allow_nonzero_base) + len(self._additional_params) + rss = float(np.dot(resid_flat, resid_flat)) + if n_valid <= n_params_fit: self._logger.warning( 'find_position: underconstrained fit (%d valid pixels, %d fitted parameters);' ' reduced_chi2 set to NaN', - _n_valid, - _n_params_fit, + n_valid, + n_params_fit, ) - _reduced_chi2 = float('nan') + reduced_chi2 = float('nan') else: - _dof = _n_valid - _n_params_fit - _reduced_chi2 = _rss / _dof - _noise_rms = float(np.sqrt(_rss / _n_valid)) if _n_valid > 0 else 0.0 - _peak_snr = float(scale / _noise_rms) if _noise_rms > 0.0 else 0.0 + dof = n_valid - n_params_fit + reduced_chi2 = rss / dof + noise_rms = float(np.sqrt(rss / n_valid)) if n_valid > 0 else 0.0 + peak_snr = float(scale / noise_rms) if noise_rms > 0.0 else 0.0 - details['residual_rss'] = _rss - details['reduced_chi2'] = _reduced_chi2 - details['noise_rms'] = _noise_rms - details['peak_snr'] = _peak_snr + details['residual_rss'] = rss + details['reduced_chi2'] = reduced_chi2 + details['noise_rms'] = noise_rms + details['peak_snr'] = peak_snr # --- Parameter uncertainties via finite-difference Jacobian --- # Physical parameter vector in canonical order: # [offset_y, offset_x, scale, (base if allow_nonzero_base), *additional...] - _phys: list[float] = [float(offset_y), float(offset_x), float(scale)] + phys: list[float] = [float(offset_y), float(offset_x), float(scale)] if allow_nonzero_base: - _phys.append(float(base)) - for _ap in self._additional_params: - _phys.append(float(addl_vals_dict[_ap[2]])) - - _n_phys = len(_phys) - - # Build the residual vector at an arbitrary physical-parameter point, applying - # the same masking as the final fit so the Jacobian is consistent. - def _residuals_at_phys(phys: list[float]) -> npt.NDArray[np.float64]: - _oy = phys[0] - _ox = phys[1] - _sc = phys[2] - _bs = phys[3] if allow_nonzero_base else 0.0 - _start = 4 if allow_nonzero_base else 3 - _extra: dict[str, Any] = { - _ap2[2]: phys[_start + _i2] for _i2, _ap2 in enumerate(self._additional_params) - } - _model = self.eval_rect( - cast(tuple[int, int], sub_img_grad.shape), - (_oy, _ox), - scale=_sc, - base=_bs, - **_extra, - ) - _d = sub_img_grad - _model - if isinstance(_d, ma.MaskedArray): - return ma.compressed(_d).astype(np.float64) - return _d.flatten().astype(np.float64) - - # Forward-difference Jacobian of the residual vector in physical space. - if _n_valid == 0: - # No valid pixels: uncertainties are undefined. - _cov = np.full((_n_phys, _n_phys), np.nan) - _uncertainties = np.full(_n_phys, np.nan) + phys.append(float(base)) + for ap in self._additional_params: + phys.append(float(addl_vals_dict[ap[2]])) + + n_phys = len(phys) + + if not compute_uncertainty: + uncertainties = np.full(n_phys, np.nan) else: - _jac = np.zeros((_n_valid, _n_phys), dtype=np.float64) - for _col in range(_n_phys): - _val = _phys[_col] - _eps = max(abs(_val) * _JACO_REL_EPS, _JACO_ABS_EPS) - _phys_plus = list(_phys) - _phys_plus[_col] += _eps - _r_plus = _residuals_at_phys(_phys_plus) - _jac[:, _col] = (_r_plus - _resid_flat) / _eps - - # Covariance = reduced_chi2 * (J^T J)^{-1}; use lstsq for robustness when - # J^T J is ill-conditioned (e.g. underconstrained fits). - _jtj = _jac.T @ _jac - _cov_raw, _, _, _ = np.linalg.lstsq(_jtj, np.eye(_n_phys), rcond=None) - _cov = _cov_raw * _reduced_chi2 - - # Diagonal 1-sigma uncertainties; negative variances (numerical noise) are - # clamped to zero before taking the square root. - _uncertainties = np.sqrt(np.maximum(np.diag(_cov), 0.0)) - - details['y_err'] = float(_uncertainties[0]) - details['x_err'] = float(_uncertainties[1]) - details['scale_err'] = float(_uncertainties[2]) - _u_start = 3 + # Build the residual vector at an arbitrary physical-parameter point, + # applying the same masking as the final fit so the Jacobian is consistent. + def residuals_at_phys(params: list[float]) -> npt.NDArray[np.float64]: + oy = params[0] + ox = params[1] + sc = params[2] + bs = params[3] if allow_nonzero_base else 0.0 + start = 4 if allow_nonzero_base else 3 + extra: dict[str, Any] = { + ap2[2]: params[start + i2] for i2, ap2 in enumerate(self._additional_params) + } + model = self.eval_rect( + cast(tuple[int, int], sub_img_grad.shape), + (oy, ox), + scale=sc, + base=bs, + **extra, + ) + d = sub_img_grad - model + if isinstance(d, ma.MaskedArray): + return ma.compressed(d).astype(np.float64) + return d.flatten().astype(np.float64) + + # Forward-difference Jacobian of the residual vector in physical space. + if n_valid == 0: + # No valid pixels: uncertainties are undefined. + uncertainties = np.full(n_phys, np.nan) + else: + jac = np.zeros((n_valid, n_phys), dtype=np.float64) + for col in range(n_phys): + val = phys[col] + eps = max(abs(val) * _JACO_REL_EPS, _JACO_ABS_EPS) + phys_plus = list(phys) + phys_plus[col] += eps + r_plus = residuals_at_phys(phys_plus) + jac[:, col] = (r_plus - resid_flat) / eps + + # Covariance = reduced_chi2 * (J^T J)^{-1}; use lstsq for robustness + # when J^T J is ill-conditioned (e.g. underconstrained fits). + jtj = jac.T @ jac + cov_raw, _, _, _ = np.linalg.lstsq(jtj, np.eye(n_phys), rcond=None) + cov = cov_raw * reduced_chi2 + + # Diagonal 1-sigma uncertainties; negative variances (numerical noise) + # are clamped to zero before taking the square root. + uncertainties = np.sqrt(np.maximum(np.diag(cov), 0.0)) + + details['y_err'] = float(uncertainties[0]) + details['x_err'] = float(uncertainties[1]) + details['scale_err'] = float(uncertainties[2]) + u_start = 3 if allow_nonzero_base: - details['base_err'] = float(_uncertainties[3]) - _u_start = 4 + details['base_err'] = float(uncertainties[3]) + u_start = 4 else: details['base_err'] = 0.0 - for _i, _ap in enumerate(self._additional_params): - details[_ap[2] + '_err'] = float(_uncertainties[_u_start + _i]) + for i, ap in enumerate(self._additional_params): + details[ap[2] + '_err'] = float(uncertainties[u_start + i]) for key in addl_vals_dict: details[key] = addl_vals_dict[key] diff --git a/tests/test_find_position.py b/tests/test_find_position.py index 8e7adc7..cba4f13 100644 --- a/tests/test_find_position.py +++ b/tests/test_find_position.py @@ -301,3 +301,115 @@ def test_find_position_uncertainty_decreases_with_snr() -> None: assert ret_high is not None assert ret_low[2]['x_err'] > ret_high[2]['x_err'] assert ret_low[2]['y_err'] > ret_high[2]['y_err'] + + +# --------------------------------------------------------------------------- +# compute_uncertainty flag tests +# --------------------------------------------------------------------------- + + +def test_find_position_compute_uncertainty_false_err_keys_are_nan( + default_psf: GaussianPSF, +) -> None: + """With ``compute_uncertainty=False``, ``x_err``, ``y_err``, and ``scale_err`` are NaN.""" + + img = default_psf.eval_rect((21, 21), scale=2.0, sigma=(1.0, 1.0)) + ret = default_psf.find_position( + img, img.shape, (10, 10), bkgnd_degree=None, num_sigma=0, compute_uncertainty=False + ) + assert ret is not None + _, _, details = ret + assert np.isnan(details['x_err']) + assert np.isnan(details['y_err']) + assert np.isnan(details['scale_err']) + + +def test_find_position_compute_uncertainty_false_position_and_metrics_unchanged( + default_psf: GaussianPSF, +) -> None: + """Skipping uncertainty does not affect the fitted position or quality metrics.""" + + img = default_psf.eval_rect((21, 21), scale=2.0, sigma=(1.0, 1.0)) + ret_with = default_psf.find_position( + img, img.shape, (10, 10), bkgnd_degree=None, num_sigma=0, compute_uncertainty=True + ) + ret_without = default_psf.find_position( + img, img.shape, (10, 10), bkgnd_degree=None, num_sigma=0, compute_uncertainty=False + ) + assert ret_with is not None + assert ret_without is not None + + y_with, x_with, d_with = ret_with + y_without, x_without, d_without = ret_without + + assert y_without == pytest.approx(y_with) + assert x_without == pytest.approx(x_with) + for key in ('residual_rss', 'reduced_chi2', 'noise_rms', 'peak_snr'): + assert d_without[key] == pytest.approx(d_with[key]) + + +def test_find_position_compute_uncertainty_false_base_fixed_base_err_zero( + default_psf: GaussianPSF, +) -> None: + """``base_err`` is 0.0 when base is not a free parameter, regardless of the flag.""" + + img = default_psf.eval_rect((21, 21), scale=2.0, sigma=(1.0, 1.0)) + ret = default_psf.find_position( + img, + img.shape, + (10, 10), + bkgnd_degree=None, + num_sigma=0, + allow_nonzero_base=False, + compute_uncertainty=False, + ) + assert ret is not None + assert ret[2]['base_err'] == 0.0 + + +def test_find_position_compute_uncertainty_false_free_base_err_nan() -> None: + """``base_err`` is NaN when ``allow_nonzero_base=True`` and ``compute_uncertainty=False``.""" + + psf = GaussianPSF(sigma=(1.0, 1.0)) + img = psf.eval_rect((21, 21), scale=2.0) + ret = psf.find_position( + img, + img.shape, + (10, 10), + bkgnd_degree=None, + num_sigma=0, + allow_nonzero_base=True, + compute_uncertainty=False, + ) + assert ret is not None + assert np.isnan(ret[2]['base_err']) + + +def test_find_position_compute_uncertainty_false_additional_param_errs_nan() -> None: + """``sigma_y_err`` and ``sigma_x_err`` are NaN when ``compute_uncertainty=False``.""" + + psf = GaussianPSF( + sigma=(None, None), + sigma_y_range=(0.5, 3.0), + sigma_x_range=(0.5, 3.0), + ) + img = psf.eval_rect((21, 21), scale=2.0, sigma=(1.5, 1.5)) + ret = psf.find_position( + img, img.shape, (10, 10), bkgnd_degree=None, num_sigma=0, compute_uncertainty=False + ) + assert ret is not None + _, _, details = ret + assert np.isnan(details['sigma_y_err']) + assert np.isnan(details['sigma_x_err']) + + +def test_find_position_compute_uncertainty_default_is_true(default_psf: GaussianPSF) -> None: + """The default (no ``compute_uncertainty`` kwarg) produces finite ``x_err`` and ``y_err``.""" + + img = default_psf.eval_rect((21, 21), scale=2.0, sigma=(1.0, 1.0)) + ret = default_psf.find_position(img, img.shape, (10, 10), bkgnd_degree=None, num_sigma=0) + assert ret is not None + _, _, details = ret + assert np.isfinite(details['x_err']) + assert np.isfinite(details['y_err']) + assert np.isfinite(details['scale_err']) From a9fd71d1f85c365cd1925e88fca0d2f54b8c465a Mon Sep 17 00:00:00 2001 From: Robert French Date: Wed, 15 Apr 2026 10:10:27 -0700 Subject: [PATCH 13/17] CR comments --- src/characterize_gauss_fit/config.py | 31 ++++++++++++- src/characterize_gauss_fit/output.py | 20 ++++++++ src/characterize_gauss_fit/plotting.py | 4 +- src/psfmodel/psf.py | 60 ++++++++++++++++++------ tests/test_find_position.py | 63 +++++++++++++++++--------- tests/test_gaussian.py | 58 ++++++++++++++++++++---- 6 files changed, 189 insertions(+), 47 deletions(-) diff --git a/src/characterize_gauss_fit/config.py b/src/characterize_gauss_fit/config.py index e06546e..05cf61a 100644 --- a/src/characterize_gauss_fit/config.py +++ b/src/characterize_gauss_fit/config.py @@ -575,11 +575,40 @@ def _check_box_size(field: str, bs: int) -> None: if ratio <= 0: raise ValueError(f'sigma_asymmetry_angle.sigma_ratios: must be positive, got {ratio}') - for shape in cfg.studies.constraint_modes.psf_shapes: + cm = cfg.studies.constraint_modes + if len(cm.psf_shapes) == 0: + raise ValueError('constraint_modes.psf_shapes must contain at least one entry') + for shape in cm.psf_shapes: + if shape.sigma[0] <= 0 or shape.sigma[1] <= 0: + raise ValueError( + f'constraint_modes.psf_shapes: sigma values must be positive, got {shape.sigma}' + ) if not (0.0 <= shape.angle <= math.pi): raise ValueError( f'constraint_modes.psf_shapes: angle must be in [0, pi], got {shape.angle}' ) + cmf = cm.fitting + if not (0.0 <= cmf.max_bad_frac <= 1.0): + raise ValueError( + f'constraint_modes.fitting.max_bad_frac must be in [0, 1], got {cmf.max_bad_frac}' + ) + if cmf.num_sigma is not None and cmf.num_sigma <= 0: + raise ValueError( + f'constraint_modes.fitting.num_sigma must be None or > 0, got {cmf.num_sigma}' + ) + if cmf.bkgnd_num_sigma is not None and cmf.bkgnd_num_sigma <= 0: + raise ValueError( + 'constraint_modes.fitting.bkgnd_num_sigma must be None or > 0, ' + f'got {cmf.bkgnd_num_sigma}' + ) + if cmf.search_limit[0] < 0 or cmf.search_limit[1] < 0: + raise ValueError( + f'constraint_modes.fitting.search_limit values must be >= 0, got {cmf.search_limit}' + ) + if cmf.scale_limit < 0: + raise ValueError( + f'constraint_modes.fitting.scale_limit must be >= 0, got {cmf.scale_limit}' + ) valid_bkgnd_types = {'none', 'constant', 'linear', 'quadratic', 'noisy_constant'} for bt in cfg.studies.background.background_types: diff --git a/src/characterize_gauss_fit/output.py b/src/characterize_gauss_fit/output.py index 73ad364..c628eae 100644 --- a/src/characterize_gauss_fit/output.py +++ b/src/characterize_gauss_fit/output.py @@ -29,6 +29,7 @@ _CSV_COLUMNS: list[str] = [ # Study-level context 'study', + 'rng_seed', # Input: geometry 'box_size', 'sigma_y_true', @@ -37,6 +38,7 @@ 'offset_y_true', 'offset_x_true', 'scale_true', + 'base', # Input: fitter construction 'fit_sigma_y', 'fit_sigma_x', @@ -51,8 +53,16 @@ # Input: fitting kwargs 'bkgnd_degree', 'num_sigma', + 'bkgnd_num_sigma', 'bkgnd_ignore_center_y', 'bkgnd_ignore_center_x', + 'max_bad_frac', + 'allow_nonzero_base', + 'use_angular_params', + 'tolerance', + 'search_limit_lo', + 'search_limit_hi', + 'scale_limit', # Outcome 'converged', # Position errors @@ -108,6 +118,7 @@ def _result_row( """ row: dict[str, str] = dict.fromkeys(_CSV_COLUMNS, '') row['study'] = study + row['rng_seed'] = str(spec.rng_seed) row['box_size'] = str(spec.box_size) row['sigma_y_true'] = repr(spec.sigma_y) row['sigma_x_true'] = repr(spec.sigma_x) @@ -115,6 +126,7 @@ def _result_row( row['offset_y_true'] = repr(spec.offset_y) row['offset_x_true'] = repr(spec.offset_x) row['scale_true'] = repr(spec.scale) + row['base'] = repr(spec.base) row['fit_sigma_y'] = _float_cell(spec.fit_sigma_y) row['fit_sigma_x'] = _float_cell(spec.fit_sigma_x) row['fit_angle'] = _float_cell(spec.fit_angle) @@ -125,8 +137,16 @@ def _result_row( row['hot_pixel_amplitude'] = repr(spec.hot_pixel_amplitude) row['bkgnd_degree'] = '' if spec.bkgnd_degree is None else str(spec.bkgnd_degree) row['num_sigma'] = _float_cell(spec.num_sigma) + row['bkgnd_num_sigma'] = _float_cell(spec.bkgnd_num_sigma) row['bkgnd_ignore_center_y'] = str(spec.bkgnd_ignore_center[0]) row['bkgnd_ignore_center_x'] = str(spec.bkgnd_ignore_center[1]) + row['max_bad_frac'] = repr(spec.max_bad_frac) + row['allow_nonzero_base'] = 'true' if spec.allow_nonzero_base else 'false' + row['use_angular_params'] = 'true' if spec.use_angular_params else 'false' + row['tolerance'] = repr(spec.tolerance) + row['search_limit_lo'] = repr(spec.search_limit[0]) + row['search_limit_hi'] = repr(spec.search_limit[1]) + row['scale_limit'] = repr(spec.scale_limit) row['converged'] = 'true' if result.converged else 'false' row['pos_err_y'] = _float_cell(result.pos_err_y) row['pos_err_x'] = _float_cell(result.pos_err_x) diff --git a/src/characterize_gauss_fit/plotting.py b/src/characterize_gauss_fit/plotting.py index 093805f..db3754a 100644 --- a/src/characterize_gauss_fit/plotting.py +++ b/src/characterize_gauss_fit/plotting.py @@ -298,7 +298,9 @@ def plot_grouped_bars( ax.set_title(title) ax.legend(fontsize=8) if log_scale: - ax.set_yscale('log') + float_vals = values.astype(float) + if (np.isfinite(float_vals) & (float_vals > 0)).any(): + ax.set_yscale('log') ax.grid(visible=True, axis='y', alpha=0.3) return fig diff --git a/src/psfmodel/psf.py b/src/psfmodel/psf.py index 8a6fe71..02c7958 100755 --- a/src/psfmodel/psf.py +++ b/src/psfmodel/psf.py @@ -609,10 +609,15 @@ def find_position( Otherwise returns pos_y, pos_x, metadata. Metadata is a dictionary containing:: - 'x' The offset in X. (Same as pos_x) + 'x' Full-image X coordinate of fitted position + (same as pos_x). 'x_err' 1-sigma uncertainty in X (pixels). - 'y' The offset in Y. (Same as pos_y) + 'y' Full-image Y coordinate of fitted position + (same as pos_y). 'y_err' 1-sigma uncertainty in Y (pixels). + '_local_x' Subimage-relative X offset (offset from the + center of the cropped subimage). + '_local_y' Subimage-relative Y offset. 'scale' The best fit PSF scale. 'scale_err' 1-sigma uncertainty in PSF scale. 'base' The best fit PSF base. @@ -653,6 +658,14 @@ def find_position( f'box_size must have odd positive shape in each dimension, got {box_size}' ) + if num_sigma is not None: + if not isinstance(num_sigma, (int, float)): + raise TypeError( + f'num_sigma must be a number or None, got {type(num_sigma).__name__}' + ) + if num_sigma <= 0: + raise ValueError(f'num_sigma must be > 0, got {num_sigma}') + half_box_size_y = box_size[0] // 2 half_box_size_x = box_size[1] // 2 @@ -721,7 +734,7 @@ def find_position( if not isinstance(search_limit, (list, tuple)): search_limit = (float(search_limit), float(search_limit)) - if num_sigma: + if num_sigma is not None: if isinstance(sub_img, ma.MaskedArray): # We're going to change the mask so make a copy first sub_img = sub_img.copy() @@ -752,10 +765,10 @@ def find_position( res_y, res_x, details = ret - if not num_sigma: + if num_sigma is None: break - resid = np.sqrt((details['subimg-gradient'] - details['scaled_psf']) ** 2) + resid = details['subimg-gradient'] - details['scaled_psf'] resid_std = np.std(resid) if self.detailed_logging: @@ -763,7 +776,7 @@ def find_position( self._logger.debug('find_position: resid_std=%s', resid_std) if num_sigma is not None: - sub_img[np.where(resid > num_sigma * resid_std)] = ma.masked + sub_img[np.where(np.abs(resid) > num_sigma * resid_std)] = ma.masked new_num_bad_pixels = cast(int, ma.count_masked(sub_img)) # type: ignore[no-untyped-call] if new_num_bad_pixels == num_bad_pixels: @@ -778,10 +791,18 @@ def find_position( return None # Too many masked num_bad_pixels = new_num_bad_pixels + # Promote subimage-relative offsets to full-image coordinates so that + # details['x']/details['y'] match the returned pos_x/pos_y values, as + # documented. Preserve the local offsets for any internal diagnostics. + details['_local_y'] = details['y'] + details['_local_x'] = details['x'] + details['y'] = res_y + starting_pix[0] + details['x'] = res_x + starting_pix[1] + if self.detailed_logging: - msg = f'find_position returning Y {res_y + starting_pix[0]:.4f}' + msg = f'find_position returning Y {details["y"]:.4f}' msg += f' +/- {details["y_err"]:.4f}' - msg += f' X {res_x + starting_pix[1]:.4f}' + msg += f' X {details["x"]:.4f}' msg += f' +/- {details["x_err"]:.4f}' if details['scale'] is not None: msg += f' Scale {details["scale"]:.4f} Base {details["base"]:.4f}' @@ -789,7 +810,7 @@ def find_position( msg += f' SY {details["sigma_y"]:.4f} SX {details["sigma_x"]:.4f}' self._logger.info(msg) - return res_y + starting_pix[0], res_x + starting_pix[1], details + return details['y'], details['x'], details def _fit_psf_func( self, @@ -819,9 +840,11 @@ def _fit_psf_func( scale_limit: Upper bound on PSF ``scale`` for :meth:`eval_rect`. allow_nonzero_base: If ``True``, ``params`` includes a fitted constant ``base`` passed to :meth:`eval_rect`; if ``False``, ``base`` is zero. - use_angular_params: If ``True``, map bounded angles to offsets, scale, extras, - and optional ``base``; if ``False``, ``params`` are physical values within - bounds set by the caller. + use_angular_params: If ``True``, map bounded angles to offsets, scale, and + extra PSF parameters; ``base`` (when ``allow_nonzero_base`` is ``True``) + always uses direct physical bounds regardless of this flag, because its + physical range is unbounded and cannot be cosine-mapped. If ``False``, + all ``params`` are physical values within their respective bounds. additional_params: Zero or more ``(lo, hi, name)`` tuples giving bounds and keyword names for subclass-specific :meth:`eval_rect` arguments. @@ -860,6 +883,9 @@ def _fit_psf_func( base = 0.0 param_end = 3 if allow_nonzero_base: + # Direct physical decode regardless of use_angular_params: base uses + # physical optimizer bounds in both modes (not [0, pi]), so params[3] + # is a physical baseline value and needs no cosine remapping. base = params[3] param_end = 4 @@ -1016,8 +1042,11 @@ def _find_position( bounds = [(0.0, np.pi), (0.0, np.pi), (0.0, np.pi)] starting_guess = [np.pi / 2, np.pi / 2, np.pi / 2] if allow_nonzero_base: - bounds += [(0.0, np.pi)] - starting_guess += [np.pi / 2] + # base has no finite physical range, so it cannot be cosine-mapped + # like the other angular parameters. Use direct physical bounds in + # both modes so params[3] always holds a physical base value. + bounds += [(_FIT_PSF_BASE_BOUND_MIN, _FIT_PSF_BASE_BOUND_MAX)] + starting_guess += [0.001] for _ in range(len(self._additional_params)): bounds += [(0.0, np.pi)] starting_guess += [np.pi / 2] @@ -1086,6 +1115,9 @@ def _find_position( base = 0.0 result_end = 3 if allow_nonzero_base: + # Direct physical decode regardless of use_angular_params: base uses + # physical bounds in both modes (see bounds setup above), so result[3] + # is already a physical baseline value, not an angular parameter. base = result[3] result_end = 4 diff --git a/tests/test_find_position.py b/tests/test_find_position.py index cba4f13..7c7b193 100644 --- a/tests/test_find_position.py +++ b/tests/test_find_position.py @@ -22,12 +22,31 @@ def test_find_position_invalid_box_size_raises() -> None: img = np.zeros((21, 21)) for box in ((4, 5), (5, 4), (-1, 5), (5, -1)): with pytest.raises(ValueError) as exc_info: - psf.find_position(img, box, (10, 10), bkgnd_degree=None, num_sigma=0) + psf.find_position(img, box, (10, 10), bkgnd_degree=None, num_sigma=None) assert str(exc_info.value) == ( f'box_size must have odd positive shape in each dimension, got {box}' ) +def test_find_position_invalid_num_sigma_raises() -> None: + """``find_position`` raises for non-positive or non-numeric ``num_sigma``.""" + + psf = GaussianPSF() + img = np.zeros((21, 21)) + + with pytest.raises(ValueError) as exc_info: + psf.find_position(img, (5, 5), (10, 10), bkgnd_degree=None, num_sigma=0.0) + assert 'num_sigma must be > 0' in str(exc_info.value) + + with pytest.raises(ValueError) as exc_info: + psf.find_position(img, (5, 5), (10, 10), bkgnd_degree=None, num_sigma=-1.0) + assert 'num_sigma must be > 0' in str(exc_info.value) + + with pytest.raises(TypeError) as exc_info: + psf.find_position(img, (5, 5), (10, 10), bkgnd_degree=None, num_sigma='bad') # type: ignore[arg-type] + assert 'num_sigma must be a number or None' in str(exc_info.value) + + def test_find_position_returns_none_when_starting_point_near_edge() -> None: """``find_position`` returns ``None`` when the box does not fit inside the image.""" @@ -38,7 +57,7 @@ def test_find_position_returns_none_when_starting_point_near_edge() -> None: (7, 7), (0, 5), bkgnd_degree=None, - num_sigma=0, + num_sigma=None, ) assert ret is None @@ -65,7 +84,7 @@ def test_find_position_optimizer_failure_warns( gauss2d.shape, (gauss2d.shape[0] // 2, gauss2d.shape[1] // 2), bkgnd_degree=None, - num_sigma=0, + num_sigma=None, ) assert ret is None @@ -124,7 +143,7 @@ def test_find_position_detailed_logging_emits_info(caplog: pytest.LogCaptureFixt gauss2d.shape, (gauss2d.shape[0] // 2, gauss2d.shape[1] // 2), bkgnd_degree=None, - num_sigma=0, + num_sigma=None, ) assert ret is not None messages = [r.message for r in caplog.records if r.levelno == logging.INFO] @@ -159,7 +178,7 @@ def test_find_position_num_sigma_rejects_outlier_pixel(default_psf: GaussianPSF) gauss2d = default_psf.eval_rect((21, 21), scale=2.0, sigma=(1.0, 1.0)) contaminated = gauss2d.copy() - contaminated[10, 10] += 200.0 + contaminated[3, 3] += 200.0 ret = default_psf.find_position( contaminated, contaminated.shape, @@ -182,7 +201,7 @@ def test_find_position_quality_metrics_noise_free(default_psf: GaussianPSF) -> N """Quality metrics are near-zero for a noise-free Gaussian image.""" img = default_psf.eval_rect((21, 21), scale=2.0, sigma=(1.0, 1.0)) - ret = default_psf.find_position(img, img.shape, (10, 10), bkgnd_degree=None, num_sigma=0) + ret = default_psf.find_position(img, img.shape, (10, 10), bkgnd_degree=None, num_sigma=None) assert ret is not None _, _, details = ret assert details['residual_rss'] < 1e-10 @@ -198,7 +217,7 @@ def test_find_position_quality_metrics_noisy() -> None: rng = np.random.default_rng(42) noise_std = 0.05 img = psf.eval_rect((21, 21), scale=1.0) + rng.normal(0, noise_std, (21, 21)) - ret = psf.find_position(img, img.shape, (10, 10), bkgnd_degree=None, num_sigma=0) + ret = psf.find_position(img, img.shape, (10, 10), bkgnd_degree=None, num_sigma=None) assert ret is not None _, _, details = ret assert details['reduced_chi2'] == pytest.approx(noise_std**2, rel=0.3) @@ -210,7 +229,7 @@ def test_find_position_quality_metrics_keys_present(default_psf: GaussianPSF) -> """All four quality-metric keys are present in the returned details dict.""" img = default_psf.eval_rect((21, 21), scale=2.0, sigma=(1.0, 1.0)) - ret = default_psf.find_position(img, img.shape, (10, 10), bkgnd_degree=None, num_sigma=0) + ret = default_psf.find_position(img, img.shape, (10, 10), bkgnd_degree=None, num_sigma=None) assert ret is not None _, _, details = ret for key in ('residual_rss', 'reduced_chi2', 'noise_rms', 'peak_snr'): @@ -227,7 +246,7 @@ def test_find_position_position_uncertainties_non_negative(default_psf: Gaussian """Position and scale uncertainties are non-negative for a clean Gaussian fit.""" img = default_psf.eval_rect((21, 21), scale=2.0, sigma=(1.0, 1.0)) - ret = default_psf.find_position(img, img.shape, (10, 10), bkgnd_degree=None, num_sigma=0) + ret = default_psf.find_position(img, img.shape, (10, 10), bkgnd_degree=None, num_sigma=None) assert ret is not None _, _, details = ret assert details['x_err'] >= 0.0 @@ -239,7 +258,7 @@ def test_find_position_position_uncertainties_small_noise_free(default_psf: Gaus """Position uncertainties are negligible for a noise-free image.""" img = default_psf.eval_rect((21, 21), scale=2.0, sigma=(1.0, 1.0)) - ret = default_psf.find_position(img, img.shape, (10, 10), bkgnd_degree=None, num_sigma=0) + ret = default_psf.find_position(img, img.shape, (10, 10), bkgnd_degree=None, num_sigma=None) assert ret is not None _, _, details = ret assert details['x_err'] < 1e-3 @@ -251,7 +270,7 @@ def test_find_position_base_err_zero_when_base_fixed(default_psf: GaussianPSF) - img = default_psf.eval_rect((21, 21), scale=2.0, sigma=(1.0, 1.0)) ret = default_psf.find_position( - img, img.shape, (10, 10), bkgnd_degree=None, num_sigma=0, allow_nonzero_base=False + img, img.shape, (10, 10), bkgnd_degree=None, num_sigma=None, allow_nonzero_base=False ) assert ret is not None assert ret[2]['base_err'] == 0.0 @@ -262,7 +281,7 @@ def test_find_position_base_err_non_negative_when_base_free(default_psf: Gaussia img = default_psf.eval_rect((21, 21), scale=2.0, sigma=(1.0, 1.0)) ret = default_psf.find_position( - img, img.shape, (10, 10), bkgnd_degree=None, num_sigma=0, allow_nonzero_base=True + img, img.shape, (10, 10), bkgnd_degree=None, num_sigma=None, allow_nonzero_base=True ) assert ret is not None assert ret[2]['base_err'] >= 0.0 @@ -277,7 +296,7 @@ def test_find_position_additional_param_err_keys_present() -> None: sigma_x_range=(0.5, 3.0), ) img = psf.eval_rect((21, 21), scale=2.0, sigma=(1.5, 1.5)) - ret = psf.find_position(img, img.shape, (10, 10), bkgnd_degree=None, num_sigma=0) + ret = psf.find_position(img, img.shape, (10, 10), bkgnd_degree=None, num_sigma=None) assert ret is not None _, _, details = ret assert 'sigma_y_err' in details @@ -295,8 +314,8 @@ def test_find_position_uncertainty_decreases_with_snr() -> None: img_low = psf.eval_rect((21, 21), scale=0.5) + noise img_high = psf.eval_rect((21, 21), scale=5.0) + noise - ret_low = psf.find_position(img_low, (21, 21), (10, 10), bkgnd_degree=None, num_sigma=0) - ret_high = psf.find_position(img_high, (21, 21), (10, 10), bkgnd_degree=None, num_sigma=0) + ret_low = psf.find_position(img_low, (21, 21), (10, 10), bkgnd_degree=None, num_sigma=None) + ret_high = psf.find_position(img_high, (21, 21), (10, 10), bkgnd_degree=None, num_sigma=None) assert ret_low is not None assert ret_high is not None assert ret_low[2]['x_err'] > ret_high[2]['x_err'] @@ -315,7 +334,7 @@ def test_find_position_compute_uncertainty_false_err_keys_are_nan( img = default_psf.eval_rect((21, 21), scale=2.0, sigma=(1.0, 1.0)) ret = default_psf.find_position( - img, img.shape, (10, 10), bkgnd_degree=None, num_sigma=0, compute_uncertainty=False + img, img.shape, (10, 10), bkgnd_degree=None, num_sigma=None, compute_uncertainty=False ) assert ret is not None _, _, details = ret @@ -331,10 +350,10 @@ def test_find_position_compute_uncertainty_false_position_and_metrics_unchanged( img = default_psf.eval_rect((21, 21), scale=2.0, sigma=(1.0, 1.0)) ret_with = default_psf.find_position( - img, img.shape, (10, 10), bkgnd_degree=None, num_sigma=0, compute_uncertainty=True + img, img.shape, (10, 10), bkgnd_degree=None, num_sigma=None, compute_uncertainty=True ) ret_without = default_psf.find_position( - img, img.shape, (10, 10), bkgnd_degree=None, num_sigma=0, compute_uncertainty=False + img, img.shape, (10, 10), bkgnd_degree=None, num_sigma=None, compute_uncertainty=False ) assert ret_with is not None assert ret_without is not None @@ -359,7 +378,7 @@ def test_find_position_compute_uncertainty_false_base_fixed_base_err_zero( img.shape, (10, 10), bkgnd_degree=None, - num_sigma=0, + num_sigma=None, allow_nonzero_base=False, compute_uncertainty=False, ) @@ -377,7 +396,7 @@ def test_find_position_compute_uncertainty_false_free_base_err_nan() -> None: img.shape, (10, 10), bkgnd_degree=None, - num_sigma=0, + num_sigma=None, allow_nonzero_base=True, compute_uncertainty=False, ) @@ -395,7 +414,7 @@ def test_find_position_compute_uncertainty_false_additional_param_errs_nan() -> ) img = psf.eval_rect((21, 21), scale=2.0, sigma=(1.5, 1.5)) ret = psf.find_position( - img, img.shape, (10, 10), bkgnd_degree=None, num_sigma=0, compute_uncertainty=False + img, img.shape, (10, 10), bkgnd_degree=None, num_sigma=None, compute_uncertainty=False ) assert ret is not None _, _, details = ret @@ -407,7 +426,7 @@ def test_find_position_compute_uncertainty_default_is_true(default_psf: Gaussian """The default (no ``compute_uncertainty`` kwarg) produces finite ``x_err`` and ``y_err``.""" img = default_psf.eval_rect((21, 21), scale=2.0, sigma=(1.0, 1.0)) - ret = default_psf.find_position(img, img.shape, (10, 10), bkgnd_degree=None, num_sigma=0) + ret = default_psf.find_position(img, img.shape, (10, 10), bkgnd_degree=None, num_sigma=None) assert ret is not None _, _, details = ret assert np.isfinite(details['x_err']) diff --git a/tests/test_gaussian.py b/tests/test_gaussian.py index cabccc7..d4ef287 100644 --- a/tests/test_gaussian.py +++ b/tests/test_gaussian.py @@ -179,6 +179,46 @@ def test_gaussian_integral_1d() -> None: npt.assert_array_almost_equal(ret, np.array([[g_0_1, g_n1_1], [g_n1_1, g_0_1]])) +def test_gaussian_integral_1d_reversed_limits() -> None: + """``gaussian_integral_1d`` negates the Gaussian part when limits are reversed.""" + + g_0_1 = integrate.quad(GaussianPSF.gaussian_1d, 0.0, 1.0)[0] + g_n1_1 = integrate.quad(GaussianPSF.gaussian_1d, -1.0, 1.0)[0] + + # Scalar reversed limits: Gaussian part is negated. + assert GaussianPSF.gaussian_integral_1d(1.0, 0.0) == pytest.approx(-g_0_1) + assert GaussianPSF.gaussian_integral_1d(1.0, -1.0) == pytest.approx(-g_n1_1) + + # mean shifts the window; reversed limits still negate the result. + assert GaussianPSF.gaussian_integral_1d(1.0, -1.0, mean=2.0) == pytest.approx( + -integrate.quad(GaussianPSF.gaussian_1d, 1.0, 3.0)[0] + ) + + # scale multiplies the Gaussian part; negation applies to the scaled integral. + assert GaussianPSF.gaussian_integral_1d(1.0, -1.0, scale=2.0) == pytest.approx(-g_n1_1 * 2) + + # base is an additive offset and is NOT negated with the limits. + assert GaussianPSF.gaussian_integral_1d(1.0, 0.0, base=5.0) == pytest.approx(-g_0_1 + 5.0) + assert GaussianPSF.gaussian_integral_1d(1.0, 0.0, scale=2.0, base=5.0) == pytest.approx( + -g_0_1 * 2 + 5.0 + ) + + # 1-D array: first element reversed, second forward. + npt.assert_array_almost_equal( + GaussianPSF.gaussian_integral_1d(np.array([1.0, 0.0]), np.array([0.0, 1.0])), + np.array([-g_0_1, g_0_1]), + ) + + # 2-D array: swapped and unswapped elements in the same call. + npt.assert_array_almost_equal( + GaussianPSF.gaussian_integral_1d( + np.array([[1.0, 0.0], [0.0, 1.0]]), + np.array([[0.0, 1.0], [1.0, 0.0]]), + ), + np.array([[-g_0_1, g_0_1], [g_0_1, -g_0_1]]), + ) + + def test_gaussian_integral_1d_nonpositive_sigma_raises() -> None: """``gaussian_integral_1d`` requires a positive ``sigma``.""" @@ -412,7 +452,7 @@ def test_gaussian_find_position( starting_point=((gauss2d.shape[0] // 2, gauss2d.shape[1] // 2)), bkgnd_degree=bkgnd_degree, allow_nonzero_base=allow_nonzero_base, - num_sigma=0, + num_sigma=None, use_angular_params=use_angular_params, ) ) @@ -431,7 +471,7 @@ def test_gaussian_find_position( bkgnd_degree=bkgnd_degree, bkgnd_ignore_center=(4, 4), allow_nonzero_base=allow_nonzero_base, - num_sigma=0, + num_sigma=None, use_angular_params=use_angular_params, ) ) @@ -452,7 +492,7 @@ def test_gaussian_find_position( bkgnd_degree=bkgnd_degree, bkgnd_ignore_center=(4, 4), allow_nonzero_base=allow_nonzero_base, - num_sigma=0, + num_sigma=None, use_angular_params=use_angular_params, ) ) @@ -470,7 +510,7 @@ def test_gaussian_find_position( bkgnd_degree=bkgnd_degree, bkgnd_ignore_center=(4, 4), allow_nonzero_base=allow_nonzero_base, - num_sigma=0, + num_sigma=None, use_angular_params=use_angular_params, ) ) @@ -490,7 +530,7 @@ def test_gaussian_find_position( bkgnd_degree=bkgnd_degree, bkgnd_ignore_center=(4, 4), allow_nonzero_base=allow_nonzero_base, - num_sigma=0, + num_sigma=None, use_angular_params=use_angular_params, ) ) @@ -509,7 +549,7 @@ def test_gaussian_find_position( starting_point=((gauss2d.shape[0] // 2, gauss2d.shape[1] // 2)), bkgnd_degree=bkgnd_degree, allow_nonzero_base=allow_nonzero_base, - num_sigma=0, + num_sigma=None, use_angular_params=use_angular_params, ) ) @@ -532,7 +572,7 @@ def test_gaussian_find_position( starting_point=((gauss2d.shape[0] // 2, gauss2d.shape[1] // 2)), bkgnd_degree=bkgnd_degree, allow_nonzero_base=allow_nonzero_base, - num_sigma=0, + num_sigma=None, use_angular_params=use_angular_params, ) ) @@ -552,7 +592,7 @@ def test_gaussian_find_position( starting_point=((gauss2d.shape[0] // 2, gauss2d.shape[1] // 2)), bkgnd_degree=bkgnd_degree, allow_nonzero_base=allow_nonzero_base, - num_sigma=0, + num_sigma=None, use_angular_params=use_angular_params, ) ) @@ -576,7 +616,7 @@ def test_gaussian_find_position( starting_point=((gauss2d.shape[0] // 2, gauss2d.shape[1] // 2)), bkgnd_degree=bkgnd_degree, allow_nonzero_base=allow_nonzero_base, - num_sigma=0, + num_sigma=None, use_angular_params=use_angular_params, ) ) From 9c2dec1f284c8580fbea364dee91dbc902f3e2f0 Mon Sep 17 00:00:00 2001 From: Robert French Date: Wed, 15 Apr 2026 10:30:16 -0700 Subject: [PATCH 14/17] Lint cleanup --- src/psfmodel/psf.py | 20 ++++++++++++++++++-- tests/test_find_position.py | 4 ++-- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/src/psfmodel/psf.py b/src/psfmodel/psf.py index 02c7958..4fc85e1 100755 --- a/src/psfmodel/psf.py +++ b/src/psfmodel/psf.py @@ -446,6 +446,7 @@ def background_gradient_fit( a3d = PSF._background_gradient_coeffs(shape, order) + num_bad_pixels = 0 if num_sigma is not None: num_bad_pixels = cast(int, ma.count_masked(image)) # type: ignore[no-untyped-call] if debug: # pragma: no cover @@ -470,7 +471,15 @@ def background_gradient_fit( ) return None, None - coeffts = linalg.lstsq(a2d, b1d)[0] + coeffts, _, _, _ = cast( + tuple[ + npt.NDArray[np.float64], + npt.NDArray[np.float64], + int, + npt.NDArray[np.float64] | None, + ], + linalg.lstsq(a2d, b1d), + ) if num_sigma is None: break @@ -651,6 +660,13 @@ def find_position( In addition, metadata includes two entries for each "additional parameter" used during optimization: one for the value and one for the 1-sigma uncertainty (``'param'`` and ``'param_err'``). + + Raises: + ValueError: If ``box_size`` is not a tuple of odd positive integers. + TypeError: If ``num_sigma`` is not a number or None. + ValueError: If ``num_sigma`` is not greater than 0. + ValueError: If the starting point is too close to the edge of the image. + ValueError: If the subimage has too many pixels masked. """ if box_size[0] < 0 or box_size[1] < 0 or box_size[0] % 2 != 1 or box_size[1] % 2 != 1: @@ -1062,7 +1078,7 @@ def _find_position( starting_guess += [0.001] for a_min, a_max, _a_name in self._additional_params: bounds += [(a_min, a_max)] - starting_guess.append(np.mean([a_min, a_max])) + starting_guess.append(cast(float, np.mean([a_min, a_max]))) extra_args0 = ( sub_img_grad, diff --git a/tests/test_find_position.py b/tests/test_find_position.py index 7c7b193..95a6be8 100644 --- a/tests/test_find_position.py +++ b/tests/test_find_position.py @@ -42,9 +42,9 @@ def test_find_position_invalid_num_sigma_raises() -> None: psf.find_position(img, (5, 5), (10, 10), bkgnd_degree=None, num_sigma=-1.0) assert 'num_sigma must be > 0' in str(exc_info.value) - with pytest.raises(TypeError) as exc_info: + with pytest.raises(TypeError) as exc_info_type: psf.find_position(img, (5, 5), (10, 10), bkgnd_degree=None, num_sigma='bad') # type: ignore[arg-type] - assert 'num_sigma must be a number or None' in str(exc_info.value) + assert 'num_sigma must be a number or None' in str(exc_info_type.value) def test_find_position_returns_none_when_starting_point_near_edge() -> None: From d9d5d0c23d79f986b802943a9ced6303bfc7321e Mon Sep 17 00:00:00 2001 From: Robert French Date: Wed, 15 Apr 2026 11:07:19 -0700 Subject: [PATCH 15/17] CR comments --- src/characterize_gauss_fit/config.py | 62 ++++++++++++------- src/characterize_gauss_fit/output.py | 29 +++++++-- src/characterize_gauss_fit/plotting.py | 5 ++ .../study_background.py | 6 +- src/characterize_gauss_fit/study_box_sigma.py | 6 +- .../study_constraints.py | 6 +- .../study_hot_pixels.py | 6 +- .../study_min_offset.py | 6 +- src/characterize_gauss_fit/study_noise.py | 6 +- src/characterize_gauss_fit/study_offset.py | 6 +- src/characterize_gauss_fit/study_shape.py | 6 +- src/psfmodel/psf.py | 18 +++++- 12 files changed, 109 insertions(+), 53 deletions(-) diff --git a/src/characterize_gauss_fit/config.py b/src/characterize_gauss_fit/config.py index 05cf61a..af31d9e 100644 --- a/src/characterize_gauss_fit/config.py +++ b/src/characterize_gauss_fit/config.py @@ -256,6 +256,10 @@ def _load_raw(path: pathlib.Path | None) -> dict[str, Any]: raw: dict[str, Any] = yaml.safe_load(fh) except yaml.YAMLError as exc: raise ValueError(f'Failed to parse defaults.yaml: {exc}') from exc + if not isinstance(raw, dict): + raise ValueError( + f'defaults.yaml must contain a mapping, got {type(raw)!r}' + ) if path is not None: if not path.exists(): @@ -587,28 +591,42 @@ def _check_box_size(field: str, bs: int) -> None: raise ValueError( f'constraint_modes.psf_shapes: angle must be in [0, pi], got {shape.angle}' ) - cmf = cm.fitting - if not (0.0 <= cmf.max_bad_frac <= 1.0): - raise ValueError( - f'constraint_modes.fitting.max_bad_frac must be in [0, 1], got {cmf.max_bad_frac}' - ) - if cmf.num_sigma is not None and cmf.num_sigma <= 0: - raise ValueError( - f'constraint_modes.fitting.num_sigma must be None or > 0, got {cmf.num_sigma}' - ) - if cmf.bkgnd_num_sigma is not None and cmf.bkgnd_num_sigma <= 0: - raise ValueError( - 'constraint_modes.fitting.bkgnd_num_sigma must be None or > 0, ' - f'got {cmf.bkgnd_num_sigma}' - ) - if cmf.search_limit[0] < 0 or cmf.search_limit[1] < 0: - raise ValueError( - f'constraint_modes.fitting.search_limit values must be >= 0, got {cmf.search_limit}' - ) - if cmf.scale_limit < 0: - raise ValueError( - f'constraint_modes.fitting.scale_limit must be >= 0, got {cmf.scale_limit}' - ) + def _validate_fitting_config(prefix: str, fc: FittingConfig) -> None: + if not (0.0 <= fc.max_bad_frac <= 1.0): + raise ValueError( + f'{prefix}.max_bad_frac must be in [0, 1], got {fc.max_bad_frac}' + ) + if fc.num_sigma is not None and fc.num_sigma <= 0: + raise ValueError( + f'{prefix}.num_sigma must be None or > 0, got {fc.num_sigma}' + ) + if fc.bkgnd_num_sigma is not None and fc.bkgnd_num_sigma <= 0: + raise ValueError( + f'{prefix}.bkgnd_num_sigma must be None or > 0, got {fc.bkgnd_num_sigma}' + ) + if fc.search_limit[0] < 0 or fc.search_limit[1] < 0: + raise ValueError( + f'{prefix}.search_limit values must be >= 0, got {fc.search_limit}' + ) + if fc.scale_limit < 0: + raise ValueError( + f'{prefix}.scale_limit must be >= 0, got {fc.scale_limit}' + ) + + _validate_fitting_config('box_vs_sigma.fitting', cfg.studies.box_vs_sigma.fitting) + _validate_fitting_config('subpixel_offset.fitting', cfg.studies.subpixel_offset.fitting) + _validate_fitting_config( + 'min_detectable_offset.fitting', cfg.studies.min_detectable_offset.fitting + ) + _validate_fitting_config( + 'sigma_asymmetry_angle.fitting', cfg.studies.sigma_asymmetry_angle.fitting + ) + _validate_fitting_config('constraint_modes.fitting', cm.fitting) + _validate_fitting_config('background.fitting', cfg.studies.background.fitting) + _validate_fitting_config('noise_sensitivity.fitting', cfg.studies.noise_sensitivity.fitting) + _validate_fitting_config( + 'hot_pixel_rejection.fitting', cfg.studies.hot_pixel_rejection.fitting + ) valid_bkgnd_types = {'none', 'constant', 'linear', 'quadratic', 'noisy_constant'} for bt in cfg.studies.background.background_types: diff --git a/src/characterize_gauss_fit/output.py b/src/characterize_gauss_fit/output.py index c628eae..e71a9f6 100644 --- a/src/characterize_gauss_fit/output.py +++ b/src/characterize_gauss_fit/output.py @@ -26,7 +26,7 @@ from characterize_gauss_fit.trial import TrialResult, TrialSpec # Column order for the CSV file. Non-applicable columns use empty string. -_CSV_COLUMNS: list[str] = [ +_CSV_COLUMNS: tuple[str, ...] = ( # Study-level context 'study', 'rng_seed', @@ -79,7 +79,7 @@ 'sigma_x_err', 'angle_err', 'scale_err', -] +) def _float_cell(value: float | None) -> str: @@ -165,6 +165,7 @@ def _result_row( def write_csv( output_dir: pathlib.Path, study: str, + *, specs: list[TrialSpec], results: list[TrialResult], ) -> pathlib.Path: @@ -307,9 +308,9 @@ def _sanitize_json(obj: Any) -> Any: def write_json_summary( output_dir: pathlib.Path, study: str, + *, specs: list[TrialSpec], results: list[TrialResult], - *, groups: list[dict[str, Any]], config_used: dict[str, Any], ) -> pathlib.Path: @@ -334,7 +335,10 @@ def write_json_summary( Path to the written JSON file. Raises: - ValueError: If ``specs`` and ``results`` have different lengths. + ValueError: If ``specs`` and ``results`` have different lengths, or if any + group has empty or out-of-range indices. + TypeError: If any group is not a dict with a ``list`` under ``'indices'``, + or if any index value is not an ``int``. """ if len(specs) != len(results): raise ValueError( @@ -348,8 +352,23 @@ def write_json_summary( group_summaries: list[dict[str, Any]] = [] for group in groups: + if not isinstance(group, dict) or not isinstance(group.get('indices'), list): + raise TypeError( + f"Each group must be a dict with a list under 'indices', got {group!r}" + ) indices: list[int] = group['indices'] - group_results = [results[i] for i in indices] + if len(indices) == 0: + raise ValueError(f"Group 'indices' must not be empty, got {group!r}") + for idx in indices: + if not isinstance(idx, int): + raise TypeError( + f"Group 'indices' must be a list of ints, got {idx!r} in {group!r}" + ) + if idx < 0 or idx >= len(results): + raise ValueError( + f'Group index {idx} is out of range for results of length {len(results)}' + ) + group_results = [results[idx] for idx in indices] agg = _aggregate_results(group_results) # Write label keys (everything except 'indices'). summary: dict[str, Any] = {k: v for k, v in group.items() if k != 'indices'} diff --git a/src/characterize_gauss_fit/plotting.py b/src/characterize_gauss_fit/plotting.py index db3754a..89965ba 100644 --- a/src/characterize_gauss_fit/plotting.py +++ b/src/characterize_gauss_fit/plotting.py @@ -147,6 +147,10 @@ def plot_heatmap( cmap.set_bad(color=_FAIL_COLOUR) if mask is not None: + if mask.shape != data.shape: + raise ValueError( + f'mask.shape {mask.shape} does not match data.shape {data.shape}' + ) display = np.where(mask, np.nan, display) img = ax.imshow(display, aspect='auto', cmap=cmap, origin='upper') @@ -396,6 +400,7 @@ def plot_multi_panel_heatmaps( if img_ref is not None: fig.colorbar(img_ref, ax=axes, label=cbar_label, shrink=0.8) fig.suptitle(fig_title, fontsize=10) + fig.tight_layout() return fig diff --git a/src/characterize_gauss_fit/study_background.py b/src/characterize_gauss_fit/study_background.py index 72738da..bb69ded 100644 --- a/src/characterize_gauss_fit/study_background.py +++ b/src/characterize_gauss_fit/study_background.py @@ -243,7 +243,7 @@ def _write_outputs( f'{_STUDY_NAME}_pos_err{fsuffix}_amp{amp_idx}_ic{ic_idx}_{tag}.png', ) - write_csv(cfg.output_dir, _STUDY_NAME, specs, results) + write_csv(cfg.output_dir, _STUDY_NAME, specs=specs, results=results) groups: list[dict[str, Any]] = utils.build_groups_by_keys( specs, @@ -260,8 +260,8 @@ def _write_outputs( write_json_summary( cfg.output_dir, _STUDY_NAME, - specs, - results, + specs=specs, + results=results, groups=groups, config_used=config_to_dict(cfg), ) diff --git a/src/characterize_gauss_fit/study_box_sigma.py b/src/characterize_gauss_fit/study_box_sigma.py index 1ea11a9..c9d51b4 100644 --- a/src/characterize_gauss_fit/study_box_sigma.py +++ b/src/characterize_gauss_fit/study_box_sigma.py @@ -186,7 +186,7 @@ def _write_outputs( save_figure(fig, study_dir, f'{_STUDY_NAME}_{metric_key}_{tag}.png') # CSV and JSON (all offsets together) - write_csv(cfg.output_dir, _STUDY_NAME, specs, results) + write_csv(cfg.output_dir, _STUDY_NAME, specs=specs, results=results) groups: list[dict[str, Any]] = utils.build_groups_by_keys( specs, results, @@ -200,8 +200,8 @@ def _write_outputs( write_json_summary( cfg.output_dir, _STUDY_NAME, - specs, - results, + specs=specs, + results=results, groups=groups, config_used=config_to_dict(cfg), ) diff --git a/src/characterize_gauss_fit/study_constraints.py b/src/characterize_gauss_fit/study_constraints.py index 40c1bdb..5fefcac 100644 --- a/src/characterize_gauss_fit/study_constraints.py +++ b/src/characterize_gauss_fit/study_constraints.py @@ -274,7 +274,7 @@ def _write_outputs( ) save_figure(fig, study_dir, f'{_STUDY_NAME}_summary.png') - write_csv(cfg.output_dir, _STUDY_NAME, specs, results) + write_csv(cfg.output_dir, _STUDY_NAME, specs=specs, results=results) # Each (mode, shape) pair maps to exactly one spec at a known position. groups: list[dict[str, Any]] = [ @@ -289,8 +289,8 @@ def _write_outputs( write_json_summary( cfg.output_dir, _STUDY_NAME, - specs, - results, + specs=specs, + results=results, groups=groups, config_used=config_to_dict(cfg), ) diff --git a/src/characterize_gauss_fit/study_hot_pixels.py b/src/characterize_gauss_fit/study_hot_pixels.py index 3d6c659..f1f843d 100644 --- a/src/characterize_gauss_fit/study_hot_pixels.py +++ b/src/characterize_gauss_fit/study_hot_pixels.py @@ -264,7 +264,7 @@ def _write_outputs( ) save_figure(fig, study_dir, f'{_STUDY_NAME}_{fname_prefix}_hotamp{ha_idx}.png') - write_csv(cfg.output_dir, _STUDY_NAME, specs, results) + write_csv(cfg.output_dir, _STUDY_NAME, specs=specs, results=results) groups: list[dict[str, Any]] = utils.build_groups_by_keys( specs, @@ -278,8 +278,8 @@ def _write_outputs( write_json_summary( cfg.output_dir, _STUDY_NAME, - specs, - results, + specs=specs, + results=results, groups=groups, config_used=config_to_dict(cfg), ) diff --git a/src/characterize_gauss_fit/study_min_offset.py b/src/characterize_gauss_fit/study_min_offset.py index 6ed53be..6352048 100644 --- a/src/characterize_gauss_fit/study_min_offset.py +++ b/src/characterize_gauss_fit/study_min_offset.py @@ -265,14 +265,14 @@ def _write_outputs( ) save_figure(fig, study_dir, f'{_STUDY_NAME}_recovery_{cond_label}.png') - write_csv(cfg.output_dir, _STUDY_NAME, specs, results) + write_csv(cfg.output_dir, _STUDY_NAME, specs=specs, results=results) groups = _build_json_groups(specs, results, conditions) write_json_summary( cfg.output_dir, _STUDY_NAME, - specs, - results, + specs=specs, + results=results, groups=groups, config_used=config_to_dict(cfg), ) diff --git a/src/characterize_gauss_fit/study_noise.py b/src/characterize_gauss_fit/study_noise.py index 4027474..5b61478 100644 --- a/src/characterize_gauss_fit/study_noise.py +++ b/src/characterize_gauss_fit/study_noise.py @@ -213,7 +213,7 @@ def _collect_metric_grid( ) save_figure(fig, study_dir, f'{_STUDY_NAME}_{fname}') - write_csv(cfg.output_dir, _STUDY_NAME, specs, results) + write_csv(cfg.output_dir, _STUDY_NAME, specs=specs, results=results) groups: list[dict[str, Any]] = utils.build_groups_by_keys( specs, @@ -226,8 +226,8 @@ def _collect_metric_grid( write_json_summary( cfg.output_dir, _STUDY_NAME, - specs, - results, + specs=specs, + results=results, groups=groups, config_used=config_to_dict(cfg), ) diff --git a/src/characterize_gauss_fit/study_offset.py b/src/characterize_gauss_fit/study_offset.py index 1c605df..274edd3 100644 --- a/src/characterize_gauss_fit/study_offset.py +++ b/src/characterize_gauss_fit/study_offset.py @@ -227,7 +227,7 @@ def _write_outputs( ) save_figure(fig, study_dir, f'{_STUDY_NAME}_{fname_line}') - write_csv(cfg.output_dir, _STUDY_NAME, specs, results) + write_csv(cfg.output_dir, _STUDY_NAME, specs=specs, results=results) groups = utils.build_groups_by_keys( specs, @@ -237,8 +237,8 @@ def _write_outputs( write_json_summary( cfg.output_dir, _STUDY_NAME, - specs, - results, + specs=specs, + results=results, groups=groups, config_used=config_to_dict(cfg), ) diff --git a/src/characterize_gauss_fit/study_shape.py b/src/characterize_gauss_fit/study_shape.py index 8be7e80..f8e4ccd 100644 --- a/src/characterize_gauss_fit/study_shape.py +++ b/src/characterize_gauss_fit/study_shape.py @@ -195,7 +195,7 @@ def _write_outputs( ) save_figure(fig, study_dir, f'{_STUDY_NAME}_{fname_prefix}_sx{sigma_x:.1f}.png') - write_csv(cfg.output_dir, _STUDY_NAME, specs, results) + write_csv(cfg.output_dir, _STUDY_NAME, specs=specs, results=results) groups: list[dict[str, Any]] = utils.build_groups_by_keys( specs, @@ -212,8 +212,8 @@ def _write_outputs( write_json_summary( cfg.output_dir, _STUDY_NAME, - specs, - results, + specs=specs, + results=results, groups=groups, config_used=config_to_dict(cfg), ) diff --git a/src/psfmodel/psf.py b/src/psfmodel/psf.py index 4fc85e1..5cf90bc 100755 --- a/src/psfmodel/psf.py +++ b/src/psfmodel/psf.py @@ -24,6 +24,11 @@ _FIT_PSF_BASE_BOUND_MIN = float('-inf') _FIT_PSF_BASE_BOUND_MAX = float('inf') +# Relative noise floor for background_gradient_fit sigma-clipping: sigma values +# below sqrt(eps) * gradient_scale are floating-point noise, not a real residual +# distribution width, and should not be used to mask pixels. +_BKGND_SIGMA_FLOOR = float(np.sqrt(np.finfo(np.float64).eps)) + # Finite-difference step sizes used by :meth:`PSF._find_position` when computing # the Jacobian of the residual vector for covariance estimation. The step for # parameter ``p`` is ``max(|p| * _JACO_REL_EPS, _JACO_ABS_EPS)`` so the step is @@ -256,7 +261,8 @@ def _eval_rect_smeared( rect_size: The size of the rectangle (rect_size_y, rect_size_x) of the returned PSF. Both dimensions must be odd. offset: The amount (offset_y, offset_x) to offset the center of the PSF. A - positive offset effectively moves the PSF down and to the left. XXX + positive offset effectively moves the PSF down and to the left in image + coordinates. movement: The total amount (my, mx) the PSF moves. The movement is assumed to be centered on the given offset and exists half on either side. movement_granularity: The number of pixels to step for each smear while doing @@ -386,7 +392,8 @@ def background_gradient_fit( num_sigma: Outlier rejection uses the fit residual ``image - gradient``: unmasked pixels with absolute residual at least ``num_sigma`` times the standard deviation of that residual (mask-aware) are masked and the fit - is repeated. None disables this. Non-positive values disable masking + is repeated until convergence or until sigma falls below the numerical + noise floor. None disables this. Non-positive values disable masking after the initial least-squares fit. debug: Set to debug bad pixel removal. logger: Logger for debug messages; defaults to this module's logger. @@ -495,6 +502,13 @@ def background_gradient_fit( sigma_f = float(sigma) if not np.isfinite(sigma_f) or sigma_f <= 0: break + # Break when sigma is at the floating-point noise level (i.e., the + # fit is already exact up to machine precision); using such a sigma + # as a threshold would mask pixels based on numerical noise, not + # real outliers. + gradient_scale = float(np.max(np.abs(gradient))) + if gradient_scale > 0 and sigma_f <= _BKGND_SIGMA_FLOOR * gradient_scale: + break threshold = num_sigma_f * sigma_f if debug: # pragma: no cover fit_logger.debug( From 22dbfc5896ed08854209f0b18ec3d048278004b0 Mon Sep 17 00:00:00 2001 From: Robert French Date: Wed, 15 Apr 2026 11:29:22 -0700 Subject: [PATCH 16/17] Lint --- src/characterize_gauss_fit/config.py | 25 +++++++------------------ src/characterize_gauss_fit/output.py | 8 ++------ src/characterize_gauss_fit/plotting.py | 4 +--- 3 files changed, 10 insertions(+), 27 deletions(-) diff --git a/src/characterize_gauss_fit/config.py b/src/characterize_gauss_fit/config.py index af31d9e..722d89f 100644 --- a/src/characterize_gauss_fit/config.py +++ b/src/characterize_gauss_fit/config.py @@ -257,9 +257,7 @@ def _load_raw(path: pathlib.Path | None) -> dict[str, Any]: except yaml.YAMLError as exc: raise ValueError(f'Failed to parse defaults.yaml: {exc}') from exc if not isinstance(raw, dict): - raise ValueError( - f'defaults.yaml must contain a mapping, got {type(raw)!r}' - ) + raise ValueError(f'defaults.yaml must contain a mapping, got {type(raw)!r}') if path is not None: if not path.exists(): @@ -591,27 +589,20 @@ def _check_box_size(field: str, bs: int) -> None: raise ValueError( f'constraint_modes.psf_shapes: angle must be in [0, pi], got {shape.angle}' ) + def _validate_fitting_config(prefix: str, fc: FittingConfig) -> None: if not (0.0 <= fc.max_bad_frac <= 1.0): - raise ValueError( - f'{prefix}.max_bad_frac must be in [0, 1], got {fc.max_bad_frac}' - ) + raise ValueError(f'{prefix}.max_bad_frac must be in [0, 1], got {fc.max_bad_frac}') if fc.num_sigma is not None and fc.num_sigma <= 0: - raise ValueError( - f'{prefix}.num_sigma must be None or > 0, got {fc.num_sigma}' - ) + raise ValueError(f'{prefix}.num_sigma must be None or > 0, got {fc.num_sigma}') if fc.bkgnd_num_sigma is not None and fc.bkgnd_num_sigma <= 0: raise ValueError( f'{prefix}.bkgnd_num_sigma must be None or > 0, got {fc.bkgnd_num_sigma}' ) if fc.search_limit[0] < 0 or fc.search_limit[1] < 0: - raise ValueError( - f'{prefix}.search_limit values must be >= 0, got {fc.search_limit}' - ) + raise ValueError(f'{prefix}.search_limit values must be >= 0, got {fc.search_limit}') if fc.scale_limit < 0: - raise ValueError( - f'{prefix}.scale_limit must be >= 0, got {fc.scale_limit}' - ) + raise ValueError(f'{prefix}.scale_limit must be >= 0, got {fc.scale_limit}') _validate_fitting_config('box_vs_sigma.fitting', cfg.studies.box_vs_sigma.fitting) _validate_fitting_config('subpixel_offset.fitting', cfg.studies.subpixel_offset.fitting) @@ -624,9 +615,7 @@ def _validate_fitting_config(prefix: str, fc: FittingConfig) -> None: _validate_fitting_config('constraint_modes.fitting', cm.fitting) _validate_fitting_config('background.fitting', cfg.studies.background.fitting) _validate_fitting_config('noise_sensitivity.fitting', cfg.studies.noise_sensitivity.fitting) - _validate_fitting_config( - 'hot_pixel_rejection.fitting', cfg.studies.hot_pixel_rejection.fitting - ) + _validate_fitting_config('hot_pixel_rejection.fitting', cfg.studies.hot_pixel_rejection.fitting) valid_bkgnd_types = {'none', 'constant', 'linear', 'quadratic', 'noisy_constant'} for bt in cfg.studies.background.background_types: diff --git a/src/characterize_gauss_fit/output.py b/src/characterize_gauss_fit/output.py index e71a9f6..ab02117 100644 --- a/src/characterize_gauss_fit/output.py +++ b/src/characterize_gauss_fit/output.py @@ -353,17 +353,13 @@ def write_json_summary( group_summaries: list[dict[str, Any]] = [] for group in groups: if not isinstance(group, dict) or not isinstance(group.get('indices'), list): - raise TypeError( - f"Each group must be a dict with a list under 'indices', got {group!r}" - ) + raise TypeError(f"Each group must be a dict with a list under 'indices', got {group!r}") indices: list[int] = group['indices'] if len(indices) == 0: raise ValueError(f"Group 'indices' must not be empty, got {group!r}") for idx in indices: if not isinstance(idx, int): - raise TypeError( - f"Group 'indices' must be a list of ints, got {idx!r} in {group!r}" - ) + raise TypeError(f"Group 'indices' must be a list of ints, got {idx!r} in {group!r}") if idx < 0 or idx >= len(results): raise ValueError( f'Group index {idx} is out of range for results of length {len(results)}' diff --git a/src/characterize_gauss_fit/plotting.py b/src/characterize_gauss_fit/plotting.py index 89965ba..1c32cc1 100644 --- a/src/characterize_gauss_fit/plotting.py +++ b/src/characterize_gauss_fit/plotting.py @@ -148,9 +148,7 @@ def plot_heatmap( if mask is not None: if mask.shape != data.shape: - raise ValueError( - f'mask.shape {mask.shape} does not match data.shape {data.shape}' - ) + raise ValueError(f'mask.shape {mask.shape} does not match data.shape {data.shape}') display = np.where(mask, np.nan, display) img = ax.imshow(display, aspect='auto', cmap=cmap, origin='upper') From dcd55c4e2faa2f25e3e95d8cd463645d118aab66 Mon Sep 17 00:00:00 2001 From: Robert French Date: Wed, 15 Apr 2026 11:51:31 -0700 Subject: [PATCH 17/17] More CR fixes --- src/characterize_gauss_fit/config.py | 10 +++++++++- src/characterize_gauss_fit/plotting.py | 5 +++++ src/characterize_gauss_fit/study_background.py | 10 +++++++--- src/characterize_gauss_fit/study_constraints.py | 9 ++++++--- src/characterize_gauss_fit/study_min_offset.py | 13 +++++++++++-- src/characterize_gauss_fit/study_noise.py | 2 +- src/characterize_gauss_fit/study_offset.py | 4 +++- src/psfmodel/psf.py | 17 ++++++++++++++--- 8 files changed, 56 insertions(+), 14 deletions(-) diff --git a/src/characterize_gauss_fit/config.py b/src/characterize_gauss_fit/config.py index 722d89f..1f5be25 100644 --- a/src/characterize_gauss_fit/config.py +++ b/src/characterize_gauss_fit/config.py @@ -264,9 +264,17 @@ def _load_raw(path: pathlib.Path | None) -> dict[str, Any]: raise FileNotFoundError(f'Config file not found: {path}') with path.open('r', encoding='utf-8') as fh: try: - user_raw: dict[str, Any] = yaml.safe_load(fh) or {} + user_raw_loaded: dict[str, Any] | None = yaml.safe_load(fh) except yaml.YAMLError as exc: raise ValueError(f'Failed to parse config file {path}: {exc}') from exc + if user_raw_loaded is None: + user_raw: dict[str, Any] = {} + elif not isinstance(user_raw_loaded, dict): + raise ValueError( + f'Config file {path} must contain a mapping, got {type(user_raw_loaded)!r}' + ) + else: + user_raw = user_raw_loaded raw = _deep_merge(raw, user_raw) return raw diff --git a/src/characterize_gauss_fit/plotting.py b/src/characterize_gauss_fit/plotting.py index 1c32cc1..1890028 100644 --- a/src/characterize_gauss_fit/plotting.py +++ b/src/characterize_gauss_fit/plotting.py @@ -373,6 +373,11 @@ def plot_multi_panel_heatmaps( ): panel_display = display.copy() if mask_panels is not None: + if mask_panels[p_idx].shape != display.shape: + raise ValueError( + f'mask_panels[{p_idx}].shape {mask_panels[p_idx].shape} does not match ' + f'data_panels[{p_idx}].shape {display.shape}' + ) panel_display = np.where(mask_panels[p_idx], np.nan, panel_display) img = ax.imshow( diff --git a/src/characterize_gauss_fit/study_background.py b/src/characterize_gauss_fit/study_background.py index bb69ded..5704f29 100644 --- a/src/characterize_gauss_fit/study_background.py +++ b/src/characterize_gauss_fit/study_background.py @@ -77,7 +77,12 @@ def build_specs(cfg: Config) -> tuple[list[TrialSpec], list[int | None]]: for offset_y, offset_x in study.offsets: for bkgnd_type in study.background_types: - for amplitude in study.background_amplitudes: + # When there is no background, all amplitude values collapse to 0.0, + # so iterate only once to avoid producing identical duplicate trials. + amp_values = ( + [0.0] if bkgnd_type == BACKGROUND_TYPE_NONE else study.background_amplitudes + ) + for amplitude in amp_values: for fit_degree in fit_degrees: for ignore_center in study.bkgnd_ignore_centers: fitting = dataclasses.replace( @@ -85,7 +90,6 @@ def build_specs(cfg: Config) -> tuple[list[TrialSpec], list[int | None]]: bkgnd_degree=fit_degree, bkgnd_ignore_center=ignore_center, ) - inj_amplitude = 0.0 if bkgnd_type == BACKGROUND_TYPE_NONE else amplitude specs.append( utils.make_spec( sigma_y=study.sigma[0], @@ -99,7 +103,7 @@ def build_specs(cfg: Config) -> tuple[list[TrialSpec], list[int | None]]: fitting=fitting, fit_angle=0.0, background_type=bkgnd_type, - background_amplitude=inj_amplitude, + background_amplitude=amplitude, rng_seed=seed, ) ) diff --git a/src/characterize_gauss_fit/study_constraints.py b/src/characterize_gauss_fit/study_constraints.py index 5fefcac..d37a697 100644 --- a/src/characterize_gauss_fit/study_constraints.py +++ b/src/characterize_gauss_fit/study_constraints.py @@ -28,6 +28,8 @@ _LOG = logging.getLogger(__name__) _STUDY_NAME = 'constraint_modes' +_RNG_SEED_BASE = 5000 + @dataclasses.dataclass(frozen=True) class ConstraintMode: @@ -75,7 +77,7 @@ def _build_modes(cfg: Config) -> list[ConstraintMode]: if frac == 0.0: label = 'sigma_fixed_correct' else: - label = f'sigma_fixed_err{int(frac * 100):d}pct' + label = f'sigma_fixed_err{round(frac * 100):d}pct' modes.append(ConstraintMode(label, frac, frac, None, sigma_is_fraction=True)) # Angle fixed at true value, sigma floats. @@ -124,7 +126,7 @@ def build_specs(cfg: Config) -> tuple[list[TrialSpec], list[ConstraintMode]]: study = cfg.studies.constraint_modes modes = _build_modes(cfg) specs: list[TrialSpec] = [] - seed = 5000 + seed = _RNG_SEED_BASE for mode in modes: for shape in study.psf_shapes: @@ -198,13 +200,14 @@ def run(cfg: Config, *, num_workers: int = 1) -> None: ) study_dir = utils.ensure_study_dir(cfg.output_dir, _STUDY_NAME) - _write_outputs(cfg, specs, results, study_dir, modes) + _write_outputs(cfg, specs, results, study_dir=study_dir, modes=modes) def _write_outputs( cfg: Config, specs: list[TrialSpec], results: list[TrialResult], + *, study_dir: pathlib.Path, modes: list[ConstraintMode], ) -> None: diff --git a/src/characterize_gauss_fit/study_min_offset.py b/src/characterize_gauss_fit/study_min_offset.py index 6352048..ac133ff 100644 --- a/src/characterize_gauss_fit/study_min_offset.py +++ b/src/characterize_gauss_fit/study_min_offset.py @@ -32,6 +32,8 @@ _LOG = logging.getLogger(__name__) _STUDY_NAME = 'min_detectable_offset' +_RNG_SEED_BASE = 3000 + # A string sentinel used in CSV/JSON to label the noiseless condition. _NOISELESS_LABEL = 'noiseless' @@ -73,7 +75,7 @@ def build_specs(cfg: Config) -> list[TrialSpec]: study = cfg.studies.min_detectable_offset scale = cfg.generation.scale specs: list[TrialSpec] = [] - seed = 3000 + seed = _RNG_SEED_BASE # Noise conditions: (noise_rms, snr_label) pairs. conditions = _build_conditions(study, scale) @@ -127,13 +129,14 @@ def run(cfg: Config, *, num_workers: int = 1) -> None: ) study_dir = utils.ensure_study_dir(cfg.output_dir, _STUDY_NAME) - _write_outputs(cfg, specs, results, study_dir) + _write_outputs(cfg, specs, results, study_dir=study_dir) def _write_outputs( cfg: Config, specs: list[TrialSpec], results: list[TrialResult], + *, study_dir: pathlib.Path, ) -> None: """Write CSV, JSON, and PNG outputs for Study 3. @@ -143,6 +146,12 @@ def _write_outputs( specs: All trial specifications. results: All trial results. study_dir: Output subdirectory. + + Raises: + RuntimeError: If the number of result buckets consumed during bucketing + does not match the total number of results returned by + :func:`~executor.run_trials`, indicating a mismatch between the + specs generated by :func:`build_specs` and the results list. """ study = cfg.studies.min_detectable_offset scale = cfg.generation.scale diff --git a/src/characterize_gauss_fit/study_noise.py b/src/characterize_gauss_fit/study_noise.py index 5b61478..6464c78 100644 --- a/src/characterize_gauss_fit/study_noise.py +++ b/src/characterize_gauss_fit/study_noise.py @@ -219,7 +219,7 @@ def _collect_metric_grid( specs, results, [ - ('snr', lambda s: round(scale / s.noise_rms, 1) if s.noise_rms > 0 else math.inf), + ('snr', lambda s: scale / s.noise_rms if s.noise_rms > 0 else math.inf), ('sigma', lambda s: s.sigma_y), ], ) diff --git a/src/characterize_gauss_fit/study_offset.py b/src/characterize_gauss_fit/study_offset.py index 274edd3..fc1a860 100644 --- a/src/characterize_gauss_fit/study_offset.py +++ b/src/characterize_gauss_fit/study_offset.py @@ -27,6 +27,8 @@ _LOG = logging.getLogger(__name__) _STUDY_NAME = 'subpixel_offset' +_RNG_SEED_BASE = 2000 # seed range 2000+ reserved for this study to avoid RNG seed collisions + # Shared grouping key definitions for JSON summary and _write_outputs. _GROUP_KEYS: list[tuple[str, Callable[[TrialSpec], float]]] = [ ('sigma', lambda s: s.sigma_y), @@ -51,7 +53,7 @@ def build_specs(cfg: Config) -> list[TrialSpec]: study = cfg.studies.subpixel_offset offsets = np.linspace(study.offset_range[0], study.offset_range[1], study.offset_steps) specs: list[TrialSpec] = [] - seed = 2000 # seed range 2000+ reserved for this study to avoid RNG seed collisions + seed = _RNG_SEED_BASE for sigma in study.sigmas: for oy in offsets: for ox in offsets: diff --git a/src/psfmodel/psf.py b/src/psfmodel/psf.py index 5cf90bc..e79238e 100755 --- a/src/psfmodel/psf.py +++ b/src/psfmodel/psf.py @@ -1,6 +1,17 @@ -################################################################################ -# psfmodel/psf.py -################################################################################ +"""Core PSF abstraction and fitting machinery for psfmodel. + +This module defines the abstract :class:`PSF` base class and all shared fitting +infrastructure: background gradient estimation, sigma-clipping, Jacobian and +covariance computation, and bounded Powell optimisation for astrometric position +recovery. Concrete PSF subclasses (e.g. :class:`~psfmodel.gaussian.GaussianPSF`) +inherit from :class:`PSF` and implement the :meth:`PSF.eval` family of methods. + +Module-level constants: + _BKGND_SIGMA_FLOOR: Numerical noise floor for sigma-clipping in + :meth:`PSF.background_gradient_fit`. Convergence is declared when the + residual standard deviation falls below this fraction of the gradient + scale, preventing spurious masking driven by floating-point noise. +""" import logging from abc import ABC, abstractmethod

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

`j9W4An{`b2XCa4 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ͯ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 z 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