From 95a3116c175debdf97fd9dc1c984a587a90a5d3b Mon Sep 17 00:00:00 2001 From: Jacob Metoyer <150724801+Jacob-Met@users.noreply.github.com> Date: Thu, 8 Oct 2026 09:54:23 -0700 Subject: [PATCH 1/2] Stop the owned pytest group when a run is interrupted Preserve KeyboardInterrupt while bounding POSIX child cleanup. Include focused real-process tests, original negative controls, independent generated-phase receiving and exact current-parent reviews for issue #35. --- .../run-cancellation-18a24bf0c281/README.md | 69 + .../candidate-cli-composition.json | 128 ++ .../candidate-cli-receipt.json | 216 ++ .../candidate-cli.stdout | 1 + .../candidate-pytest-receipt.json | 159 ++ .../candidate-sandbox.stdout | 22 + .../candidate-source-freeze.json | 112 + .../current-baseline.stdout | 53 + .../current-focused-receipt.json | 85 + .../current-parent-review/REVIEW.md | 47 + .../current-parent-review.tar.xz | Bin 0 -> 73240 bytes .../current362-REVIEW.md | 42 + .../current362-qualification.json | 311 +++ .../current-parent-review/qualification.json | 66 + .../current-parent-source.json | 109 + .../focused-test-baseline-freeze.json | 84 + .../independent-generated-phase/README.md | 104 + .../baseline-report.json | 607 ++++++ .../candidate-intake.json | 123 ++ .../candidate-report.json | 574 +++++ .../driver-freeze.json | 24 + .../drivers/candidate_intake.py | 39 + .../drivers/prepare.py | 106 + .../drivers/receive.py | 241 +++ .../environment.json | 8 + .../native-receiving.tar.gz | Bin 0 -> 99068 bytes .../qualification.json | 73 + .../raw-manifest.json | 399 ++++ .../source-intake.json | 107 + .../static-candidate-review.json | 28 + .../original-cli-receipt.json | 208 ++ .../original-v1.stderr | 11 + .../original-v2.stdout | 1 + .../production.patch | 31 + .../proposed-scope.md | 41 + .../qualification.json | 60 + .../raw-manifest.json | 1858 +++++++++++++++++ .../raw-native.tar.gz | Bin 0 -> 314629 bytes .../receive-cancellation.py | 203 ++ .../receiver-correction.json | 8 + .../root-integration.json | 603 ++++++ .../run-cli-gate.py | 50 + .../run-pytest-gate.py | 57 + .../source-intake.json | 497 +++++ docs/run-cancellation.md | 21 + testpilot/sandbox.py | 17 +- tests/test_sandbox_interrupt.py | 170 ++ 47 files changed, 7772 insertions(+), 1 deletion(-) create mode 100644 docs/receipts/run-cancellation-18a24bf0c281/README.md create mode 100644 docs/receipts/run-cancellation-18a24bf0c281/candidate-cli-composition.json create mode 100644 docs/receipts/run-cancellation-18a24bf0c281/candidate-cli-receipt.json create mode 100644 docs/receipts/run-cancellation-18a24bf0c281/candidate-cli.stdout create mode 100644 docs/receipts/run-cancellation-18a24bf0c281/candidate-pytest-receipt.json create mode 100644 docs/receipts/run-cancellation-18a24bf0c281/candidate-sandbox.stdout create mode 100644 docs/receipts/run-cancellation-18a24bf0c281/candidate-source-freeze.json create mode 100644 docs/receipts/run-cancellation-18a24bf0c281/current-baseline.stdout create mode 100644 docs/receipts/run-cancellation-18a24bf0c281/current-focused-receipt.json create mode 100644 docs/receipts/run-cancellation-18a24bf0c281/current-parent-review/REVIEW.md create mode 100644 docs/receipts/run-cancellation-18a24bf0c281/current-parent-review/current-parent-review.tar.xz create mode 100644 docs/receipts/run-cancellation-18a24bf0c281/current-parent-review/current362-REVIEW.md create mode 100644 docs/receipts/run-cancellation-18a24bf0c281/current-parent-review/current362-qualification.json create mode 100644 docs/receipts/run-cancellation-18a24bf0c281/current-parent-review/qualification.json create mode 100644 docs/receipts/run-cancellation-18a24bf0c281/current-parent-source.json create mode 100644 docs/receipts/run-cancellation-18a24bf0c281/focused-test-baseline-freeze.json create mode 100644 docs/receipts/run-cancellation-18a24bf0c281/independent-generated-phase/README.md create mode 100644 docs/receipts/run-cancellation-18a24bf0c281/independent-generated-phase/baseline-report.json create mode 100644 docs/receipts/run-cancellation-18a24bf0c281/independent-generated-phase/candidate-intake.json create mode 100644 docs/receipts/run-cancellation-18a24bf0c281/independent-generated-phase/candidate-report.json create mode 100644 docs/receipts/run-cancellation-18a24bf0c281/independent-generated-phase/driver-freeze.json create mode 100644 docs/receipts/run-cancellation-18a24bf0c281/independent-generated-phase/drivers/candidate_intake.py create mode 100644 docs/receipts/run-cancellation-18a24bf0c281/independent-generated-phase/drivers/prepare.py create mode 100644 docs/receipts/run-cancellation-18a24bf0c281/independent-generated-phase/drivers/receive.py create mode 100644 docs/receipts/run-cancellation-18a24bf0c281/independent-generated-phase/environment.json create mode 100644 docs/receipts/run-cancellation-18a24bf0c281/independent-generated-phase/native-receiving.tar.gz create mode 100644 docs/receipts/run-cancellation-18a24bf0c281/independent-generated-phase/qualification.json create mode 100644 docs/receipts/run-cancellation-18a24bf0c281/independent-generated-phase/raw-manifest.json create mode 100644 docs/receipts/run-cancellation-18a24bf0c281/independent-generated-phase/source-intake.json create mode 100644 docs/receipts/run-cancellation-18a24bf0c281/independent-generated-phase/static-candidate-review.json create mode 100644 docs/receipts/run-cancellation-18a24bf0c281/original-cli-receipt.json create mode 100644 docs/receipts/run-cancellation-18a24bf0c281/original-v1.stderr create mode 100644 docs/receipts/run-cancellation-18a24bf0c281/original-v2.stdout create mode 100644 docs/receipts/run-cancellation-18a24bf0c281/production.patch create mode 100644 docs/receipts/run-cancellation-18a24bf0c281/proposed-scope.md create mode 100644 docs/receipts/run-cancellation-18a24bf0c281/qualification.json create mode 100644 docs/receipts/run-cancellation-18a24bf0c281/raw-manifest.json create mode 100644 docs/receipts/run-cancellation-18a24bf0c281/raw-native.tar.gz create mode 100644 docs/receipts/run-cancellation-18a24bf0c281/receive-cancellation.py create mode 100644 docs/receipts/run-cancellation-18a24bf0c281/receiver-correction.json create mode 100644 docs/receipts/run-cancellation-18a24bf0c281/root-integration.json create mode 100644 docs/receipts/run-cancellation-18a24bf0c281/run-cli-gate.py create mode 100644 docs/receipts/run-cancellation-18a24bf0c281/run-pytest-gate.py create mode 100644 docs/receipts/run-cancellation-18a24bf0c281/source-intake.json create mode 100644 docs/run-cancellation.md create mode 100644 tests/test_sandbox_interrupt.py diff --git a/docs/receipts/run-cancellation-18a24bf0c281/README.md b/docs/receipts/run-cancellation-18a24bf0c281/README.md new file mode 100644 index 0000000..deb55ab --- /dev/null +++ b/docs/receipts/run-cancellation-18a24bf0c281/README.md @@ -0,0 +1,69 @@ +# TestPilot cancellation receiving + +This repair stops the launched POSIX process group when KeyboardInterrupt interrupts the sandbox's active subprocess communication. It reaps the leader with a bounded wait and propagates the interrupt. The original CLI returned while pytest continued performing fixture work after that return; the candidate stops that work and retains ordinary successful runs. + +Tracked scope is [issue #35](https://github.com/Jacob-Met/testpilot/issues/35). Root owns GitHub integration and publication. The source proposal changes only `testpilot/sandbox.py::_run`, adds `tests/test_sandbox_interrupt.py` and `docs/run-cancellation.md`, and carries this additive evidence. + +## Source identity + +| Role | Exact identity | +| --- | --- | +| Original discovery source, actually executed | main `f3b2135cad31852b599350564fe76dd160a6a522`, tree `d0107a6f8b3b8cc00dadebc5f794060f275f3f5b` | +| Current maintained parent | main `7f44c4f134f4d56d37dd14c7c2d2aaa3c8c8749e`, tree `ea3f7b4170f1515abb7188d31dc269623b9e0738` | +| Original and current sandbox blob | `8ca4a4102c7890e89eae99548e28ba8325974f1e` | +| Frozen candidate native source commit | `649dc7d1fd02493af298876eea0697849404bba9` | +| Candidate sandbox blob | `84330f96ebd71b37dc40575fa2ac59ba53cf2a72` | +| Candidate sandbox SHA256 | `0adf5eb81f8fd15ca09170c5328e6ff4165e1a0f903221b9730de3b480be0b1b` | + +The original native source capture has 12 files. The separate current-parent capture has 14: the complete nine-module TestPilot package, its configuration/README/workflow, and two existing sandbox test files. The current canonical tree has 1,063 blobs; these receiving captures are not a full upstream clone. The publication packet is a delta and must be applied while preserving that full parent tree. + +Output-staging PR34 changed `loop.py` and README between the original and current captures. The entire sandbox remained byte-identical. Current `loop.py` blob `ed0f5f7f057c217b931a1756bd679ae087247e0a` and every other received current-parent file remain unchanged by this repair. + +The production patch adds 15 handler lines and changes its docstring. Removing that handler and restoring the docstring reconstructs the entire original sandbox byte-for-byte, including the existing timeout branch. Candidate freeze records all 16 source/context/test/documentation inputs before execution. + +## Native results + +All runs below used the existing native Mac environment: macOS 26.6.2 arm64, Python 3.12.8, pytest 9.1.1. No package was installed. + +| Receiving gate | Original outcome | Frozen candidate outcome | +| --- | --- | --- | +| Actual CLI, interrupted baseline pytest plus uninterrupted ScriptedModel control | Two CLI actions on f3: three of four predicates pass; pytest performs work released only after its parent exits | Same frozen driver on current7f + repair: four of four predicates pass | +| Focused real-process interruption tests | Four cases on exact current7f: three fail and one detached-session control passes | All four pass | +| Existing sandbox and timeout controls | Preserved source; no duplicate baseline run | Thirteen pass; one existing coverage test skips because coverage is absent | + +The candidate combined pytest gate is **17 passed, 1 skipped**, with no test errors. The actual CLI gate independently confirms no interrupted output publication, no post-parent-exit pytest work, successful ordinary execution, and unchanged source bytes. Its interrupted caller exits with -2 in about 0.290 seconds. The ordinary control produces two passing pytest cases and two accepted ScriptedModel entries. + +These are four focused pytest cases, fourteen existing pytest cases, and two CLI actions with four predicates; the predicates are not four independent CLI tests. + +The focused process observations before fixture cleanup are: + +| Fixture | Current baseline | Candidate | +| --- | --- | --- | +| Live leader, same-group child | Leader and child still running; leader not reaped | Both stopped; leader reaped | +| Already-exited leader, same-group child | Leader reaped; child still running | Child stopped; leader remains reaped | +| Live leader, detached child holding stdout | Leader and child still running; leader not reaped | Leader stopped/reaped; detached child still running | +| Already-exited leader, detached child holding stdout | Leader reaped; detached child still running | Same explicit detached-session boundary; caller returns promptly | + +The receiver subsequently stops its own detached helpers. New fixtures bind signals to the unique worker script path and recorded process group, provide eight-second worker lifetimes, and have a ten-second fallback cleanup deadline. All completed focused tests verified that their owned fixture processes were no longer running at cleanup completion. The CLI receiver separately records owned pytest-group shutdown. + +## Preserved failures and provenance details + +The first CLI receiver actually completed both native flows, but aggregate metadata construction read `ledger.calls` instead of the maintained `ledger.entries` field. Its raw KeyError, successful ordinary report, cancellation continuation, and source bytes remain in the raw archive. It is not counted as a clean aggregate run. + +The separately frozen v2 receiver corrects that key and exposes input/output/interpreter arguments. Its fixture and cancellation boundary are unchanged. Driver SHA256 is `e80ecd44e02f6bc32c0994bc1665c8ed21c86fa6de266f81a2a0043d0d72b16c`. The original clean negative receipt SHA256 is `2f8ee8748971ac121032f8db75746bd89e523c48fecf3815e4aa1329c13d98b8`. + +The unchanged v2 driver's raw receipt contains historical hardcoded f3 head/tree labels. For the candidate run, **candidate-cli-composition.json is the authoritative current7f + repair binding**, with all actual source hashes. The raw candidate receipt is retained without rewriting those historical fields; it is not evidence that f3 was executed again. + +The current-parent focused tests were frozen before the repair at `d017324348fba8035646b77426aa3b94497d6d89`, SHA256 `466bbdd470001a5e23e55a1205352dfccc8c714470fe903ff241b28416449325`. Their three failures and passing control were retained at `fe6adc337ada4421a1e978d58998eec3e8478d43` before the production source freeze. + +## Artifacts and review boundaries + +- `candidate-source-freeze.json`, `current-parent-source.json`, and `qualification.json` bind the source, environment, commands, outcomes, and ownership scope. +- `original-cli-receipt.json`, `current-focused-receipt.json`, `candidate-pytest-receipt.json`, and `candidate-cli-composition.json` preserve the separate stages. +- `production.patch` is the complete production-code delta. +- `receive-cancellation.py` is the unchanged real CLI receiver. The focused regression tests are published in the ordinary tests directory. +- `raw-native.tar.gz` contains every retained original/current/candidate input, raw gate output, fixture and receipt selected by `raw-manifest.json`. Every regular archive member is reopened and byte-verified. Pytest convenience symlinks are retained as target metadata in that manifest rather than emitted as absolute archive links. + +The native signal receiving is scoped to KeyboardInterrupt during the sandbox's initial communication on POSIX. It does not qualify SIGTERM/SIGKILL handling, pre-Popen interruption, Windows behavior, escaped-session containment, optimized-Python execution, or the whole repository suite. Cleanup remains bounded if the OS refuses a signal or the leader cannot be reaped promptly; the original interrupt propagates. The sandbox remains process-level isolation. No live provider, developer repository, deployment, goal, service or other owner's source was used. + +The existing timeout and normal-result contracts remain unchanged. An interrupted attempt does not reach the CLI's normal publication step; earlier test effects or model calls are not rolled back. diff --git a/docs/receipts/run-cancellation-18a24bf0c281/candidate-cli-composition.json b/docs/receipts/run-cancellation-18a24bf0c281/candidate-cli-composition.json new file mode 100644 index 0000000..9b6cd7d --- /dev/null +++ b/docs/receipts/run-cancellation-18a24bf0c281/candidate-cli-composition.json @@ -0,0 +1,128 @@ +{ + "source_commit": "649dc7d1fd02493af298876eea0697849404bba9", + "actual_canonical_parent": "7f44c4f134f4d56d37dd14c7c2d2aaa3c8c8749e", + "actual_canonical_tree": "ea3f7b4170f1515abb7188d31dc269623b9e0738", + "actual_source": "/Users/me/testpilot-cancellation-18a24bf0c281/candidate", + "source_freeze": [ + { + "path": ".github/workflows/ci.yml", + "size": 586, + "sha256": "236fd600bea41471b373b91d8e389aa12c58cba79c83efa071f6ab805f1ebf59", + "git_blob": "86a3236e38155506b5fe6077322d508f7f676649" + }, + { + "path": "README.md", + "size": 12669, + "sha256": "9e1c93aa93ca1942d002c3bd28779d780b568b606cfa7e001058c13997e34854", + "git_blob": "24a6c0fab34c05d17ef216a42e97a0fae2389fc2" + }, + { + "path": "docs/run-cancellation.md", + "size": 2985, + "sha256": "ab37125e75d03005813477f6ec1703117ca844209a559f289a8be5ee720bf126", + "git_blob": "d8956abb39915e235531c3e217050ccc2089173d" + }, + { + "path": "pyproject.toml", + "size": 676, + "sha256": "5503eab7b6c145d4de241e5be805a4fb8f30828053cbe39dc05a43c2896642eb", + "git_blob": "952255ac87e2c7da57457fdbf3554914f17f6d05" + }, + { + "path": "testpilot/__init__.py", + "size": 390, + "sha256": "65c63b80d7da34a83a6049a79c24b8335878cd49cc79951fdefc5f1532ae841f", + "git_blob": "296210dd0d58703de4a4e4c9ad72a0944c9400ca" + }, + { + "path": "testpilot/__main__.py", + "size": 6065, + "sha256": "90577ea3a939642f5cb29818f6360df96d9fa0d35d05af11bf97054425c32c84", + "git_blob": "2d98e2a85320ac2827ea48fa9d58d30a60354b6a" + }, + { + "path": "testpilot/_pytest_generated.py", + "size": 2943, + "sha256": "d65352d7bade965d7b9dc73efe5d4d01844fa8c7474a1bdcdb3b708f6decf768", + "git_blob": "90b82725bc0eb1ff3d7cb517c4c9dedcfd14bdcc" + }, + { + "path": "testpilot/diff.py", + "size": 9387, + "sha256": "2cf38707ea175bb1f04d55335de344ae943458658055332b4aa68f27763214c0", + "git_blob": "29dd325ab288ac1d43fd70f33b207281f5375d4b" + }, + { + "path": "testpilot/html_report.py", + "size": 20656, + "sha256": "183703d05f32552f7f7c39aa958c39bae61d824e3fa9cd6a6dd686f0d4c228a4", + "git_blob": "bb30d903542d836f5afe8e116ba894f93d9d3a0c" + }, + { + "path": "testpilot/loop.py", + "size": 25480, + "sha256": "dde4ee52e0a1fabded9902137ede6dd68aa17f6542c316e5d134b8510495170b", + "git_blob": "ed0f5f7f057c217b931a1756bd679ae087247e0a" + }, + { + "path": "testpilot/model.py", + "size": 10175, + "sha256": "f6ae697f1f5d686ffdcb96f5451d1a9600d7d41c7bcf324d7e8c276a107e8673", + "git_blob": "6d4abca38cc1c256df00bcac7923e2dc0bd42b16" + }, + { + "path": "testpilot/recheck.py", + "size": 11599, + "sha256": "1ecbe0ff7da7bb4a8117d730a76624c8929e0e4b10cb9d502ab7358cb38d8f2e", + "git_blob": "4ab26cbb83beff563b9c3683c593b3efd2495b6b" + }, + { + "path": "testpilot/sandbox.py", + "size": 13277, + "sha256": "0adf5eb81f8fd15ca09170c5328e6ff4165e1a0f903221b9730de3b480be0b1b", + "git_blob": "84330f96ebd71b37dc40575fa2ac59ba53cf2a72" + }, + { + "path": "tests/test_sandbox.py", + "size": 2545, + "sha256": "ee47d6a3f40c2f612197614088ea40cbdd50a7f04047780c95a71e37c1555992", + "git_blob": "de2fde7cd5dd683c338810d4707987ea5a2e9055" + }, + { + "path": "tests/test_sandbox_deadline.py", + "size": 4248, + "sha256": "6a9abfdc79bcb2cc3102d94b6b61d20ea09b0f89d5c7c5842387ce77c136d7e1", + "git_blob": "d8ebce5a81205aad005e45a280aec898e3e89820" + }, + { + "path": "tests/test_sandbox_interrupt.py", + "size": 6944, + "sha256": "466bbdd470001a5e23e55a1205352dfccc8c714470fe903ff241b28416449325", + "git_blob": "184e969e57fc2a483b6a4e7b1709e16f66ce37e6" + } + ], + "raw_receiver_receipt": "/Users/me/testpilot-cancellation-18a24bf0c281/evidence/candidate-cli/receipt.json", + "raw_receiver_receipt_sha256": "dde39c5ceb688d4c04f165b77362e19b66247b5214cf7f289ff9b290a9fcb785", + "historical_label_notice": "The unchanged frozen receiver contains hardcoded canonical_head/source_tree fields naming its original f3 discovery source. They are historical labels, not the executed source identity for this candidate run. The actual executed current parent plus repair and all input hashes are explicitly bound here; raw receipt bytes are preserved.", + "argv": [ + "/Users/me/capturesuite-independent-checkpoint-18a24bf0c281/venv/bin/python", + "/Users/me/testpilot-cancellation-18a24bf0c281/receiving/receive_cancellation.py", + "--source", + "/Users/me/testpilot-cancellation-18a24bf0c281/candidate", + "--output", + "/Users/me/testpilot-cancellation-18a24bf0c281/evidence/candidate-cli" + ], + "exit_code": 0, + "elapsed_s": 3.4259277919773012, + "platform": "macOS-26.6.2-arm64-arm-64bit", + "python": "3.12.8 (main, Dec 3 2024, 18:42:41) [Clang 16.0.0 (clang-1600.0.26.4)]", + "driver_sha256": "e80ecd44e02f6bc32c0994bc1665c8ed21c86fa6de266f81a2a0043d0d72b16c", + "checks": { + "interrupted_cli_failed_without_publishing_result": true, + "interrupted_pytest_work_stops_before_parent_returns": true, + "ordinary_scripted_run_passes": true, + "all_original_source_bytes_unchanged": true + }, + "source_unchanged": true, + "scope": "Two actual native CLI actions with the unchanged frozen receiver; no live provider or developer repository. Original f3 evidence remains separate. This receipt qualifies the exact current7f44 staging composition plus the cancellation repair." +} diff --git a/docs/receipts/run-cancellation-18a24bf0c281/candidate-cli-receipt.json b/docs/receipts/run-cancellation-18a24bf0c281/candidate-cli-receipt.json new file mode 100644 index 0000000..2085a15 --- /dev/null +++ b/docs/receipts/run-cancellation-18a24bf0c281/candidate-cli-receipt.json @@ -0,0 +1,216 @@ +{ + "canonical_head": "f3b2135cad31852b599350564fe76dd160a6a522", + "source_tree": "d0107a6f8b3b8cc00dadebc5f794060f275f3f5b", + "received_source": "/Users/me/testpilot-cancellation-18a24bf0c281/candidate", + "driver_sha256": "e80ecd44e02f6bc32c0994bc1665c8ed21c86fa6de266f81a2a0043d0d72b16c", + "python": "3.12.8", + "platform": "macOS-26.6.2-arm64-arm-64bit", + "selected_python": "/Users/me/capturesuite-independent-checkpoint-18a24bf0c281/venv/bin/python", + "cases": [ + { + "label": "interrupt", + "argv": [ + "/Users/me/capturesuite-independent-checkpoint-18a24bf0c281/venv/bin/python", + "-m", + "testpilot", + "run", + "--repo", + "/Users/me/testpilot-cancellation-18a24bf0c281/evidence/candidate-cli/interrupt/repo", + "--diff", + "/Users/me/testpilot-cancellation-18a24bf0c281/evidence/candidate-cli/interrupt/change.diff", + "--backend", + "scripted", + "--script", + "/Users/me/testpilot-cancellation-18a24bf0c281/evidence/candidate-cli/interrupt/script", + "--python", + "/Users/me/capturesuite-independent-checkpoint-18a24bf0c281/venv/bin/python", + "--timeout", + "12", + "--rounds", + "0", + "--out", + "/Users/me/testpilot-cancellation-18a24bf0c281/evidence/candidate-cli/interrupt/output" + ], + "exit_code": -2, + "events": [ + { + "event": "pytest_ready", + "testpilot_pid": 48810, + "command_identity": "/opt/homebrew/Cellar/python@3.12/3.12.8/Frameworks/Python.framework/Versions/3.12/Resources/Python.app/Contents/MacOS/Python -m pytest -q -p no:cacheprovider --rootdir /tmp/testpilot-bjpettv2/repo -o addopts= -o junit_family=xunit2 --junitxml=/tmp/testpilot-bjpettv2/junit.xml", + "pid": 48820, + "pgid": 48820 + }, + { + "event": "parent_exited_after_sigint", + "returncode": -2, + "elapsed_s": 0.2904583750059828 + }, + { + "event": "post_parent_exit_release", + "pytest_continued": false + }, + { + "event": "owned_pytest_not_running_at_exit", + "pid": 48820 + } + ], + "fixture_before": { + "repo/sample.py": "e77335c804a116a2e8a7445a96ea133bd60d7bbe5361606d933bcb5509392962", + "repo/tests/test_existing.py": "1dd8da4121a47f20d2b8e66da109a26ed76b0fc480c0ad10e10bcadfa97ddc18", + "script/02-generate.md": "9bc8e4cf0d52a79e42edad54a0ca5f1a961483f01e1d9f6707187e1fe11959e8", + "script/01-plan.md": "d537d6c884758129eaca0d0cf72a19d2e6e83d325ad98e4dbceb9cdeede18658" + }, + "fixture_after": { + "repo/sample.py": "e77335c804a116a2e8a7445a96ea133bd60d7bbe5361606d933bcb5509392962", + "repo/tests/test_existing.py": "1dd8da4121a47f20d2b8e66da109a26ed76b0fc480c0ad10e10bcadfa97ddc18", + "script/02-generate.md": "9bc8e4cf0d52a79e42edad54a0ca5f1a961483f01e1d9f6707187e1fe11959e8", + "script/01-plan.md": "d537d6c884758129eaca0d0cf72a19d2e6e83d325ad98e4dbceb9cdeede18658" + }, + "fixture_unchanged": true, + "continued_after_parent_exit": false, + "output_exists": false + }, + { + "label": "ordinary-control", + "argv": [ + "/Users/me/capturesuite-independent-checkpoint-18a24bf0c281/venv/bin/python", + "-m", + "testpilot", + "run", + "--repo", + "/Users/me/testpilot-cancellation-18a24bf0c281/evidence/candidate-cli/ordinary-control/repo", + "--diff", + "/Users/me/testpilot-cancellation-18a24bf0c281/evidence/candidate-cli/ordinary-control/change.diff", + "--backend", + "scripted", + "--script", + "/Users/me/testpilot-cancellation-18a24bf0c281/evidence/candidate-cli/ordinary-control/script", + "--python", + "/Users/me/capturesuite-independent-checkpoint-18a24bf0c281/venv/bin/python", + "--timeout", + "12", + "--rounds", + "0", + "--out", + "/Users/me/testpilot-cancellation-18a24bf0c281/evidence/candidate-cli/ordinary-control/output" + ], + "exit_code": 0, + "events": [ + { + "event": "pytest_ready", + "testpilot_pid": 49025, + "command_identity": "/opt/homebrew/Cellar/python@3.12/3.12.8/Frameworks/Python.framework/Versions/3.12/Resources/Python.app/Contents/MacOS/Python -m pytest -q -p no:cacheprovider --rootdir /tmp/testpilot-xb0hfqou/repo -o addopts= -o junit_family=xunit2 --junitxml=/tmp/testpilot-xb0hfqou/junit.xml", + "pid": 49028, + "pgid": 49028 + }, + { + "event": "ordinary_completed", + "returncode": 0, + "status": "passed", + "final": { + "returncode": 0, + "timed_out": false, + "duration_s": 0.211, + "timeout_s": 12.0, + "output": ".. [100%]\n2 passed in 0.09s\n", + "cases": [ + { + "nodeid": "tests.test_existing::test_existing_work", + "outcome": "passed", + "message": "", + "generated_file": null + }, + { + "nodeid": "test_generated_double", + "outcome": "passed", + "message": "", + "generated_file": "tests/test_testpilot_generated.py" + } + ], + "coverage": null, + "generated_files": [ + "tests/test_testpilot_generated.py" + ], + "junit_available": true, + "passed": 2, + "failed": 0, + "errors": 0, + "skipped": 0, + "ok": true, + "summary": "2 passed, 0 failed, 0 errors, 0 skipped (rc=0); generated: 1 passed of 1 collected", + "generated": { + "collected": 1, + "passed": 1, + "failed": 0, + "error": 0, + "skipped": 0 + } + }, + "model_calls": 2 + }, + { + "event": "owned_pytest_not_running_at_exit", + "pid": 49028 + } + ], + "fixture_before": { + "repo/sample.py": "e77335c804a116a2e8a7445a96ea133bd60d7bbe5361606d933bcb5509392962", + "repo/tests/test_existing.py": "3f5eeb6a8b68465c3f9b1aff8a28bbdd9edacbbd6bf3a170adc99feebd1278d6", + "script/02-generate.md": "9bc8e4cf0d52a79e42edad54a0ca5f1a961483f01e1d9f6707187e1fe11959e8", + "script/01-plan.md": "d537d6c884758129eaca0d0cf72a19d2e6e83d325ad98e4dbceb9cdeede18658" + }, + "fixture_after": { + "repo/sample.py": "e77335c804a116a2e8a7445a96ea133bd60d7bbe5361606d933bcb5509392962", + "repo/tests/test_existing.py": "3f5eeb6a8b68465c3f9b1aff8a28bbdd9edacbbd6bf3a170adc99feebd1278d6", + "script/02-generate.md": "9bc8e4cf0d52a79e42edad54a0ca5f1a961483f01e1d9f6707187e1fe11959e8", + "script/01-plan.md": "d537d6c884758129eaca0d0cf72a19d2e6e83d325ad98e4dbceb9cdeede18658" + }, + "fixture_unchanged": true, + "continued_after_parent_exit": null, + "output_exists": true + } + ], + "checks": { + "interrupted_cli_failed_without_publishing_result": true, + "interrupted_pytest_work_stops_before_parent_returns": true, + "ordinary_scripted_run_passes": true, + "all_original_source_bytes_unchanged": true + }, + "source_before": { + "pyproject.toml": "5503eab7b6c145d4de241e5be805a4fb8f30828053cbe39dc05a43c2896642eb", + "README.md": "9e1c93aa93ca1942d002c3bd28779d780b568b606cfa7e001058c13997e34854", + "testpilot/html_report.py": "183703d05f32552f7f7c39aa958c39bae61d824e3fa9cd6a6dd686f0d4c228a4", + "testpilot/__init__.py": "65c63b80d7da34a83a6049a79c24b8335878cd49cc79951fdefc5f1532ae841f", + "testpilot/model.py": "f6ae697f1f5d686ffdcb96f5451d1a9600d7d41c7bcf324d7e8c276a107e8673", + "testpilot/sandbox.py": "0adf5eb81f8fd15ca09170c5328e6ff4165e1a0f903221b9730de3b480be0b1b", + "testpilot/loop.py": "dde4ee52e0a1fabded9902137ede6dd68aa17f6542c316e5d134b8510495170b", + "testpilot/diff.py": "2cf38707ea175bb1f04d55335de344ae943458658055332b4aa68f27763214c0", + "testpilot/recheck.py": "1ecbe0ff7da7bb4a8117d730a76624c8929e0e4b10cb9d502ab7358cb38d8f2e", + "testpilot/_pytest_generated.py": "d65352d7bade965d7b9dc73efe5d4d01844fa8c7474a1bdcdb3b708f6decf768", + "testpilot/__main__.py": "90577ea3a939642f5cb29818f6360df96d9fa0d35d05af11bf97054425c32c84", + "tests/test_sandbox_deadline.py": "6a9abfdc79bcb2cc3102d94b6b61d20ea09b0f89d5c7c5842387ce77c136d7e1", + "tests/test_sandbox.py": "ee47d6a3f40c2f612197614088ea40cbdd50a7f04047780c95a71e37c1555992", + "tests/test_sandbox_interrupt.py": "466bbdd470001a5e23e55a1205352dfccc8c714470fe903ff241b28416449325", + "docs/run-cancellation.md": "ab37125e75d03005813477f6ec1703117ca844209a559f289a8be5ee720bf126", + ".github/workflows/ci.yml": "236fd600bea41471b373b91d8e389aa12c58cba79c83efa071f6ab805f1ebf59" + }, + "source_after": { + "pyproject.toml": "5503eab7b6c145d4de241e5be805a4fb8f30828053cbe39dc05a43c2896642eb", + "README.md": "9e1c93aa93ca1942d002c3bd28779d780b568b606cfa7e001058c13997e34854", + "testpilot/html_report.py": "183703d05f32552f7f7c39aa958c39bae61d824e3fa9cd6a6dd686f0d4c228a4", + "testpilot/__init__.py": "65c63b80d7da34a83a6049a79c24b8335878cd49cc79951fdefc5f1532ae841f", + "testpilot/model.py": "f6ae697f1f5d686ffdcb96f5451d1a9600d7d41c7bcf324d7e8c276a107e8673", + "testpilot/sandbox.py": "0adf5eb81f8fd15ca09170c5328e6ff4165e1a0f903221b9730de3b480be0b1b", + "testpilot/loop.py": "dde4ee52e0a1fabded9902137ede6dd68aa17f6542c316e5d134b8510495170b", + "testpilot/diff.py": "2cf38707ea175bb1f04d55335de344ae943458658055332b4aa68f27763214c0", + "testpilot/recheck.py": "1ecbe0ff7da7bb4a8117d730a76624c8929e0e4b10cb9d502ab7358cb38d8f2e", + "testpilot/_pytest_generated.py": "d65352d7bade965d7b9dc73efe5d4d01844fa8c7474a1bdcdb3b708f6decf768", + "testpilot/__main__.py": "90577ea3a939642f5cb29818f6360df96d9fa0d35d05af11bf97054425c32c84", + "tests/test_sandbox_deadline.py": "6a9abfdc79bcb2cc3102d94b6b61d20ea09b0f89d5c7c5842387ce77c136d7e1", + "tests/test_sandbox.py": "ee47d6a3f40c2f612197614088ea40cbdd50a7f04047780c95a71e37c1555992", + "tests/test_sandbox_interrupt.py": "466bbdd470001a5e23e55a1205352dfccc8c714470fe903ff241b28416449325", + "docs/run-cancellation.md": "ab37125e75d03005813477f6ec1703117ca844209a559f289a8be5ee720bf126", + ".github/workflows/ci.yml": "236fd600bea41471b373b91d8e389aa12c58cba79c83efa071f6ab805f1ebf59" + }, + "scope": "A real SIGINT delivered only to the owned CLI child while its real pytest is active; the pytest fixture is bounded to five seconds and touches only these own fixture paths. No external provider, live task, package installation, production edit or escaped-descendant containment claim." +} diff --git a/docs/receipts/run-cancellation-18a24bf0c281/candidate-cli.stdout b/docs/receipts/run-cancellation-18a24bf0c281/candidate-cli.stdout new file mode 100644 index 0000000..bb886d4 --- /dev/null +++ b/docs/receipts/run-cancellation-18a24bf0c281/candidate-cli.stdout @@ -0,0 +1 @@ +{"checks": {"interrupted_cli_failed_without_publishing_result": true, "interrupted_pytest_work_stops_before_parent_returns": true, "ordinary_scripted_run_passes": true, "all_original_source_bytes_unchanged": true}, "passed": 4, "total": 4, "interrupted_returncode": -2, "post_cancel_work_observed": false} diff --git a/docs/receipts/run-cancellation-18a24bf0c281/candidate-pytest-receipt.json b/docs/receipts/run-cancellation-18a24bf0c281/candidate-pytest-receipt.json new file mode 100644 index 0000000..374e295 --- /dev/null +++ b/docs/receipts/run-cancellation-18a24bf0c281/candidate-pytest-receipt.json @@ -0,0 +1,159 @@ +{ + "argv": [ + "/Users/me/capturesuite-independent-checkpoint-18a24bf0c281/venv/bin/python", + "-m", + "pytest", + "-q", + "-rA", + "-p", + "no:cacheprovider", + "--basetemp", + "/Users/me/testpilot-cancellation-18a24bf0c281/evidence/candidate-sandbox-gate/temporary-fixtures", + "--junitxml", + "/Users/me/testpilot-cancellation-18a24bf0c281/evidence/candidate-sandbox-gate/junit.xml", + "tests/test_sandbox_interrupt.py", + "tests/test_sandbox_deadline.py", + "tests/test_sandbox.py" + ], + "source": "/Users/me/testpilot-cancellation-18a24bf0c281/candidate", + "exit_code": 0, + "elapsed_s": 11.327836457989179, + "python": "3.12.8 (main, Dec 3 2024, 18:42:41) [Clang 16.0.0 (clang-1600.0.26.4)]", + "platform": "macOS-26.6.2-arm64-arm-64bit", + "pytest": "9.1.1", + "canonical_parent": "7f44c4f134f4d56d37dd14c7c2d2aaa3c8c8749e", + "source_before": { + "pyproject.toml": "5503eab7b6c145d4de241e5be805a4fb8f30828053cbe39dc05a43c2896642eb", + "README.md": "9e1c93aa93ca1942d002c3bd28779d780b568b606cfa7e001058c13997e34854", + "testpilot/html_report.py": "183703d05f32552f7f7c39aa958c39bae61d824e3fa9cd6a6dd686f0d4c228a4", + "testpilot/__init__.py": "65c63b80d7da34a83a6049a79c24b8335878cd49cc79951fdefc5f1532ae841f", + "testpilot/model.py": "f6ae697f1f5d686ffdcb96f5451d1a9600d7d41c7bcf324d7e8c276a107e8673", + "testpilot/sandbox.py": "0adf5eb81f8fd15ca09170c5328e6ff4165e1a0f903221b9730de3b480be0b1b", + "testpilot/loop.py": "dde4ee52e0a1fabded9902137ede6dd68aa17f6542c316e5d134b8510495170b", + "testpilot/diff.py": "2cf38707ea175bb1f04d55335de344ae943458658055332b4aa68f27763214c0", + "testpilot/recheck.py": "1ecbe0ff7da7bb4a8117d730a76624c8929e0e4b10cb9d502ab7358cb38d8f2e", + "testpilot/_pytest_generated.py": "d65352d7bade965d7b9dc73efe5d4d01844fa8c7474a1bdcdb3b708f6decf768", + "testpilot/__main__.py": "90577ea3a939642f5cb29818f6360df96d9fa0d35d05af11bf97054425c32c84", + "tests/test_sandbox_deadline.py": "6a9abfdc79bcb2cc3102d94b6b61d20ea09b0f89d5c7c5842387ce77c136d7e1", + "tests/test_sandbox.py": "ee47d6a3f40c2f612197614088ea40cbdd50a7f04047780c95a71e37c1555992", + "tests/test_sandbox_interrupt.py": "466bbdd470001a5e23e55a1205352dfccc8c714470fe903ff241b28416449325", + "docs/run-cancellation.md": "ab37125e75d03005813477f6ec1703117ca844209a559f289a8be5ee720bf126", + ".github/workflows/ci.yml": "236fd600bea41471b373b91d8e389aa12c58cba79c83efa071f6ab805f1ebf59" + }, + "source_after": { + "pyproject.toml": "5503eab7b6c145d4de241e5be805a4fb8f30828053cbe39dc05a43c2896642eb", + "README.md": "9e1c93aa93ca1942d002c3bd28779d780b568b606cfa7e001058c13997e34854", + "testpilot/html_report.py": "183703d05f32552f7f7c39aa958c39bae61d824e3fa9cd6a6dd686f0d4c228a4", + "testpilot/__init__.py": "65c63b80d7da34a83a6049a79c24b8335878cd49cc79951fdefc5f1532ae841f", + "testpilot/model.py": "f6ae697f1f5d686ffdcb96f5451d1a9600d7d41c7bcf324d7e8c276a107e8673", + "testpilot/sandbox.py": "0adf5eb81f8fd15ca09170c5328e6ff4165e1a0f903221b9730de3b480be0b1b", + "testpilot/loop.py": "dde4ee52e0a1fabded9902137ede6dd68aa17f6542c316e5d134b8510495170b", + "testpilot/diff.py": "2cf38707ea175bb1f04d55335de344ae943458658055332b4aa68f27763214c0", + "testpilot/recheck.py": "1ecbe0ff7da7bb4a8117d730a76624c8929e0e4b10cb9d502ab7358cb38d8f2e", + "testpilot/_pytest_generated.py": "d65352d7bade965d7b9dc73efe5d4d01844fa8c7474a1bdcdb3b708f6decf768", + "testpilot/__main__.py": "90577ea3a939642f5cb29818f6360df96d9fa0d35d05af11bf97054425c32c84", + "tests/test_sandbox_deadline.py": "6a9abfdc79bcb2cc3102d94b6b61d20ea09b0f89d5c7c5842387ce77c136d7e1", + "tests/test_sandbox.py": "ee47d6a3f40c2f612197614088ea40cbdd50a7f04047780c95a71e37c1555992", + "tests/test_sandbox_interrupt.py": "466bbdd470001a5e23e55a1205352dfccc8c714470fe903ff241b28416449325", + "docs/run-cancellation.md": "ab37125e75d03005813477f6ec1703117ca844209a559f289a8be5ee720bf126", + ".github/workflows/ci.yml": "236fd600bea41471b373b91d8e389aa12c58cba79c83efa071f6ab805f1ebf59" + }, + "source_unchanged": true, + "cases": [ + { + "name": "test_interrupt_stops_same_group_descendant_and_reaps_leader[group-wait]", + "class": "tests.test_sandbox_interrupt", + "status": "passed" + }, + { + "name": "test_interrupt_stops_same_group_descendant_and_reaps_leader[group-exit]", + "class": "tests.test_sandbox_interrupt", + "status": "passed" + }, + { + "name": "test_interrupt_does_not_drain_a_detached_helpers_pipe[escape-wait]", + "class": "tests.test_sandbox_interrupt", + "status": "passed" + }, + { + "name": "test_interrupt_does_not_drain_a_detached_helpers_pipe[escape-exit]", + "class": "tests.test_sandbox_interrupt", + "status": "passed" + }, + { + "name": "test_combined_output_and_returncode_remain_available", + "class": "tests.test_sandbox_deadline", + "status": "passed" + }, + { + "name": "test_timeout_finishes_when_detached_helper_retains_pipe[False]", + "class": "tests.test_sandbox_deadline", + "status": "passed" + }, + { + "name": "test_timeout_finishes_when_detached_helper_retains_pipe[True]", + "class": "tests.test_sandbox_deadline", + "status": "passed" + }, + { + "name": "test_timeout_preserves_partial_multibyte_diagnostics", + "class": "tests.test_sandbox_deadline", + "status": "passed" + }, + { + "name": "test_empty_timeout_output_stays_empty", + "class": "tests.test_sandbox_deadline", + "status": "passed" + }, + { + "name": "test_real_pytest_timeout_then_fresh_success", + "class": "tests.test_sandbox_deadline", + "status": "passed" + }, + { + "name": "test_pass_and_isolation", + "class": "tests.test_sandbox", + "status": "passed" + }, + { + "name": "test_failure_reported", + "class": "tests.test_sandbox", + "status": "passed" + }, + { + "name": "test_collection_error_counts_as_error", + "class": "tests.test_sandbox", + "status": "passed" + }, + { + "name": "test_timeout_kills", + "class": "tests.test_sandbox", + "status": "passed" + }, + { + "name": "test_rejects_escape", + "class": "tests.test_sandbox", + "status": "passed" + }, + { + "name": "test_no_tests_is_not_ok", + "class": "tests.test_sandbox", + "status": "passed" + }, + { + "name": "test_env_scrubbed", + "class": "tests.test_sandbox", + "status": "passed" + }, + { + "name": "test_coverage_collected", + "class": "tests.test_sandbox", + "status": "skipped" + } + ], + "raw_logs": { + "pytest.stdout": "90377ed6a70b2516f23e24108f544af75def2980a7991fd83bb62dc25007f4e0", + "pytest.stderr": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "junit.xml": "2fa1a8cb8a9ef0be6c91afb6f0e4cc892c58733c2e04b96f5ffab53e352ba452" + } +} diff --git a/docs/receipts/run-cancellation-18a24bf0c281/candidate-sandbox.stdout b/docs/receipts/run-cancellation-18a24bf0c281/candidate-sandbox.stdout new file mode 100644 index 0000000..7386420 --- /dev/null +++ b/docs/receipts/run-cancellation-18a24bf0c281/candidate-sandbox.stdout @@ -0,0 +1,22 @@ +.................s [100%] +==================================== PASSES ==================================== +=========================== short test summary info ============================ +PASSED tests/test_sandbox_interrupt.py::test_interrupt_stops_same_group_descendant_and_reaps_leader[group-wait] +PASSED tests/test_sandbox_interrupt.py::test_interrupt_stops_same_group_descendant_and_reaps_leader[group-exit] +PASSED tests/test_sandbox_interrupt.py::test_interrupt_does_not_drain_a_detached_helpers_pipe[escape-wait] +PASSED tests/test_sandbox_interrupt.py::test_interrupt_does_not_drain_a_detached_helpers_pipe[escape-exit] +PASSED tests/test_sandbox_deadline.py::test_combined_output_and_returncode_remain_available +PASSED tests/test_sandbox_deadline.py::test_timeout_finishes_when_detached_helper_retains_pipe[False] +PASSED tests/test_sandbox_deadline.py::test_timeout_finishes_when_detached_helper_retains_pipe[True] +PASSED tests/test_sandbox_deadline.py::test_timeout_preserves_partial_multibyte_diagnostics +PASSED tests/test_sandbox_deadline.py::test_empty_timeout_output_stays_empty +PASSED tests/test_sandbox_deadline.py::test_real_pytest_timeout_then_fresh_success +PASSED tests/test_sandbox.py::test_pass_and_isolation +PASSED tests/test_sandbox.py::test_failure_reported +PASSED tests/test_sandbox.py::test_collection_error_counts_as_error +PASSED tests/test_sandbox.py::test_timeout_kills +PASSED tests/test_sandbox.py::test_rejects_escape +PASSED tests/test_sandbox.py::test_no_tests_is_not_ok +PASSED tests/test_sandbox.py::test_env_scrubbed +SKIPPED [1] tests/test_sandbox.py:61: coverage not installed +17 passed, 1 skipped in 11.18s diff --git a/docs/receipts/run-cancellation-18a24bf0c281/candidate-source-freeze.json b/docs/receipts/run-cancellation-18a24bf0c281/candidate-source-freeze.json new file mode 100644 index 0000000..ccc0de3 --- /dev/null +++ b/docs/receipts/run-cancellation-18a24bf0c281/candidate-source-freeze.json @@ -0,0 +1,112 @@ +{ + "canonical_parent": "7f44c4f134f4d56d37dd14c7c2d2aaa3c8c8749e", + "canonical_tree": "ea3f7b4170f1515abb7188d31dc269623b9e0738", + "original_executed_parent": "f3b2135cad31852b599350564fe76dd160a6a522", + "negative_receiving_commit": "fe6adc337ada4421a1e978d58998eec3e8478d43", + "issue": "https://github.com/Jacob-Met/testpilot/issues/35", + "source_paths": [ + "testpilot/sandbox.py", + "tests/test_sandbox_interrupt.py", + "docs/run-cancellation.md" + ], + "files": [ + { + "path": ".github/workflows/ci.yml", + "size": 586, + "sha256": "236fd600bea41471b373b91d8e389aa12c58cba79c83efa071f6ab805f1ebf59", + "git_blob": "86a3236e38155506b5fe6077322d508f7f676649" + }, + { + "path": "README.md", + "size": 12669, + "sha256": "9e1c93aa93ca1942d002c3bd28779d780b568b606cfa7e001058c13997e34854", + "git_blob": "24a6c0fab34c05d17ef216a42e97a0fae2389fc2" + }, + { + "path": "docs/run-cancellation.md", + "size": 2985, + "sha256": "ab37125e75d03005813477f6ec1703117ca844209a559f289a8be5ee720bf126", + "git_blob": "d8956abb39915e235531c3e217050ccc2089173d" + }, + { + "path": "pyproject.toml", + "size": 676, + "sha256": "5503eab7b6c145d4de241e5be805a4fb8f30828053cbe39dc05a43c2896642eb", + "git_blob": "952255ac87e2c7da57457fdbf3554914f17f6d05" + }, + { + "path": "testpilot/__init__.py", + "size": 390, + "sha256": "65c63b80d7da34a83a6049a79c24b8335878cd49cc79951fdefc5f1532ae841f", + "git_blob": "296210dd0d58703de4a4e4c9ad72a0944c9400ca" + }, + { + "path": "testpilot/__main__.py", + "size": 6065, + "sha256": "90577ea3a939642f5cb29818f6360df96d9fa0d35d05af11bf97054425c32c84", + "git_blob": "2d98e2a85320ac2827ea48fa9d58d30a60354b6a" + }, + { + "path": "testpilot/_pytest_generated.py", + "size": 2943, + "sha256": "d65352d7bade965d7b9dc73efe5d4d01844fa8c7474a1bdcdb3b708f6decf768", + "git_blob": "90b82725bc0eb1ff3d7cb517c4c9dedcfd14bdcc" + }, + { + "path": "testpilot/diff.py", + "size": 9387, + "sha256": "2cf38707ea175bb1f04d55335de344ae943458658055332b4aa68f27763214c0", + "git_blob": "29dd325ab288ac1d43fd70f33b207281f5375d4b" + }, + { + "path": "testpilot/html_report.py", + "size": 20656, + "sha256": "183703d05f32552f7f7c39aa958c39bae61d824e3fa9cd6a6dd686f0d4c228a4", + "git_blob": "bb30d903542d836f5afe8e116ba894f93d9d3a0c" + }, + { + "path": "testpilot/loop.py", + "size": 25480, + "sha256": "dde4ee52e0a1fabded9902137ede6dd68aa17f6542c316e5d134b8510495170b", + "git_blob": "ed0f5f7f057c217b931a1756bd679ae087247e0a" + }, + { + "path": "testpilot/model.py", + "size": 10175, + "sha256": "f6ae697f1f5d686ffdcb96f5451d1a9600d7d41c7bcf324d7e8c276a107e8673", + "git_blob": "6d4abca38cc1c256df00bcac7923e2dc0bd42b16" + }, + { + "path": "testpilot/recheck.py", + "size": 11599, + "sha256": "1ecbe0ff7da7bb4a8117d730a76624c8929e0e4b10cb9d502ab7358cb38d8f2e", + "git_blob": "4ab26cbb83beff563b9c3683c593b3efd2495b6b" + }, + { + "path": "testpilot/sandbox.py", + "size": 13277, + "sha256": "0adf5eb81f8fd15ca09170c5328e6ff4165e1a0f903221b9730de3b480be0b1b", + "git_blob": "84330f96ebd71b37dc40575fa2ac59ba53cf2a72" + }, + { + "path": "tests/test_sandbox.py", + "size": 2545, + "sha256": "ee47d6a3f40c2f612197614088ea40cbdd50a7f04047780c95a71e37c1555992", + "git_blob": "de2fde7cd5dd683c338810d4707987ea5a2e9055" + }, + { + "path": "tests/test_sandbox_deadline.py", + "size": 4248, + "sha256": "6a9abfdc79bcb2cc3102d94b6b61d20ea09b0f89d5c7c5842387ce77c136d7e1", + "git_blob": "d8ebce5a81205aad005e45a280aec898e3e89820" + }, + { + "path": "tests/test_sandbox_interrupt.py", + "size": 6944, + "sha256": "466bbdd470001a5e23e55a1205352dfccc8c714470fe903ff241b28416449325", + "git_blob": "184e969e57fc2a483b6a4e7b1709e16f66ce37e6" + } + ], + "timeout_and_remaining_module_reconstruction_matches_original": true, + "native_execution": "Not yet executed; this is the pre-execution source freeze." +} diff --git a/docs/receipts/run-cancellation-18a24bf0c281/current-baseline.stdout b/docs/receipts/run-cancellation-18a24bf0c281/current-baseline.stdout new file mode 100644 index 0000000..36165fb --- /dev/null +++ b/docs/receipts/run-cancellation-18a24bf0c281/current-baseline.stdout @@ -0,0 +1,53 @@ +FFF. [100%] +=================================== FAILURES =================================== +___ test_interrupt_stops_same_group_descendant_and_reaps_leader[group-wait] ____ + +tmp_path = PosixPath('/Users/me/testpilot-cancellation-18a24bf0c281/evidence/current-baseline-focused/temporary-fixtures/test_interrupt_stops_same_grou0') +mode = 'group-wait' + + @pytest.mark.parametrize("mode", ["group-wait", "group-exit"]) + def test_interrupt_stops_same_group_descendant_and_reaps_leader(tmp_path, mode): + observed = interrupt_run(tmp_path, mode) + assert observed["receipt"]["kind"] == "KeyboardInterrupt" +> assert observed["receipt"]["leader_reaped_before_return"], observed +E AssertionError: {'receipt': {'kind': 'KeyboardInterrupt', 'leader_reaped_before_return': False, 'waitpid_probe': [0, 0]}, 'elapsed_s': 0.28633162495680153, 'leader_running': True, 'child_running': True, ...} +E assert False + +tests/test_sandbox_interrupt.py:157: AssertionError +___ test_interrupt_stops_same_group_descendant_and_reaps_leader[group-exit] ____ + +tmp_path = PosixPath('/Users/me/testpilot-cancellation-18a24bf0c281/evidence/current-baseline-focused/temporary-fixtures/test_interrupt_stops_same_grou1') +mode = 'group-exit' + + @pytest.mark.parametrize("mode", ["group-wait", "group-exit"]) + def test_interrupt_stops_same_group_descendant_and_reaps_leader(tmp_path, mode): + observed = interrupt_run(tmp_path, mode) + assert observed["receipt"]["kind"] == "KeyboardInterrupt" + assert observed["receipt"]["leader_reaped_before_return"], observed + assert not observed["leader_running"], observed +> assert not observed["child_running"], observed +E AssertionError: {'receipt': {'kind': 'KeyboardInterrupt', 'leader_reaped_before_return': True, 'waitpid_probe': None}, 'elapsed_s': 0.008811958017759025, 'leader_running': False, 'child_running': True, ...} +E assert not True + +tests/test_sandbox_interrupt.py:159: AssertionError +______ test_interrupt_does_not_drain_a_detached_helpers_pipe[escape-wait] ______ + +tmp_path = PosixPath('/Users/me/testpilot-cancellation-18a24bf0c281/evidence/current-baseline-focused/temporary-fixtures/test_interrupt_does_not_drain_0') +mode = 'escape-wait' + + @pytest.mark.parametrize("mode", ["escape-wait", "escape-exit"]) + def test_interrupt_does_not_drain_a_detached_helpers_pipe(tmp_path, mode): + observed = interrupt_run(tmp_path, mode) + assert observed["receipt"]["kind"] == "KeyboardInterrupt" +> assert observed["receipt"]["leader_reaped_before_return"], observed +E AssertionError: {'receipt': {'kind': 'KeyboardInterrupt', 'leader_reaped_before_return': False, 'waitpid_probe': [0, 0]}, 'elapsed_s': 0.27368849993217736, 'leader_running': True, 'child_running': True, ...} +E assert False + +tests/test_sandbox_interrupt.py:167: AssertionError +==================================== PASSES ==================================== +=========================== short test summary info ============================ +PASSED tests/test_sandbox_interrupt.py::test_interrupt_does_not_drain_a_detached_helpers_pipe[escape-exit] +FAILED tests/test_sandbox_interrupt.py::test_interrupt_stops_same_group_descendant_and_reaps_leader[group-wait] +FAILED tests/test_sandbox_interrupt.py::test_interrupt_stops_same_group_descendant_and_reaps_leader[group-exit] +FAILED tests/test_sandbox_interrupt.py::test_interrupt_does_not_drain_a_detached_helpers_pipe[escape-wait] +3 failed, 1 passed in 1.31s diff --git a/docs/receipts/run-cancellation-18a24bf0c281/current-focused-receipt.json b/docs/receipts/run-cancellation-18a24bf0c281/current-focused-receipt.json new file mode 100644 index 0000000..002d058 --- /dev/null +++ b/docs/receipts/run-cancellation-18a24bf0c281/current-focused-receipt.json @@ -0,0 +1,85 @@ +{ + "argv": [ + "/Users/me/capturesuite-independent-checkpoint-18a24bf0c281/venv/bin/python", + "-m", + "pytest", + "-q", + "-rA", + "-p", + "no:cacheprovider", + "--basetemp", + "/Users/me/testpilot-cancellation-18a24bf0c281/evidence/current-baseline-focused/temporary-fixtures", + "--junitxml", + "/Users/me/testpilot-cancellation-18a24bf0c281/evidence/current-baseline-focused/junit.xml", + "tests/test_sandbox_interrupt.py" + ], + "source": "/Users/me/testpilot-cancellation-18a24bf0c281/candidate", + "exit_code": 1, + "elapsed_s": 1.49846837494988, + "python": "3.12.8 (main, Dec 3 2024, 18:42:41) [Clang 16.0.0 (clang-1600.0.26.4)]", + "platform": "macOS-26.6.2-arm64-arm-64bit", + "pytest": "9.1.1", + "canonical_parent": "7f44c4f134f4d56d37dd14c7c2d2aaa3c8c8749e", + "source_before": { + "pyproject.toml": "5503eab7b6c145d4de241e5be805a4fb8f30828053cbe39dc05a43c2896642eb", + "README.md": "9e1c93aa93ca1942d002c3bd28779d780b568b606cfa7e001058c13997e34854", + "testpilot/html_report.py": "183703d05f32552f7f7c39aa958c39bae61d824e3fa9cd6a6dd686f0d4c228a4", + "testpilot/__init__.py": "65c63b80d7da34a83a6049a79c24b8335878cd49cc79951fdefc5f1532ae841f", + "testpilot/model.py": "f6ae697f1f5d686ffdcb96f5451d1a9600d7d41c7bcf324d7e8c276a107e8673", + "testpilot/sandbox.py": "8d5aadafff5188473ec45eb1cd8f01fb562836ff05bf12a27939cde83b33472a", + "testpilot/loop.py": "dde4ee52e0a1fabded9902137ede6dd68aa17f6542c316e5d134b8510495170b", + "testpilot/diff.py": "2cf38707ea175bb1f04d55335de344ae943458658055332b4aa68f27763214c0", + "testpilot/recheck.py": "1ecbe0ff7da7bb4a8117d730a76624c8929e0e4b10cb9d502ab7358cb38d8f2e", + "testpilot/_pytest_generated.py": "d65352d7bade965d7b9dc73efe5d4d01844fa8c7474a1bdcdb3b708f6decf768", + "testpilot/__main__.py": "90577ea3a939642f5cb29818f6360df96d9fa0d35d05af11bf97054425c32c84", + "tests/test_sandbox_deadline.py": "6a9abfdc79bcb2cc3102d94b6b61d20ea09b0f89d5c7c5842387ce77c136d7e1", + "tests/test_sandbox.py": "ee47d6a3f40c2f612197614088ea40cbdd50a7f04047780c95a71e37c1555992", + "tests/test_sandbox_interrupt.py": "466bbdd470001a5e23e55a1205352dfccc8c714470fe903ff241b28416449325", + ".github/workflows/ci.yml": "236fd600bea41471b373b91d8e389aa12c58cba79c83efa071f6ab805f1ebf59" + }, + "source_after": { + "pyproject.toml": "5503eab7b6c145d4de241e5be805a4fb8f30828053cbe39dc05a43c2896642eb", + "README.md": "9e1c93aa93ca1942d002c3bd28779d780b568b606cfa7e001058c13997e34854", + "testpilot/html_report.py": "183703d05f32552f7f7c39aa958c39bae61d824e3fa9cd6a6dd686f0d4c228a4", + "testpilot/__init__.py": "65c63b80d7da34a83a6049a79c24b8335878cd49cc79951fdefc5f1532ae841f", + "testpilot/model.py": "f6ae697f1f5d686ffdcb96f5451d1a9600d7d41c7bcf324d7e8c276a107e8673", + "testpilot/sandbox.py": "8d5aadafff5188473ec45eb1cd8f01fb562836ff05bf12a27939cde83b33472a", + "testpilot/loop.py": "dde4ee52e0a1fabded9902137ede6dd68aa17f6542c316e5d134b8510495170b", + "testpilot/diff.py": "2cf38707ea175bb1f04d55335de344ae943458658055332b4aa68f27763214c0", + "testpilot/recheck.py": "1ecbe0ff7da7bb4a8117d730a76624c8929e0e4b10cb9d502ab7358cb38d8f2e", + "testpilot/_pytest_generated.py": "d65352d7bade965d7b9dc73efe5d4d01844fa8c7474a1bdcdb3b708f6decf768", + "testpilot/__main__.py": "90577ea3a939642f5cb29818f6360df96d9fa0d35d05af11bf97054425c32c84", + "tests/test_sandbox_deadline.py": "6a9abfdc79bcb2cc3102d94b6b61d20ea09b0f89d5c7c5842387ce77c136d7e1", + "tests/test_sandbox.py": "ee47d6a3f40c2f612197614088ea40cbdd50a7f04047780c95a71e37c1555992", + "tests/test_sandbox_interrupt.py": "466bbdd470001a5e23e55a1205352dfccc8c714470fe903ff241b28416449325", + ".github/workflows/ci.yml": "236fd600bea41471b373b91d8e389aa12c58cba79c83efa071f6ab805f1ebf59" + }, + "source_unchanged": true, + "cases": [ + { + "name": "test_interrupt_stops_same_group_descendant_and_reaps_leader[group-wait]", + "class": "tests.test_sandbox_interrupt", + "status": "failure" + }, + { + "name": "test_interrupt_stops_same_group_descendant_and_reaps_leader[group-exit]", + "class": "tests.test_sandbox_interrupt", + "status": "failure" + }, + { + "name": "test_interrupt_does_not_drain_a_detached_helpers_pipe[escape-wait]", + "class": "tests.test_sandbox_interrupt", + "status": "failure" + }, + { + "name": "test_interrupt_does_not_drain_a_detached_helpers_pipe[escape-exit]", + "class": "tests.test_sandbox_interrupt", + "status": "passed" + } + ], + "raw_logs": { + "pytest.stdout": "f2723bb61c2390d45054ac6a48409bd00a5c07ea46aab1bd64c6a76b6847697f", + "pytest.stderr": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "junit.xml": "4de01ac95f3d09c573088de4645ff28fcd55a9caa5b4796bfa8c61d786f667fc" + } +} diff --git a/docs/receipts/run-cancellation-18a24bf0c281/current-parent-review/REVIEW.md b/docs/receipts/run-cancellation-18a24bf0c281/current-parent-review/REVIEW.md new file mode 100644 index 0000000..e6d0f13 --- /dev/null +++ b/docs/receipts/run-cancellation-18a24bf0c281/current-parent-review/REVIEW.md @@ -0,0 +1,47 @@ +# TestPilot #35 current-parent integration review + +## Decision + +The fresh canonical main is still **7f44c4f134f4d56d37dd14c7c2d2aaa3c8c8749e**, tree **ea3f7b4170f1515abb7188d31dc269623b9e0738**. It is identical to the cancellation author's qualified parent. There are **no later production changes** to reconcile. + +The complete recursive tree contains **1,063 leaves**, is untruncated, and has no AGENTS.md. Every directory Git hash reconstructs exactly. All **14 captured receiving-source/context pins** match current main, including all **nine TestPilot runtime modules**. The native receiving closure and existing default behavior therefore remain the exact qualified composition. + +| Relevant source | Current original blob | Candidate blob | +| --- | --- | --- | +| testpilot/sandbox.py | 8ca4a4102c7890e89eae99548e28ba8325974f1e | 84330f96ebd71b37dc40575fa2ac59ba53cf2a72 | +| testpilot/loop.py | ed0f5f7f057c217b931a1756bd679ae087247e0a | unchanged | +| testpilot/__main__.py | 2d98e2a85320ac2827ea48fa9d58d30a60354b6a | unchanged | +| testpilot/recheck.py | 4ab26cbb83beff563b9c3683c593b3efd2495b6b | unchanged | + +Removing only the candidate's KeyboardInterrupt handler and restoring its _run docstring reproduces the entire original sandbox Git blob. This static reconstruction verifies that the existing timeout and remaining module bytes are retained; it is not another cancellation test. + +## Complete author packet overlay + +The packet at /Users/me/testpilot-cancellation-18a24bf0c281-publication/publication-packet.json is exactly **713,816 bytes**, SHA-256 **9883fd2329d7cc312507b6704eed0a4c98e268bf18b2e2d6b6acaa11d27a61a9**. All **27 entries** were decoded and checked for byte count, SHA-256, Git blob, mode and type. + +Only testpilot/sandbox.py replaces an existing parent path. The other **26 paths are additions**. All **1,062 unrelated parent leaves** remain exact. The computed tree for this author-only overlay is: + +**6a99b015b8ffead56c9c866005b0fbeeeeb61e72 — 1,089 leaves.** + +This tree excludes the product agent's separately owned independent-receiving additions. It is an expected publication tree, not an observed remote branch or merge. Root must include and verify that distinct packet separately. + +Author source freeze: **649dc7d1fd02493af298876eea0697849404bba9**. Author evidence commit: **70ac0bde74a6256bc76e9503592ac56d0dcb790d**. + +## Current ownership and unlanded work + +[Issue #36](https://github.com/Jacob-Met/testpilot/issues/36) remains open with **draft PR #40**, head **949d41109600811912b096d287d02f6b74d0c47d**, based on this same main. Its stated production scope is the additive run --no-coverage option and constructor forwarding; it excludes sandbox, loop and recheck. It has not landed in the examined parent. No execution of that proposed composition is claimed here. + +[Issue #37](https://github.com/Jacob-Met/testpilot/issues/37) remains open. Its latest comment **6064067702** freezes independent offline HTML consumer inputs before candidate disclosure. The maintained tree has no testpilot/recheck_html.py, and recheck.py remains the exact qualified original. The scope excludes sandbox, CLI, loop and model. The observed open PR list contains #40, #38 and #33; no recheck-renderer source PR appears there. + +The open explicit-target #38 and saved-run comparison #33 remain with their owners. They are not silently composed into this unchanged-main review. + +## Evidence and limits + +- qualification.json: exact decision, parent/source identities and observed ownership. +- packet-manifest.json: all 27 verified author payload entries. +- receiving-closure.json: the exact 14-file original and 16-file candidate source manifests. +- expected-author-overlay.json: every expected path/mode/type/blob after the author-only overlay. +- intake/github-current.json: complete ref, commit, tree, issue/comment and open-PR responses. +- verify_current.py: static reproduction using the retained intake and exact author packet. + +No TestPilot code was imported or executed by this review. No source test, independent generated-phase receiving, model call, live project, GitHub mutation or service operation was performed. Future main advances require their own exact-parent assessment. diff --git a/docs/receipts/run-cancellation-18a24bf0c281/current-parent-review/current-parent-review.tar.xz b/docs/receipts/run-cancellation-18a24bf0c281/current-parent-review/current-parent-review.tar.xz new file mode 100644 index 0000000000000000000000000000000000000000..774b319d45efb5e5a0c07fe6b4b4d9ec6be25e3b GIT binary patch literal 73240 zcmV(rK<>Z&H+ooF000E$*0e?f03iVu0001VFXf}^HvQ&M-l_)7R8M`DKAkd zb0$}>2O(%Baf*o%UoUWzG&B$d9~5{E%uvvjNhd(k)^dd0WOiX(!&xBKWg2q16hlPb zJ$qw?Zs2M`jtLtSLnQjz&PB2`^J0H&7g{lL#0<*?zaIgmC`~dG8x!9)ZHU%N6(z9w zL?@|%^f_3pm{K^UPo;g}y!XjYSxsY8RePm2h6S>SziF07DOlm}fvWx$_mp_zX+E29 zm_}|pW8Rp->^>SvRUfNfyEBl%*gNLxYmq24)r91~y}W5L+rt=T&;8nOs=nrGbFI5s z4O4fZTQ_#&GpryrFw7;^)SM-@goq648^*tByIYoaM>IZP6`IKfhcIqtD!c`hDO&m% zl{Ut2K(nVE74r}l%wAPKQE*{)U3t+zrB6=dJ}e;4(@p#9%-Zhj9+b%Wx$S;;Apv7M zmKfR)^E|%*Sr$Fb_jh(g@AS`nd~@>5=BpT|R%fft|I^O%a zD051|bl|PU)woemVW4B)W$RiM%X-RMB62o~3HjTwE<=f0 z+)}SsGi}H88XEv3$Gs!BVQT@eq#vH4Xys_#^`1*#wHwj9%<%X|fwvQRCCX@jhwGv0 zGf6Yv`d8K6NB&nlGRQ(_F8fsMAPJB+SFtJYKVm7_IbnjK(*d3P3&HbQv=QFq<&I}C z{rbQm=okJb4r_2J65Is7GeXyp<_iHtE#+aZK0n4OEH)9NTO7PH3ei4;>u0WOEKW(! zZcCc)r_wP1Sdhs%YTQy-j(Q}x$y^&TiE6t!+VkFE&@XGC2#_FCJl(E$Jd3ujFu9aM zJ#rM>rbBTCi-BoJ#ZSN>LC?;sKtCq?RA(g>h%L0@{JhoRktN%) zyH=Z^!khTneN$!%rP$gd2xv#5EX>;tzAd?+o<&FUsB@oy=Xm}C7bOrTCTqpeUBQTV zoLWZFoY$k3U(Sz_E@-(G%61SAAF9#H;K2W|9fFHj7@nIaMr$a<(}ChM)Jhj`Gq&nM z9!?fx$>>cyj7t3K7Y0%Sefdz#6(^y8oC?)?ozzGK$f>@6Ij@#Mo#SuMO( z7U|E(APYY#6tz!aX6RBTOoC8-%+%Y0U%Egr8RFWA73-dAE2p3M0OZkQ(frckN#f!z zP5;s1l&G~BK8ri6I~2?HIvaZ|aRTy5%b{C9ReldiyV^3%2f8SRfo$Abtu0E0rs`04 z_m*0HAoLv(^uTlrTi`)z+OA3ompIo*h?FdAl3@Fz^@jj`%sX;UE6ZO8RIyn8l} zb_-gTT2F+mQ%xX-3%rS=6s@BRq!2NPfXIed7}e^QVq1^K*#*1a8Gp>f@&>EcP`@$f z+3B$pL6zBQFjGzTBdqY~T$t4GzYEUv&7Ff{OE058UYH3Nv1TfAIicY@wz=VcZ;D7h z-nYTZ2=N2UFtCEP_KajAsii$M^x_b`!lu)Z*6dQnlaEVsFK3lV6LeOP8FHoK=-FWE zE3bgKEC?IL6{*I0Q6E@KM%uo>IZw=zrJN` zT=9}%o;v90c>7gwr|$2IoI<)o=I_&s`fsLygna~W8<50L#4X8h`sEBrzd)?SGR z_ZxtDs2n(YnaZ5f60<|jc6?UTXJKrYcHKvAs^%-lHhAqN6PvOMf8%V;3kD#KW=Zfd|^BL6=^4wx4xSUgN!kUaEorL~<=9J&W1U z2{%n7ir}HfsbnVFPJTbTXcrj{A&hEtc$mMLKza>7_YJ(^h;t%EGA3@lZGV8g91)ah z#xjWw^`~Fas)$R2AaarDe?(8oRQJ_tUrD@&f_z}QS4vN;B)TTi=3W8%tkh6q1#C-( z&>^NrW!Cw3G6H~xkvPqxTFa)%XI(B~rjiGyXhg`c5|L~`_0caLcg0Rfi@F1fl6ATs z{ApK~Da>K$J_fhz&^kpE>#k6}4UA1FDtzJBpiW{B-;((NnPX8qO)~j7Z3G_bPDD^Ok6pc0B?p!#HNN}$QIVMUJnar zi16e-)h;RHeZXL^eSE6^{_xa37GRha+)a*sG9BUPsR9%(2k{(WGfAxgC$hUDoQ@pX z76UlDfZa-!^O&U6O&U9m=01vQq~%Q+74%WY>jzDHgLE@HX>Vo$L1~H?MXR9$-dnP6 z?xa|nfeJJ?3O{!5vRtB9+h=p&DeneTJG8S@s{o$9VMuCiIoV<#Kj|U?*ZyIbiU=7eJxSX>U2*%-{**X)8lCswCSLY_ zO`pI*DV<6Zpyr~(3OzodAs8xR65v*|i|IQ2qh`XG>8t#;tB#CtZbt|IuZf~4ZXBpi zwJXGMae-8bI&n(|Ht_x$O&8Ei%Pi4IkZw;cK)DZbu!#vTz7%4yRarWa!AQvj6-OC> zD~8kW^BVS>3l60MUootC%UvbNB{>X#4(pF4pUBF0BITHcDdP~A80@H_5{!^NmyxFV zv(tZ1Zq^}R??CnyZ3&;rC1dqmyv9{bUZ>#CBdIa7hD|k>beA|`3!NTbvv_hqI>C{+ z-;?QWB)u;RC$YNaBk*hfN>Bwu*;4RmVp@aW4_P%nnK(WcLqkdvv!e>!dvN_QUEd$# ztflNB>sk$5MYgwg#8@(B;VnoyPa40Gu}^;Xy8LEe5*pGdR@1+5b6Y!m)?OzZ8*lfCY#t;GrDVHI%eKwS8^c}Y9+<#=W(gb1 zZm+~rKWlf-r4dNP7RrjTpjDcHVs%`DoA8%DEk9vy8d`VE-1W%`8=Zo^bmtGRT&NPDw~l+kf9t%K33tqv zrA^z@!ZQv+mA`}&ua^$KbH@v?exq|ED_~@Gb*9)!Uh=f|Kl6LlxwM5GrHC(Grd`zY zj(F&e;H~HtMS{I^{54jdaL%&+x^lgkAOm$lPz^$JAkSrc@OPf2`#$Ih!|JfSR1U2 z`a1EwQA+u)F~OHdB!2-J#kPkk#@x=QC>QJXOxe+b9_m4{A;fh915>J;0@=gZcjxH^ zCsN5U(H@|8xF#h0_;C!W*cgNXEj*n(j$@7EH9I+OQg^;1H+I>se%+S2$QTh(CO|Fc zY1WSV?6szhhH7zsu*?>w z@@%b5)ivG_!MZtJBS{tsy8j_Q;I~*bag5K|M>Xac`?cJ5O|lX$^vCXKl%_C3`*k0) z_(+jzPlouZl>WE&Se!WngleQc9>F|Wvpm*&-a;t<&#GNcepnaJLcR!qbM^|AV z*exsGiNETN%~lDN-l$yd-vaUZ(R2%H+Nzl{F6y!9v?)w#o0Z~0*iasmyKQM?R(1a7 ze>~0L=B`uv8a9*t2d_AsG^OMR!jZ&np7i{9P^A8l_~yV&OC(T#7Ah*e@p|WOe?&}+ zD@te8d!sM6tNRGfFLN?;;F>w*)d4Y1Z(Y$>eLwW?%J6WDl=_u?n@9*&Kn_$Ip%dI( z3fT0YnIv=_JjVjJ1bxHJx!LkCqy<)H$}v~R>!Q^SJpq_65zom?&Pvnq`|&j96d?vY z(OY)22(#qnV6EuU7tlQtu*ji2#uxIyvpU|rY}^S~uly^HT#8Wvcfiw!1NdMM_}8lg zMV`GaW~rdLIkKW_k2<6zuT%K{O6aJHe?OTQ3S~9Ok?eX7!q*ugE^X#ewic_ti)rAr z^5;uUsu`9bAq;Z?!4}BOn4PU|8{`oM66pw!&coIMn)!w?#V2h_-ugG&x5QN8)dC{> zpe=_Np%=~tG?POO6aFvYG2@t5Y#n2(NKA>AW}1%BiNd-DrrA&W1G=alA(Bq`AheNcini+cbB9N6bOSb6 z2Lg`_T2}i`bt2hu6<;)ocelU4$$XIyW0i?inOERHY)xi0!~>G@cSatOe%$KbfL@D<-6m3dlLIllABj$?gs~B;|fiz%IYK}!M zlPkenGcWkJlgCJJIj*d}qO0)n%*a$8SyROlUXG`7kD3hSDrlqBcJZMx5x)8NCpJ4W zqGH&W71gV`=hJjw$MhkX*Hy=R?I z_UDC3vT(Y$Rv?mXK*H~C*S>R*ceStKrONp`fc9L5HWUAui;Ks~CJGNk#^15~MOa7Y ztKIrQ(LwaOL?R@YB51VP=2P;Simlv@p)Iuxnn%J0@FNrwNv05HQ{dsKYDF>Qx`Q7p z;Q;KFR_F}Na#|(fI)=mSM$*ydLl!;N49T*YxkAL9f%8{j;QpF*tQ(tnOa7YZ$D(YJI{G zdppwA-AD$ho5P`XNf^jap^~BTFz8m<>&blvXk`32%sVur2~_` z)0W#i%U?q*goTehB`%hL(DoJ3W`u6wmA2Dc$c2vC(tbOgelAd*g{~nsZ#Y^^uYe|u zk($oUIpJ9F=Uhcu7g$O&zwf0FINEdKw9fIB3LV>3iz2;1>8}S8xqfe$b`z-l_1JD~ z>~#Bi{?l4%#ULupmUcOzC|}+rot=k@eFMIX)77bMln+N-=#A0Vn-6(t)S8+gK{Uw3 zGpxlkkQAm}d@E{<^wMFv#}T*LYk#s8<*))@8QOClcf*#Nyat%dfjKUT`$mGt%NLKv z#ooENBe`CUoWiW`sD*psQ7NS5n|5h$C8owA;(hZG33z+4$$FV*)sF?0QzH?=dM@wl z>IzmC=syk)fSabx3;HD|bU0iPcLX%KL)1@b4Su@Y{t0NNO&uyJwE_e8K?>meVi&71 zx;LZP7(mjJoGKbV$RVF5y6IyNs9_9{wXBV6XlT8-2nRZxc#vW*Ktdxi+&Z2uQBx5B zRBJA747tsa1V7w5Zh!4=CY&I^63f6{9`Vxopa3Z9Za0e0umJ_BAu^1|(TAkYEcs5G z_%9_+`6g|xd>$;Qo*zU#=Xy{>+&q^rITl&`Q^90yX=xKrL^(S^8b@Iu$zRT?o2IMx zY-5V5mEK^$^R((pr8YeTTu!Mk$MHyK#*k2`&OWXW?DBhW-;lpM(f}A?$Q%xx4@~z3c086eK#y|xeJ8EEaMmS$;Y_8##R{+%z zl~p9)_2`Ugq{alQKYxa~Z>33yZdjQt?fo0Mmz<9ByJ06;RZmrV*QTsdqZrvi%M&(b z+Ebyvwd402VspjPOI|Q`y1tt;i3}&W^M&fdXN%K*!gZ1b?c8VU*?!%dQtIGlBW^(V z>nuVW^nk(Q=i>yDX?m+uFEKTRy&nzruuyy?gTAYe|9?79uXk>?50vXPR>$^xyrFnv zie6VAkbBNe;gj%$n4mu+HL2vxLV{mj+T;tOK6k(!%Sso2L$%#tH-G*+eO`Qh|+TxY1`*45WAmf1! zGx<`5La2-{fqx=@1Kn0>zySf%MjwuM#KsV(NwxqU@u>_^|gOLjlgSr26(55={DA1)Ct% z3B)K3^}Ip#*OK%XGP>PX~!&H3d7YeGKZ{nxXQOJVl3k- zH)e60&eTrETsWuZ{=PaLYAsBL%J2+ar~}KTewufmnI-Rnz3* z;rd|jRy>{m(PB)K(x$&5fHsh$`$Q58fYxHKef&g6zg5Oo@>r(6IhqG42j7is`NT_9 zgik0HJ9GOOCe6_L;=4Si4^1tDs^jy?MF0v6RP5kk`A>H|_}er*{M_lHskXY}>>uQ2 z*22jMYt!USp~}+e&JwepA)^^9grQjuVqRA6GNGBQCEXhD<7OT}W-a27hRW*PA^%1l z$XwU-m|OYxcHM=AvsgkVk(CuGkp*1;EVpl6yT^1GSv8E(8^p?k(_SaRbHyv%jmwvZIB z4R(+A%0Cl4RWT!rjS|EL{=#Q0(i*7M49tfw;nIe*tm6L zO!CRHDjhN1^Nsfai`qgRn!lTp*7MU2GcCk9&?HfSrN~Rp=L7+y1w@wEn%HL1qF4Ir z69XxWsE)MAN-Q^q;V+7tA8(b-j4rHy40R3i=92wa&-Xy`G4FV5Hl zNM!q4ZvH7ONnufZtz;WuB_yhp)A69VPU$m78`j;1XfbTOI?FYx*-nC-Ts(A&JwWxO zrH4ru7C~)sK;DpJ>h||h=>a7!VR^NmlF*-RhOD0$=+oe0E3tf|8>VBwzBMHpGLU?3 zgnDbw=2mQ8y3wtVC+(V8+&(=OzTV#p{lJBgB7sLi2U$KkosBqO3(^D>{&0t*Ogtaa zyCc{{eK#SAnBqXyaZ$i9p3ygi+E;h<;xak*2t5!3dJFcbwnL;D5)!gBD58oyCFPEh z(+w{d!w2OqD;^7Zg0J|;GXkHoke3IRXx=Wh{3V)KaUTuG1Rdt*{ah&-;$hNo`%swq z?bc2>$lQUYdsbDtM|-uu>cH=@B!D`5HO0+w5RjQ9G{l8GGG~T3?IR5<*kW)ks3waR zW1|HM;rO|#IRvWX#U4#*^Iif)`kbMpno;6o$Yave_IyAx?JrTXy?bdPc^K>5worO1 zhon#$VFGXRBLqY-ZkJ~db2DuyIGej}_Fpl)zHgu>A@GI#3DIVlM0NWwf~UI82M0oB zyUpLr-@EtW=dUdQc<0RGwH1!Bc2AUiTD|zv9A6*XaXd|Tmh+2(?Ya>5I7j#{vt--( zm@*omVltgH`G;DtQgPE2bmn`;35d4}CUWyX?$XJ~LO`y$ZL(!oR*J}pSD)2S$pD-E z>hfbN!XPH@8x|s^?<0+~p;{7Yjnf!o0!=l-4$B3i=^86g{XdgU8ZK5FN!=G8?OJob zz>Xui`D||3XFIO|SZY6@wWMG*L5&c3<;M#2p zdP95lF1U)NAd)5mRW5N#>#xB9onzOZ24|>h`O{=sZbJQSbqDptvspCJHf(pguzB;D znE5?98UTCN>Ua%m_||Pg%=If?pf(t9U)0ju4 zrtG6#kgAc}u7q-$o4@JZ!%{^|y)=rb&ZJy+-s#ry|s>v-S=+f{F|j&FzMiuVY8DJR}i zhv+7Rwj9u;kkEZ;7ze|_boW1AqCiSrG9awO<^j~LbWU3>SJY3d$Mu}D7p20vVMp1Q z*uQ35P_i!j^>&2fC&y891vg=TJ`4Y&NtBZ0=OWn=p9z(gyVtSdsw*^MepEa1pfG#K z!C>5J(98JWQ%=)a$zNdPz$yv4ozb(2M8nnSH@~F&vVoX-su@BX|<`LcDi1 zR|<1a$dvslZ#&0XhYxowJxDppi&7dpG$*F)m^&nhZc~_!Nuo>pix}XIa0Gbv;tATF z)3yZrXXa7p8mWgs7q`nqnzdR1k;-Kvr=Y}d#8X1t8+MbAsF!km8#UcYMywr>1xE(i zw`>!8>aWz@M6jPxLAe`~IZ|MMpdx3bke&~(Y%WvyG`|IZGCZ*kR-LchBhz3OZQm+s zvkvsS8Q1Nlssgbtmkp5W4*SxR)OW<#D2Kfk&*RMsQ%$spiEE1co$IZ?*D=UCF>*FS zcysGnX|81udyoRhZLtD#|DpQF=14jQ?B@u*pHEzdz8?!xyp2Deyq)T)irmr6j@LZ` z?>JEP{9lqlJr^qwL&M#bx@+4Rf9g8m;!A3c0s}WoYSU7kTzi~9ln|=EglxG_>N5j> z$03Igu;V1NpA|t`Dd?JbCfytj(X%Kt=pXN3Xbx1SN-h#gibC1};QaAom*&2K73)7{ zRRLJYwj;zIOs*?eBOvWZa@_5|GSs1H%$Ky_?Pc`iX%iO ztuFeYKY5NVJvJ0cSji;H*+FfyUoFxEPKXp*;=1(9Pl}L}I;e7fbgyNekw^Lh-~zHP zP)ZcdYJ>7`0-bqGqSHaY>a|-HfoNRfTJ{pcx$bWJk^~MQtD| z*bDGU=9CyS;VJ^u>H=EKB(55qbZLjgHn9lOrgpFq4UPwZ-va`h?{+PEvjFo>=?p`` zD7;q6bdrF@(Nc4o@5_EO@IU&j;SxEzFuyhkpMd<7N}>HFwyNfYk^7f#yPOVd|L0oq zq1dLbf`?iepPXLTJHQb44Z#!d&}MoejS2a7VkH}7=C;Fcu}$jv?kjLyP2L>ov{G(< zwm($?i5yFN8x6`iZR3S0if{%>FQkc{-CR?9C2d%?c<;z0?Ua%vA8#h;vjVf-yp>jP zjF5d@E3%)F4{-$UUzHbdR#H?yR}Hf!>k*3npahg8!OxNIZFC~-b1oLmDidYJMECA; zG)^ZL<_`_jiBTap7_I|-_|sIp4<5s4sy6qw{3-yV=F(eHVfMpeL|eBuX3}yqnr#JW zlFxH+sA&n~l)_p_k1r^BheBFIR4;&?7c)6s|)Jn2)QojL1f=XHNhnwZ` zGtGl_%v5;~^O@UQviNdGQYF5}5O%m+hYDy$i)m?^Db+ivW%u%o^o;EPjwOHS;4#Zz zB0Egvb1WU8DRr^hE>^j1BqP@x;n%TICZQ~`J9W%hi(%a8xmZ64Be%bEk=qQg6~5-0zzgsIw_vn5Ih^|Acx7UHI`OEBG5<_231pkJ1JTfzDU> zt*|)Mv9#KK{hs$R0Zq<#jPjQxN5`?2%PB=k0(F)cZnX5ut1rg7_v=%N$COmYAbo8; znRx(S3-tR06d06JXWn~HG&}uCcaiH%??s$99_=@)jwSL%AiIV|C47{mS^@4F$-x*Q zVxlG;4G2F^e;9KMFBsbq>aO_6l?|%HoB-)I8B+z;?@kzzW%oWVTPHn7G&KJFbROnZ zj^-|P6JV@~T~Nsu&ycY2RsVMXmJxfiTrw&wBgo!rlA1t)p20sC96ZrAaYRyZIz%oq z5iVzs>bgI~UTct~B#j<_byjDFMoTgn+|WSqXp&!Q%TeuJGfPjM+*9g>QvCHiA7ye) zMk@aM(6QQFi*W;=Wnqz%+*p{?)aSbm3;flpxd`5r9oUTCiHK{lj;I0p73zZuC_r~V zIT0L@69Zm->);v}7xjY|oh;UH7Y)Q4S^z{3k^U`lD~7g+q&`G3G$`Gvm>~umS%j9N z{K}dN>=pPr%%Y2GQ;Q#K2y$@QNn$33kIx10cFRUkndR23K4Z6|FKPvhfdOIdUnE)t z&WKn#PI{w(jn3|;ilsu)Jf|D~lkP=}S2cQsv?3U_AK(n5l}0i9`yu%5I_xAKeDk7^ znK!&SJs$10wHoT&`Yqrw20NV=|6+W>{z-QMJeu zjTy{Qb&^FO${Vj28O*5%MStKXBDw%@MS`0!9eHw9tv&8_orjL(&zECB`p%5-GSyZ< z)dSF;N43w~3}T*6Wy?UjhX>o_5jOpXKjeWIACIG<@;v&pbF=Yr)e1SI@`bp_*;7N$ zEXz~8JjkaYL@;_shwV5%CncL9Clb>)Mt|h_)tQ9{+l|9eGABq2A|= zue?Ar-GrP-mbTRSH=p*w^L6V}(m;$NrQ3%$V~A~zu{ zF52&Sx9UhLFeeL^4ba+S7dmfjQ5_+#1r&`V8B%RTWYioTk(a`#aO|W9q%Mvs49RnW z8|7*GIA;Z8=uLWo>b#v^T`;>BQTz3u0wTaEZ(OLiz8KUA;rr_D#`dV+FuT>8(A{Z! zh->)F`~fPHk(OuwxkvmVOlDLRk52$R(}+}2=ow$801|pTOHgIIp~x%s=x@(YryGf8 zZAHuN8*=#Y#zxTGjE=QfhF)w$f$6fbwj1-FS+Wpp!hnt&zXb> zc@Ad##+49_*;eEHzyj=v9EpYCfxWmX`FJ&m@>Uvm=N!~a{YUg4eEE{PgvMRm>+hOi zH_M&u!M5J`ur?Nn@WIKZxFu|;QASKT^1ZtuEAE%l!GwFmuYF*!R5+}XkD6};I__YY ziFtmsrc70J;##=o`NvGv4o}A!;T^K#KKS%PL6yBV@AOIkW-mG=lmp&NuW$8Zrn4FB zd}8<=CQ7Gbc9AubC><`eKb`b(VBR7T@k{^|@9!Wuqvh^N6 zmg^?HnJ`XKV2$%=mQ+v5j!vx>f(<-?nTIu$y7V0I!F)Tqx>TOSAZ%^UB%2fWg7|;f zb(Wy6}Q-^&dZ-Lju>}}-| zhvl45&JTTqi~R_-`w|{xe7YR%wdVk%J#7L2bxZ3bs4Ue&pAls3u*E}jWb=!nXC;<& zQo@@oA|bm-Z&mfWtc#7_Kvp9#@RuNQKPY}dnh3tsk%z@pYqeQI$v6uIMrCl^q>GdG-hsd`}Y zxCq}nY1$5j2EBc6qosYzwcg9#Gg&oI2RsLSDov1u$ld~;H0Ha9n1~Tuo%i~F^_j0Q0z2N2 zs#fPRNc@UQmg>I?jtQ3O*cH8-e6oj%tazh*>I+B2fePcvrWN>J3*9bwp%5?Bxdtxe z=5PrWa`A2sggNt|itB_bLEMiULawzkrRR!sUm+rl5k59DtCYt7E?AKYDJ}nxDH(OP zRx#|wRF%`(Dxx#k6|E=-_Vyy`IG}c=FV3u88e4kx@TYQucl-4W{q79-YW7+ZU!s$P zbbL4*9OSX=(cQKh@7b|Kb)Zg*8bw9Jq;htqoM7e;jmc_&?(Xz zAKkYmdb-ZefA7Mse=nR_gX(bV>s`3XbzO+4cw5EXO&)Vi7NL;MS;~oc>XenyC+zqY zBrxW$`e9W;kG|glHUQpke#xCOvHDzSSs<^%XaDTW(k{>v`by(|f<nG=3ciz%9F)j0jLy?j|Q*)o(9->k>3N2$)tBO!$ z%7%e}N$;)W(VOFKQch>z68HkJYU3xwdZ3>LhnQVq+W1LW4{l|=?Z3(ICTOs1_BZZ*Pi*K&7HsD8stIbxk3S2&NcF#qM6}mFSW}@U0TcQ3&5RY^|Ijot^sVf^0gj=%hN5&?Ui<|m8rK8K zR{&&s*;HZHF089#9?xaGcOU&xB{j2A-5i^Szrgd04Z+72 z6@M8=Mh*nn1C*d=b%5&>3rc4$Nrx2o9UAo2!o~xfMV;f2vc&bJ!LVsrevy;m;8dc# zHY*(WY=xHB13J1xOV^bxFRcd@;A~k{G<)RU{sy8&9w-yexI$&p#{C!V(A$24OMQ?e zEl#+2r}={)22xRzaB@c6Vg;fE!>N*yKjvZWqW8vsM4huuF2|!G9~1gK#vna>yQzX! z0-CD?emjR-7hwI=(R0T3#ox|J3`8k&YK(o2bRUB&Z9g+T#=_gsH3aQFM@|?n&ahRa z*kw@D!I@3tx<>fN4&uuW0|^TI3%>p$%x3r2@=ib7r9071YfR9+Z?y^vk6e>8enn>d zb=*LersgEBvVG&J=yHXu2XGF{3U(|Z3lMH9xYe@*ivsbj3S(YDnLKJOz?@jV1^5Tg zx*R^ULC$Eto!IOL>|=W#SSLEVr4?`DWOqnj{%_MMAG`hCJflM&Fz+Dh#**Iq-*vvX z=9G}sy#U?38{CIG`k>Osde4&-`7^bmvsZ+X(oXT;b}ib2aWG=|cZ!$kQWUt>7a-{? z4`9Pjy$1~=KNfiL{)JK0A98}zR2caLl=U*n)LUMi!2(V|R_aFlrV~fdK->Tgw24O7 zs)Z|S^Sj$H$f?6qj75T)G>IqKrqS#9!w@;NPv-|O@qhv_;70^nty4K(h9N1^DN}iM z9Sh4X0%w%k4~vPBYH52$esMJ@dud~yDVAFU?Z~f6g7M^DV>J@SG9D6lpaj6imMq#5 zC~3HGx$lL&LagQ1Q)B3Vq8xP{ck7SZwD+>IK8qGY{^XC9%<*#To_!S~Z+1S9Ov-Q$ z6`eq_F-G2|@Lol!oUdg_u74fK9X&Y@+~jKKEmE7U^_(#%19$DTp7-TiEuVWhI?ee&Cg^ACZ z3=2IdVamyNlKzN|vg4UPDYNH(_}d`1c@^PE2#z+&K2WI61v;sS^P4At?|_L8neL16ZsgH!ag@PV*ouy_%21Od(YP(AEFpM!@<9`1ffGRktg41?h68 zlCBT>QAY0jQ;}~vt%hy!t_kLhmCW@=&R|>@TPnLZ98OS%EpSNA%bnaES(2pcGX>0B ze%xC1Gt;m`{~Ic(8#eF6Mg(=2?u$EsO=hzLMeX}>V#V_$KlmsY;IxrF0oG?iVGQTC z6`do!3^&>EXVppVtOX|IZ?C*gKp8b`2SAj8+V7uu^j!QO+d6DBwO`QHN&_x}NFWiC zF2?HHR!yZojiDI69y^jd{R!F~$k)x%ov=t*lE9Keo%xwG3ZMzS$UUlDV(SW8`uj-l zQbjn%rj-$CN^HJUY$_n8rs{02_iovN-njSVC2fYwp#c=b_MVVo3x=?m-SmkmNM=Qj zBkwS<`hR}}raqxP21qnt(Wtm8_EJoPv#+|N~L+)$fnR7^uPio5yy7+H>DR=PPDK%%L+VTb_ag{Tdb6tY%p;ed|fhFef0LlKM~H>(Wkkzyvg#oAtKd0FeoB14l@OVEY5# zq}d*B^8s}=qoiBO_6QqE*7RXE^Hkn7l8DoiW`P^+#Bsx~yv}{r3Oq}@*l3>RNKGh5 zdtwsh)^w2M2NcX$WF1#9jYK^#ik*?F|Gv_=`x1ExcD+LolTUkwrlO_?60~~Ov z8z<@iiiWCAw@`yr#Kvf0k!Et%InHu&EhDw(jHZDu(gy{(hIZu$Y2X55ZFJz1oi>)s zF`6@OKo5HK&&QOmyQioTX9yBkjDj#UgY(=KZWf#N*IpQVS1#vO?QqE`gkZ&aQDbR& zc;6C~dGqoJ1ivI8-NLjsdJ~R&`kYt)y*z-lO9D|XD2Ax5 za3TpKRZg3^|{zM{&baz$rW5_;N+qc4Q0X`J?Vq!njFd%hgHRE%1^R^a@UxR1&ONe8k+JKi0IJz`nq z<}udo%4;&!LARz1319ZxUhI&-#1-w5MRD~W47c1*jW40FNc;2&bQmef?gj~tGjOm` z2?w|OZ~80JHjf!9cI@I5J3p?@Z0p1^nmg=RElQDBvvF8>+m%nu;~h_vZa7#&lWe=A zVL#f?Zz(~>4eevVY)!>8{Ch@;xnAm#yhsS{4_Ten&52^7xX!n5i?c_FG4j0VBd~j3hS((jJc(8?jI(lOydz14JbO<*%Og}H;w*01lBLJXtxfN1o#duAX&>3unG{iGG&AsIUnGC%J^ zbj(SVxB2_yMJAbx$SGoCXg9f;mzRrmZ8f_lR(2(EC=jdsgUAsxw&g+4>J|hy%@HOK z(2bL_RrXsS6Fg3vm)`*dY(WM0VVhF28Yf$M_Gc`k7n8p`!0qhPeP%e9tL0fCq|lnB z@^gq!ss@2Srx9^`(3oRb7{W0dK<*>ui6mUS)#FbG=NB(rR|4Hou!FCU^ zC~(KKFoYCRlhhtTxofcs{vkcEV{Ix-bD?(W|4;1&KkRa8^UM9pu4N$V1uwSzM|SEs z?^JN=ulosnuCmrC?Jlvu-^e{FM?87BO>_Nav3-RW)ei0b-JQl(;i*!7=bp|0R0CGv zxdy|94aKs9nLVlqkt2vvbfN=wD6EWT<^qz%mJ&-BNdwEgqj4C^UGYR@d=&Xbp>lGn zs&RFMflg3$=`yvny0liw&2P_?*8Zpk=Of=P0dNL%q_Qf;V;-PVbg8Q#_6VaZdRJ|s+^d&0@M_Gp zdEPMo*3SG;t+(mk#r6m<;(P3aE5}PMXJZc1K##xEp}hJHMVLU3IJf+jASqT7(YyX| zfy1R_@%R2CJAJRm1M}I5N_!Te{6#FBm8^m};lto;4| zjJE{kPWRuI{^7a!qW#RzM>!`UZkkWd+EoibV}(0nbx+Bqlb|RQhC&HUus)HGVk&xX zY9qS>?hz}>4{7(>N#p%im+Q#rLS0K{u|F0Z_(U9XFWBaqwKCM(9l2$ay6Eq@rs~zz zZ93+lz212_KI&x9*D(9jST|a8-C{A#1pABsbj}FtbV(pm>Dt(KuLD!*0}Bmv@i5lT zimmP5y5`Yof|tKSamG0d3%fsPsxe8uDS{)t-lQR>==y+t-&J~xRN=%>pf-$I#b@7u1ed=NgzFJG(DS0eX)(-o07{6dJI6joZe92K0d znwFKyLXqA(x2hlnJ%ufO9j;uu_#_c_F#&gTIZ@X6#sqoFEE6Q`nSi_;45-07eHnEp z*hh!P%ZNH_M=h@v-az93-o5&QMn=jZNJ?KxUq1Ektp~Kn4UM(V9}e~;AoR=j*le8pwk4ycfy}wz%pHY zKq1mP=4F?Q0$9Cqv}vDlM9$#&Msxj5SYu~5R-MW$5y(2sgvhU6@YKM`Ol2WO<}tBjn9)Qv%)Ern)|q4XZCfJd3D?u?HSk+M z*`OY~yCFcz4%++0g={Kx610aEuA}Zto9oYJCqNF_lkvGQy?1c~)D>@@s5yY-VzJipv)|{b2&rS8%se3O1RJ49lG8iSac0h$G!s3WH&ipEY2{*fGAP0jRex zTm3IAisV$PA=lmIN0(KlK0i~dhX=IR&4=jpsf)aPK|lNgBuYBM*bcupkAxAq4$|8w z*T{JJg~6G-o;ByKF;dZtivVTOoY_WK45^`qryonU0Rr5rYtWus=7HKNOh60I(0B3j z&sznJYI1`7X+vM9?PbTew)rk#>4r)vzqdVbj+Zrq_b=~niIw}$%;i(y$?RU-=W|FkAzF-&0M&(IJnMJ#HOW)V*JM9<05w3$zh+4wt-v?E-f@bV*rCP~_V*@y zGXeR*1kXZtpJcb3Z*Ue7sf#Y#zzl&89CuM!9S_tflak+1<6L>Flt@bX6)fAw60eM@ z@Z--t^iO?>z=bxG-0h))b$VbhZsd(g`5jnwkSD;n)yvK#vXCTk8O({TU{_op0`_eu z5o;=NRCgha-E6z*+3RIn4)qpj^>rUXig)FFTXqF|Ewkv)B=@&It(hAb@%@)#Did7Z zs(|Coll1x#Q`y0zk}QD&5#|%$7`l+o)JGB&PIMuotBbCEFa7t|XkKIgBmE;4Mnb3R zh%_*0&zZ1%92anj)FcN^_Ij|V#R!=20Hu`|c~!jxv}yYDUX^DKPZzbYx0rP^-H1oG z@G4*Y6|=gB)01_pnY!ZpevSL-L3Szka``M(bp$&Csr)PHs0ArjkIckcKIr zOT}x6uKB#v2C*YjxrIGyIKt?&xgMET%ho%v;r7#_0w*o-{eu{U4dYB$oeDy*K};TE zQR_>nBUCUN%HP$Ao&4|Ma86fd{Hdfetkd#o?0yq0Q4aS$iOK5UfbhCDgrdprliY>% zl^F6}O-@bFySo0&X*;z7i#(CauL$*w88G9^YOzE-s{=e?p47KXUj)gy0YHjcL z5@kd$O=-o@MtV{5IHmj|G3Ev%a5T80WkK8n5d@c!4bZH)r$XtaZkUrR#n99k(Pv8$ z5MYzno=@a#cLd>VT4p}U?|}Oj4sKtox-9Grb(5CITGn)g4~`k)y?RLC4P@b6ya9${ z_g!z+>=|pMV@+f2#YEwHWBoP^_qxi)|K<~6M3mjw9}4d^vHlgJJjA`X<-y?#zkD<3GxRcJ{nZu)n2;CCDA7$b zxPFQug=M45YpPT1E2R|F2qC2zs_SWgt#rNn)LxvHiPRy6c^5mI;oE?qun$qIdt`Z_ z0~F9pQis|I1@#U(amCO)@NwbX2C#?~#*(rK(RAZ?Kprtqx0dM+wDVp_o?wua7a6i{A~_E!o>LY?mjmdS zf_^CM;kpdq^4An1peUh=OhV)-6{6;iK==u_(|hfOajV6ccg;DFVPH5_ zLON1Ga;C{1PUiE*rvi$N_DkB%ssFcIR!+P%h}3%D-;@gJk`c=hnh*E4o7$gy#H56A z0^G_?NU&POrS>iEP)a7Wc*+i$@0rs~Qjm5RVV&?i+3+jb{$aZrbn*5X2~=*~z|kxS;WFA-QCthP zWdwf$Y!2|bv}=7|c@Q8xyj@X6kM_V|E>*WVM)mqzd;&FGos4bM`Z(Zml zPa>^9Fctc_>VOYpbPc>-VF0x6H8#9ULC<7!X#vaNls&o0tI!srB=NQRtI{1$pIL$0#e1Rev2-m}G8%)twxZ56G->ex*;U z9CAG>dFN_;=!fSLhL28XseNnY~^^;N~zdQU{;1P`nM)c49A-nj<-G4RN z03Y9SN-d|&5~v`*R*9geYq^35GIx{Fq^g5bX9xR0Y!RA}Zhv=G*AH3X6%cag6VVz& zq@&Hv^BooKY$6TjiffbkjF`dN*f8@afYdzX$%XL``@3~kofmS(!Lvae3ESM9BZM;O z7EdwDDgtA!hB}SNjQhcSEl@HH9ui%eSvDODGK&@-sn0W{!`XfCm#bp8T_Z%=XIAySX*Zj;uT4h6>tQgux&zXyU2ig-KR(M)%~d5J&%h_sLL zN&H4Wxc4gC57>3<6`e$!Tr&@s<|)3w70uLvrwI<|A%r=1}|S9;5Efzq{OwWn9>% zmoPG|4$amjnL$;KJvW*p@F=^5k$*al5KqcLyQnitslJqy;`auqrxLna7?JDf{R}<4 z>N?NmCvb^~ah3tH7@q@Kpc;kmCO3fpz_E*+4?Z7r32@Hpf?Ys0bKt+!ymicG`v%ORs7<8n0@q3)A8B7M>CXZ3JkSiwBa z5D(ldT6_N1`jnN`fibHry#$T>BOFdZ1=z73&Ww#5v64>YB*{Z)M^2VHidrw=OqixY zx}_Z*0hG=P1FkQMAJh!AJIVsemNQp85I0H$fAtr{T-Irvbg+fw9QBXD66)m6D|uQ| zw|s*EZW8#}3wvA_rvIHMGh9AuQPP@ks>LH+P7`fN_yZNrF4d9Z(h)o;3*~Sk^Fk%; ziPPsE4OQmh2>OV!MI(UnF1cxF+zitTZLWn>uK(0Fh!rA;@e_TX7m3^L!}i>5l|x0D z#0xJ}{Tp7FUe2j5*cY^xjE1D7Xnb*b#&dQEcy`W)2TQl@j)<`THC_8OJV#Nm${Dm^a=weV5v>k=ly zsPD)0nKH355XfkpOl4>J_+*I(1XFiVGEP z+9X+Nqmhc6HE48S%cFQD6bs8M^=PBn zid$m?&fLmwo<{FroD8cvZg9}L#%i`l6&COQM+~lwrDezM0_*GRX!Xxg1U$ za2|@s&j}7RIIR$0Z1=RiaagW?#;4y6L1xPeuvO>8mi=1k$mn*T z^)fp#>^V+rM{ZJG9*NS@qS5w}_PM>)^9?RRmJ@q^xIvvoVr%`o@WBr6;Pnxi(`8sMh1U=9Zyp}){!16Vp# z@ppiBj^vb!_HSnnWJcIm7H0%psk=Dp?mrX26!cX@tnc*2!2?)PbK-A~ebCK}Jkbb1 zdM&mZ1hj#Ogi>7vZ2}xIe@qbGXHa-y9RJA1JI7GZ&%|>dCL=8O&e?E5pXJAPF}rwx zSTbmZC9)xUO;m{Wm(TG4)@MSMP$IF7roO08ST1t{=2!U^tZk@SX?9AB=I6jZ!x)p_ zPX9uxiV!U6-0lv6+C=;=hI`uz3E(CqpCg}gJze*q5HT!~5O7|?xWT12?^eT_BfIk; z3ldQz##lMT)1`8QUn`B`J+jUJpV?4Jb7(0skkIbWM`c}b27;!0g#eW^HJO8c_QNV7 zdfMXPs~R{_Y|FT-+ue#4nAjEK9Z?DWg!h(oSIV@Twxg>KHPYq0VK_<5$K-F7lZvOIv~2ITv;HmDol8&+ig0>Doo6 zb6;Y&14FH_XXBxofCR0hDXkVX!abM4)+bFk0qT8iBhgrcQ{;*B7aMW1K$NY4FV_%1 z8YPLHy^{ZFw9wJ;Du#tn3>To2_)tu<=yh z^8$t7X+OVPiU)sJL&O=dXQZ7TMuOMck$y4VY6!#t#c%FT+!;K>=iKFr{5p9%oQxts zONqJ-k%5gk`+KY|DA~CNNAjf4XYAm1b$g9)fm*t$jIBk!sv4%*41>O5@ z(=MJQH#*mp+u!S<027=S5v7-B@d7`NFviJ69tS>Gc(5)`wM^;)5^-uk^t$-T`EE7OB_N{K-(4()w97 z@2_X3pQ{(1_dCp6@gA_hxsOdcW0n+28dZF0e}!Fn^8ieM=8i8YW!w^sFUj}O58B@9 zEwj(ab@z_#hjaYb2oyinG!{_9NH+0wz8|A{-2ASTiB(I`9X|KQE@Q7H=bimxU1&n&fk2Q*B`grXc1K0Lpod9)78pZH0v@rl ze{-FX8-1jWP)EtkKVqZtL^I?gu;my=Pz=}uPdMHeMI~OhOgwbIexY| zsF5AK}Yow+o zMUP^k>Wj}7CcfaxH|H_6RaC%aZ)De4KjHdz@_;Nwv9QMEg><`sa?OwMvJ%XT6izN{hmLs4%>9c`XHyX zWdU+)SA4KDCP|~;*9($`0E^}t9Zt8&^OwV30a2hNUJ1?%t+OiaenUET?k>?0z3Rn) zY1Ih`;l^H6len3H>>t7+jxh3z$Ln{{+CAytU7?=O2uF!)fpFG?@U~0hq$B}P75ljGqY(HtM{L$c| zX?#+4B^Hw*GY=n<8BVMTvOO@{LglNf4(#hQN_;p*}X? zqm7=4m_!Dg9{^Ay$KjGj5iJU#PK`<%1tK98fq4J?Qn?>T@P^^W;l-X#LgmIym-CvL zW>ssiz{96oV7G`ceM^)G(1w5~&njJ^QfSRNmo1A2Eknm*fXZIt^u{uOgpvrbxbwc=zd(}n0Y%8g zBV5}?7vY^T5j?JBXW{qz^*{eSSGT4vt$J@f)P?KDd#ah@Ki_6e&)ko*u-m0^I9K^KEgC@{kAv z7Z*@Tkon(gn~qIaMvnG%l;Sr(4Gbp$#^ueP0*QugU;VCy%gPik_ybklqOGve6JL^K zHU7nT`0C|F_;LqT+L<{ehs%5(bL7bopFg5vyD5dHbDp*nTqGK{XOGEfmG_x%7&pyN z_DJH0nX|xLuK|Ht_6TfB5C@?-(UP+rGZ1fvd09rWfp<0CI?d>VEi@Sd)F5> zQ7g=NS@`Tu3RA#JYJ3JxSMPrBu)z;oVej-^;sgx#q&7J>it1kz*k!tEY$Zx=>Z%ru9+lI3mqvk zO@a^QgO+wa05z3EU>Wz1#-yfBf$k0nOB6o`5yKzaNZdcL=9rg@3+!oXLZ1ZRIO{;$!I<{Zm5dr;eoGj@i* zZ6N~?Q=6jHg;K0!tDN^0vjX~a4JCu*nCBTo&B~C42?a51xIPZ`|JAbF_P|uxbB2G3 ztz&UuOd6-_hyzYrD)rVtvs) z&U1g|v9}CT-&y@6D;@4FHHOwIF{u>bk0(3338w)m*C1X+56Wf}6v_3ZT>kiE{#;+? zU_Ef}Q*e|$0y(|J#>VdVgNKZiYTWff#auD|1>arNM+##&W9cL>>;LEUt1A<9a|T-L zgWtRz;!8F>aNUzP|Dd!h(TU;8Ej1_`3wI5{tcn|sNA&iha|C!@l!YSy#})+c`o zE=Hgl_JKrqx*Yim*3SxRXjil42N6l}c7e5Tei8XmVX)%q(Y?OZu0*dh8*P1Q7) zDJ5UP8U`S3*|U>!iVcLQW#OA|KBaRe_9q+@_|P=ri+2wfh*64V(cp5dZ|Mfz{~*wC z3NNXi}lSlMS(ic!V-yOzu7Q9S4Hmb6J>B`XHf>1{OfVb9E9XVAR_ zWWKwm;0uc3)A(e_ATsv2OqGTz$KiEpR4o)=HgkJJ%3jNt`k~w!u_lKT$FjF|Q_#O& zU73sXw%*y4{Q-IYbSlg>iu|l9lQ0td)34VgkH79;Hi6a0nzoUeTW2DI=DbhMcNmtK z)AdD-iG6DOA>CxR94?B2%1+JGecHAu;)7$Z^25-{;+rR6VbQ-A=cf)FbdwmPLG(7L z8n8T=lf%M8qyj>3BQZow@_RsuhP2_23bT91@)nntdSMM^5ILTQ0ygG$Dw;Zo)6L+9 zE-Ms0LhHhN^xDYH)k%Pl25*w6LPcWq42-YM5Z$;0sWJ)mbvEZmeNHa9|uZx_k& zx1e*?g;xfb8lZ;t^3LjS?P<-b)dDMfH#L|jmomu&H?!9h;?Kbs0xewnE1+t=3`=K6?YuV0(HjC~{NM>#* zaLx0ngy2y7Vz9fwwo`Uq9GMj{5k%1v?B3l#5l$L)3 zBGtfWnRGMoawGUjRQDHnw0JY2nYThl|y%BGX0Z za;?mLXHdM)VM9wRbGH*P1dgsWz$G7T)T$%~*|tSm%zVx@7C)YiA>4zdQxZijm4)8X|t}Xedr#N7PXdmjq9WOJ~5V1Wa zm;aSaKL<@a@}tCj4U9GIvUqw#MGtb4{cb^a{_j*}jPO1RwX^sbChaJaVK;3)M*(S4 z?6&uWvF2~Bu=-FFb4Ug1<9U*3bRwWE=4pc*)WI$E=!>E=l8VF5SdnSmLJ@yptwK9q zOG~E2R=AP7E%tpjkG)~M+92&f~h+&MbaN8%UDg4VF6PPxE7nJON-v267t*a4~$OBbF zES}si?UoO|-oSiCiuY?XGBqhfYN*?ch>O?->JdLgxg*mHwVlr{lg%b372g=*J56m> z#@k`c7wqet=NX@LLD1WKd)TtQR#T>&NQ}Ql=*7pv$e*y1ZUtE#v0QV?6y7RHh^v7Z zW zTa8@-HZi+2IH)BJ9f`YxE40*cZ=|F zM+8A0X$Pjoc`q%wNhk}&d5=~S8 zyd%dFgV8lDD|aXmPmA;r{=DuaFBPh52~jn!P4~ygOBGyCP#FgW$~Fni zeCdvewVsDc$mO>w>_epsWh9Z;+xWoRb(eut>kAxC5EkPAdlKi#BviA2{I5hDI1EwP zlF3DCf3-h<+|GV>43(`9Mw>RdBE3Aw5}m`)_V|u zO?uN3qDCG6W>BT8lZ1-TKxm2Tfq^9{UypFE7!z5GCr>;GcR4r1gw8M1&jncod*0BK z`l4wWgebN7ZwJObD+ro9bQ9RHO}4im(3ai8bTB-4?J7;6a&v(z79EC=$bo}a!!_kY z`qPri?*p>doVBDz-#C)4?OqAT9K*?Uh=~P)3X5nAQN`85>Hjy81V;Nmqc8u~0Gw)> z)sqdk8T7Cb(;bs5FscSG$ai)Cg5s?6OfI2-B(Gr^x5JhweURtp^!((~D+9tmBW8nI zPaj|%N>-)xBodAE(lr3oQm>(0qZ*cDGGltuwS)7kqTts5=C5b*ImJ4-~evmsU9 z=_sNYdM>->e)e{_==`7Dw|t%u9yMnGpkY7mpfe4+%A#iSkFmbf9;MJW_@C>R@|wMO zX0)Wvezxqn+>^^j;llGqrHb>5Qi|x=nabZXz53s&+2gk!yDyu-c)$PYfh1NL5MFs! zl4#0I0a``zHBMM2_`%DFS82rq>v(&*Jz0A)}AsR0WdTNCfvBUl`q z+8&;{Ol+&r&xT*lMW#s3e-lhR$DW< zwI$4;LeB{NdW3Xoww+Dane3;w=l{>m*Cs)o@^icUA%ayDWfZuF8IQe9D%F$>#ZUs+ zF^bljSFd84_f5|&oGlcW&FvY|JIC5(Mh7yf1I&651sJ@Ri}M-Mvu%?!E5N!AKchgQ z1O=F6ybqh-D4UZ-Zfms3DZjLMLTUxfjIO#jNox}S;OIJdiaT$hM}~I(q$e~sW@b!) z)0W%46o|eS2KgSj6mQ)`8ON@SHVxy(z~h^>e1nwaAEeD9zAcn< zsHppsc(p?yge*s@dmA!T_0Y9+NQBu zb0KQkPNgr^Av{{*hbpp;bg~S!#$uWw*rWPQes7KlGcD-<5<%V+Rf9tlqAJCke=~fW z3d2Pu94pRJ5G~(Eiw|jXevn!I$Pqv7dZbK_+{IwEJhg8_lzG!0pKnCWd#)e%6Hc+r zOf;s_V~vkAOrnOq=5{4(D)bA`M5Jj){@~ds7_tU3 zAdG)#BJ3oTbBAglu1<#Mss}>PfkZjjslD*N7C?(JAeJcdi2iLvA9V*>6Z%9fsz1n{ z*dnkb)f)PYk!bwZk1x_Sqtp$tk!@BC)K*=9;o^iJrn-pOfM7={iv)ns;(6`ff%enO z#OrkS->Tv)7V;{<1Hm%#BNa2G1Y*W$GkQ%iPsp_FL({>i+R6Zuoo?O~!iIDx@5o>u zOj+LYjmQc*`#vqIlh9GxnqP{=K{xWf#0gNFX-{RX+7_gnqiHbnItF7+>b<+zX50Zh zs+iK?wI$k8I)JBdw~dV`w8coys{DxDrhQ{>arh0fiZGdIC$rLBcY`6W8ra?lN7?|l zlJGrUgF`iwh!4AZv5=6xVr^`zY6P$G8@$EH#>-^7B@)njJGhXoyTP^qLwMXxHY*uy z%KRTfJwTn$-0_rRD94^#|612)O+wm=X9nGgV~^@~>pAVlrEKd{!;r<;SLi=@R^>}{ zq8w#_A4wn!-y)H@bMyt&d#jYBa*s4dR5~?OR;ApW&Fj%er!Yxp7H$u znTYDm1&;S%O(6IjGtf73W48=P)g)|$Ac_nIKod*jphtL$&G-<3Z;JH>Ka!IrMkTdQ6mrv$Vk``LR4<8h>}!K1 zD4|uKjN8oj#o?fmjTXyntR%Ca?}5f)EAhK_aYI)O+~Ni9Th4@Nvb@jv?z_pVyS>Wk zp(lSkFuZe?k%GS4*Ub#tSyAPG3_M??5Q7UQdbi2yE*8>s73T8Zz%gn$hWUzLBP zW`y9!+pt@=eqhE0Ybr1R0INEj_(05eRS?2rm+m6RG`92=J`06s`9DVB5^=^ijJs93 zm#!-D?tLNbB;P?&GF4UZXs@TswK~mVxZ*Nvo1Q@!t5@gI7q}>w(EQxNvE9g1<0Mxi z0SRoqFpl^xY2X`{%uzyVjp=fFhfS;ko#Ky18WS`5#gJpxmUU6Q8jW~Q3UuBB)Djw;5t6^UTUf+i9 zdw)b`JLMW;0MSdkA2?KPI3}Ho9{PwSd!;hwv!DI%#2L{>HvWY*d^mP z7g_Nr#pXr%+$#fKQV>W-x4Ks}+a27xOR3&wfs&4hW_mJ9hgE$#t-}O&B~9Z~l9)l# z(52FlN7e!p#pfw{#&P9=I_l;gV2zpu(@x+H(2E`2@$g~IU(dp)2b|X&o(X4hO|wxI zhEfIXGEVl=z!P7U%O-pX zw;D+N$F%dxy)U!X)s|UhzpqzEeaWINMMF*O3SjI9;8bjdSxZYAbKEODgw!gr*S?bF z-h|u=IgJ#Q=gQWzauf2Xubnwo=2_Y_2jH++bD$~@q8!VB87vmi`HCXALM=*AzKne9 zwB^Up63tvz}!0#LX$Rc>FPsm*v55&;jQRVUt~BT z{6btIl38(@KAf|)Z0@knkcv=$W4miL!E$1!1V>X(7L|WQB4cU)VRhb-EL#i;s2Dq_ zTb2=K`IXENs`EioGwr548d%~1zxqFM5>!J zVpV4_q-`~7ZtPh$O9$%L3>UuB9DD7i4;9!O%9Bj=hRo4I4CDSs}0 zAZ64=oD@sfg<+P7wwo>Yz*fkq7}a7^4zrwQZ_}%0j*^iDper^1b*MvDShPtE+>K6A zh<;Pj33oOsFqJ)d_6<5H2)V-FyBzkOGCav5=Z58vkIfp``2lbRGx8#v6 zK!pi2!Y#jtd|E+xNe?1G1mbMxF$x5~^Fq4Pm71j+yYfbKB!iExAsdeDA9|N=%7A;3 zB1o_*Qz@dL`(+IZ4VH4kc@@pIqGU zr}$xGt3Z@>R^h1e^uK&i*<|bq{C2O}kg20@xtbj1*3kZ{X;`(18EO;qcz#gwpO8&%e)kxs(N2C?08xr^Ne6QFEKJ@hpDFV zMX{Tu6fyPctvY((6x)Wmq^&N}e1~ch(@Ff*FC-8xQ<|v@g+d*Vq<_wirc5>Y; z?u~|Vw1)OS%Go{HcNfHk?QZMkGo2Gi-{x$=6iIx1pdtSpM1<9Qz@_2)E%qs`dKI4v z!k6RlIf=TReY&wDQTl$BMN@+-Mv>F{%UOdS%_yN5ycKBMH9MBewbom4y$zOf3MUbUl0ss z>;`nk^*H0qg0Han!Z^lW;!l@E=z~C4EDuxKb;sSo@ke>xhXo`@wZ)gAGGy2#krxzP z+9>534WW0yO?-0hl*x*pz>Ovv?SM1>Ag`-moutd(iD0N!4NY=wQipRtrc3O?wM9$_ zhfEgvgBh#yKsLD%P)70b7Z`P)`hQ7MlcOolq^9?Bma&>>97GCSfBQY%yA)Y1G2K16 z^kc}*4u4`Fp5QR$6~)q#KpF-ca4&j3(RqdyBPxu$Zh6HarjW9u`j4Wa zz)MG2Goh+*Nj=qzhPBoc_%f4meDhaFa*ub)gRO8TJ4uHWVJcO=t1l$%Z{xi0DXnh87 zxM~(&8&REMh}c{{8=}p4bI5qJNQTMJ7;VWmnbp0lpVv#XX1AUiu}k<>b)ZGBws$+I zs29f{57565>4Y=NXb+9>#nRz0lUdRfUe)XZrr^D9Mp)3`l+O2ea!eiG4_zNmCxPzS z%!tw)GRJ3svqkYRvzU+4b-7rloXG$wY(mhk#jlf*KkkUG&* zdXq}MitGI1OEdSc`gAM_W79=oTWeXz7Z&jO0#XmMO@L}cbaodr+rm~t>gijDhV+rD zshH&ffd~{CgeyvaU}QHixbWj4zeXbbHs1l>2ejv!vmPFBx9w-pq{SOCDmtjz?L%Z> zNut8akJ33mjTiiizY=n4x^}T>Y*s<#Sia1eubFs2M>gc39BKn zKXG)-VdS&~s4{WMj|~IZc1QIYSA1?Kza>w_gCe*8xrKRxhHgql{)g1_xePOmGr#{T ze&)h0>II_Jkq)KiC@@FwI4-crcLXcV9Bs(X#OAq!T7G`C|IB6ux)clB*C9_G*8?nD z-&Amu7N~>hW6fDHc3Y=^HA0vs!nG(w_!I~F+q-UJ07pVZwH@iMG?Mg7^d#1^Y^G%<0zRmGdH#Ngs~a1OscqR7Js|5W2GM|tb+L_9nJixBFIT}Hpr6hDohnQoKX&zP zPI^C$A8?av{m3|b$Q&&ABZFKmdGyuo|5?q!=xW_5&SC2K|)wL)riO&SgF z1ZnTzTG+?XO!sS_%%rimnt4yX1pi&3M$hbDXye)9p zIX;iB3;@K1|Axo2Ml84Bd5BV>D=VGk>;Hz))r1RNTYCl4QkS9~P$GT9mMQV?o_;)h zJZ?858JJ6dl=VSY3>4oB#TnEsK0%Fd0p3KHbI#R%KPRrA6V*K;`uEoxK389oI|*R@0A7^jFGW z%cL1ySu2I!p>rO(bGyCP4guVkaN9VV+Dx0u9w3I;8Ik1c4?8J*yxYb;U45Ig`i?8=?&_@= zSRPBKHpR-@2;oLrxUkD$D3&{J;QV?67Bz#KBv_4DMeCa^g#VE<$4&Fh&4%MX=e*#X zbgCcNGM0hm$m&wl_ZuZ}FZvqBM&$MntRPku+nVG>fw+|v`F4OxW&M{9@*;w0-`OmI zv|vG$$OUtE{l^J<08uTL>{HK2Po*ZTp(y4#kci_hqLP~HkpA9v4#`wv^qWN}{EqHR zVzw2s;}Xc9-ux&ku;K{EbvYxdBxZ)C!k!jn5|WI`98_YVm-oG;HzW#`woT-j;Ck5y zTW4Nr_>z3V&`5V!B|~8saTj+v<}nS?ky^bN2Grjh5Lws)tvco7=m!awsCiCOHT1{Q zZ3Laq<`!MT_|4+rMNt;5uPvveDl3N8>;BmkseqWF3ON*g)i|m*?ZnK5*M=XtL)=^+ zN;;1;;~Dwfg(FaFguyKb8s0x*azhpwSX>%SE1pK-oC10|82mV)J#^qD^Ei(n1dNZk zj$ZSDgYdv)!{gjCkMg{&FIyoZ5RcSN0oitJRPgI!q;dj=XRfAiiMZUw3^oO5>4hxC z9jXrpZ#!zNGm*x^4WS}`7>sNf-m`*NBkER4X&c16<%15R;!>EH$OxVAz-~X3qUnwA zjQH=;)f~}RLs1qoJyhUzWK~EM?#b_i| zxR>vDtzQo#x_kPCWyW{Sl82jX;#ac;iyT~=i$0HJPrVVtW^dSzWwT+b>HdgYeQkoRK_(5Q1FwWN~)opY36vonftV}a4;=>;1 z7MCgzT~;AKq)~DB@7@4Sd3$$~cT7kPfYTVKC7do2*A7zP$LV(3u~1-8IoLiVHS8<8 zL@h&h|L+%+`XfuJIG<>{-h^LHJChJ0=5ivEJGL(ybJB4f#d$1i*2f|wi)}sBGR}-J zMR_m+uwuUFPw%LP^A&LaBaQ*WBRAFuDj1{4@x*S*I|l%L1p(ULGN{SW! zZ~$w`@5fQMcfmj%{CDt{8EN7{i+;@aT-Q(<;hhd|{AgO)82NW}SZF3M|0BcPkC`D2 z^~&_ZYiEsW90>w9_%SCh8lNK&fFk<1lC(k9?j`}nPF|kT>j2BPuPzrsPFU5$Cp(QN zjjBp50JGr)R83IwQ_7@ijrY}=VQ+wP?U6U+6z&?|av!_<7RA|5;t@NgBpkj7Qy(?7 zI7j(a$JZ|X+5SB~BMpK~YQ!|7|EIwIigHBm(J!Qm-r@P3@R;2m0|orK*O3=W0tUG9 zk2~;57M$9&PyrQG&rYNMnrK|f5q>A?Zf*bY{n+pjMYM{OO~- zyoJrwysp#L?9s&$Im8c%56zds^qwLE8Pt^b?nVqccj=3Z$HBH8odlk^oCV{7s12K$ z=x2oF4$Rep14b&l&eT=>BH#u~vi&)E8(I!h{07iQxJqY`_&&kKMv3eerH?}c?=NWT z7|I)h=_=xmQHtug@WBWQp^oRdhUORtgCZi1553Mq2jZ zlTmMJ@DjDkh$s*o?3V-{taNE^Qg}Pc^ktgHa5xO7zayPnQ~p8H zzM8#LRSToZvp~5Xpb2Ha3uwPH1^n;~8lyW$R%K~{1m^7+iC3mZ?m|mdU2&CYr?*HQ zyYS~RXan4B96g#BSLt>yWiL}2Iq%_F)&Q5|=X=!HIbM-h*vi7pKxhCX+N1(|{9?3k zh6!4KU*pBndqIalX@EH9FryD_dbth+Tu?&sWH^H=5%5t5d_uzB3^(C$GWCvsorgaf zw_ujy8#XMJ{P#XgI3QS}zT94J+ADR$vqA{(M%X%g<8+)8X5Gl6?1B8PHq&E-P zc5t-cZFq3J75Q1~Z#0&YRV%I9cC~ylEHif5LMFr;Xy&YeosMnKc8`&S1Nh6(i zGkg*}jqPy9%YpkBqP&SBgnCWz%a`*Hhmlg_X&DWkslq-|>yd@Af|5oY`}Z4Z?K3i) z158x5EYX%>2lI1UGnNTr>c-9Mrwf2&@D}XTKs~?-i`hzWS12HVq#B!L|G+W2QS{+cYxmNZ8LfT+U=!tqKIv%6KbLm+@S$)Jn>8o== z4&23hn^kH3$`|)aVe>=QJCPwd!XiY`VAth%)YiQ}cKK2ugzz9FzV|2>v68es6)4~Fj+Js%)ki&ol`XQbmMEE4^5 zzsi*Um3TEriupM6ER14o>eN5(@a#CdxVEpv$5DwS2$64%9J6He`cCV^xjK9xz1RmU zIrq6@uREo$aefYdYW>^dNX7slEoD-Qp9O?J+q4DYWg=8XJ*eo~_``gTeK4JA1YzY6 zV^Tan6B>!bKL=^Ha0{76ISx`W0>Lbjd$`M-rlHxJUBEL{VH%-L^FE$`@o_%wPtSg_4t zH^Fxw=uh0q@ZKx<@%*sEjv-^ksI|sS|j+TqMxgYj#*tfd{9ESF6^%u z{i1Jwf)6qw@Xh+oRO)lm!|m-tQIVX?MgW@i?iNX*f82*Ci|3I6I7sEzj|qdJ{5d)0 z$LepwATq$X_8z#@2kL7FR?U2KnKH>zQi-0UK%B5F5(TfeRQh zf>kXo)JZ4`L`93r$6kN9ioJUkYquPV5{4nCw#k6m@@*I{-O?vD3gpq7Xs3^-=?N+a zv^Ip{5q}h>lWs19ErUW4orN<)-`~pClZ!1-Mqb{L*>=xiKQQXik}u-g6K-(5kEqvEAm{q=PARb} z+lTh`9qgzxeDO-F5tKf8@q4$@KcTw|n5JAd^5KH+Cd++Ddn`j!WY{nY;4WAWc`rDGYo^Q zcO`uFD}YU3V^A>9Q^>z8sLjP9G1-%W=@`8&APOu|NVuWhoh&Q11K{V(a>`oqq)8PRGKUS#hqDQ zQ{xO%lKFrx!Lb?hZ;|H5$hk;#PfjuArpPto)i@ahvN@L9SqaIf1Gx8cOXfs}IbF!a zw^042Th>h}P=`NZD=Adty@Pi#Z8L@4^gDJPv{%fTGr^j{YKOL_IU|PDcKC@Jvc~>S z3y81Y?`%AWpq=%^sr(3&-)#JfX0x3yVhM+eYVoD$$b&(oQT?^1BV63-x`J{<8Y0U_ zb5g9B+m7xWy_sGdu#`)=bFkRCi4DmRgSl0Zq$h%InUJ(ZRE%H8Gxjys)hRNY!g0=H z1|^V!+3WQF>1>4MaO^<)W;k!KUpk>g;Bhw23Z!$4?`Dc3th3I}ZqCsCDw?1V0=#nP zuxE%JRf?o^d}pUkERd;=lVIrjE)~_tO442oFZ0(qftl-U6M6iA&j#a^Nh*x(rCA{E znaYG4h5cz`M&sNOx2tJGPPTmsIU073S`cYnqw42T8()@tL!N1M*N`JZa~^JLF{lh50mfdAIT^7mF}( zU0^XvsDQ~4`(w;|(&Hnp%;=j@CooNNDaZ+@dVkZAs~24j!Mcwu(~Lg=Pu#WN4f7Q& z#pW0ucvQAi+U`84-oFaa z{`RmXw8eEuD*T{lfYMDc*L1#i@mo~LDA(tyU&T3-WDGPN+kT|>z_pA51cx)}XJ6D= z1fgocHPgO|j!h=?>#tgofpRyZ3b3G?%xs$ml(a8b(Lf+G8oN{vG2ZT~AxjBP7phr_ zw3}U=4F1~73|&TB)m98T1JX887?LG@rbtaUKFz?FG592u~H$W@HEVXxUot(rv@bgs5bo)Da9g3;Yjp*VT2|*^On^ za01)zWs`qg?~@H%j zh&q`9F0{E^CSMDu(#)a%(>{I}*xWZ(HLhbZBCTf5R+sbK{726`4h=DqOEQQXVPIM~BvS+wAej zUJ^Yi@1dgJOs=HVnkoc zPTV|;E*YLQg9Pxq`_Pu%9I_*a;voT4?qTJ$h)(~m{{8AlbKsc1SU()JeXW0b-L&^> zU@oy~bN6MB*N)O>i7Mp!b-BoE1UT))x9S{r{^Y_@vz3sAD7LL(Fn(kGRytZm>}Dv0 z1fYMasLJvzw)p&!+AbJ4P5d=i2F@CBc!3MNuVLlrt11QYelx}?A+2)3bb&?m($B&eb*k$zJp^~1>z z`CIU{%r8%TKOs=!#T}N_GxHB)svrn+?L+j;;?lZtk zivmi}6-~Y9_*}a0_JWq0BST6!uGUGyTyTsvjU;6M7Zaqv@~TE9&Q~jSN2HR-cPm~&paeb<>M1x-Ykq` zEyjJ_zSx}+g9TIXjX~bjt$RI*i=|P3qKTgqL%+=hK((Uy01F#L`SrT@fiWlKu<^p1 zxU`L59|u~xgtGSUl{@|5Tz~adj5rrL1>kWHdZ=86zUa->qYF63QTWz|n9;CwRxiBv zZuEw^J4H{K6^ei*36vFM-OgadqMpsT?Ed$9-gU}B;KuBp#9K14l6beM62hOScqS0g ztX5pTAe2)UO7JiS#H^9rs&rESd0bhZ(}PF3OO=Zj{{fctk2AV%)yao%mB5VR>7|2)Sn=d|@Xm^?n<~<_=mmU_ zX|x8d9H3B>t+v&OxIvmbaVw6}!e6YQmUdYMO;o7G970@Qudyrd+u`u4fOgu6F;DU% zfpb^)wqO3$PokxzU}PS>faXpQ!p4)ff_hK#vY%c>$*w8lQJ?BNYc3$mpz$KSEKat5 z^?Jn>2-fsc?#k$lh!DH5dM|r}A!G|;=(kwC+kNdK=>JpgD88TMPrDUaZI8lng|Asc zFTfolMK6JPvzp z@LDrETL!eK4yQPJxb6_n737Bq3(%TwbIv^_9HMSyhr*hef(C)~++}Y=Qk4;0dPgHs zkW+6hDJJ)Qj9xr3oGQq+#Gc+MFssny0l$u7>{^ClzH|?uYo`eA<@Isq6J%Ju_?^a4 zdz@3fwJv!{COTu?4xxQyb(p>Nvx%^D*Mv2BOw6yH9*ozrltZv<;oyXNyElXQd#nS8 z*q!j^?@l#Dz5cSt%ioS;5K?g~7mzAN-e@6Y2!B|+$UvJGlzJdvJH{E;nY* z+W=5cE7vdO!U&SbY?Ww)Va8lWGx(r;zc_y^r!KG(beGsXf%i?l4#oj4*5I^Fbw;T5*dSOGbC? zZfNMil21n9Iv{i~l30Xup0f-h_5ze1|Y6o9OL9WdX)!x4iMztGRu_T#Mj!OA5T z15bLG^vWTWMI+gbB{2MCKPa-bSFf&SWu)gEhB4=g*4C57shoKOfxFUBjed`2iRSA- zN0}Un@tnR1Akq}mHF0E5?4<{&fhMB1Agxg4^5qAkYLe-z_gsvrh_}uQ4PNpPjMOag@i&(avmSc0Lf^_-s7DL*TmNhGrl-N< zqOl@4&*!q&D#o~-^m8mN_!jsIj!f>Y>|#qUW@^c(C$KA;_=fN8eo$?+QSLwR@v^OR zDR*W(LAb**gm&rm&4ECq`zj_@HmD?RIHkJ!NSjD7QpQ`qaY+t zsAYGls=4$t#ZDy-&)0%2v#rih($C6nALf`F!g#F=Mr^}N>yZPKkB<0G*@W^!hgb2G zKs*nm1;c&1$~8hD@zeHmia(O6TKKq9*onpg!eNZnK>E5488@r#e#q)Hs}}7yCaq{0 z9Q}Xz;c8C{7I|2_ns;rgl3BXzBT0kcKy(si={Ghn(zT33_-1avQ25=r_J$~aK_z|{ zfE)h^k#x*44!nP1GPU@|*ng|!=$GODp%uwG6IwRZveKsuq`zs~zHF;q^r;veCR+t- z3eci&VjwW3#86e3mki`5S02~mrFiUG@{7!T2d`eYyQ9%s4#x!hox&0)ePN9oUU^>4J<&4C6 zh;q;VMegLU9h;a(LwX(jdQLjNI7MeEGBbV^H>)WBKW==2u}=QR0>}j`EH9J@B7+={ z=l(9ZQ^-O!dAAoCm#}6gG;hd}Z75h4Jyb4Of&I0e z%%=0BCh=ER&yH%G#Urv3$g3N(eMvU0`#-$PJAYvl33Nr&<-JP0cLrp@R#WuAQHjwL zCr%zw6`U%Yf|1#(u;dXkI>^p$Txb55|7!%|IYNYIbH@*P91HT7?;5BYES&lYM*o?C?7Ks0okKTKuFZ?a}_M9aUqWU&OQi=I@0p+2fQF3HuvU z>O^{%)28x^O(Ol;7J_TI7eeZQDpm;mCyw}Xvx%mqd#iaHAED7Fr)a_dq3W}+z;^o- zfwv`djOkfY-pY(YOY*-p2Bni8vWCw58Tecw`7HI5C+->S^!9(@sllQxz`e;(c4jyQ zoE|!TqkYGk>!jIYn2#ehX)x&Jy7~rr!XOXT)|EWoV3^pf!osJ+?>eqWtjICuJ1QOU zg{57HTYai2g~MnqW|A@+|vIFjoedadZSFODt-Ix2Wc27ZlU9>IqnmIM>$tTS_o zd$&CHjUYGf5i7EMq^rXmDVy?9{H zO<1i`>quTmg|wIANyFLQwbiZwx6DBl;Q`kuaxJJA0`QyD|HD7v;zU}-f@1GSl!Hh6 zCElHroM48MjY+ZPK0Yr;*K+fQo0Mk?zqS9FTd_H1~sA$gzI|{W(M*Y5%ULd}H6YOWCX{5!%s=W?V*0pc3Lvz^&-9(y6vA3XR6WUW+y z#z#zlqSsKW0p{;+K*??thxy^de)IWwt_LZQH?Z7z``*L^7INh(F2EpSU$oKNAPm`k z(swPzMV#V*TH@4RUOybRwh{TST8<>OiuS>XdIs60Dl296B}4C7M*YX-d(Cs=gM?jy zb5HQ+Ji&C8iT||$jZOyq+Qy7Q%h=OYFYAUG0xs81p(apZm8C?SJ%S$3;Ig|~V~xX< z@aL0OMLyticb3Xc zQ{1mYQNPyv_6rMqT8y5(~>nKeFee?aBy6xIkodOmf_KVe*BdwxXSKypVI6hyI4e(|eP zMSKR?e)%~7|+f@?GfEi)lMvpbQex=g1Q0d1qc6i z@HEFzy>+(eow|MXh;bo%j#0U;e(Yi(v&1nvjGnIjJ~Cy(dFYrVn!7b|+o{L(A{8zq z@RGfebb=uxwIW&qG;_Z?z(H~h-_5Mat;SF+vCj0I84#Stb zww7Un0pAWcDIR0Hd4%4KCUcilLx&3ri5XzM<@vwl1xLRy4Z~?=WI&MI0Dw{ZDQLWl zTX3@gv>mhtOu*m;@>FiUnt(H>5k01uSGa9%|4h^MJ=>hFG>}HyY+JmxtBu#!y)ff~ z8KgdX@w0b^R4=;tzDzTuP3$P+WE~Zwt17VZ)oPtsa;qBW64Oezh*{qFEiS7gPOL@N zobhT2ud#z7E%;?3O^tzYyvVbKJ@I26PzJXh$|L;XCEAU?^7s}zzz%7hTC@ls+9VDplrRT8h>5Tl2B9d3?X8F?QI?& zj^z|z;tr0+?rB==df}^_Lb!Xb%*G;--)IA@DK?yyn)k(${~~TA(HV6C$;Mbp4ADW`+jKANbP+@ zP^V2cLmJY}N@oh*56r7462QfLm8-z^sQyeC47pVS(M{bNY26&v*(70NMAV87n9Tu5m5W7Q;vMV!|9x*jKa`xl=W)dT5c1>9IR--Qgejj>jGCvrzYOj=Lg$-=dBUb%6dh$1zHSikmuSh<9=gv_4dVtt(@qX)%gV{m} z6|nNw1DJYESPuMXm$_p%j5>`;tz`3N@elp<8IW5(u^M^gQ^CxGw*P1ZcI(Qkvd#Rg zL|iKYdGQ6xJhSS-I8Mbk>P653%L$fVjsgzh)?wB6lrbIz*G(y8Saw;+^m8It+ohd# zPU$*?RG?2kRy>owlOCqma5GlR+*A~7DW@*^1va2kL#s2oikMQWs0d&yLP6yR@qX1BctBvou;1O{%*W=QMfcjZT;y z>QA_Ue=rGPG@3a;4-p&R5%k5D@kEA<@OX_1FGSDcl}+mT492h>hKg<)K0RABB?!0y zw7Mr!)5dqHu#WQEfzMo9cko?w2SV6X&$rSbt<|Ozi`?M5)<&h60f01~ZwJdIOn8AA zA{(sba98J*$DQy;CG*IMtI(@dA8QmFJk^VCLPH`IDpI;lI`}zocIo~->Z6@luiVP& zxao8M%te!OsBgY$WaKtud(Q&G<-Q(mV?Ne(JTCbt2So)^vUUJq@l{Z$Qo(bp@xO$q zLsdA@UnBZQkSZd7(#4Kch&GCyY&T9zMt8&#*RmcuxH1GW6UbV0V4re5tKqgKkPO#p z(?Cia_Q1I%`HTTPz*L*!x$JQ9|IeUaM3b@!-!BVmTy^#eo|-Q*c4)!pc)zY1V%-_& zM+6g3?l?x)KLj6Vuoh`xL-#zmmuN=S_%Qqn6n~t!bAH~F~*Xwu)>PF9}{<=m5@ z%D~TZ2PgAHS=u#d&YeC`LCPF%Di@n!(;|j!ilb9;xZ_aLen|X)c2-}yKm{*rG|L;moHZXe%?rcK zXObA4*oiz9!g{Y(j5w^063>`?b`YNOnB5G{nl~m2Hd@iahO>@>`H(Jah5}DFVd2;U zhpQG2m-Bo_=f{=^LNL4j@_glg6STGhD{iefCLw@o^5-O}>*}QNX1XG-M6bU~fQ;~7 zUdT&pi2`;DdvNU4^+$wvl0Qn|HsUTpv%nS9M+oL} zzFkXBxBt6!4n3Ijuc8*-a;{XD*?JS`2_6rFk_JZqj>ljw^vv1R?w-qXk z4sW?sJt97lEQu}^Zlp^w8ulEox;VvOwV_8FwB6sa1sym&l>3bLn$NLsKH6Lt9>dbZ z_hxO9dG-BXqOsHoj)^Kzk-licH&91b32ujL147#Ec<1)>Y3U1@5U}LeIxnNFQpI35 z+RSMtu%n{QqS=Bc5zfU5B(5>peInW zV7+fFgPqeK^G;rP#X!bK9M75}@pEad20rNNS-)F2bS-CT`cahA5?)@fDnVUXERtLk zWr$FpUmSCZ}}3IxMkoGx)&Mwe7DKhTJ7Z?~Fj;@o?LV#p4kKDx2SPXA4s?IJ_{73z=!DmeVHvU&GHAy*1kZ*Mqt`Poq5$uiwmD4ei z+5+`%n7Rd-efZYaMQU+oV^s#7ETO0@t9~-!yR7qiE1}ST?b#C5F0LBj`=@i0=s%sx zWTzsoPM?~`3(!?jI@+%Ej=?yRF507auQzhs#9lxC6v>xwXJgoMo^rbfMCd(f zE+_=SFxpcS3No2!A|q@DLOFec#Zoisu#u4ef*wG?fz<>9Yc_1GsUO>Nu5 zcDJ-e?e!&(I1CCb$Zx-~CL+l(xi!=c~04#I| z7pz@%WKH0a=S_QePkCU z*H24>?$w^EC)G|pWGLfBnLyjFJ6~KHm?>s8!v@%uJ1u-aV!hS%V0L*(*y8` zwCRpOiRd6;!ioLLQP|~Dd7BH=OPkK_)XVF+p702!^4Q@pBh4*iCDm32UR96 z$M)>qk@s4!CG3A%Iy0@{j!eS64)L)V-aVN;%{)Qph5glo{$%WaMt9a^x1|BgjD#dh zuNt`svUqH1swL<==e8H^-CpIN%ojZvbIsNSF^naa^)6R9i*xQsIZA|HCH5&BIxIlO zl0-mOuU~?Ng|SHqySP0?ZPL={XnS0gDVqLA^<-_qE<5%C{J!mBKE(;6HMcKP_v;Jc3Aw9cn=Atz{ey;PGk_rLipK9ewDZU~kC8< zmEwW25&iBWDab8%sj{8pU%Qv)R9U(ak=?-HllM#95vRx&ooQW+>Y}44!`hzaH}$jc zj_D#d-$`cugbyp}50&YZZ9<2T`EUD0^d-@=pVo#tff>ZooEOR8ZFYJhse6-5V=*j} z)GjW&h0_NftDS*GI4Bi8-i8`U8Xc=vkwAV84U;z@klWPuyeg-8pG<9#bl<~*UMZ+Q zc5ipGW;4a6&y-kBtqN&?CCHg?HaC`78gC_63m8C)BB~V}e05klc%dR^EOlRU9j?wu=4q|34XLP-y%;|DIrd+aCmB%EpRA{ zHKf1NdwsHRYdWrFv%V$F;f(QR&AhrsUJ=_Sf89lrBbW( z`>LswHq?c`rVcE)l!W_|R)%vlUo!8B(Om|WNG&0X`E(Q`Gp6Kh@J1I%a)$~zE%F|w z$nb!Vvky}>hV>=z`IS|(dhEYIy!wYY%O?U_G0rGY1i0Ir6_zK8==_XcSF;VC{|GF) zTYvwV_#7YC8OaO5r9?1-BWTs~rxI~tnDKZE&SKXT(N{ov2U)9c>{3KY^VAIZ5 z3(WWm;?yZO=@~g;q+)y)PKzYee(PKJH3**b6Lfm1?Zmkc?H2ysn^321K<9atV&4-2 zHK~foKX>(Gz$+h(GJsf{ujcDJqLGvcX!CRIVsZV}9`jG`v{cJjTGDTTNHJ$fc)m@g z(eZK4BLK*vzqJ(#?=xG4eJb1`59aX&4fy550YB~hO4!SEgW;h4tLwYABeC5rXEt(4 z8h-yz)CTZxbZ=%nD=|<71S=0M-K%Ml-Ge?As(EYZDgzZru;@Tzu8c_5p_o2rn3*ye z^q9kit~aq|3UM8=IK?EdxnDQ^3dGqxv%4ZdEX!cJ1enIU#wcEJVOp8KP7Y<+yc@Xv z8>$D_I)!g*?}Ofusc5Vo(Voj-O<LlSPHj7!3rXsB;`G?{0Njkc-|&QC-#4Y}`lVt^c46919P#$N}?dO>6W3V&P0za{pX;KM8!EzKwc^3+PSZAPXw$LmTAF;;yP}P zgd%?;_QsEFh?kw|*}EQIN3!o;7Y_z1B59`Azv|Zjh%bPUxgA@u3n%h&;?fmOt-1r3 zGxTbby^;liJ2dj#Ckay%#C@~|J7Lj|cyKpQ{}$h!}s@mhefO>PqQ(^s3^8#PKVtWe$-Nk~C1_V#-; zWwX;1Fh!8?!#T1giS7J5{2(>bYY~<@fmw3H- zsI(hMp1UyCsDTg_)wOUr3t{MA&x*FFR)axU;wztdEGmU5!U}RN(u-8#?92^N1Qg49 zb(dJ*nn;Dz9mI=9M$WTtc2LWl{s@@V?9ej_K8mW zJ*V*guGkJ+OCW};=G`a4TUdFQJ@^a zzPTWU5Hb*g)SFFDtNfT8dLL}chg{gDCFfoz;v@GEv6yBevh3{C5uau4cq*%OmSJ_s zqrtUzA3FnK78}-*jAhOB{uw_O)a40A#tQi4UL()3;CRpB`_FO?ZO&N_=_d%IfZ;BY z&b#q6l75{~0O7n!?a}N1VX9F`m8w_5YT!O0#mu65#wkJ5pU#*b_ z`#xb2=6ytX5~{Kc9)728H6~vX57Gi_1d%voSRZAm##$(@+R`--Q!ij@0 z+T&`62hW0d2H7xJL37tH3Y}4XtOG=ej4)>=E32 z3725Cia>mx4{n@`D1fpWPvkX;gXS$EFQC{f*Xl(v6{P$ZztT_(Ngw0FPv9X$78v<9 z0UrZp;m8Szv-er{$N?WUA`qNw84oB5;uWW3$M@3Tdd833qv2xKH64iasLMPf(yFMH zP4&HHL&!Gqb>J%4)qU@8AOcWs2)XDQ0Q&Y08w@}z4q2(OFnf6HEcZ1kf1kh_mC6XL z^siyrLkDHxJy1Iw`LCN1rBbugNYgg5OjSDIEgX_Imw#y6tsUq$F<^ZTy_@t5ci(a< z?NM}F*GHmx0~~p0rZyBWTuXH^p?%ZH5tp-vJeO> zgMiI_)_VJ3<*PAJ1}cd&>&azGG3-Y2bUd{^=98|YT9J`_Y)PC#*|l{qmFajlP+>_0 zR2hy-W<4}S#6{>bE@tS%yf5PYdc3~%+0gv*w=|0;4w*n@;#m4{qEkTbe$o_Ens z*z}LwNS(M-y}lcakZlJg`U^JLoG=eaB{=gm)Q|!f+Ww+x2%=;w+T0(mYaNyzbrKGl zI{zslp#isH(8|n}^$w~R%ThB1tdwJ3(I#Pio_7G`9I?B^qXySR4% zngUh}aub7X%;0adX%2Z~^a>P#6i|Sn0|aqSoyBx{gU(eiR!^=^5?uGRNu=cuE~-Li z&?+Lda@cB+9esO^q822lBbMlJi25#HSGwGlQKj<_|51>w**#R0z9fw-6ir9W7HnbK zcr*T^Z3U(ZJW*@_B{il;W6P46W8}BFDYLxU%Z;%!--&&{i>JRGPK>`8X2woGgQC@> zShs_uR4NRkR2c6RyGA=`C(T;!i@_=ge_cEUlNm$Ft4NH~OPWZ>Nt19s&y`72nX$*l+BeQpj7+=_Ft0INqC%J~M#@I|2Kngr(hMV1on+f4S6!5XUFoSNssg_

ql`V+=Tid^z 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 CH}Dbw literal 0 HcmV?d00001 diff --git a/docs/receipts/run-cancellation-18a24bf0c281/current-parent-review/current362-REVIEW.md b/docs/receipts/run-cancellation-18a24bf0c281/current-parent-review/current362-REVIEW.md new file mode 100644 index 0000000..b930c5d --- /dev/null +++ b/docs/receipts/run-cancellation-18a24bf0c281/current-parent-review/current362-REVIEW.md @@ -0,0 +1,42 @@ +# TestPilot #35: current parent 362 static addendum + +## Decision and identities + +Accept the frozen cancellation source against current main **362981dd84626fd55eda93584c2984cd9d0e5276**, tree **1a75241e7e215b3586159fce945df70a6e139d78**. This is a bounded static composition review; the existing native cancellation results remain bound to their original **7f44** inputs. + +The current commit merges **7f44c4f134f4d56d37dd14c7c2d2aaa3c8c8749e** and **0ff58452254a89969ccfced9444bff9f247280ca** through PR41. Its complete, untruncated tree has **1,072 leaves**, and all directory hashes reconstruct exactly. + +The parent delta consists of **13 leaves: nine additions and four modifications**. Production changes are limited to: + +| Path | Prior blob | Current blob | +| --- | --- | --- | +| testpilot/recheck.py | 4ab26cbb83beff563b9c3683c593b3efd2495b6b | b5d0b705c30c03e6b7e7e90b83e8dc83b8f9de52 | +| testpilot/recheck_html.py | absent | 9b16cf829029e1b5d34392bb93f6d3a31e916a90 | + +The remaining delta is README/RECHECK documentation, one existing test assertion, the new renderer test and seven receiving files. + +## Qualified execution inputs + +Of the original **14 captured pins, 12 remain exact**. Only README.md and recheck.py differ. Of the **nine existing package modules, eight remain exact**; recheck_html.py is a new tenth module. + +The original sandbox remains **8ca4a4102c7890e89eae99548e28ba8325974f1e**. The frozen candidate remains **84330f96ebd71b37dc40575fa2ac59ba53cf2a72**, from native source commit **649dc7d1fd02493af298876eea0697849404bba9**. CLI, loop/output staging, model, collector, dependency/workflow files and both existing sandbox tests retain their qualified bytes. + +## Output-path interaction + +Replacing only the new write_recheck_outputs block with its original block, and removing the two new imports, reproduces the entire original recheck.py bytes. Every other recheck function and class is AST-identical. Admission, retained-test placement, execution, timeout, console handling and return-code logic are unchanged. + +The CLI eagerly imports recheck, so the new renderer is part of CLI import. Its top level contains only standard-library imports, function definitions and a literal CSS assignment. It performs no renderer call, file access, model call or test execution on import. + +The actual renderer call occurs inside write_recheck_outputs after recheck_report returns a completed result. It prepares the additional HTML before creating the output directory. The unchanged run_recheck_command boundary catches OSError and RecheckError, not KeyboardInterrupt; an interrupted sandbox does not proceed to this output call. + +Default generation and coverage behavior therefore remain unchanged. The peer's intended completed-recheck behavior—also writing recheck.html—is preserved. No cancellation or renderer test rerun was needed or performed for this source interaction. + +## Ownership and preservation + +Issue37 is now closed through merged PR41. Coverage issue36 remains represented by unmerged draft PR40 at **949d41109600811912b096d287d02f6b74d0c47d**. The explicit-target and comparison PRs remain open with their owners. + +Applying only the original author's **27-path whitelist** to this current parent produces expected tree **57f86b70e34c5bca1ee83a41d9d33c22ec579d73**, containing **1,098 leaves**. Only sandbox.py replaces an existing file; all **1,071 unrelated current-parent leaves** remain exact. Separate author, product-receiver and current-parent evidence additions must still be accounted for in root's final publication tree. + +The original review commit **d11523c991a0cb29bdd583b29a67dc1176b149d3** and its three-file publication packet are unchanged. The accompanying current362 qualification records the complete delta, all 14 pin comparisons, source hashes, function reconstruction and ownership observations. Full input/API/source and static-verifier custody is retained in the additive native evidence commit named by this packet. + +No production source, live process, repository reference or test result was changed. diff --git a/docs/receipts/run-cancellation-18a24bf0c281/current-parent-review/current362-qualification.json b/docs/receipts/run-cancellation-18a24bf0c281/current-parent-review/current362-qualification.json new file mode 100644 index 0000000..a5d72d8 --- /dev/null +++ b/docs/receipts/run-cancellation-18a24bf0c281/current-parent-review/current362-qualification.json @@ -0,0 +1,311 @@ +{ + "author27_expected_leaves": 1098, + "author27_expected_tree": "57f86b70e34c5bca1ee83a41d9d33c22ec579d73", + "candidate_sandbox_blob": "84330f96ebd71b37dc40575fa2ac59ba53cf2a72", + "candidate_source_commit": "649dc7d1fd02493af298876eea0697849404bba9", + "current_leaves": 1072, + "current_parent": "362981dd84626fd55eda93584c2984cd9d0e5276", + "current_tree": "1a75241e7e215b3586159fce945df70a6e139d78", + "decision": "Accept bounded current362 output-path composition; no cancellation rerun required", + "delta": { + "added_leaves": 9, + "changed_leaves": 13, + "commits": 3, + "files": [ + { + "additions": 9, + "deletions": 0, + "filename": "README.md", + "sha": "0a302f3dea5edc6688793e32da8dd5754ce2b907", + "status": "modified" + }, + { + "additions": 18, + "deletions": 0, + "filename": "docs/RECHECK.md", + "sha": "7ac4a71d60add1ee718ab777c74aff887a453c29", + "status": "modified" + }, + { + "additions": 32, + "deletions": 0, + "filename": "docs/receiving/recheck-html-ae0a1ea0b247/README.md", + "sha": "1de67e8311d14ab14b7faf5fbe6b00be17ad6630", + "status": "added" + }, + { + "additions": 0, + "deletions": 0, + "filename": "docs/receiving/recheck-html-ae0a1ea0b247/author-evidence.tar.gz", + "sha": "9c9143b6da834d6b6bd6dc068f480e49ffe474e7", + "status": "added" + }, + { + "additions": 27, + "deletions": 0, + "filename": "docs/receiving/recheck-html-ae0a1ea0b247/hosted-ci.json", + "sha": "1299166a0c7f2c77abc63a0bee6d90ca36d915d0", + "status": "added" + }, + { + "additions": 207, + "deletions": 0, + "filename": "docs/receiving/recheck-html-ae0a1ea0b247/hosted-ci.log.txt", + "sha": "22c7901fb682e593b21f6e422b64501cea0136dd", + "status": "added" + }, + { + "additions": 0, + "deletions": 0, + "filename": "docs/receiving/recheck-html-ae0a1ea0b247/independent-recheck-html.tar.gz", + "sha": "6dcad3820246d3e9006e97474ddd5883a9451562", + "status": "added" + }, + { + "additions": 218, + "deletions": 0, + "filename": "docs/receiving/recheck-html-ae0a1ea0b247/independent-review.json", + "sha": "2967863eda3490722356d75372250cd7ec048f00", + "status": "added" + }, + { + "additions": 160, + "deletions": 0, + "filename": "docs/receiving/recheck-html-ae0a1ea0b247/source-publication.json", + "sha": "2823919110f20fad1e1b70f8ecd8c2e967bea953", + "status": "added" + }, + { + "additions": 13, + "deletions": 2, + "filename": "testpilot/recheck.py", + "sha": "b5d0b705c30c03e6b7e7e90b83e8dc83b8f9de52", + "status": "modified" + }, + { + "additions": 152, + "deletions": 0, + "filename": "testpilot/recheck_html.py", + "sha": "9b16cf829029e1b5d34392bb93f6d3a31e916a90", + "status": "added" + }, + { + "additions": 1, + "deletions": 1, + "filename": "tests/test_recheck.py", + "sha": "426085b7824979a764056c528d2ca2ccfc647d77", + "status": "modified" + }, + { + "additions": 184, + "deletions": 0, + "filename": "tests/test_recheck_html.py", + "sha": "416ebc35d8c5bd6b9900abd9f4a9f07b08b3e438", + "status": "added" + } + ], + "modified_leaves": 4 + }, + "exact_existing_package_modules": 8, + "exact_qualified_pins": 12, + "existing_package_modules": 9, + "full_tree_and_subtrees_reconstructed": true, + "interaction": { + "KeyboardInterrupt_not_caught_by_unchanged_recheck_command_boundary": true, + "cli_eager_import_reviewed": true, + "default_generation_and_coverage_behavior_preserved": true, + "generation_cli_loop_model_collector_sandbox_original_exact": true, + "intentional_peer_behavior": "Successful completed rechecks additionally prepare/write recheck.html; this output change is preserved.", + "new_renderer_module_only_stdlib_imports_definitions_literal_style": true, + "recheck_without_new_writer_and_imports_byte_exact": true, + "rendering_only_after_completed_recheck_before_output_directory_creation": true, + "unchanged_recheck_definitions": [ + "RecheckError", + "SavedTests", + "_unique_object", + "_reject_constant", + "read_saved_tests", + "_placement", + "recheck_report", + "render_recheck", + "_output_destination", + "_write_console", + "run_recheck_command" + ] + }, + "issue": 35, + "limits": [ + "This is static source interaction, not execution on362 or a repeated cancellation/recheck test.", + "Original7f44 review and both native cancellation receivers retain their original source bindings.", + "Computed expected tree includes the27 author files only; root composes separate evidence packets.", + "No source, production state, GitHub reference or test outcome changed." + ], + "new_package_modules": [ + { + "mode": "100644", + "path": "testpilot/recheck_html.py", + "sha": "9b16cf829029e1b5d34392bb93f6d3a31e916a90", + "type": "blob" + } + ], + "ownership": { + "coverage_head": "949d41109600811912b096d287d02f6b74d0c47d", + "coverage_issue36_pr40": "open draft, not landed", + "issue37": "closed", + "merged_head": "0ff58452254a89969ccfced9444bff9f247280ca", + "merged_pr": 41, + "other_open_prs": [ + 38, + 33 + ] + }, + "prior_review_commit": "d11523c991a0cb29bdd583b29a67dc1176b149d3", + "production_changed": [ + { + "mode": "100644", + "path": "testpilot/recheck.py", + "sha": "b5d0b705c30c03e6b7e7e90b83e8dc83b8f9de52", + "type": "blob" + }, + { + "mode": "100644", + "path": "testpilot/recheck_html.py", + "sha": "9b16cf829029e1b5d34392bb93f6d3a31e916a90", + "type": "blob" + } + ], + "qualified14_pins": [ + { + "current_blob": "86a3236e38155506b5fe6077322d508f7f676649", + "exact": true, + "mode": "100644", + "path": ".github/workflows/ci.yml", + "qualified_blob": "86a3236e38155506b5fe6077322d508f7f676649" + }, + { + "current_blob": "0a302f3dea5edc6688793e32da8dd5754ce2b907", + "exact": false, + "mode": "100644", + "path": "README.md", + "qualified_blob": "24a6c0fab34c05d17ef216a42e97a0fae2389fc2" + }, + { + "current_blob": "952255ac87e2c7da57457fdbf3554914f17f6d05", + "exact": true, + "mode": "100644", + "path": "pyproject.toml", + "qualified_blob": "952255ac87e2c7da57457fdbf3554914f17f6d05" + }, + { + "current_blob": "296210dd0d58703de4a4e4c9ad72a0944c9400ca", + "exact": true, + "mode": "100644", + "path": "testpilot/__init__.py", + "qualified_blob": "296210dd0d58703de4a4e4c9ad72a0944c9400ca" + }, + { + "current_blob": "2d98e2a85320ac2827ea48fa9d58d30a60354b6a", + "exact": true, + "mode": "100644", + "path": "testpilot/__main__.py", + "qualified_blob": "2d98e2a85320ac2827ea48fa9d58d30a60354b6a" + }, + { + "current_blob": "90b82725bc0eb1ff3d7cb517c4c9dedcfd14bdcc", + "exact": true, + "mode": "100644", + "path": "testpilot/_pytest_generated.py", + "qualified_blob": "90b82725bc0eb1ff3d7cb517c4c9dedcfd14bdcc" + }, + { + "current_blob": "29dd325ab288ac1d43fd70f33b207281f5375d4b", + "exact": true, + "mode": "100644", + "path": "testpilot/diff.py", + "qualified_blob": "29dd325ab288ac1d43fd70f33b207281f5375d4b" + }, + { + "current_blob": "bb30d903542d836f5afe8e116ba894f93d9d3a0c", + "exact": true, + "mode": "100644", + "path": "testpilot/html_report.py", + "qualified_blob": "bb30d903542d836f5afe8e116ba894f93d9d3a0c" + }, + { + "current_blob": "ed0f5f7f057c217b931a1756bd679ae087247e0a", + "exact": true, + "mode": "100644", + "path": "testpilot/loop.py", + "qualified_blob": "ed0f5f7f057c217b931a1756bd679ae087247e0a" + }, + { + "current_blob": "6d4abca38cc1c256df00bcac7923e2dc0bd42b16", + "exact": true, + "mode": "100644", + "path": "testpilot/model.py", + "qualified_blob": "6d4abca38cc1c256df00bcac7923e2dc0bd42b16" + }, + { + "current_blob": "b5d0b705c30c03e6b7e7e90b83e8dc83b8f9de52", + "exact": false, + "mode": "100644", + "path": "testpilot/recheck.py", + "qualified_blob": "4ab26cbb83beff563b9c3683c593b3efd2495b6b" + }, + { + "current_blob": "8ca4a4102c7890e89eae99548e28ba8325974f1e", + "exact": true, + "mode": "100644", + "path": "testpilot/sandbox.py", + "qualified_blob": "8ca4a4102c7890e89eae99548e28ba8325974f1e" + }, + { + "current_blob": "d8ebce5a81205aad005e45a280aec898e3e89820", + "exact": true, + "mode": "100644", + "path": "tests/test_sandbox_deadline.py", + "qualified_blob": "d8ebce5a81205aad005e45a280aec898e3e89820" + }, + { + "current_blob": "de2fde7cd5dd683c338810d4707987ea5a2e9055", + "exact": true, + "mode": "100644", + "path": "tests/test_sandbox.py", + "qualified_blob": "de2fde7cd5dd683c338810d4707987ea5a2e9055" + } + ], + "qualified_parent": "7f44c4f134f4d56d37dd14c7c2d2aaa3c8c8749e", + "recorded_at": "2026-10-08T16:40:11.959873+00:00", + "repository": "Jacob-Met/testpilot", + "source_manifest": [ + { + "bytes": 6065, + "git_blob": "2d98e2a85320ac2827ea48fa9d58d30a60354b6a", + "label": "current", + "path": "testpilot/__main__.py", + "sha256": "90577ea3a939642f5cb29818f6360df96d9fa0d35d05af11bf97054425c32c84" + }, + { + "bytes": 12115, + "git_blob": "b5d0b705c30c03e6b7e7e90b83e8dc83b8f9de52", + "label": "current", + "path": "testpilot/recheck.py", + "sha256": "3eab07bd639994f897f76c0cd2b941d5e294c6d7c8132c82deb800e44d7079e6" + }, + { + "bytes": 10184, + "git_blob": "9b16cf829029e1b5d34392bb93f6d3a31e916a90", + "label": "current", + "path": "testpilot/recheck_html.py", + "sha256": "6cc81b1d1e63282708a4cad448224bac5359519c4955d82c6244afa80738e633" + }, + { + "bytes": 11599, + "git_blob": "4ab26cbb83beff563b9c3683c593b3efd2495b6b", + "label": "qualified", + "path": "testpilot/recheck.py", + "sha256": "1ecbe0ff7da7bb4a8117d730a76624c8929e0e4b10cb9d502ab7358cb38d8f2e" + } + ], + "unrelated_current_retained": 1071 +} diff --git a/docs/receipts/run-cancellation-18a24bf0c281/current-parent-review/qualification.json b/docs/receipts/run-cancellation-18a24bf0c281/current-parent-review/qualification.json new file mode 100644 index 0000000..cb1ed2a --- /dev/null +++ b/docs/receipts/run-cancellation-18a24bf0c281/current-parent-review/qualification.json @@ -0,0 +1,66 @@ +{ + "all9_runtime_modules_current": true, + "author_evidence_commit": "70ac0bde74a6256bc76e9503592ac56d0dcb790d", + "author_only_expected_leaves": 1089, + "author_only_expected_tree": "6a99b015b8ffead56c9c866005b0fbeeeeb61e72", + "author_source_commit": "649dc7d1fd02493af298876eea0697849404bba9", + "candidate_sandbox_blob": "84330f96ebd71b37dc40575fa2ac59ba53cf2a72", + "current_leaves": 1063, + "current_parent": "7f44c4f134f4d56d37dd14c7c2d2aaa3c8c8749e", + "current_tree": "ea3f7b4170f1515abb7188d31dc269623b9e0738", + "decision": "Current parent and native receiving closure preserved; no later production delta", + "issue": 35, + "later_production_changes": [], + "limits": [ + "This is a static current-parent and complete-whitelist review, not a duplicate receiving run.", + "Expected tree includes author27 paths only; root must account separately for product's independent evidence.", + "Future main advances need their own exact-parent comparison; no claim of future branch preservation." + ], + "loop_output_staging_blob": "ed0f5f7f057c217b931a1756bd679ae087247e0a", + "native_closure_all14_pins_current": true, + "no_github_mutation": true, + "no_source_edit": true, + "no_test_execution": true, + "original_sandbox_blob": "8ca4a4102c7890e89eae99548e28ba8325974f1e", + "ownership": { + "issue35": "Cancellation owner retains sandbox._run; generated-phase independent receiver remains separate.", + "issue36": { + "draft": true, + "head": "949d41109600811912b096d287d02f6b74d0c47d", + "landed": false, + "scope": "Only run CLI --no-coverage and constructor forwarding; sandbox/loop/recheck excluded.", + "source_pr": 40, + "state": "open" + }, + "issue37": { + "current_recheck_blob": "4ab26cbb83beff563b9c3683c593b3efd2495b6b", + "landed": false, + "latest_comment": 6064067702, + "scope": "New offline recheck HTML and additive output writer; sandbox/CLI/loop/model excluded.", + "state": "open" + }, + "other_open_prs": [ + { + "draft": true, + "head": "949d41109600811912b096d287d02f6b74d0c47d", + "number": 40 + }, + { + "draft": false, + "head": "34d647d0921964c9336d10d365b59b772b667caa", + "number": 38 + }, + { + "draft": false, + "head": "a978524a75bb53d9beaa2e271b187069deafb800", + "number": 33 + } + ] + }, + "packet_files_verified": 27, + "packet_sha256": "9883fd2329d7cc312507b6704eed0a4c98e268bf18b2e2d6b6acaa11d27a61a9", + "recorded_at": "2026-10-08T16:15:05.617536+00:00", + "repository": "Jacob-Met/testpilot", + "tree_complete_and_reconstructed": true, + "unrelated_parent_retained": 1062 +} diff --git a/docs/receipts/run-cancellation-18a24bf0c281/current-parent-source.json b/docs/receipts/run-cancellation-18a24bf0c281/current-parent-source.json new file mode 100644 index 0000000..bf6c3f7 --- /dev/null +++ b/docs/receipts/run-cancellation-18a24bf0c281/current-parent-source.json @@ -0,0 +1,109 @@ +{ + "canonical_head": "7f44c4f134f4d56d37dd14c7c2d2aaa3c8c8749e", + "canonical_tree": "ea3f7b4170f1515abb7188d31dc269623b9e0738", + "original_executed_head": "f3b2135cad31852b599350564fe76dd160a6a522", + "full_tree_blobs": 1063, + "captured_files": [ + { + "path": ".github/workflows/ci.yml", + "mode": "100644", + "git_blob": "86a3236e38155506b5fe6077322d508f7f676649", + "size": 586, + "sha256": "236fd600bea41471b373b91d8e389aa12c58cba79c83efa071f6ab805f1ebf59" + }, + { + "path": "README.md", + "mode": "100644", + "git_blob": "24a6c0fab34c05d17ef216a42e97a0fae2389fc2", + "size": 12669, + "sha256": "9e1c93aa93ca1942d002c3bd28779d780b568b606cfa7e001058c13997e34854" + }, + { + "path": "pyproject.toml", + "mode": "100644", + "git_blob": "952255ac87e2c7da57457fdbf3554914f17f6d05", + "size": 676, + "sha256": "5503eab7b6c145d4de241e5be805a4fb8f30828053cbe39dc05a43c2896642eb" + }, + { + "path": "testpilot/__init__.py", + "mode": "100644", + "git_blob": "296210dd0d58703de4a4e4c9ad72a0944c9400ca", + "size": 390, + "sha256": "65c63b80d7da34a83a6049a79c24b8335878cd49cc79951fdefc5f1532ae841f" + }, + { + "path": "testpilot/__main__.py", + "mode": "100644", + "git_blob": "2d98e2a85320ac2827ea48fa9d58d30a60354b6a", + "size": 6065, + "sha256": "90577ea3a939642f5cb29818f6360df96d9fa0d35d05af11bf97054425c32c84" + }, + { + "path": "testpilot/_pytest_generated.py", + "mode": "100644", + "git_blob": "90b82725bc0eb1ff3d7cb517c4c9dedcfd14bdcc", + "size": 2943, + "sha256": "d65352d7bade965d7b9dc73efe5d4d01844fa8c7474a1bdcdb3b708f6decf768" + }, + { + "path": "testpilot/diff.py", + "mode": "100644", + "git_blob": "29dd325ab288ac1d43fd70f33b207281f5375d4b", + "size": 9387, + "sha256": "2cf38707ea175bb1f04d55335de344ae943458658055332b4aa68f27763214c0" + }, + { + "path": "testpilot/html_report.py", + "mode": "100644", + "git_blob": "bb30d903542d836f5afe8e116ba894f93d9d3a0c", + "size": 20656, + "sha256": "183703d05f32552f7f7c39aa958c39bae61d824e3fa9cd6a6dd686f0d4c228a4" + }, + { + "path": "testpilot/loop.py", + "mode": "100644", + "git_blob": "ed0f5f7f057c217b931a1756bd679ae087247e0a", + "size": 25480, + "sha256": "dde4ee52e0a1fabded9902137ede6dd68aa17f6542c316e5d134b8510495170b" + }, + { + "path": "testpilot/model.py", + "mode": "100644", + "git_blob": "6d4abca38cc1c256df00bcac7923e2dc0bd42b16", + "size": 10175, + "sha256": "f6ae697f1f5d686ffdcb96f5451d1a9600d7d41c7bcf324d7e8c276a107e8673" + }, + { + "path": "testpilot/recheck.py", + "mode": "100644", + "git_blob": "4ab26cbb83beff563b9c3683c593b3efd2495b6b", + "size": 11599, + "sha256": "1ecbe0ff7da7bb4a8117d730a76624c8929e0e4b10cb9d502ab7358cb38d8f2e" + }, + { + "path": "testpilot/sandbox.py", + "mode": "100644", + "git_blob": "8ca4a4102c7890e89eae99548e28ba8325974f1e", + "size": 12721, + "sha256": "8d5aadafff5188473ec45eb1cd8f01fb562836ff05bf12a27939cde83b33472a" + }, + { + "path": "tests/test_sandbox_deadline.py", + "mode": "100644", + "git_blob": "d8ebce5a81205aad005e45a280aec898e3e89820", + "size": 4248, + "sha256": "6a9abfdc79bcb2cc3102d94b6b61d20ea09b0f89d5c7c5842387ce77c136d7e1" + }, + { + "path": "tests/test_sandbox.py", + "mode": "100644", + "git_blob": "de2fde7cd5dd683c338810d4707987ea5a2e9055", + "size": 2545, + "sha256": "ee47d6a3f40c2f612197614088ea40cbdd50a7f04047780c95a71e37c1555992" + } + ], + "scope": "Exact 14-file receiving closure and existing sandbox tests; not a full upstream clone. Original f3 baseline/evidence remain unchanged. Current loop.py preserves merged PR34 output staging.", + "no_agents_in_recursive_current_tree": true, + "execution": "No current-main execution is claimed by this source capture." +} diff --git a/docs/receipts/run-cancellation-18a24bf0c281/focused-test-baseline-freeze.json b/docs/receipts/run-cancellation-18a24bf0c281/focused-test-baseline-freeze.json new file mode 100644 index 0000000..80dab7f --- /dev/null +++ b/docs/receipts/run-cancellation-18a24bf0c281/focused-test-baseline-freeze.json @@ -0,0 +1,84 @@ +{ + "canonical_parent": "7f44c4f134f4d56d37dd14c7c2d2aaa3c8c8749e", + "canonical_tree": "ea3f7b4170f1515abb7188d31dc269623b9e0738", + "claim": "https://github.com/Jacob-Met/testpilot/issues/35", + "production_delta": [], + "files": [ + { + "path": ".github/workflows/ci.yml", + "git_blob": "86a3236e38155506b5fe6077322d508f7f676649", + "sha256": "236fd600bea41471b373b91d8e389aa12c58cba79c83efa071f6ab805f1ebf59" + }, + { + "path": "README.md", + "git_blob": "24a6c0fab34c05d17ef216a42e97a0fae2389fc2", + "sha256": "9e1c93aa93ca1942d002c3bd28779d780b568b606cfa7e001058c13997e34854" + }, + { + "path": "pyproject.toml", + "git_blob": "952255ac87e2c7da57457fdbf3554914f17f6d05", + "sha256": "5503eab7b6c145d4de241e5be805a4fb8f30828053cbe39dc05a43c2896642eb" + }, + { + "path": "testpilot/__init__.py", + "git_blob": "296210dd0d58703de4a4e4c9ad72a0944c9400ca", + "sha256": "65c63b80d7da34a83a6049a79c24b8335878cd49cc79951fdefc5f1532ae841f" + }, + { + "path": "testpilot/__main__.py", + "git_blob": "2d98e2a85320ac2827ea48fa9d58d30a60354b6a", + "sha256": "90577ea3a939642f5cb29818f6360df96d9fa0d35d05af11bf97054425c32c84" + }, + { + "path": "testpilot/_pytest_generated.py", + "git_blob": "90b82725bc0eb1ff3d7cb517c4c9dedcfd14bdcc", + "sha256": "d65352d7bade965d7b9dc73efe5d4d01844fa8c7474a1bdcdb3b708f6decf768" + }, + { + "path": "testpilot/diff.py", + "git_blob": "29dd325ab288ac1d43fd70f33b207281f5375d4b", + "sha256": "2cf38707ea175bb1f04d55335de344ae943458658055332b4aa68f27763214c0" + }, + { + "path": "testpilot/html_report.py", + "git_blob": "bb30d903542d836f5afe8e116ba894f93d9d3a0c", + "sha256": "183703d05f32552f7f7c39aa958c39bae61d824e3fa9cd6a6dd686f0d4c228a4" + }, + { + "path": "testpilot/loop.py", + "git_blob": "ed0f5f7f057c217b931a1756bd679ae087247e0a", + "sha256": "dde4ee52e0a1fabded9902137ede6dd68aa17f6542c316e5d134b8510495170b" + }, + { + "path": "testpilot/model.py", + "git_blob": "6d4abca38cc1c256df00bcac7923e2dc0bd42b16", + "sha256": "f6ae697f1f5d686ffdcb96f5451d1a9600d7d41c7bcf324d7e8c276a107e8673" + }, + { + "path": "testpilot/recheck.py", + "git_blob": "4ab26cbb83beff563b9c3683c593b3efd2495b6b", + "sha256": "1ecbe0ff7da7bb4a8117d730a76624c8929e0e4b10cb9d502ab7358cb38d8f2e" + }, + { + "path": "testpilot/sandbox.py", + "git_blob": "8ca4a4102c7890e89eae99548e28ba8325974f1e", + "sha256": "8d5aadafff5188473ec45eb1cd8f01fb562836ff05bf12a27939cde83b33472a" + }, + { + "path": "tests/test_sandbox_deadline.py", + "git_blob": "d8ebce5a81205aad005e45a280aec898e3e89820", + "sha256": "6a9abfdc79bcb2cc3102d94b6b61d20ea09b0f89d5c7c5842387ce77c136d7e1" + }, + { + "path": "tests/test_sandbox.py", + "git_blob": "de2fde7cd5dd683c338810d4707987ea5a2e9055", + "sha256": "ee47d6a3f40c2f612197614088ea40cbdd50a7f04047780c95a71e37c1555992" + }, + { + "path": "tests/test_sandbox_interrupt.py", + "sha256": "466bbdd470001a5e23e55a1205352dfccc8c714470fe903ff241b28416449325", + "git_blob": "184e969e57fc2a483b6a4e7b1709e16f66ce37e6" + } + ], + "test_policy": "Four real POSIX process-group/pipe cases; fixture-only signals, eight-second worker lifetimes, ten-second fallback cleanup. No dependency installation." +} diff --git a/docs/receipts/run-cancellation-18a24bf0c281/independent-generated-phase/README.md b/docs/receipts/run-cancellation-18a24bf0c281/independent-generated-phase/README.md new file mode 100644 index 0000000..b432de0 --- /dev/null +++ b/docs/receipts/run-cancellation-18a24bf0c281/independent-generated-phase/README.md @@ -0,0 +1,104 @@ +# Independent generated-verification cancellation receiving + +The frozen TestPilot cancellation change is accepted for this independently chosen later-phase CLI scenario. The same pre-frozen receiver reports **12/14 checks on the unchanged current parent** and **14/14 on the exact candidate**. The two original failures are actual owned work still running at caller exit and a worker continuing after a handshake released only after that exit. The candidate resolves both. No production source was edited. + +## Exact source and receiver identity + +| Item | Identity | +|---|---| +| Repository and scope | Jacob-Met/testpilot, issue #35 | +| Current canonical parent | `7f44c4f134f4d56d37dd14c7c2d2aaa3c8c8749e` | +| Parent tree | `ea3f7b4170f1515abb7188d31dc269623b9e0738` | +| Canonical size | 1,063 blobs; the native receiving closure contains 14 exact source/context/test files | +| Frozen native candidate | `649dc7d1fd02493af298876eea0697849404bba9` | +| Candidate sandbox blob | `84330f96ebd71b37dc40575fa2ac59ba53cf2a72` | +| Candidate sandbox SHA256 | `0adf5eb81f8fd15ca09170c5328e6ff4165e1a0f903221b9730de3b480be0b1b` | +| Preserved output-staging loop blob | `ed0f5f7f057c217b931a1756bd679ae087247e0a` | +| Independent pre-execution freeze | `0c5eb9caeaaf4b3d014b1ce65eab21f45f49e546` | +| Independent original receiving commit | `9317bdb3a0fda248ffcbabbe94c401a4558a1b41` | +| Unchanged driver SHA256 | `301391fcb3b08eb41d8958d4305a50e95cdee03127a2584357a69d3e35d893f7` | +| Accepted generated-file SHA256 | `121d3bf5dd29e14e9abff37e5e14526ecad74c0507e8daccb75317e217f1e907` | +| Runtime | macOS, Python 3.12.8, pytest 9.1.1; coverage absent | +| Own native directory | `/Users/me/testpilot-independent-interrupt-18a24bf0c281` | + +This original run is on **current 7f44**, including the merged output-staging implementation. It does not relabel the author's earlier f3 discovery. The receiver froze its own fixture, manual lifecycle expectations and driver before executing the original. The original negative result was committed before candidate intake. Candidate bytes were then read from immutable Git objects and verified against the author's frozen 16-file manifest. + +All nine package modules are included in each source closure. The remaining files are config, README/workflow context and declared tests/docs. The 14-file original and 16-file candidate snapshots are not replacements for the full canonical repository tree. Root preserves the full tree during integration. + +The interpreter was reused read-only with explicit owner authorization. Sources, project fixture, model replies, output directory, temporary roots, worker state and process IDs belong to this independent receiver. Python bytecode writes and pytest plugin autoload were disabled. No provider or live project was involved. + +## Why this receiver is distinct + +The author interrupted the initial existing-test phase. This receiver interrupts the **generated-test verification phase**, after the actual CLI has run the existing suite and accepted its scripted planning and editing replies. + +A small real project exposes `combine(left, right)`. Its existing test passes, and the generated file begins by asserting `combine(9, 4) == 13`. The generated test then launches one bounded worker without creating another process group and records: + +- its own PID, parent PID and process group; +- the actual generated file path and SHA256 in TestPilot's temporary repository; +- its worker's PID. + +The worker independently records its PID, parent and inherited group, then writes a heartbeat. Reaching this readiness proves that the accepted generated file is actually executing, rather than inferring that generation happened from a returned status or a mock. + +The actual CLI invocation uses the existing offline `--backend scripted`, `--rounds 0`, `--timeout 30`, and the declared native interpreter. No model-network request is made. This qualification exercises the existing deterministic backend; it makes no model-quality claim. + +## Handwritten lifecycle and preservation expectations + +The driver and fixture are unchanged between original and candidate. Before either run, the expectations required that: + +1. The actual generated file and input assertion match the frozen reply. +2. Pytest leads its separately created process group, and its one worker inherits that group. +3. A real SIGINT delivered to the owning CLI remains a cancellation and exits within three seconds. +4. No owned pytest or worker process remains running at observed caller exit. +5. Only after observing caller exit does the receiver atomically publish a private handshake; an owned worker must be unable to write a continuation marker in response. +6. The four existing output files retain bytes, inode, permission bits and write timestamps, with no extra publication path. +7. The original project, replies and all captured source blobs remain unchanged. +8. Any receiver cleanup is finite and restricted to recorded owned process/group identities. + +The existing output directory contains four explicitly **synthetic regular preservation sentinels**, named `report.json`, `report.md`, `report.html` and `testpilot.patch`. Their contents are not presented as a previous complete semantic TestPilot report. They test the actual admitted filesystem setup: current `run` accepts the existing output directory, reaches generated verification, and publishes results only after the run returns. The files have deliberate read-only/read-write modes and fixed historical write timestamps, so preservation is checked independently of byte equality. + +The private handshake is written by atomic replacement strictly after the CLI's observed exit. The worker can write its continuation marker only after reading that complete flag. This is evidence of actual post-cancellation work; a zombie/PID-only observation does not qualify as running work. + +## Native result + +| Observation | Current parent 7f44 | Frozen candidate 649dc7d | +|---|---|---| +| Native execution start, UTC | 2026-10-08 16:04:54 | 2026-10-08 16:10:49 | +| Actual CLI invocations | 1 | 1 | +| Checks | 12 pass, 2 fail | 14 pass, 0 fail | +| CLI PID / group | 5896 / 5896 | 55620 / 55620 | +| Pytest PID / group | 5917 / 5917 | 55653 / 55653 | +| Worker PID / group | 5918 / 5917 | 55654 / 55653 | +| CLI exit after SIGINT | -2 in 0.284665 s | -2 in 0.281482 s | +| Owned work at parent exit | Both pytest and worker running | Neither present | +| Post-parent-exit continuation marker | Written by worker 5918 | Absent | +| Four preexisting output files | Exact identities preserved | Exact identities preserved | +| Receiver cleanup signal | SIGKILL to proven owned group 5917 | No signal needed | +| Owned work remaining at receiver end | None | None | + +The observed durations establish the finite receiving bound; this is not a performance comparison. + +In the original run, pytest's parent is already PID 1 when the caller has exited. Its worker then writes the handshake-triggered marker about 0.076 seconds after the caller's observed exit. The receiver records both still-live commands and their group before signaling only that owned group. Both are absent at the end of cleanup. + +In the candidate, neither owned process is present at caller exit. The receiver releases the same handshake and observes no continuation. It sends no cleanup signal. KeyboardInterrupt remains visible, no publication-success line is printed, and the same four output files retain their complete before/after identities. + +All 14 original and all 16 candidate source/context blobs remain exact after their respective runs. No generated file is added to the original project. The complete process observations, commands, outputs and checks are retained in `baseline-report.json` and `candidate-report.json`. + +## Independent source review + +Only `testpilot/sandbox.py` differs among the original source/context files. The other 13 remain byte-identical, including the merged output-staging loop. The two added candidate paths are the author's focused test and cancellation documentation. + +Removing the 15-line KeyboardInterrupt handler and restoring its docstring reconstructs the **entire original sandbox module byte for byte**, SHA256 `8d5aadafff5188473ec45eb1cd8f01fb562836ff05bf12a27939cde83b33472a`. This verifies that the existing timeout path and remaining module bytes are unchanged. + +The added POSIX handler kills the launched group, waits at most one second for its leader, closes its stdout and uses a bare re-raise. It does not convert cancellation into success or timeout, enter another model round, or publish a report. The static result and inspected handler are preserved in `static-candidate-review.json`. + +This independent review did not replay the author's interrupt matrix, escaped-pipe case, 13 maintained tests or ordinary successful-run control. + +## Evidence custody and qualification boundary + +`native-receiving.tar.gz` contains the complete 30-file original/candidate source closure, frozen fixture and driver, native environment and intake records, both raw CLI runs, all process and handshake files, and preserved output sentinels. `raw-manifest.json` binds every regular archive member by size and SHA256. Original failures and green candidate receipts remain separately named and unmodified. + +The worker has an eight-second natural lifetime, and both actual runs finish with no recorded owned work remaining. The original cleanup verifies current owned command/group identity before signaling and uses a finite one-second observation window. No shared process, service or remote state is touched. + +Acceptance is limited to POSIX SIGINT during communication after successful launch, on the exact qualified sources. Escaped sessions, SIGTERM/SIGKILL behavior, pre-launch interruption, Windows signal behavior and hostile-code containment remain outside this scenario. Later landed source compositions require their own read-only dependency assessment; this packet makes no claim about unreceived later changes. + +No source repair is requested. The frozen candidate passes this independent later-phase receiving boundary. diff --git a/docs/receipts/run-cancellation-18a24bf0c281/independent-generated-phase/baseline-report.json b/docs/receipts/run-cancellation-18a24bf0c281/independent-generated-phase/baseline-report.json new file mode 100644 index 0000000..48e1585 --- /dev/null +++ b/docs/receipts/run-cancellation-18a24bf0c281/independent-generated-phase/baseline-report.json @@ -0,0 +1,607 @@ +{ + "argv": [ + "/Users/me/capturesuite-independent-checkpoint-18a24bf0c281/venv/bin/python", + "-m", + "testpilot", + "run", + "--repo", + "/Users/me/testpilot-independent-interrupt-18a24bf0c281/fixture/project", + "--diff", + "/Users/me/testpilot-independent-interrupt-18a24bf0c281/fixture/change.diff", + "--backend", + "scripted", + "--script", + "/Users/me/testpilot-independent-interrupt-18a24bf0c281/fixture/script", + "--rounds", + "0", + "--timeout", + "30", + "--python", + "/Users/me/capturesuite-independent-checkpoint-18a24bf0c281/venv/bin/python", + "--out", + "/Users/me/testpilot-independent-interrupt-18a24bf0c281/runs/baseline/saved-output" + ], + "checks": [ + { + "actual": true, + "expected": true, + "name": "Actual generated verification is reached after existing tests and scripted model replies", + "passed": true + }, + { + "actual": [ + "121d3bf5dd29e14e9abff37e5e14526ecad74c0507e8daccb75317e217f1e907", + 13, + "generated-verification", + true + ], + "expected": [ + "121d3bf5dd29e14e9abff37e5e14526ecad74c0507e8daccb75317e217f1e907", + 13, + "generated-verification", + true + ], + "name": "The accepted generated file and its actual input assertion match the frozen reply", + "passed": true + }, + { + "actual": true, + "expected": true, + "name": "Pytest owns a separate group and the recorded worker inherits that exact group", + "passed": true + }, + { + "actual": [ + 5917, + 5918 + ], + "expected": [ + 5917, + 5918 + ], + "name": "Both owned processes are doing work before the cancellation signal", + "passed": true + }, + { + "actual": false, + "expected": false, + "name": "No post-parent-exit marker exists before the parent exits", + "passed": true + }, + { + "actual": true, + "expected": true, + "name": "The CLI propagates cancellation and exits within the finite three-second bound", + "passed": true + }, + { + "actual": [ + 5917, + 5918 + ], + "expected": [], + "name": "No owned pytest/worker process is still running when the CLI exits", + "passed": false + }, + { + "actual": false, + "expected": true, + "name": "The owned worker cannot continue after the post-parent-exit handshake", + "passed": false + }, + { + "actual": [ + true, + false + ], + "expected": [ + true, + false + ], + "name": "Cancellation remains visible as KeyboardInterrupt and prints no publication success", + "passed": true + }, + { + "actual": [], + "expected": [], + "name": "All recorded owned work is stopped at the end of finite receiver cleanup", + "passed": true + }, + { + "actual": { + "report.html": { + "bytes": 83, + "inode": 134749505, + "mode": 288, + "mtime_ns": 1735689600000000000, + "sha256": "15de2ee20b37d881a45c2fd164f244a73b770115afc5d57d5e96faeb083a4635" + }, + "report.json": { + "bytes": 63, + "inode": 134749502, + "mode": 416, + "mtime_ns": 1735689601000000000, + "sha256": "92720968fab69a2e3438a971830f7b2efa9998f382b8cc3e26576782bd3dc8d8" + }, + "report.md": { + "bytes": 77, + "inode": 134749503, + "mode": 288, + "mtime_ns": 1735689602000000000, + "sha256": "d9a3c8664c31b4e4329c4bd8ce5d173ff6d74ab10da37ccfccbfd5500eff3750" + }, + "testpilot.patch": { + "bytes": 49, + "inode": 134749504, + "mode": 416, + "mtime_ns": 1735689603000000000, + "sha256": "abc9f0d11f10264811f6f3b59fcf0915ae8b9d331ebf22bf35347c9ebfd5d4d1" + } + }, + "expected": { + "report.html": { + "bytes": 83, + "inode": 134749505, + "mode": 288, + "mtime_ns": 1735689600000000000, + "sha256": "15de2ee20b37d881a45c2fd164f244a73b770115afc5d57d5e96faeb083a4635" + }, + "report.json": { + "bytes": 63, + "inode": 134749502, + "mode": 416, + "mtime_ns": 1735689601000000000, + "sha256": "92720968fab69a2e3438a971830f7b2efa9998f382b8cc3e26576782bd3dc8d8" + }, + "report.md": { + "bytes": 77, + "inode": 134749503, + "mode": 288, + "mtime_ns": 1735689602000000000, + "sha256": "d9a3c8664c31b4e4329c4bd8ce5d173ff6d74ab10da37ccfccbfd5500eff3750" + }, + "testpilot.patch": { + "bytes": 49, + "inode": 134749504, + "mode": 416, + "mtime_ns": 1735689603000000000, + "sha256": "abc9f0d11f10264811f6f3b59fcf0915ae8b9d331ebf22bf35347c9ebfd5d4d1" + } + }, + "name": "All four preexisting output files preserve bytes/inode/mode/write time", + "passed": true + }, + { + "actual": [ + "report.html", + "report.json", + "report.md", + "testpilot.patch" + ], + "expected": [ + "report.html", + "report.json", + "report.md", + "testpilot.patch" + ], + "name": "No partial publication path is added to the existing output directory", + "passed": true + }, + { + "actual": { + "change.diff": "fdf29283205d641bea9625d96c87d85601df9edf64aed5c0588756ff4018e9c3", + "expected.json": "12bb82dba8c53b29a14a4469995a5a78f428390b42489062ab94b237e609d725", + "previous-output/report.html": "15de2ee20b37d881a45c2fd164f244a73b770115afc5d57d5e96faeb083a4635", + "previous-output/report.json": "92720968fab69a2e3438a971830f7b2efa9998f382b8cc3e26576782bd3dc8d8", + "previous-output/report.md": "d9a3c8664c31b4e4329c4bd8ce5d173ff6d74ab10da37ccfccbfd5500eff3750", + "previous-output/testpilot.patch": "abc9f0d11f10264811f6f3b59fcf0915ae8b9d331ebf22bf35347c9ebfd5d4d1", + "project/owned_worker.py": "72c3f714724d257085d6aa2686d592c0f7038855071484d278cdaa4199561ab7", + "project/pair_math.py": "b4f11cfcf74af1a726f275faf93119ccd08c844a934e3432d9085a8164075eed", + "project/tests/test_existing_pair.py": "107b43e18c3f80a439a851fb551144748023236dfd7b1886a0626b99d35aa531", + "script/00-plan.txt": "c5b05cd689fc7bce881c9960775ac99ea54c16b2d666f6d4ba77ff496b6c9dfc", + "script/01-generated.txt": "4d42991580252e7d5bd686cdf5ea9696287cc6d39138a3e713ec19a898e0f8a6" + }, + "expected": { + "change.diff": "fdf29283205d641bea9625d96c87d85601df9edf64aed5c0588756ff4018e9c3", + "expected.json": "12bb82dba8c53b29a14a4469995a5a78f428390b42489062ab94b237e609d725", + "previous-output/report.html": "15de2ee20b37d881a45c2fd164f244a73b770115afc5d57d5e96faeb083a4635", + "previous-output/report.json": "92720968fab69a2e3438a971830f7b2efa9998f382b8cc3e26576782bd3dc8d8", + "previous-output/report.md": "d9a3c8664c31b4e4329c4bd8ce5d173ff6d74ab10da37ccfccbfd5500eff3750", + "previous-output/testpilot.patch": "abc9f0d11f10264811f6f3b59fcf0915ae8b9d331ebf22bf35347c9ebfd5d4d1", + "project/owned_worker.py": "72c3f714724d257085d6aa2686d592c0f7038855071484d278cdaa4199561ab7", + "project/pair_math.py": "b4f11cfcf74af1a726f275faf93119ccd08c844a934e3432d9085a8164075eed", + "project/tests/test_existing_pair.py": "107b43e18c3f80a439a851fb551144748023236dfd7b1886a0626b99d35aa531", + "script/00-plan.txt": "c5b05cd689fc7bce881c9960775ac99ea54c16b2d666f6d4ba77ff496b6c9dfc", + "script/01-generated.txt": "4d42991580252e7d5bd686cdf5ea9696287cc6d39138a3e713ec19a898e0f8a6" + }, + "name": "Original project and scripted replies remain byte-identical", + "passed": true + }, + { + "actual": true, + "expected": true, + "name": "All captured native production/context source bytes remain exact", + "passed": true + } + ], + "cleanup": { + "actions": [ + { + "group": 5917, + "live_owned_witness_pids": [ + 5917, + 5918 + ], + "signal": "SIGKILL" + } + ], + "after": [], + "before": [ + { + "command": "/opt/homebrew/Cellar/python@3.12/3.12.8/Frameworks/Python.framework/Versions/3.12/Resources/Python.app/Contents/MacOS/Python /Users/me/testpilot-independent-interrupt-18a24bf0c281/runs/baseline/tmp/testpilot-ot9na02b/generated_pytest.py /Users/me/testpilot-independent-interrupt-18a24bf0c281/runs/baseline/tmp/testpilot-ot9na02b/generated_files.json -q -p no:cacheprovider --rootdir /Users/me/testpilot-independent-interrupt-18a24bf0c281/runs/baseline/tmp/testpilot-ot9na02b/repo -o addopts= -o junit_family=xunit2 --junitxml=/Users/me/testpilot-independent-interrupt-18a24bf0c281/runs/baseline/tmp/testpilot-ot9na02b/junit.xml", + "pgid": 5917, + "pid": 5917, + "ppid": 1, + "running": true, + "stat": "Ss" + }, + { + "command": "/opt/homebrew/Cellar/python@3.12/3.12.8/Frameworks/Python.framework/Versions/3.12/Resources/Python.app/Contents/MacOS/Python /Users/me/testpilot-independent-interrupt-18a24bf0c281/runs/baseline/tmp/testpilot-ot9na02b/repo/owned_worker.py /Users/me/testpilot-independent-interrupt-18a24bf0c281/runs/baseline/control", + "pgid": 5917, + "pid": 5918, + "ppid": 5917, + "running": true, + "stat": "S" + } + ], + "owned_pids": [ + 5917, + 5918 + ], + "pgid": 5917 + }, + "cli_pgid": 5896, + "cli_pid": 5896, + "cwd": "/Users/me/testpilot-independent-interrupt-18a24bf0c281/source-baseline", + "environment_overrides": { + "PYTEST_DISABLE_PLUGIN_AUTOLOAD": "1", + "PYTHONDONTWRITEBYTECODE": "1", + "PYTHONPATH": "/Users/me/testpilot-independent-interrupt-18a24bf0c281/source-baseline", + "TMPDIR": "/Users/me/testpilot-independent-interrupt-18a24bf0c281/runs/baseline/tmp", + "TP_REVIEW_CONTROL": "/Users/me/testpilot-independent-interrupt-18a24bf0c281/runs/baseline/control" + }, + "finished_utc": "2026-10-08T16:04:55.912479+00:00", + "fixture_before": { + "change.diff": "fdf29283205d641bea9625d96c87d85601df9edf64aed5c0588756ff4018e9c3", + "expected.json": "12bb82dba8c53b29a14a4469995a5a78f428390b42489062ab94b237e609d725", + "previous-output/report.html": "15de2ee20b37d881a45c2fd164f244a73b770115afc5d57d5e96faeb083a4635", + "previous-output/report.json": "92720968fab69a2e3438a971830f7b2efa9998f382b8cc3e26576782bd3dc8d8", + "previous-output/report.md": "d9a3c8664c31b4e4329c4bd8ce5d173ff6d74ab10da37ccfccbfd5500eff3750", + "previous-output/testpilot.patch": "abc9f0d11f10264811f6f3b59fcf0915ae8b9d331ebf22bf35347c9ebfd5d4d1", + "project/owned_worker.py": "72c3f714724d257085d6aa2686d592c0f7038855071484d278cdaa4199561ab7", + "project/pair_math.py": "b4f11cfcf74af1a726f275faf93119ccd08c844a934e3432d9085a8164075eed", + "project/tests/test_existing_pair.py": "107b43e18c3f80a439a851fb551144748023236dfd7b1886a0626b99d35aa531", + "script/00-plan.txt": "c5b05cd689fc7bce881c9960775ac99ea54c16b2d666f6d4ba77ff496b6c9dfc", + "script/01-generated.txt": "4d42991580252e7d5bd686cdf5ea9696287cc6d39138a3e713ec19a898e0f8a6" + }, + "generated_ready": { + "asserted_result": 13, + "child_pid": 5918, + "generated_path": "/Users/me/testpilot-independent-interrupt-18a24bf0c281/runs/baseline/tmp/testpilot-ot9na02b/repo/tests/test_generated_lifecycle.py", + "generated_sha256": "121d3bf5dd29e14e9abff37e5e14526ecad74c0507e8daccb75317e217f1e907", + "pgid": 5917, + "phase": "generated-verification", + "pid": 5917, + "ppid": 5896 + }, + "heartbeat_before_signal": { + "monotonic": 1015062.251991583, + "pgid": 5917, + "pid": 5918, + "ppid": 5917 + }, + "label": "baseline", + "outputs_after": { + "report.html": { + "bytes": 83, + "inode": 134749505, + "mode": 288, + "mtime_ns": 1735689600000000000, + "sha256": "15de2ee20b37d881a45c2fd164f244a73b770115afc5d57d5e96faeb083a4635" + }, + "report.json": { + "bytes": 63, + "inode": 134749502, + "mode": 416, + "mtime_ns": 1735689601000000000, + "sha256": "92720968fab69a2e3438a971830f7b2efa9998f382b8cc3e26576782bd3dc8d8" + }, + "report.md": { + "bytes": 77, + "inode": 134749503, + "mode": 288, + "mtime_ns": 1735689602000000000, + "sha256": "d9a3c8664c31b4e4329c4bd8ce5d173ff6d74ab10da37ccfccbfd5500eff3750" + }, + "testpilot.patch": { + "bytes": 49, + "inode": 134749504, + "mode": 416, + "mtime_ns": 1735689603000000000, + "sha256": "abc9f0d11f10264811f6f3b59fcf0915ae8b9d331ebf22bf35347c9ebfd5d4d1" + } + }, + "outputs_before": { + "report.html": { + "bytes": 83, + "inode": 134749505, + "mode": 288, + "mtime_ns": 1735689600000000000, + "sha256": "15de2ee20b37d881a45c2fd164f244a73b770115afc5d57d5e96faeb083a4635" + }, + "report.json": { + "bytes": 63, + "inode": 134749502, + "mode": 416, + "mtime_ns": 1735689601000000000, + "sha256": "92720968fab69a2e3438a971830f7b2efa9998f382b8cc3e26576782bd3dc8d8" + }, + "report.md": { + "bytes": 77, + "inode": 134749503, + "mode": 288, + "mtime_ns": 1735689602000000000, + "sha256": "d9a3c8664c31b4e4329c4bd8ce5d173ff6d74ab10da37ccfccbfd5500eff3750" + }, + "testpilot.patch": { + "bytes": 49, + "inode": 134749504, + "mode": 416, + "mtime_ns": 1735689603000000000, + "sha256": "abc9f0d11f10264811f6f3b59fcf0915ae8b9d331ebf22bf35347c9ebfd5d4d1" + } + }, + "owned_at_parent_exit": [ + { + "command": "/opt/homebrew/Cellar/python@3.12/3.12.8/Frameworks/Python.framework/Versions/3.12/Resources/Python.app/Contents/MacOS/Python /Users/me/testpilot-independent-interrupt-18a24bf0c281/runs/baseline/tmp/testpilot-ot9na02b/generated_pytest.py /Users/me/testpilot-independent-interrupt-18a24bf0c281/runs/baseline/tmp/testpilot-ot9na02b/generated_files.json -q -p no:cacheprovider --rootdir /Users/me/testpilot-independent-interrupt-18a24bf0c281/runs/baseline/tmp/testpilot-ot9na02b/repo -o addopts= -o junit_family=xunit2 --junitxml=/Users/me/testpilot-independent-interrupt-18a24bf0c281/runs/baseline/tmp/testpilot-ot9na02b/junit.xml", + "pgid": 5917, + "pid": 5917, + "ppid": 1, + "running": true, + "stat": "Ss" + }, + { + "command": "/opt/homebrew/Cellar/python@3.12/3.12.8/Frameworks/Python.framework/Versions/3.12/Resources/Python.app/Contents/MacOS/Python /Users/me/testpilot-independent-interrupt-18a24bf0c281/runs/baseline/tmp/testpilot-ot9na02b/repo/owned_worker.py /Users/me/testpilot-independent-interrupt-18a24bf0c281/runs/baseline/control", + "pgid": 5917, + "pid": 5918, + "ppid": 5917, + "running": true, + "stat": "S" + } + ], + "owned_before_signal": [ + { + "command": "/opt/homebrew/Cellar/python@3.12/3.12.8/Frameworks/Python.framework/Versions/3.12/Resources/Python.app/Contents/MacOS/Python /Users/me/testpilot-independent-interrupt-18a24bf0c281/runs/baseline/tmp/testpilot-ot9na02b/generated_pytest.py /Users/me/testpilot-independent-interrupt-18a24bf0c281/runs/baseline/tmp/testpilot-ot9na02b/generated_files.json -q -p no:cacheprovider --rootdir /Users/me/testpilot-independent-interrupt-18a24bf0c281/runs/baseline/tmp/testpilot-ot9na02b/repo -o addopts= -o junit_family=xunit2 --junitxml=/Users/me/testpilot-independent-interrupt-18a24bf0c281/runs/baseline/tmp/testpilot-ot9na02b/junit.xml", + "pgid": 5917, + "pid": 5917, + "ppid": 5896, + "running": true, + "stat": "Ss" + }, + { + "command": "/opt/homebrew/Cellar/python@3.12/3.12.8/Frameworks/Python.framework/Versions/3.12/Resources/Python.app/Contents/MacOS/Python /Users/me/testpilot-independent-interrupt-18a24bf0c281/runs/baseline/tmp/testpilot-ot9na02b/repo/owned_worker.py /Users/me/testpilot-independent-interrupt-18a24bf0c281/runs/baseline/control", + "pgid": 5917, + "pid": 5918, + "ppid": 5917, + "running": true, + "stat": "S" + } + ], + "parent_exit": { + "duration_s": 0.2846649169223383, + "observed_monotonic": 1015062.606122041, + "returncode": -2 + }, + "post_parent_exit_marker": { + "monotonic": 1015062.682122291, + "observed_ppid": 5917, + "parent_exit": { + "cli_pid": 5896, + "monotonic": 1015062.606122041, + "returncode": -2 + }, + "pgid": 5917, + "pid": 5918, + "ppid": 5917 + }, + "receiver_sha256": "301391fcb3b08eb41d8958d4305a50e95cdee03127a2584357a69d3e35d893f7", + "signal": { + "monotonic": 1015062.321453541, + "number": 2, + "target_pid": 5896 + }, + "source_after": [ + { + "git_blob": "86a3236e38155506b5fe6077322d508f7f676649", + "matches_frozen_source": true, + "path": ".github/workflows/ci.yml", + "sha256": "236fd600bea41471b373b91d8e389aa12c58cba79c83efa071f6ab805f1ebf59" + }, + { + "git_blob": "24a6c0fab34c05d17ef216a42e97a0fae2389fc2", + "matches_frozen_source": true, + "path": "README.md", + "sha256": "9e1c93aa93ca1942d002c3bd28779d780b568b606cfa7e001058c13997e34854" + }, + { + "git_blob": "952255ac87e2c7da57457fdbf3554914f17f6d05", + "matches_frozen_source": true, + "path": "pyproject.toml", + "sha256": "5503eab7b6c145d4de241e5be805a4fb8f30828053cbe39dc05a43c2896642eb" + }, + { + "git_blob": "296210dd0d58703de4a4e4c9ad72a0944c9400ca", + "matches_frozen_source": true, + "path": "testpilot/__init__.py", + "sha256": "65c63b80d7da34a83a6049a79c24b8335878cd49cc79951fdefc5f1532ae841f" + }, + { + "git_blob": "2d98e2a85320ac2827ea48fa9d58d30a60354b6a", + "matches_frozen_source": true, + "path": "testpilot/__main__.py", + "sha256": "90577ea3a939642f5cb29818f6360df96d9fa0d35d05af11bf97054425c32c84" + }, + { + "git_blob": "90b82725bc0eb1ff3d7cb517c4c9dedcfd14bdcc", + "matches_frozen_source": true, + "path": "testpilot/_pytest_generated.py", + "sha256": "d65352d7bade965d7b9dc73efe5d4d01844fa8c7474a1bdcdb3b708f6decf768" + }, + { + "git_blob": "29dd325ab288ac1d43fd70f33b207281f5375d4b", + "matches_frozen_source": true, + "path": "testpilot/diff.py", + "sha256": "2cf38707ea175bb1f04d55335de344ae943458658055332b4aa68f27763214c0" + }, + { + "git_blob": "bb30d903542d836f5afe8e116ba894f93d9d3a0c", + "matches_frozen_source": true, + "path": "testpilot/html_report.py", + "sha256": "183703d05f32552f7f7c39aa958c39bae61d824e3fa9cd6a6dd686f0d4c228a4" + }, + { + "git_blob": "ed0f5f7f057c217b931a1756bd679ae087247e0a", + "matches_frozen_source": true, + "path": "testpilot/loop.py", + "sha256": "dde4ee52e0a1fabded9902137ede6dd68aa17f6542c316e5d134b8510495170b" + }, + { + "git_blob": "6d4abca38cc1c256df00bcac7923e2dc0bd42b16", + "matches_frozen_source": true, + "path": "testpilot/model.py", + "sha256": "f6ae697f1f5d686ffdcb96f5451d1a9600d7d41c7bcf324d7e8c276a107e8673" + }, + { + "git_blob": "4ab26cbb83beff563b9c3683c593b3efd2495b6b", + "matches_frozen_source": true, + "path": "testpilot/recheck.py", + "sha256": "1ecbe0ff7da7bb4a8117d730a76624c8929e0e4b10cb9d502ab7358cb38d8f2e" + }, + { + "git_blob": "8ca4a4102c7890e89eae99548e28ba8325974f1e", + "matches_frozen_source": true, + "path": "testpilot/sandbox.py", + "sha256": "8d5aadafff5188473ec45eb1cd8f01fb562836ff05bf12a27939cde83b33472a" + }, + { + "git_blob": "d8ebce5a81205aad005e45a280aec898e3e89820", + "matches_frozen_source": true, + "path": "tests/test_sandbox_deadline.py", + "sha256": "6a9abfdc79bcb2cc3102d94b6b61d20ea09b0f89d5c7c5842387ce77c136d7e1" + }, + { + "git_blob": "de2fde7cd5dd683c338810d4707987ea5a2e9055", + "matches_frozen_source": true, + "path": "tests/test_sandbox.py", + "sha256": "ee47d6a3f40c2f612197614088ea40cbdd50a7f04047780c95a71e37c1555992" + } + ], + "source_before": [ + { + "git_blob": "86a3236e38155506b5fe6077322d508f7f676649", + "matches_frozen_source": true, + "path": ".github/workflows/ci.yml", + "sha256": "236fd600bea41471b373b91d8e389aa12c58cba79c83efa071f6ab805f1ebf59" + }, + { + "git_blob": "24a6c0fab34c05d17ef216a42e97a0fae2389fc2", + "matches_frozen_source": true, + "path": "README.md", + "sha256": "9e1c93aa93ca1942d002c3bd28779d780b568b606cfa7e001058c13997e34854" + }, + { + "git_blob": "952255ac87e2c7da57457fdbf3554914f17f6d05", + "matches_frozen_source": true, + "path": "pyproject.toml", + "sha256": "5503eab7b6c145d4de241e5be805a4fb8f30828053cbe39dc05a43c2896642eb" + }, + { + "git_blob": "296210dd0d58703de4a4e4c9ad72a0944c9400ca", + "matches_frozen_source": true, + "path": "testpilot/__init__.py", + "sha256": "65c63b80d7da34a83a6049a79c24b8335878cd49cc79951fdefc5f1532ae841f" + }, + { + "git_blob": "2d98e2a85320ac2827ea48fa9d58d30a60354b6a", + "matches_frozen_source": true, + "path": "testpilot/__main__.py", + "sha256": "90577ea3a939642f5cb29818f6360df96d9fa0d35d05af11bf97054425c32c84" + }, + { + "git_blob": "90b82725bc0eb1ff3d7cb517c4c9dedcfd14bdcc", + "matches_frozen_source": true, + "path": "testpilot/_pytest_generated.py", + "sha256": "d65352d7bade965d7b9dc73efe5d4d01844fa8c7474a1bdcdb3b708f6decf768" + }, + { + "git_blob": "29dd325ab288ac1d43fd70f33b207281f5375d4b", + "matches_frozen_source": true, + "path": "testpilot/diff.py", + "sha256": "2cf38707ea175bb1f04d55335de344ae943458658055332b4aa68f27763214c0" + }, + { + "git_blob": "bb30d903542d836f5afe8e116ba894f93d9d3a0c", + "matches_frozen_source": true, + "path": "testpilot/html_report.py", + "sha256": "183703d05f32552f7f7c39aa958c39bae61d824e3fa9cd6a6dd686f0d4c228a4" + }, + { + "git_blob": "ed0f5f7f057c217b931a1756bd679ae087247e0a", + "matches_frozen_source": true, + "path": "testpilot/loop.py", + "sha256": "dde4ee52e0a1fabded9902137ede6dd68aa17f6542c316e5d134b8510495170b" + }, + { + "git_blob": "6d4abca38cc1c256df00bcac7923e2dc0bd42b16", + "matches_frozen_source": true, + "path": "testpilot/model.py", + "sha256": "f6ae697f1f5d686ffdcb96f5451d1a9600d7d41c7bcf324d7e8c276a107e8673" + }, + { + "git_blob": "4ab26cbb83beff563b9c3683c593b3efd2495b6b", + "matches_frozen_source": true, + "path": "testpilot/recheck.py", + "sha256": "1ecbe0ff7da7bb4a8117d730a76624c8929e0e4b10cb9d502ab7358cb38d8f2e" + }, + { + "git_blob": "8ca4a4102c7890e89eae99548e28ba8325974f1e", + "matches_frozen_source": true, + "path": "testpilot/sandbox.py", + "sha256": "8d5aadafff5188473ec45eb1cd8f01fb562836ff05bf12a27939cde83b33472a" + }, + { + "git_blob": "d8ebce5a81205aad005e45a280aec898e3e89820", + "matches_frozen_source": true, + "path": "tests/test_sandbox_deadline.py", + "sha256": "6a9abfdc79bcb2cc3102d94b6b61d20ea09b0f89d5c7c5842387ce77c136d7e1" + }, + { + "git_blob": "de2fde7cd5dd683c338810d4707987ea5a2e9055", + "matches_frozen_source": true, + "path": "tests/test_sandbox.py", + "sha256": "ee47d6a3f40c2f612197614088ea40cbdd50a7f04047780c95a71e37c1555992" + } + ], + "started_utc": "2026-10-08T16:04:54.785275+00:00", + "totals": { + "actual_cli_invocations": 1, + "checks": 14, + "failed": 2, + "passed": 12 + }, + "worker_ready": { + "pgid": 5917, + "pid": 5918, + "ppid": 5917 + } +} diff --git a/docs/receipts/run-cancellation-18a24bf0c281/independent-generated-phase/candidate-intake.json b/docs/receipts/run-cancellation-18a24bf0c281/independent-generated-phase/candidate-intake.json new file mode 100644 index 0000000..8798030 --- /dev/null +++ b/docs/receipts/run-cancellation-18a24bf0c281/independent-generated-phase/candidate-intake.json @@ -0,0 +1,123 @@ +{ + "baseline_receiving_commit": "9317bdb3a0fda248ffcbabbe94c401a4558a1b41", + "candidate_executed": false, + "canonical_parent": "7f44c4f134f4d56d37dd14c7c2d2aaa3c8c8749e", + "canonical_tree": "ea3f7b4170f1515abb7188d31dc269623b9e0738", + "captured_files": [ + { + "git_blob": "86a3236e38155506b5fe6077322d508f7f676649", + "mode": "100644", + "path": ".github/workflows/ci.yml", + "sha256": "236fd600bea41471b373b91d8e389aa12c58cba79c83efa071f6ab805f1ebf59", + "size": 586 + }, + { + "git_blob": "24a6c0fab34c05d17ef216a42e97a0fae2389fc2", + "mode": "100644", + "path": "README.md", + "sha256": "9e1c93aa93ca1942d002c3bd28779d780b568b606cfa7e001058c13997e34854", + "size": 12669 + }, + { + "git_blob": "d8956abb39915e235531c3e217050ccc2089173d", + "mode": "100644", + "path": "docs/run-cancellation.md", + "sha256": "ab37125e75d03005813477f6ec1703117ca844209a559f289a8be5ee720bf126", + "size": 2985 + }, + { + "git_blob": "952255ac87e2c7da57457fdbf3554914f17f6d05", + "mode": "100644", + "path": "pyproject.toml", + "sha256": "5503eab7b6c145d4de241e5be805a4fb8f30828053cbe39dc05a43c2896642eb", + "size": 676 + }, + { + "git_blob": "296210dd0d58703de4a4e4c9ad72a0944c9400ca", + "mode": "100644", + "path": "testpilot/__init__.py", + "sha256": "65c63b80d7da34a83a6049a79c24b8335878cd49cc79951fdefc5f1532ae841f", + "size": 390 + }, + { + "git_blob": "2d98e2a85320ac2827ea48fa9d58d30a60354b6a", + "mode": "100644", + "path": "testpilot/__main__.py", + "sha256": "90577ea3a939642f5cb29818f6360df96d9fa0d35d05af11bf97054425c32c84", + "size": 6065 + }, + { + "git_blob": "90b82725bc0eb1ff3d7cb517c4c9dedcfd14bdcc", + "mode": "100644", + "path": "testpilot/_pytest_generated.py", + "sha256": "d65352d7bade965d7b9dc73efe5d4d01844fa8c7474a1bdcdb3b708f6decf768", + "size": 2943 + }, + { + "git_blob": "29dd325ab288ac1d43fd70f33b207281f5375d4b", + "mode": "100644", + "path": "testpilot/diff.py", + "sha256": "2cf38707ea175bb1f04d55335de344ae943458658055332b4aa68f27763214c0", + "size": 9387 + }, + { + "git_blob": "bb30d903542d836f5afe8e116ba894f93d9d3a0c", + "mode": "100644", + "path": "testpilot/html_report.py", + "sha256": "183703d05f32552f7f7c39aa958c39bae61d824e3fa9cd6a6dd686f0d4c228a4", + "size": 20656 + }, + { + "git_blob": "ed0f5f7f057c217b931a1756bd679ae087247e0a", + "mode": "100644", + "path": "testpilot/loop.py", + "sha256": "dde4ee52e0a1fabded9902137ede6dd68aa17f6542c316e5d134b8510495170b", + "size": 25480 + }, + { + "git_blob": "6d4abca38cc1c256df00bcac7923e2dc0bd42b16", + "mode": "100644", + "path": "testpilot/model.py", + "sha256": "f6ae697f1f5d686ffdcb96f5451d1a9600d7d41c7bcf324d7e8c276a107e8673", + "size": 10175 + }, + { + "git_blob": "4ab26cbb83beff563b9c3683c593b3efd2495b6b", + "mode": "100644", + "path": "testpilot/recheck.py", + "sha256": "1ecbe0ff7da7bb4a8117d730a76624c8929e0e4b10cb9d502ab7358cb38d8f2e", + "size": 11599 + }, + { + "git_blob": "84330f96ebd71b37dc40575fa2ac59ba53cf2a72", + "mode": "100644", + "path": "testpilot/sandbox.py", + "sha256": "0adf5eb81f8fd15ca09170c5328e6ff4165e1a0f903221b9730de3b480be0b1b", + "size": 13277 + }, + { + "git_blob": "de2fde7cd5dd683c338810d4707987ea5a2e9055", + "mode": "100644", + "path": "tests/test_sandbox.py", + "sha256": "ee47d6a3f40c2f612197614088ea40cbdd50a7f04047780c95a71e37c1555992", + "size": 2545 + }, + { + "git_blob": "d8ebce5a81205aad005e45a280aec898e3e89820", + "mode": "100644", + "path": "tests/test_sandbox_deadline.py", + "sha256": "6a9abfdc79bcb2cc3102d94b6b61d20ea09b0f89d5c7c5842387ce77c136d7e1", + "size": 4248 + }, + { + "git_blob": "184e969e57fc2a483b6a4e7b1709e16f66ce37e6", + "mode": "100644", + "path": "tests/test_sandbox_interrupt.py", + "sha256": "466bbdd470001a5e23e55a1205352dfccc8c714470fe903ff241b28416449325", + "size": 6944 + } + ], + "native_candidate_commit": "649dc7d1fd02493af298876eea0697849404bba9", + "observed_utc": "2026-10-08T16:09:19.206764+00:00", + "repository": "Jacob-Met/testpilot" +} diff --git a/docs/receipts/run-cancellation-18a24bf0c281/independent-generated-phase/candidate-report.json b/docs/receipts/run-cancellation-18a24bf0c281/independent-generated-phase/candidate-report.json new file mode 100644 index 0000000..4170dc6 --- /dev/null +++ b/docs/receipts/run-cancellation-18a24bf0c281/independent-generated-phase/candidate-report.json @@ -0,0 +1,574 @@ +{ + "argv": [ + "/Users/me/capturesuite-independent-checkpoint-18a24bf0c281/venv/bin/python", + "-m", + "testpilot", + "run", + "--repo", + "/Users/me/testpilot-independent-interrupt-18a24bf0c281/fixture/project", + "--diff", + "/Users/me/testpilot-independent-interrupt-18a24bf0c281/fixture/change.diff", + "--backend", + "scripted", + "--script", + "/Users/me/testpilot-independent-interrupt-18a24bf0c281/fixture/script", + "--rounds", + "0", + "--timeout", + "30", + "--python", + "/Users/me/capturesuite-independent-checkpoint-18a24bf0c281/venv/bin/python", + "--out", + "/Users/me/testpilot-independent-interrupt-18a24bf0c281/runs/candidate/saved-output" + ], + "checks": [ + { + "actual": true, + "expected": true, + "name": "Actual generated verification is reached after existing tests and scripted model replies", + "passed": true + }, + { + "actual": [ + "121d3bf5dd29e14e9abff37e5e14526ecad74c0507e8daccb75317e217f1e907", + 13, + "generated-verification", + true + ], + "expected": [ + "121d3bf5dd29e14e9abff37e5e14526ecad74c0507e8daccb75317e217f1e907", + 13, + "generated-verification", + true + ], + "name": "The accepted generated file and its actual input assertion match the frozen reply", + "passed": true + }, + { + "actual": true, + "expected": true, + "name": "Pytest owns a separate group and the recorded worker inherits that exact group", + "passed": true + }, + { + "actual": [ + 55653, + 55654 + ], + "expected": [ + 55653, + 55654 + ], + "name": "Both owned processes are doing work before the cancellation signal", + "passed": true + }, + { + "actual": false, + "expected": false, + "name": "No post-parent-exit marker exists before the parent exits", + "passed": true + }, + { + "actual": true, + "expected": true, + "name": "The CLI propagates cancellation and exits within the finite three-second bound", + "passed": true + }, + { + "actual": [], + "expected": [], + "name": "No owned pytest/worker process is still running when the CLI exits", + "passed": true + }, + { + "actual": true, + "expected": true, + "name": "The owned worker cannot continue after the post-parent-exit handshake", + "passed": true + }, + { + "actual": [ + true, + false + ], + "expected": [ + true, + false + ], + "name": "Cancellation remains visible as KeyboardInterrupt and prints no publication success", + "passed": true + }, + { + "actual": [], + "expected": [], + "name": "All recorded owned work is stopped at the end of finite receiver cleanup", + "passed": true + }, + { + "actual": { + "report.html": { + "bytes": 83, + "inode": 134806911, + "mode": 288, + "mtime_ns": 1735689600000000000, + "sha256": "15de2ee20b37d881a45c2fd164f244a73b770115afc5d57d5e96faeb083a4635" + }, + "report.json": { + "bytes": 63, + "inode": 134806908, + "mode": 416, + "mtime_ns": 1735689601000000000, + "sha256": "92720968fab69a2e3438a971830f7b2efa9998f382b8cc3e26576782bd3dc8d8" + }, + "report.md": { + "bytes": 77, + "inode": 134806909, + "mode": 288, + "mtime_ns": 1735689602000000000, + "sha256": "d9a3c8664c31b4e4329c4bd8ce5d173ff6d74ab10da37ccfccbfd5500eff3750" + }, + "testpilot.patch": { + "bytes": 49, + "inode": 134806910, + "mode": 416, + "mtime_ns": 1735689603000000000, + "sha256": "abc9f0d11f10264811f6f3b59fcf0915ae8b9d331ebf22bf35347c9ebfd5d4d1" + } + }, + "expected": { + "report.html": { + "bytes": 83, + "inode": 134806911, + "mode": 288, + "mtime_ns": 1735689600000000000, + "sha256": "15de2ee20b37d881a45c2fd164f244a73b770115afc5d57d5e96faeb083a4635" + }, + "report.json": { + "bytes": 63, + "inode": 134806908, + "mode": 416, + "mtime_ns": 1735689601000000000, + "sha256": "92720968fab69a2e3438a971830f7b2efa9998f382b8cc3e26576782bd3dc8d8" + }, + "report.md": { + "bytes": 77, + "inode": 134806909, + "mode": 288, + "mtime_ns": 1735689602000000000, + "sha256": "d9a3c8664c31b4e4329c4bd8ce5d173ff6d74ab10da37ccfccbfd5500eff3750" + }, + "testpilot.patch": { + "bytes": 49, + "inode": 134806910, + "mode": 416, + "mtime_ns": 1735689603000000000, + "sha256": "abc9f0d11f10264811f6f3b59fcf0915ae8b9d331ebf22bf35347c9ebfd5d4d1" + } + }, + "name": "All four preexisting output files preserve bytes/inode/mode/write time", + "passed": true + }, + { + "actual": [ + "report.html", + "report.json", + "report.md", + "testpilot.patch" + ], + "expected": [ + "report.html", + "report.json", + "report.md", + "testpilot.patch" + ], + "name": "No partial publication path is added to the existing output directory", + "passed": true + }, + { + "actual": { + "change.diff": "fdf29283205d641bea9625d96c87d85601df9edf64aed5c0588756ff4018e9c3", + "expected.json": "12bb82dba8c53b29a14a4469995a5a78f428390b42489062ab94b237e609d725", + "previous-output/report.html": "15de2ee20b37d881a45c2fd164f244a73b770115afc5d57d5e96faeb083a4635", + "previous-output/report.json": "92720968fab69a2e3438a971830f7b2efa9998f382b8cc3e26576782bd3dc8d8", + "previous-output/report.md": "d9a3c8664c31b4e4329c4bd8ce5d173ff6d74ab10da37ccfccbfd5500eff3750", + "previous-output/testpilot.patch": "abc9f0d11f10264811f6f3b59fcf0915ae8b9d331ebf22bf35347c9ebfd5d4d1", + "project/owned_worker.py": "72c3f714724d257085d6aa2686d592c0f7038855071484d278cdaa4199561ab7", + "project/pair_math.py": "b4f11cfcf74af1a726f275faf93119ccd08c844a934e3432d9085a8164075eed", + "project/tests/test_existing_pair.py": "107b43e18c3f80a439a851fb551144748023236dfd7b1886a0626b99d35aa531", + "script/00-plan.txt": "c5b05cd689fc7bce881c9960775ac99ea54c16b2d666f6d4ba77ff496b6c9dfc", + "script/01-generated.txt": "4d42991580252e7d5bd686cdf5ea9696287cc6d39138a3e713ec19a898e0f8a6" + }, + "expected": { + "change.diff": "fdf29283205d641bea9625d96c87d85601df9edf64aed5c0588756ff4018e9c3", + "expected.json": "12bb82dba8c53b29a14a4469995a5a78f428390b42489062ab94b237e609d725", + "previous-output/report.html": "15de2ee20b37d881a45c2fd164f244a73b770115afc5d57d5e96faeb083a4635", + "previous-output/report.json": "92720968fab69a2e3438a971830f7b2efa9998f382b8cc3e26576782bd3dc8d8", + "previous-output/report.md": "d9a3c8664c31b4e4329c4bd8ce5d173ff6d74ab10da37ccfccbfd5500eff3750", + "previous-output/testpilot.patch": "abc9f0d11f10264811f6f3b59fcf0915ae8b9d331ebf22bf35347c9ebfd5d4d1", + "project/owned_worker.py": "72c3f714724d257085d6aa2686d592c0f7038855071484d278cdaa4199561ab7", + "project/pair_math.py": "b4f11cfcf74af1a726f275faf93119ccd08c844a934e3432d9085a8164075eed", + "project/tests/test_existing_pair.py": "107b43e18c3f80a439a851fb551144748023236dfd7b1886a0626b99d35aa531", + "script/00-plan.txt": "c5b05cd689fc7bce881c9960775ac99ea54c16b2d666f6d4ba77ff496b6c9dfc", + "script/01-generated.txt": "4d42991580252e7d5bd686cdf5ea9696287cc6d39138a3e713ec19a898e0f8a6" + }, + "name": "Original project and scripted replies remain byte-identical", + "passed": true + }, + { + "actual": true, + "expected": true, + "name": "All captured native production/context source bytes remain exact", + "passed": true + } + ], + "cleanup": { + "actions": [], + "after": [], + "before": [], + "owned_pids": [ + 55653, + 55654 + ], + "pgid": 55653 + }, + "cli_pgid": 55620, + "cli_pid": 55620, + "cwd": "/Users/me/testpilot-independent-interrupt-18a24bf0c281/source-candidate", + "environment_overrides": { + "PYTEST_DISABLE_PLUGIN_AUTOLOAD": "1", + "PYTHONDONTWRITEBYTECODE": "1", + "PYTHONPATH": "/Users/me/testpilot-independent-interrupt-18a24bf0c281/source-candidate", + "TMPDIR": "/Users/me/testpilot-independent-interrupt-18a24bf0c281/runs/candidate/tmp", + "TP_REVIEW_CONTROL": "/Users/me/testpilot-independent-interrupt-18a24bf0c281/runs/candidate/control" + }, + "finished_utc": "2026-10-08T16:10:51.488530+00:00", + "fixture_before": { + "change.diff": "fdf29283205d641bea9625d96c87d85601df9edf64aed5c0588756ff4018e9c3", + "expected.json": "12bb82dba8c53b29a14a4469995a5a78f428390b42489062ab94b237e609d725", + "previous-output/report.html": "15de2ee20b37d881a45c2fd164f244a73b770115afc5d57d5e96faeb083a4635", + "previous-output/report.json": "92720968fab69a2e3438a971830f7b2efa9998f382b8cc3e26576782bd3dc8d8", + "previous-output/report.md": "d9a3c8664c31b4e4329c4bd8ce5d173ff6d74ab10da37ccfccbfd5500eff3750", + "previous-output/testpilot.patch": "abc9f0d11f10264811f6f3b59fcf0915ae8b9d331ebf22bf35347c9ebfd5d4d1", + "project/owned_worker.py": "72c3f714724d257085d6aa2686d592c0f7038855071484d278cdaa4199561ab7", + "project/pair_math.py": "b4f11cfcf74af1a726f275faf93119ccd08c844a934e3432d9085a8164075eed", + "project/tests/test_existing_pair.py": "107b43e18c3f80a439a851fb551144748023236dfd7b1886a0626b99d35aa531", + "script/00-plan.txt": "c5b05cd689fc7bce881c9960775ac99ea54c16b2d666f6d4ba77ff496b6c9dfc", + "script/01-generated.txt": "4d42991580252e7d5bd686cdf5ea9696287cc6d39138a3e713ec19a898e0f8a6" + }, + "generated_ready": { + "asserted_result": 13, + "child_pid": 55654, + "generated_path": "/Users/me/testpilot-independent-interrupt-18a24bf0c281/runs/candidate/tmp/testpilot-yyp1g728/repo/tests/test_generated_lifecycle.py", + "generated_sha256": "121d3bf5dd29e14e9abff37e5e14526ecad74c0507e8daccb75317e217f1e907", + "pgid": 55653, + "phase": "generated-verification", + "pid": 55653, + "ppid": 55620 + }, + "heartbeat_before_signal": { + "monotonic": 1015417.104319458, + "pgid": 55653, + "pid": 55654, + "ppid": 55653 + }, + "label": "candidate", + "outputs_after": { + "report.html": { + "bytes": 83, + "inode": 134806911, + "mode": 288, + "mtime_ns": 1735689600000000000, + "sha256": "15de2ee20b37d881a45c2fd164f244a73b770115afc5d57d5e96faeb083a4635" + }, + "report.json": { + "bytes": 63, + "inode": 134806908, + "mode": 416, + "mtime_ns": 1735689601000000000, + "sha256": "92720968fab69a2e3438a971830f7b2efa9998f382b8cc3e26576782bd3dc8d8" + }, + "report.md": { + "bytes": 77, + "inode": 134806909, + "mode": 288, + "mtime_ns": 1735689602000000000, + "sha256": "d9a3c8664c31b4e4329c4bd8ce5d173ff6d74ab10da37ccfccbfd5500eff3750" + }, + "testpilot.patch": { + "bytes": 49, + "inode": 134806910, + "mode": 416, + "mtime_ns": 1735689603000000000, + "sha256": "abc9f0d11f10264811f6f3b59fcf0915ae8b9d331ebf22bf35347c9ebfd5d4d1" + } + }, + "outputs_before": { + "report.html": { + "bytes": 83, + "inode": 134806911, + "mode": 288, + "mtime_ns": 1735689600000000000, + "sha256": "15de2ee20b37d881a45c2fd164f244a73b770115afc5d57d5e96faeb083a4635" + }, + "report.json": { + "bytes": 63, + "inode": 134806908, + "mode": 416, + "mtime_ns": 1735689601000000000, + "sha256": "92720968fab69a2e3438a971830f7b2efa9998f382b8cc3e26576782bd3dc8d8" + }, + "report.md": { + "bytes": 77, + "inode": 134806909, + "mode": 288, + "mtime_ns": 1735689602000000000, + "sha256": "d9a3c8664c31b4e4329c4bd8ce5d173ff6d74ab10da37ccfccbfd5500eff3750" + }, + "testpilot.patch": { + "bytes": 49, + "inode": 134806910, + "mode": 416, + "mtime_ns": 1735689603000000000, + "sha256": "abc9f0d11f10264811f6f3b59fcf0915ae8b9d331ebf22bf35347c9ebfd5d4d1" + } + }, + "owned_at_parent_exit": [], + "owned_before_signal": [ + { + "command": "/opt/homebrew/Cellar/python@3.12/3.12.8/Frameworks/Python.framework/Versions/3.12/Resources/Python.app/Contents/MacOS/Python /Users/me/testpilot-independent-interrupt-18a24bf0c281/runs/candidate/tmp/testpilot-yyp1g728/generated_pytest.py /Users/me/testpilot-independent-interrupt-18a24bf0c281/runs/candidate/tmp/testpilot-yyp1g728/generated_files.json -q -p no:cacheprovider --rootdir /Users/me/testpilot-independent-interrupt-18a24bf0c281/runs/candidate/tmp/testpilot-yyp1g728/repo -o addopts= -o junit_family=xunit2 --junitxml=/Users/me/testpilot-independent-interrupt-18a24bf0c281/runs/candidate/tmp/testpilot-yyp1g728/junit.xml", + "pgid": 55653, + "pid": 55653, + "ppid": 55620, + "running": true, + "stat": "Ss" + }, + { + "command": "/opt/homebrew/Cellar/python@3.12/3.12.8/Frameworks/Python.framework/Versions/3.12/Resources/Python.app/Contents/MacOS/Python /Users/me/testpilot-independent-interrupt-18a24bf0c281/runs/candidate/tmp/testpilot-yyp1g728/repo/owned_worker.py /Users/me/testpilot-independent-interrupt-18a24bf0c281/runs/candidate/control", + "pgid": 55653, + "pid": 55654, + "ppid": 55653, + "running": true, + "stat": "S" + } + ], + "parent_exit": { + "duration_s": 0.2814816660247743, + "observed_monotonic": 1015417.467700291, + "returncode": -2 + }, + "post_parent_exit_marker": null, + "receiver_sha256": "301391fcb3b08eb41d8958d4305a50e95cdee03127a2584357a69d3e35d893f7", + "signal": { + "monotonic": 1015417.186214625, + "number": 2, + "target_pid": 55620 + }, + "source_after": [ + { + "git_blob": "86a3236e38155506b5fe6077322d508f7f676649", + "matches_frozen_source": true, + "path": ".github/workflows/ci.yml", + "sha256": "236fd600bea41471b373b91d8e389aa12c58cba79c83efa071f6ab805f1ebf59" + }, + { + "git_blob": "24a6c0fab34c05d17ef216a42e97a0fae2389fc2", + "matches_frozen_source": true, + "path": "README.md", + "sha256": "9e1c93aa93ca1942d002c3bd28779d780b568b606cfa7e001058c13997e34854" + }, + { + "git_blob": "d8956abb39915e235531c3e217050ccc2089173d", + "matches_frozen_source": true, + "path": "docs/run-cancellation.md", + "sha256": "ab37125e75d03005813477f6ec1703117ca844209a559f289a8be5ee720bf126" + }, + { + "git_blob": "952255ac87e2c7da57457fdbf3554914f17f6d05", + "matches_frozen_source": true, + "path": "pyproject.toml", + "sha256": "5503eab7b6c145d4de241e5be805a4fb8f30828053cbe39dc05a43c2896642eb" + }, + { + "git_blob": "296210dd0d58703de4a4e4c9ad72a0944c9400ca", + "matches_frozen_source": true, + "path": "testpilot/__init__.py", + "sha256": "65c63b80d7da34a83a6049a79c24b8335878cd49cc79951fdefc5f1532ae841f" + }, + { + "git_blob": "2d98e2a85320ac2827ea48fa9d58d30a60354b6a", + "matches_frozen_source": true, + "path": "testpilot/__main__.py", + "sha256": "90577ea3a939642f5cb29818f6360df96d9fa0d35d05af11bf97054425c32c84" + }, + { + "git_blob": "90b82725bc0eb1ff3d7cb517c4c9dedcfd14bdcc", + "matches_frozen_source": true, + "path": "testpilot/_pytest_generated.py", + "sha256": "d65352d7bade965d7b9dc73efe5d4d01844fa8c7474a1bdcdb3b708f6decf768" + }, + { + "git_blob": "29dd325ab288ac1d43fd70f33b207281f5375d4b", + "matches_frozen_source": true, + "path": "testpilot/diff.py", + "sha256": "2cf38707ea175bb1f04d55335de344ae943458658055332b4aa68f27763214c0" + }, + { + "git_blob": "bb30d903542d836f5afe8e116ba894f93d9d3a0c", + "matches_frozen_source": true, + "path": "testpilot/html_report.py", + "sha256": "183703d05f32552f7f7c39aa958c39bae61d824e3fa9cd6a6dd686f0d4c228a4" + }, + { + "git_blob": "ed0f5f7f057c217b931a1756bd679ae087247e0a", + "matches_frozen_source": true, + "path": "testpilot/loop.py", + "sha256": "dde4ee52e0a1fabded9902137ede6dd68aa17f6542c316e5d134b8510495170b" + }, + { + "git_blob": "6d4abca38cc1c256df00bcac7923e2dc0bd42b16", + "matches_frozen_source": true, + "path": "testpilot/model.py", + "sha256": "f6ae697f1f5d686ffdcb96f5451d1a9600d7d41c7bcf324d7e8c276a107e8673" + }, + { + "git_blob": "4ab26cbb83beff563b9c3683c593b3efd2495b6b", + "matches_frozen_source": true, + "path": "testpilot/recheck.py", + "sha256": "1ecbe0ff7da7bb4a8117d730a76624c8929e0e4b10cb9d502ab7358cb38d8f2e" + }, + { + "git_blob": "84330f96ebd71b37dc40575fa2ac59ba53cf2a72", + "matches_frozen_source": true, + "path": "testpilot/sandbox.py", + "sha256": "0adf5eb81f8fd15ca09170c5328e6ff4165e1a0f903221b9730de3b480be0b1b" + }, + { + "git_blob": "de2fde7cd5dd683c338810d4707987ea5a2e9055", + "matches_frozen_source": true, + "path": "tests/test_sandbox.py", + "sha256": "ee47d6a3f40c2f612197614088ea40cbdd50a7f04047780c95a71e37c1555992" + }, + { + "git_blob": "d8ebce5a81205aad005e45a280aec898e3e89820", + "matches_frozen_source": true, + "path": "tests/test_sandbox_deadline.py", + "sha256": "6a9abfdc79bcb2cc3102d94b6b61d20ea09b0f89d5c7c5842387ce77c136d7e1" + }, + { + "git_blob": "184e969e57fc2a483b6a4e7b1709e16f66ce37e6", + "matches_frozen_source": true, + "path": "tests/test_sandbox_interrupt.py", + "sha256": "466bbdd470001a5e23e55a1205352dfccc8c714470fe903ff241b28416449325" + } + ], + "source_before": [ + { + "git_blob": "86a3236e38155506b5fe6077322d508f7f676649", + "matches_frozen_source": true, + "path": ".github/workflows/ci.yml", + "sha256": "236fd600bea41471b373b91d8e389aa12c58cba79c83efa071f6ab805f1ebf59" + }, + { + "git_blob": "24a6c0fab34c05d17ef216a42e97a0fae2389fc2", + "matches_frozen_source": true, + "path": "README.md", + "sha256": "9e1c93aa93ca1942d002c3bd28779d780b568b606cfa7e001058c13997e34854" + }, + { + "git_blob": "d8956abb39915e235531c3e217050ccc2089173d", + "matches_frozen_source": true, + "path": "docs/run-cancellation.md", + "sha256": "ab37125e75d03005813477f6ec1703117ca844209a559f289a8be5ee720bf126" + }, + { + "git_blob": "952255ac87e2c7da57457fdbf3554914f17f6d05", + "matches_frozen_source": true, + "path": "pyproject.toml", + "sha256": "5503eab7b6c145d4de241e5be805a4fb8f30828053cbe39dc05a43c2896642eb" + }, + { + "git_blob": "296210dd0d58703de4a4e4c9ad72a0944c9400ca", + "matches_frozen_source": true, + "path": "testpilot/__init__.py", + "sha256": "65c63b80d7da34a83a6049a79c24b8335878cd49cc79951fdefc5f1532ae841f" + }, + { + "git_blob": "2d98e2a85320ac2827ea48fa9d58d30a60354b6a", + "matches_frozen_source": true, + "path": "testpilot/__main__.py", + "sha256": "90577ea3a939642f5cb29818f6360df96d9fa0d35d05af11bf97054425c32c84" + }, + { + "git_blob": "90b82725bc0eb1ff3d7cb517c4c9dedcfd14bdcc", + "matches_frozen_source": true, + "path": "testpilot/_pytest_generated.py", + "sha256": "d65352d7bade965d7b9dc73efe5d4d01844fa8c7474a1bdcdb3b708f6decf768" + }, + { + "git_blob": "29dd325ab288ac1d43fd70f33b207281f5375d4b", + "matches_frozen_source": true, + "path": "testpilot/diff.py", + "sha256": "2cf38707ea175bb1f04d55335de344ae943458658055332b4aa68f27763214c0" + }, + { + "git_blob": "bb30d903542d836f5afe8e116ba894f93d9d3a0c", + "matches_frozen_source": true, + "path": "testpilot/html_report.py", + "sha256": "183703d05f32552f7f7c39aa958c39bae61d824e3fa9cd6a6dd686f0d4c228a4" + }, + { + "git_blob": "ed0f5f7f057c217b931a1756bd679ae087247e0a", + "matches_frozen_source": true, + "path": "testpilot/loop.py", + "sha256": "dde4ee52e0a1fabded9902137ede6dd68aa17f6542c316e5d134b8510495170b" + }, + { + "git_blob": "6d4abca38cc1c256df00bcac7923e2dc0bd42b16", + "matches_frozen_source": true, + "path": "testpilot/model.py", + "sha256": "f6ae697f1f5d686ffdcb96f5451d1a9600d7d41c7bcf324d7e8c276a107e8673" + }, + { + "git_blob": "4ab26cbb83beff563b9c3683c593b3efd2495b6b", + "matches_frozen_source": true, + "path": "testpilot/recheck.py", + "sha256": "1ecbe0ff7da7bb4a8117d730a76624c8929e0e4b10cb9d502ab7358cb38d8f2e" + }, + { + "git_blob": "84330f96ebd71b37dc40575fa2ac59ba53cf2a72", + "matches_frozen_source": true, + "path": "testpilot/sandbox.py", + "sha256": "0adf5eb81f8fd15ca09170c5328e6ff4165e1a0f903221b9730de3b480be0b1b" + }, + { + "git_blob": "de2fde7cd5dd683c338810d4707987ea5a2e9055", + "matches_frozen_source": true, + "path": "tests/test_sandbox.py", + "sha256": "ee47d6a3f40c2f612197614088ea40cbdd50a7f04047780c95a71e37c1555992" + }, + { + "git_blob": "d8ebce5a81205aad005e45a280aec898e3e89820", + "matches_frozen_source": true, + "path": "tests/test_sandbox_deadline.py", + "sha256": "6a9abfdc79bcb2cc3102d94b6b61d20ea09b0f89d5c7c5842387ce77c136d7e1" + }, + { + "git_blob": "184e969e57fc2a483b6a4e7b1709e16f66ce37e6", + "matches_frozen_source": true, + "path": "tests/test_sandbox_interrupt.py", + "sha256": "466bbdd470001a5e23e55a1205352dfccc8c714470fe903ff241b28416449325" + } + ], + "started_utc": "2026-10-08T16:10:49.660921+00:00", + "totals": { + "actual_cli_invocations": 1, + "checks": 14, + "failed": 0, + "passed": 14 + }, + "worker_ready": { + "pgid": 55653, + "pid": 55654, + "ppid": 55653 + } +} diff --git a/docs/receipts/run-cancellation-18a24bf0c281/independent-generated-phase/driver-freeze.json b/docs/receipts/run-cancellation-18a24bf0c281/independent-generated-phase/driver-freeze.json new file mode 100644 index 0000000..e82afa9 --- /dev/null +++ b/docs/receipts/run-cancellation-18a24bf0c281/independent-generated-phase/driver-freeze.json @@ -0,0 +1,24 @@ +{ + "candidate_intake": false, + "fixture_state": { + "change.diff": "fdf29283205d641bea9625d96c87d85601df9edf64aed5c0588756ff4018e9c3", + "expected.json": "12bb82dba8c53b29a14a4469995a5a78f428390b42489062ab94b237e609d725", + "previous-output/report.html": "15de2ee20b37d881a45c2fd164f244a73b770115afc5d57d5e96faeb083a4635", + "previous-output/report.json": "92720968fab69a2e3438a971830f7b2efa9998f382b8cc3e26576782bd3dc8d8", + "previous-output/report.md": "d9a3c8664c31b4e4329c4bd8ce5d173ff6d74ab10da37ccfccbfd5500eff3750", + "previous-output/testpilot.patch": "abc9f0d11f10264811f6f3b59fcf0915ae8b9d331ebf22bf35347c9ebfd5d4d1", + "project/owned_worker.py": "72c3f714724d257085d6aa2686d592c0f7038855071484d278cdaa4199561ab7", + "project/pair_math.py": "b4f11cfcf74af1a726f275faf93119ccd08c844a934e3432d9085a8164075eed", + "project/tests/test_existing_pair.py": "107b43e18c3f80a439a851fb551144748023236dfd7b1886a0626b99d35aa531", + "script/00-plan.txt": "c5b05cd689fc7bce881c9960775ac99ea54c16b2d666f6d4ba77ff496b6c9dfc", + "script/01-generated.txt": "4d42991580252e7d5bd686cdf5ea9696287cc6d39138a3e713ec19a898e0f8a6" + }, + "frozen_utc": "2026-10-08T16:04:02.009387+00:00", + "intake_sha256": "dde3903d14f62047ebb94eb41510c7c43ae79995dc1708f3b1ee207081ab98f0", + "original_source": "7f44c4f134f4d56d37dd14c7c2d2aaa3c8c8749e", + "prepare_sha256": "9d07a0cb1b8ab7d771ba14604fdb48882eaad46b83c263c38aeb48713618fe97", + "receiver_sha256": "301391fcb3b08eb41d8958d4305a50e95cdee03127a2584357a69d3e35d893f7", + "source_boundary": "Exact14-file current native closure; full upstream tree1063blobs is preserved by owner/root.", + "source_intake_sha256": "937a20f3ffa01452d5a71e012db2d11b1f98c0944ef0dfd29fa34c7f54d6a596", + "testpilot_executed": false +} diff --git a/docs/receipts/run-cancellation-18a24bf0c281/independent-generated-phase/drivers/candidate_intake.py b/docs/receipts/run-cancellation-18a24bf0c281/independent-generated-phase/drivers/candidate_intake.py new file mode 100644 index 0000000..d3f7732 --- /dev/null +++ b/docs/receipts/run-cancellation-18a24bf0c281/independent-generated-phase/drivers/candidate_intake.py @@ -0,0 +1,39 @@ +import pathlib,json,hashlib,subprocess,ast,datetime +root=pathlib.Path('/Users/me/testpilot-independent-interrupt-18a24bf0c281') +owner=pathlib.Path('/Users/me/testpilot-cancellation-18a24bf0c281') +commit='649dc7d1fd02493af298876eea0697849404bba9' +manifest=json.loads((owner/'evidence/candidate-source-freeze.json').read_text()) +entries=[] +dest=root/'source-candidate' +assert not dest.exists() +for e in manifest['files']: + blob=subprocess.check_output(['git','rev-parse',commit+':candidate/'+e['path']],cwd=owner,text=True).strip() + assert blob==e['git_blob'] + b=subprocess.check_output(['git','cat-file','blob',blob],cwd=owner) + assert hashlib.sha256(b).hexdigest()==e['sha256'] + p=dest/e['path'];p.parent.mkdir(parents=True,exist_ok=True);p.write_bytes(b);p.chmod(0o644) + entries.append({**e,'mode':'100644'}) +assert len(entries)==16 +base=json.loads((root/'evidence/source-intake.json').read_text())['captured_files'] +old={e['path']:e['git_blob'] for e in base};new={e['path']:e['git_blob'] for e in entries} +changed=sorted(p for p in old if new.get(p)!=old[p]);added=sorted(set(new)-set(old)) +assert changed==['testpilot/sandbox.py'];assert added==['docs/run-cancellation.md','tests/test_sandbox_interrupt.py'] +assert new['testpilot/loop.py']=='ed0f5f7f057c217b931a1756bd679ae087247e0a' +original=(root/'source-baseline/testpilot/sandbox.py').read_text() +candidate=(dest/'testpilot/sandbox.py').read_text() +start=candidate.index(' except KeyboardInterrupt:\n');end=candidate.index(' except subprocess.TimeoutExpired:\n',start) +handler=candidate[start:end] +reconstructed=(candidate[:start]+candidate[end:]).replace(' """Collect output, bounding POSIX timeout and interrupt cleanup."""\n',' """Collect output, with at most one extra second of POSIX timeout cleanup."""\n',1) +assert reconstructed==original +tree=ast.parse(candidate);function=next(n for n in tree.body if isinstance(n,ast.FunctionDef) and n.name=='_run') +interrupt=next(n for n in ast.walk(function) if isinstance(n,ast.ExceptHandler) and isinstance(n.type,ast.Name) and n.type.id=='KeyboardInterrupt') +assert isinstance(interrupt.body[-1],ast.Raise) and interrupt.body[-1].exc is None +calls=[ast.unparse(n) for n in ast.walk(interrupt) if isinstance(n,ast.Call)] +assert 'os.killpg(proc.pid, signal.SIGKILL)' in calls +assert 'proc.wait(timeout=1.0)' in calls +assert 'proc.stdout.close()' in calls +intake={'repository':'Jacob-Met/testpilot','canonical_parent':manifest['canonical_parent'],'canonical_tree':manifest['canonical_tree'],'native_candidate_commit':commit,'captured_files':entries,'baseline_receiving_commit':'9317bdb3a0fda248ffcbabbe94c401a4558a1b41','candidate_executed':False,'observed_utc':datetime.datetime.now(datetime.timezone.utc).isoformat()} +(root/'evidence/candidate-intake.json').write_text(json.dumps(intake,indent=2,sort_keys=True)+'\n') +review={'candidate_commit':commit,'old_sandbox_blob':old['testpilot/sandbox.py'],'new_sandbox_blob':new['testpilot/sandbox.py'],'new_sandbox_sha256':hashlib.sha256(candidate.encode()).hexdigest(),'changed_original_paths':changed,'added_paths':added,'unchanged_original_paths':len(old)-len(changed),'retained_loop_blob':new['testpilot/loop.py'],'handler_lines':len(handler.splitlines()),'handler':handler,'inverse_reconstruction_matches_complete_original':True,'original_sha256':hashlib.sha256(original.encode()).hexdigest(),'reconstructed_sha256':hashlib.sha256(reconstructed.encode()).hexdigest(),'inspected_interrupt_calls':calls,'bare_reraise_preserved':True,'bounded_wait_seconds':1.0,'candidate_executed':False} +(root/'evidence/static-candidate-review.json').write_text(json.dumps(review,indent=2,sort_keys=True)+'\n') +print(json.dumps({'candidate_commit':commit,'files':len(entries),'handler_lines':len(handler.splitlines()),'reconstruction_exact':True,'loop_blob':new['testpilot/loop.py'],'candidate_executed':False})) diff --git a/docs/receipts/run-cancellation-18a24bf0c281/independent-generated-phase/drivers/prepare.py b/docs/receipts/run-cancellation-18a24bf0c281/independent-generated-phase/drivers/prepare.py new file mode 100644 index 0000000..edfa81b --- /dev/null +++ b/docs/receipts/run-cancellation-18a24bf0c281/independent-generated-phase/drivers/prepare.py @@ -0,0 +1,106 @@ +#!/usr/bin/env python3 +"""Freeze a distinct generated-verification cancellation fixture, without running TestPilot.""" +import hashlib +import importlib.metadata +import importlib.util +import json +from pathlib import Path +import sys + +ROOT = Path('/Users/me/testpilot-independent-interrupt-18a24bf0c281') + +WORKER = '''import json +import os +from pathlib import Path +import sys +import time + +control = Path(sys.argv[1]) +deadline = time.monotonic() + 8.0 +identity = {"pid": os.getpid(), "ppid": os.getppid(), "pgid": os.getpgrp()} +(control / "worker-ready.json").write_text(json.dumps(identity)) +while time.monotonic() < deadline: + (control / "heartbeat.json").write_text(json.dumps({**identity, "monotonic": time.monotonic()})) + flag = control / "parent-exited.json" + if flag.exists(): + parent_receipt = json.loads(flag.read_text()) + (control / "work-after-parent-exit.json").write_text(json.dumps({**identity, "observed_ppid": os.getppid(), "monotonic": time.monotonic(), "parent_exit": parent_receipt})) + time.sleep(0.15) + break + time.sleep(0.025) +''' + +GENERATED = '''import hashlib +import json +import os +from pathlib import Path +import subprocess +import sys + +from pair_math import combine + + +def test_generated_verification_with_owned_worker(): + assert combine(9, 4) == 13 + control = Path(os.environ["TP_REVIEW_CONTROL"]) + child = subprocess.Popen([sys.executable, str(Path(__file__).parents[1] / "owned_worker.py"), str(control)]) + (control / "generated-ready.json").write_text(json.dumps({"phase": "generated-verification", "pid": os.getpid(), "ppid": os.getppid(), "pgid": os.getpgrp(), "child_pid": child.pid, "generated_path": str(Path(__file__).resolve()), "generated_sha256": hashlib.sha256(Path(__file__).read_bytes()).hexdigest(), "asserted_result": 13})) + child.wait(timeout=10.0) +''' + +def main(): + root = ROOT / 'fixture' + assert not root.exists() + (root / 'project/tests').mkdir(parents=True) + (root / 'script').mkdir() + (root / 'previous-output').mkdir() + files = { + 'project/pair_math.py': 'def combine(left, right):\n return left + right\n', + 'project/tests/test_existing_pair.py': 'from pair_math import combine\n\ndef test_existing_pair():\n assert combine(6, 7) == 13\n', + 'project/owned_worker.py': WORKER, + 'change.diff': 'diff --git a/pair_math.py b/pair_math.py\n--- a/pair_math.py\n+++ b/pair_math.py\n@@ -1,2 +1,2 @@\n def combine(left, right):\n- return left\n+ return left + right\n', + 'script/00-plan.txt': 'Check the changed combine function. Generate one additional verification case.\n', + 'script/01-generated.txt': '```python path=tests/test_generated_lifecycle.py\n' + GENERATED + '```\n', + 'previous-output/report.json': '{"fixture":"previous regular report artifact","generation":17}\n', + 'previous-output/report.md': '# Previous regular review artifact\n\nGeneration 17 must survive interruption.\n', + 'previous-output/report.html': 'Previous regular review artifact

Generation 17

\n', + 'previous-output/testpilot.patch': '# Previous regular patch artifact, generation 17\n', + } + manifest = [] + for name, content in files.items(): + path = root / name + path.write_text(content) + data = path.read_bytes() + manifest.append({'path': name, 'bytes': len(data), 'sha256': hashlib.sha256(data).hexdigest()}) + expected = { + 'scenario': 'Real SIGINT during generated verification after the actual ScriptedModel planner/editor calls', + 'source_parent': '7f44c4f134f4d56d37dd14c7c2d2aaa3c8c8749e', + 'loop_blob_preserved': 'ed0f5f7f057c217b931a1756bd679ae087247e0a', + 'generated_sha256': hashlib.sha256(GENERATED.encode()).hexdigest(), + 'manual_expectations': [ + 'The actual generated test first receives combine(9,4)==13 and writes readiness from its copied source.', + 'The launched pytest leader is in its own process group; its one worker inherits that group.', + 'SIGINT terminates the owning TestPilot CLI within3 seconds and remains an interrupt, not a completed run.', + 'At parent exit the owned pytest group has no running work; zombie states alone are not counted as work.', + 'Only after parent exit does the receiver create its handshake; no worker can then produce a continuation marker.', + 'All four preexisting regular output artifacts retain exact bytes, inode, mode and write timestamp.', + 'Project, scripted replies and all exact production source blobs remain unchanged.', + 'Receiver cleanup is finite and addresses only recorded owned process/group identities; worker lifetime is capped at8 seconds.' + ], + 'output_contract': 'The four previous-output files are explicitly synthetic regular preservation sentinels. Current CLI accepts an existing output directory and reaches generated verification; no claim is made that these sentinel contents are a prior complete semantic TestPilot report.', + 'network': 'Explicit scripted backend; no external model API or credential is used.', + 'scope_limits': ['POSIX SIGINT during communicate after successful Popen only.', 'No escaped session, SIGTERM/SIGKILL semantics, Windows or hostile-code containment claim.', 'No author suite or uninterrupted-control replay.'], + 'fixture_files': manifest, + } + (root / 'expected.json').write_text(json.dumps(expected, indent=2, sort_keys=True) + '\n') + (ROOT / 'evidence/environment.json').write_text(json.dumps({ + 'executable': sys.executable, 'python': sys.version, + 'pytest': importlib.metadata.version('pytest'), + 'coverage_installed': importlib.util.find_spec('coverage') is not None, + 'reuse': 'Explicitly authorized read-only interpreter; all source, fixtures and process/output state are independent.', + 'bytecode_disabled': sys.dont_write_bytecode, + }, indent=2, sort_keys=True) + '\n') + print(json.dumps({'fixture_files': len(manifest), 'generated_sha256': expected['generated_sha256'], 'candidate_intake': False, 'testpilot_executed': False})) + +if __name__ == '__main__': + main() diff --git a/docs/receipts/run-cancellation-18a24bf0c281/independent-generated-phase/drivers/receive.py b/docs/receipts/run-cancellation-18a24bf0c281/independent-generated-phase/drivers/receive.py new file mode 100644 index 0000000..a2276af --- /dev/null +++ b/docs/receipts/run-cancellation-18a24bf0c281/independent-generated-phase/drivers/receive.py @@ -0,0 +1,241 @@ +#!/usr/bin/env python3 +"""Independent native caller/process-group receiving; production source is never edited.""" +import argparse +import hashlib +import json +import os +from pathlib import Path +import shutil +import signal +import subprocess +import sys +import time +from datetime import datetime, timezone + +ROOT = Path('/Users/me/testpilot-independent-interrupt-18a24bf0c281') +PYTHON = '/Users/me/capturesuite-independent-checkpoint-18a24bf0c281/venv/bin/python' + +def sha(data): + return hashlib.sha256(data).hexdigest() + +def identity(path): + stat = path.stat() + return {'bytes': stat.st_size, 'sha256': sha(path.read_bytes()), + 'inode': stat.st_ino, 'mode': stat.st_mode & 0o777, + 'mtime_ns': stat.st_mtime_ns} + +def json_file(path): + try: + return json.loads(path.read_text()) + except (FileNotFoundError, json.JSONDecodeError): + return None + +def write_json(path, value): + path.write_text(json.dumps(value, indent=2, sort_keys=True) + '\n') + +def owned_ps(pids): + pids = sorted({int(p) for p in pids if p}) + if not pids: + return [] + result = subprocess.run(['/bin/ps', '-p', ','.join(str(p) for p in pids), + '-o', 'pid=,ppid=,pgid=,stat=,command='], + capture_output=True, text=True, timeout=3) + rows = [] + for line in result.stdout.splitlines(): + fields = line.strip().split(None, 4) + if len(fields) == 5: + rows.append({'pid': int(fields[0]), 'ppid': int(fields[1]), 'pgid': int(fields[2]), + 'stat': fields[3], 'command': fields[4], 'running': not fields[3].startswith('Z')}) + return rows + +def source_state(label): + manifest_path = ROOT / 'evidence' / ('source-intake.json' if label == 'baseline' else 'candidate-intake.json') + manifest = json.loads(manifest_path.read_text()) + rows = [] + for entry in manifest['captured_files']: + path = ROOT / ('source-' + label) / entry['path'] + data = path.read_bytes() + blob = hashlib.sha1(b'blob ' + str(len(data)).encode() + b'\0' + data).hexdigest() + rows.append({'path': entry['path'], 'git_blob': blob, 'sha256': sha(data), + 'matches_frozen_source': blob == entry['git_blob'] and sha(data) == entry['sha256']}) + return rows + +def fixture_state(): + return {str(path.relative_to(ROOT / 'fixture')): sha(path.read_bytes()) + for path in sorted((ROOT / 'fixture').rglob('*')) if path.is_file()} + +def main(): + parser = argparse.ArgumentParser() + parser.add_argument('--label', required=True, choices=('baseline', 'candidate')) + args = parser.parse_args() + label = args.label + source = ROOT / ('source-' + label) + run = ROOT / 'runs' / label + if run.exists(): + raise SystemExit('Refusing to overwrite a previous receiving run') + (run / 'control').mkdir(parents=True) + (run / 'tmp').mkdir() + output = run / 'saved-output' + shutil.copytree(ROOT / 'fixture/previous-output', output) + for i, path in enumerate(sorted(output.iterdir())): + path.chmod(0o640 if i % 2 else 0o440) + stamp = 1735689600000000000 + i * 1000000000 + os.utime(path, ns=(stamp, stamp)) + before_output = {p.name: identity(p) for p in sorted(output.iterdir())} + before_source = source_state(label) + before_fixture = fixture_state() + expected = json.loads((ROOT / 'fixture/expected.json').read_text()) + freeze = json.loads((ROOT / 'evidence/driver-freeze.json').read_text()) + assert freeze['receiver_sha256'] == sha(Path(__file__).read_bytes()) + assert all(row['matches_frozen_source'] for row in before_source) + assert before_fixture == freeze['fixture_state'] + checks = [] + report = {'label': label, 'source_before': before_source, 'fixture_before': before_fixture, + 'outputs_before': before_output, 'checks': checks, + 'receiver_sha256': freeze['receiver_sha256'], + 'started_utc': datetime.now(timezone.utc).isoformat()} + def check(name, actual, target): + checks.append({'name': name, 'passed': actual == target, 'actual': actual, 'expected': target}) + + env = os.environ.copy() + env.update(PYTHONPATH=str(source), PYTHONDONTWRITEBYTECODE='1', PYTEST_DISABLE_PLUGIN_AUTOLOAD='1', + TP_REVIEW_CONTROL=str(run / 'control'), TMPDIR=str(run / 'tmp')) + # The actual public CLI explicitly uses the existing offline backend. + argv = [PYTHON, '-m', 'testpilot', 'run', '--repo', str(ROOT / 'fixture/project'), + '--diff', str(ROOT / 'fixture/change.diff'), '--backend', 'scripted', + '--script', str(ROOT / 'fixture/script'), '--rounds', '0', '--timeout', '30', + '--python', PYTHON, '--out', str(output)] + report['argv'] = argv + report['cwd'] = str(source) + report['environment_overrides'] = {k: env[k] for k in ['PYTHONPATH', 'PYTHONDONTWRITEBYTECODE', + 'PYTEST_DISABLE_PLUGIN_AUTOLOAD', 'TP_REVIEW_CONTROL', 'TMPDIR']} + cli = None + owned_pids = [] + group = None + group_proven = False + generated = worker = None + stdout_path, stderr_path = run / 'cli.stdout.txt', run / 'cli.stderr.txt' + try: + with stdout_path.open('wb') as stdout, stderr_path.open('wb') as stderr: + cli = subprocess.Popen(argv, cwd=source, env=env, stdout=stdout, stderr=stderr, + stdin=subprocess.DEVNULL, start_new_session=True) + report['cli_pid'] = cli.pid + report['cli_pgid'] = os.getpgid(cli.pid) + deadline = time.monotonic() + 12.0 + while time.monotonic() < deadline: + generated = json_file(run / 'control/generated-ready.json') + worker = json_file(run / 'control/worker-ready.json') + heartbeat = json_file(run / 'control/heartbeat.json') + if generated and worker and heartbeat: + break + if cli.poll() is not None: + break + time.sleep(.025) + check('Actual generated verification is reached after existing tests and scripted model replies', + bool(generated and worker and heartbeat and cli.poll() is None), True) + if not (generated and worker and heartbeat and cli.poll() is None): + raise RuntimeError('Generated-phase fixture did not become ready; preserve this as an invalid receiving setup') + report['generated_ready'] = generated + report['worker_ready'] = worker + report['heartbeat_before_signal'] = heartbeat + check('The accepted generated file and its actual input assertion match the frozen reply', + [generated['generated_sha256'], generated['asserted_result'], + generated['phase'], generated['generated_path'].startswith(str(run / 'tmp'))], + [expected['generated_sha256'], 13, 'generated-verification', True]) + owned_pids = [generated['pid'], worker['pid']] + group = generated['pgid'] + group_proven = (group == generated['pid'] and generated['ppid'] == cli.pid + and worker['ppid'] == generated['pid'] and worker['pgid'] == group + and generated['child_pid'] == worker['pid'] and group != os.getpgrp()) + check('Pytest owns a separate group and the recorded worker inherits that exact group', group_proven, True) + if not group_proven: + raise RuntimeError('Owned group identity was not established') + report['owned_before_signal'] = owned_ps(owned_pids) + check('Both owned processes are doing work before the cancellation signal', + sorted(row['pid'] for row in report['owned_before_signal'] if row['running']), sorted(owned_pids)) + check('No post-parent-exit marker exists before the parent exits', + (run / 'control/work-after-parent-exit.json').exists(), False) + signal_time = time.monotonic() + os.kill(cli.pid, signal.SIGINT) + report['signal'] = {'number': int(signal.SIGINT), 'target_pid': cli.pid, 'monotonic': signal_time} + try: + cli.wait(timeout=3.0) + except subprocess.TimeoutExpired: + report['parent_exit_bound_exceeded'] = True + elapsed = time.monotonic() - signal_time + report['parent_exit'] = {'returncode': cli.poll(), 'duration_s': elapsed, + 'observed_monotonic': time.monotonic()} + check('The CLI propagates cancellation and exits within the finite three-second bound', + bool(cli.poll() not in (None, 0) and elapsed < 3.0), True) + report['owned_at_parent_exit'] = owned_ps(owned_pids) + check('No owned pytest/worker process is still running when the CLI exits', + [row['pid'] for row in report['owned_at_parent_exit'] if row['running']], []) + if cli.poll() is not None: + pending = run / 'control/parent-exited.pending' + write_json(pending, {'cli_pid': cli.pid, 'returncode': cli.returncode, + 'monotonic': report['parent_exit']['observed_monotonic']}) + pending.replace(run / 'control/parent-exited.json') + # The flag is atomic and created strictly after observed parent exit. + deadline = time.monotonic() + .65 + while time.monotonic() < deadline: + marker = json_file(run / 'control/work-after-parent-exit.json') + if marker is not None: + break + time.sleep(.025) + marker = json_file(run / 'control/work-after-parent-exit.json') + report['post_parent_exit_marker'] = marker + check('The owned worker cannot continue after the post-parent-exit handshake', marker is None, True) + else: + check('The owned worker cannot continue after the post-parent-exit handshake', 'parent did not exit', True) + check('Cancellation remains visible as KeyboardInterrupt and prints no publication success', + ['KeyboardInterrupt' in stderr_path.read_text(), 'wrote ' in stdout_path.read_text()], [True, False]) + except Exception as exc: + report['receiver_error'] = {'type': type(exc).__name__, 'message': str(exc)} + check('Receiver setup and native flow complete without a harness error', False, True) + finally: + cleanup = {'owned_pids': owned_pids, 'pgid': group, 'actions': []} + if group_proven: + rows = owned_ps(owned_pids) + cleanup['before'] = rows + # Never signal a remembered group unless a still-owned live member proves it. + live = [r for r in rows if r['running'] and r['pgid'] == group + and (str(run / 'tmp') in r['command'] or str(run / 'control') in r['command'])] + if live: + try: + os.killpg(group, signal.SIGKILL) + cleanup['actions'].append({'signal': 'SIGKILL', 'group': group, + 'live_owned_witness_pids': [r['pid'] for r in live]}) + except ProcessLookupError: + cleanup['actions'].append({'group': group, 'already_exited': True}) + deadline = time.monotonic() + 1.0 + while time.monotonic() < deadline and any(r['running'] for r in owned_ps(owned_pids)): + time.sleep(.025) + cleanup['after'] = owned_ps(owned_pids) + check('All recorded owned work is stopped at the end of finite receiver cleanup', + [r['pid'] for r in cleanup['after'] if r['running']], []) + if cli is not None and cli.poll() is None: + cli.kill() + cli.wait(timeout=2.0) + cleanup['actions'].append({'signal': 'SIGKILL', 'owned_cli_pid': cli.pid}) + report['cleanup'] = cleanup + after_output = {p.name: identity(p) for p in sorted(output.iterdir()) if p.is_file()} + report['outputs_after'] = after_output + check('All four preexisting output files preserve bytes/inode/mode/write time', after_output, before_output) + check('No partial publication path is added to the existing output directory', + sorted(p.name for p in output.iterdir()), sorted(before_output)) + after_fixture = fixture_state() + check('Original project and scripted replies remain byte-identical', after_fixture, before_fixture) + after_source = source_state(label) + report['source_after'] = after_source + check('All captured native production/context source bytes remain exact', after_source == before_source, True) + report['finished_utc'] = datetime.now(timezone.utc).isoformat() + report['totals'] = {'checks': len(checks), 'passed': sum(c['passed'] for c in checks), + 'failed': sum(not c['passed'] for c in checks), 'actual_cli_invocations': 1} + write_json(run / 'report.json', report) + print(json.dumps({'label': label, **report['totals'], + 'failures': [c['name'] for c in checks if not c['passed']], + 'parent_exit': report.get('parent_exit')})) + return 0 if all(c['passed'] for c in checks) else 1 + +if __name__ == '__main__': + raise SystemExit(main()) diff --git a/docs/receipts/run-cancellation-18a24bf0c281/independent-generated-phase/environment.json b/docs/receipts/run-cancellation-18a24bf0c281/independent-generated-phase/environment.json new file mode 100644 index 0000000..17cb693 --- /dev/null +++ b/docs/receipts/run-cancellation-18a24bf0c281/independent-generated-phase/environment.json @@ -0,0 +1,8 @@ +{ + "bytecode_disabled": true, + "coverage_installed": false, + "executable": "/Users/me/capturesuite-independent-checkpoint-18a24bf0c281/venv/bin/python", + "pytest": "9.1.1", + "python": "3.12.8 (main, Dec 3 2024, 18:42:41) [Clang 16.0.0 (clang-1600.0.26.4)]", + "reuse": "Explicitly authorized read-only interpreter; all source, fixtures and process/output state are independent." +} diff --git a/docs/receipts/run-cancellation-18a24bf0c281/independent-generated-phase/native-receiving.tar.gz b/docs/receipts/run-cancellation-18a24bf0c281/independent-generated-phase/native-receiving.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..eba0a7fcfe8f1444a01f7ad5695c228966695fb2 GIT binary patch literal 99068 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 z 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 l0$)7DU;g{@-Q literal 0 HcmV?d00001 diff --git a/docs/receipts/run-cancellation-18a24bf0c281/independent-generated-phase/qualification.json b/docs/receipts/run-cancellation-18a24bf0c281/independent-generated-phase/qualification.json new file mode 100644 index 0000000..6fbb6e9 --- /dev/null +++ b/docs/receipts/run-cancellation-18a24bf0c281/independent-generated-phase/qualification.json @@ -0,0 +1,73 @@ +{ + "accepted_native_source_commit": "649dc7d1fd02493af298876eea0697849404bba9", + "accepted_sandbox_blob": "84330f96ebd71b37dc40575fa2ac59ba53cf2a72", + "accepted_sandbox_sha256": "0adf5eb81f8fd15ca09170c5328e6ff4165e1a0f903221b9730de3b480be0b1b", + "archive": { + "bytes": 99068, + "members": 78, + "sha256": "226bed3b728d0e71685828069dc7ccca0196767b5c6c6ebcafdee06dde21516c" + }, + "baseline": { + "checks": { + "actual_cli_invocations": 1, + "checks": 14, + "failed": 2, + "passed": 12 + }, + "cleanup_signals": [ + { + "group": 5917, + "live_owned_witness_pids": [ + 5917, + 5918 + ], + "signal": "SIGKILL" + } + ], + "continued_after_parent_exit": true, + "output_files_preserved": 4, + "parent_exit": { + "duration_s": 0.2846649169223383, + "observed_monotonic": 1015062.606122041, + "returncode": -2 + }, + "source_files_unchanged": 14 + }, + "candidate": { + "checks": { + "actual_cli_invocations": 1, + "checks": 14, + "failed": 0, + "passed": 14 + }, + "cleanup_signals": [], + "continued_after_parent_exit": false, + "output_files_preserved": 4, + "parent_exit": { + "duration_s": 0.2814816660247743, + "observed_monotonic": 1015417.467700291, + "returncode": -2 + }, + "source_files_unchanged": 16 + }, + "candidate_scope": "One added15-line KeyboardInterrupt handler and docstring;13 original files untouched; two declared test/doc additions.", + "canonical_blob_count": 1063, + "canonical_parent": "7f44c4f134f4d56d37dd14c7c2d2aaa3c8c8749e", + "canonical_parent_tree": "ea3f7b4170f1515abb7188d31dc269623b9e0738", + "exact_inverse_module_reconstruction": true, + "execution_scope": "Two actual offline CLI calls total, each interrupted during generated verification; no author suite or ordinary control replay.", + "generated_source_sha256": "121d3bf5dd29e14e9abff37e5e14526ecad74c0507e8daccb75317e217f1e907", + "issue": 35, + "limitations": [ + "Current7f44 plus exact649dc7d only; later main needs separate composition review.", + "POSIX SIGINT during active communicate only; no escaped sessions, other signals, Windows or hostile-code containment claim.", + "Previous output contents are explicit synthetic regular preservation sentinels." + ], + "original_receiving_commit": "9317bdb3a0fda248ffcbabbe94c401a4558a1b41", + "production_edits": 0, + "receiver_freeze_commit": "0c5eb9caeaaf4b3d014b1ce65eab21f45f49e546", + "receiver_sha256": "301391fcb3b08eb41d8958d4305a50e95cdee03127a2584357a69d3e35d893f7", + "repository": "Jacob-Met/testpilot", + "retained_loop_blob": "ed0f5f7f057c217b931a1756bd679ae087247e0a", + "verdict": "accepted" +} diff --git a/docs/receipts/run-cancellation-18a24bf0c281/independent-generated-phase/raw-manifest.json b/docs/receipts/run-cancellation-18a24bf0c281/independent-generated-phase/raw-manifest.json new file mode 100644 index 0000000..b6daadb --- /dev/null +++ b/docs/receipts/run-cancellation-18a24bf0c281/independent-generated-phase/raw-manifest.json @@ -0,0 +1,399 @@ +{ + "archive": "native-receiving.tar.gz", + "archive_bytes": 99068, + "archive_sha256": "226bed3b728d0e71685828069dc7ccca0196767b5c6c6ebcafdee06dde21516c", + "member_count": 78, + "members": [ + { + "bytes": 3862, + "path": "drivers/candidate_intake.py", + "sha256": "e4962bf7383729c6341d7400946fde0c1d03ddb65da24ff66eb701976729f8bc" + }, + { + "bytes": 1372, + "path": "drivers/intake.py", + "sha256": "dde3903d14f62047ebb94eb41510c7c43ae79995dc1708f3b1ee207081ab98f0" + }, + { + "bytes": 6247, + "path": "drivers/prepare.py", + "sha256": "9d07a0cb1b8ab7d771ba14604fdb48882eaad46b83c263c38aeb48713618fe97" + }, + { + "bytes": 13473, + "path": "drivers/receive.py", + "sha256": "301391fcb3b08eb41d8958d4305a50e95cdee03127a2584357a69d3e35d893f7" + }, + { + "bytes": 359, + "path": "evidence/baseline-driver.log", + "sha256": "45551dea857154918408dbf82ccc84fb2f0b6a0b2c6ac58658d655286f35c87b" + }, + { + "bytes": 191, + "path": "evidence/baseline-process-receipt.json", + "sha256": "77fba07047cc843d6eb166cf2cbf53e54c0e81f34ac8d6bf1df1bbb2b226d96f" + }, + { + "bytes": 219, + "path": "evidence/candidate-driver.log", + "sha256": "c5f9a1afa35d4a3e4a2343d42d92283b6162028173197bc171c0b0c454975d59" + }, + { + "bytes": 4295, + "path": "evidence/candidate-intake.json", + "sha256": "597a1241b8d9442b8b7951890f06051fc5cb0f3c4bb8854330016cd200d9c5d0" + }, + { + "bytes": 254, + "path": "evidence/candidate-process-receipt.json", + "sha256": "97fcfe922b71ade365e9ca12c26c7b55e435eaeb539928ae70873332e5c89d2d" + }, + { + "bytes": 1769, + "path": "evidence/driver-freeze.json", + "sha256": "b8059ec688bb8e209db55e0af86964f923113d59d331acc57e284666ba9165fa" + }, + { + "bytes": 387, + "path": "evidence/environment.json", + "sha256": "2f7001a6e8a90198531531640894840962cdd22ca4ad66c0c931b2263b0a68ca" + }, + { + "bytes": 166, + "path": "evidence/prepare.log", + "sha256": "df2c08238f0245abc7ba085ff7f8b556186a349601cd941aad2afebf5d7ecd3d" + }, + { + "bytes": 3765, + "path": "evidence/source-intake.json", + "sha256": "937a20f3ffa01452d5a71e012db2d11b1f98c0944ef0dfd29fa34c7f54d6a596" + }, + { + "bytes": 1650, + "path": "evidence/static-candidate-review.json", + "sha256": "c00a144f7a6bbb0d7be3a055017cafa700e44781113baef8d26da64ac3b4ee5d" + }, + { + "bytes": 164, + "path": "fixture/change.diff", + "sha256": "fdf29283205d641bea9625d96c87d85601df9edf64aed5c0588756ff4018e9c3" + }, + { + "bytes": 3470, + "path": "fixture/expected.json", + "sha256": "12bb82dba8c53b29a14a4469995a5a78f428390b42489062ab94b237e609d725" + }, + { + "bytes": 83, + "path": "fixture/previous-output/report.html", + "sha256": "15de2ee20b37d881a45c2fd164f244a73b770115afc5d57d5e96faeb083a4635" + }, + { + "bytes": 63, + "path": "fixture/previous-output/report.json", + "sha256": "92720968fab69a2e3438a971830f7b2efa9998f382b8cc3e26576782bd3dc8d8" + }, + { + "bytes": 77, + "path": "fixture/previous-output/report.md", + "sha256": "d9a3c8664c31b4e4329c4bd8ce5d173ff6d74ab10da37ccfccbfd5500eff3750" + }, + { + "bytes": 49, + "path": "fixture/previous-output/testpilot.patch", + "sha256": "abc9f0d11f10264811f6f3b59fcf0915ae8b9d331ebf22bf35347c9ebfd5d4d1" + }, + { + "bytes": 769, + "path": "fixture/project/owned_worker.py", + "sha256": "72c3f714724d257085d6aa2686d592c0f7038855071484d278cdaa4199561ab7" + }, + { + "bytes": 50, + "path": "fixture/project/pair_math.py", + "sha256": "b4f11cfcf74af1a726f275faf93119ccd08c844a934e3432d9085a8164075eed" + }, + { + "bytes": 88, + "path": "fixture/project/tests/test_existing_pair.py", + "sha256": "107b43e18c3f80a439a851fb551144748023236dfd7b1886a0626b99d35aa531" + }, + { + "bytes": 79, + "path": "fixture/script/00-plan.txt", + "sha256": "c5b05cd689fc7bce881c9960775ac99ea54c16b2d666f6d4ba77ff496b6c9dfc" + }, + { + "bytes": 791, + "path": "fixture/script/01-generated.txt", + "sha256": "4d42991580252e7d5bd686cdf5ea9696287cc6d39138a3e713ec19a898e0f8a6" + }, + { + "bytes": 2233, + "path": "runs/baseline/cli.stderr.txt", + "sha256": "fd93260e0dad0e42e13c8df7102fb4fef7d2840823c4835d5ce72ade7e1858f0" + }, + { + "bytes": 0, + "path": "runs/baseline/cli.stdout.txt", + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "bytes": 358, + "path": "runs/baseline/control/generated-ready.json", + "sha256": "421541e45f38d2837f0d586bc8b0ba7c3e7ed0572af64155f658976ddc334518" + }, + { + "bytes": 73, + "path": "runs/baseline/control/heartbeat.json", + "sha256": "5cccdedf47030dcfabb28875ee46b9b262496683b88d2590d7d4a59bcf7da803" + }, + { + "bytes": 76, + "path": "runs/baseline/control/parent-exited.json", + "sha256": "81f66077b0471a2aec906b308ccd08897376b23ad905ecc9eae5c42b43950d36" + }, + { + "bytes": 180, + "path": "runs/baseline/control/work-after-parent-exit.json", + "sha256": "9b89d19bb913a921f4573242494dca9794915b3553f152d0a27d9a88c18b0b73" + }, + { + "bytes": 41, + "path": "runs/baseline/control/worker-ready.json", + "sha256": "14ef67d0ba04dbcca7e137ad73b935cb02bd620e11c60734848cad3d00de0ce1" + }, + { + "bytes": 23384, + "path": "runs/baseline/report.json", + "sha256": "a4e37ab676d0507189a2eaf38a683bd5c39e69514458b1c93c2414ed567f6a1f" + }, + { + "bytes": 83, + "path": "runs/baseline/saved-output/report.html", + "sha256": "15de2ee20b37d881a45c2fd164f244a73b770115afc5d57d5e96faeb083a4635" + }, + { + "bytes": 63, + "path": "runs/baseline/saved-output/report.json", + "sha256": "92720968fab69a2e3438a971830f7b2efa9998f382b8cc3e26576782bd3dc8d8" + }, + { + "bytes": 77, + "path": "runs/baseline/saved-output/report.md", + "sha256": "d9a3c8664c31b4e4329c4bd8ce5d173ff6d74ab10da37ccfccbfd5500eff3750" + }, + { + "bytes": 49, + "path": "runs/baseline/saved-output/testpilot.patch", + "sha256": "abc9f0d11f10264811f6f3b59fcf0915ae8b9d331ebf22bf35347c9ebfd5d4d1" + }, + { + "bytes": 2239, + "path": "runs/candidate/cli.stderr.txt", + "sha256": "0c7366adaf884b6f552a5640011c8e39503b6396e1673ad291fc1910cd1bd80c" + }, + { + "bytes": 0, + "path": "runs/candidate/cli.stdout.txt", + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "bytes": 363, + "path": "runs/candidate/control/generated-ready.json", + "sha256": "e87c52c3ce22c6b6ee85984f3c827bcfdf63275aba6be2298b5a9861b200add5" + }, + { + "bytes": 76, + "path": "runs/candidate/control/heartbeat.json", + "sha256": "8f21af7d0272208a71243f5f5adf3eb13c027ea783a5bb70e3cbccab6d7937c2" + }, + { + "bytes": 77, + "path": "runs/candidate/control/parent-exited.json", + "sha256": "637fc397d5f8b5ab620974521e0f74a36ad5291aced2499234bbfb62064711fc" + }, + { + "bytes": 44, + "path": "runs/candidate/control/worker-ready.json", + "sha256": "d48bca0df267c299ea1b20115ce8929adc6807264529a782915aa5a01c06d518" + }, + { + "bytes": 21517, + "path": "runs/candidate/report.json", + "sha256": "18eb5b799338ddd59be8e46690635170502069a90218cbe1a96b8546b80c2b3b" + }, + { + "bytes": 83, + "path": "runs/candidate/saved-output/report.html", + "sha256": "15de2ee20b37d881a45c2fd164f244a73b770115afc5d57d5e96faeb083a4635" + }, + { + "bytes": 63, + "path": "runs/candidate/saved-output/report.json", + "sha256": "92720968fab69a2e3438a971830f7b2efa9998f382b8cc3e26576782bd3dc8d8" + }, + { + "bytes": 77, + "path": "runs/candidate/saved-output/report.md", + "sha256": "d9a3c8664c31b4e4329c4bd8ce5d173ff6d74ab10da37ccfccbfd5500eff3750" + }, + { + "bytes": 49, + "path": "runs/candidate/saved-output/testpilot.patch", + "sha256": "abc9f0d11f10264811f6f3b59fcf0915ae8b9d331ebf22bf35347c9ebfd5d4d1" + }, + { + "bytes": 586, + "path": "source-baseline/.github/workflows/ci.yml", + "sha256": "236fd600bea41471b373b91d8e389aa12c58cba79c83efa071f6ab805f1ebf59" + }, + { + "bytes": 12669, + "path": "source-baseline/README.md", + "sha256": "9e1c93aa93ca1942d002c3bd28779d780b568b606cfa7e001058c13997e34854" + }, + { + "bytes": 676, + "path": "source-baseline/pyproject.toml", + "sha256": "5503eab7b6c145d4de241e5be805a4fb8f30828053cbe39dc05a43c2896642eb" + }, + { + "bytes": 390, + "path": "source-baseline/testpilot/__init__.py", + "sha256": "65c63b80d7da34a83a6049a79c24b8335878cd49cc79951fdefc5f1532ae841f" + }, + { + "bytes": 6065, + "path": "source-baseline/testpilot/__main__.py", + "sha256": "90577ea3a939642f5cb29818f6360df96d9fa0d35d05af11bf97054425c32c84" + }, + { + "bytes": 2943, + "path": "source-baseline/testpilot/_pytest_generated.py", + "sha256": "d65352d7bade965d7b9dc73efe5d4d01844fa8c7474a1bdcdb3b708f6decf768" + }, + { + "bytes": 9387, + "path": "source-baseline/testpilot/diff.py", + "sha256": "2cf38707ea175bb1f04d55335de344ae943458658055332b4aa68f27763214c0" + }, + { + "bytes": 20656, + "path": "source-baseline/testpilot/html_report.py", + "sha256": "183703d05f32552f7f7c39aa958c39bae61d824e3fa9cd6a6dd686f0d4c228a4" + }, + { + "bytes": 25480, + "path": "source-baseline/testpilot/loop.py", + "sha256": "dde4ee52e0a1fabded9902137ede6dd68aa17f6542c316e5d134b8510495170b" + }, + { + "bytes": 10175, + "path": "source-baseline/testpilot/model.py", + "sha256": "f6ae697f1f5d686ffdcb96f5451d1a9600d7d41c7bcf324d7e8c276a107e8673" + }, + { + "bytes": 11599, + "path": "source-baseline/testpilot/recheck.py", + "sha256": "1ecbe0ff7da7bb4a8117d730a76624c8929e0e4b10cb9d502ab7358cb38d8f2e" + }, + { + "bytes": 12721, + "path": "source-baseline/testpilot/sandbox.py", + "sha256": "8d5aadafff5188473ec45eb1cd8f01fb562836ff05bf12a27939cde83b33472a" + }, + { + "bytes": 2545, + "path": "source-baseline/tests/test_sandbox.py", + "sha256": "ee47d6a3f40c2f612197614088ea40cbdd50a7f04047780c95a71e37c1555992" + }, + { + "bytes": 4248, + "path": "source-baseline/tests/test_sandbox_deadline.py", + "sha256": "6a9abfdc79bcb2cc3102d94b6b61d20ea09b0f89d5c7c5842387ce77c136d7e1" + }, + { + "bytes": 586, + "path": "source-candidate/.github/workflows/ci.yml", + "sha256": "236fd600bea41471b373b91d8e389aa12c58cba79c83efa071f6ab805f1ebf59" + }, + { + "bytes": 12669, + "path": "source-candidate/README.md", + "sha256": "9e1c93aa93ca1942d002c3bd28779d780b568b606cfa7e001058c13997e34854" + }, + { + "bytes": 2985, + "path": "source-candidate/docs/run-cancellation.md", + "sha256": "ab37125e75d03005813477f6ec1703117ca844209a559f289a8be5ee720bf126" + }, + { + "bytes": 676, + "path": "source-candidate/pyproject.toml", + "sha256": "5503eab7b6c145d4de241e5be805a4fb8f30828053cbe39dc05a43c2896642eb" + }, + { + "bytes": 390, + "path": "source-candidate/testpilot/__init__.py", + "sha256": "65c63b80d7da34a83a6049a79c24b8335878cd49cc79951fdefc5f1532ae841f" + }, + { + "bytes": 6065, + "path": "source-candidate/testpilot/__main__.py", + "sha256": "90577ea3a939642f5cb29818f6360df96d9fa0d35d05af11bf97054425c32c84" + }, + { + "bytes": 2943, + "path": "source-candidate/testpilot/_pytest_generated.py", + "sha256": "d65352d7bade965d7b9dc73efe5d4d01844fa8c7474a1bdcdb3b708f6decf768" + }, + { + "bytes": 9387, + "path": "source-candidate/testpilot/diff.py", + "sha256": "2cf38707ea175bb1f04d55335de344ae943458658055332b4aa68f27763214c0" + }, + { + "bytes": 20656, + "path": "source-candidate/testpilot/html_report.py", + "sha256": "183703d05f32552f7f7c39aa958c39bae61d824e3fa9cd6a6dd686f0d4c228a4" + }, + { + "bytes": 25480, + "path": "source-candidate/testpilot/loop.py", + "sha256": "dde4ee52e0a1fabded9902137ede6dd68aa17f6542c316e5d134b8510495170b" + }, + { + "bytes": 10175, + "path": "source-candidate/testpilot/model.py", + "sha256": "f6ae697f1f5d686ffdcb96f5451d1a9600d7d41c7bcf324d7e8c276a107e8673" + }, + { + "bytes": 11599, + "path": "source-candidate/testpilot/recheck.py", + "sha256": "1ecbe0ff7da7bb4a8117d730a76624c8929e0e4b10cb9d502ab7358cb38d8f2e" + }, + { + "bytes": 13277, + "path": "source-candidate/testpilot/sandbox.py", + "sha256": "0adf5eb81f8fd15ca09170c5328e6ff4165e1a0f903221b9730de3b480be0b1b" + }, + { + "bytes": 2545, + "path": "source-candidate/tests/test_sandbox.py", + "sha256": "ee47d6a3f40c2f612197614088ea40cbdd50a7f04047780c95a71e37c1555992" + }, + { + "bytes": 4248, + "path": "source-candidate/tests/test_sandbox_deadline.py", + "sha256": "6a9abfdc79bcb2cc3102d94b6b61d20ea09b0f89d5c7c5842387ce77c136d7e1" + }, + { + "bytes": 6944, + "path": "source-candidate/tests/test_sandbox_interrupt.py", + "sha256": "466bbdd470001a5e23e55a1205352dfccc8c714470fe903ff241b28416449325" + } + ], + "verification": "Every regular member verified; original14 and candidate16 source blobs match their immutable intake manifests." +} diff --git a/docs/receipts/run-cancellation-18a24bf0c281/independent-generated-phase/source-intake.json b/docs/receipts/run-cancellation-18a24bf0c281/independent-generated-phase/source-intake.json new file mode 100644 index 0000000..4ce2379 --- /dev/null +++ b/docs/receipts/run-cancellation-18a24bf0c281/independent-generated-phase/source-intake.json @@ -0,0 +1,107 @@ +{ + "canonical_blob_count": 1063, + "canonical_head": "7f44c4f134f4d56d37dd14c7c2d2aaa3c8c8749e", + "canonical_tree": "ea3f7b4170f1515abb7188d31dc269623b9e0738", + "captured_files": [ + { + "git_blob": "86a3236e38155506b5fe6077322d508f7f676649", + "mode": "100644", + "path": ".github/workflows/ci.yml", + "sha256": "236fd600bea41471b373b91d8e389aa12c58cba79c83efa071f6ab805f1ebf59", + "size": 586 + }, + { + "git_blob": "24a6c0fab34c05d17ef216a42e97a0fae2389fc2", + "mode": "100644", + "path": "README.md", + "sha256": "9e1c93aa93ca1942d002c3bd28779d780b568b606cfa7e001058c13997e34854", + "size": 12669 + }, + { + "git_blob": "952255ac87e2c7da57457fdbf3554914f17f6d05", + "mode": "100644", + "path": "pyproject.toml", + "sha256": "5503eab7b6c145d4de241e5be805a4fb8f30828053cbe39dc05a43c2896642eb", + "size": 676 + }, + { + "git_blob": "296210dd0d58703de4a4e4c9ad72a0944c9400ca", + "mode": "100644", + "path": "testpilot/__init__.py", + "sha256": "65c63b80d7da34a83a6049a79c24b8335878cd49cc79951fdefc5f1532ae841f", + "size": 390 + }, + { + "git_blob": "2d98e2a85320ac2827ea48fa9d58d30a60354b6a", + "mode": "100644", + "path": "testpilot/__main__.py", + "sha256": "90577ea3a939642f5cb29818f6360df96d9fa0d35d05af11bf97054425c32c84", + "size": 6065 + }, + { + "git_blob": "90b82725bc0eb1ff3d7cb517c4c9dedcfd14bdcc", + "mode": "100644", + "path": "testpilot/_pytest_generated.py", + "sha256": "d65352d7bade965d7b9dc73efe5d4d01844fa8c7474a1bdcdb3b708f6decf768", + "size": 2943 + }, + { + "git_blob": "29dd325ab288ac1d43fd70f33b207281f5375d4b", + "mode": "100644", + "path": "testpilot/diff.py", + "sha256": "2cf38707ea175bb1f04d55335de344ae943458658055332b4aa68f27763214c0", + "size": 9387 + }, + { + "git_blob": "bb30d903542d836f5afe8e116ba894f93d9d3a0c", + "mode": "100644", + "path": "testpilot/html_report.py", + "sha256": "183703d05f32552f7f7c39aa958c39bae61d824e3fa9cd6a6dd686f0d4c228a4", + "size": 20656 + }, + { + "git_blob": "ed0f5f7f057c217b931a1756bd679ae087247e0a", + "mode": "100644", + "path": "testpilot/loop.py", + "sha256": "dde4ee52e0a1fabded9902137ede6dd68aa17f6542c316e5d134b8510495170b", + "size": 25480 + }, + { + "git_blob": "6d4abca38cc1c256df00bcac7923e2dc0bd42b16", + "mode": "100644", + "path": "testpilot/model.py", + "sha256": "f6ae697f1f5d686ffdcb96f5451d1a9600d7d41c7bcf324d7e8c276a107e8673", + "size": 10175 + }, + { + "git_blob": "4ab26cbb83beff563b9c3683c593b3efd2495b6b", + "mode": "100644", + "path": "testpilot/recheck.py", + "sha256": "1ecbe0ff7da7bb4a8117d730a76624c8929e0e4b10cb9d502ab7358cb38d8f2e", + "size": 11599 + }, + { + "git_blob": "8ca4a4102c7890e89eae99548e28ba8325974f1e", + "mode": "100644", + "path": "testpilot/sandbox.py", + "sha256": "8d5aadafff5188473ec45eb1cd8f01fb562836ff05bf12a27939cde83b33472a", + "size": 12721 + }, + { + "git_blob": "d8ebce5a81205aad005e45a280aec898e3e89820", + "mode": "100644", + "path": "tests/test_sandbox_deadline.py", + "sha256": "6a9abfdc79bcb2cc3102d94b6b61d20ea09b0f89d5c7c5842387ce77c136d7e1", + "size": 4248 + }, + { + "git_blob": "de2fde7cd5dd683c338810d4707987ea5a2e9055", + "mode": "100644", + "path": "tests/test_sandbox.py", + "sha256": "ee47d6a3f40c2f612197614088ea40cbdd50a7f04047780c95a71e37c1555992", + "size": 2545 + } + ], + "receiving_kind": "Own exact14-file snapshot of current7f44 native source; original ownerf3 execution not relabeled; candidate has not been copied or run.", + "upstream_repository": "Jacob-Met/TestPilot" +} diff --git a/docs/receipts/run-cancellation-18a24bf0c281/independent-generated-phase/static-candidate-review.json b/docs/receipts/run-cancellation-18a24bf0c281/independent-generated-phase/static-candidate-review.json new file mode 100644 index 0000000..e2e98bf --- /dev/null +++ b/docs/receipts/run-cancellation-18a24bf0c281/independent-generated-phase/static-candidate-review.json @@ -0,0 +1,28 @@ +{ + "added_paths": [ + "docs/run-cancellation.md", + "tests/test_sandbox_interrupt.py" + ], + "bare_reraise_preserved": true, + "bounded_wait_seconds": 1.0, + "candidate_commit": "649dc7d1fd02493af298876eea0697849404bba9", + "candidate_executed": false, + "changed_original_paths": [ + "testpilot/sandbox.py" + ], + "handler": " except KeyboardInterrupt:\n if os.name == \"posix\":\n try:\n try:\n os.killpg(proc.pid, signal.SIGKILL)\n except ProcessLookupError:\n pass\n # Reap the leader without draining an escaped helper's pipe.\n proc.wait(timeout=1.0)\n except (OSError, subprocess.TimeoutExpired):\n # Cleanup failure must not replace the caller's cancellation.\n pass\n finally:\n proc.stdout.close()\n raise\n", + "handler_lines": 15, + "inspected_interrupt_calls": [ + "proc.wait(timeout=1.0)", + "proc.stdout.close()", + "os.killpg(proc.pid, signal.SIGKILL)" + ], + "inverse_reconstruction_matches_complete_original": true, + "new_sandbox_blob": "84330f96ebd71b37dc40575fa2ac59ba53cf2a72", + "new_sandbox_sha256": "0adf5eb81f8fd15ca09170c5328e6ff4165e1a0f903221b9730de3b480be0b1b", + "old_sandbox_blob": "8ca4a4102c7890e89eae99548e28ba8325974f1e", + "original_sha256": "8d5aadafff5188473ec45eb1cd8f01fb562836ff05bf12a27939cde83b33472a", + "reconstructed_sha256": "8d5aadafff5188473ec45eb1cd8f01fb562836ff05bf12a27939cde83b33472a", + "retained_loop_blob": "ed0f5f7f057c217b931a1756bd679ae087247e0a", + "unchanged_original_paths": 13 +} diff --git a/docs/receipts/run-cancellation-18a24bf0c281/original-cli-receipt.json b/docs/receipts/run-cancellation-18a24bf0c281/original-cli-receipt.json new file mode 100644 index 0000000..9b458fd --- /dev/null +++ b/docs/receipts/run-cancellation-18a24bf0c281/original-cli-receipt.json @@ -0,0 +1,208 @@ +{ + "canonical_head": "f3b2135cad31852b599350564fe76dd160a6a522", + "source_tree": "d0107a6f8b3b8cc00dadebc5f794060f275f3f5b", + "received_source": "/Users/me/testpilot-cancellation-18a24bf0c281/baseline", + "driver_sha256": "e80ecd44e02f6bc32c0994bc1665c8ed21c86fa6de266f81a2a0043d0d72b16c", + "python": "3.12.8", + "platform": "macOS-26.6.2-arm64-arm-64bit", + "selected_python": "/Users/me/capturesuite-independent-checkpoint-18a24bf0c281/venv/bin/python", + "cases": [ + { + "label": "interrupt", + "argv": [ + "/Users/me/capturesuite-independent-checkpoint-18a24bf0c281/venv/bin/python", + "-m", + "testpilot", + "run", + "--repo", + "/Users/me/testpilot-cancellation-18a24bf0c281/evidence/original-cancellation-v2/interrupt/repo", + "--diff", + "/Users/me/testpilot-cancellation-18a24bf0c281/evidence/original-cancellation-v2/interrupt/change.diff", + "--backend", + "scripted", + "--script", + "/Users/me/testpilot-cancellation-18a24bf0c281/evidence/original-cancellation-v2/interrupt/script", + "--python", + "/Users/me/capturesuite-independent-checkpoint-18a24bf0c281/venv/bin/python", + "--timeout", + "12", + "--rounds", + "0", + "--out", + "/Users/me/testpilot-cancellation-18a24bf0c281/evidence/original-cancellation-v2/interrupt/output" + ], + "exit_code": -2, + "events": [ + { + "event": "pytest_ready", + "testpilot_pid": 74017, + "command_identity": "/opt/homebrew/Cellar/python@3.12/3.12.8/Frameworks/Python.framework/Versions/3.12/Resources/Python.app/Contents/MacOS/Python -m pytest -q -p no:cacheprovider --rootdir /tmp/testpilot-36v1_b2r/repo -o addopts= -o junit_family=xunit2 --junitxml=/tmp/testpilot-36v1_b2r/junit.xml", + "pid": 74029, + "pgid": 74029 + }, + { + "event": "parent_exited_after_sigint", + "returncode": -2, + "elapsed_s": 0.2841661659767851 + }, + { + "event": "post_parent_exit_release", + "pytest_continued": true + }, + { + "event": "owned_pytest_not_running_at_exit", + "pid": 74029 + } + ], + "fixture_before": { + "repo/sample.py": "e77335c804a116a2e8a7445a96ea133bd60d7bbe5361606d933bcb5509392962", + "repo/tests/test_existing.py": "02ca9398271b26a6f8685f6381c74a3cd9aac6c43640e817ba729cc216f8fdd0", + "script/02-generate.md": "9bc8e4cf0d52a79e42edad54a0ca5f1a961483f01e1d9f6707187e1fe11959e8", + "script/01-plan.md": "d537d6c884758129eaca0d0cf72a19d2e6e83d325ad98e4dbceb9cdeede18658" + }, + "fixture_after": { + "repo/sample.py": "e77335c804a116a2e8a7445a96ea133bd60d7bbe5361606d933bcb5509392962", + "repo/tests/test_existing.py": "02ca9398271b26a6f8685f6381c74a3cd9aac6c43640e817ba729cc216f8fdd0", + "script/02-generate.md": "9bc8e4cf0d52a79e42edad54a0ca5f1a961483f01e1d9f6707187e1fe11959e8", + "script/01-plan.md": "d537d6c884758129eaca0d0cf72a19d2e6e83d325ad98e4dbceb9cdeede18658" + }, + "fixture_unchanged": true, + "continued_after_parent_exit": true, + "output_exists": false + }, + { + "label": "ordinary-control", + "argv": [ + "/Users/me/capturesuite-independent-checkpoint-18a24bf0c281/venv/bin/python", + "-m", + "testpilot", + "run", + "--repo", + "/Users/me/testpilot-cancellation-18a24bf0c281/evidence/original-cancellation-v2/ordinary-control/repo", + "--diff", + "/Users/me/testpilot-cancellation-18a24bf0c281/evidence/original-cancellation-v2/ordinary-control/change.diff", + "--backend", + "scripted", + "--script", + "/Users/me/testpilot-cancellation-18a24bf0c281/evidence/original-cancellation-v2/ordinary-control/script", + "--python", + "/Users/me/capturesuite-independent-checkpoint-18a24bf0c281/venv/bin/python", + "--timeout", + "12", + "--rounds", + "0", + "--out", + "/Users/me/testpilot-cancellation-18a24bf0c281/evidence/original-cancellation-v2/ordinary-control/output" + ], + "exit_code": 0, + "events": [ + { + "event": "pytest_ready", + "testpilot_pid": 74134, + "command_identity": "/opt/homebrew/Cellar/python@3.12/3.12.8/Frameworks/Python.framework/Versions/3.12/Resources/Python.app/Contents/MacOS/Python -m pytest -q -p no:cacheprovider --rootdir /tmp/testpilot-hrgp9z6f/repo -o addopts= -o junit_family=xunit2 --junitxml=/tmp/testpilot-hrgp9z6f/junit.xml", + "pid": 74155, + "pgid": 74155 + }, + { + "event": "ordinary_completed", + "returncode": 0, + "status": "passed", + "final": { + "returncode": 0, + "timed_out": false, + "duration_s": 0.202, + "timeout_s": 12.0, + "output": ".. [100%]\n2 passed in 0.08s\n", + "cases": [ + { + "nodeid": "tests.test_existing::test_existing_work", + "outcome": "passed", + "message": "", + "generated_file": null + }, + { + "nodeid": "test_generated_double", + "outcome": "passed", + "message": "", + "generated_file": "tests/test_testpilot_generated.py" + } + ], + "coverage": null, + "generated_files": [ + "tests/test_testpilot_generated.py" + ], + "junit_available": true, + "passed": 2, + "failed": 0, + "errors": 0, + "skipped": 0, + "ok": true, + "summary": "2 passed, 0 failed, 0 errors, 0 skipped (rc=0); generated: 1 passed of 1 collected", + "generated": { + "collected": 1, + "passed": 1, + "failed": 0, + "error": 0, + "skipped": 0 + } + }, + "model_calls": 2 + }, + { + "event": "owned_pytest_not_running_at_exit", + "pid": 74155 + } + ], + "fixture_before": { + "repo/sample.py": "e77335c804a116a2e8a7445a96ea133bd60d7bbe5361606d933bcb5509392962", + "repo/tests/test_existing.py": "f207cbe301faee79170dc177f6982787d9ad8108e216fe72a31ba7fef2a01b70", + "script/02-generate.md": "9bc8e4cf0d52a79e42edad54a0ca5f1a961483f01e1d9f6707187e1fe11959e8", + "script/01-plan.md": "d537d6c884758129eaca0d0cf72a19d2e6e83d325ad98e4dbceb9cdeede18658" + }, + "fixture_after": { + "repo/sample.py": "e77335c804a116a2e8a7445a96ea133bd60d7bbe5361606d933bcb5509392962", + "repo/tests/test_existing.py": "f207cbe301faee79170dc177f6982787d9ad8108e216fe72a31ba7fef2a01b70", + "script/02-generate.md": "9bc8e4cf0d52a79e42edad54a0ca5f1a961483f01e1d9f6707187e1fe11959e8", + "script/01-plan.md": "d537d6c884758129eaca0d0cf72a19d2e6e83d325ad98e4dbceb9cdeede18658" + }, + "fixture_unchanged": true, + "continued_after_parent_exit": null, + "output_exists": true + } + ], + "checks": { + "interrupted_cli_failed_without_publishing_result": true, + "interrupted_pytest_work_stops_before_parent_returns": false, + "ordinary_scripted_run_passes": true, + "all_original_source_bytes_unchanged": true + }, + "source_before": { + "pyproject.toml": "5503eab7b6c145d4de241e5be805a4fb8f30828053cbe39dc05a43c2896642eb", + "README.md": "a75d56db555f787886056157c9d07d625ab18c5f06299561ae9889f3610efe00", + "testpilot/html_report.py": "183703d05f32552f7f7c39aa958c39bae61d824e3fa9cd6a6dd686f0d4c228a4", + "testpilot/__init__.py": "65c63b80d7da34a83a6049a79c24b8335878cd49cc79951fdefc5f1532ae841f", + "testpilot/model.py": "f6ae697f1f5d686ffdcb96f5451d1a9600d7d41c7bcf324d7e8c276a107e8673", + "testpilot/sandbox.py": "8d5aadafff5188473ec45eb1cd8f01fb562836ff05bf12a27939cde83b33472a", + "testpilot/loop.py": "990d6df8b65877e6f25e319771ccad189767575587b4a165f3c3a8e2280c4c93", + "testpilot/diff.py": "2cf38707ea175bb1f04d55335de344ae943458658055332b4aa68f27763214c0", + "testpilot/recheck.py": "1ecbe0ff7da7bb4a8117d730a76624c8929e0e4b10cb9d502ab7358cb38d8f2e", + "testpilot/_pytest_generated.py": "d65352d7bade965d7b9dc73efe5d4d01844fa8c7474a1bdcdb3b708f6decf768", + "testpilot/__main__.py": "90577ea3a939642f5cb29818f6360df96d9fa0d35d05af11bf97054425c32c84", + ".github/workflows/ci.yml": "236fd600bea41471b373b91d8e389aa12c58cba79c83efa071f6ab805f1ebf59" + }, + "source_after": { + "pyproject.toml": "5503eab7b6c145d4de241e5be805a4fb8f30828053cbe39dc05a43c2896642eb", + "README.md": "a75d56db555f787886056157c9d07d625ab18c5f06299561ae9889f3610efe00", + "testpilot/html_report.py": "183703d05f32552f7f7c39aa958c39bae61d824e3fa9cd6a6dd686f0d4c228a4", + "testpilot/__init__.py": "65c63b80d7da34a83a6049a79c24b8335878cd49cc79951fdefc5f1532ae841f", + "testpilot/model.py": "f6ae697f1f5d686ffdcb96f5451d1a9600d7d41c7bcf324d7e8c276a107e8673", + "testpilot/sandbox.py": "8d5aadafff5188473ec45eb1cd8f01fb562836ff05bf12a27939cde83b33472a", + "testpilot/loop.py": "990d6df8b65877e6f25e319771ccad189767575587b4a165f3c3a8e2280c4c93", + "testpilot/diff.py": "2cf38707ea175bb1f04d55335de344ae943458658055332b4aa68f27763214c0", + "testpilot/recheck.py": "1ecbe0ff7da7bb4a8117d730a76624c8929e0e4b10cb9d502ab7358cb38d8f2e", + "testpilot/_pytest_generated.py": "d65352d7bade965d7b9dc73efe5d4d01844fa8c7474a1bdcdb3b708f6decf768", + "testpilot/__main__.py": "90577ea3a939642f5cb29818f6360df96d9fa0d35d05af11bf97054425c32c84", + ".github/workflows/ci.yml": "236fd600bea41471b373b91d8e389aa12c58cba79c83efa071f6ab805f1ebf59" + }, + "scope": "A real SIGINT delivered only to the owned CLI child while its real pytest is active; the pytest fixture is bounded to five seconds and touches only these own fixture paths. No external provider, live task, package installation, production edit or escaped-descendant containment claim." +} diff --git a/docs/receipts/run-cancellation-18a24bf0c281/original-v1.stderr b/docs/receipts/run-cancellation-18a24bf0c281/original-v1.stderr new file mode 100644 index 0000000..7ec1584 --- /dev/null +++ b/docs/receipts/run-cancellation-18a24bf0c281/original-v1.stderr @@ -0,0 +1,11 @@ +Traceback (most recent call last): + File "/Users/me/testpilot-cancellation-18a24bf0c281/receiving/receive_original_cancellation.py", line 194, in + raise SystemExit(main()) + ^^^^^^ + File "/Users/me/testpilot-cancellation-18a24bf0c281/receiving/receive_original_cancellation.py", line 171, in main + ordinary = run_case("ordinary-control", False) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/me/testpilot-cancellation-18a24bf0c281/receiving/receive_original_cancellation.py", line 142, in run_case + "model_calls": len(report["ledger"]["calls"])}) + ~~~~~~~~~~~~~~~~^^^^^^^^^ +KeyError: 'calls' diff --git a/docs/receipts/run-cancellation-18a24bf0c281/original-v2.stdout b/docs/receipts/run-cancellation-18a24bf0c281/original-v2.stdout new file mode 100644 index 0000000..dfa1082 --- /dev/null +++ b/docs/receipts/run-cancellation-18a24bf0c281/original-v2.stdout @@ -0,0 +1 @@ +{"checks": {"interrupted_cli_failed_without_publishing_result": true, "interrupted_pytest_work_stops_before_parent_returns": false, "ordinary_scripted_run_passes": true, "all_original_source_bytes_unchanged": true}, "passed": 3, "total": 4, "interrupted_returncode": -2, "post_cancel_work_observed": true} diff --git a/docs/receipts/run-cancellation-18a24bf0c281/production.patch b/docs/receipts/run-cancellation-18a24bf0c281/production.patch new file mode 100644 index 0000000..e93681c --- /dev/null +++ b/docs/receipts/run-cancellation-18a24bf0c281/production.patch @@ -0,0 +1,31 @@ +--- a/testpilot/sandbox.py ++++ b/testpilot/sandbox.py +@@ -150,12 +150,27 @@ + + + def _run(cmd: list[str], cwd: Path, env: dict, timeout: float) -> tuple[int | None, str, bool]: +- """Collect output, with at most one extra second of POSIX timeout cleanup.""" ++ """Collect output, bounding POSIX timeout and interrupt cleanup.""" + proc = subprocess.Popen(cmd, cwd=cwd, env=env, stdin=subprocess.DEVNULL, stdout=subprocess.PIPE, + stderr=subprocess.STDOUT, text=True, errors="replace", start_new_session=True) + try: + out, _ = proc.communicate(timeout=timeout) + return proc.returncode, out, False ++ except KeyboardInterrupt: ++ if os.name == "posix": ++ try: ++ try: ++ os.killpg(proc.pid, signal.SIGKILL) ++ except ProcessLookupError: ++ pass ++ # Reap the leader without draining an escaped helper's pipe. ++ proc.wait(timeout=1.0) ++ except (OSError, subprocess.TimeoutExpired): ++ # Cleanup failure must not replace the caller's cancellation. ++ pass ++ finally: ++ proc.stdout.close() ++ raise + except subprocess.TimeoutExpired: + try: + os.killpg(proc.pid, signal.SIGKILL) diff --git a/docs/receipts/run-cancellation-18a24bf0c281/proposed-scope.md b/docs/receipts/run-cancellation-18a24bf0c281/proposed-scope.md new file mode 100644 index 0000000..d2d0be2 --- /dev/null +++ b/docs/receipts/run-cancellation-18a24bf0c281/proposed-scope.md @@ -0,0 +1,41 @@ +# Proposed TestPilot cancellation scope + +Contributor: estate-18a24bf0c281 / memory_capability. Root owns central claim and publication. No production source has been edited. + +## Concrete native failure + +The exact original f3b2135cad31852b599350564fe76dd160a6a522 CLI launches pytest through TestPilot.run -> run_pytest -> sandbox._run. _run uses start_new_session=True and handles TimeoutExpired, but not KeyboardInterrupt. A real SIGINT delivered to our own TestPilot CLI while pytest is waiting causes the CLI to exit with -2; the separately launched pytest then performs work after a barrier is released only after the CLI has exited. + +Portable receiver v2 performs two actual CLI actions. Three of four stated predicates pass; the cancellation predicate fails. The uninterrupted ScriptedModel control completes with two passing pytest cases. The original input/source bytes stay unchanged; no result is published for cancellation. Lifecycle receipts confirm both owned pytest groups are not running at receiver exit. The test body has a five-second deadline and cleanup is bounded to owned process identities. + +The first receiver attempt completed both native flows but its aggregate metadata read used ledger.calls instead of the actual ledger.entries. That raw KeyError and all original records remain retained. V2 corrects the metadata key and exposes source/output/interpreter arguments; fixture behavior and the cancellation predicate are unchanged. + +## Current source and ownership + +Fresh main is 7f44c4f134f4d56d37dd14c7c2d2aaa3c8c8749e, tree ea3f7b4170f1515abb7188d31dc269623b9e0738, after output-staging PR34. Its entire sandbox.py is byte-identical to the originally received file, Git blob 8ca4a4102c7890e89eae99548e28ba8325974f1e. PR34 changes only output preparation/publication in loop.py and documentation; candidate receiving must preserve those current bytes. + +The complete original tree has no AGENTS.md. All434 captured HAMON#140 comments, all33 then-existing project issues/PRs, the now-current open list and all23 issue2 comments were checked. No cancellation claimant appeared. Issue2 comment6056815709 explicitly closes the earlier _run timeout scope after PR5. Comment6062429688 releases the competing collector/runtime hold. Current #30 explicit targets and #26/#33 saved-report comparison preserve sandbox; output-staging #29/#34 is now merged. Existing generation, model, collection, JUnit, saved-recheck, output, selector and workflow contracts stay with their source. + +## Exact proposed boundary + +- testpilot/sandbox.py::_run: add cleanup for KeyboardInterrupt during its active process communication; preserve ordinary and TimeoutExpired behavior. +- New tests/test_sandbox_interrupt.py with focused real-process/CLI controls. +- New docs/run-cancellation.md and unique docs/receipts/run-cancellation-18a24bf0c281/ evidence. +- No dependency, CLI/parser, generation/repair, result schema, output-writer, collector or workflow change. + +Contract: when the caller is interrupted during an active POSIX _run call, stop the launched process group and reap its leader with bounded cleanup, then propagate the original KeyboardInterrupt. Cancellation must not become a successful/timeout result, continue into generation/repair, or publish a review result. Ordinary execution and the existing one-second timeout drain contract remain unchanged. + +Qualification will rerun the frozen two-action receiver against an exact current-main candidate. Focused controls must also distinguish a same-group child from an escaped session, preserve the existing timeout branch, and keep cleanup bounded when a pipe is retained. No claim is made for escaped-session containment, SIGKILL/SIGTERM handling, pre-Popen interruption or untested Windows signal behavior. + +## Native custody + +Device: 0e3d582f-e25b-44b2-8418-9639fc4e4e33 (Mac). +Root: /Users/me/testpilot-cancellation-18a24bf0c281. +Source capture: bd0cce5b69967a1fdadad3e0328360b5f268e60a. +Original driver: b1c06cb272cb2398baa4fd2275181c901f09ac43. +V2 driver/source-evidence commit: 24fd75704a581c6332261935903a820dfb92d96a. +V2 driver SHA256: e80ecd44e02f6bc32c0994bc1665c8ed21c86fa6de266f81a2a0043d0d72b16c. +Original12-file source map: evidence/source-intake.json. +Unambiguous negative receipt: evidence/original-cancellation-v2/receipt.json. +Existing interpreter: /Users/me/capturesuite-independent-checkpoint-18a24bf0c281/venv/bin/python. +No new package installation, real developer repository/output, provider, live goal, deployment or other owner's source was involved. diff --git a/docs/receipts/run-cancellation-18a24bf0c281/qualification.json b/docs/receipts/run-cancellation-18a24bf0c281/qualification.json new file mode 100644 index 0000000..388c884 --- /dev/null +++ b/docs/receipts/run-cancellation-18a24bf0c281/qualification.json @@ -0,0 +1,60 @@ +{ + "repository": "Jacob-Met/testpilot", + "issue": "https://github.com/Jacob-Met/testpilot/issues/35", + "base_ref": "main", + "base_sha": "7f44c4f134f4d56d37dd14c7c2d2aaa3c8c8749e", + "base_tree": "ea3f7b4170f1515abb7188d31dc269623b9e0738", + "full_parent_blob_count": 1063, + "source_commit": "649dc7d1fd02493af298876eea0697849404bba9", + "original_evidence_commit": "8aaacedf99c888d27971e7d1cf9751f777961d4d", + "current_parent_commit": "6f81b28a1ccdd09983cc5180595868ed27d4ab3a", + "test_freeze_commit": "d017324348fba8035646b77426aa3b94497d6d89", + "current_red_commit": "fe6adc337ada4421a1e978d58998eec3e8478d43", + "source_paths": [ + "testpilot/sandbox.py", + "tests/test_sandbox_interrupt.py", + "docs/run-cancellation.md" + ], + "original_cli": { + "actions": 2, + "predicates_passed": 3, + "predicates_total": 4, + "head": "f3b2135cad31852b599350564fe76dd160a6a522" + }, + "current_focused": { + "cases": 4, + "failed": 3, + "passed": 1, + "errors": 0 + }, + "candidate_pytest": { + "cases": 18, + "passed": 17, + "skipped": 1, + "skip_reason": "existing coverage test: coverage not installed" + }, + "candidate_cli": { + "actions": 2, + "predicates_passed": 4, + "predicates_total": 4 + }, + "python": "3.12.8 (main, Dec 3 2024, 18:42:41) [Clang 16.0.0 (clang-1600.0.26.4)]", + "platform": "macOS-26.6.2-arm64-arm-64bit", + "pytest": "9.1.1", + "device_id": "0e3d582f-e25b-44b2-8418-9639fc4e4e33", + "native_root": "/Users/me/testpilot-cancellation-18a24bf0c281", + "production_inverse_reconstruction": true, + "all_gate_source_bytes_unchanged": true, + "ownership_evidence_archive_path": "evidence/current-head-ownership.json", + "current_parent_distinction": "f3 discovery and7f current-parent executions are separate; candidate composition sidecar is authoritative over the frozen driver's historical raw f3 labels.", + "preserved_receiver_error": "v1 aggregate ledger.calls KeyError, after both native flows, is retained; v2 fixes only metadata access and exposes paths.", + "scope_limits": [ + "Native macOS POSIX KeyboardInterrupt during initial communication only", + "No escaped-session containment, Windows, SIGTERM/SIGKILL or pre-Popen claim", + "No optimized-Python or whole-repository-suite claim", + "No dependencies installed, live providers, real developer outputs or GitHub writes", + "Publication is a delta over the complete canonical parent tree" + ], + "raw_archive_sha256": "e66b776604382428a7c381f717cc323e4b5d7f00d31d6020553181bfd8bbddd7", + "raw_regular_files_verified": 250 +} diff --git a/docs/receipts/run-cancellation-18a24bf0c281/raw-manifest.json b/docs/receipts/run-cancellation-18a24bf0c281/raw-manifest.json new file mode 100644 index 0000000..f66f168 --- /dev/null +++ b/docs/receipts/run-cancellation-18a24bf0c281/raw-manifest.json @@ -0,0 +1,1858 @@ +{ + "archive": "raw-native.tar.gz", + "archive_bytes": 314629, + "archive_sha256": "e66b776604382428a7c381f717cc323e4b5d7f00d31d6020553181bfd8bbddd7", + "regular_file_count": 250, + "verified_regular_files": 250, + "regular_files": [ + { + "path": "baseline/.github/workflows/ci.yml", + "bytes": 586, + "sha256": "236fd600bea41471b373b91d8e389aa12c58cba79c83efa071f6ab805f1ebf59", + "git_blob": "86a3236e38155506b5fe6077322d508f7f676649", + "mode": "100644" + }, + { + "path": "baseline/README.md", + "bytes": 11550, + "sha256": "a75d56db555f787886056157c9d07d625ab18c5f06299561ae9889f3610efe00", + "git_blob": "eaf87ecdc04aee56e7de8e5ec28ebaec20d0de14", + "mode": "100644" + }, + { + "path": "baseline/pyproject.toml", + "bytes": 676, + "sha256": "5503eab7b6c145d4de241e5be805a4fb8f30828053cbe39dc05a43c2896642eb", + "git_blob": "952255ac87e2c7da57457fdbf3554914f17f6d05", + "mode": "100644" + }, + { + "path": "baseline/testpilot/__init__.py", + "bytes": 390, + "sha256": "65c63b80d7da34a83a6049a79c24b8335878cd49cc79951fdefc5f1532ae841f", + "git_blob": "296210dd0d58703de4a4e4c9ad72a0944c9400ca", + "mode": "100644" + }, + { + "path": "baseline/testpilot/__main__.py", + "bytes": 6065, + "sha256": "90577ea3a939642f5cb29818f6360df96d9fa0d35d05af11bf97054425c32c84", + "git_blob": "2d98e2a85320ac2827ea48fa9d58d30a60354b6a", + "mode": "100644" + }, + { + "path": "baseline/testpilot/_pytest_generated.py", + "bytes": 2943, + "sha256": "d65352d7bade965d7b9dc73efe5d4d01844fa8c7474a1bdcdb3b708f6decf768", + "git_blob": "90b82725bc0eb1ff3d7cb517c4c9dedcfd14bdcc", + "mode": "100644" + }, + { + "path": "baseline/testpilot/diff.py", + "bytes": 9387, + "sha256": "2cf38707ea175bb1f04d55335de344ae943458658055332b4aa68f27763214c0", + "git_blob": "29dd325ab288ac1d43fd70f33b207281f5375d4b", + "mode": "100644" + }, + { + "path": "baseline/testpilot/html_report.py", + "bytes": 20656, + "sha256": "183703d05f32552f7f7c39aa958c39bae61d824e3fa9cd6a6dd686f0d4c228a4", + "git_blob": "bb30d903542d836f5afe8e116ba894f93d9d3a0c", + "mode": "100644" + }, + { + "path": "baseline/testpilot/loop.py", + "bytes": 24064, + "sha256": "990d6df8b65877e6f25e319771ccad189767575587b4a165f3c3a8e2280c4c93", + "git_blob": "3057a9c7c9777a23e73f8b56979670001eb512fd", + "mode": "100644" + }, + { + "path": "baseline/testpilot/model.py", + "bytes": 10175, + "sha256": "f6ae697f1f5d686ffdcb96f5451d1a9600d7d41c7bcf324d7e8c276a107e8673", + "git_blob": "6d4abca38cc1c256df00bcac7923e2dc0bd42b16", + "mode": "100644" + }, + { + "path": "baseline/testpilot/recheck.py", + "bytes": 11599, + "sha256": "1ecbe0ff7da7bb4a8117d730a76624c8929e0e4b10cb9d502ab7358cb38d8f2e", + "git_blob": "4ab26cbb83beff563b9c3683c593b3efd2495b6b", + "mode": "100644" + }, + { + "path": "baseline/testpilot/sandbox.py", + "bytes": 12721, + "sha256": "8d5aadafff5188473ec45eb1cd8f01fb562836ff05bf12a27939cde83b33472a", + "git_blob": "8ca4a4102c7890e89eae99548e28ba8325974f1e", + "mode": "100644" + }, + { + "path": "current-baseline/.github/workflows/ci.yml", + "bytes": 586, + "sha256": "236fd600bea41471b373b91d8e389aa12c58cba79c83efa071f6ab805f1ebf59", + "git_blob": "86a3236e38155506b5fe6077322d508f7f676649", + "mode": "100644" + }, + { + "path": "current-baseline/README.md", + "bytes": 12669, + "sha256": "9e1c93aa93ca1942d002c3bd28779d780b568b606cfa7e001058c13997e34854", + "git_blob": "24a6c0fab34c05d17ef216a42e97a0fae2389fc2", + "mode": "100644" + }, + { + "path": "current-baseline/pyproject.toml", + "bytes": 676, + "sha256": "5503eab7b6c145d4de241e5be805a4fb8f30828053cbe39dc05a43c2896642eb", + "git_blob": "952255ac87e2c7da57457fdbf3554914f17f6d05", + "mode": "100644" + }, + { + "path": "current-baseline/testpilot/__init__.py", + "bytes": 390, + "sha256": "65c63b80d7da34a83a6049a79c24b8335878cd49cc79951fdefc5f1532ae841f", + "git_blob": "296210dd0d58703de4a4e4c9ad72a0944c9400ca", + "mode": "100644" + }, + { + "path": "current-baseline/testpilot/__main__.py", + "bytes": 6065, + "sha256": "90577ea3a939642f5cb29818f6360df96d9fa0d35d05af11bf97054425c32c84", + "git_blob": "2d98e2a85320ac2827ea48fa9d58d30a60354b6a", + "mode": "100644" + }, + { + "path": "current-baseline/testpilot/_pytest_generated.py", + "bytes": 2943, + "sha256": "d65352d7bade965d7b9dc73efe5d4d01844fa8c7474a1bdcdb3b708f6decf768", + "git_blob": "90b82725bc0eb1ff3d7cb517c4c9dedcfd14bdcc", + "mode": "100644" + }, + { + "path": "current-baseline/testpilot/diff.py", + "bytes": 9387, + "sha256": "2cf38707ea175bb1f04d55335de344ae943458658055332b4aa68f27763214c0", + "git_blob": "29dd325ab288ac1d43fd70f33b207281f5375d4b", + "mode": "100644" + }, + { + "path": "current-baseline/testpilot/html_report.py", + "bytes": 20656, + "sha256": "183703d05f32552f7f7c39aa958c39bae61d824e3fa9cd6a6dd686f0d4c228a4", + "git_blob": "bb30d903542d836f5afe8e116ba894f93d9d3a0c", + "mode": "100644" + }, + { + "path": "current-baseline/testpilot/loop.py", + "bytes": 25480, + "sha256": "dde4ee52e0a1fabded9902137ede6dd68aa17f6542c316e5d134b8510495170b", + "git_blob": "ed0f5f7f057c217b931a1756bd679ae087247e0a", + "mode": "100644" + }, + { + "path": "current-baseline/testpilot/model.py", + "bytes": 10175, + "sha256": "f6ae697f1f5d686ffdcb96f5451d1a9600d7d41c7bcf324d7e8c276a107e8673", + "git_blob": "6d4abca38cc1c256df00bcac7923e2dc0bd42b16", + "mode": "100644" + }, + { + "path": "current-baseline/testpilot/recheck.py", + "bytes": 11599, + "sha256": "1ecbe0ff7da7bb4a8117d730a76624c8929e0e4b10cb9d502ab7358cb38d8f2e", + "git_blob": "4ab26cbb83beff563b9c3683c593b3efd2495b6b", + "mode": "100644" + }, + { + "path": "current-baseline/testpilot/sandbox.py", + "bytes": 12721, + "sha256": "8d5aadafff5188473ec45eb1cd8f01fb562836ff05bf12a27939cde83b33472a", + "git_blob": "8ca4a4102c7890e89eae99548e28ba8325974f1e", + "mode": "100644" + }, + { + "path": "current-baseline/tests/test_sandbox.py", + "bytes": 2545, + "sha256": "ee47d6a3f40c2f612197614088ea40cbdd50a7f04047780c95a71e37c1555992", + "git_blob": "de2fde7cd5dd683c338810d4707987ea5a2e9055", + "mode": "100644" + }, + { + "path": "current-baseline/tests/test_sandbox_deadline.py", + "bytes": 4248, + "sha256": "6a9abfdc79bcb2cc3102d94b6b61d20ea09b0f89d5c7c5842387ce77c136d7e1", + "git_blob": "d8ebce5a81205aad005e45a280aec898e3e89820", + "mode": "100644" + }, + { + "path": "candidate/.github/workflows/ci.yml", + "bytes": 586, + "sha256": "236fd600bea41471b373b91d8e389aa12c58cba79c83efa071f6ab805f1ebf59", + "git_blob": "86a3236e38155506b5fe6077322d508f7f676649", + "mode": "100644" + }, + { + "path": "candidate/README.md", + "bytes": 12669, + "sha256": "9e1c93aa93ca1942d002c3bd28779d780b568b606cfa7e001058c13997e34854", + "git_blob": "24a6c0fab34c05d17ef216a42e97a0fae2389fc2", + "mode": "100644" + }, + { + "path": "candidate/docs/run-cancellation.md", + "bytes": 2985, + "sha256": "ab37125e75d03005813477f6ec1703117ca844209a559f289a8be5ee720bf126", + "git_blob": "d8956abb39915e235531c3e217050ccc2089173d", + "mode": "100644" + }, + { + "path": "candidate/pyproject.toml", + "bytes": 676, + "sha256": "5503eab7b6c145d4de241e5be805a4fb8f30828053cbe39dc05a43c2896642eb", + "git_blob": "952255ac87e2c7da57457fdbf3554914f17f6d05", + "mode": "100644" + }, + { + "path": "candidate/testpilot/__init__.py", + "bytes": 390, + "sha256": "65c63b80d7da34a83a6049a79c24b8335878cd49cc79951fdefc5f1532ae841f", + "git_blob": "296210dd0d58703de4a4e4c9ad72a0944c9400ca", + "mode": "100644" + }, + { + "path": "candidate/testpilot/__main__.py", + "bytes": 6065, + "sha256": "90577ea3a939642f5cb29818f6360df96d9fa0d35d05af11bf97054425c32c84", + "git_blob": "2d98e2a85320ac2827ea48fa9d58d30a60354b6a", + "mode": "100644" + }, + { + "path": "candidate/testpilot/_pytest_generated.py", + "bytes": 2943, + "sha256": "d65352d7bade965d7b9dc73efe5d4d01844fa8c7474a1bdcdb3b708f6decf768", + "git_blob": "90b82725bc0eb1ff3d7cb517c4c9dedcfd14bdcc", + "mode": "100644" + }, + { + "path": "candidate/testpilot/diff.py", + "bytes": 9387, + "sha256": "2cf38707ea175bb1f04d55335de344ae943458658055332b4aa68f27763214c0", + "git_blob": "29dd325ab288ac1d43fd70f33b207281f5375d4b", + "mode": "100644" + }, + { + "path": "candidate/testpilot/html_report.py", + "bytes": 20656, + "sha256": "183703d05f32552f7f7c39aa958c39bae61d824e3fa9cd6a6dd686f0d4c228a4", + "git_blob": "bb30d903542d836f5afe8e116ba894f93d9d3a0c", + "mode": "100644" + }, + { + "path": "candidate/testpilot/loop.py", + "bytes": 25480, + "sha256": "dde4ee52e0a1fabded9902137ede6dd68aa17f6542c316e5d134b8510495170b", + "git_blob": "ed0f5f7f057c217b931a1756bd679ae087247e0a", + "mode": "100644" + }, + { + "path": "candidate/testpilot/model.py", + "bytes": 10175, + "sha256": "f6ae697f1f5d686ffdcb96f5451d1a9600d7d41c7bcf324d7e8c276a107e8673", + "git_blob": "6d4abca38cc1c256df00bcac7923e2dc0bd42b16", + "mode": "100644" + }, + { + "path": "candidate/testpilot/recheck.py", + "bytes": 11599, + "sha256": "1ecbe0ff7da7bb4a8117d730a76624c8929e0e4b10cb9d502ab7358cb38d8f2e", + "git_blob": "4ab26cbb83beff563b9c3683c593b3efd2495b6b", + "mode": "100644" + }, + { + "path": "candidate/testpilot/sandbox.py", + "bytes": 13277, + "sha256": "0adf5eb81f8fd15ca09170c5328e6ff4165e1a0f903221b9730de3b480be0b1b", + "git_blob": "84330f96ebd71b37dc40575fa2ac59ba53cf2a72", + "mode": "100644" + }, + { + "path": "candidate/tests/test_sandbox.py", + "bytes": 2545, + "sha256": "ee47d6a3f40c2f612197614088ea40cbdd50a7f04047780c95a71e37c1555992", + "git_blob": "de2fde7cd5dd683c338810d4707987ea5a2e9055", + "mode": "100644" + }, + { + "path": "candidate/tests/test_sandbox_deadline.py", + "bytes": 4248, + "sha256": "6a9abfdc79bcb2cc3102d94b6b61d20ea09b0f89d5c7c5842387ce77c136d7e1", + "git_blob": "d8ebce5a81205aad005e45a280aec898e3e89820", + "mode": "100644" + }, + { + "path": "candidate/tests/test_sandbox_interrupt.py", + "bytes": 6944, + "sha256": "466bbdd470001a5e23e55a1205352dfccc8c714470fe903ff241b28416449325", + "git_blob": "184e969e57fc2a483b6a4e7b1709e16f66ce37e6", + "mode": "100644" + }, + { + "path": "evidence/candidate-cli/interrupt/change.diff", + "bytes": 108, + "sha256": "69cfd2f0d3edc665b15d20f12dffd8e7084a9c7291f8dff4a60ee7699dee3eab", + "git_blob": "8977ac6e9871394a8a3443b12fe7bc03f8f32882", + "mode": "100644" + }, + { + "path": "evidence/candidate-cli/interrupt/cli.stderr", + "bytes": 2147, + "sha256": "acd917d52d10d29554615d8756525142103d053c4221c5fc95b96e72340eaf26", + "git_blob": "ad3bd015ee4aa1260b0c5548939df87091fe1305", + "mode": "100644" + }, + { + "path": "evidence/candidate-cli/interrupt/cli.stdout", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "git_blob": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391", + "mode": "100644" + }, + { + "path": "evidence/candidate-cli/interrupt/lifecycle-events.json", + "bytes": 674, + "sha256": "e33fc39f4ca1e9c0cf451e38a5ff9a3eb48b8b899a671e7a29635b16d4e5c076", + "git_blob": "79378b39b8fbcc44824a9b6f09db4a6e146ca199", + "mode": "100644" + }, + { + "path": "evidence/candidate-cli/interrupt/markers/ready.json", + "bytes": 29, + "sha256": "1879ceaa2b9ca0aff1fe7e66219c4a3fa27d1cafa3e15d57785e871cdea2a648", + "git_blob": "028d84a012a15a7f35b1949a3be1ff01f26e8272", + "mode": "100644" + }, + { + "path": "evidence/candidate-cli/interrupt/markers/release", + "bytes": 47, + "sha256": "3c232dda02357f730c6297a768e9bfd843147a1ef8bafa1c1e9ebc043599cd94", + "git_blob": "9f372410ce531cbcd018f27fee261a78cc9c736a", + "mode": "100644" + }, + { + "path": "evidence/candidate-cli/interrupt/receipt.json", + "bytes": 2438, + "sha256": "93b1dbfce2756fb8d4c70701bbbccde7891b54dca03aea228081386ec8107f99", + "git_blob": "e87902ec6b51ea20ef91c7055c7ae7a65952f11b", + "mode": "100644" + }, + { + "path": "evidence/candidate-cli/interrupt/repo/sample.py", + "bytes": 40, + "sha256": "e77335c804a116a2e8a7445a96ea133bd60d7bbe5361606d933bcb5509392962", + "git_blob": "14e0a6bf9e5b2d205390ce02a09a8c1d8613eef4", + "mode": "100644" + }, + { + "path": "evidence/candidate-cli/interrupt/repo/tests/test_existing.py", + "bytes": 611, + "sha256": "1dd8da4121a47f20d2b8e66da109a26ed76b0fc480c0ad10e10bcadfa97ddc18", + "git_blob": "0530f22112647852371926218a730398fc1e2e94", + "mode": "100644" + }, + { + "path": "evidence/candidate-cli/interrupt/script/01-plan.md", + "bytes": 56, + "sha256": "d537d6c884758129eaca0d0cf72a19d2e6e83d325ad98e4dbceb9cdeede18658", + "git_blob": "4b4b2551f1efdc3fd8e37a81523edcd0cabd2857", + "mode": "100644" + }, + { + "path": "evidence/candidate-cli/interrupt/script/02-generate.md", + "bytes": 129, + "sha256": "9bc8e4cf0d52a79e42edad54a0ca5f1a961483f01e1d9f6707187e1fe11959e8", + "git_blob": "a272bf8e5371691202edb0562d8efb8f4e271809", + "mode": "100644" + }, + { + "path": "evidence/candidate-cli/ordinary-control/change.diff", + "bytes": 108, + "sha256": "69cfd2f0d3edc665b15d20f12dffd8e7084a9c7291f8dff4a60ee7699dee3eab", + "git_blob": "8977ac6e9871394a8a3443b12fe7bc03f8f32882", + "mode": "100644" + }, + { + "path": "evidence/candidate-cli/ordinary-control/cli.stderr", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "git_blob": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391", + "mode": "100644" + }, + { + "path": "evidence/candidate-cli/ordinary-control/cli.stdout", + "bytes": 907, + "sha256": "1f35a2765968f4e9abdb305ab3490e18d121a196d4c520ae77239d8984c075b2", + "git_blob": "f7eac7175f5667e3193a95d4086ec8334c48bdd2", + "mode": "100644" + }, + { + "path": "evidence/candidate-cli/ordinary-control/lifecycle-events.json", + "bytes": 1690, + "sha256": "0be95565dce04b65a70ef360ea5fbf7e4976fee510ad16a91dae4f23325af918", + "git_blob": "4a4729a5fa8ec723e4892810121840a75b1cd165", + "mode": "100644" + }, + { + "path": "evidence/candidate-cli/ordinary-control/markers/continued.json", + "bytes": 49, + "sha256": "a15c49d28b0d2efe1922190785d0f133ac0065d31564d4821e4445d5de7616d2", + "git_blob": "2eb8cd80e22aa5a31a5f8052213b4e36cb6be8a3", + "mode": "100644" + }, + { + "path": "evidence/candidate-cli/ordinary-control/markers/ready.json", + "bytes": 29, + "sha256": "296755dabf5de2c4439285f49093440740b288d8347f90baeaf7704d429fe027", + "git_blob": "8610a2e864f76b824bde3c2694c29b9ce17ab1c9", + "mode": "100644" + }, + { + "path": "evidence/candidate-cli/ordinary-control/markers/release", + "bytes": 28, + "sha256": "6069c83d6bae1d14a00d6b8e9166a4eeb2cdc4d5d9d65313853d7c689de36046", + "git_blob": "c709c39c5babcf603c3e8fc2933d796ec6da933d", + "mode": "100644" + }, + { + "path": "evidence/candidate-cli/ordinary-control/output/report.html", + "bytes": 21293, + "sha256": "877e06f5e38457e5b978d6b1a300be10cf2ba151ea69237e61ab012f215375fb", + "git_blob": "1d3ecb664fd417c0cb256278c247a4f158957c97", + "mode": "100644" + }, + { + "path": "evidence/candidate-cli/ordinary-control/output/report.json", + "bytes": 4490, + "sha256": "9fa27ab38d0cf55a071969a1586e7cef21c685c3142b015854e9913144061ecf", + "git_blob": "c5425497e78271ea56c23b7f4dadd8bbec1c4d65", + "mode": "100644" + }, + { + "path": "evidence/candidate-cli/ordinary-control/output/report.md", + "bytes": 792, + "sha256": "a4f269d240808feb6415ca808833eeb5673400a8c703ee621f739d3f682a4108", + "git_blob": "587cd1fdcc4e563f52eeb392be87e186ef148cdc", + "mode": "100644" + }, + { + "path": "evidence/candidate-cli/ordinary-control/output/testpilot.patch", + "bytes": 294, + "sha256": "b69f003249d3d61bd837cf0135f5de56582a3f3b5b58e6af65ac0ac7a250a74e", + "git_blob": "30338b7fde83da443af7e4fba4cdd78d4c5fbbd7", + "mode": "100644" + }, + { + "path": "evidence/candidate-cli/ordinary-control/receipt.json", + "bytes": 3558, + "sha256": "0e963f443886bddd3d8c23f9dcc162bc987f96d86174fe0cc39ca4f91cff562d", + "git_blob": "23d6577ff4fe1dad3c42b3a7282b9442bce7def2", + "mode": "100644" + }, + { + "path": "evidence/candidate-cli/ordinary-control/repo/sample.py", + "bytes": 40, + "sha256": "e77335c804a116a2e8a7445a96ea133bd60d7bbe5361606d933bcb5509392962", + "git_blob": "14e0a6bf9e5b2d205390ce02a09a8c1d8613eef4", + "mode": "100644" + }, + { + "path": "evidence/candidate-cli/ordinary-control/repo/tests/test_existing.py", + "bytes": 618, + "sha256": "3f5eeb6a8b68465c3f9b1aff8a28bbdd9edacbbd6bf3a170adc99feebd1278d6", + "git_blob": "4029bad3ff74cb9fc35ea7a7bb80aa454fd67d53", + "mode": "100644" + }, + { + "path": "evidence/candidate-cli/ordinary-control/script/01-plan.md", + "bytes": 56, + "sha256": "d537d6c884758129eaca0d0cf72a19d2e6e83d325ad98e4dbceb9cdeede18658", + "git_blob": "4b4b2551f1efdc3fd8e37a81523edcd0cabd2857", + "mode": "100644" + }, + { + "path": "evidence/candidate-cli/ordinary-control/script/02-generate.md", + "bytes": 129, + "sha256": "9bc8e4cf0d52a79e42edad54a0ca5f1a961483f01e1d9f6707187e1fe11959e8", + "git_blob": "a272bf8e5371691202edb0562d8efb8f4e271809", + "mode": "100644" + }, + { + "path": "evidence/candidate-cli/receipt.json", + "bytes": 10823, + "sha256": "dde39c5ceb688d4c04f165b77362e19b66247b5214cf7f289ff9b290a9fcb785", + "git_blob": "2085a157eba487e28bac8b345da3f07c2e9c2772", + "mode": "100644" + }, + { + "path": "evidence/candidate-cli-composition.json", + "bytes": 5523, + "sha256": "48e7382166bb99ab5f4e45c3fb82fc5368fcc9abd6f3f4ceee9b9305bc61e96a", + "git_blob": "9b6cd7d66aaff692356009971a2019bb5523feea", + "mode": "100644" + }, + { + "path": "evidence/candidate-cli.stderr", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "git_blob": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391", + "mode": "100644" + }, + { + "path": "evidence/candidate-cli.stdout", + "bytes": 306, + "sha256": "bd5b7946e22f019a0b6b033beff7aa566781e655a96a96e9ed1b12bf96ca069f", + "git_blob": "bb886d4c487d7e139ec806bca8ca36ab849982d8", + "mode": "100644" + }, + { + "path": "evidence/candidate-sandbox-gate/junit.xml", + "bytes": 2437, + "sha256": "2fa1a8cb8a9ef0be6c91afb6f0e4cc892c58733c2e04b96f5ffab53e352ba452", + "git_blob": "99e411f37e76ce5bd0a5bc967b8ab5c86bd1e577", + "mode": "100644" + }, + { + "path": "evidence/candidate-sandbox-gate/pytest.stderr", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "git_blob": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391", + "mode": "100644" + }, + { + "path": "evidence/candidate-sandbox-gate/pytest.stdout", + "bytes": 1694, + "sha256": "90377ed6a70b2516f23e24108f544af75def2980a7991fd83bb62dc25007f4e0", + "git_blob": "73864201930de820b6a537c4f1b53898acf340a8", + "mode": "100644" + }, + { + "path": "evidence/candidate-sandbox-gate/receipt.json", + "bytes": 6887, + "sha256": "3b1ad54683040546ddbcb520376e0bc6fdec3150871f39a883f6e70bf01488c0", + "git_blob": "374e295581f16b6fb8cd40020788fe3175331e55", + "mode": "100644" + }, + { + "path": "evidence/candidate-sandbox-gate/temporary-fixtures/test_collection_error_counts_a0/m.py", + "bytes": 50, + "sha256": "ab28bbedaeb51ce48b708558fd91f92d6b423033967aac7d9668aa08e0f08bda", + "git_blob": "b2b443cd72f71df32612c93492016d516dc470a9", + "mode": "100644" + }, + { + "path": "evidence/candidate-sandbox-gate/temporary-fixtures/test_collection_error_counts_a0/tests/test_base.py", + "bytes": 53, + "sha256": "a47b79ba4a487f0eb1cc08a34c71a1b2b85e51b92f5ff73dd3062defa3e9f5da", + "git_blob": "68bad7cdccadda7c0eaca5ac17c89c48db54623b", + "mode": "100644" + }, + { + "path": "evidence/candidate-sandbox-gate/temporary-fixtures/test_failure_reported0/m.py", + "bytes": 50, + "sha256": "ab28bbedaeb51ce48b708558fd91f92d6b423033967aac7d9668aa08e0f08bda", + "git_blob": "b2b443cd72f71df32612c93492016d516dc470a9", + "mode": "100644" + }, + { + "path": "evidence/candidate-sandbox-gate/temporary-fixtures/test_failure_reported0/tests/test_base.py", + "bytes": 53, + "sha256": "a47b79ba4a487f0eb1cc08a34c71a1b2b85e51b92f5ff73dd3062defa3e9f5da", + "git_blob": "68bad7cdccadda7c0eaca5ac17c89c48db54623b", + "mode": "100644" + }, + { + "path": "evidence/candidate-sandbox-gate/temporary-fixtures/test_interrupt_does_not_drain_0/child.json", + "bytes": 46, + "sha256": "2dfd637dbf79f7b4ddb5b8e2c277fcbf82931ef8860b9b7ff6e45130ed98e848", + "git_blob": "2b7619e28c675c0e0878dbabd88481f42b23f951", + "mode": "100644" + }, + { + "path": "evidence/candidate-sandbox-gate/temporary-fixtures/test_interrupt_does_not_drain_0/interrupt.json", + "bytes": 89, + "sha256": "0190460fd698d4d1db1345a2928fcc215fcccc399825b67f76f93d6c592552b6", + "git_blob": "473ccc7c8613465b7ccd65afdf45d3b5e8d3129e", + "mode": "100644" + }, + { + "path": "evidence/candidate-sandbox-gate/temporary-fixtures/test_interrupt_does_not_drain_0/leader.json", + "bytes": 47, + "sha256": "f04c668747f40a7a7046ba3379116afc56c48f07e0291876f8c5cbfd4d77e18b", + "git_blob": "1ea2722dc892967ede921fceeabb40a0dde6c154", + "mode": "100644" + }, + { + "path": "evidence/candidate-sandbox-gate/temporary-fixtures/test_interrupt_does_not_drain_0/observed.json", + "bytes": 410, + "sha256": "bb7b66972b89de84652f440ccea5937d1c02c2dd06c3c4125fcc3cb83770e912", + "git_blob": "32f642b29a7467231bf7e64a07da360110094111", + "mode": "100644" + }, + { + "path": "evidence/candidate-sandbox-gate/temporary-fixtures/test_interrupt_does_not_drain_0/ready", + "bytes": 35, + "sha256": "7e9a8f7224bea1edcbb26e571851b78947a780be09332ba52854f91229581c0a", + "git_blob": "887c13ffbc0b11fde2cbe32d26542c34095a3ff6", + "mode": "100644" + }, + { + "path": "evidence/candidate-sandbox-gate/temporary-fixtures/test_interrupt_does_not_drain_0/runner.py", + "bytes": 821, + "sha256": "6189d12e6d113611515867b3962aeb95dd579e17d8e8ff6ed5819712363046c4", + "git_blob": "3a36eef2a4880e644f8de41be9b91ed89d6c0ecc", + "mode": "100644" + }, + { + "path": "evidence/candidate-sandbox-gate/temporary-fixtures/test_interrupt_does_not_drain_0/runner.stderr", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "git_blob": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391", + "mode": "100644" + }, + { + "path": "evidence/candidate-sandbox-gate/temporary-fixtures/test_interrupt_does_not_drain_0/runner.stdout", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "git_blob": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391", + "mode": "100644" + }, + { + "path": "evidence/candidate-sandbox-gate/temporary-fixtures/test_interrupt_does_not_drain_0/worker.py", + "bytes": 756, + "sha256": "0f84d2968c8e3dd897ab0b020164579b30b43bdcfa9b5a4d4625109e5fa50260", + "git_blob": "0a69b22b4dad2f3bb30e2dbdffd9c0cf9ff61300", + "mode": "100644" + }, + { + "path": "evidence/candidate-sandbox-gate/temporary-fixtures/test_interrupt_does_not_drain_1/child.json", + "bytes": 46, + "sha256": "1a845ebc2089c2059025487bdb05b83e12b53f50a365ccf69bde3d393281ceeb", + "git_blob": "b8a9cfaeb5f4036db7dd3a7b087d4c69ebba88c7", + "mode": "100644" + }, + { + "path": "evidence/candidate-sandbox-gate/temporary-fixtures/test_interrupt_does_not_drain_1/interrupt.json", + "bytes": 89, + "sha256": "0190460fd698d4d1db1345a2928fcc215fcccc399825b67f76f93d6c592552b6", + "git_blob": "473ccc7c8613465b7ccd65afdf45d3b5e8d3129e", + "mode": "100644" + }, + { + "path": "evidence/candidate-sandbox-gate/temporary-fixtures/test_interrupt_does_not_drain_1/leader.json", + "bytes": 47, + "sha256": "49b53d6fbdf15ac696c868cd0f7ab5d51b1087536582e4b9c4ce62fb6a67d150", + "git_blob": "b7cb15fb1f3444da1042941c9b8334f2a18042e3", + "mode": "100644" + }, + { + "path": "evidence/candidate-sandbox-gate/temporary-fixtures/test_interrupt_does_not_drain_1/observed.json", + "bytes": 411, + "sha256": "c03b43b496cd3f6dc2fbc6cd1c81704eeb46c3994d4395a3ea894851e93beaca", + "git_blob": "ad70aa11907254a9342719c6b61483d4e480b63f", + "mode": "100644" + }, + { + "path": "evidence/candidate-sandbox-gate/temporary-fixtures/test_interrupt_does_not_drain_1/ready", + "bytes": 35, + "sha256": "7e9a8f7224bea1edcbb26e571851b78947a780be09332ba52854f91229581c0a", + "git_blob": "887c13ffbc0b11fde2cbe32d26542c34095a3ff6", + "mode": "100644" + }, + { + "path": "evidence/candidate-sandbox-gate/temporary-fixtures/test_interrupt_does_not_drain_1/runner.py", + "bytes": 821, + "sha256": "6189d12e6d113611515867b3962aeb95dd579e17d8e8ff6ed5819712363046c4", + "git_blob": "3a36eef2a4880e644f8de41be9b91ed89d6c0ecc", + "mode": "100644" + }, + { + "path": "evidence/candidate-sandbox-gate/temporary-fixtures/test_interrupt_does_not_drain_1/runner.stderr", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "git_blob": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391", + "mode": "100644" + }, + { + "path": "evidence/candidate-sandbox-gate/temporary-fixtures/test_interrupt_does_not_drain_1/runner.stdout", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "git_blob": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391", + "mode": "100644" + }, + { + "path": "evidence/candidate-sandbox-gate/temporary-fixtures/test_interrupt_does_not_drain_1/worker.py", + "bytes": 756, + "sha256": "0f84d2968c8e3dd897ab0b020164579b30b43bdcfa9b5a4d4625109e5fa50260", + "git_blob": "0a69b22b4dad2f3bb30e2dbdffd9c0cf9ff61300", + "mode": "100644" + }, + { + "path": "evidence/candidate-sandbox-gate/temporary-fixtures/test_interrupt_stops_same_grou0/child.json", + "bytes": 46, + "sha256": "95f9269a8c0973e57ea10c2aa7fe61c913ad94e73d641ec118814ef03766cece", + "git_blob": "b11193c397eb139ab62a9cf5c7d908a373e2731a", + "mode": "100644" + }, + { + "path": "evidence/candidate-sandbox-gate/temporary-fixtures/test_interrupt_stops_same_grou0/interrupt.json", + "bytes": 89, + "sha256": "0190460fd698d4d1db1345a2928fcc215fcccc399825b67f76f93d6c592552b6", + "git_blob": "473ccc7c8613465b7ccd65afdf45d3b5e8d3129e", + "mode": "100644" + }, + { + "path": "evidence/candidate-sandbox-gate/temporary-fixtures/test_interrupt_stops_same_grou0/leader.json", + "bytes": 47, + "sha256": "25b375b9134d187157298d31c6015a00de3e56f0327dfdea9da4359eed78dacb", + "git_blob": "f1d2e3ef0467b0cdfd8c91c57ed3303c1d4cd0b2", + "mode": "100644" + }, + { + "path": "evidence/candidate-sandbox-gate/temporary-fixtures/test_interrupt_stops_same_grou0/observed.json", + "bytes": 409, + "sha256": "3c1d68bcaac6265801c8f0ead69a49e1781adda547cfd050c7a4bf3535d45a61", + "git_blob": "ca9f9b540ba9fc8dad691225c9c9a8f1b7b00659", + "mode": "100644" + }, + { + "path": "evidence/candidate-sandbox-gate/temporary-fixtures/test_interrupt_stops_same_grou0/ready", + "bytes": 35, + "sha256": "7e9a8f7224bea1edcbb26e571851b78947a780be09332ba52854f91229581c0a", + "git_blob": "887c13ffbc0b11fde2cbe32d26542c34095a3ff6", + "mode": "100644" + }, + { + "path": "evidence/candidate-sandbox-gate/temporary-fixtures/test_interrupt_stops_same_grou0/runner.py", + "bytes": 821, + "sha256": "6189d12e6d113611515867b3962aeb95dd579e17d8e8ff6ed5819712363046c4", + "git_blob": "3a36eef2a4880e644f8de41be9b91ed89d6c0ecc", + "mode": "100644" + }, + { + "path": "evidence/candidate-sandbox-gate/temporary-fixtures/test_interrupt_stops_same_grou0/runner.stderr", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "git_blob": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391", + "mode": "100644" + }, + { + "path": "evidence/candidate-sandbox-gate/temporary-fixtures/test_interrupt_stops_same_grou0/runner.stdout", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "git_blob": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391", + "mode": "100644" + }, + { + "path": "evidence/candidate-sandbox-gate/temporary-fixtures/test_interrupt_stops_same_grou0/worker.py", + "bytes": 756, + "sha256": "0f84d2968c8e3dd897ab0b020164579b30b43bdcfa9b5a4d4625109e5fa50260", + "git_blob": "0a69b22b4dad2f3bb30e2dbdffd9c0cf9ff61300", + "mode": "100644" + }, + { + "path": "evidence/candidate-sandbox-gate/temporary-fixtures/test_interrupt_stops_same_grou1/child.json", + "bytes": 46, + "sha256": "69130090550675f6906c5fb2a0d77a0ff493e6ecbc1382b76f906104f6d47ece", + "git_blob": "ffb7f22fbdbeb8f7949513790f73c86d6ef6d6dc", + "mode": "100644" + }, + { + "path": "evidence/candidate-sandbox-gate/temporary-fixtures/test_interrupt_stops_same_grou1/interrupt.json", + "bytes": 89, + "sha256": "0190460fd698d4d1db1345a2928fcc215fcccc399825b67f76f93d6c592552b6", + "git_blob": "473ccc7c8613465b7ccd65afdf45d3b5e8d3129e", + "mode": "100644" + }, + { + "path": "evidence/candidate-sandbox-gate/temporary-fixtures/test_interrupt_stops_same_grou1/leader.json", + "bytes": 47, + "sha256": "fb0df87dde1665ee604b4bb19f0f34d52e925215f9a1254717c931a05308005c", + "git_blob": "6abbd96cc936cbea9e290255499677dc8c4bb808", + "mode": "100644" + }, + { + "path": "evidence/candidate-sandbox-gate/temporary-fixtures/test_interrupt_stops_same_grou1/observed.json", + "bytes": 411, + "sha256": "a010f6bcaf138da4d292ec14fcaf263be96383702aa1267f14767bec8ea1a293", + "git_blob": "35abbb2b82d31ddefdb90832f651fcb85d99b7e8", + "mode": "100644" + }, + { + "path": "evidence/candidate-sandbox-gate/temporary-fixtures/test_interrupt_stops_same_grou1/ready", + "bytes": 35, + "sha256": "7e9a8f7224bea1edcbb26e571851b78947a780be09332ba52854f91229581c0a", + "git_blob": "887c13ffbc0b11fde2cbe32d26542c34095a3ff6", + "mode": "100644" + }, + { + "path": "evidence/candidate-sandbox-gate/temporary-fixtures/test_interrupt_stops_same_grou1/runner.py", + "bytes": 821, + "sha256": "6189d12e6d113611515867b3962aeb95dd579e17d8e8ff6ed5819712363046c4", + "git_blob": "3a36eef2a4880e644f8de41be9b91ed89d6c0ecc", + "mode": "100644" + }, + { + "path": "evidence/candidate-sandbox-gate/temporary-fixtures/test_interrupt_stops_same_grou1/runner.stderr", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "git_blob": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391", + "mode": "100644" + }, + { + "path": "evidence/candidate-sandbox-gate/temporary-fixtures/test_interrupt_stops_same_grou1/runner.stdout", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "git_blob": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391", + "mode": "100644" + }, + { + "path": "evidence/candidate-sandbox-gate/temporary-fixtures/test_interrupt_stops_same_grou1/worker.py", + "bytes": 756, + "sha256": "0f84d2968c8e3dd897ab0b020164579b30b43bdcfa9b5a4d4625109e5fa50260", + "git_blob": "0a69b22b4dad2f3bb30e2dbdffd9c0cf9ff61300", + "mode": "100644" + }, + { + "path": "evidence/candidate-sandbox-gate/temporary-fixtures/test_no_tests_is_not_ok0/m.py", + "bytes": 6, + "sha256": "9e26bf369911c45c243c684147b23fc9e1dcfcf257d299a1c632016a6fcd33f4", + "git_blob": "7d4290a117a4ddcc11daae7ea675841033830c8f", + "mode": "100644" + }, + { + "path": "evidence/candidate-sandbox-gate/temporary-fixtures/test_pass_and_isolation0/m.py", + "bytes": 50, + "sha256": "ab28bbedaeb51ce48b708558fd91f92d6b423033967aac7d9668aa08e0f08bda", + "git_blob": "b2b443cd72f71df32612c93492016d516dc470a9", + "mode": "100644" + }, + { + "path": "evidence/candidate-sandbox-gate/temporary-fixtures/test_pass_and_isolation0/tests/test_base.py", + "bytes": 53, + "sha256": "a47b79ba4a487f0eb1cc08a34c71a1b2b85e51b92f5ff73dd3062defa3e9f5da", + "git_blob": "68bad7cdccadda7c0eaca5ac17c89c48db54623b", + "mode": "100644" + }, + { + "path": "evidence/candidate-sandbox-gate/temporary-fixtures/test_real_pytest_timeout_then_0/pytest-helper.pid", + "bytes": 5, + "sha256": "4afcef2a40a6550d7683ce316e1dd7fb4ec191a94685f9bf375bcb78af1b1cb1", + "git_blob": "50dee57a1914a61ed7389e059202735aace80688", + "mode": "100644" + }, + { + "path": "evidence/candidate-sandbox-gate/temporary-fixtures/test_real_pytest_timeout_then_0/source/test_server.py", + "bytes": 41, + "sha256": "cf7055fe9abf2a635acfb2a1b04c795ec18946116e5dbbea7b3068bf5d9f4687", + "git_blob": "c183e8fbfc0d47e482f831a9ca595614498b4ba9", + "mode": "100644" + }, + { + "path": "evidence/candidate-sandbox-gate/temporary-fixtures/test_rejects_escape0/m.py", + "bytes": 50, + "sha256": "ab28bbedaeb51ce48b708558fd91f92d6b423033967aac7d9668aa08e0f08bda", + "git_blob": "b2b443cd72f71df32612c93492016d516dc470a9", + "mode": "100644" + }, + { + "path": "evidence/candidate-sandbox-gate/temporary-fixtures/test_rejects_escape0/tests/test_base.py", + "bytes": 53, + "sha256": "a47b79ba4a487f0eb1cc08a34c71a1b2b85e51b92f5ff73dd3062defa3e9f5da", + "git_blob": "68bad7cdccadda7c0eaca5ac17c89c48db54623b", + "mode": "100644" + }, + { + "path": "evidence/candidate-sandbox-gate/temporary-fixtures/test_timeout_finishes_when_det0/helper.pid", + "bytes": 5, + "sha256": "e65ed87e1d992863200b107e645efc23999f91fe9540eec697381383daecf983", + "git_blob": "8db3e58906bb0d8d9d1ea68f4741840bc6d13e7d", + "mode": "100644" + }, + { + "path": "evidence/candidate-sandbox-gate/temporary-fixtures/test_timeout_finishes_when_det1/helper.pid", + "bytes": 5, + "sha256": "3e6d578712e3852de84fc1f4878756f4208e5aa0d3b423c51c0b6677b23810e3", + "git_blob": "f4ed3c496659ae4335bca1f5e5cf81cd7dc2f6de", + "mode": "100644" + }, + { + "path": "evidence/candidate-sandbox-gate/temporary-fixtures/test_timeout_kills0/m.py", + "bytes": 50, + "sha256": "ab28bbedaeb51ce48b708558fd91f92d6b423033967aac7d9668aa08e0f08bda", + "git_blob": "b2b443cd72f71df32612c93492016d516dc470a9", + "mode": "100644" + }, + { + "path": "evidence/candidate-sandbox-gate/temporary-fixtures/test_timeout_kills0/tests/test_base.py", + "bytes": 53, + "sha256": "a47b79ba4a487f0eb1cc08a34c71a1b2b85e51b92f5ff73dd3062defa3e9f5da", + "git_blob": "68bad7cdccadda7c0eaca5ac17c89c48db54623b", + "mode": "100644" + }, + { + "path": "evidence/candidate-sandbox-gate/temporary-fixtures/test_timeout_preserves_partial0/helper.pid", + "bytes": 5, + "sha256": "e4e6c19cd28997af16e151e8540ff19164fecdaad3ec6b87defcf89625cb5679", + "git_blob": "5c2ab0fd3af3b4d33a6bb9cd7d6069d485c9ec94", + "mode": "100644" + }, + { + "path": "evidence/candidate-source-freeze.json", + "bytes": 4121, + "sha256": "81e6afefa1c48adb448bf2b59aa3674940817251aff5aedb39812ec7b72adea8", + "git_blob": "ccc0de3d637d2e5c14f4f7e8b4f0e5b665f275b3", + "mode": "100644" + }, + { + "path": "evidence/current-baseline-focused/junit.xml", + "bytes": 4147, + "sha256": "4de01ac95f3d09c573088de4645ff28fcd55a9caa5b4796bfa8c61d786f667fc", + "git_blob": "fdad8b8b7f2f979393d21b33ce34c58cce6c439e", + "mode": "100644" + }, + { + "path": "evidence/current-baseline-focused/pytest.stderr", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "git_blob": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391", + "mode": "100644" + }, + { + "path": "evidence/current-baseline-focused/pytest.stdout", + "bytes": 3572, + "sha256": "f2723bb61c2390d45054ac6a48409bd00a5c07ea46aab1bd64c6a76b6847697f", + "git_blob": "36165fb6307abc4fe41c24ef57ef5deae24c0b61", + "mode": "100644" + }, + { + "path": "evidence/current-baseline-focused/receipt.json", + "bytes": 4780, + "sha256": "0c5251ee9431acce77539e624ce40b7eba199f13a0c066a1b5e5455e01042ae4", + "git_blob": "002d058626f4a378d5b603f7318dee7a8b97a6c3", + "mode": "100644" + }, + { + "path": "evidence/current-baseline-focused/temporary-fixtures/test_interrupt_does_not_drain_0/child.json", + "bytes": 46, + "sha256": "e534c410d718be3a08b52297d526d6a24e6d064cfff48630ff3225d7cb55230d", + "git_blob": "e53b66ac3d446f49686285105d7caccee1f86db3", + "mode": "100644" + }, + { + "path": "evidence/current-baseline-focused/temporary-fixtures/test_interrupt_does_not_drain_0/interrupt.json", + "bytes": 92, + "sha256": "c47016d3b05830051e2facc7295ca5e302cda790224dfde2bbe31a2f02769ad4", + "git_blob": "132c0f77f80381bbd4a93b588281943f94ef8076", + "mode": "100644" + }, + { + "path": "evidence/current-baseline-focused/temporary-fixtures/test_interrupt_does_not_drain_0/leader.json", + "bytes": 47, + "sha256": "adfe5faf55819163d41c2fb5a941de84ddef39ab22f94e47703fd0f825ae3887", + "git_blob": "29e7c6a76f80831bc5645d5169293a8c5390ee2b", + "mode": "100644" + }, + { + "path": "evidence/current-baseline-focused/temporary-fixtures/test_interrupt_does_not_drain_0/observed.json", + "bytes": 430, + "sha256": "8e7dca4f26769fea12dae07dd471d0733b30ac299dce605f03b50cc5c888525b", + "git_blob": "47f33e8af8da37981f27d16ec4f0c8af0e20009a", + "mode": "100644" + }, + { + "path": "evidence/current-baseline-focused/temporary-fixtures/test_interrupt_does_not_drain_0/ready", + "bytes": 35, + "sha256": "7e9a8f7224bea1edcbb26e571851b78947a780be09332ba52854f91229581c0a", + "git_blob": "887c13ffbc0b11fde2cbe32d26542c34095a3ff6", + "mode": "100644" + }, + { + "path": "evidence/current-baseline-focused/temporary-fixtures/test_interrupt_does_not_drain_0/runner.py", + "bytes": 821, + "sha256": "6189d12e6d113611515867b3962aeb95dd579e17d8e8ff6ed5819712363046c4", + "git_blob": "3a36eef2a4880e644f8de41be9b91ed89d6c0ecc", + "mode": "100644" + }, + { + "path": "evidence/current-baseline-focused/temporary-fixtures/test_interrupt_does_not_drain_0/runner.stderr", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "git_blob": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391", + "mode": "100644" + }, + { + "path": "evidence/current-baseline-focused/temporary-fixtures/test_interrupt_does_not_drain_0/runner.stdout", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "git_blob": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391", + "mode": "100644" + }, + { + "path": "evidence/current-baseline-focused/temporary-fixtures/test_interrupt_does_not_drain_0/worker.py", + "bytes": 756, + "sha256": "0f84d2968c8e3dd897ab0b020164579b30b43bdcfa9b5a4d4625109e5fa50260", + "git_blob": "0a69b22b4dad2f3bb30e2dbdffd9c0cf9ff61300", + "mode": "100644" + }, + { + "path": "evidence/current-baseline-focused/temporary-fixtures/test_interrupt_does_not_drain_1/child.json", + "bytes": 46, + "sha256": "41ed7a32e9e570aeb643ee58765ba57b28fa1b384923fc7961b34ac52442a539", + "git_blob": "81d45e6791e8406dc1c4038a70c4a39241812c01", + "mode": "100644" + }, + { + "path": "evidence/current-baseline-focused/temporary-fixtures/test_interrupt_does_not_drain_1/interrupt.json", + "bytes": 89, + "sha256": "0190460fd698d4d1db1345a2928fcc215fcccc399825b67f76f93d6c592552b6", + "git_blob": "473ccc7c8613465b7ccd65afdf45d3b5e8d3129e", + "mode": "100644" + }, + { + "path": "evidence/current-baseline-focused/temporary-fixtures/test_interrupt_does_not_drain_1/leader.json", + "bytes": 47, + "sha256": "2e3c72af6e163e6b5743c3a1cea3ba3bf970c209cb6ee8b302840f56e0031bfe", + "git_blob": "b76757ff2943bf9aacfd386d4e89f4b03f2785d0", + "mode": "100644" + }, + { + "path": "evidence/current-baseline-focused/temporary-fixtures/test_interrupt_does_not_drain_1/observed.json", + "bytes": 411, + "sha256": "cd41d1460381ae5956fc8d5bcb76c048ac61472beef0c86883e9253f057a5f38", + "git_blob": "514f13ed9c5f9da7bed7ad0cb7e602498cf28ab2", + "mode": "100644" + }, + { + "path": "evidence/current-baseline-focused/temporary-fixtures/test_interrupt_does_not_drain_1/ready", + "bytes": 35, + "sha256": "7e9a8f7224bea1edcbb26e571851b78947a780be09332ba52854f91229581c0a", + "git_blob": "887c13ffbc0b11fde2cbe32d26542c34095a3ff6", + "mode": "100644" + }, + { + "path": "evidence/current-baseline-focused/temporary-fixtures/test_interrupt_does_not_drain_1/runner.py", + "bytes": 821, + "sha256": "6189d12e6d113611515867b3962aeb95dd579e17d8e8ff6ed5819712363046c4", + "git_blob": "3a36eef2a4880e644f8de41be9b91ed89d6c0ecc", + "mode": "100644" + }, + { + "path": "evidence/current-baseline-focused/temporary-fixtures/test_interrupt_does_not_drain_1/runner.stderr", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "git_blob": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391", + "mode": "100644" + }, + { + "path": "evidence/current-baseline-focused/temporary-fixtures/test_interrupt_does_not_drain_1/runner.stdout", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "git_blob": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391", + "mode": "100644" + }, + { + "path": "evidence/current-baseline-focused/temporary-fixtures/test_interrupt_does_not_drain_1/worker.py", + "bytes": 756, + "sha256": "0f84d2968c8e3dd897ab0b020164579b30b43bdcfa9b5a4d4625109e5fa50260", + "git_blob": "0a69b22b4dad2f3bb30e2dbdffd9c0cf9ff61300", + "mode": "100644" + }, + { + "path": "evidence/current-baseline-focused/temporary-fixtures/test_interrupt_stops_same_grou0/child.json", + "bytes": 46, + "sha256": "fae4c9a09472264e83fecce504b1961c19ced10ac6cd1a8d5b4863657e57c229", + "git_blob": "e760f126dd9c7eedb5bcad4c50666ecfbcf9921a", + "mode": "100644" + }, + { + "path": "evidence/current-baseline-focused/temporary-fixtures/test_interrupt_stops_same_grou0/interrupt.json", + "bytes": 92, + "sha256": "c47016d3b05830051e2facc7295ca5e302cda790224dfde2bbe31a2f02769ad4", + "git_blob": "132c0f77f80381bbd4a93b588281943f94ef8076", + "mode": "100644" + }, + { + "path": "evidence/current-baseline-focused/temporary-fixtures/test_interrupt_stops_same_grou0/leader.json", + "bytes": 47, + "sha256": "fd53a50fe57f5db3034b9b64674960aef5d41155b256ddf65f969113c22c6504", + "git_blob": "be911139fac9ac406d5eb9576963b6ca8f300ad2", + "mode": "100644" + }, + { + "path": "evidence/current-baseline-focused/temporary-fixtures/test_interrupt_stops_same_grou0/observed.json", + "bytes": 429, + "sha256": "2d60a94acc78db774b4597d3289c0d30b83a20379c84f2a10ceaa296cdeacac3", + "git_blob": "31dde1e2ba6948278121c0ff5a389ee351f0c4f1", + "mode": "100644" + }, + { + "path": "evidence/current-baseline-focused/temporary-fixtures/test_interrupt_stops_same_grou0/ready", + "bytes": 35, + "sha256": "7e9a8f7224bea1edcbb26e571851b78947a780be09332ba52854f91229581c0a", + "git_blob": "887c13ffbc0b11fde2cbe32d26542c34095a3ff6", + "mode": "100644" + }, + { + "path": "evidence/current-baseline-focused/temporary-fixtures/test_interrupt_stops_same_grou0/runner.py", + "bytes": 821, + "sha256": "6189d12e6d113611515867b3962aeb95dd579e17d8e8ff6ed5819712363046c4", + "git_blob": "3a36eef2a4880e644f8de41be9b91ed89d6c0ecc", + "mode": "100644" + }, + { + "path": "evidence/current-baseline-focused/temporary-fixtures/test_interrupt_stops_same_grou0/runner.stderr", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "git_blob": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391", + "mode": "100644" + }, + { + "path": "evidence/current-baseline-focused/temporary-fixtures/test_interrupt_stops_same_grou0/runner.stdout", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "git_blob": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391", + "mode": "100644" + }, + { + "path": "evidence/current-baseline-focused/temporary-fixtures/test_interrupt_stops_same_grou0/worker.py", + "bytes": 756, + "sha256": "0f84d2968c8e3dd897ab0b020164579b30b43bdcfa9b5a4d4625109e5fa50260", + "git_blob": "0a69b22b4dad2f3bb30e2dbdffd9c0cf9ff61300", + "mode": "100644" + }, + { + "path": "evidence/current-baseline-focused/temporary-fixtures/test_interrupt_stops_same_grou1/child.json", + "bytes": 46, + "sha256": "92e294ba788a28723c6fc8a61908a173f2554376edb57aff6444f19416429c1b", + "git_blob": "1b899ddb30e6ba280163511837f7f09b42a2945a", + "mode": "100644" + }, + { + "path": "evidence/current-baseline-focused/temporary-fixtures/test_interrupt_stops_same_grou1/interrupt.json", + "bytes": 89, + "sha256": "0190460fd698d4d1db1345a2928fcc215fcccc399825b67f76f93d6c592552b6", + "git_blob": "473ccc7c8613465b7ccd65afdf45d3b5e8d3129e", + "mode": "100644" + }, + { + "path": "evidence/current-baseline-focused/temporary-fixtures/test_interrupt_stops_same_grou1/leader.json", + "bytes": 47, + "sha256": "090a89931972b7ed3a34198501a166102d51282f8be1925d1c10064bb8932bc0", + "git_blob": "7c18e9fa4d2fb16c43cf0683812bd09806364e33", + "mode": "100644" + }, + { + "path": "evidence/current-baseline-focused/temporary-fixtures/test_interrupt_stops_same_grou1/observed.json", + "bytes": 410, + "sha256": "c132c2c0004503d1becb72f5542aa46062cbb0a2a9bb8129b129c0ac97c85c29", + "git_blob": "35a297599c8a3955620ad25936cf496d8cdba882", + "mode": "100644" + }, + { + "path": "evidence/current-baseline-focused/temporary-fixtures/test_interrupt_stops_same_grou1/ready", + "bytes": 35, + "sha256": "7e9a8f7224bea1edcbb26e571851b78947a780be09332ba52854f91229581c0a", + "git_blob": "887c13ffbc0b11fde2cbe32d26542c34095a3ff6", + "mode": "100644" + }, + { + "path": "evidence/current-baseline-focused/temporary-fixtures/test_interrupt_stops_same_grou1/runner.py", + "bytes": 821, + "sha256": "6189d12e6d113611515867b3962aeb95dd579e17d8e8ff6ed5819712363046c4", + "git_blob": "3a36eef2a4880e644f8de41be9b91ed89d6c0ecc", + "mode": "100644" + }, + { + "path": "evidence/current-baseline-focused/temporary-fixtures/test_interrupt_stops_same_grou1/runner.stderr", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "git_blob": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391", + "mode": "100644" + }, + { + "path": "evidence/current-baseline-focused/temporary-fixtures/test_interrupt_stops_same_grou1/runner.stdout", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "git_blob": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391", + "mode": "100644" + }, + { + "path": "evidence/current-baseline-focused/temporary-fixtures/test_interrupt_stops_same_grou1/worker.py", + "bytes": 756, + "sha256": "0f84d2968c8e3dd897ab0b020164579b30b43bdcfa9b5a4d4625109e5fa50260", + "git_blob": "0a69b22b4dad2f3bb30e2dbdffd9c0cf9ff61300", + "mode": "100644" + }, + { + "path": "evidence/current-head-ownership.json", + "bytes": 167898, + "sha256": "ba0abda4c7c05a74f61e480e18b7a58ee9572f781c36e50a30a0a1dd57c2cb29", + "git_blob": "1bec5587168f01539570670c094eda2a5d96c716", + "mode": "100644" + }, + { + "path": "evidence/current-parent-source.json", + "bytes": 3954, + "sha256": "4db841871444b2da152e1c158926f8de4fbd6dba7151f8b65d07f814eae16336", + "git_blob": "bf6c3f7cfd933e627d93d3962d6e3fa05ac88f70", + "mode": "100644" + }, + { + "path": "evidence/current-project-issues.json", + "bytes": 6149, + "sha256": "d5a3ee2845ebe19f35447a704367e8cb23a9000ce15eb55e29738db34df01102", + "git_blob": "51726ef92061c6f19656d31c5acec5ce73148133", + "mode": "100644" + }, + { + "path": "evidence/focused-test-baseline-freeze.json", + "bytes": 3368, + "sha256": "be2e7ade358f38f5b9ad196f591b05ca4128843da6eddcc0582bf6b92245285c", + "git_blob": "80dab7fa1b72df0fbada5d957fb518062f5a3db8", + "mode": "100644" + }, + { + "path": "evidence/original-cancellation/interrupt/change.diff", + "bytes": 108, + "sha256": "69cfd2f0d3edc665b15d20f12dffd8e7084a9c7291f8dff4a60ee7699dee3eab", + "git_blob": "8977ac6e9871394a8a3443b12fe7bc03f8f32882", + "mode": "100644" + }, + { + "path": "evidence/original-cancellation/interrupt/cli.stderr", + "bytes": 2141, + "sha256": "0e5a9f74d5a2be6db10719240c3d132cd1739c4d86bec1e9c9bbd4a49d3981b6", + "git_blob": "ed08a0d88031925f5c79bec235918e525fac86f7", + "mode": "100644" + }, + { + "path": "evidence/original-cancellation/interrupt/cli.stdout", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "git_blob": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391", + "mode": "100644" + }, + { + "path": "evidence/original-cancellation/interrupt/lifecycle-events.json", + "bytes": 674, + "sha256": "f47652d67f24f96ebc2095a9af1d7c2f13b33f428ffee9f407b8cadc6dd7aa0e", + "git_blob": "97d153d666301ae8a6c8ee561a6fe530f629d8f7", + "mode": "100644" + }, + { + "path": "evidence/original-cancellation/interrupt/markers/continued.json", + "bytes": 49, + "sha256": "ff307a79060205c4cb115c2848ea426ef819b2a48f3e0892e1e5cf7679091053", + "git_blob": "03ffc1b4f648a9cf606624c5526ff0e99fb2e064", + "mode": "100644" + }, + { + "path": "evidence/original-cancellation/interrupt/markers/ready.json", + "bytes": 29, + "sha256": "d9c94f8c95890fd7515dcbd3b7b265b83ef70e8946a09360f5e971025b44a3a7", + "git_blob": "c910ac438b3f7ff8100976c479681ffe4a4c34a0", + "mode": "100644" + }, + { + "path": "evidence/original-cancellation/interrupt/markers/release", + "bytes": 47, + "sha256": "3c232dda02357f730c6297a768e9bfd843147a1ef8bafa1c1e9ebc043599cd94", + "git_blob": "9f372410ce531cbcd018f27fee261a78cc9c736a", + "mode": "100644" + }, + { + "path": "evidence/original-cancellation/interrupt/receipt.json", + "bytes": 2469, + "sha256": "c4d89918dd5a16f6efecb5843f294e1dca90e0feae508111ab7307af2cce562d", + "git_blob": "f4f37619b7abff23282df97d913cdcbc90c50d75", + "mode": "100644" + }, + { + "path": "evidence/original-cancellation/interrupt/repo/sample.py", + "bytes": 40, + "sha256": "e77335c804a116a2e8a7445a96ea133bd60d7bbe5361606d933bcb5509392962", + "git_blob": "14e0a6bf9e5b2d205390ce02a09a8c1d8613eef4", + "mode": "100644" + }, + { + "path": "evidence/original-cancellation/interrupt/repo/tests/test_existing.py", + "bytes": 619, + "sha256": "ab4f4c6d20461a0cf7b3d487a427ea3b13947f34ae381bb8d28b368784e80986", + "git_blob": "62ca22d967f5ac1db30516be9721e4282e0736f0", + "mode": "100644" + }, + { + "path": "evidence/original-cancellation/interrupt/script/01-plan.md", + "bytes": 56, + "sha256": "d537d6c884758129eaca0d0cf72a19d2e6e83d325ad98e4dbceb9cdeede18658", + "git_blob": "4b4b2551f1efdc3fd8e37a81523edcd0cabd2857", + "mode": "100644" + }, + { + "path": "evidence/original-cancellation/interrupt/script/02-generate.md", + "bytes": 129, + "sha256": "9bc8e4cf0d52a79e42edad54a0ca5f1a961483f01e1d9f6707187e1fe11959e8", + "git_blob": "a272bf8e5371691202edb0562d8efb8f4e271809", + "mode": "100644" + }, + { + "path": "evidence/original-cancellation/ordinary-control/change.diff", + "bytes": 108, + "sha256": "69cfd2f0d3edc665b15d20f12dffd8e7084a9c7291f8dff4a60ee7699dee3eab", + "git_blob": "8977ac6e9871394a8a3443b12fe7bc03f8f32882", + "mode": "100644" + }, + { + "path": "evidence/original-cancellation/ordinary-control/cli.stderr", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "git_blob": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391", + "mode": "100644" + }, + { + "path": "evidence/original-cancellation/ordinary-control/cli.stdout", + "bytes": 939, + "sha256": "4b11940dcaadbf24edb231656c6b2b1fa5fdf12ee649ea359aa34d31dc70379f", + "git_blob": "d8236d56cd45567126e0424bff0834b36d08eb0a", + "mode": "100644" + }, + { + "path": "evidence/original-cancellation/ordinary-control/lifecycle-events.json", + "bytes": 484, + "sha256": "d6d1bd3137a7e87d4f0d34a32d8212b68d89b12cca846a1ac59778503eb10e25", + "git_blob": "53118e01d4f8f363356747a90ce4aeb149b1b982", + "mode": "100644" + }, + { + "path": "evidence/original-cancellation/ordinary-control/markers/continued.json", + "bytes": 49, + "sha256": "5b0a744dc6ca4f16f66e73d3f28187043ce792d2e5012c5908804e359aa5bde4", + "git_blob": "98953267cf31443aa5b0f8c5f4a983f931250ab2", + "mode": "100644" + }, + { + "path": "evidence/original-cancellation/ordinary-control/markers/ready.json", + "bytes": 29, + "sha256": "ade658654a65cfeb81df414742a7c55ef05df14de57deacc7497652fc216e6d0", + "git_blob": "a8930d19c0d3a00650eb17a4d5cecc6883e5907a", + "mode": "100644" + }, + { + "path": "evidence/original-cancellation/ordinary-control/markers/release", + "bytes": 28, + "sha256": "6069c83d6bae1d14a00d6b8e9166a4eeb2cdc4d5d9d65313853d7c689de36046", + "git_blob": "c709c39c5babcf603c3e8fc2933d796ec6da933d", + "mode": "100644" + }, + { + "path": "evidence/original-cancellation/ordinary-control/output/report.html", + "bytes": 21293, + "sha256": "fb9a9905ed9a21dbda7b3d05bc2422f0bf0ae84ff01d313b701017ffa8516b31", + "git_blob": "023e5060eb5ecab2b2962430b8da5bf6533c00d6", + "mode": "100644" + }, + { + "path": "evidence/original-cancellation/ordinary-control/output/report.json", + "bytes": 4490, + "sha256": "8ec5712581799787982efeb61d48c0f320d098611af3d484d86acf9e86f607b9", + "git_blob": "a286078510e1f58faa0aa7ac1f9dc140b062cf09", + "mode": "100644" + }, + { + "path": "evidence/original-cancellation/ordinary-control/output/report.md", + "bytes": 792, + "sha256": "8419fc76f8df9334a43d9451a707d74aeb24d84c5ffc90f59a4275d2547b27b1", + "git_blob": "eca01fc4527d43ed2c442381eaef26fcf293cd4a", + "mode": "100644" + }, + { + "path": "evidence/original-cancellation/ordinary-control/output/testpilot.patch", + "bytes": 294, + "sha256": "b69f003249d3d61bd837cf0135f5de56582a3f3b5b58e6af65ac0ac7a250a74e", + "git_blob": "30338b7fde83da443af7e4fba4cdd78d4c5fbbd7", + "mode": "100644" + }, + { + "path": "evidence/original-cancellation/ordinary-control/repo/sample.py", + "bytes": 40, + "sha256": "e77335c804a116a2e8a7445a96ea133bd60d7bbe5361606d933bcb5509392962", + "git_blob": "14e0a6bf9e5b2d205390ce02a09a8c1d8613eef4", + "mode": "100644" + }, + { + "path": "evidence/original-cancellation/ordinary-control/repo/tests/test_existing.py", + "bytes": 626, + "sha256": "2fb0d7b5f8582264b9d64a45c643120ac735eb1130d1fead97691c55a49f92a3", + "git_blob": "9b7420ccae4dc09aaf97a8a62a06ff3520398676", + "mode": "100644" + }, + { + "path": "evidence/original-cancellation/ordinary-control/script/01-plan.md", + "bytes": 56, + "sha256": "d537d6c884758129eaca0d0cf72a19d2e6e83d325ad98e4dbceb9cdeede18658", + "git_blob": "4b4b2551f1efdc3fd8e37a81523edcd0cabd2857", + "mode": "100644" + }, + { + "path": "evidence/original-cancellation/ordinary-control/script/02-generate.md", + "bytes": 129, + "sha256": "9bc8e4cf0d52a79e42edad54a0ca5f1a961483f01e1d9f6707187e1fe11959e8", + "git_blob": "a272bf8e5371691202edb0562d8efb8f4e271809", + "mode": "100644" + }, + { + "path": "evidence/original-cancellation-v2/interrupt/change.diff", + "bytes": 108, + "sha256": "69cfd2f0d3edc665b15d20f12dffd8e7084a9c7291f8dff4a60ee7699dee3eab", + "git_blob": "8977ac6e9871394a8a3443b12fe7bc03f8f32882", + "mode": "100644" + }, + { + "path": "evidence/original-cancellation-v2/interrupt/cli.stderr", + "bytes": 2141, + "sha256": "0e5a9f74d5a2be6db10719240c3d132cd1739c4d86bec1e9c9bbd4a49d3981b6", + "git_blob": "ed08a0d88031925f5c79bec235918e525fac86f7", + "mode": "100644" + }, + { + "path": "evidence/original-cancellation-v2/interrupt/cli.stdout", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "git_blob": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391", + "mode": "100644" + }, + { + "path": "evidence/original-cancellation-v2/interrupt/lifecycle-events.json", + "bytes": 673, + "sha256": "13847b5a96cf9b2131ece9813cfad503d619f1a298a5e00aea747f195ab17a8d", + "git_blob": "e7d2bfa3c66dc0f0a8201111f02b2041d5a92048", + "mode": "100644" + }, + { + "path": "evidence/original-cancellation-v2/interrupt/markers/continued.json", + "bytes": 49, + "sha256": "048928bed9800d4602143e39b4dfc2f2b216459f40239b693d589ce733c26545", + "git_blob": "8670aec2e555a25239abf20cf6f826c499827cf3", + "mode": "100644" + }, + { + "path": "evidence/original-cancellation-v2/interrupt/markers/ready.json", + "bytes": 29, + "sha256": "be1acdcfb07a9c52cce1af00740fcf237ef062f3ab19e269f91c15ed257bdecf", + "git_blob": "1c55dcdd0b4924728e3d462e16f87e2c275bc05b", + "mode": "100644" + }, + { + "path": "evidence/original-cancellation-v2/interrupt/markers/release", + "bytes": 47, + "sha256": "3c232dda02357f730c6297a768e9bfd843147a1ef8bafa1c1e9ebc043599cd94", + "git_blob": "9f372410ce531cbcd018f27fee261a78cc9c736a", + "mode": "100644" + }, + { + "path": "evidence/original-cancellation-v2/interrupt/receipt.json", + "bytes": 2480, + "sha256": "632703c270e2e5efe6d62d1f2dc41b014fde1d73f52b47e8a914123a7592e474", + "git_blob": "af0cac054779ac718153d0fa2581595f23f6b28e", + "mode": "100644" + }, + { + "path": "evidence/original-cancellation-v2/interrupt/repo/sample.py", + "bytes": 40, + "sha256": "e77335c804a116a2e8a7445a96ea133bd60d7bbe5361606d933bcb5509392962", + "git_blob": "14e0a6bf9e5b2d205390ce02a09a8c1d8613eef4", + "mode": "100644" + }, + { + "path": "evidence/original-cancellation-v2/interrupt/repo/tests/test_existing.py", + "bytes": 622, + "sha256": "02ca9398271b26a6f8685f6381c74a3cd9aac6c43640e817ba729cc216f8fdd0", + "git_blob": "6e192b5dfc4829d986f2f285eecdfe7883d43e17", + "mode": "100644" + }, + { + "path": "evidence/original-cancellation-v2/interrupt/script/01-plan.md", + "bytes": 56, + "sha256": "d537d6c884758129eaca0d0cf72a19d2e6e83d325ad98e4dbceb9cdeede18658", + "git_blob": "4b4b2551f1efdc3fd8e37a81523edcd0cabd2857", + "mode": "100644" + }, + { + "path": "evidence/original-cancellation-v2/interrupt/script/02-generate.md", + "bytes": 129, + "sha256": "9bc8e4cf0d52a79e42edad54a0ca5f1a961483f01e1d9f6707187e1fe11959e8", + "git_blob": "a272bf8e5371691202edb0562d8efb8f4e271809", + "mode": "100644" + }, + { + "path": "evidence/original-cancellation-v2/ordinary-control/change.diff", + "bytes": 108, + "sha256": "69cfd2f0d3edc665b15d20f12dffd8e7084a9c7291f8dff4a60ee7699dee3eab", + "git_blob": "8977ac6e9871394a8a3443b12fe7bc03f8f32882", + "mode": "100644" + }, + { + "path": "evidence/original-cancellation-v2/ordinary-control/cli.stderr", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "git_blob": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391", + "mode": "100644" + }, + { + "path": "evidence/original-cancellation-v2/ordinary-control/cli.stdout", + "bytes": 951, + "sha256": "4f3c14976428387e7016a179df896b413f64c2b6a6a1a59b18638a8355739a88", + "git_blob": "a02efd156ecb6dd09e4cc9c5c24e0d8a57c14064", + "mode": "100644" + }, + { + "path": "evidence/original-cancellation-v2/ordinary-control/lifecycle-events.json", + "bytes": 1690, + "sha256": "355d7a7a24ce83e14e5734abf04ee955a47ba59f0c736b27a9cfe2ed96dacd9b", + "git_blob": "60b2c1caddaedd61bd60009241ffefd31f6af7b2", + "mode": "100644" + }, + { + "path": "evidence/original-cancellation-v2/ordinary-control/markers/continued.json", + "bytes": 49, + "sha256": "f73dccc5632a946a26c526fb19cb8ed163d3ac08de543b3cb48cff198c89f194", + "git_blob": "b1b063d56bfd5e7f9063bcf06819a6a531f092bd", + "mode": "100644" + }, + { + "path": "evidence/original-cancellation-v2/ordinary-control/markers/ready.json", + "bytes": 29, + "sha256": "94abfca1a12328081e6169687768e2aa60688679830e78f29bc7d4830fffd3c5", + "git_blob": "46f039506193936f8738688b1961375a366fdc56", + "mode": "100644" + }, + { + "path": "evidence/original-cancellation-v2/ordinary-control/markers/release", + "bytes": 28, + "sha256": "6069c83d6bae1d14a00d6b8e9166a4eeb2cdc4d5d9d65313853d7c689de36046", + "git_blob": "c709c39c5babcf603c3e8fc2933d796ec6da933d", + "mode": "100644" + }, + { + "path": "evidence/original-cancellation-v2/ordinary-control/output/report.html", + "bytes": 21293, + "sha256": "40e59726d6aec1461598802af168f961d44e658a33a36b0443b4f9fc8a124f70", + "git_blob": "8c7c5166af54b868b25c0071eff38e7a4b51bb79", + "mode": "100644" + }, + { + "path": "evidence/original-cancellation-v2/ordinary-control/output/report.json", + "bytes": 4490, + "sha256": "56fe9793405bb24d3dfab29e8397d5ac940dcb9a948e2ebfadd29ecda3d27f23", + "git_blob": "5f5639853cc1d052ce96f5e3e314a57cc1c9bc5f", + "mode": "100644" + }, + { + "path": "evidence/original-cancellation-v2/ordinary-control/output/report.md", + "bytes": 792, + "sha256": "60254768ac8881687779f7a567d19277ad73ad722f83321d4490fccca8e7163d", + "git_blob": "65dac72e8f7d7e78b85d23fd3026be6aec8a13ba", + "mode": "100644" + }, + { + "path": "evidence/original-cancellation-v2/ordinary-control/output/testpilot.patch", + "bytes": 294, + "sha256": "b69f003249d3d61bd837cf0135f5de56582a3f3b5b58e6af65ac0ac7a250a74e", + "git_blob": "30338b7fde83da443af7e4fba4cdd78d4c5fbbd7", + "mode": "100644" + }, + { + "path": "evidence/original-cancellation-v2/ordinary-control/receipt.json", + "bytes": 3602, + "sha256": "e7de8fcb8d519abe9ff7d4c60949d15c2cb2232c26260e09b5274833e6ed6a2a", + "git_blob": "20bcee8b8df08d2466011d82c1d1399d430349b4", + "mode": "100644" + }, + { + "path": "evidence/original-cancellation-v2/ordinary-control/repo/sample.py", + "bytes": 40, + "sha256": "e77335c804a116a2e8a7445a96ea133bd60d7bbe5361606d933bcb5509392962", + "git_blob": "14e0a6bf9e5b2d205390ce02a09a8c1d8613eef4", + "mode": "100644" + }, + { + "path": "evidence/original-cancellation-v2/ordinary-control/repo/tests/test_existing.py", + "bytes": 629, + "sha256": "f207cbe301faee79170dc177f6982787d9ad8108e216fe72a31ba7fef2a01b70", + "git_blob": "c725c664d326d7ecaf5f89d95659e4fe4bba0714", + "mode": "100644" + }, + { + "path": "evidence/original-cancellation-v2/ordinary-control/script/01-plan.md", + "bytes": 56, + "sha256": "d537d6c884758129eaca0d0cf72a19d2e6e83d325ad98e4dbceb9cdeede18658", + "git_blob": "4b4b2551f1efdc3fd8e37a81523edcd0cabd2857", + "mode": "100644" + }, + { + "path": "evidence/original-cancellation-v2/ordinary-control/script/02-generate.md", + "bytes": 129, + "sha256": "9bc8e4cf0d52a79e42edad54a0ca5f1a961483f01e1d9f6707187e1fe11959e8", + "git_blob": "a272bf8e5371691202edb0562d8efb8f4e271809", + "mode": "100644" + }, + { + "path": "evidence/original-cancellation-v2/receipt.json", + "bytes": 10089, + "sha256": "2f8ee8748971ac121032f8db75746bd89e523c48fecf3815e4aa1329c13d98b8", + "git_blob": "9b458fd364c04678dd13a69020b8ddaf2465d59d", + "mode": "100644" + }, + { + "path": "evidence/original-driver.stderr", + "bytes": 672, + "sha256": "3529be4ce5fabda688fefd646eaa830da24c3037de2595bab7453210cab8bcbe", + "git_blob": "7ec158428b4ad110208410cb5ae7a28632ddece3", + "mode": "100644" + }, + { + "path": "evidence/original-driver.stdout", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "git_blob": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391", + "mode": "100644" + }, + { + "path": "evidence/production.patch", + "bytes": 1332, + "sha256": "05582e8d9cbff9175bd7af8f12c411eba2282b8b6ec630522640bc8145a5cd04", + "git_blob": "e93681c0ed313d773dcc79a985de05a42cca8dd2", + "mode": "100644" + }, + { + "path": "evidence/proposed-scope.md", + "bytes": 4542, + "sha256": "6a16ea0dacd60ffdbcc6825751869f090a480cb93958264a23a5c1f35095d9f0", + "git_blob": "d2d0be2f421e188121654173045daf20fea1b70a", + "mode": "100644" + }, + { + "path": "evidence/receiver-correction.json", + "bytes": 728, + "sha256": "c890422880e169a9f6631139286ac0450bb32f71e6e7bff6297084ca4ac66afd", + "git_blob": "46e3aabd682c9afe97800cd1c1e4d8a1b31b3753", + "mode": "100644" + }, + { + "path": "evidence/source-intake.json", + "bytes": 78235, + "sha256": "41bda19dadc07d894913d139cf115b73bb85fab6c44b4469d8b11231babf36f9", + "git_blob": "4f1c9b0e7293ac63c29a39fdcb32f36c6663f74a", + "mode": "100644" + }, + { + "path": "evidence/v2-driver.stderr", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "git_blob": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391", + "mode": "100644" + }, + { + "path": "evidence/v2-driver.stdout", + "bytes": 306, + "sha256": "0e5b7b82c8d0ebac6fc5934fd70049a62ba2d3aa7fac2f04c066ddd3bf049ff8", + "git_blob": "dfa1082fd8f66a9d62303d5983516a5b6f6c442a", + "mode": "100644" + }, + { + "path": "receiving/capture_current_parent.py", + "bytes": 2430, + "sha256": "ef0bf622cfa17f82c3c649afc86135dc3f7403883fa8a52e2a3dd7fc43230ec0", + "git_blob": "060eb22a300bb32fe53756a4bb8d5eee2e270bd5", + "mode": "100644" + }, + { + "path": "receiving/current-parent-payload.json", + "bytes": 130498, + "sha256": "438fa1221fa3bcfa5fededda4b4829f4b9f04fb5724500b2e293c72dfee505c0", + "git_blob": "fab6c20a130a0ce3265743c3c0aec76051b3e786", + "mode": "100644" + }, + { + "path": "receiving/focused-test-payload.json", + "bytes": 137620, + "sha256": "5b0c989212a85cb92aead7e2a27fa3fbc581ca7cac52650abc3aadf2fdba9a1e", + "git_blob": "a04713bf4a3fc07bcc32c2e5ec1186531f0c0ec8", + "mode": "100644" + }, + { + "path": "receiving/freeze_focused_tests.py", + "bytes": 2339, + "sha256": "1c22d8c6bae923bc1b2469177371b30b5c5da067794d6c956613415f76cb2d78", + "git_blob": "1f85d5c888436a1527ea2cf802337b5ad5035cdd", + "mode": "100644" + }, + { + "path": "receiving/freeze_repair.py", + "bytes": 4183, + "sha256": "b496298558a8b40efed5c0a108efabcd584ac5c8c4687eb5864b47f4a6898cf6", + "git_blob": "ae9d5dc83d770bc99596ff976bebb4cddad08617", + "mode": "100644" + }, + { + "path": "receiving/package_publication.py", + "bytes": 11804, + "sha256": "3ecf7e0bc00d5d35085428ec85c4745db014489edfc13b680a3892b1466aa507", + "git_blob": "f147ece26c77a09021df45471d8b3a056a152b88", + "mode": "100644" + }, + { + "path": "receiving/packet-readme.md", + "bytes": 7922, + "sha256": "2c101ba3d06c04e01f038f900ee091ce16f0daf84dceda4b727fc37ef6b5d6ea", + "git_blob": "deb55abd1c1d2798b37624bc27f1a22db91f0157", + "mode": "100644" + }, + { + "path": "receiving/receive_cancellation.py", + "bytes": 10677, + "sha256": "e80ecd44e02f6bc32c0994bc1665c8ed21c86fa6de266f81a2a0043d0d72b16c", + "git_blob": "57c18d72bce9277ca01c6ee58baf23f3c0dcbee3", + "mode": "100644" + }, + { + "path": "receiving/receive_original_cancellation.py", + "bytes": 10209, + "sha256": "db99d5fa877b9dbbedabba743e18cac38f687616db902e82a6841869effe8461", + "git_blob": "3c9332ee71aa2a6a81bdf76b539dda31c6e92c6d", + "mode": "100644" + }, + { + "path": "receiving/repair-payload.json", + "bytes": 16927, + "sha256": "13453e59fb062ed21391252f4f232839cbdbab9471bed716020cf0f51109a5c0", + "git_blob": "297503c1c091688ddd642b768d253bcd56be7ad1", + "mode": "100644" + }, + { + "path": "receiving/run_cli_gate.py", + "bytes": 3369, + "sha256": "e79c85cb8a3db30597269e8604179dd8196bad13771d4fef86c605f729951d57", + "git_blob": "984c7b62368eff029792a12f7facda4bf6550833", + "mode": "100644" + }, + { + "path": "receiving/run_pytest_gate.py", + "bytes": 2873, + "sha256": "6dff5b825a1becb44c624040596615686bc190f207ca2d6f93fe796ccf86c1b4", + "git_blob": "58f613b11474c28401fd505bf180e57c7996a907", + "mode": "100644" + } + ], + "symlink_metadata": [ + { + "path": "evidence/candidate-sandbox-gate/temporary-fixtures/test_collection_error_counts_acurrent", + "kind": "symlink_metadata", + "target": "/Users/me/testpilot-cancellation-18a24bf0c281/evidence/candidate-sandbox-gate/temporary-fixtures/test_collection_error_counts_a0", + "target_text_sha256": "555bdcf5c9e48589b5763a3a0498af76f53ff2fcc288c5902caba6082992ac18" + }, + { + "path": "evidence/candidate-sandbox-gate/temporary-fixtures/test_combined_output_and_returcurrent", + "kind": "symlink_metadata", + "target": "/Users/me/testpilot-cancellation-18a24bf0c281/evidence/candidate-sandbox-gate/temporary-fixtures/test_combined_output_and_retur0", + "target_text_sha256": "cd7b911289126b097b111cf733220f42b63d46c2acd4f2eb9444f8ae47258042" + }, + { + "path": "evidence/candidate-sandbox-gate/temporary-fixtures/test_empty_timeout_output_staycurrent", + "kind": "symlink_metadata", + "target": "/Users/me/testpilot-cancellation-18a24bf0c281/evidence/candidate-sandbox-gate/temporary-fixtures/test_empty_timeout_output_stay0", + "target_text_sha256": "fecaf935be95b29cb590cf49793b11f095471bf009839eabb9f1a41b0b0d4900" + }, + { + "path": "evidence/candidate-sandbox-gate/temporary-fixtures/test_env_scrubbedcurrent", + "kind": "symlink_metadata", + "target": "/Users/me/testpilot-cancellation-18a24bf0c281/evidence/candidate-sandbox-gate/temporary-fixtures/test_env_scrubbed0", + "target_text_sha256": "e7b6e55d96c26f9a3b0b0a5c212a12da0bc6b478534d4a7aa5b6c2f57f0cc298" + }, + { + "path": "evidence/candidate-sandbox-gate/temporary-fixtures/test_failure_reportedcurrent", + "kind": "symlink_metadata", + "target": "/Users/me/testpilot-cancellation-18a24bf0c281/evidence/candidate-sandbox-gate/temporary-fixtures/test_failure_reported0", + "target_text_sha256": "f1ac04eac375efe4a87cf3a99fa36984e0d26c6ecee69c1625122dedc4c1f877" + }, + { + "path": "evidence/candidate-sandbox-gate/temporary-fixtures/test_interrupt_does_not_drain_current", + "kind": "symlink_metadata", + "target": "/Users/me/testpilot-cancellation-18a24bf0c281/evidence/candidate-sandbox-gate/temporary-fixtures/test_interrupt_does_not_drain_1", + "target_text_sha256": "7c3c319fec1811cb0b93138101156d2f395701252241cd3a3b6906f5a398ec55" + }, + { + "path": "evidence/candidate-sandbox-gate/temporary-fixtures/test_interrupt_stops_same_groucurrent", + "kind": "symlink_metadata", + "target": "/Users/me/testpilot-cancellation-18a24bf0c281/evidence/candidate-sandbox-gate/temporary-fixtures/test_interrupt_stops_same_grou1", + "target_text_sha256": "3226f37429015b1270b43bfa8c36b6fe55c7d8cda928e1398bb8f76e304371a3" + }, + { + "path": "evidence/candidate-sandbox-gate/temporary-fixtures/test_no_tests_is_not_okcurrent", + "kind": "symlink_metadata", + "target": "/Users/me/testpilot-cancellation-18a24bf0c281/evidence/candidate-sandbox-gate/temporary-fixtures/test_no_tests_is_not_ok0", + "target_text_sha256": "9e6fbe57e529cb80219d75a8af85efc10b661e3c5aaa2ba3dd1b34d3cbf63952" + }, + { + "path": "evidence/candidate-sandbox-gate/temporary-fixtures/test_pass_and_isolationcurrent", + "kind": "symlink_metadata", + "target": "/Users/me/testpilot-cancellation-18a24bf0c281/evidence/candidate-sandbox-gate/temporary-fixtures/test_pass_and_isolation0", + "target_text_sha256": "3dcc5338add4136b89a81ea1b56103472b456e703ee5e2238fb44131ed775864" + }, + { + "path": "evidence/candidate-sandbox-gate/temporary-fixtures/test_real_pytest_timeout_then_current", + "kind": "symlink_metadata", + "target": "/Users/me/testpilot-cancellation-18a24bf0c281/evidence/candidate-sandbox-gate/temporary-fixtures/test_real_pytest_timeout_then_0", + "target_text_sha256": "455f812758a15cc39e29023474e2cdf3fd8c2a8640693a3a6df0d11077716f69" + }, + { + "path": "evidence/candidate-sandbox-gate/temporary-fixtures/test_rejects_escapecurrent", + "kind": "symlink_metadata", + "target": "/Users/me/testpilot-cancellation-18a24bf0c281/evidence/candidate-sandbox-gate/temporary-fixtures/test_rejects_escape0", + "target_text_sha256": "cea2082b21d05060fd7d2c9c41938cb65ee80e225d7458755b2a63105b431243" + }, + { + "path": "evidence/candidate-sandbox-gate/temporary-fixtures/test_timeout_finishes_when_detcurrent", + "kind": "symlink_metadata", + "target": "/Users/me/testpilot-cancellation-18a24bf0c281/evidence/candidate-sandbox-gate/temporary-fixtures/test_timeout_finishes_when_det1", + "target_text_sha256": "0cbaba044502fa3ebe55b8070d85739a6e2db90d44d505ed0b2a7dbf9d91f02d" + }, + { + "path": "evidence/candidate-sandbox-gate/temporary-fixtures/test_timeout_killscurrent", + "kind": "symlink_metadata", + "target": "/Users/me/testpilot-cancellation-18a24bf0c281/evidence/candidate-sandbox-gate/temporary-fixtures/test_timeout_kills0", + "target_text_sha256": "86790d3862f3ee174160c691dc8adaccc611180cefda8c094d28922b8dba75c2" + }, + { + "path": "evidence/candidate-sandbox-gate/temporary-fixtures/test_timeout_preserves_partialcurrent", + "kind": "symlink_metadata", + "target": "/Users/me/testpilot-cancellation-18a24bf0c281/evidence/candidate-sandbox-gate/temporary-fixtures/test_timeout_preserves_partial0", + "target_text_sha256": "cb9a9714ddb4956b1f1d1284df28553b3a053564f8bfdfb48d37191143a4fb79" + }, + { + "path": "evidence/current-baseline-focused/temporary-fixtures/test_interrupt_does_not_drain_current", + "kind": "symlink_metadata", + "target": "/Users/me/testpilot-cancellation-18a24bf0c281/evidence/current-baseline-focused/temporary-fixtures/test_interrupt_does_not_drain_1", + "target_text_sha256": "fa4b8f9b4ccc1f49279c05e60d0954af1f295142ac54a67d501aca5d0bbd18e9" + }, + { + "path": "evidence/current-baseline-focused/temporary-fixtures/test_interrupt_stops_same_groucurrent", + "kind": "symlink_metadata", + "target": "/Users/me/testpilot-cancellation-18a24bf0c281/evidence/current-baseline-focused/temporary-fixtures/test_interrupt_stops_same_grou1", + "target_text_sha256": "7dc6eaa45290596dbb17c3738baa57d53c126b26461d3b66271fddeb64550c2a" + } + ], + "archive_metadata": "Regular bytes preserved; tar uid/gid/mtime normalized; links represented as metadata only." +} diff --git a/docs/receipts/run-cancellation-18a24bf0c281/raw-native.tar.gz b/docs/receipts/run-cancellation-18a24bf0c281/raw-native.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..d32a27c42f2f2ceef4a730138ad0100703ddda13 GIT binary patch literal 314629 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 -$7f1&MyAh!#@wMHxgql<7>KFEpD~6 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�~Gyi^l0M^2Jg`k07pQ$zjQBR zRZ#1MaocBH#fRi=7piM&^#z4QIXgHl8k41#3R8$9Q6JGS2GQi07z1px$i{d=wUNA7 zb~KMv0V)}p)At~Jwju{`-%8Np!Ui>(kQr%`c2>$7O=dNsw1B$OcDJC$WYf`F6|l`1 zCU5g%@<}wp{!i~-{|rxbmMA<+a}oddKmIZ5G~bWzx0?UjZS#-TzeexxS1$eWj~rI> zNBezMxxmvTJlh7;JP#Hh%L4bmsapd9L*mZ-72xO@YnbEkME)zE%IU~gG?GB9(J(J? zP=ab;#NLlsU86}c#_Ya&oO|?u2^RFRUWi3QY#5$WALU9a_-0`N5wUIpHT<`Hl7w6u zayL58a~zjHpu&r}p+!kbH*2Q36an9@nJOs|=KeNOAMT2TaKLyfvY!jE;@o02d22S7ZQ29+A`f!ipY3m3+{#pb^F`D%Bk1bIp*Kl7G1&W+w2#K!!IM zL`|6yehS2;RbN^*0LzcAglu9a!svks+iDxOdnTsHb`5`3JP)z~7RG4u0r-LxcEbh3sz^VrGD@ zN!E-p=uq1tv&%t4ExG}#E6|?XloVY9hT*f`}+Y9;Ck3a=vm*a)9Ut7t95Os;kPjzyI&Ru)Bm%r1D(+xz89dE>~(g){I zwgQDr$6d__YeJoKRX~W`3~;RC z8w=_P6t~{lI5fV|0DY4K^OC0R@ON}jAltz%r; z-!TGr8cNx=dN$GkR!nB0s!&v#VmE*^27{S)y%TM5X(_%BhB{>iJTDuyfBRZp z-`6_PqO!2U3K47eAqo|eg22;-@jk^ z5av*wKDYSF3PP;op3PeSQO~vsW3M+5`ZKNxZOUX_z*tT#;Y8RiTIhvW<%W1h1>6h0G3#E>C})9;-m5X{aJ2`t@iwYUNMXTZ`m zQl@q*gzY>G+j)4qc4nnk9#jq6?t665@xBik9S*#16yJZ{-i)=XTr4Ik<_oXm8#lU& zI^voZafg#39=1#;5tU^tfN1|;yvQ;z=4pf2zV(Az#h!uC&-JB<)Z+rWT zJLf4+?kONt$}>CyWZl&~#8}i7O3Z^x0ceaky;4gs*Yuo73lm7C=Ni4Bs z+B=o;QI^I_89UBL7i~RTL{960yU=R&*?1D#n_5=#{R=EvQPUVqAa#vkv@>QNan3HS zr6w#VsD>DodtXa!`4B7_nWB?phWV1?o>89xAjnA zV=!1QF8E(89RFZeLvk?#W)~2_gf2G3VkCW*Vs4>e%sIv*mLD;7>m0T+8_kpm&~)%c zhFTAF;TZ}MdsoYv<^@l!ED33nXetTjSeGVLlPe#`r=H_Ee4_3PVv;V=1AomY3cm;R zo2aTCId|dppXU&u(zh{#T+smbT{O&4Jypr-nm*!=_7eNHc0 z;7R=ARBpap7e>IjWF~`Ihqy#U5T~j&Y6M4bN(vNw20K|JW?nN`es%pY&A<$bFO4ni zWUP0P5+Yf3^z`A;XHB>^v3AadwbW=Xz%}+0i$uOO&;w%c}#`8V?&r_`m;}k}&`*oa|5`wBg z5*HT%pDTNCV#%#@jeTWP6yVjeTR%*vX=8EMa#<{Qd9m2%gq89m!nlT4kJSHJ^N@F) z81s*4M<05z~aeQ9f__t8V&D#vJF{ETx8M9LVoEuSq)XyrvyI`IcOS7-QdriD|d zoY%^8T2>Isq9V4-OS88|p5`ct$}Qphy|P%)sy=B}p=Xz)@`wz+$0M!Yb+gq& z_CQtr_8ls{f(tM-r!#Ms#3My>TAj<94hwzuKyMmVZix3#-Y5Mx>f+_2R;~0eMAoyv z)=B+=SO_Qs6J=Qn)^9qyq?06`X=Fafk`)$kLUT{Nj2z_gWUihC=j4bpP_38zo|-S| ziLN>~15+k0c_0{q1_Bt=sRN>sPrD%1v&nL)0a2zu+DEV(>uRxWXn32oNJ|6@-%He* z0I@hpSSYr)SWYXWp_FHE9D8{TUNKBFAsy3PH@c(_{L{ju3Y1eWOe7vpRkUHdQ4Ywf zAP4M`P&7HqDmVgFY=CtmP=J7i#bWUjGfb!DB%<~j9vfL34oG8Yecse*Qx2Wm&0%@! zOiGe|TwoV~Eo5G^!p630r_EHwDZ#eRpTm|4l>`av~2}Cm?Hk$FMO~j{+ z){Sz&b;Jh)6}{h%|MzcRDax@t(HSD9EmMH*KxStGH+vFC1l$!fE#$aZhELfM?vBU^VNB6`=-XmY^N&m z%eLuRtNhV1Mgd;eys2Tq5cfe{nqy`R`Y|*THepkRy(fGGAh$xs$f-jvhAfZ)`E(Lb8b43${;}&s2_(TY5Wc2)id=glITxbbDsS< zCLYI>nBTBiR$4WL>uZaI)L3K;zJ+-3lo%_}0xqO@L8-jze;%curzQ2mI3;1Jev^(0vzcCBmYzbBF>cp8Di)!n(zc);sD`2Y)IfRpec$-YcA7yrycFUWMUZ< zrlHI3?lY-I5)YvPF*VRvFRxzZHRK>aymz>($? zC$X81Mp?4#M4LQ{xN|{?RBpJOi1(NYV0kefTwnxAFk-rzZ-b=jJK z!9=6uVelx9caj#&g}hR&ZF3C~Mw!5eD%nCOK7;RItubxnywhyAT38TmADuQ$vo(Wc z)kN?CT8vJ#E9*d&a^G+ixJLBmrzZQ}w7JklGQlOi8V^C#Lybqfy$P)~pv`}SS(0Up zSIgA2u}O;^Y~sJR^ukBUb#k^yudKxnT0yi&uM3v|R~t84(utm8DcJzcs|5FdXK$y4 zgGTSKq8Y`=JM&I&>QqSHS_|+@ZyU~;djsNFhM7h?;~5Q= zl>gQ~YvWK<&$-V)CYH-|+Tkq$tI5=()7A%pJ3>aw=km6>h==1<)_L~q8E$fC1GISf zk{b5L-u91@z0p=OR6FZYdvB+`wMWG{A#Ee#l+5l|qd}5bUp;-gnQU(JxN~V^8xaE$ z^(9p^)=Bs;eX1GfSR@OtjnSwz+|_OD4z_n%&!~-9Og3h6N0S5weICy{GL!hAd9{EC z_^*PkqR;o)3MPAY_d@N`VHLVjyddgC>LpW)5^e4H^oGBnYo_il*X~a1xlb-TvvihN z-Hqmp@e~7>Z}N3&y1)}BgzdI6i$537*e(r>&TD?+)cD(cjLgu86t3NovW-g$=@ofu z4(K#lF2)0UVb2$1*k<_eCPr&xW+mY1CadWz>j0;c#LL=N1L!TB;99HE9xdv18C4;P zuv#gaI<*`RIdDS9?0K?V87^G{@pLCg$Ss1RJ{me#f9^2b6il`jUbCY~dc|uO&#td7 zfIG!XGl~5FTH{qzNsm~rEtwk?* z8JL#tb%;t>K%8x^xhZ_4?)Rqdcc6}lw@ha-Q0r29Xl>=aUHj6aEW!S1h+5PfKYid$ zrU;Tx8gDCjvot_TQ73B@Psfw%&T8D8rn8h>(;7!_e}Lc3!{mH5i5HF6a9^a8IBSIO zI4>uj2rLmc^f#(%`QT1;1dQbS6nhb zHM?(f+nPKi@{@R;0plq@9m@X3OhIBA=>0v~;oNBtAjrH}D$Xoy3!5siq2;}i z0%*DLOYv#aSCPK+M`^kwF;s{ZGA|Z+vG-8%{QZ8K499WJ?CD(;@9GpxucbftMr8UL zY)ZEg6+&IaKC=LI7}lql*#Xu@7@Hmcqa0U9yQIkx@u*tC?fg9W8}Q!a(REYY_B*uI znrF%KDoJKsciSc2yF1o3VK+D|7Ncm8`KwZ@*)!FY-A%fj;m@IT;ntPwND<;KPXbgc z#%O1>Oww9j=C=mYnlGhMSE6TH>dIF6sQ3h5$-TJtsF7Z^3wWZRZdT`X|1*|^whSgZsUBOlIA{5eIA8jJB&_At7y zuN%?RI7^hf3*1r+5?Ml_9j^ANS_UGYE@ecdj&&Qu%#+M;rz1bq&L`qTzgXKeo{X2* zZdVmM`7(g|mNl8my1)N|->_;jo-OZrj7wz}+_L0X&_6nUb^PN|pny6;7Td#4Pzyiu z&qfeR%4`I!V#PD17ssNmC3Xc<7X=^XIg8oDlv9>uIDg~pLULGNm>?nIf+)ZI0`Xd+ zP+T=a)(KEw-V>e~E7GkV!2}JddURL;a)Wj_=~fgRD0u!0E3v5Lqc=H7;n^z(H|U)5tke8i$ayyQG^Pr_4iZVhu2)h31C;{Ez=dnHl(j z#3ryqK7z||?jim}blGU5U}q>Rs5p}N*-*?HeU(>4XCR5Q!FU`xhVfeK%bTaI7P?=- zxN3uoI{t)*Z{NOkgA*1(&9avOYqm_z)5SG?g09`K2OQEmxDXRRx(i}ZWu1pIxNu;0 z280SkW2@x6uh5hNdv#Rk24u>s$_tg429NTbs>qQWi5%ZYLZCFg1W`M80J)Mq}nL1Bk#)faLfU=M0l z`m&14!By~tRjbsYmoMb9pzc!Z&caZiRgo9N@#lcN)-Z#B=7~c3miQGa4y9m((ubE- zJ)fL0OM)q_lopL(kzT0>^e>+7UXRlPp+Zr+-Ios8bj`lqLuX~6p-F<^-{+LCBwmbT z767_o)f+aioRVi?OI6>%#$={|rw-Pc|KeGe#*tG9t11Z=N9E`Os?Yi!`&mc*zLyU+@g65#)CT z)Qp9>6~Iw!?@go5J(;f5kOw$^qY8T_dn`lYi;m4}dv6KKeX>LH15 z;Y+v`IRu)SKDl@G)qspG_r#$>GP5=kCBS!?J3YQ$S( z$6F3#W6ZO9-Q-nU&1%YH3@1k7nsc)v;PUw-ce$xyT`bLw<`|k5Cq|*2YKpAcQQm`MjjG(N)md7V zNub^Dx|-_m{(W3tQk2A^{Azl-@4rF;{(@Q{mP82}sC3GAN zs>NZ)RoWwr`9DUqe)6B8wO5{B;N--b&r1#tyQDyz>Ri`7(sd`g?o8^g_tw;2)pMyh z_$EnP%yRSms(omf@~*SS`nlN#rf6Z{Y4KFOX4FI;$3H!9Ja+~sJwJT|yS>u6y!TYP z(`o2Y!A!alR_jT|5r@?z#Wj*Mv3)qK4axdWcdh6d4C$n&*UF0`bAcW+K|(HEZ!W>L z)ysx+vGwxM5t6CB7aQ>W1+c6#R?a&Avg*PQt7x}^KsO*oloGT{FS%p#3|DM5yPTz0 zGmilxr7wJRU(n0D?A8%dQzPxSr(rs)n475S@m44j(>K5FEDDDKuQ-e1SNZSGUl1^ zB{3GllqYZ{B1Sw|xc|2Uj6YF@n%whR0WwV9)lnUZ8 zJ8D+%Ab9?iJ1V^;MJ?dvideb9R-*+{KSFKA1H$Mb#M?}zDJt7csww5Y>gwHKx|Q>) zzV;;zXD~_63l=%g1<_WsNt_xxicode<6W`TZfrPPb87q_ky(+)E#~>9*u9v3Hw&tp zl&)Zveg4*vSjl^*7}Zg#6iX~Sxjj;Zrg}(FjW&~sp9rgp?-YLtd}MK{%P|$Ic*ol! zrNnER53b?`g4|_QA6<=93Gk(Jr>N3=qpT*5L|Mu2*U8x9_)V{`tfNZv!(t`1bYi;I zlVaFb*%*|Rwss819ElIzCdqJu^OmXZ#ztYNbDlKnuE`*n#5K_qkWrexa_&z{z!h zBY2ml^FzK@q%znxIw>(~l2ANi1pNkQ62!mBB+!r!;vy#WSWYgXujS(OC`#QzTeqf7 zk~y+3Z&ym6RQZ8i2eNdw2?;g?Tk!;P9!oa@i&3!n?LwQFY)&>)s4IZ$Vf+KiGDE%M zz-;<8Q_VUoH$hD3&MV>r&t!W6&vl+GtkLlUH99os^hwtTCkrDhrzEhlLKX|2R5|Th z-@NQe2b5{Dnv;U5134j>!WXH#^u5O9lK2_4{gLR_C8d3hi{e^a)#daiRG?6-_Js4k zSmHrQKtqmxexjrsrkTNp$O}#pBNF!*xXJG`&&ZEP;8Y9;9H9PcF~;ddQ%wgq=?3hj z@$5M=d>})13EBTSN69qEHb6h4v)yg6B2hKkbW|nNk*qK7W2XTO0vQizr*7cOwH4ck zp|E<3WBSc79bj%qG6=nVL18X%CeFKIG7I5v(rjan$UqHDau)b(W|d13@Ii=1T1wcd z^rd7ISYC98$!8$$>_5;@**=;X(1N7fF01omxtupKIp^nY_*%RGj(|`A5xQ=EOkrZK zt%d|OyO}Kp!KW&^7JRBc_qpvViH=fcHOt~r(qyMeEG!wA$JX~4Y|&)L5&g8FzeHGG z8aR2pP9<>7VHx@OE7d-I^n$v?w+zQgiPH6&6#2Xo1ttb46sx-vRX1U9u}DVU@DUTF z@Fl8`2ph>V+P~O{VOi0vs=h?unSuea>BBN1NT^F_4RQlx{biVV-@dqLTf7a8PDY9^ zDr;nCp^AJ~Ez0SM_|ELHP+ch#)G&aAzqP5o;-h*-4R0u|7PLzxQ_Ik%*p-}a-IfoS zNLzxvw9odLB4O2OLmZZ%5xvq90wFO4p^ogc5Q-8TC!LaYKbSLa+l~GI8IyP%kR>q9o>j}!bHM0IoASmA{a5QK*bxf zUnQM&QH!cNh9FP)4#ES?E;)!21yq?6Owd$CyrgnuN>)`%sN!}MIu>Pqh|iWUjhcx)w{spWitG!zh`Qwff|m);ETel9k5T9ox8mm`EN%b(jl9 zcO>RQzw!NLa&3s8K&w^ppsNjGj;(l!FQh9lU?7e$yLaQ{g##2+7~{j*bu; zL-0pk%{9zp$qXx}$}y24y6mhOhq}+M)r%$`N;t^K(rj8EnCEYaG4;54ILwnPS5o155(RDH&1Br@vN@0vgToV(Dui4*)rA!ghn%5LW_!&%E48ko-HHT1 zbdre_6wEO_&rh-U*iaM~n~3MSUc|5=U$=%^yV!ck=UFDE zZVLrksJej%nz3?^o6P}4RV~y-nHIK!d0NBK48`2#g)C90$p%AEPm>te6flM~q?KOfEXE&cz zkC9z7L$3W>z1q-!igyojblgQ`J&N8^&w&SNc-5;!WK2$Jtb9O<8gg(NOB-}csfN9l ztCkm#42`FI402Yr+#kWWSMuy|ay9Ev7fk_>vt?W@_J?C?4y)vadmV_r_Ce;bk$)SFE{ooVKENa2|p$nKhawcn&7R+T zw;A@8UntrMl8kF>y6dp&JBStQr8e>P7aPk>w!aO#$!SHg==>??L^3;HUPO23m5bNV zRW>7F5+_>JF$sgo7zsws?M`J|koE>CaD(HludLzKUT2+;!yITD+|cpTU^UG_WW??H z+iHpIM@_6UExG=9^d|B;l(&Q3O~x z9bo}$ej*Zm8UN+7-dyzO@ZQczVcRC0s{|JPe#D;Rj9((@Q(8jN4SLQumR4V6vxB9j z7)(&?Dw5W?5`|mZV1f7=WHlz&;ycIQw z_S_~DlXxisbc`a$a+N}ovz?O=pzOyu|MeSK=c6K0tji}3=N~Il1&c!IFB{)4re*~a!Wr4p@WitxC6JUl8n}LKtRWr^CZlbk?7-rDD zv-C@#rrJZ3Q*65j-z}F)ZQZrTcoo_Fo_rENnK?kkAv)j(s?V*QdHRn$~?r& zM17l0;WF45#o4kRAg#(+1@%OudUIY$_H-qD<_!9<69q@oLl}-Vh$nuWauj^OND^9* zAlu!k-)*f*Dq z;}3V#+3H*^6{^M%d57J1aknk;dkmS*0+@*lalkojuOjg|6lku7QGg&NVsrqA_7U8p+bn$3Y z*Qw)yd%|t<3#N{zf)N4jOEC{oy^#mbmyaxWxj+xYcchcDydg~s%hx1UHUg4WRHlM- zh5PNvQ_v#2s4F})9|8Th9Q0Io7-3T_g&!?+WIr_`d@%|6}kMCZ+f4_f- zdRum0`%Aha4n%X2RX(LNgc$yQ{2BL88R!7@1(RD&bm)8|U}v}xov&#poh29X=P?|3 z0SK1k&KnhI$O@B1Vb*HktZ9-w*%Rxa&RS!7gcd~O{Nu2(?UBj z3fS{lB`+8zoaY#c-2nD&Y)z(kM6xp?eSkyFCP^|6C{5XFz>@MTSze`!OCW=cERARj zEIPz^jz^eWeaKnERNb6_cRU-Vlz$V>Kk)RYbICb`iDzi|#QyYOpyK`|@II$e@M<{J z{>*Idd#-{2rE19`6u6Q`?q1TpO=sw~psTYN@Noa*tAqP2AX8~v!ed3o*!NL`Ivg-k z_woMGF%I<#gGW`5YiHzTf?kv{pLRZBNJqXPp=%)7ho09P3cQ?yoRd`m2!y;;J!Dqx1- zHc*RTmPY1F5}cgr&Z{j?>M)!$*kcIFqbE~cW^kUbaHB!%D|F$tt}?s>trOAk_R3X4 zd7ahW)4^WBP=vW6f8c`qR1#}&*J5OpswNHVpJjrX!%JtFvf^aPZk*YHLCRA?!SM%Po|CtpCb>$!dZBFdRjaA z>!;ai?{WRptQI}~UHz{o!KY>KaqV}V)0?fvt^VuN;&-2B|M+eFANbAhy6|uL@YAeb zmsF|Hz)|oI{Lc>!7)1Z$tK&cP58lK7zy090zd+T<#i#6X7ygG`$WD7t>Y@7P^@ksR z*nfZQfAiNzSo(Jz+%5m0V08GqgU>!4J;C3U8w@@fOPcKAs?|GglW=45;no zRr7zw&7WG$XZ_xjjrwCEBF@84KumrMoqMzY_SKK?j-5(Fi}Gmct8b!7F*l}4)$|>q z#O!|=z!p!2H9N~sU8Tj$Foo!&p!rq)5uU#Cd(CV}Pu|h<{h7{Kgc?8s$*4%eu4H2V zbo787Yb0-y&+aAo;oI z|0K%F8gq|avVrNUiN|Xn^({bLx|Be$qVimd0;`6(6&hxa8rB3MnT*jQM63^m8003G z`T|W_FKSp>L;3Gh6_GQ|>S1n@)eAkvsu7cW4uJv0a#CoJ>*L~VAW|Ri2gaQ{kcJ9EA{}zGWZk<@|+|;^* znsV56lqE|!oUk^sV{bw-(1o3#1$?KodE{Ac`{?JqxcFz(x^=Ci(-Wz;m(Sh~@7#8% zjJI=hwdHytU*%rpzm$IB#PRNQpYj>uKWR&PJDO4hn#0h?MR1qSvJSBMtcxHuE}6K9 zvp&65b6+nzhF8V(&N2N(b>-D+et-sddi&8tyW_YAPJ7G>y(aT&IM`h z%EGkh5ek0uT0NTZk1*N@t$Pbq;FzX6!i|d`)*O>JC4v;-H_4Drl-K7HBT8Cb!`i%v zOWEJ}reQb?N(WE*(2={$R%gIjp8VC~9TB;&5C57+m~@5`18ZIFF!YnamE~!7yCMzB zOL1=Y58_A|(;Iwwi)<*!hasvE(b~gdI~(KK=NMt2SwV^!IdAaazggVUUhpcgEjl?? zSSE#oGdX*o@iwjL{EXHnb0M!92G7lGxBV|mG_t|oy5Zd_kxI9yb4JCENURKU$$7>x zg{$`Q1o2F7v_hmUb3Li3Z3|e=O-zXD2M$@K&_j}{BGh~%_4M)*Vi*{Fji2a^E18Ld zuzu3&MJN$2Y7{zWmtu2x=nP?r@;xOrfX-$MUIZ_nr>xVlJrk%n(!VMMsKQP_lXD9FkdD42P zS8>0%!WhwFD(8@bE4N9t?26gFs^aes~IzgGH6%xBGOAvlTn#6FNzizcs`a}Yl#3%Y>ZQ)uWr4{Rz# zj5o(3RGJKstCcPTMeXP@i2LNkM56YQc3qg30IH6=e9Sm0UF|fx@)?$(2XgW|%wGt+iGdO2cU}cw9X)29j zEa{UMDt9Zve{t?sO?2c`VXIE~sC&UdN9uelRV=R-eBe5^u>HK_pIQ3P29@_WFJ={$ zKJhH`WlGA;tj58@wJ}1ZBHX0J+GEaYNu;Xk7>*Z+&{udTBIv2TyaX+(@lM!lppSMN zJB2T=KsoxM*+`5(GATHQvuatY5ZdBR0^lG@cq0RnyQaJ=@37xRfv=Njy_N=i=eO|eQ3cy+?JE25Y8 z=BZy%;B8E|#hAkO(A0ut3Abzkfn!NY%#30jyXp>{zZ~>O!B;3JuBMEha4Y zE=^-i7N^eos+tT$r!B{0Je1R>iUQk&f2!3}f6J#4!F3~`ty4!|oqmuw%D3Y}saoX5 zQ(v=;qV74XuC*kpUiekS^H#fmFVw)PI+^uJQ{Thtl$yPzYtcB!Rz(U*O`VI++lw!dhXC>wJ^Bv9bx47O^gWb#n5D z=?8lW*HT4~B- z&5A>-30Z1FSD1W6q&86V;-r~IRR`UV!3ackOo;PbOy*5ok|x@ty~<2IY;a8nKq^}EL+CrT?|@jGA))V@Qqt^HG*LT zzLuN0H)Q1V3%ZQY2|1ta8S*)N&wU(){TqIG8y0*irx%$C&D4#;8|>DtF_+#z6Qp6P zmt5im@_ENu%6*FYBiv)F$+_Cl_o4ETyKsn=ZpBaK*7NwfHh2AlzSty?${>q z5cA-O*Ph&^oG_=&x?n|gK@avUxZ(QX@8|5mabG^b&DkNn!UXAZJ>zHc`-I>2u+u6r z*MkH#`6+A)aucHVL;v*&9LHtqa|yX|%`rqFU1gF;#`NCrr0%1o&|v1_1SYPhFB

njT#LGag?Ugj;WEX-V_90Lui(nS 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 RhDoU1BRK!<>qPNA9q#rZ|2;l1HFNMJ?c zV@e-j=uW7(g+6b7X!TW9Hi&C9hUX7i#y`t^p4{zypu{C$cOi>DP{}JJQ@-?<3knPS zBIP)u4o-~ROrwDO@QO|)L7S|Pu~OikL=U|wapWrfj6bDPJ&oLhXu*bqtv#}%@W4XPm9b#WW9L5ebi z4*&jCX!jjb^k5Trd?dxBjz9|vOSq04QT9Zv+wl~j=fY;9odvajv9s{#d~^($j!4RL4WR-&)3RSp zprGRlr;SFy`C~zV`9j+guW~^xSqMSYnZi0GE{KeGQ$}>@WTtQ-kD!NQ!k04N90Bwv z$+xoSR*0eyyZ@8RFBW@^or(=31*Z%$g{Bss^XyASC5#c5JLHUdQW8v8>)Y&VjK>DR zH$PQ1TWDqzgors<4YEN~nHNr7QPmI(j>k(#CGwwjWzcSdS)fDg;*{@th#>Mb33v&* zsLF!7;4m?%O`bEtBny;~X9B>ti1%#@)k3sazxhhK(7$8}lGN^&)ZWQ3i0{(9P8wHy zLMs+tQT@S!1_kv3jJKX(0t8QV2@TRXQ>g=O$m8VaY<8c(2=l+vT~nYHONEbbRsc{q zDFADm91;mFb5^2n9Ed!Pm~c6Y62hiR3-G(s5&lqn%mm-$;?0w=uN`x8ZZr~MzlTgg zG&tLjwP+)~`NF_q#G-0{S-7N|)?yolcMtUh3J|7?H#4T7z~==oGhKze2J(LBmK=`b z{6%2LJhF%556#*M5;(rz2ohR$hainN3H?i89Wp%)PdXxd__Ro5rk)bEI(4Fx^KAxyonxRpmGv z59H+-tUm?Un=JBRHqoOIM2x^J$N?c0LK~TMreuqLRu)&%9gXdpe??t!>FUhm7A1E` z;7eqi8Qo&}Y(D?tXa4=hQKZu0a3$T%6{Eu2vp%2KED)nhcn6hPmir8Kr_>Oke+$gp z9Ocg~e>S;g`HC#t^USXkv~-woRx)Z_m{~Mxal|1E`OtK)!e0`p_uU7!QrwpC(QBbX zy&=LMPcHN^Pa2Y$DH^j;Ozuo9zZiBxbQM#63@Nk=NXVq#+m2)#+1d+uP>{Rc&pc8-Ce-k(KG40=>)PEJZEO1@osgE94+KoK{FA9?=% znp&ZRB_gW;#m^BX3NFyiXunmi6IrI`Os0PJ7bT(MRhX3z%b|Q!J1}aDn%b3IoN<^w z|1lh@lY33WvhTaB`Etps$jMcA+nB1F{^x`Ci7!^YFPq01D1}08wr0zYi?c|!+lq2k z0WTM2Z!_0}f;0LE1{=K|z?;Y2rigAS;sLJSsD`t79AZ4|AIU0pim6mpIxW(Xs84Xy z5M6<5?3-A+rKi-|!!USeOIV-j(|O`X*j;aujR0;g4%(m{r|854-d3@aZ9f znTh%0RDv=CD^AOlQ9i%%kzLE)fixx#WNN~MvhkKcmfmKHVyKx+q736OdG#d~67x&5 zKSN^l+h!i9$X`i-lol@dM1Zx!(2t9?$Jk~i6!h6pqBwSqNE0i}{Q@D270GHS(u#t) zibGqt-?mb(<1Vaza9T7Ydgcs}EgFM9+@cCHHk2)$6~XR19;ku~s`3hPX2UufeNxV= ztwf02yg2Ql`$z&~`w&=GHFj*zZD3f8#Ir7iyXvibI9xPhIN4D6#3(`GLlC^}QSj1I z;*&5VCsY?r#E22^hSErEL%uXRR%%ed8G#pjHsKMH`^G!9C=6O9I6gtd{Y?<;mmsFP zzdk$lhDG~B(x{Qm3b2m zsAV6haNaRJ*22JJ69IF@>>Ca$K73`_*qiTc?T2(-o*?bU=J|Le74J!jY_*p3aA#Tf ze)9LANWPNdaWX?-tt^<#I?O7yzT!R_VQ)nHrc^p_O6A)Lo3)-hq`?i+NV`Waj-m@nmKpuo>e!i6gz zy!kC*IPWASbL^8vj}_T7qa#Ih|FqsX*O%;<8$$J=T2XXco&Fwx5&3~KIuW#ggi6qL z3!K@?<`}ax)%yA25d?W zbUYr@NK?F_TDf(1+#x}q2~L}fkdc;Jxw9YPo9xzyt&P0n3ZMi+(GcDg$>E7iW*_P= zH6cHxIap#?Yq(cAhlQic33ooO2UqrLOYS}eqnl5 zZ0|S@3>UZ8iHtBSFH{?Dmyby>>0`2HBalXsh|E&)egWh-XSpYUqu72hHQuiVi(qs(FH zg=fWP;2^j^BrI3`=uewrsiy8I3dHj$t=r;Mp~AK?9gIYy%funM|KuV0c9VL&TL7sD zx<_5<+7YTgD}wmCL5*Prj)47QYunx5M}1yG0eJ8I#y>s^eTfGp5UwXe<}nG|G!_+* zcK3vzkE@&sM11~EuX~^Ob%Z@Hh#ZkCl}DsxnqYcw7;TUC-Jx5%_yT_&uUMN_2RVMz z<2~A*9pYWb%nTe5P6{u35QOh})w6k;a30fy(GK{aUCC-%YO-+$&Nv=h>-UFt3dG6@ zZ`;yFG4#8SG_9*y0JkJoCqWU;8V}{ar@P2%k?1xDB==L%;%|K}I=?;EKF}qbJ;l$W zVxSM%BfRksP5J;VxEDR_G{=s%MabQlq^9c@5hg8L=So{kN}v&2xnkh`uTVAqUO9TO z?NYH4hFHzraG4nUFYc|zV7g&%$gE0ApI+TRK;K`gO+ZU&lX7i|@Ve=)8f{~s7jnWR zW)Nk)%e~UJ6<^|;ODD;VqNDioG42)|WDE&4hyN^Sdx6Mde&yYC`ORo+KKMY8z4{Do ze}Q<5<Mr{bj~U4~QZrxUy-W&9Iu{ z-rJkr)0}cNt`VbbRpipeq!Ji?TP~Px;zDd$QcKm4QygwsQbM)x(p`|kSnxkM*79x- z2>Y>RAGSYSgn(7;aCh+;3VsP{He}KpqCZx8{xJ)OH}T^{u!e#Haf;Do0}LA3Zuq7* z!Y`O}yq&Ipaz9kS^AxW@vkC(ouih&#UNDqB4K?HXiL_9a43S6g5?QVOrDT&3b&phM zFlsfx^XhER5PupFM+LxyD~mqFg%209czvmqPH_NEYjhK{GorIa^^}fV3hXQakChaU6Tvznm|_zkfzCvLBCvQ zHs>?3djfJkMEd6*OC-?crHQou$haPJ;4aV!HNoiqwdt6vat8}rG#Z z7q77aCK;de)^wB?7Pj}kA+*P@<;-IiyZ}Vdiw3U}kz z9g2xxY@Y05h_bN)_Cfjt^9W(Xcpp@8tfHx=xz=hOZr{=BiL0xyG98b{c}wqR(!Bmq zKpg~+r$rb7Yad>7aUx#36S|+0f=jRj2Z4fXvL|?T1mgCXWm*=n*er}hFEPXXq>?(!$-26Lv8<0?GSsYx63k&7;i~duaaI zFtUG}@ix%Ss&>c9Z#FHXG?rRxDN5A;dE5Q7f&&6WxAJnUe|Bbi@PbeN)7>$c?{w`G z`Be)Ee4ZnanGMb;vxy8JqE(}9y&{+(Ei28fV7vp6&8JZIlGgWpPe{F6GPAjLYb8%^ zrL3lu#pb4>Du-T1zJXJPPN;67b(t=t86nqw(ys!L(oD&ja4WI*DjRhA3K9oidaln! z9aJ4IX-Uq!LXhGF6CQI*7HBZViIrsaUi%tgH8Zzehe7ve*)qikT&>ZgU|EGUzq}ER zb8kIAk0yM6J~P4YZ1n<-oObCM3WL+y(mfHiMu%falO96tr>Rw4kN9v0*cQgzkQ|8@ z0N1}&nsqc~iFGFHb5y7|)l+W_{ZS;g)gCK#DiD$6ZRjQ0j8J@;iVLDvLFde`8${Wt zNj%+;a_q?5-Teh#goQB=O~E`2H#&aj(xgS_$vgQDkv=JiFfB3s+IT3R&gq_Xg324t zSTW+8T~}%z;J)4%P^q&Oo6YXr?{@9s;&pL;eK_1p2NYpL#- z3JQ#T2#qBI+hNDl8X4}LEFQV9*U%^G@$>_7rh~#My6rrLcpw+Es$2m-cuO)9+NGS* zlYrc4pv?(m_Sx}dl0qZXt~OS^mMa8HaZyFKT+dBeZ(2!8ywAD*x%3IRo#EQTq-4zb zF4XCR#gdotg9<-vSzZ*web?7L9c5VWcGZRJ8oT`naqG{Nht2&Q_Vy0Qfiw0(u_7r! zV^k@mL*)ZLCey~Bna!tEKF}!3$4=o>6nL~jwy0?A4qdCT@Whl%RV&JHsYuKxcElmY zNzepaKkV>ip66h-&_I%gc@f8JaU9)F0nHE$UvT>aK# zBQo#Y)qidil%0Iz{1s!_sa7Q;JtOQ#aLfrLy!bHe0EVQl>FHg6T;S5kY+imKYe)R~ z^HjHJ-2_zUiseUdaliTun1+z$88M56?T5Gp5fILdB{nL%)SD~mkBy~ z*{E6jv#iG}cbhRy?shEz9gzc2wTWSKa}ylfbgpo7{g@>`9Khwj)s9q_QKo3m=bw}=$Wa>|d=)d3fFqV#Vo!3Ki^@%C4R?)kq zzid#WpDrlykl*tn;C*+vxOtOAJ@?RJ+G(etr#p9f9kwZ)j{EpW17Lim{`G6PNEbCBs{k@w8=I7<4Iz<2F& zk`&RkKXe~tL8#NwM&Ox4I-^qd_ep$(k;s3`?cIq&BS+N`OZ1&8XoL%^(dO7 zNfaN*@l{c-;;@hd+}bh>+%kSe`GmcPW=INy_0Kkms@)rl5k?QekIUX9`ddc*n~7^C zEc-en+6F;qqN=|kUK_KdmkB_p`jTL7Bd?}+EW0Jqh+E_wAc9Ak6!JkKFiCh58VRUb zXzw*QR(SPTbYu;1ODMczUf>V!5WH0MxX6$Aj4HhPunC}E;2+H+VPPL0$irD`dPXhM zm=o;ba>D5ob0ORu3@sHa%r2)1>G*Q)QJ1P#Qz_@7!6kSR%P}p?7nLjj_#N7wIjZf! z60*%|FL0k%OU=%PzUhnPZ@S(5 z$QTQBVVo?`px3al2N&r>^3^hy zq+m2=t`%s96%ppd#fzFgT?jf%%+pq9|<90wa* z$#+w*`!?zc7@y>k5$L)as{Nd|fr$tR4z6FQa3(gCNR(uBDv0B&0|OzUi_~Fiqfla~!Glv#M)% zb3m}jNU?o862m7qLou(PkvSuYO6E&&y*zI(PlowKXKz_5$v=T?E5mR=-ULD2B12@J zb`3?5GKc#n^l}JYL5oG97Utf}uTiM2)HpXRGK|N%Vnu@^i`}gAp(k2y_RJ?D>At&l+`+y z!U&DB9A2dqg^!X(EoafGwIC4%mBZjXZa35DqVnc#2YXnCyV2~#4J(99@(;@IdgO6g z0r7C`2w|ij1-*S&oP~YY-C=41-+lwoDA90`XmQE*w#21nGQZ;vzfD4#1OC#w zzc$CIog@o=)M(|DUVhdT^>S#A#1RZ&_>s#1t z8Ub{R46ZL+N%-tI*t)4kCiP~=D|vpoI>Etb=jKD8^dcLgL z)D1?xv?Oj|rwO*L2!r1W29QJ}&tqi~n!3a(iiVfCn&>0wz6qboDzoz%85K{S{86lt zX^E`mR1y3h&zCvaSC;e(^Sjy6rpMtAr@KLU<5VOK4{rh)%Rr-oZ^B1p2av+9<-6$Jm|ncG*x zUuESLO2=57rD4PB-Hmz#Znx|-gmE~mXvX;wye#p`PZ(HBJJjOCQX~lXIJc@;wHUi4p*pRl} zbzTbaK+(;&n(}JTZl~k98M|{HzQ>1jkUYqz{n0Zn+xY1;k!BjHjjBGxdG|2PN2VX7 zsoLE2qa4P$T8R{rl31a2SEbU1ZVXP|V*L}mRUHCT8{REHvMl~a0{;Hu8Z2+8XdXr( z_Gak6Ng0R&x{$gro2M~wmk1$m2P+q#@Xk&x;b|O7DgKWLxOx8MLMl?(jq0}1^W2l+ zbjaJ|rJ&t_!ehp0|A-?q%~R%~KCA0)-kn2|87T{7C~I!)?LP$>4O_N#^_XgpiW*lQm&F5NqvfGmkOaszzP-v6c9E< z4Jc+wn&DHdXs_Dv`2(7DQ@)x4d|R#Rh*o_3ekQheUHv3%4_+!n%LcZ#NjLyCj69c- z`IOjSaYug_TH!U&d7z_Y>#b84O-G*8K0x4g> zxD&#ad4=W=G`jcDQU zGXjEnS=RoI*+y8qWBMWG6PdGkB$Q9B_GDrF4h}e}BUrkriOP<16GhChHs+cD81g+$ zq9Ke#~i2Opp0 zxm(Rr_!Hb{Z?Gk)uIJW1iiJhtx6Yvfw_lD~p$|b9ZP>52RbZ~} zm_zr(!#+>U#Z66gSr&7N2_Xayk}O`?JCxd<+V0Uo!j|Pq?VAtO<=Ku$Zw;rb;e)Ki zxy4PyNO2=tb)e=av?4A_N%_WfznwkDc^yDyf?=Q)%3M>}?D6?C!3py5mryxSqFL=? zt;#2KP29piJ_myRDtLxiR4l87(vno64gzo3X&ozQbp$*QX!sc{nEESr`l|QKN`V zCJz=-@nG5ekUnySb)@g{Cud@}$c!4|T=J5VgXei_=VcTjG^>MCRITil+5kQA4Ck$C zu()1yUe_mVQFn2Gd?kB!ynfq~WT;lTJ+Du2Nv=|cUWy}PI}bMB$hIxn-E>by_a2JQ zP&8(`W1J!iA#LVV!}PS~#wZDyh@4;0vg8lA8s~&n>aN4i#pvSLRy+=t)^JzE6Y)!@ z(~R*?8X$ys7CQ|4=9bVFGDMYoHexg=Qot7r6{8BbORITE_i7PN5k`F;3zi+&xS*o0 zxlw49_}SgW^^4Qe)eh@LXR%d6Y8@&opYGabvrj!)?@xh^ z2s|Svq3^Fg(b7h{m1nzHa>P#g_;xLrw=r@D99+z>twV9}0c;pie>#RgCmVcUHuwiF z7QgJO+eLHhB=~U7*t0cdJkLdHCJlq``S@B`IU3K(gD#K`YIZysh{*(c?HwN8C3JBR zbxnUoWaKq4@z^ldrk`ufsQP^yUWVcf($2mwVAf2!dGLflk~4VIkA?xTUY!N)WK0~R zUKkoj8l*KW*z>K=jOzP;-~Y=WI%&o$7(O|Y_=?R!Bywaj>I=wB_;$~1D)8@M88VB) z9h=Hd-azjLrzfGHwJzrA+yq07Q1k?Pz;juN1~2{<1*e~XxjD`z^)h;NV(*9bZsbXkBC>oPO|2dk;YbuAQEw{DjLI5_c zB+{uq6W+QfV>)3-q;Ya~(nHzRR8jawuF>)SpR3O=+d};@J&{n0 zuF-i%b&Mk&v2H5Tq`Ar6Fa^GurhCrj;HovOcBMEgqxh?|8#0aNpAyu^A;Kri_@`-12 zM5rLHk-F?GS)Y*!F9l?&4)PMl?WDgm3UW<-6s>y_q9dA{dXmn}N=CBL{)_g8wszai zTy%zX%e=HeQ@L*|-@s+=`%+l4Ay4TJOns}ZJ+r;-xG*;Do2=^UYjOux!9+A(t{Ars zTiL`@r#xml18Ni1RY)FCLd)qQh|_k<`E;N0F?MAi*ziJdb8{gjRW)ZRr`I%8;VmrK zH1-&&l=2F5Rug8IF$o>&rpy!v{$9iipl{D+*YGK2Yp~Nb<{WnSdw8^$QAQve&1dX7 zRS)^x*(Kiv5MogKPUiRe{H32)wzO^Sq(?oe#fVjJA(_Czj?UWdUWCd*b{EYUQn7X) zS}Djnh8_=`Tt3yJ=7L+*_GHpuDAl#+w00RuKqIfpd_I^i?QuzukiLeX{CTU(>Rce& zDgT&CE^;FbkssThS-knIN{E|yQ%x&0ElJ`~KR$Z1X(&QqLevgFik}xEfg0CdngFGoI&X zF0XvALS(3WZ6H(?Tj{$3^0TJNOfe!q^A;&f0YA>g3RZtuY{bA=UF`v3M9`x`8$RFAOK+RyUAeq600Ke|d8tL6XHF~; z(rV4rY0i|UGOPND`o`P6mFn($x)p}1T2_gaTBs4)SwY255(apJBPS(QDg3vXCf4hi z9vZ&t=p8=Uu4@CncFudkM`;6Gqn!BtUn96%V~VMjG04Rb)UegGa4ekEs;U7+ zJkiR%OG*ee$j9(_i)I&~f-RTctQhB2vXpQVk#Wh_4HB}@70>Ov&5`3q9Ur>Ya<&$t z2u*#Avf^BGWJB8nYV5+VOv>Kh)}ZY8=SIAY_aao{g>h|1#&M0LYB8FXCENhH`(_DE z0AyvlO`j*=V6Gx&iB;Z4CwBPgT(Q>Pe5rY8#llrbg&`bM%2H%Hpd+}UDrwjd`YO}I z;P2xQ|6XAWWM(9j?Lb*3ED+12$u#N`MxbATETi+n@`QvRjL3151kdE}4s(^d5`}+J z4I>waNavC`c+JM5MwVK3T5*Yc0U-sErRb3PmPpc?@hJ!1B|8AFtn=ZMx|jILOspr3 zLb^vnglqFThgrdO6m!88iL~^F9T7RxIAMaFxyA&F^3H~gl3w7uxYO+$jPHG^FTgh; z=$iS4AF5}h?-~1r5PaKY$LHTc1(F*Av0VvLfeXR+eaN0uF-qv3{BEh?|9{$>3X(77 zv5~*^j?c9==gr5E^#(o-Bte{Ceks1F(e3-kK=3QS!)8yzu8}-sX^#4M9r>zTyzeqo z11S~qCQI*C}G$|I&8D~I42lU;s{XbwGmF=;rL@{csZ)s z?@GBE7IzBMuh#YPscsY(QXwv>cO-u8nsp~`mFewn{LIu}o3KJ!hle#jse^F>KSs;HaRsWk7a_q&VHuK&wU#!_vU$}PW*X0$({kqP>xFWn4 zBLCJ$AEXH4jgP6$gF9q0?^OMe&kCmE?pKYJWl?NC=8Q?3@NJ#En|$m{@Vw-lKVBiF z__9qb3La!>qrFEF=TfWxtzL<`cQ~j6_76Ie671r;@i^`M<;2V}Yb|S7XOZJxyG(9o zeCITpf&EEUj()~k?g)DJEjA;2@ng?5&0N}j@_|DC!O%tuj7#(NxpWusZ%~nlWKXvT zdCZngKCIUjuQjs^Cq}07TW^%u;ILUoS_sudf`H~6zH8D44na4L{N8+jtaF{DdVKX+ znKniz%23ROd{L#`pF$15``bYxQKSS-_|h@&5Lhe148-5kVd1NxhUj1MJ>l{bR)^^C zY9PHj9G>JJLc@28ya{QNG-U4V?d%ASpL*1#K81O!%17sUJHgA$;xTWF9r+yCo)`jX zCVIY;ZQv6u6i$mTW@?Ro4&_@lqff)IPOql)EGF>elaV=QW|N4Zi`vhXW~vgB2K$XV z9^U{zqJ}bM$b&9nniyahSuYY{e@)3!FMS)gP|oOc7M@(lGIX&yD~q2%Xv&H}4uS+|_NOGqA=r^fw1pTG|1TndkVto5 zbWjvzIv5ckng}p(<&kuMo#7;v&sOharE8b!EjdBTzz7o|Hw&_4K# zYnbW%2q^qDi={%N#%UL9ocPs!te7lQ@m&4t=NhhX?^~dg@In`rX;EAKkW{5NeCJBB z-4p;h8c4<$*yq{LxS}o`ONletUI{(~^yRSS9sq+Vix%uCBy^b@M7Mp_MAI9Q>?C5i zX)cvYA(o#^XX<{Kg2oUM2Me=pgJU>Yut_co%s&ol*U#|I^W%(W`Q506f4d(4iiJ{5 zLLoAT=&P*BNYE+49vj|n!XbhqNy?@#GIZuXpGmx$3))Izo@c@?W1n%%f+)#|RZc{? z=pQG!r7nUJAEpW)*nRm4L)B-7UGB#Ja&+r!DQVc+jJ4IsT9p!aRrt9HP`N^X@A*$h~%cEyodPJ;@@6W|Uyx6Xwni1Ah z1LMCW^wi((G_o`$7ND2OelF7n+%6ZQ!F;Y{C?WrGfoENIrZqp|TZ$Ag&#`P>R(@C{ z_)I-$K)x6v?g`0a28}kvYA5L65{rCPxUt;AR2lK=x(b~Xy+IL1J7!Xh);tw`m6njh z(hC5TpKF}Y6OT#$)k;=m!Y+viw}mBZSFx$JAY zmx`C6)H12%v1PG3B>F4}|Fp^mE|@%Gvp}-WP_-#-N5K*w%4521HC&_y=lXjfZJ2mC z>W@i%fWps7fl13$BcC5GuyWn?mIJ8HZry%Gx7*$6QGwtrJV!15{MWS(M zn1?%+yTN2Ny4~O&u@_{oreiKSw#F{!LY+^vb&w2#M=-&5bSGB%G$fpQKeCt!U<837 zoE8T$h4}v8L;w<`n5uE*Sr8SZ5qOgT6?hXP5B2@i{dw_(N&t+Q6odtgIG+mymHap< zfCQxR>p%{2AUn_wHM?_la{2K|dMWscVEz!%W9P+Owe<=IcqUA5$x?mkp(N6^E^-hj`zcMR}5 zGCr~l>87qVyGW{*O~nO7YN9sdfPsp>VcoEhg-s?Q&s(sb51iT*)|CwUF35hcJC@T; zJPny~7T96}CNrGJIH<>V`;zZBbZ(SaSTAT?tnbX4Fn~Ks(C_l>XvbuBqC{KTA?tD4 z9soE=BJ%AAkBpdoR>ni)5xpE)-5r;Je%YM6uBpwD&7t1n@M{_K;3WbuzfQHw%cmc$ zzs{(7I7jkgrM5InmC;z3EPryYus$j*TSt(n4uKRb+5)2@U10T%voRFhPl&hlX1aQr z`YTb@SkPS4Mym-_+~NA-8A*)?j-au*OXEj1WdABpMTwA23F43_x4vl+PAi6wKUAg- z)2l~8vl2D*?%1DP+r-%mE))?W@=_^i2Pc1zL2sZTRiiXgf^sT%O(Nqd-)p?1&4rZ9 zqs~o_fxqsoyH*$^3-d{4t8uG5D~~$ok$eEc4e|3R@CV zlyE~t)5uYmYeBwuvT1bswBL6+#qNH5sg{V!40r7A!T_h9%XBH)hRSe8R+hSL0D&=h z(c)-U0Mcayq|FG@ns2#W5&L}4gRCsC1}Br4#e<)kgkFj3V?$#}Ma@Tm{=FJv29b=y z7k&gN)wyYl>HL$-rTzvIIe~G?41XtC2P3oYp@=6Wc!)-PMCjQm%;{TN$v_7y# zrtzOUq(-3skS5K*FVaL;K%cJ{r`Zjv zy9d6oz6#7T4wk3kyD=#~c=M^A)tnWTftcL{{a~p;;QnaH=C0V`p1ct#9 z;U2@H`Z3G#oNkUv)#Q`-`C;R66Q4~j7-_%=^+#zV7B9?Rw@0B8E&XJorr93Ju*Q(6 zlssb-QhP`45Z8o`8b@&Wjl0Bo2}M8i+Eg+&ItD^03rWhGAcjxTk`HNwb3mh}^@Yu& zg~Q~OEd24&lPX=2MdyN33#vQxP9)}2)e&s=B$3hXTe{y2_}`y?do*Qxf9{;7BLTf% zA3q#=egB@Iyn|RV=17S%^^N)#$;hmpmzJipjD#O8GB za<5-5$MTyJ+S;ydp)QX1;oJNko8|rz!4YET-il@(qoOuE1t*S5z6ZrthX?ONO-EN==ErG=XzaV96dBlw5EJ}>_tTi+C23Dh;2q+@m5 zF>kCJ+qP}nPC7})wr$*!_S<mmTT%vswVW>n;p6kPYll||(z}R#9St2-4 zbmAg>BSlYJaU&kF0ZGc_LKX~yiUeYcB_ApfMzpM5vN%JfG9PYXf>fV8A5<_#5J_1- zr2NtO3+YIbWdNGY7WiM_mbwo*<9C?SXM$nSN0>kB+AjlF8r$3V{gY8tc5I`d{|yQ_ z?6B|m#6fnm)OA98N!6||SpOoLoX!Exk7sfOk`l#nnccm~3o?I>#S4mwJq5lc5*xyx zRkls*g2Vah2w{kDmTy{zAxtx#VRZAN&~Ue_I+Tt43A%A|%odel-;rt7Z|!t5OAhu6 zT6NsG2hw#=0wFc*_uiB&^%LJ?Hc-sB zJ!qHpbpArKc7EGm`{cU+Tufoh?BfhL6{5fQg~XKm+d)ZQ*gf}}ON`1R7*2=E0?Uop zhvkbUwGzq?F`QP)ds73EGKcVR=wFxOLtcYy(W`$mENPIFQ^I0Wa^ z#~oC;JE!(nkl9DS4f|VXUhVF7(K+Wn7F21TiTq{x@83{==op5c^Y44&U;J1R25_cK zT@L4zrUJFV{F}W6*6AcINZx~+COpU7GRKK*?S5_HD$#CM^Cbg|yj%1cU=s+D+;;t+ zG!Z2&a{1%zh+v#ji?=vlKp*xZ3TLtHU9!>F z?J^Kd-Ngcn>6C^zt+u*Tx;%7J@R_>yaVy-4@&z_CxpqhMqg#@M zIG)9Fv9@TD?HC1vDT~a{dPn@#Sm(R&o$2B&I^h^aq-llLRF zfpnD<6b!02VP;z|O4;nz;M3dxVyDWis(b||E(#UZcKS95N~N&NOKFVP(ubS~O5F&K z#YzhEXV7}#;B!D|$RIZi@hF5=85wQCszwZ~54z}ud@EHw(Tdo`x`!yzkdhwhMDD6f z?*NSQEG%&v*F(ZO)41%+E{8(wizEAGVW_>vuqV!+aIE+da5c$|WJbaDrxg97)#s9~ zMwKydh4kF`3Xi!IrbQ*hmm65{r$N++6ljS>xqkk%IpC3OeW`d=GT`c5FsATiCT z)vZYf{?e;lJ3u;RC;i5-4?8&t$A=%PU;zoZ{#zeFUbxucw@@ug(`D}z#p!#SURE5- zY(Nzx0vr5}v&!jE&DlCs{gc+Xwb@kDii>?J5Nn%;`7L2RX_ezbUh$mbF|gju588mU z~+>Iw{m7`@hSQdUs{v+sz;}p7-`AC&YLm$ z;N9a)Lzm;mxVU+h!To+Qh4|opB-MEPj0C)tc9IX>d>6U*NO0({-(%V}o@&Luryuzl z^*_rOz#aWSmE>YvibMVLZCsjz5FTR z28PRgy7z`Vbb?pdGG|F9nnPy927ufoT|gk4SF*aCI)&5{z%PkLZB#9XEKuQ!JIp1d zsw4>=jOuPO{&O<~2Px5i5v^i&>_Q3>@wr|7%z-MwV)zp{Xgcc>;`TYA=UdY1fcaum z-9^M>!$l=aM71ceP0AQCr2u=~C{~qrVZA+&S1IHLj2;E&m_l6JQp8^Y$v0RQ?&xxY z`7YbDqh(mg z?_aJ<(7JYmn^1#Jw;0T=5C{dHvFP5Vp2@;{3v}ba)vbl7TQJd*YI@KaSI-_!_Qq(d z^-&kh*fcDv$fK^5k~sGyOJ;DORXt8N&kly-{-QpWviPeFGbI z*u?UQNR#88uIXZ#a{LMZ&5AxI5 zD6~2nZ-i12$$YwF)y=a|(lOaF>}GV`^nU|Nu+5|P-!Ok9lvjB@Uq%D%j>O6a*mr%e z{kgd9V*XDLCDJD3snJiuJn{G}IIHfFEk#3>>z3<|ZYz&%RS6p8 zi@NASRtqy8w?oKb7{4>$jTRAu!ERhZ;>Q~0|w~?`Q=g#(fte@kEScAj( zpU$0D{=u{sn@{G=#0==n2s~*@WB85yvmTcE%PmwR2* zbya{rvt4gDK12Z4XKw_CTenWqhOIVAuG$T>Fm}%a6IE*2-?Q}ye|SG>@?-7XDy=* zI<_j>hBQ^U)b8vjN!6p%&Ytt(@oiI?KHKdrHEgFhJzlo>k_V{k5~MvQH__SHa;$XdY8e8ZLpLO{xn)hb2d5@(KBf#Rbf=`>5`%npsbHmn-ue2T@&&4l zabCZ0_kz7CNbu}J`gs}0O4m+9Sv3bCN@!ieR;Y$77-6rz;mcAr53L!swk;=bJA`#$ zZ$k0AxN{>v-gVMW%h|Y!pDx1(q<$a^0Rb1|g%=me<#7wi;$f?Iduhx(t~Y7Z?^;v_ zr-NT!aiMpyDkLyCM@xZdQfgv#0g(-g95Kk5nq_{+ryaJQ#=bOViv=S$`&m6y^gN!N@a zubfat$#1eaHPA&=QYytX(vcl=Myh6J*~4np4b0Kj=_?=F5^l?;Obgzc>@EhNg}#oe zs$UaLfQE=4eZds+-ZMu#hnhPFiP2w{#(_J|r}HOMD0Xrl`&@w%138mWY(&Ay7q3AM zgi-isO?h{+{?)0lS`G1)hl0M;`p~jm?dRC1h>hJ}_?U2y3`)Uak5A1#>zN zm6raqljoObL_y07h0O>y^DThrC18K7lPkqe-$AruWrfH96MeyogAsg!;=txI>Xos@ z8mGj#ATq)k=VTaadM;Q6O{V?i@-lx_ttEzC^q=WQF*D0e-l6nwUf2nvno{G4!<7bxgc06`ENWWQbkQfr3cm)`{!2wZ2&-43gN@#?Ek;&WL zYkWuRjbCTk+H0Jou7+c^Fe;puw3m6At+QgDd=m19O!vxkgLY!`4`Z4aIPXKXRXZ85 z2|S1rZ9IE)NTdsJD9MtCg8&cf7o14XDWlm%HjtMU^d#0Kn<{q8`aq@;l46@ls(Tfi zRQPsa&S2MhjD?M|a7YeE)^ykT!)T2jV|diOSAj(zhi2E=C0Bi z)_iIds5&wHsR66P2~o{#XVZ+j7A8{os2yi9HOI9A%4CCDz~Ih7(8!W3OQxuh%(fw_ z!6n%oaez*W>!N_b&)b1FV{UTtGKsieud@%t-Viu*Y1XjQ??l`8`p&)| zL3Ee5Q61Yc!JW^OgMdnMYwvS%u|Hq!Hq^Njs0#R0forz-OpIR9R`Q~phPLkL;CQfJ zB`{N67RqXTFyOf@+gCJI^d}jPvd9j8+dT_tI^xG#6zgr%i#IK;o!8NS^FjHqhJ`xt z84lAy1fh?#)eg@OI!bWMt`U6KtwKp64jt;XY1gG5+()6qMv)F|Kt%Q2QyQmcq<1i= zcXs&z0ghs#g+13g;mOytq1mhKbP2>8R<&%vKT?iYE{l5#O(0MSgw}gYmhvWt-iM7u zN>4hnLpl`%>913cZwB~arM;sPB%35gbW>E9I!@Dy<>-?=q<7Un7AtC?QsfSg1U@8H zNlWJ>`z^hgCHIL;0L2#v!zL>)uM66VyMM?>t=erffk(B|(T<>7`i&TJ=g>d~wizy@ zx?%xJ;79>usOo}HEW+LMHmQ4J7fHXqvpU%sMg4*P`uaQy_^U~sKUATGU{~Y)`)9ZP)#-Gy0-gtOo4Gkrza${P!F1{FTFL$Xp zMGHF<%v-TWC5K!IvO1+47^o6!pV%ZMHdXj^NeY_;MSABZp-XFSX=f)b&)huIp887@T@Rcd2kQpQdl7KOfkK5$#?3b4$vyquHn>gIAu*Q z(@IS>Q(ZRW|8vw#y0ZvliQAwEM}`-gG?xQO=ki_Z2kqK>LD6?H9G&$*R8uJ5K!Rc5 zU}iM=+5AWs@Z{He&n*gu1-(&`dF$QMNu+a088%9BxYGCodKACxZ;^n#h8Z;WF@+H{ zy{=m7U*kq1pTvVNXg-PByNY0mGyzkLKvh{M#ni@5qgk<+(tlrJZgnqJa;fsm!ii@1 z%=}0=b)t41&lW71HZu`8mIP|9crUBi?Ds3H8Y3Vx6VG?q7O^kDdl z8G&U~ugrOK-Sg_94a#p+uu{%ebEqWp&^K>$Xu=|6t2p~PcO{-QN#Tp=h;g%xSF)u~1>K8xiRCGrZ z)u;*O=%6QVc5*7GeF++0_~{hKz3#!v+pLdQUiv&fsOj6uZmiz&o%A)7KLzo03)hL8 z@;!O^Jh#Zfno;l8BDgGCz<5J&}Ro|xVVV?)Z#<@%%P&IiSSEz$clNd`A62A$t zM+1>_cN{K;(ScL6Mt(vw`Yk2oo?Pdwuc>2M=a31^mGdWd$MVbR?*j5@bTUHO?%MUp z(oUVhFx#{gY%r2A#%N#gAUHLl4?#_^bIKp?41t@+vD+I_4Rmn>f{WvK@zFG@?XbUPaS8fCwk*L$k+^sGyK_`TY7)jDFDTDj`gBJF|O^U+wppmpLw4_m|f?R>GK_2jEZ%}f$63Cb+E z4W}*bpq_%+yQy-s$ac-_iu|!mZu!Z+SygpYv-lw`y}u-Mt{w8K1R!M?+qKb4Ppv{H z{q&0RvBIW`D9*?O(pwXOnFZMC@di5hJ5wj2tCpRF*!(xYhQvI6Pg$46DWAQT`+t)% zAfvCRKkgY_?IJ!j(!(|&pjvpFm8RwpR=RC38)0G1Ombb57MUEwE7jtFeWf4=b>=xd zBjv6LBUB9{s!=)R$*6dM=KF4Hh4eC9$yzW|=}I_MIX3cuFE>NViV(hy9wsN`B;u;C z=9!W&3j#>6VkdLK79uRiJ&$FWSQZp!AyC=cahUOiykT3sRlC}Cs$J11q1K)xa9r7< z>l|l?8%-Lf&h8Ibm2I&x&eb7gdMWHX%YNJAjU(&2KleL-y&`RHYdGm`+fY^x=rq#P zw2KhvdC$%~zxRiATc1;bNpnQOtF6ay+dwgi8f35Yco1=0^E;e7zs4Ft@a365x`xJ{ z_wtsthf4YC8F66e9!(#xR2D2=5rrt2E$(}AToo^O{8>3xGRS_=y31(T?tgzhFy#ZC z)iEPWH-K=O&D;s&NicmrebV_Vh`1Q+cF@cd^?`vW%~D|0=;}F78}e}lBi+QZ{8_UN zx$aD8Pe7$H&!w$wfENqHiG9Nzo5W3I zV8Y~LB)x;F)IPcb?|+tmq>Ak!l~jj_Xx&VH?-Mb)1?jtbUyOWL5XT#2ax;{1d+7W2zE=ZqNyR4qbfHc0WUDfX!RXmillMT-?S`YnT&sE3jOGDuM@`@@;n9_My1 z!!Ruqylrc}|2p_)!0#1KBEy&98tF^Pk51tNJ8L)2uD1e|8-k+`TVLym&ik4>qGnE0!9g#2*hB+_m^850dOAXh@@4WnNbi}N2#U^ZYj<=m#f|9F z$@Yr1CV!W;(uadqFHy7dJE@)-R@t%bA<2JZ(~1bf6N!n(oXt@5=)+HRZ&u+P_%&WN z8ItqK?@OX?KERbnqz1-f5derfaY}6rxuO#b4LO1o4oCo|RuE69S-)fqT98l|G)^{a z-6wI$hPw+$?=~z7KM-B6bZbuu-YN@<>$P1rfnQkzd2Q^wF6S|+tenRHDw?jCnoMja zYu3c_;>ltbA*UpP=FzD8iOzryGG<&ZGgzkx5doqd1!mnWrFdX{L|Yyz-+Ry%S58A`^no>8* zl2~B%%0Y=01qJ1CNRQ%K43=0!w}EDd@67nnQTN;&@pmB&EVlziZJ!o4B>-h|+Omfh zp=OQmPBvPw{^f@GZB;5{p67STw5&*L)fTNn!?DejzfLHE(Y?D*xXZ=YRw{o~_0Vfp zaQbX@^oYhQ(J_!?y(JOZF~t|#rd17z#Hha5=52Y3`X;?GIXCIv@Dr?pSh(dc(SJA2 z9aJ$)&60}jSO|@Hj<)bzq*1d}R?)RZdd=o~oQ?5((T!QmK&;O~+#A^=C8~xHc8{ir zWn5i$B460E5nLqAKEt-7^PI!lW%@lmMp5nxww`E=z1 zbwws5gXZz$McDr2=?$x}JqH>9O?|1z0nQ}5@)&s%+26+(3 z$-{mq$3$>28~@pk4R{eNI}l|2e30Y*e+>^2hk{0qgm07wf^VyY(lgp2Gr674s?IBh zNQ~8mWg>si2G@F(Bi{*?a?{^BbbS~jtW>h!J#~vug`B=86g4(>&@@n0Of)cnfCv*E zaFaCCivTq_bXFv6ydsHFA$Q!nQKdN7KD{hLHb#Qn2)E^Y{VkzW8`oYpd zM$O+9YNDooP@RB}Pch&9!q-pM_AN8Mgo#W^%)z{DB|M8lHkFj?ni{%B@({}|_Qny9 z-DS27R;9q&5!I%iCqT(U8IvFmjVgdGGD?y2{@(JTd8!jw=!)jm$y64B{k^J7RAEju zYj|qXRnf%16liN!0n8lY((-cInY5coi{w2u?Hk1ziY>zaPKp0YNQ3E&=(#B)E>FN2 z5Hsj~F0K5_HTR*cOd*sxYpm<0h407uf~F)~0v$V(b zt2tJP{RF4X0&&D)hwKM0QX%(!Qn6GfG2$X~RU^eB&i#;Xhd%w8Qwru-(eokql$+MF zm~yaNNOBiws-YtmA-yTHTvPESbB^$Ae@jehB^{jT=gL%PueOkxxRHPZ?!@{!&hkH| ze~jR%+m$(RKDwD~bUH=~^Q&uqhrJx????TlH)9MST)k)@F+aLhtIe_=OT46dFfwq&?k7?s7H^cf zrd!ydtzq?s%BMGxPCsq8eYJh(rTZolA~@v^{3zNCgG)VRQz2+#tm0tGNHvERH)PD_ zMCs)ltJGU59!>Sl$_i!ssF!5|+NG8-?&>90D(;AvWn(|?-AfJx3>>{YE5+C|Dmzf} z`J=HgavS zH5m+BLtD8(de=lzrSiyzDd%I_f5I&F6p-wsBBh!>AVnHTbLCm~AuU$FI6OqrB||vj zH?6fZNu}!yu+I}0)sEwznR>RkovoJ}){i z4&R^S6ZPumQ*ou+XX?*XZ!k6e z`WO)pkwV_Z`9Xp>N-=GnB6xn-HRXo3XE|G>s{u4N)(i7eDK$zLQ_3!NN(RWarT16d zKg|T4hZ7V?(nnZLP88{3`v<8`V)Wv0iH2oYC+!$0tnl#G=i2W$%PI3$56RV+O&hdn@{2=aGNCaQ!j|o+x0QJOXX;LO@qlA$`8&GtOx|ZTbTMG= zWF5Tl+VAozsrLm1(3*o|5ozJPJA7z!HI*U%oeXA~R_SE%Qi?(U?qq486-~J-_HqCb zg;;KxGT z6Q8QSp_0N%cEfHXO}mDz{`bP3I6*<}7vMM7l%P>^l-erR z!YtY}O=hE+0I^mc@`}?%nEsV*5dc}^kO-U0KcJWr?Wc$v&(q`0P&_RbZo0{CbPmCH z2E*%P&la06HVgs$l9zC3ko47Q#R8nsjCoFP@8`P1%MD-5uraV)7+pz^>Kb0nV$^Bc zcrNC|>d@8L%68^&tUfw?%|P4AX;=$~KQPd+Cabog+wrq1bu`__S*$LZ5C?-$zcmlQ z8*wXP<50xSC+pNCFdIXxE$P{EdV^{AIpPNL;n|Tjsux8SgDZ_I*BUT#TxTA&ZOGML zgg}mxXE8;vkszlzXiX$i;YGvx+bjXSW&ykMn%Fw1e>ATwg@K_O&Dl{DKHK`7fv)cv zV|8_z3CT!651?E5hcsgP*aRFCbS47eS?DUFSi8RNc{TPWGb25?f{U#rOWrBJJ6j&9 zd(kuh(z{qn4N(7_?kLYU*A|pPapniMs2wXGgO>lWjjz(e3pp+A%CISOLfczZ zG{m5ljE(|&$jDpY8DvxSF67)=`+riMtaw9^!+v_UaoENgK>){Y3xnmNz4yF0+2U9Q zC38zj570YKTm_b_=sYEKL^Mc*HIY|dt%DW*iI+GfXLc4xpCee!Why(@!=u^IfIuCd9(TS(Yra!&jP!Wu(Q4Q-o zP~JvzrhT$BfFBX%J{Y@;?ppzcx-@WqL)f0WhfK)n%N@j)KIk=~$XcyYQu21k zd2TsIn~Bk;Jt*b{zX#$EbOofGNS@>uCwd~#2lTD_7#Fblj z*EN*HZ(Sqldy<3U6-J^u3SFj?Q#weX*~MoR{q&8di~AsZlYlc?Y5sB@W7XvjXWX2e zuu9IO;Lo5o%Gi*%Gz6xzUGu^1?dtCez6O<(1R zR|7JWNYxs=ji+iD+-&8-8HlK>HM(rIq8vWKY_4^gCzQz;RX(=ns_Qy^TO*V1w3maE z7R4My_ob+eXUg?X!oVpwX)DTv*hSId6y%gZUqk#bzwDD{@hUFMi3tZ>JxCIJOrz5u zfBoW5BjBUJRE!MoTAGwLK>g9->4j==Y;daABhF7bU9{QK_MV8ik49NT!_LM3oY@%i z)ser&C|<%g$Nm@agIBc4G?hyC2b8=0$1lSA_@7@yGsW&%!UdObHQ5rkaCIK*5^m1n zR~V&Gb=Yc$szMr_S$>>8Mq*IaDKy$d_mg=$TPp3PxmWX`CsOq#h5_rh7$$lVFYe+P z<#+o7K6B)Kl4F(yt?aWVS+zCOe+C+*(vzIlfr@2fNfkiR^=W{nrvY#(z1U12N^D2e zE%%Z*64WGrnEy~oQ@K#S;-^<8r^a}r1;k+5O(C`Z#x)NoF&q#Mbd8lsEebwQPR7ZF z-8x6o;kt%eLYj3Eo&s~Iw;v~|(a}_sjks=i#UhQub&`qHqi@BS$nvtV7@IyjNA#6? z9x%as;S*<{ovHf1Wp88TxFL0AUkdAWh}4up!qb?C9jJ=Ex143h$QQ<&+sLvA7ytKo zI;@VwnrFv@4@5OK?TPg|@G+m{VDV5H1|ChG+(%_v974yuMM$(r)@{I&t`JW9X=NE; zcAba6Ef*(+({c~8`||d#Mrh2`p$nKVe~wz~S=Z`4Zkcp1&m%^N17G)o0@=9^vv90%S(d?JW=C{!jzw zG5pV$kL{L_76WyAXz(cTujs(M50>|Smg1JZ!oB2G-gmeV=rm+ez|=BSP}-M=zI|sO z7(ydp@g^B2_fDEHAckkOEipN!BLF=AUqGrm`IBzoVfOPyx8?}jd`;P?Rf_F)*emha zQ1%1sB%gB$0OaZeON^AWlZx!Udcr2hy^D^sI`gHiwyJx?;~=(<%UPV=+-KT7*Vlo< zP@q&Gli<3rdX=z$J|@fw4Bewzt{*f7SKp#RE-aD zvh~@OEU*YXV}{`%^v`G%e1Af3rbY}3cCw8%1|jFL#fD41oI{7J-FCUuUz(bG(mUU4 zje@*lqs($$F`9|{sW>AR#Ze*9{eS~JL5divgcDSngx~y7jD04}grSUKa=6{|Rij97 zbmT!BFV!ic;!JhqH)sk8^eS4HasTM@ZsAx%g>6m}~WNKmOhiQ3YGDxCpy3ryDgE(#2`7J*QL5rOigzVBIJJNiRLx6-TZ05u9<-`hnW?JeCMTID z{Db-f1IFxG*HMaX#kX6>fd&srgnU+>_YQ*`d0yY0xJRV?NAWlYVg3Ict*6E1O0XdM0R6paV8`04@u-`57FA#l zD}HjKWvmY2NOCX3iDQRjhYw`f-+-CE1klkB^-I~VeyHo}{Ec?*Ee&2z?dgk5VK*^d zQ@fij<0rlc0PUfLxD@o}A#mRJU}Wujug~*;%15)B#nt;R-YsmT#j68Q?@=^#*jaXX z7)bPX-lb@QC5FkxEg9j~dfQ!XJRI~9L9D^(N?J=a(MAvfNs4=e*~)3Ri@bk~BBYEl z`?QOrG%>j)gGwh3IYT0_&8?yCNoQV@Gy2shvPGVeRd}ahoGdtxvo|b z4)Ji3YGe^wvak*AXc*mgm6xSuHBIPS8Z&lF&B#+&Umu0W1k#dK2n(@zXA^hTCxU-sq1oGWQzZmE_T38Ee*Sm7k|KDA>CQ zimk2!^GXbGk{BTwu`K1(G@ebuxMMhxxcH;Ppq+8$n34l<-YBV zExDcauXOUC3+}HQF$9WHQy5Jq%LU42*VXhxVe1P##GETCAr!gp)!y%e+USNvNtz>o zRHg_sS!104St<}mkcS&C{iN&u6%^)Q1;Fx}uaKhKHE4|!@Ba0FTloI~QnA^Y*CV9p z-c~!L==_;xoFFdhQL2%&Gxm~VG`S*heWSy;uZ*xJC;1(rVn9iPbJg+~H6Wh&c!iHWqAl?eJ<{c$c45f%@pBiS|GT5EJYZZ#`6auPD;XGClB-R^V&FEK zNJOC@5eQ33k%S+D%l_^S_n3tk%3oG6OU0Gg3B);KNbXRU%pXoAB0keJOK)i~(-5^Y zz7DcQEpo8&Ob&k2$^VMlTU&kRf`4ZC8}~At4VyTJ8F996<9$TlD&%>>yTL%WWsBkvo1Tl#S}{Gil_# z8Ew}|?jz@o@Xw_p&nqq!GLlEt0CC?VNk4GqXGQlh(*#8;d7=XkO)Czf9%I!cXsvEp zd*%1Pfs6Q_o!*T1x`%C32)fuPBy-lgast`o{NMDfybb}@vihP5E9_B9roeO8eW|Lf zM@C!eOiy%|#I?BSSK`ci)CK!pDJnh$aMbcF`5Ns*lk_npwsomkyhD2ET}`PO9APdS z-(hrsFrb6u7rSCOf(g7Ub077O=zPts;iK!d2QeO$4)+k3btza1F5N3wxkIgxdzbPe zqi1y&KiF48{| z%^Ip01$q_CPv&8iT25wvC)AF|)n`I7e^V5mnf;xVXd-QbSO^m*b(s%R#awp6r|^sa zp@bIVrdQe=c?h{O&s=GAY`b%Z{jJ?NAThsBH;fLxk}mclA9j!i(KW%sDW|M?W&wJl zcrjl-lZqN+>y%QdDcGK`Tc%j#lsa5spz5W$9(lDZ_f}C6T|4-^Y=m|pp3+0~LoNQ5 z#FaNEI0nR=Bc@fLwguTyg-gUQK$nT@!CjFjrWii4nvxW5(Yqi87KC#u$u{M06vB+a z9NB6JAE88=kEo#((O1!s=Rv3NL5nS$9WInb?PN<~^dP^mG$5q}Nrymc3|sGsC)1Ng z^*#sRe;){&I)>40!BewcjTJlWtC;iLTi&SV$}rFa6S(nu+|yiitG$j08@v5m0U%II zX7u_9H1ll8QSMIDa*$H_TOMenGeS|E_|2f_36R>;Oh36ZB0N=iz zbrtACno34(;45#Q2X454QB5WkkE?^Y&YTI@FXGBUS+$E0^!(~Qofs6CsKuuQ*ZgW{n^PQ>{Bh? zAHpn6nMgKR7CYuhQ3j5eMZh06L{H=gjyG7-^wK4E$qo=tf0R?ZRz#Zo7IV6L1pw*i&pKDPMXC^hbN%q1Rmv~2bnMxv6B9el^SF7 zE0R0)l7L>&abck(N^E1rN#DiqoVS-?^om-qr$?66^8m6^-T#ol6MOqk$(jWzbBfL4 zX2SnVV_@!@YS3j_KjQCWwG%rO?1)hpF?URJDxbQ!hKBfkB&B<}UTN>Hu5#e*T z8(%%Ox{ATAx(eIGk7wHwr&Dn)I@h!64~EzaG0&4t&CjaARb-W zot~?dY5C$|-Kzu-*#)`YoKLgdXgPL?N=C}d2n&c@gB(D)3kLdz%!LpXIac3hl(}Kz z?2!H0E?O%|WlHrU0ofsTTO3*}kaow8Ff*OPv7G#S3rrkkH(efWw#i+D{afIcrcV5kld1fWSNWA4+rjyN zulp`gi~aG+&ZaEWipST#EXCmCkYZ>a`efSq=I`~y8!b!K!hwNPJn@W)Ip2-5 z3JaYs%8Iubuc|sq69)pox#_94s|%s4*3Se1ZiB$AK{ONp5xn_^w!z5vMX|y+XtKH0 zEK0s=lUr%B3FW3~>6r?lg~kw>(%k)EKMt95wj%wp#mA$A;g=Dnm7bhZJDG1)$Xz)B z7z4G@SnFxX5e$(_(;MOrW?h=OUGqKFV7{_eYVV~i=a`}rYc<80OjL@tghnydVYn+x zm-}p-RZpN~ zl8B4ncC0+nvzpE4FoX%Cd1HlmOO-FX_qj@m(Xeg7(eViUkrYG)!wN^aH{w)H9ADO5 zAgcbr#@P# zt&b$yz+(W(ntn2WGozVh_oNY~j~}1wUk<6o1+Oe$yx}YYe>rBqTE7s!t{lNbSHCvD1it#IZ@;H#x7ti) z^t=mPbziD)jqGdRd+&Zob*rUB+HO9DRf>halHQFwmXxcd3a_I| z6B>0Be)GP9d~$-e1sZxoeq^5}m5w^oZlH)ju7!0_kyU9?Ev?B7JCPx?qhj2)Kyfgi zi949~A+TU5QB-eV1ph!dBj@{ssaA(Z=%waQl2&-_3R~NCeHZ52MofVE{a`8@`Nb7C zucSfLGj~VDSfqS%Y_U~lxlX2xYyGym>H7Ro?56u;OHHNtlPe_RcLi$#zRsml6SU-E z%xyPUrKa!-2nWg31!yp7c^G}e^isg4_Grsgi;)M$L8h^ev)kfDIBqVoBU_PrJ72nN zhL{dJ%#5>3vYJY(*lH8TG8UV}zargJ6E)Ar@-VYLjhK6oVYqoSr&#o+5H%e(ALlU)~dZ%p9K~ zO8y&_?4m5O7wM+m=+Xvg#hqYMja7~fu!k;KPG+s50!61Gi$Nt!Qo7vYs-w&%;TB#c zE!rpv^DRZM@{p#k?s5+tCyFZ6x)a*U0n;Is-eyaE;IED94qoX|Q&~fYM*6 zC%{x;!wscqM|QF!){{$+TTmkR`14vi9F&$_YvLMi>%JFL2#^8p5WI5tWKJFaTQoc`3 zr;~6U+i@FAJ9A1WwT^IuCOfUmu3BPz5?e!^dDTR}ND^Ap|ATm!9hN-Ml|h<7&22h% zd!(xq&Gkw%av3_HoM*^=)7xS`!z6Nyk=SNb$y8C?xy)oEv52PT8@x0)0a?p&?2)zR zq+W9=g$-4Xdx~a@UK}x^FbVgG@3L%;c_BBN$*ziAXXLXC?D5evu=7d)D6= zB5^g(_Z52j=4vOl5HQwn+`yd)d56>{sjI2Fh}JKopy8pq*dSM8vYCiP=B`_ZYKyKS zMk@;4ZNx=mzLKlnPbyeq++oO$!pjd|C0KvL-C_ndU!Hj+Sqe@8JLag?u!$AlQ^jq! zP=DNFFWm=8&|OW(yC3JQRVVb2Ax1~zOos50%x7G;#0bb#>z$J9`! zTR;J4tw!91M}ZOKMd@J34Z2e7$L!_6&Hn6z$il!Uf6sw&918YBT3MG^o}V%b1XVhd z6u9}KSWZ)g<)~^b{S3@-#L%_|U=k8oWu-L})@2j${VE=Ub9RFeZnocgBlDkys&$C# zO%r|@nMByb)FDpdR~H4oZnVHrC~CM8yIQShFbWuv2Awaq5L88hvBsPq^uq@=J8pta zE(W)w*U>f6?5hn=1((~Q^hH)4{4vx^BrmF#0j-_?a{Kmh1;&>}O#5evRCBeZAj2+# z3TUL+h#jg+%SC9JVs-Vx#z#g`L1*NYN(CLKv2PBTgv!ORHJURVwKTXTFxS2}=8ZP2 zHb=hY%8$Eh`d{qbQ*&i+^eE~$>DWehY}@JBo#YqWHacE$(y?vZwr$(CowauU`<#ni zr}jrURkLQztM_7RRE_r;V{}v$e)Ly8PNMDzPKI;Ab+j#xf?eup{UA=b+tX0;Fm(0w z#0?qH$!z-B$?CPpg!oJ}1{n^y8J_W@X?E$jRIFJ>Ps{RRXcj@c9sf=!;B9|t{PlDGsi8>%4;Lq=SO z&~Db(4C!4qT*2Zq{0M=pMvI^& z81Z#gv)G)@IwHN%QX{Ua*VEXX>iF+_RA^pN3|mM-G(3O)xZI<9ohUHG4HK{9w?X>U)TVI6vjN`AFc^|l90r&!HDowW?60j`DL=xA*pCY`v z@@Z^FK9nL%OfYNVXC zgK)C~Is?vjZ&fMGi=V?If@m6A{W|wVfPlTcOeJEBQ&xC)N8}k9)%OG|IfbkL2C3S+ z|66C@iynb)H*q=QxmP;>51c5pEspHX5P&|%ugorphs4-@Z&L^(myY$|7|P_W z-c&Ng7tAG3s7isJ;H}fWvD;L|Y_#cW**%r{$4AFZb+DRpCM`rz#VJ`>@rr@*uQwA+ z|6M_$RLU*QEpsyUKSX57xdSp|;wSafb+`&ItR(AlHI+CJ?%-qXZi?``A7VNikS6LQ z{i-ho3PqM~qo7UN*;Vn41_A&2q0}#>J$za9#L>V0v)6-{`_cXrb1Hp!zu^xK^U{Bo z)!Rvjw1J^NrX{XjU{99lvj{3iIr2vAh%v57>#Nw!+o+@$pcE6#qR8}ynb>CjS!@B;fH`z-aW#Qdmj#kZK^(1 zbDC#y73su`i2NSl8Hmr)4ObSKQRZ?)6AK`)$AoFaZ5fHZJ)Mm`K3}8Z@cIp#946R~ zE505UUpNBEPN>cPgMqK90kMgm-N5yF++L>cI#M8K*;WyE7C*QJO#mR)#^kaVS5FSD z$+)$Dz;;APQ!Ug9M^oHOAGM+!v4ZB5<*p2`thGWF znA;y3qhgl7eTO*nF}(@QR(PkL)2zlarriT`xnHZ)4a6(Jw!&@x!bI-={|-+JdI=}7 zy6C2UIURvl(|eqeCZphETpPye?AMa%$M76--XHO^#`T1ErkzA!@NkeE9O1I-9xyqS zdlr+H&p&j)T0*bjP>VvXaMe&*E^WhL+sZFa8?PVtCX&M0bFMc5D!)d~AJo4JKLBs7IgHImOTeAKVIZ?PkRl1V0@3An(_&=}W-$g? zVNdA#?CjJxJ_N1TbBCK6#0#J=%ceeF#aGrqeGlvB`$$+5a6I*#gv{@q4zdVPn|oS= z=nDk;PwV5&ehxq}0Ze1>Ut%PIA3cCin`svt|?U94G@4Clg?bbM$Sh1UCBzFSY< zyAV&{MlDMUUXCXnMG3YdWbpGSSq(^BS|#EFfQOB?Z}kPjB%u#92~g`_H2TT9oGk=k z)M(oQd}PeVp4Zt*vJ!)Pr)MJ&w#i zQ;q>U))IA)J;WQJ5}9zdW5BEZ5J>UvEv)Ew8Kn+M5WloRFMJVvH{MY1HU!=+B>VGM>bFENsxG`HxI{!U zS|c72Fqs@^T^Ba9l7_;?1|Ne3SVxJc%T6-1vS(u>GGD__CJ(j|3c;Y(fD36%nvS^7 za)iomf{yWS9Li7qo$CkppA$8qxQmC)$-Akd|N5q@4~Y2#1Ge&6$@2W8adU6B^y(NKYfHV=oMz{0UG49fcR>s;LJ5e2?B`#taY~f_PjG+iZ4o zye+^kNbaGLm$uszno_VvK`KciIFD(M`gw%zy+$bW?a62=isS@7t8*iYr0 zRr1-usuWHp8@c4mOE z^X@hufOo!iP{kLB1Oap^*+A8-h)+*+h|cm0Wmi9bNf{`lDUmV@4^s33X6z?jjg8Qs zQJnUYchhs^Rfn)wHB$clj|0aG#%)Q}i5u_3-8<>8+$+yeVIB`*vzy2H(sG_9$SHmi z&K@y73^*(lJp2c)zuI=)2Lc-`{zJ-wy%w?SASy_WANM$NY~yG14d2xayLjDfZ$L{b zKybbPCTFB|NUt3|(RtWb$pbKS9AYFNLJV+58q#i3lPsJX^i0laaQ-Q9LY7=x4ZVFugRICa(f(Rfv z1kr$c3eV|2KpnS$ZFJ4M_izy1YYuIIq%O$%iWL+w9uCSmbe^337d-X(W93O&ge}~? zHQ2*_wcgk?5@h<8Q~Ztf^qnwI^S%JOS?eJ6$0Z0Sg?;p!LQ)E{Ju_6U7!>aMl ztxTCRI1L1C&pU9)m);%>QEEkYwEY!z3<^i7c$mGb581-?$k(*_AOZA4Se}l zGVylfg~rXQs%%JEsqy(5(Tu#d6Qt?+vhAgOFggtk@)$@%y`qk3FZiC*;*C_2A8*!j zvaYJye@$v}$W1M3KHa4^QDG%aJ1s1jZP0P=S8%1z&~WDr zy%It+@lel6qw2I_RG11S%4UGr4(3R{u7T$eE^R`bn#Ev|H;2roKF*UMo_iV8u3nr z-O;L`zh)F{zZR`(TOd8LIY0X5+Bxqs9B9~>eHjp>)F5dfJpC@wjMLBbEHUsDCG@uE zcX&uA_XB*HFv!5%7$)%vX|FAJjPz&k^%K!DY9lL9pwm@z=eYXj$RPK#ieH zf%ZoIBMN?05irAlG08yIc>`gkHSa(R-fC|oYM(urAb<#d*wG9?`u_ZL1||%BMcW@ z0M{eFvh4t8tV6PorFN$9u ze*;#m2pl3Nd!ht8alDdfym*D7O#KsIblkFOB|=E}fz=Q6Ds7$9UFxe{8SBmwG4s}< z9Dv5W_;X|aY{`n9q@i4pq-(Rn7-X|)n(J2K(9XHygIcy)B2P`ueN^i9KFv<3^nWY9 zaBm=r5kHc7kZqFd2pO6J&b+L5?IyV8eV?ilAFzugjifvuCg6y3=n4(X-w zcYQSVH~sA6hPNCAi;;w1Xs9V08Lu_F86x%-5&`(1Fnso2&ca3*#(@%O|5~gLR&8CZ zK53U-w#yB_JhViz;ZZc|?3U~VsIKjKgbg??XGv0{=OYAi>qa?!>M1CE4CY#3-cD9K z*2?d&d=7$E58`kX@kum1!YYkJTaQ;`2#s{W6YKuyp?VZ z)-)iPRb5|3k_-$P>(5x_z=f@vXv=yCj;Uj0SCD-LfKobQxwI>nD1A1bwNhYIf&L0d z4p7eL3E*e&g70Sfa7eg)t}kgOqtQltGkv&Ub2IE3SLeujxqDeNHWPD%AJFff1ftGT z5?kig7yDn@Z07?gLrYtnKu%k^DI{Gh4Kvspu{?wx>5(MeGidrJKuDj)o-Wz_byx06 zlb_dEDY*JA<4e#f)O?6>i3tO9aObVWW9C=X}gp7orPhnk_H8 zX`WX>kH1O1c}thb*uwD9@H`liN96n_^oM?e1@<~D!KmSo%+V(0T|gMRWw2%huU!?0 zk`NbP)xz*pysd|QWcv`sQlF2D!Y48^c&)YGk)lK-g8ZYM!*NXAslkCgNAN3Kl1!L-P2^NpcsbflfiiFXWBBFB4^uqkADG! zCrc>^U()hP+th;9oui7pKL61O(9U~M%4@3Q#R7E*%z6t}pyGaGUz(IGCJgem8#~o) zT(A19Cy$4Dvi168ke)5@5j3LpWQh93#mn0aCz=p4^+O!#QbH3XldP}s@FqCWj*YIR zipUK*a-XusgW0g2%_S*I7(n&`{~$82v9c1`6S^V|2$M3Q`i&OP{M`YLCVa8YyJ78< zCqBtpS;x;8PrY61C0t)6Wjopac2acZWsOtiym4eN-0*yKe@^1KUdmWrJwtPedY*C= z>yx3&)t$>m8&^bA zQ5@M@BlaQ_OC&0!B~3(G1(6e`<$oZL9EWTWMt6c& zV*yjI*^&?t9dv5H+OSi(mQWYY2B~`#AQ{to23M&w@UeoOY2p*^A|+@fc<}-Qez4wO z@*8=Pp^PGeZ2h7GWLdx=S4mI;N)eKoSPoo^kngd%-E}KvuPuxNXUdhu4!4z|+o6ai zmBUX;2 z+mj~E<2f%S1!x`T!ZbRR(NfN%BmS|%okK1oRWrYxeKeRGTpwjI;X4=+S|McC6A+T& z(|2H$F+9y2DG4Qxg3a8hZ#fwRPaQ!sNGM+WS%A)^;$=$d^x6s{MwY%sG1UGpXh+4E zVg^TB{|3J;WDAZHXRX0O;xZQXai6h@;^crWaB%i7ZAK>Y$qn;MJ6ylqU0k4z~9r( zA*`U{uVbfR*`;y!5@lZSEF0CYd>eC^K;XTr4 z3NpO+c;|w|b!Wxr?()a4^J^@AhhoZF?pWnt8=evHML4M&vc#@hFi+u5R6NA_;b+1Y zwF(V*W|Cg;e+I^iketpDI_(K?e7LyC^u1^0Y2r4&|IBl$%+kQh(OOgSHr{z-d_*}c3yM@_c&UB(1mM^1~aqT7u zVbKk7G7KJ;Rp>mlEXDT)5TK5*t+1spJ9@N;h(gXU=_`@3zR`|)uLi`@?AOxuLWFxzkLHEbu>@A&W#*Ane~_1jYXm#8Q}Sk{&sE)8nT> z=3t>}fj(u@JIURoUdXx4xqM8*8$_tTo8&-1ET#3N!=(2?8#ATdQL!zmq ze3TsADi;_qvG>*45ERK#C!7b<_t%Z&)INTu#IBaj5i>ewG+|xeCZyzQttm@(ZfOoW zSlnx0!|xZJe}=tw39iZT3$4^YJ~W69UU%Ei7@}-T$=!h7o~1e+N3wuIfIx!O`cB;` zce11F>Px1MR?tv7xs*KwHIDd;*bu*>ex_NXm)Zjnl4V3Kd@+ z1<40&jouD%cROl~UdY`CM%@c>HBUB++w^t5E)#xN2K`rbO3!t7B+6fVdla{Vj+Yw2 zCtshh`>l>K!x(|T?xLV;yuPEfK~(hl!V zUmfz^O%&1Ry6k%2>ULLPot`J({?VI~Bca!DQ&FbpGO*-!YXo)stNt%oZBr7N(9TGQ zdgwr)dcNcB`M$302i8c5@HN;6ggC`fBs%mVOAdlDqXE&^u|_;1*Z!?pfUOfjztr|N z--lPev+wEGe%IsWSC^NzV3**n-44-Z_aoz>?+!jUcZ9!lv5(vH7Xe*wGv9Kxr1`uV z;11N%!hCSM%l1e>KKpx|JIu)zbpc&CuuF0KJL|}o(-YJ5sXg`L(OM*EVwu+vdD`(IT*nTaIK2PVsE4(h!MhZn zUMtz=yE!Ukp793&7-hQ~c6!=2g9TseV#sm^mU??Wzp@3mySlg^s7}VU{esx6VADtKQK%k{*062Aj#DE_dm3Ltwk$+}|@} zs%|=YvNQqy|grC2`^Pbr~dc24SaR{FxJugW|}SazjyvqeP3n z5agy0!J8G6jAh#4oB7KXZc&@ZGu@FRqvZ%;jo{jg$nopJ#K)hUc1k?>*`d;2Dya>y z3WT*Vo|`S@O;Hd}cS$|;DS^eLq0_*`gFt`N&m`F6H6mMc=#sdk=LTaFpJP)3!5VOe zOk|px;?DnQ&L$2Z+8jUE;@kKU&~Z~nsK7~xo|sH22_~4S?{V&LOZdGp%*~;u;S1`9jw-tT^(D)IsCyB=wE?zpA>`|T* zUbX^sw%fQ&LCYatupM7xLtXA4*T#zz2T&eDBhFkYuU??jVTdgEJi-&pLO)PIWxnTn zm;qu=f>$VXSJJ#T<->6w;*Kj2`*Eai@dp*r5 zmgno;j7DoqNTXcfG-eI^XnPBne*D#7rL~*Cr!}t;X=PhJe-5X!q`!Olf-?o^0}H!^%U zh1^ungX~Wk9XR1U2%v=&nZ_kuH8mi>CBubmB0;`!ZdM0-*w~4fJ}Mxv63rxW{2;H{ zSQU8q92NJ7esC)#+yK|=?C6<1lah`0q2qQ!!^ve*Y5%+3ndEfE?_~8yM_bC-K0ni^ zXzY0H?sk6=S3g^t>vl8h=->c!H*R9Nq^6RBIc05^} zI@EK<0R+A8+pD#7HY7;_k~i{mKqc0m+FUbY!y}M@Wv0Q{d>2x`tNV?cJIY_sKVR0*~t^(k%+{XzqRYO5V$weqVm2h;mNau7V*%DjT1U{;iR4T!+=kjh`Y)h+iyc| z1M14!4h8H689XMUPkeIVXjFhV4ta`=%H^4(_Mh#|kJG~n!}wJ+4=Z@j8yB1-BI3SBc)oYVOIP}x(%9p=;WSAEF*ekNzo#d2LE{SU0PMqv5HaQQq)xj#A zeN9yAekW^!J+7cDuS85U&Ru(vU*fS0%o1~$<}m>$U`GLfsb$KC%j9`a)3l~3(u)So zi^v3i!DLPCPWrJh_?&4SK8xwp;$=a7GRR$!K;2*oLRB#B<;Q*ceSOS*dE<0i3#ZI7 zKiPx#Nwblyu%n%VS=3Re2AzD(%iogAU)3eoy~_go?IkuiQ`&rvdWR2Xu_JOV{(8+_ z@UPQavPox679TV?C-x)M_Nj6a2&j4$XUNcZ`B~PIqS^Oh*Jnf}rxQBvC_Nrw@xnl%L-OQr{7 z4-__A5r5qY5jZ6^tAPm>3TK$_jHHFK4aV9YYS@0DJq-I6*O#u1(F3Ab(-k?6(p|S= zCNbVpGYU(Pra@0Q!)o!~bEwNe8FcOHwp{a-K>LiCc_t*Pi-~+Z0a77xF85}Ak~50Q ziiZRxBC3RpS&RSqAtB%FXf=Lz9A2=9{l^^}*PbuOReHR)KN1=e`^itcNw>Vexf$xl z#FLZr0zVQ{1?xSHb$2W7vuy=Sb3^7J9|woj^znY!E`d=ux#aL)D{ie9pw@IgrRV3~ zFaH?$(XrCc)g0f_unWcuXRaM`f&4`|4IIufM``AUD;KlCRtG0DU?HO3)_BzuBJ_AM zM9mPC>H5?A2nq3t>K-Qg;P`El4UJh4)tdF;JUZ|+)eZJL^3-JJsJ|?vuIcbLEkA!O zY5xpPyqaQO@_HmSn0)c0*U&*4CC64$L8LN_8%dfY@27;1w=IWF4_?RKx^^i;=;dn0 zhVL?;``2`(Z%|%9e+uO#)vu;?HtWQmiJ(y-FWp}7$AP~ACx{tL8#k63q9|_M%nrq2 zD0Q+Yc-EahOzz0j*8!MD`lX;^AM87{sbaOyQ?QD5!i1~-YZY$Ye=lGVN#01LEFxbj zW;WgLQz^(S7q*x%<_lFYU;4BTRv9|trd(xXMsE59QcofeNd^0}cBD8Q&D8_EWy)dE z20rHDjc@oD(3oNFkls1pLd=?Qk2wsj%#WK(Ae3s_`qIi46!n(HWzy|FV#ac5-_DsoqxC|9Yi(%NzlDFFn?9(1VVp z)?%OgyTzB`qNE)>`au&-C+2CL@TWi!76h7|z|T~cdL3cAvwS*T|1{)TmDo6NGC#R9 z@(6z`JTJLW$*6g#(}N1-P&_{@cv5>CQV?P48m#%vH!=V2X1Mz zN?L~7x?IspN!8-~(PT#kF>Rh26`Q&UC-Vw}IJ4TU@x2kuX?G*7Hrh|N%7L=WFO+*E z;-d(tGXU@dFfqX_|Fnr+$^A(|7qu867&Umf%uZZ#W5W1)FEh~KO#JR$2R1F_T>*#U zsdSC-dz`b^xm1sSzh9l#63@=L3L>R)?uGCXz^G-hiwF2Zst+^ruyqG@HHy&gsyUezCGqhk(MmiKcWtuE_NB8Q#>`WPHl!g*P(e_Iu26D2DZj zL?@Eyi@_Yw_R)BViG|aLvlk@pwr4)G9cCvZp83FISujIH=pb&Fc6K|&UCxjO@}v73 zkSnRUXNmEdh@eiA79A)$ML~QGXGb(zYcIzkL!-6k@Fy??(fAhCW}&%*4K zbYV9`^Gghe+#d*LJQd3LhTKD7cn*n}QKbl{{9;v6eHfh1pZWa+hTCIGR!vl`R(sNB zuLB;Llp{LYM}Vr*&WENqeF~+N!?VwteOk~(!XW_mAS0)=q)2}?oj~^A;%oTUbRNyuH-W0B6sn_gG>mXzE9VQ_AhYHjLrT4K^@y;SM_E(M_t+AC&3$wmb{~MyC>Y$Y&g|-wZ!~0hPr6yKCWthTR zIjy5$OWv_dWsmeRF$8rdHu)ox1Xvr2fc&Sq6}TQ~)rg>-fPUJ&7K1+1etQwiEHFhu zdWD>sxRRN@o;UQTH~zTs#7p)uD#08%w%m!saE1%(MtoBN0A$K}t~<4p@-JzofNL2- z7K*e9-VT|SR`K#CN_7{GxRMgsmHW2g|8(Ac6HD00vCfA^DUC|oGBm&bRr>#D6PshE zxxRE<{ggtIQ5b=OsGvklxT$3qW-u~HW}gf%GJ=)VHW{dl+D?dpV6Z!9pev7qkeg>D zGfBl}FTv*U?7ph$$t!1F$jaEXEpyD&r5Bs9LfjP_emEITf5B+@gCR|`o5yrqV7khszJSVI^E-xQkI!(sOUv2ldtc;6(oPQsts9M28~ z*M6c-_|E46u}#LF%B6q#eG#oisIt)N1G7mD0(HqYATO7mR=Xrk?8*c6Yxh{v}6( z4W+bzzK1Mi%Nepwtl!8=2057xS2DV!&ec;CYq6|$sLPyMzYvW!oMvC6s z+vomnpzphbrJfJB;Hr;Ly+1`(&<;uCI$(rloIb}VH}|~M^2H5l=JZeh)9)KdCp;@Ca%!=l zx)5p-6xR^-6=vnD7j{D`GafHL3UA(w)6&<-2bLhc@4LPqW4DjVoA<|G+Os=m$y779 zdl1#IXWbd#R)LfVl$mUBIlQ2Tk1FjKgV$?QdR7ULR=9wh23dTwR4}={lc;v`mFHNY z{^m9Ia5Kqg?4?zkLuT&*cIQF`QKUJsd+n>36r9L2 zSt}mT4(o7+N6^N#_1$1U7oE4|UvzI{Igl(Bw=;!HEM&(Pla{J0sA z-b4v(x{00Jt2wmzN;w1#M{VXG1xp$mcoq|;pR($l6QSJo6qZo{aa28uz8y@UuO^%G zspE{zGl4*@vaSS5WhAjiUcccYwO3>+o$Hb4``?5A*RTN(Sl;xLFsmj(;qCh%syA=K zG|s;B#{T!8h5sCE>D9uu$Jy6sC8l^6^L50YIg6j z_#T~2CDh%$ul=d`+F)5cS!}yAy{OALGCAyY=T`J}=OCrMQ(3(>C<*pCon_MW#DWr} zF%$YO_?YxYMwZ)NjLskQA0KQbX`0Tcc^?0SNc1Q7x@mzcTzpSssdWW+Wqw*d9C_Dw z7L4Jt5kd@Y`&ALH5Q$7LV*G)q6$H}m+XJ@waH{N^|hD&Akf8z4>5{K93HotdrDyX<}x~=Gd0WV znkyo^;h%i}VLz8}d#~L^XcvrSX!OlOgUmh+l;6kN)AIA{;^Db$?Z2xDg55As2xA~C z`(>6fj7qbo&~f2K(w+yv>m&}Fn<4^9nsA#wa&7m!^WE(vs1 zDt_NhEasXSb{gDaAI;gD-Q%+ZpfHhm7d8`55rvBuc-WS*?`?gL7taD)T^z1a_8w%z zo;&=+lF21j)lE}pryyY9jYjrL$GR)k6+U58iAc$sXPtk)u&QOCz<~*Ht1)&19K|cwCKk(8e;XiqGUI zlGdz_jW=Q{hUF&KKO&+k(}@o`c353Ml9ba5E&iJL(L=@#BTYN>f6;6XWSe&qzv+k( zoreqaccj#l`STqaf0GR+&M+rfAoMh-NLKUQevT~@0b}#1JfG}#?WfMeIW2xiKqb>a znUb~5PcTxHAeYn{MgMWd&?pJ0lmEL}LwdNzeb(ZDS{p}bOx4X3x%Q*PWmj^;H!74_a~AATC;ht3EjXrPUP) z9l`!c9EiWRSQU}j1L~_raSYJawGQ%%pCN&^Y!tSc`8I3!pE=_50`Xr$N1zmOM^g|0 z2RNfm`agC8zyVUxy>-6;RO#*mr03K=LF75cA+nNikbr(y0T_s4jZp258x*MKOAXBf zfGKdK%g`Q|DenzuAE3JO?PF}eR}+c?mi!p8NC(uutLQXbVjh?NO)#?=v+Xu~eqbpk zg-Dz2)tM7T&%G%zG-khJ4zdg9bL1j#wbaz>6%Zb?>S0NBVk+v6bX+d?pH4koG0rBU zN%;GmECKmT3ie-!PyeuVY$w-L<0x#h^7Kl#^7EpX20E4|tQZl5`aRCl$SSZd=FTx-RDQj~p*ug!c%i zFto@b`#*V0zV@xNQrjxBF&GwG6&JA$+lgWmZq_+zNk>dgHX=xgJq^w}#EoBrzmz3c zcr|H{p;!`S{zzYhbZ&H5~$~kNp2i5L_-adtrAk5C#QNI_8 zeZ&F@O_?Ww42M7y_n>;qpUFZXinIN3AgJ%I=ar>5^b^o7hy`jH2fd5s^tgYaC;_>u zL5_U==%+DPHoCRsVqar=nHA!|L#82q9K}x=dhwoTfg{lTH&luRg;&Zg0qm_SzH+`} z&D)#4v=ZoR8uTpLmFHN~5rbOr|45}m%m0x|md9vX)1j8q`X%?9_F5Ud-;@2=RY~jr zEAugXn_U|cEs+TgciPJ<@6S`z;A~7_BG6J|Z~Vh|cL5(F_$Soa3~L%zCioaWcpC5W zlQb`etI<@(1<0dX<0fG^+h!`#Q^c>5)0!wcCL2ELD8d;!kJ>?D5XGZEB_^eSl0%;C`1gB1LqILc0 zyd&TC!}K(F>45r^L|>|(HPYprMW7^AU`@%J4X^}b{mw)RO6>5N5=i%IHoH+CmkZO= zH@dM+7`r;SI;$kMU$xHdMv#TygP#gnui9}p$`CIa^{uBq?EgP{YW4rnQ;!Gkt3N@6 zUR>H7*K@X+s9yZ{`_c!Zr(VzGD|Mne&X*%m7A6Qn(1yakp1;KI2B|K;xAWw1V)BeH z`8WINcactMZ7)I!L=WUTgct@J?}55nisWyz?Wn-oM{Cz6sHE9rFl#Gfg>$%xdl{ zVVz!&`dYp1CX0S_?g>WED8K6cL%#(Tq|KJ~;9e~qM-v*J0Rf#0LM1&8aed{r!b= zoE7c0urrI+RE0R`dkZ2}#AzanVWXqYj@)JtIzU<&a9pTtRf}HKQ8@oqI9(jLhK{~3+Y?ki6XFYr&6mpyKQSeBV&zjpPSTriF;Y7;72_D zYzvEFaJ9QF@hxSQp_IJiyCT>>iC}aW0#3kIm}UHIMbX7=PBDa&#QHJ=cWrkDLJ0A; zil^^{`Am%mG=D~)W_hLS?p4#(N%+JrIOMRZ|J{YYh$kP|I6uXMrFLXbKj5C+{-t7q zzzQrV46~2_Q75ryi~JTq&A##IMgfnyA!SjxacMxO02ZYk@VH}ZO{%~f?GILvXSr}D zjqfHIhaLmAF#2!n4mFJU>oHM^0#{_Y=_(^|k2kuhdTVnzsW=icq(w#Sajl}TIB~j3 z`h)@=Jx5)i@sWx{)wAHW^`2Dd>`|%cu~h0Ljonn&RQTQ5HWfTZ4?_%IlQ}+1SrPr_ zG9^$w5`1IdLz$E8dsTY`(vUtM!Z+~LfpT~dXJcbU#|WOiG=FQt?Kq##wC)o zW1CzeBgQ$Crt)4AxC>LkrJu+vSVRIop>`GN7PEhuqvBwzFECPFW(eJQ$nSn1xIy9E z=D;gUzir?{)&_>66{(mVIThgl`XO0NEgL)kUt@izq2eEo1|_kS=ua*56y5)#+x9p^ z$xvQ+!hh0@LBnt}t^#!sCNr$U&RmQV^-I80CiRVM66K@9``a+b#@rLO`6tl6^&~eoq%Mup*1l4JoO2?aHto2!x%C%M^bb>-x-9X-J*y%OG?E zqD^t5C+he!@9iD;^ZiaOR08;^{=|o72At;@9d|+<6b4%@KMiPy@Uf+CK97a%3y@Cs zdRD$sD$``KsO!>{nj%{XBczlYkuvmw6@{Q(#nKwN!l1~bV9QrV5sEgm`F=W2fgdbA z6f{0SpX6hPOnZ2Ho_edJ*+x8G@i>AVJ3_4%t|g6@4o)rVrTrrmyzU7VMgJ6C#jfXK z7!+fZ6At3MXzRNgb=h>{wfkilhn`N4QTQb1kxF*doUN`!#=C{i#V-EN>*gvgpA1)6 zZ}I7j#3Ad$Eu+d50eKeP1w*_cP7u1N_>8>gb&&cv+|5%ypar96A@Q{CHA5;_3cs4K zrkEq$F0tWE*}rP760rBEd7UNBPh z^DS=o!}l-bGkE})N0;C(n(u|RcG6F_Gg64llo$qTsJ%`N%K#W@Kzgo zVUn~n728Wc%K;>Us?XU(RmrkK@I&^ncIl%goPP7#E`bytlsPXE=_KW5Z0IE5(_UYa*OcQ6q#LGo@c%5PKGkK7KL}Ls0avJLMzq7Nj5x>9Oko0%`1DopYnWZk-#tr%W1=jJZ?)Y7dNj@u;a(T5W~v zlJk%cOL*$^dFUavMkSw+AV!U*EGVS^ys;?`EDYWs;K%|oLLFKrddL$MgE78s=$%J5 zj$*i|{N$J|_i~LBh@DrpN}=nU4RY0^HczN$C}ag=h-{6Pw$E{Y7U9Qj?p(auORE1BWm#97|5u z%gGLzygFRkqV7`bz}~FtTUU(R*r$n1LjF!$zPl--giYDmD+v2j43{Gq_5f)A5O9V^ zB?B5gd=$pH$s+kZ$ew9JNChdjmfpX;tvF954dj11rXqH4ETD)u&PIuDDDfc87qpNw zz4vC+=Q(~EZdGZWeTx16eCq$or}%o6dwJid>c}Z({~*{?u2Q!AiafmPYUrWjJqg`r z+LoQ!-sxyLTDX9`dEV-~mc99X{Zi#0*nrDzzHV;5(^Cgw(_wt&=|XAyi~|CAA+RB% z2#WTIKrj?W22!uUurPqLuYMeMt#0=`ynSe77$~-LcM#}jN()|DJ9r;tb_I9Ce~D2V zOyaxL=5)L;iTZvO!KQW!rrd=1`PXsq%%bRFWq;UQ-$XGPMt4pLbRS%D`gFryE!1V^ z9FDlU9Ax%*sDQRc@@!dJ9vi%_dTqip*}gcI(5u z8!CIz09us8`=&iw18RQSh$$KuDpuUqpt|4=<;@&y?k6Zd) z&OW?Gp)Lab?+(J130YpfXAHaD=KK0bRqnMj8zLDGK2iNH#FE_`UCT2ss=UV$4+UQC z`pYBIH^8ki*@J;GS-f?3IH8n*n5mOd*Tfc4*kM}_DV!QST|_WqzXDSJ?f2=7g?}8} z?QJHFo*DBR4*ZSN4$&cphquYwBtN%b#2zMbbLa?xIVg50Dw{pQUhyceXm4K~qKZ@R zB*H!RZW=osum>+RSH2mbnQM{r>ug@IhOs^Z$~4Bm;4dzlOsd-L1m-Ru&uqP0Epau^ z`H9KW*#NhlXr=TF^B!g5lX$nuyYmDe5|e15?oO1aGVAy}Fx^Oa?|??6+VjpzL9gy*1~i=76thDa0qSY_8Y5_kcg!e-?XhH7=VJ z-_6e$OE8kdkT%iq)8Em<8~t`p38ZXRUxye-3iyQr7$4x8GjY**?k3Ts$QHA8o1Hiw zJBm!0BO2w(LoM?(buON+ji2i zZKq?~wr$&XI<{@wNhclKwvF%P`OQ34r>4&N{@FmlbBAvH zD92m*+1|F@y?!H4XEVC(hF`3QS1#ejnb+MpvhO9{j`m+9=A>h;7|bifICW)NEY#>N zSBJaCKW(ZWQ)YXD>08|sdm(>38C`~f*q?35SNa27D^MSH?0B6l^Yq|gU8dfYpSrlt zKCN)+E4XAm_&dW^@p>zEpfCo}E%svSAsSa|!{KU+6vubKo4R@u|KG=)68Bw>4_AXp zL;AYl2mdD7f>t~;(a}a``%-}> z>j3Fzy4=ny{#nM1bQtq1NEf0tkST~s;bZTX-`pFVvG1$rRENK_fPMH4xlR7QGj@w* zHeM&?gwsBJvH?GTr0ZiUSw>vT=~8~@c#PmOmEbqOBz}B z*|=~_iqY45na;oyJ6ic}e}6wxV0pQ1e;+=sO@Ro8-J4K#ue3pPhQ^F97xko*wszwB z9Xw2fyQwjK>3h6aEZbe@dQ6iVsJ5t9(~Odroe0ldd>&B3*Yl^pV*{3OkI<~eqv1;8 zUVt+@52_c@go1;qiIv%t+k+9?3jA}%`W?9rTW23*5MP!xFAsqwH6eTluUXTP*W06% zYbGZrFSu81xwDjcJcDdSBTx;4v7+lAG1yGN*sNVeb!*VnuWGB08&eIMY;0m)0YAVU zV{7VycK*%l?ZLoRD8&<^KyS``8~gm!TbxGrNlQDYj9&Uip$yPQ;(5O%UlY)#**dv} zzOy%whdY#q4jjD^0loP3T%?OdE>}TQU7)Oux4a;QK78_U-1x=^qg*{%9ISO$cdyAy z*%QI(1ykD%GnclGyHZz!4ZzGgrsRsTEMMP{55`G@_Uy;*pf7KgSD`nx?A!73!E_GR zoO;KWz~MQ3xU`5lWv6)h~nb*U}~eSEXmfF z|Fndis2ZD+uls!GAhS+}L)AJJrh|E*w~Yd)?Ll5O`TQ5%>(PV5`Fh9x=4x>H8TVD~e~@^gNp>=U;^xc3AMBg^D0re##0bAZ!8pP6;Cr<=58Pvi8uS>n@Lwd<%P z0pV0NonD%WNT|GdEk3KcjIwoJT_W%;AXj65A$0jS`m?X6tmm4zr>fS;v^Fl8b#9_( zud{Xodp;)zMbqfLaCK_w%14*-Gt!E(yTJv42GTOAJ3oeG$Tg+ecrEKZCY^>4gG?W_Y2m#L@JVA`~aV zfX`s`gZ|!^uZA^#C?=42zxNF@C%%3@JaJWpz)J3A|7(1I+`Z}f9pXR2vH`7_1&x-v z(p`a7_~DvtioA}K&^C%bJVklGsXIF-Tv?admU>X_jcw=yKQB6zX=LQ_e&V>H`IKQ_ z1{B6SQRP=t2}bYh$e5>5rUpYKSeEZC&4{A3aHU7D8(CO(R&l(^;2}0kaoE?d$7~ysG*_m6v^R#O zbd>ehTu^g5WFzd|)P~IFf;M<@tCA`hy^r6cxdzrvdbhsi2jPez{zJvoW@~@|yFvw%njMPm zB>v-=K*}=--&rK12?N10+L^GC)qHU!OQ74*(=VJ=Q+#JO?RIj2>}N{a99p4ob;j?x znb+AO{!7pEf=yKDs0K9*)vYen-iFNHd;r)5X{Hr!1^-<(`zuypmcYglNhR_hZ7qmc zzY(`Wcf)OuALsq`5D~j?idR8E2PD|*uUn+>@bW-vekS1Q|}e&%&<}_c-T6zkeqlTB@-$Oyq$i7*k)3q=;ej9FIeUbP4mOW&w|r5Sjx(l5l~f>(+R| zI=`^c!y7@!STZp1b{{E%_&^@uyU;8Wqj7ly&Sj@uoy0Gha-u8)|BR;2pfQ;KHr7Mw zLi2+Cr^y!9Cp;3zAjHLyNHZtIM#ljDG6(qaSG9MXH6y7Rzo!0gWa{Kriga z6Z1VRC1TRc8k7zsfF0fu*7$|Aw+tGDO)>?3m`2|@kDhS`#0QRz%?L7{BG-sjp4Kqt z;;~368_)}NFI3mCxz75EWRcn%de()0Rf44Pze7_0;idkB2U_u@c377ERr%qiPq`N0!m1V>DfCW?|j?yya-kI^Zw2aZ76qlO-x!9{Z2j@UrWwH%g z8?qS4_}#>O%m=zs7z+^>@EnXGXmP>V$a=x{!$V2d)_tVKs`~G~fZ$MhiaPejCDreI zblTxDl^e0U0}ZvVjB-3Oac&H+YbK_Oq~5y_1G=UH+HP+Eg3!W|ey90WzTC}$$LCQ*jdU+TyB~x{0Yt1R8 zZ@<{6k^(|J?=A(~(jHqKTp2L1cHR20^zUMmIB zJ(P`lq%(qznyp&#?NjJv_+f23^2B=fh86J0zkpw0d=hZ2W@=C>V8s<)K0I0Y4v$JgHB<__=4rFB43+QGQ^^%zA^g zCX^-QFlD#|U~$R0{LX+G;l*_njfs0RqIaBPLOA2EO4RH48ISCJ(J>A*2-s(KNvjP#rl`h5A*I@TSx{Lpr zF`eo*Gu7iS^3f%89U__+dYYH}x9`JLj~a$gj`jy@rtT-J{Kv`ygIDH!9ZPiI3_XCm z2_)YY(sY@x)8>l#uA z0cAE|sa|9Ljywh*9Ma~1H+-)ripWfZa(}gKVtRajElkD6Hh31{6s_&;e53QtMr|QK zi;~umkCo6mB#!D@OMCGWG1@!0NRB5&*aqC+oe$j&Twf%^)1Hxje&;WJ|5y{~CC?2? z4%)R0VvLa#3WBXjxB!e;BbSz<1@d)#-sJxd0<5k30N*_Hvny&J9?_Qvz|G&xEr@+O z-|6>DexhIUs!LN(eWs?WfCou_n#lSH5sf?lIDq&t`L;tr&Q9oSAKm29m%b)Q;?Fd+ zY#m@~m|IUtb&yG?G_80;uG_w%l}B9t%}c}zWfwz0HJuXwOIR2L0OmL}s)|AQ@c5#q6nVuoV7=YITPtlIX!`-o7rOm1Zg$}QJg z^xT;GY*}K9z;1pH@3=H;FRCuCZm$dEtvxc8$Ny+XzvDsu`t#;$#yr$1+1BX|*wX_S zh|A$GI#BN&7>-l1WCu%aN*CEn=fze*qQi*X_~F5Lm>~@;{qWYIo3 zDvbaC!2${R&BEOrp3HeSm#ziHjsMo+M6|+!roxGnbDvSh5nGoU_fz6ck*68*gm8+S zpK4J=KT9JC&(hZ1-Vg1W;@#4fXHyn^*y%As)D~NG;bfBRs*c8VFp`vhV22dB;96Y? zsO9zjJAqXn#eVSb0f?iu+<)g)*FFPs#{pfdmYb<6KNlnrP^J2qeg%;3RNMELwW^}| z_K!l`Ar{j2(}glL44wf=>xM>rdCg6|Ec`L#z?!;J(@rF($erFHxBeHm=j*JFSG`xe z2QOgz&%JITz3pE+YYuc(Q~TVo0=QEs*@DssMzpvwFDq=%G)wT;DxsSzP|lG@wsgbtTayD?c76q3 zB8FCa$mv2D76Y$c&}fT`u~c9*4nZ-W+6mR;55HIlK36t|^?zn!f8uwK84<~%YsQfWloeY19Rj8fE1i`A*t zt-1FvvW9PqcP&zPRG{A8M{jcDUMgeWDx*FsqrTopi*o$bsa`L%=M|`+sUE=_tCgPQd63aQ9Xg%FLr~H<8G~$WG0Xcj#C>VUJoJS%&m=|K+|Z9z^|9 z3!AO+dPlqZMuDXkcBw>xXSUI_-^OO{OhKqtM%a7!I8=>_v{Xif(R5{&7m?vz_=Dz0 zV3&~)oZ5d=MMBC;@j7Vjf8=Ilcv=~~0}U2s=W3i<41$iKVsJ|`xn>#_K=Zj&?r*^R zcc5a7C}Wf)BRm-Mttn%w-uRzBj!dIsImZ!Bb4D_Ku#Q%vV#|9`8(&Yvyp^#W zXaCE9E!Cu8Gs|73Tu=^lrk1z!8G7;*lKs4>o+Ug(8?f^29bDTROrEpvt%PgBeq0Yu{(R zE)1M6I&uE!IYZ()Rv7Vnsg|$$PWR^gMZ%_L%Th-QO)H%=~lvDT&A@OH%h5LPOiB!n%lmR)p|i~%(A#iE8VbkzLvg=l-BrF zJV?9U3is0$gkB@{q<##}`eKEFP~iRh%y^Baa(tcEey`mG-{!V)dWbf@v9Mwti5>Ye zk()ZJ8up>Rau>Cvs~Bou;!;lDed_ zI;79K`E+Gy*L3H|E5@}uDEK3n6uBx zW}b0dt)qkps+)W2kl(H{R&`OTIRZPu%US%Fr zHC#8to_4QFW(}=LBDV}fAsgNqy#-56*VRGuL=m@iHhHjN&GBt=WW7ABzcA1g>K_^u zQ=G$)ERW)iUnm8;s};^!R)nINH#3AQ1I6g7NJcrPUlwPNg9`A)8E2nOqJ>~9)Y3h| z{scOKR4ZKY_%~QCvmlo$n~1?E?YhzI3bNmOd9N0%@psBt8x6N>l};-ZTc%Hn@e{VJ zVJefmb`t73A>jR-T0t8h$})qSvqcweNmn&QGjkLh1X{`)f?S>G(d`M1OruSs=c4Sd zkJA(gahNX1Bx7}pR8e!pd9lPf%uJe`6sMiy=I-Wh1LfXdv{UrebqAYW%G1uN%DNZR zc|E3M%*01gQeR|AeUW)Uj6`8+g~OEiYM&jl4)5FDM3XvjHgt$#K~vA+wcFwgY|ixV z=Lv<7GoOC566TPu#aDrzwI_Qq2i*sVtkA#de9tFE5qnS!w(c>} z;%eSDWTW`A>yEGjr>0eDtsfL_&%aSMYM_l{^&WLDquss%k?c8^{PP*nLq>qPXSiO@;ro!{3Xc&W zy~skF57JpKC64v}?ceUY+UK;DpE>lSj=XAnKW1vL*(t34RI8jq`2J*gf0)H}M4pRq zlwl=0NQCGU-rkpvS@!oP{jp>O=v@x*eAXcX-cEY7a2Bfmth}B}csLfM?=-$WuRm75 zU09#h-mgFcT*q+02LRh22iw;>PglkxX`)$J5t?zTSY$P{`*s`sgs3?mLf67j6IN2TooI`^Hp>pZnU7yCBrR)WU(bEbTGE zfF>3g`aSqNVASEA%X&A9s=id{_ngnGGyj6*0(;KK(TE$-Q6z>Sza5JVWk%5R)b(ch zX zFzmx-U};~DZrS!(fV_Cql1I1^8}cvfmtnU?mL2SAm}>9y^%E+>f8%*V_rJLNU~3)r zbMUh1KIz`0`iP@{f|pP@lb7p?yci$wDhfoHo+1I|&p;deq>ZaV>%k+8l5Ellw7lxU zeuLJ3WAHe!_Vo5_Z@TG1|F&NOIHbAolt#?>uD|<`e-VayHmm@CNe#YA18)2$^H9+Y zns4<;hyec}nhAT~VdmnpJbN|@-Aj?%${_j87~$<6|H3E+Sk;`r8TIz$fH5T6m_6A+ z2LXNPSAvTVON1-=wHrXEj-IfW3`{xp}#&I34U$hKnyzDQ_NL`SFr-8a4sr3xXs%LQweij93*|IyoT5jXw z5Ji69gC9q>m+QQNUA!5!tP!8mCbSQed*F6$*zeRZqICyjj@eUR3$Q`!>Do7oWz`P3 zm-Rq_hMW=c6jRhVk$a7AOgzJ^v$zoA2i)xkKn;WvLFXFflOzPl8aUMO$)h5`5(X|% zE&Ohm=`Gmu8BSqNt&y<+#XGk(_yuWRzX~i&;xG@!5O_&b^;f|WLSU9>Ym?oqaCw6O za^)`vhe63;0%s$Aa7U1D*EML1;S80KQ-Pz6IW}fMxb#lB`V}2rOku>kMzz_LZD`g{ zueJxMn>Pd9mWc9_YZ^RH9Lw;APtCUN9U|6D8dtQ4g95t=%>{~)EWfsv{T)XALd;&Z zsud<)P?~NK1c5`AQbI(?>l2I}thVD4t3zb{dVgvktlT{int4v!FnggEE5^CS((%Jc z1hGc#753TkHXJLgJ21Y@$LTU+`&7F#)-Rs98FRo?i*#;AtEfIG+_u&&10^8VG6}h* zSIz!}IYED|rai%JAp&XB775E3jBFc7-Dp97c17R!3Dl<2I!bEa3SBpo-4c_`GTjJ* zgG%teM0Rf2wmL;Bvym#g8N?Y6_7$`yskVHf9IA^lnpt&4R3(i_aD#lNidXJjDqK`4 z?oj8UE6&hbKe6tSS(0J^HG^^!hSBMSeSW!PWFLB+yxxPIiIfItaPS|n0&IceEy;MP zS3_lRqhf_r5u;sHBaEx2Wl0sav^0Kt3w1JQ6^w@@UjZ^yV&Y+-M+9dP>573{S?>J+ zW7(mQCGm!;FpVf-?p|T@1IEgLnBv;;kD%Hsn5xKH<0C(jtRR_wW9QPjZNwt#u6SV1 z|MB3!ypFzq5#+8{qnOi*p2;#ekATnj`;t^jxEtIy3)yao^cOHM`)j)(Gk~$_3!w^C zk2rXTE%(FSn1$$(e*&2UmtXGneRZ4H19FlyKZM%OU12o1MuHnxS=*{-xgK{fi6R)6 z2rWORk+}Mnw10S}jq%E)_#rURo=$-y!HYGHRTHBzTCaPWJb(Sj&NF*dRWD5}@mAJ> zosEX+c~L!!Y7@~OQ>PAtk=mJ7F6kcvDG;AeNn17nZ{))n^t4f(L3AvahwO`Lmgj7E z+=`0Z)!O$neX7NY9PSwHQLtVj2GZqRn6-BxsdO+9@gNP89gLq>o)wr_UG&Ul=#CFP8rgSEl9QD!hYu;)s^ zcFnV+mpGy*-NcSpS!f)#(?32VH3++$lzc?O5@==?{0mCQfC0=fwfizIF~hHZ0L{`= z-;S_JW7ZeiC>X3|GzhMq=@%%CZ+@^HmJ>6!|VH= z)WeQF&#x{EpKr5VorXo;n zV%JhejmqqChtkgv7At(FeEf)sZ@?;D@;3O=sj0$qez7pzcMNpr4)^6;EZ*}8OI&DL zM=wJHFD|jJuzQ8$M#tVDvR0f`z`j{eTgV_Smp!l009E^Gl;AhGkRRUXGej#~Bm!t? zLfHprgd)*EGS%nT`Q236CCGq*MT~J<7C3P8e>G1!M=%!Rvv~TA}55AeMYs{;v1v zD9Q8|M)hi4?>oV>aFKkl0)?&G=$6KqCZF5_H$l3kN?a9hMJM@E1q9#imGTmAhEJ&7 zx#g`Q*V2SKrj2*x3_tuidk9_5lBeoXXjCVL%rN_$VNiZ`{Y)n(1Di*7a$Rng@lXf* ztJPwNr}CI696*wq(L!at#ZkvZ5t~gF%hj+Xll6}ecp9a@Bwlnwq5^5`$t?zxPZN-8 zb|qYI76o*pWzdFpXe9MP{na_OU6qdK3kr-DM%|wqDT6_g$F;+Q;m9JH3 z1vYnen^#e!hRyvFgS4yiY@J&bzJ*%zhohpXjJJLdrtI1wO;tP}>Zbngj@A^<8%!J! zdnYdf8nJ%QlKm41`*Ro$&5LuwbDMI}`HOQ?&mCT|pAHbC?{ceD^p(f0*i zX8y0=4S!rnO-)thUv5>5i1cdftswo1DAqY-PB&R4H&4w&MTC{m272SvqUsr%E!R$& zhlm>hyHhHuexFwxb08=yIG0Di6rnH;s3}O9?ULiax!cvKs~eYf5?uR!kfbaeJS=(( zLqZfd%$V#%@~1&c>ud6F>pQ3__ZMQ6d$~KZ4Xjr=hCAz_sTtB%hrE9v6^7PLF-(-M z)4pWx3n7xv!N?@2#;gRxs31!ov<&qivhG-|mU`YY}&3ViEW?CL`UbLpUL-TKaMoXj6rw*2F}j48D9 z##jWYc`?o^y@;{I>!MB**MqlEk(NGvTn^@szHCQzC`b&}575kr#%~;>5y*&_SQXWX zd&38@w+y~QG%VCNu#ht$Tled$9b?Rc1KCba1=-#3&i0K=6n<~Mdiv^SSNgG3A zRL&_UMKR6P5aAl^6-5+y**7cHRNcih@x=1z`ZVOqUhD%A2XuaTKJfdU(l^=DT%FhD zHVL^~*yEASuyhK9RT%U-dRenJS}mP>!65iTYe4^3IS_uynBD^mI;HQS^|h)#em4#6 z)Er06u7=4Ut6kTFQVUhJV$Hc0*K`w2Em2F%fuvSLw@X<8W#1L?-m|;H%3w^n$^+?W zwjIUQ!FN+K49_!_K-6s&7?n<#Dl|Wtp?bwJy;qi0+pjQ8H!|*U8oVD_7RM;}wMHsq zjKaX>7&u;kqp|^Xx-Cc{lT2gtOnmR1c_qmEBL~0Qx6AFhV=DQWySv8F#i-_1NM~Fp zy=8RiOd$x(h}IUnE^dkI2J4vK7mKQf?|oHPV@q&bO;TgKv2~kDoBo(-MP|8daxL8; zJ@6G4h9kDCCP*VyO+3uWtTOh?gngHKh-dq7eOJ76eW%=D>mVOqn}!?I2a<^^+EEL2 zRdZERs}(9bf$qVq%IVvLz3n*xqCVzj+~es5xdX8wW4>Hep@L&!G}vVtZCw;K17l2q zVepu)_am!+?)s#>pRRVXS9z51s+;%@hrO~Y2Q_dPt<^5yIsz@!?NT(%HXlTeQXAE~ z(b)D23;Lkn{fE~`!B|XuCHMR2ZLj0@V!ndamMgYJcBSM!vt=W7h0u4iqn4?w-y@cP zDafL{pK+bS>uszMiuhQ~q&N9ee9xUZ^-t1bEZqf^`NW+wSg>(pF0I=IoQGPw!8Et8l&yQI5KZn8UD^1?2!@=0Wipj@7z`+II|oB1?%Vq;37%01>~Qmj4lrUR#x(#-R*qEhps2 z!GuLg0fkz4<3Mkq)|;$=@$Jl>wN%;nJ>_J3hJ96#NO5Ywd)zied!?eMqCyPud)FD( zbq{*=BLxQL(t@H~>1=`%C?wFJP>_+59k~)?*nMJdK=O8LQo7^*x!xHPRQc+!Pglty z5s4Hfv81sYLFRdxy1YMmpIZP0s*ctQa+-DQS=2X9QAvz@q42Pt%=vW(q|B`#qq-^8e>Q5q0;9zbpAak(j|34vx_QZ0 zwkRWmm#M9FgbkBW$6to~$f=aOf^oUt;g-)VtD+2+EYl$V@zT{`;UgUulZj19C9qg0 z{hIp-3#+J2Z?>=AMcc?McNRcNcXM1$V}cU8S0IK8jmX`^;0He)_1eP*OZnp|4z01qST;0HK)n7abyBxqq0WYr7bTW}Ya4Eb}cT zGXwieFfRHFfoj#!t<=P~k3u9E)X?U5UjDC)a-4tT1FW(=RK~xC!dX|t5sMVD!t1x# zy@ZIdc{XoR`pLkSg34wL-P^>VUNx)|gZ%TQU)^7;91Rv`g4A|d{9q7eq@o)-<{SvL zInqeO&mjLq2k1T+*6Up|;sOYwX(jagk0K&Ok%kaTeIV0q4U&E~T$;^zEB)#?{^}@E zT7!P-;!gC7ZxPtBJVg-d>K|n4*dFulgrpWw(*_M>x|9UlHmYRp@(4I~=w1t52>Qq! z@%cpD{FcOJdx`la!lRgZ6up@)sb)fVJ|GWpt@K%7;44D1hp7D|k`n=C0dEjQ)hz3EzlNoEEXmGqX` zC;D04LQ1cnlaJ=wyRcB7m}6UYgoxi&VJbyFdDt6*#p+IH+R-<~>GKxo%54-z3f(;a zhA&LIoiBz7e){ae;C!aLxzyH+@p5Mi#csaI*W!GspSO5yNOdAH+N#JrlA5U!Le=yn zOENP#+{PWCE$|gF){MY1edB^A0Qj1_Ak0#O7G1*kd4Ie7RG=q>rF{XvV7f#Ew~bt( zMP_Z_x3>udxnG;MJy=OCgztFfB6m^vRFH@$yfmcV;OPcKJI;Wl4&7P^!ZJl^n}Qn3!)OiStr~?EhRJ2C!C`>3$iQMvU-23!TIC;@U?95CchA~;I5m` zPe1n)SSRe~^mYxa+2W%SY?`!+@`dx=k|x%pTz?Zg9)|qVLru@^X5RHqsl|wBX|d`VzIhdm2`^KO4+D` zB%bzpT(QTGON_t=Q;KpBGSjZe;y*r=YDZ^ zSav)-T2CaF!)vgwo-AE2%6p`cqWac^s11T5>PyeJV3xy85hqqa&_*6xfYLO98KVRC z)_kE3IFM!%+wudkdm0Kp&r)Z}2VfVGEMf)*t4wFvQEjZAMxh7$8p2g}CJBh(xKRz9 z*ubjr%L13~)v96iv6Dj`VY9l)rV`Q#Xam^-!EMe1nT#<%xQSgL)!1-LzyPvH_c zd+MV~+|~`eJ;5NuVIv6b_Y$^C|j2@z7Yq6w`tE8V9gpp}5 zpziBoJ;~iX*1vUtNV)zj>H>F8zt;TpL}Z}e;DY+R3mG9wpD|J zN4I53)}OV|HLrhXsd_B=&iuqegBdL(Yv3PZBnq25$AXjA9aB_eFQ9f=Rg>JdknwUg zT`^_RIuR$hzTA46#Q2@SyG>^?vukCH-}@w>T?+=YFsp$xJ8Il(5XSyuw|2Aap)m*A zq#B)HE*HGUbdy{81a*K&{vCY+{2~fHb!ofx?HZCAUnM?mh{&9BRr$D0L(wiPFSKtdn^9g_WtWj zwFnCtN%bi3dlIo&jqG4)b2Xg9#zssm;fj4~97J1hEk7!0 zlkW){OO9}4Dx;7Xrkc=eR01gkMLaNjO3Kbrp61r}es`8@>y5BGOO?&p)+cR0?v3Zr zDzrlbzF4@L_BgAja<|b_B`SjA#)mFiEj0G4hLQ~q8y-fe0Ro$Qts7h)de_4wAr%qP zpg|~IDUIpfS6hjf#HwD5b8$$1@*1!dJH%&Z6Pd^ za_=!#yYwStS-&p6=L4h9hPIunET>{fr=L`8xASo&(v=#6p>+2agZ=?aLoG<#fNvyQ zb_NII5&D5J)S|u@M{+$M7GN{ijQ$K2bZ}C=YC7THX|AnVzCeIB3J6X# zBxc7a-04&;o25a_GJ?0;1t$$Rxt}=pGaG-!>iTwbL%Ycb7lU*6LO(KN+wk^%~X+0 zcDGa<`SY8|peoe}H4An#2i#I>OJGoaAH@|#KqrL?1#;Ur!;6eJ!L^7tK5J@Gv|L$i z-$nz?vW);^<*78t?POnl+2@{c zY$?!I1g}SO^lt|ADbqWA`$exSrNHHVo%)W~V6f~OFfi#RO9xZDugE`GT;!w#hGS0f z-A}j*Lo-x(_>{ME{lY`&X2M}Xs!}i$T&NaOo~Do&FYp#-nvqX1m+?#yt}_q&(>w)x z($<+KO$uhuOb7G9$<*Isg;AOwm6Tp69t@BET zA77oFDJaHB?Bf*uLGi(DR=@N!b84Pr^x|tgX4hvWa=)cpUeil()_4*4*SWC9RJGi0 zo_lzjp&5PnX5`9dFGgF#MJof55INbUaCjOq!NqOWQphFkdK!4ggBJ=U+zUr*aen^S zH1SwTbA0V?Y^v&Q9?_$LVa97UALY0m{BrYcQ;ssy07dXCD6BcGzWg3kct);)un?}j zTMOo!i_*r%SY83Ug?nB3w~{PB*_Q=Oxj5)3B1LI;mc&+)LVG<+93uV)WQZHR9$)iY zg-6O;HmBLto}rVV=da4OP`gNDceC_NenXhASsvts zv!vi$rhNwlLR2?Gzeo3DgN!}G^9*M>zL_s(9!})-dA;5;NJNHSk!;K7>MAx6Ptd}p z)C&O`Ftg7i_>uvj5rm~6dc8RN?_qsBLC0C}M*L$E>2N&-P`GAxM#R~`kQ4JrxH>K;3B&(|1gV0 z9MRM{Uanxwcu|S4=~2wrx#LfP0E;>NC9 zw&^gwVHA`1s>dg(qhRW!z;OfhohWWG85nlDKfd1>M(*D~%8p20AGYK%ze+ot+#8N- zy8>HW^_{3Qy+)HaITV~CcN(SFSa_0FFCrY>-66S}R;V!Xdyews)&eLB4z@8554(QWECemDM@GT8O6Ka*0wjVY%+4^kwNhwiNP@UK35|Md5^;N%&O z!!m@p>$>YOd{fG}-fds?Er1+kFV!eDe>3z80Z+>gPdD~+_E$>Qz{|I>6d6Ri$ACY4 zDJ<@R-=Xdq4?xI&fELj%JR%+*BgbbE{z#iqV(|~)iO_{P{AFt?rsj9cM}zxI-^Gqg zONY|bo4{h(CR*>t&5PIfs`o$l&#X;ptE-*RzDGjkC|tHS02?0qm@|XG*^Kwjvwe5Z z(YHs&GAkFAzbNVsNa#3*0@GIshU0T|jNgp_?H5{#klkdtz?+_0PaG81nR4J0W zu%~W{V(p_ub?MW#tsUcKqb}W(UzJ6bNVnLFJ_oL^&PMo=rCK)mS{`44XSykpTA8B@ z&d16<&*p{F1Hs3^k-;*VPq)=^40W(KAK;*AjG>1?*>r_WZjP)7^VxpEu3wuogI7f> z9V8NqI!Io%!b5yV>5X<0Z7iNLM!o~uu;h~`k>|~_t+4L>#R#y!vixE&n-wunBJYSB zo$JAnUR`f{8+N5ytvR&XSn_+UoV4f|vkj#M2{9geoddWv=#-4(IMECyGjA=|%nvpN zl107B?5t__^rVJ(DpwW;rx-L!x(?Is0y!HO!+`mn%{z$W;W?+XrQI0)^Zq>CF;WQ8 zog*)j#}z%#8jM>LRyX&**%~oh{h2be_y>ecod~m^CuTa>53ca!14xd^MVC zylc(P+&%r6(VO8~bkfjU=azBZtJh^bU`c5())iGvGY13T5i~@!#I=%UOI1`=1p2er zvP-MN#?4Ac4tR{uCqt&t1EmC!FmAfT^R+%xBpJ%z_#haO5F?o~Z}?L>7&1SfLx(`N zO5$8oEavEPXL^ONnoE^(dPiAe!u+zu(X*N}ssqOarx-2H|Mg$LsjSN_9R1`O@yj3a zG^r7xj87Nmu$MiBz}qr{z>O@CGFn_S+dY~xF;bZhCg9OoD3T$r*PbRGoZ=(<-R^0s ztKHVC@i9BxkgMsI*o?IYa(3E49&|Y5h4nb>^eC-hbGXx1Tp_Gog{d1(x4`W8w&z?Y zG26-{98o-mup~ayewq;PCnv$^v2|Mn?F8`>fVJ+dq@LgiKF zRE`Fw+U4kxCi`=2!1)GJ+Q?uR^c423u^LN<`&fb2hkwpFJ+_CO8De$W1GJ4&}vaGA3z)}820ROHfaql9X!~Wc9l(1fePp^UANcAx6<%FOJ!@W2}!V~9^Y&+PsZ2+-(NDYs% z(P~h??>5GX&mC0ffMKS&=BlW}-ZGO!zHIvENHh18wWg@L+C?XX`v)xkd&;y}4Z?Gg zt3-zUEK@Op$Zapz5YI+k+sb`lMFD)% z&hifx{6?`*Y2Wi;03&D5*G1b)^KLzu*?OvE){$bS8uGL#EP33_ZfZ2;Y!`7&=WjAu z_2xYni6;6=2OF6}$1Sl+yNh<3DW4cKeYCKnMW-;n1S#fK1`N@I`Bnt{(JB*fARJ=X z`HePZ?d9H{XSTq+*tABlsi~&TvN4r?G21`ICMsijQ(0&gLZf>jtv9j6s*bhKytjRhVUXN zW}K&f*4qtnsH%|Fe9oa`MfzEqCMj&)z?4-S@a8AW4+N`HG52w3A!O;Vnnm?o0cgE$ zI6305vrA1h(oUN}KUz^?6=oWdzd_|A(z87#NFHlw?C^4*5IES`h18NazIbH!IC=jN zo$?yG=0JVQuhv8r{s#bQK$gGz?bUiaR{eIPj-NkQC&hC#J3EpYz&VGBBC1@H`1^Hs z9#R(!Z#gCgB4uO`C*BYmZIfzVU7Po~0~!IltmDB~24Y?`0vpPWign%;agioX)+QxL zs-%n3sI0oEO`9YQvn~(oZf3eEctp8qwO}fbSA2>lEo(8#+a1#+XSP)drMV15SyAZ| z3hZhM|1>;W4~-hQByOq;|i-d%wE|3q{@T{Sq0I z(F@zZR;$haQ#Y7g*#D)zrL01DFjc4q&@TS%iDz>srwgQiB+c;Uw|DbQ)mXE4=SG^5?hzEOOvAd!~i`Z5eYJHEE<&vNuUmsT~ zk1pT5`|0_k=fBT??9)e&|1|&G;CQ1j84T6eV;DVE^RN9b;PNJEl@(zb4?gi8`tpQznr413D$SJm4+72L7+{(ycv z_LYxQZ+wTNy6vO2+u&ZmqS`)6xyeoM)@&cC+vI*9RBWH5+RV-G&}*Nh+2o#kYVD&G zo7`ewt9_halbigCQu{=;W=D6IPV={tXjag3$Z%#VhbK zLFl2cc_{Q+ZI>Fq@g2EW=6mP_@OQVX;1*-~QaE4(8@5Y|Sr8#h+Ml_1@7_&B1mo0w zgbfT@p`YGEdLLxBvvC-Yqx4l6ohHR;=%t~L=eNUZ94D`$@-&NyRK?Gx>Wx$;^!sAp znG;_V%yPJ1TyKCMV#sChGbskUORSX}z;KR=_7jnGq zi16cn9!IABK#pI^tJ+`x^}t-?sL%ix;S&>km`wo>e@4t^T>hU7+KkKpZqz0`;lB&E z3Ag@SxJ`eR1h|KDZ{_>)v=x zS>yCq@R}zl!AsH8%%}I(am-RW5LqYQbN1Y$FB2v#M{BaR%wT%h^qx!s%FhYAf@-m1 z49gF(0CeVY1M)a51tZ)|N#O_AqzPfG>D_J9Yo?5IKmcoVlZNhS&{0A9aGDDIku_4V zc=3%_Im^7DhJs@Npb3H$P`h$>OSnGsndA*Wru^!roeB2{Q`4BYqS|4E zyb>1+0fmsAkhqo*76*$TGC7=K&0|#ED2N8XHlPxm`{l}l6f6!3*RJQxY|QMJhDKmY z01E+*7&+^8%dZYwIesQTZ|y4R66q}a0~U(5CdUmO29M|^C-(}5@+G%pN2nM(pTZ$im3+ezIj?3`~XL0B1=;n9Z8Y8ifz# ztrjkdQDCS&c>-*0ts#?<+`g@KH-JP~mYb3A)0jmyxK8hAx*AxLK2n>>6fYRNS~C3v znXf&OOj*t-lxL-V7TLhN92Ya;d*y< zb!#XALE{_hlofG)%L)m9t~(ckn8A!BnBG1gi+QCnqX9jfpdg1?p6y9sM#E2JE@PTY zq42=Dd@krWg0UOIYU!12fP~V3MD9qyU&FCCS#PgraKQ?(dSlX12$se8wGiVO;$*T8 zc)suxrps50!znfU%3$(@5oEw?f7kY&(smY_aeieV3=Xd^81VlLe!%Wpf_ntfZYhLF za7-oIGQf+&upQ+yL2d~lj6H_5SXLmyal%{^UFLmh_`T`p))CLb9Ksl`$T%>I%$o-B z`JlnSWn8jZ>FH|8Q}{p{l)ooD7F-$z-%^zTW2GJlo0Z=bcx3I%rQ3!>G#Y+FK&=6B zFz=g0pk8y!1&yS=VWe>nVXqfzsKAT>hV5P25p3AX96MeUBx*EE_cHeS-QXVFtwDWi zbrZO*=U&;#ijWL2 zJE@Uk`6kN5VQGy$#toDm0j}vD&-iZQ9HX{vmj8m981)vpDbtzqF%%X*oI}fZVP^(j zwQ&5g#2>>`wY?tnny}mxU}u90Lr$lg)mv>&tu*8?gnzJag}#qEj4`p^k!9P5uRoq& zU2olKcJg=oPA`Zh$`it)VZq1J92(l(Q{K1xGL=DpxNT_O}Smih4j9dFP9#xIQNWT4imqj z27=>_)8sR<_)vJSPSCy*1J2*hdyg9m&Kj@o%V_#Co`P(WmKUy()(!FzA#EWWLqZBF z{AEcTQ8azp&)<(_-(rqshBELu;V?0UscV7@2MuwmBdz3ATk3*OSnn=T9bh z>P0L_gAHs%!<;I%l4h$>z@Slo1E&~vDOOhC{36(xqX+oxYnX@e+tp$R8wla_EiLBS zYe(itU1V5F3f1=LtogyrW`x~ue{l73Q1)bzlFRSd;G zcVMG9w8VW3{dx2E-CUyXm_4R6;3WnBHYn2-t|wO;6Nj~>P0GVI&FiYF!cHrt<1Vht zuq)aO-l}Mds!H-&tFV}jJYsE+{95kqJ^zvdh&@wbV}MHndqjbOFC-x>i6cw@L(tYp zry#jnm<^dYYIJErl9c5a>I>$hd86C0W$jTdK_IXX4u-l6LWah+aZKow;E!4en2FSa zGBP$*Wn)RgU+hIjy$;~+awk&_m4X42P>VeVxrqw8xxtvJ^t6=5&d)*bGIjR!#mj)F z6WiQvh%&vS5iVC=o)RskGYQL^Tk`c&{hqQ8oVs1l8|-MdRsEZ(?d#$ZH@L(sr{}Tz z3eP0&L(?D)wqZ{ldR;rTN$~ySi+_Lh{Kfd^N5%QmSC4FWLeRqVtEI9%06_Vj1vm36 zzwx4!ygP!8L4R;=!u^!?Hus8yRX~m_n=3Xr43}-k@6a3h*?8_2Cx-;z6elP+DJQ?y z3c^T>Jc{$Ox}UTtPt*7`4*z_-$HR%C7jJbQ=SdW6U1p9~V!(+mtsiXdfFqj#qX1d0IWu;uShnT9=rBms>{rk;)&Y|6!Ic}1M#3ztE*#B5%`*tW>@ zNm>kIjJc?$s)m)`alfx?!XLpM-ciV!1H-)~t@D!CbS<7x1FkXjID80bZ=6vQ)_`y@ z(lEc;8T8ou`8J*ef1ukU%?34}hkseH$d4$h;4x^7dVDuF^I?1N5>QY2{OWg%ax?R}qlMwt4LuZ}|y-6T$toWpNW zJ2l-RTw2{_)=XPjPrRB`6(u>S{r0R*+Pv;m5_NSL>!L_?l!bAjE0xE%f6BDT6WxU~ zOD%OH-5`i(k#~h_>SP$9h)!#~zM>Gk7Tc39lEe%6dg>X|RQ7vOqjy2eHz20b{UHf&vxgDkAm&7JBU!LNlmv3Gm#Rxci1}P-E3duy^ z{JmuqhkwCFlM3jk@Sdy97@0)%W=zQ>YyE)D6lZ@n&7rY*G^%H>fhJ)XN!wgvht2+X zbYl$hCtBaqJmGh9Ktn_M6-JU87CA zkD-p#+QkYxm&K@`E7kfFgmGcaFxV<2q!LNc}8#mn(8$2 zDHhj+O+(=a_8#jOQl4~IrAbJOyfyo`Kd=~$r6L@QOU*Kz0iHBK zan5KvW?300`56gUF#?%qksuMSbIq{tml1;aeCkcKG09-*KQH=@KK4nL7}9ZTpyNmE zMp8sm($l6*+#Wk3@tv|tx7|$89`KMKXraRKxc8YXk}53kdnTjPwD^!=nS(3Zgk`7U zU>Fn9okznRDx_ejyht~qO1U6-;OmpP_`q4E3+1d910%9W=tJ0MU0Bq071fnW+B$^u znZ%*0+9ZTU*JahDy0i_`1#5$vhAfDvZW8d%(<)8lHm~wHjuMq-b(bjBby-)2agykw zHs=Vm@@8)fV{FBBsyCRBlc=PXI*AJSyTOL7w@fan38XY%f(tbtqLkLK$e7Y$+e$W? z**c7%@Z_Gu*Ldx6Gk+XwucVPZyRpH=?|&wWO^^phD{eGK zWv4h6Dj@*pJvfF~It`*c7i$lk3xfaoFLDO&@Kz7SM zfGzDQ3txlOd|?=x8OQRPQUBxqX7xq~Nm0Q1CSVC>_u6U_jhv!YHTAyy!0)PSDcvlF zj`2eVRpPci`i8tow(J}pblbwGGWlYQuKwUqO^LA8$Rj>9Mu16kZVFOp0;4cXHEb*{ zNFh4R3v`MXaMC_>&{*Ts)qLCzPFoVSd70=W)2S-LFwayLrA?D&m9ERAExWGC3eZbv zTG8o3r>@P~FsaM1P2;i-n<~narfKppDpXvgT~g**h_M=B&a)(hi(A*%S0GJe4lx8L z`6T#mMcr;~ODnzci2i6Nv30*)U1^L~V28!v85(Quys6;)8hgC%ZUVBS#el@kYSOLT z%*#hyzFX}hMUBcrd%Rzx;=ZuEfgubdJJetG%xRI&#q zLSP*wZh(kEQS$he^@CoKaYQ}yUMU#;D|&UX1z-xNB=Ah{FEX3h4Ijcg@fj$8+1HtG zJ)F96ziBp3lEGBOA@;8PP{;+xM4&XDiR5r5_&yKLY>&?j&t=s#UEVP7_n`0CvlVR+ z%>{LAiwTqv>=jrsd>zRe*%@;1K=F8Gp2vngSK1GA4U6fvXPRCTLwc~{p6;e6nrW20 zMG&*}wCkG{@W*Btm7!_UWZv_4*81t!-sR&A@m2s^q z$u7rH;v()L9`UqNH$^WxYfS*M@+Ei#6UjkS4zn8!BFqSh5rzFK%?)HMBOhFj$*5X_ zp&VVD`<6C|zwK&=JifFJ&UV{{XH>+_x|kB3ldwwPI=Qjr!nJLLHFn6LF)ubQ*X z(Nea>t!Xzj%h9+!;H>RAx=Y=RH{3T+JYmUB+{>6PqC5=4>Ym1Inw=)moyP1PX%%D8 zT6fO!<#IFBztIa1rm@GlfB5i;GlBWb4sxaT z=OQ@`V$LPzl&Q;y*N@%aoDJAGVKF#p)GTzl9I_I|cMe*h!*xRu7>?-fM;IBAYvO`1 z`L%YwAv;^3aaYtg-J-!arln)=Jh@Tu{|Ed1o;d~ z{RWoG|do_}1#Ja;R8Z`R~fHx*W`ID2O$M(D8DK<`=nSl@6avuwf9EDq+V9O;N* z!)3S?=8A5ef#Xxz)8a;9V(P?PA8~3#iWPkG?U)-A*kVdsNlA-AJzI}1MiqYCN(9f1 zKxX=ITd6yYD)7nuz4Z@GZqqaxW3Z6HZYrE+ z{s&bim8{Y+7Oi~e$(ooXL*mJa#S|r#$DA1tRkdoprM$3o-96YiacaNi7cDL+)B>(0 zwhW<8&^+QX^^s!pL2hYFVCGuf=)pXH=H4;TXQqs?tVs3D(t+Km^ zW?xD;h}L~1au$RZVIz`qogZBK%ygda%CF3du3I0uD)E-(VKjm{kJ9M{sy z+a3M}0}EXtBReXb_tQC+_9Om%wc#%1;Kc-aF(f0fF$;MBj|0 zbn?tp=u^3iX-WYTdNoAzQ!R%ykErB>df+ zQqv~%r|F+l)016FWesYh-@r$7H&#Lj)I+q!w=<9!m+s!!W8D4glAgpw5lfBEBH9Jg zp8^C94+Q@$oxQLLfaz6!FklZ!M_1l7Yr&E57o>%`*SlP%cFL#_*Ogq7p^siX8Cj*n z@`3z|r{^!EUeDJ3qk3cj$f~1qK<5FxTY>L_&7X;|Ar8lE>+*a`x4MIU-Qrd~@P0uRM(F|Ye62Mebn9xfFK@7sRfAO7O+ z4R693XK*hObjiQLqBX%K*{cbl^!Mfx9(l=+6jYKhQE(WLK`YZo&mR5!|6M$}z@(4O ziUeM1TI6YIlnF*zv>DgTFU~zEaqv2DhfD_?!81 zJ~r?t(}*1fGgq7i-#@uHfBx**zlDGO6t35H& zMVv8sB^JX=Ms+pDy9*jXIuz0^(hg2htwI}E{1fUWCjW^p*oNcC=-cX_aWoj16!}jwlBI%z?H7pSLu2|1qOr zFqk>DF3)8T98HsSO-YkFE~9E@BkJ+M)hytsHEZa zB#lO3pwxJ9;GE&4f)UaipH{-Fd?bgdU-oV}s(eTIh2qe?RJ0OfLyyj#6mGkqkVx!a z;3p=w?Q3PO$JZhfF?eIlHNz9I#FjVgm5NEmcXLL$i^y+$-{P^r6HI7ILQ-Q6No{nu z>y7btH%4vXnGD)ZxiV}yS_A+f5W~oOS-~|(`cXBs<pmoxOZyyhDN zYC&)!oGsm-GC|9^zX1Okc<~mv($coD_qDHSAzp&J z7*?E*j^n_0?;pb9fxb9!>ZQP*c(~xC?R)g|r8x66QV+HF(J=@d?fsiJF>%DNyTD{A z8t@F}ujzf*E2QDx7yzchO=iU>dB)rvsd#_~4{=3zIK23VRjb=PYU3s@be+bq9`J5$ zR2FelWhz!t6-QmJBYDH`7!o`(@_lTxID2lGkBs)VO!YAUl`5u1Nb<5lICP?N&^t+` z+A7bJD#=vQRB@(NnCUppiWzfDJXVc`5AZplP`wn-8=4x_&TAWa|bDh1z)%SBvq@;i(Uuwa*Yo4L6`M$ba?H0yUibZoU;nkEOXfK?x{aA0(~^?GVvG ze(n2>U>1B}Kl*+l!+E0zXhAy%jvYN~HCX3|eI)AxjjXR@yikTsN_cu~h_J?Fv-#bp z2PBW`!`>Ylz|OvMJ)F7ESym-sn|CS$A)LgR7E9Wut;4YE%B&1kS%5q!^U!Aw?6ht% z?}OEiEjTm%?Xnq5$2NnFvkx2uB-ml%&Z2Rd81YB48fWo<$pnMUB>!^%pXF*mP z?}8XyS|7vc+LtnX90f(oIdr#qc-9SwR(8>>%VOA@X%jb~n9^3KO6#Ueh=@V1t zrrF~jvcc|KR-9+S`BU{qPX|LM*R~gOG~@=QD2GKc@&Zx@_pM%HR1;hlMC!p!*Yh<6 zTt>Eqs$`J`e9^zzQaqcz_FwnL@C>p2`rR!a13$35xE0q6T>#9G^dvX7@GfKvv@nWV z%avek3cB&!kkJaZaClgVJ+&L#hP7@%J*`Cf7rZ^^@-4@gOpZ~AD@Hm<`_t8jwk{C%IQfI4qQ=}aT@llHOd-8yk=lNJcbMI-eDcY`NbcM0YGzPj4t=GIp z=2yG8!wTakX(3&tHIp6&wuQWyjASg%e*Wq4PKPZ~frrR|Xm-U=q(_Y95w-{lr4U+m zv=a7QT2X>Y7{ttL!subRWuwp@n|SnkTouSglpHJ{;p0)O5uBHzHfnJNud=Nds z-%{1`-S9B0u9^H==7^3b>q(=-<{0p4RAVrU4kF32o&rKHipjN~hC1_^jr<{Q%vG@B zaL1s+OpOr_$QBjcE4&91F^ltihWE1SG%D|eJbh2xdSl}s&iBK8_U!MWnI+&S*_kTO z+87fwRZ&r}@7>DhyWNlSVYP`@tz&%AiK67Ps*=|)UPd1ZlH8$**e{4; z2cH3*l2mEZsVHrmss$yK#C4oB7;0-%1xwu&T^rZ7N`UoI2>PatRHCA&h~qqLqZrgz z(^jdfD;?zx)&zB}noWiQ$0Ka6U@)iU9e@@@x(th6_#Sk{UeHyz7d*2~`4jE0O#$ zFGBb^FY*}~-*H$Oc$R_npMr6?FC~_3ReJEQA+BqXkh!z3z0J}19&H1fX1OBPWl&JG zQeqm}n~qysX46liu&~Kdvrnmdn(ju^U^r8`9+w;kb~uws6iwkjG5#kBzU}Al$(Mcb zk$d&ND|xtS<0>n2WZ8d$pP)A~*r-G*EOZSv_p}zGX$#}FMwSiMdvpPgn-zt6qc$iE zf*G8zw-SwK6)~l6O^@gcZZI;aa3uR@%HQ*>5-z9aJ`)UKK3@FFF(AVo;pN{(P7O1? zEW^a^rjp=t#REDCnwlSAzkuBf5_6%}4qI($=-;h|8k6%@69)$UruQYdD@b$HvuZ)F zN8^VVW>nf4xYfqkFmN=U)iN)NyoM9n)+OBBfU0R%M2X>@CrAw%GBy+i+wql+rH*ZH z0jiF+M6?u>FkZs=pk)7JTTMiVH3?OiW+liY4jV{q1jbnp`QZt!MIZo%8|~$QX>%Xc zE9_M%ND&pdw$t4ba|2|xV_5)ZfCc=&bTLjs`Xi#j9FVC2D3ES#)N;iF-CRfnI!Edw zEh9X~V5X9O=&$u+!C0F|LX^_~0pT-u;8X(>?-AdDd>HURR&RE6C3~-HO#f}Tl*NCW zSGQ|@K@clj1-Kuc;Q+?;Bt8h@z3I0$W8jYf!Tu zQ&|8O#cU%ISdJKX^=ldW|xWM z;BGhyW^zc-V_1xJm}<}qQBy_*M|du%Cz)j@Le`0$aB~wjQwpQDG-NW!1IUfpVjtI==!mJGfMb{zf@nU8 z^VG%ANcerjJPL24L0ZPrPboi{CJIWohgAFfby4PVR;POElTXkYGzxC;c)$6Rz&u#M&~hS6l#ZXk{!p zgAEHVz_0_)R>GOGJIvClt+fUfsNt9FwU}&+FlcldkmVnGUe=>4KnWid+tv3(&Hwd^J91u?B@xZR@ zQz;SNSAM;uS}wt=VSx>@WkpU6o3MV0h}n_uqv}oTwR@`iv^vewJEMm$O-UO(m+shZ$`8XKZL^;#>adu!Vt#JsQ7TvfJR zth%^po4o6~sA#LC$l4-rvZ4yZnHA}+eybPgIT&m*mhd}{3rq=;Jgybe@W^JCLP0VAf{bg7VMPv(M?q+ z!H>3W)s$g~($Q~fdJl~(>CI?xOM4GjbUV!LpAn%7@_?~o^*aN?k-WjmAZY?)Dws|8 zI;n%)xb9V>L5U-GnI)e@0NZ=5kfydH*#Y9fr{5cH-N1I0+z$IJxwc8t5{Z_ZJES={ zCsi4p1+K-~C>ZuvgS#$mSu8)p>}I!+;z)!1k0leH7=((!+ll2TZ${hGg3X7Wr>29x zQ#_%D?9`OZoPD4Xm7z(fcXL#?y)ARF&y;?Q#F90|PD0ba;dysweSEA_)9lPmy!d9p z#ZQmMah3d0zr}mQvsZVTi2J$ishwRgCAhFeQyc4 zutyP<#o?Aj(_?sBB3dxTzpFvu>j-V65UkpK-hL8NFiBPqlOsV=W#j|sy_h=X*WMDZ zAhuDukB%%e@II4!>B!_X&hBEZLmert$9${Uqe&25DQpm>O6t1Fv$ks5k>?{*7902S zFiI}n*vJbr%+7cW4OLIGS@pf}ObuA(t@oy!o#FW`##f&&heDspxAy|8`&P*0L&*Go zuc@j-=a0u@`#-vehfV$I)vFhOVrMjfL6QYJh(bxz&-Vl!Mv%3KRYj=v$0A!}M(8JP zp{g`Xx;kv?whPN7ia{E*MbzYJnSu*d#dRDNf(U=itclc}5hrrdjgdVoc=_x{?4XA1 zJuozhjPtc8QJCEe*Ur~Vv_H&fc*s;%Bu&<};5l@4TEYnP3TzUUgLRTOX;bH67>5>; zFEPW#ywlBXvjFc;-Hr*gfhvz=8pWs3Lhwv^7_>oIq2|3WAdAOZ@Jv=wl2=7nger;J zBGF~1i#Ckwyv*w)1R)zXaoW~0)Sp~4G>L;4;Pcox1+ZJOPo$y%m@OFah?cYHHxvv+ zH0n67I#q;GQCD?ZL|TL0S9EDo)Vb<9mBm`cx>jcWow&E&jA%_tUci1OzOv0~t*(?Q z2XOu2PpXfr%iuj)$6ecYWu7->tQ*zVN!3MpUAJWl{yj{2U1z$~nT+vbi~K4J6xIrp zkwg(Ls6@4x)~gi}(z-mvv8m0oPoLVH_ihtsY0~BmZi%$cFvX~{DlF2Zf>YNb?R!U5NLXad= zJbY-_#jHR=kSkY`b%W|ZQGJLfwM91R#}wJ590Be!1RS<;3M;R&PU}i%NnM3qs=KU6 zqpGgju0t1(8%LYG3O76&@76~~l4KuIAqE%oNRl+EH5el)h)BehgN0DS>FAO+1v4Ro zeHtgB%JP{-8gN=ZX_8ncNzuho8+J|7DEMOB!gk2puxLxT7n;kNFj~Gw)ovNw-hV`x z@t)(mJIrX(m!9z>jiYvJ3u5)dkAgY|GZHlY&?q*AO|2&WuO(V8jcd6|IXU~LCTnww zEHezYnFi@7jfzoRmh1>lg4b-PjQ2o2AGMT+aR|_MWel6mLW7Xnomm5U{Z!k4D$jCN zg>h0AVcda9ip6JX(&b%IgEbN-d66O-gE_bd6gWM|8&e>NrV$+zhsDP#aeS%-J1w@( zTBgD}@rYbxqT`U#rnz>J3Ot1*N58S5O0f#hpYUr49cWaAZ2zxF(75)z!VF6McQOV_ zgzjM#O>jNRY+)Fq`A0qg7t7M74A>aJY$BSizCQ%<*Qk z+VF<;d6?_n6|;~N37+xOt(^9ey;k<_57-8plDOE1*5LCnEbnn@;#jX$YZDk%#V@(u zfw6f0M9LLzR*1oF&IB=5#(a^7%YH)8OY!_B!6R#X$R~iL68iPMZ9DPhAO~juarq-!49Eaq`3@yry zGHbVfdcg%zBw6jxY!M-AOt*_~6Q*c=np(#Z2+!PB|E?G0WG)@p-=CSy(2N*-~H z!I6TSf4kx>)|-|jy&P$iBjD(O_>lsY5wOA`P~j|i@iHpDani*^oRkx6?MgG{4)+Y; z5+KuM+`iG^L!mzp5Y^kTz>DQkX5)(Uc)!0WX_7i z8Ox(MjiLwpSW(VCn~_a9!flv725J z+_eRU3z4Y=j)hEv;yoNM`lcUZ)k*bDy>KfB#Cy|$M8N5mhfgpo2aNg)!b=hjvup!X zmE__~A~#TVTgIxT$@zFGdin+D&NrC6z#*X3A$S#oAG#v&4o?czlv~(83YvQ*wxT?Y zv!u9J&@MdDa9xy)4=a{=7gO=ikjU04tY!qd>zf(MVI?Lu^fPX01mg9}S+AR=C$GxX)(w@>7$oq7?dTEEcbG$Bey^s!-TPM5iJonA~KR)eb@Y%Z&=a7|~LSb` z-OWnP0nIfL5fJiq-lPyFsUe@G`GMB z4p_8<(Tqt-39Me^zs0)+vo=hVOvPzg#`u3-SjKgkX;tP`lQdbLq+J{)m7c+%rLUW6 zv8tp9qcCZkIIF6%DnfWOl{R5mcVXI8Dp6Q@b-wcQ&k`i=xooDN@+=vj+nY*Kn409u z&4>zk=aik@+~8+q)Q}Ay=sB9jXOg^co?l3Y#DKj$#j*jFLwu$nEkF(n@%t~>-`b!* zn4rW1fS6eJU~L(CLE|GQ%a!Sq01#_X2N!I{Gg{oA{i!43GQ{610lBaD*EdwG^2Qepe^veZ<9@K6>$FdV#E}Vw+6K z?u0SjAbPoRS#+ZnN5La-XtspbSTgWzWawkYQs%Rzh~p`kHi>(lRiaHwh#TPkf2!2Dv%*ElUtRb!++0ksVyxUbfI&Oy`~rdU|Yz?krX z0$a|4w=GcvuMHWhR?tz!ltVval{%(oUpW$`e3fzNPqgYF?s-35Q3lEb{o}@$ADT zd?%k#-nQ~I-9)89wk-rqilRjJs3a|oDe}vc5kcFTC>M#ohVdB-_T!)g$VRsaXWl6@ z9gWD&84{Uc0Q*POcM5bJk$c(>qc+IRSP<}8S|%VKCQt0aP=?`>qv_MfKmXu?|AlV{ zri=(-iXDM)2s__t-;3GccP9q(tN}*%1omYixzcL=4UXvqr4P^|@Zb z%io#^X+OlOFj|keV1<=|FnAn3pcD{_ZMTbGyeuoR9!KmL+$gF!cBMwP`T}F+;K15F z$lK4i)bWtVNl_+wW)W*l6P4(!Zeg#c$grFxT^Co0$|8-W1zpwFWu&XL&AlF3C3vJ& z-m0QhVc1n=8aAnlE7dkl8Rqb5Ty{-T&rX9XOvtqbJE_V-#}vz(bQF|TWht5VOJ=$E z9Bg!VvUp8A+9Wy(3G7+#GS=aQ*ekIOu%v>_SYgJR4%2jCZhu?Qy~Vh|qz$c) z$=q<`E#nGdIQ-FiZ5#y?zGa%82VM_I&zMKM?N)CoLBXv~c)`J&U{6r8hX?+j??vM_ z@*}>l(ewD|d^Z`)?9r&L-O@>&bYZ1C?g1uVQ8!573@CtC$Xn@cxw6I#e^wum?!%$& zt^30T&yJF7Ly_hkbqeZFvAqIkBGj^fN8H;y^A?*YrTrt0h>#M7nbo~(Yc}$p&DnVN zIHm73sRL(3aNf$m4Jd{{WYtc+kd*<#WOc(Go*rFYZS<9`<6sacVK~za`^|-_Ytpo8 z@*=M~5VswuoUTsWGB4U9i{S93Ie0>8+o9IbRh8Eb=*qAvXR;Trm8(OilMxqW4+}w> zSOZ)#D$xg;4XNO~!N3rasO@!WG;Ou24jjQYY~c~X>nIu1zBK@I^w9@xFTj`Be#91| z{Cm-cNuKLE1y3mowaTNWsIo?7X`6zp1U^?+rFD@__u35_k6L`_!BG8VJI)Zbcdj)d zj8*FquTVK{JKx&ADIx={oq*xcl($2!M9N!S8)cCK2GB( zi}44f%L@7N4@N9DP{eY%YLOOEmGY;Y1?L?D>Lh~wM`NU~IAS+5E|KTHCA(LmVggXp z|DU~gTW%xE(#HPldWvkSX9!3@5@&)?L0u||s@C5sNxu#~?jhMg0!WZ(fdCo_NMfrP zG2shG_|~5IBYf|7aD>BGew2O^uWzlj4|xDdRn>Gj?5UX+0p!ko-fOSpw={X4>{#9V zB5dp@n0b=a+lL)#%~Vf)p^e$rK1grv)nYGu>1`9%V}U4?HWW*a-GDUW*^`gK%Zq)_ z+F^{{hCQ6t)@;S*4Yq=??MQO5nb0sz#&*fL?-e6kaE|rAZkL;g4TNBvG|i;BF9k0% z@zW&QyV7wU=EMx$&bFz`>&<$*)%aJzLI_HR${kJO_L#WUaWm>pYqg_k`!McKyWqO+hdx1D)40dDj&-L*SM6bzC2#L+Z35I<=yKK}B8h#Eb&#zu>Ty$=TGJ0vJUMv^q zpP*9sqzrIPlkeKwV}gQY6WC+)k;2i#up{@oL~m{N|5br4kW zbF#3;H9e$@D&>?u>`aMUn37}}#YeTMMpUg^Z*?ZEdZ*rqYH_zYZ8soKS}uOv7{%>I zt2U`mr&0ZId>D5+#O#gW>)eW>X0sKK>$OqCVCVq52`Z$Fz12dkc!qh%gq}s(-c(kz z#1SWzdcCch3T6F`EZb?N?Esd=DK#qX+F|9W)3%oiRdaYmhiMbdQ&7euLGSiFyBfqW zxpcZ#v$P~$Q09=mo1F@dWMjHi>vTuezJk-q=B+hVNbHkj#dTUfm!3I~$K?kCfwFe% zhmE6Yi+IKMbXse-4}nrS>cmID&>T-&!O+W$RYqZCLY>p_0t&xubCVh&DHVk79N7d6sO@X5LgI!I6Xe>HFsgKR$VFq&(GyiN}~`eqk;F z0)%>suvh>O3DId--9>?(;?^mNCfqwob$IHNHDYAcRLbey`Ac-kJal~YtzH%a5`y@yN5MmOKPK|ah=4l_^?Bw!>BguK=XBYH10MU4PrvZlWBeE zMf2rR(Gl4l|W2Qpr?y;OgRsb1WPO*ACkpX=-!eY<5eCw@J!U~HW_K^ zY{uXhk1_D_Gl~Ab6n|V+#i`{~S=%Xxt081>5*dhk52I5~B|DtyxnSL&9?6tLiCkyC zO3#9lL~7d7%!UlZkHg1^Es*Ruc307l58#Wb(;!ZhikYKUYr~7FVLz3_Nf|UlZscio zbo+yoDA3`MlcX| zN$*JL593Kn2gVmHt1RT~ElFDElw%B)ZrLkl#2EES8Pem&Po5mV&6+w46srxfHW}=w zhm%XidY=n`h;b>Xswddr)Zn7y@sdR;XskF<2(jrj>%?eGC*8QyBn~BNcjy+Yce|s* z37xBUqcJ7=8#Qagl!A%g?6!59Qxn8208Bu$zq$xUayWP&rgHes5(j+#Sp0W&W1IUy zHeJPwz^%8Z9g(qC@gXq|HDb(0({5|1 zB4T2aj>ks$3;=VwTvu7-a9}+)Pk?M{y$L#X1B(h4E1P0Z0rV5vgsh^P$#J&(QIE8V zCbrr80L8;<+)|D&Iy^d}AvfD3NRDbW>qpJzbTVo;59?$4J888>aTK+u^-k@mR_`?1 z2;3v;->HozqgK>98kUXFJ3@SHAB?jpf;9vKz>!qNW>){JH88DL7i|7BuBN=- z(|LQ}h_A9_YEmnp6Aya9@L&>uWIGeIEGbdrphzlj*E+S@zZ!(X_EDvE)HJFUJ6lJS zdOV$u+TFu;ebTN^yNA;lrXSi!w4=M7C?Zzqu+1@g^-(uEsvnJ~jhOZ`M1@+%-HxmU z8(JCL93Lc)^&BE?iVIdcSwo!CQaPopjnH%w1*!;InR>HVZ)y)6g5}195!a z0e1!hFrUZsJL8^_{Mv2QyLXmfyS;XMr~LXX1=i$?^eIQAR0^KAGw`Wmo)eF3j;>U3 zq9Ugzg{gKC`4TG(+R!!`yP_Mtp_l zBu*j0s?3+L4H+$<S!?(%N`4{9A~aqvExM-(21(s& z@n_DgNi%NxWs>7q0wifQe23loR|e-I#~V{wc9zmJC?2ii$*D2IlE8_{vvZx4s5}FI ztmwz^#AM;y3prxhR{H9}DIp)-Z4k&PEjhwXQo1r+eG*4u91xR@x%NOBtVgAzYQbMnq%dfJPc9F}i1Sqq-nrMjZ98V((5=(aL5UkOY{a06?>B-k z_b=>^tb;P{$R4VIb~H9r=NWTE%8Et9`I&z%@n#HX&0f^8=rLi9a%e zcP1aYq_nk%vs?d)U41(c8(hLW@iG$2b^v= z<#nRUB<6u5k_A|wz?V_PbjqYItF8d^!LLQ@O-g$zFg*sGrm7(0CTN?H-n^VbE-vEr zo0hl*&qd*-=)FegD#~ZkH_aAlZw4!W9H@IbOHx}-#pj1frl8bPnpY0R)9kA!>0}eW z_VFu0`Do&aNjPl8&BNxX6CHM&E#f1m&3b1HZ0)E;a&ME^^`8OCCrE<~GFfjmjEmMS ziRgq~FrHHHE@;rNBa6}D$$l<~0|C4Z7_}5m-DH;h zg*g(O-CpoU-K33gf-z8}@x9erd;IE!V9`+jX+;m6EWiocRI?m>B*IRd z0`7P(hf6u;A9&S(YrUsHa2W-~?d(|FX#wJNOOQcnA!&DvDTdjAa zMr$-BVWnF?pc(#1#C)NNc$lf%bD>iMAE}C(VleD)uD|&&|A_yLR_ownqdHl$0Gn)R zBd>qOHc0BNby_X{OaEp6=0Dd-*lGNip!ScLfGzG2YW~0c|MS1%^(PMOAGrQ4TI|gF zck1o`T>pQ>e_!^5gC)B2WsfQ6dJ86WFrLo_V*VItVAepdN}`?vxftjrlD^|gka|-| zC$8B6Vp)@cNE`#G*BwLv6uU=#xb;Ti_4AQ@N* zO$%RBX<=mPhbDbt>mq$_Wx6U|!M#oos|~zH?B!q#lg?a5U~V{5^*8_DT7T!HrPta( zWei=daCP+`eg0eR!%pV>x2gPpp8tQue|vj-&loscHSz{ATtm)n-cf<-G$EQC2X9oZ z)}Knj>cn^&*i1$};8 z@;ERD$SEgPSf>=zwO9Vecy;x;-H^>Vr4mCNGTStgA`XjvYj}iG>n(l2^nk||A^)6=#JF3u?#5L_>x9p!?>ljs`)erpD zIM7B>bnnb77b+c-WsomP{~cc`c2V%vuRN4!cfMU@SpGvcD3)r=R;wkyV==>M1%|%# zMY_;S^@lE&OSxpyQ^P;vDarB!%rKR}AE)-U|H(A=+(gq`H2cIU(~sVI(+{QGB3{#m zQ_D+Vb<=w`i_8E~1XPLLe3>U_mFx@93l_h?Ps|JUvX*dAx^J^BnOOZy2~z=-C|o7a z4OoGCt<$vKkt7fUIV(M01%1XQ07z}3vZ=SkuIf3ZXW>Fi?I;&vKsG%jZ3TZBS6ZGwRC{;e zeo+5iMtYX3e*9_D$6To^kP?|)!xJkpK2CE9e(Hj zsCByU-Mb+_SF8`$LprOH(i>lXfBg6VPh6o7|;tDaoU+u8@@% z{t3J4|Auwz{&xCermv^g_R81Ox6IbakrxnNkQfkNNCpst^z2FR3#)N{Km#?pa^*{d@`Tv_DR$%XN+G>qk(|WTtZB5#pN%L?r zskg?5BMNxCy9d{2~N3rNKbDY6m95tthqgMT}Hm$eo?PxSQtarPUW_>blbdEZW z=IAJ{9X7l2{th;P>X|l2je4^^j_B2HyD@4X9W~pvcBeIs4?EPQPA%$0?M6fDF-P^} z8{YmFK)jGj%?^8v9QeNC8e#~` zaj2emqRR;4kI}q*y0{l`1|6vJ8O?CB6gMgfF_oVgvEi@V7&&Gik6jjHIDpuw1JsV{ zSlMkk6S^3J&1?lzGSD)J5YAxzST1^}i-23?4}lu@5tVm>_Rr)oFqzZ57^c$wrWsm#7o6_FfO@*;IzhvyO9Z(QMPE-v zWLrGycTe}|n+fN5)IZF>CyMhr#a^B1tp5ZNuXw_; zh4(w;Hu|~Sp_OQM;%2uFZ|TmcJ&ilH!^38yF=^Mj(?eR0PN#L0dR63*b~lw3d=2&5 zo-s{Et6AuoC)x9((0PFhv9U5axN}!h1{-y_$sKiTtK4z6El0)hMwY!ol1w<)Qn%Pb zuOWB9kz&)a=91SXlfdIakx^_uJWgV+Z&$9?giG`y9OdX@6aFOlh`@+{(YGhdMYiyj4zj) z^>RTE*v&&6lpi6lJ9A=)0%elAVZ4+JMpD4svwsj=m2HNjGMWwcD^zA2A(7Ey$?o64DPS>Emk3t^VDLwrOEKn15}>^B zRWnFfB!f9 z|9}5KWiyiuTB0kA!xH5A|Mb7ue8Olw;a}j|XE$`&CzpT!_x~~V^}qjL_N$T1dRCz3 zxp%2Oc=wjxuhN8y_PU_ z8r-KTx?_)Yl=MQ6YPej{5u@pSV5r1{;4fen=&u=ZCHO>bR>!m(KbV7_X^W5gt_Fo1 z1SNk=mEiCH^Z#xML0Q*Zv83n?rCf}1iBV?TyX`;ra^~3m;E%^|o<4u_t`|Ic_4Ih~ z{reww_0y91P@ouT3e@k32y<{?K10Irwu90oAwy-|!>5a^AGI-%BYrnv~oWsdRojLgI$VB*=)V#}wikrfG zVk*?-WMf`=BMk}YHiJ(O^`|EYXgMEh|9-GZ#uV*?!%ijS1(EwpNh6mW+`sRRApmn0 ze1lyWIDWJ>3`2n-jYi3GzGW!B%|%6aD)Hy>XH7!|c32$5aR`V9Q2Ydw0}g>u0&$s` z3!eI(Aj=lKx%fy=W@{b7ahi-N8jN^LZ)L_np4B)mh-~F%Gl= zGm)EuNAhX8og)Y`0$&<~XHa}jBs2s4VEXNFAro4Wk2azBcEPxvLyxX~i{>5;yrX$F zl&LK#=b_nIsFzb@H~NGCDN$lr_ z&qG)4Vlqos0{G?T49^kA0{^lrnIpIgi4zqZnG(2(o@X|dxK$^5VjQfDJ8c|_kE_+g z+LiTpPO&m@nYtl1LOh>p8Y{O15m&FSQyN3147|);}Z6%_tm^uUAO zX88f}LPGWgQ;gj_g5fryDMHjbpGS6W7RtZ1cw*qQWpoj^&~CncZpU(K$K; z@Xf@6;6YWSfx2u|UNeNo)pASQ1gGtxxA_(j2!eCk4~aM$kK-hFqJ*YjZXp`5?=E~Z zw+qZr(bYv;RA{X|UVNFILvIW&$je%c99ZXeV>*+QWM6Qxu?9C0L9{eml2sMKr9`FS zS;&kV$lfQGY6Mh-=!PX#j77mg8DOGRA%?kfkY_M zWX_|Na`q81cO28X)O_tW5a_?YC)QW$WrAU|u_W1qqhfRNAeRM?(VLlQO~(m-2Y)l~ zgsAy3`>acV345z5*rUb@7=#&{BTaO88wq}vsbI*eWD^J?ly-|35QEa9VeorKE3FDy z$2iu=or$b6D}ny9ztIsk%{gg2VdhkVV_3C@XI4Z+;A3o65Xw+RBlt|QvQRY@oZJYlHU@FS-iWFQO|J(l{9#==o2a= zQ%T~Pmjzkn>>(9>FOqhZC2cmLNzCYwHr>!LOW0=?;LOO}2PQpD3GU}>PCrOA7*6gL z0lYR@YAV4B25q9zOpz1D+CAW}hGx-PB zlBijwP(wllW;1~|&k!&(kDot5V3U2fq}XoI@3b062kptWv5M0Ff`KTkVC{PW)CYy+6UaoxW$apEna+t{(d{cElfLZ zc>fQ_f4VJP^+`P19uCvT45-5F+O=l4|4PP_H;vsy5Muqt8TmTr5PL*`x?O1|-XcvE1 zuju8g=U)|{tj$nH;a@~HlbRH6{=nZV{0)a~r)5TN5=Z~|E=$Gbh{TI6*~&u z)QzxRxPVyI^AW#Ex5~=Ie>GrgK;S_T^1uK5&p{|3ITAr5pJIB$Gia#B%Cw4_b9Rg3 z|L$2!SXvl7&`1mMOL!%pHe zD?!6NQodI*d6+x%jYK+L0mBlx+^{rk_t2Ib@{{5kj`(krB9}@Qs z?AJ|_%Y+d!u$josILlCWYe*H03etfT=CMYb%0}uruF#onY&6m7LO9Wi(-I;H+dNt* z5@J^Kz}`%=kFyD9#$?`P7Lj}g(?U`?T`-@lbe<{Oev->~F7yYTt9bfi2VFRk^k}#e zP8S@3%(PaGHYU11{=7ooUB)Je7V%uM4O9q_6a_F62!%JGsizC*VgPNZ|d*{=t>g_T-0 zNPB>u(U7qXE%XFq7{>7gLO3Hk${cav!6M$IWpt*Sn)_fSYA#SqbGtLnG|jY1-!SQe#-TGH_1b0^Od)zlVq7_<(zGoM=^(IM~;!! zYhw$<7}F1XcQJpzU9iXvJiTO-%~oiH7oA$YX`JMw%2h$m1m48yqFJfcYOE_jY&|0i zFEu|HXBd}zl7tu<9HWP0{!BJYIe~GqqVp~}`A!%9z!oZ2qZf9@NU&BpQgR%Q zVy2r{jLy*|G02nHPu^?*lk#4$dM&(-B--7{i{_M{F1{CN0zn{>Qi8uKw58(da|GoH zqc?f96tl@7ugO8Oniho{gDOSnsophCL9p@kp9=A-ThL`7qd|~t>>*55RK3Sd^7-_0 zZzYv<$+5f>YJq7a zKPgvy6|LATc*lzt`pP6O(ZpXg=(i4SR_DZN(^=hVEEzOn2Ue^~AWoWscwtzz4OrDf zZ*5W|NFSS(OT;*u!F>M4L)-FFQqkR&;SKf^?`5G6krxB)x5?^T(aVm^?gI&Ay)yU? zr$OZ^H=>GsXU?zN^jyj5La#gTjWVcYM9r@VAyrFXPf#%;cNDG)RhBFHyB6pf4 znHWtZ=um6`X#o1#g>hpRBsgcS9WO<_$N)X>#k{4_^!eo!CBFlVhvE^JY#!Uf+P}` zM-@Rfw|GCTviP^DASY7I=>n|$V7s38Pg8DHyBhddKY-I26&Vme*Iykn}75C$?@C%{+H9e z+uPpjojiY8dG-F?S;ZFL(UL2Ay^pDQ|Mn?ov#$TB=9`LJGB9hRbkC{*(xP^?YL?R9 zmqzvugN#(_NyMx5PMtt;rEb5veW7g6^QU}|$FBeB1C5ipA3WZkIR@`!EZK&J%*C??tAt*a>BAj2D%ZwP+Y0ed-WtsZbBHa%f% zMoz_HT+`UO!(d^-w6}@o%X0$(1zUwuMtCK%pUjd4j7Y>b1p&ov!2Cg;B+@D=9yT05 zhHe*s|M>0kfDZJ~kl|zKbxKx82%^B+vSVvKV!A7SmrPn5=pWH6wQhz*<$DElw#5tR@WAXM|F=Nd^RJRxMs6^57@3A+v<^i zWW!c5mJnymQW~?eT%Rgs2#X>iRZ*(Er)~ax5pC6}1d@)g{AErxjy|Z+AwCeq(-{As z&^SWT=PGP55!k%@_j@XeE>smE&ZCB}72hc9;mVdUNrx>{2}yLuj325_mh+GB&yhMg zxXkLA3w@jJ-=|ukwb>+|$5N_?Vel_ziHUz)K~Vv^903nN6v7A_;)a6*wf2!1#{kW0 z!UIcaeY~t)8CwVw6pFEiH`Y(uY4ykYDcu$Nt_}T^)#ZMl=ucJthYBr-&|nOf=qH1lZQdr)R;p;Sfr0weY#!oI zE!#D$P%^lT>7Zcx6(U<};D1mBUTUDq7WbzU9;R!7z(F$me2~ny=d9o3fyTNZ*eS;%T z`}|qx2ePOz+9k`K#>LojSbQm5C5EDf!7#JXL#D6{zhqr+r4EK`mh947F@v$;nzLmS zbq1EEpkuL0NWC2;i<$tcvH_a!T+hEF>&fA)si19<+Gjyye1E+2nIsVt1Kk{$R+q=!LXCCP;y)wq=2%!@#QHXDBAQcp zvdAv7MNv z1YU#ihzGT>9@g-qxX`UO=D|~97^~4IPR1+BW#7?L#8?-NLmT|SGsh!ZAg?wE9t4?a zlrma|Xs_M0+W^1MWef5Hw+C5b*IY*Z;N(kS$5^l#PxpfBGqfP?O?oi7^rOBBR!gOq zr7BY~YG<5|+swH!IamF6&Y--~L&UGAg4)s*=tV<6I-xMNKB4hC=&`DEkKbmj#;Oor zZ#dE#hxToj%X#vs-#Ow2rM!^{QNJq`^1}g+qSlU|Ls#JJbYXooxdCtQoVgcdjzYTJ z1~MylP^@XSZzlW}JT8I4KwQdNA39_3>0Tw!@2ZEAUvSdo)BP|$Kd;hVy5!pKLQ!@c zlwU$tj@pezyB&?YhjC+kIEmVat@hz`GC~fO)=|ARtshQ1lUlogtaJ{4-O#@~cjZn* z#rJsux57Rzg|y|A|IezwdMsDoMkX@EA(To^X_G4@8Vu63=ybuiyZ8{O-}Do?AfM@t zW^c@az2hq4CpOR^tpUFc{nhfXQ7?Gbs?|-sOro^j7xej!T92Knr0_M7Wc0nf-&Q3^ zIcQaal;2k+@VvE(>o@G2w(wTIn$9^MBK!7Tj>FAM{EIHzqfVn7?a6Z zhbRR-5WEcrw4)hUWneZ!1WT*q{mrlIbKdXv2XT1OFU!P!OfDeUxvw^G*8OyqXyXMS zW5vf2?15NS8IY>rI2Ii?d%!AcZXFnxSHZkddt~8(<5Q%KWe%EmvdpU{?TQWBU>qO@ zQc-^ljEhb7fkM^}9GhL@#MeM6S(k(ABmC9KcaIhC>&%ACYnPS@e333faU>xTaV@o! zHB56h^OaLuL*QRcr9`Kchl;UEl+^2LjnusKr3pGX=TsTI@I<`ib$&`huoTMyZjF6#zi ztrs$$P^x3Aup-yF>a^z)8o_96Jj)6;q~c(y931fbA-KV^x3r8!hmBjJnN2c_Dd+Bu zKvvTNe3HOku{2tzLe7OHhIPs0rn!;F61R;L9$ah}AM7#K)kcGIX8O3@s;7IY)&4|d zB{~poXh?Jbfgw9vfY}*s5flW*$NnssdL^BUc<$GptCT0uK2|tB!DX`*BysMw49b!p zp&Ec+v&>la3I1{e;!JnChlcEr49vz_Nh(`44BYC9Shq^LRtKt7F@RZ00^~jWeWsI=uLubFsjUK?mw8| zBsvpF#7ley_!Z**vxfOp!oL7u?X)*s7UIy<_|^#EdX9}Jn+b1{*daLn+1+I`gFuj? zTQfvLU9FH^SNiC3C`jw2Q$aSwoU=+j=@aX3d{M-G#nJ*DFe(YvI708Ao~}>n@bIGX zhjQkj_r#~5VuK&Z-Iln+hQvPpVH1})FOQojB{(y&gHGpz$EIJ;`B*)CB+Zh4);8-a zZ#QEv4s>d=$KRE5nvs6~>MD7g+g4}J&S#{Y2uiQs>Rsee8HwY&T5O`v`o%j?PZ)>) zwS42pWhkGhF0bPP(KYo1t{xjCNO#k}1hoemPxQ z6%s|I;g+U1RH}YEB2;(X`(j@JnOQ8atL_(Kn+EzT@vNxqI(wvR?qGs%#cuxC3+A(A zb3$bAEcl6859%WRWKLL;SM*R1bu9u%#E)9 znf^+_UhrGr$o=FG$1k6<+n;T6cW0$cY7W+Ln^Nnv@kn);Le^Sthk4UXByp9*POo~X z?vT!|z;18+ZEoCVY^Oqfked5!fSCi_kAw7(K1JdCxQU7HW@xMSDZHab;MA4 z(thggucC_z@%rl#$6XcvIuvr}EU`WXLJdznIB8_u8X%=XYN;gWuAg~TH9Q6ofCEW* z4BkyG>WQMuPab(qtYch!;uNcQ9&{Ye(VJBqW@mW*7TM{|L!J`~Qjm@`)<N7!rlR2QXI( znonuCQK%dytNCohiWK-*yhdCD9ix-lS?WdV_owx869-@RE5Uw<6nrICe2Uz?lC&4p zlaSTBNvT}U%YZmA)MmK+Ai{KAghKjtFo4tun;TA&v2EC+Bzow#Y-~o@D<|(OL8Sj$ zJ5%0h@{8H3m#`|+@ZpxPzo7`@-qUl$e7Spo&QLwAOsfg1|)035X@zz6oFZhvz zq)aS~LmwCpT?(Sf#5hdD7jU_bB#<1wc$Q1Drk$lmHSn4MHp}mv7+aJ*zY@zAkumVI zM5r*}aQtb)R0IDfuqzf1>Y0Y!@tq9yv6`ey@Sv}lI4h_cp|E1*{#n^0?eMTGU zowtF?p@o4e(rcPNo!rtA=1zNgjy$BZ(k(A!^sF=@bXKdt_==UR^u%71y&f*-Ixfg` z*&Q?1%QGliYidSHf_i!XzCZplcwaei{`+P@!JC)N-Y&_!TH|BcXBa@D;Nj#7%B>wS zFpS$FGzPD(Su#MfrSe&N*1WfL$Ms1(2OVC= zbC!3B(JNutGEjEKMJ6;%M7f|d`4h^MYiiE4o3SByBQpEQq>)lp{O*&@4!S#!Hs3OA zbF!yi%WdRLjNpLikhh~`2Da+LuKOn`Klt?!+IQT376*w=c2czXB) zc-RsiJ{_9aPqNjSZbK~-Z7xkd9u;dH?x;XCPE5|8qQ2Rw4+lB~Va|W*7fkz|Uge~n zn#G9g`BFqqY!ac=(M+|bkGUijFyzMbTSzjS{Q75KNQO5W5MMo;ULjXnqWhOW`+L_< zo5v4(S$Z%J`W~s_Fj&w$6c*=}LXxNFV$D$p%> zkeGXt=4eXXgYsGVA1-R$BsTmakJs9WWSd5NG_J*?`gGcy9F9lr`r)`WJ|fX#Je|~A zqse$&Aaga2TFqbA<@K(8`AV5fK?iRTv)KAcggK?LW(1LFmB|1=uP*axElM9}5wYfg zF68(R;86)|O>mz`_5FY)F2%p*+AkTLmRMKkl4{`SQyDZkjxT~I-$pU8HEK@8G<1z& z9N1mOL`bdUDM~1Vzf6#Z9VHDsf`CK#8uXtlFEQ>+-Xn4CoED8=i&l&@j4Uj~R^W&d z2m%%N2m(SppX`>kDjXB@dYQ~V8_{d<`}Z&Z05fkKYQ#@zeY*GO@4gGFrPI^NgL3J2 zy^4G)|1LN^eNgc0ci&l`m+x$6jBEn}ATG)&cb6xr-GNnu<=x=4;+__7GJk!nZ;R78 zu_vN@UC!l};h)r$uX@4rYf(}8A3CGHY$U0_q<$ySMExe4a^q?U*H*EMYpHk zEms=jCph>^v-kNt42LpSlKV?CL0k%3Phn5XDd#EQxe_Gh$zHE)7K5WVwX{ z0*_tUV37%=^tX~|G5X{)dx#_z=fD##Iqptg`c2=q1$nu~ zAoenv0)8)-wixD8(ZbVunzdAj-_1ozXW;FlWfD#k^>Ebu!qTMAgqi{TrtfAvU7NlX za-`>^#Iu_=nx}grWl8(A*W3=uE+Q*X=kwBJ2D`bfq1EmjQZ1k=_K6*0&s5wv zE0=HXJIo!Xdk+e0s07`dtYPM@;g2+@Cb(huNt5XGjr*{mhV4RnubYp}QtCthIu!LRL~FkXB1LtNs+DnmmDBd2fp-axjTM9xS%=d65Ox zu@u?nsAJKA_=AlOATVW`UO_%e3sG(|^3ho(2x4wh_%3yf)LGhbn3?b)V+`Y6y5A1y zE6;m%OWzFkAvkbA#Ry87$A5u6k$8I4`upwTL!i;tyr`NZ2>I54wX!tWVv-$3SfNjv zkAVdQaZpxHNT5K5)hhjC(Yh{aK*)b2j;81jl5{eQ=Z(yhUVFJY;DqOM(S%4ml^@Jl`kY90{zlu*$l!{b5TJn|6 zRf#<2+etU!Uzw=kq}4ks|E$&?Ja|yh8s=1uLU(Cu3ntnT-BPiIsc&nA=GPk!eFcfH z6fYjX>J=|2CUUZ0$b=3S7go{Pb*Q*>W|*SxRi2E-eCvc?V)~#{2`^!H=IKi_!UxlJL@DCw(GbPx$g0$I8F&+-b2o{wTp4E7L za4{+6TLf6^A?lO#j5v(~cbO&yOjfC2WUM zO|+T=RurYxZRHgA{U@mNf|5}Vf!Uitg=w@~V*1@!%~U!!fGVCW@BLC!Ii}Ew5C}UP zaegvkCm3gGJeS~G8~+qMa{=b6j{-r%&E6N|3P7!a;AXNz% zKG`t`q9l`U3m$s`bI!5V6Xsqqkvk2-GA*TucB$#-(-^>u^uuGMAo70A$;MYa$+AQw z`=YKeHQTyS8TmffJQ{m~f@q|$4N>A}b_loUZxg={!2{WBmB6z^-rNQDNXoX4nPh-L zXunZ8Bfu1JaW`}nucSKarlx$OMu2%v+Gfmgk_byxXmHaSrR6inv&*AG?*$HZGlAPW z+6}yvIGV2DQcg`zg4|D_KfBo58^+D=-Y{Y_MB-E?^O#4O?&s;AKH^vtiT~`Nw^=Jf*_;sH+|pd_fDvwq`iq3Y0Gu4G^7A69 zGg7e%?AuMRc<7#T0PDV!I%6kf7m>|+SizM08sl^KgG;(lPWX6={o{;||H(wZh}O>@ zV4G!afIgClK4FX+c5w{>AZp0(BJZ24_f+ETfm8kJKDT>O+l5fNY& zpfS%K+K+U?dEj2oHk!uQ_RLG(nX*&adelA7sprMnh98Ei3t{#=423zj51A>IBG=*=3xARVaW; z*f|cxOITZ!8$Z^=c3rMDs?tuU_fp=qkp@!!+DX*PTwZiHoB2sJ0Z`fjw-@us6tW>j zwJY1wM#$(*ssV|T{xrkW-*$XnFqE znFK7lx6R2=cR5Yl9?iqxt;xy4(4__u)>uDdlkLQAIbaRIE+dZqlI=B>*jmf^N1rQ` zRdkRmCPj*jdp`-jfAu4aF{VUy4DY;HGJzLJ3%v8qp~dFOZhezV?Jk%4bS&XMIopYg zj7m!*({bqZKn4_weiU#jCvuCl-MfQoO%O=DT_x5-Uk9P}-(KC6^==soTQU7B=h~fO zFd&Vk+v}DL>^@LVY0AVy+e0;(N^G>VS0shCyuVh^5AC)%VDd6ri@#M!LjBJqszg|8J0<#B_#i3eTF;l{qOfK8O+joC@ajYsawA*7Z_b>1jU#_bO z9cB26%>jM=FsN4PV(Q(iA2lY;5x!nRZPmNiu663234XwI_U?^GllEl%Q1Y5`;>X^- z>2!($pQ7Y~zBH$u=^?%YPJOYVI@|3@r;A^b<&?h1-DzW5e+Uop`_!G$@^h8W9j#Gs z#F;It^b0@5V5tD@RJy*XF^=`BZkDTFJ#5nib0NrkROm8VpU)P(+Cv#$?_;zs@t6S3 zAB{gqreggWJuUMXrnLUOdS~_dpdNMtfg`SNXO${)U&M+}T=^ci_K(q6+?t=!JC)PD zxAFNh4&FZ}VK<2uNfpOs%3X@gBx`dr5#@)1)y7&qOlEaCohI?77dCV#QSSmi_w+Uw zR4Ei`Wi}VH@dsqZ=`~g|H@)d{yiKYmkKY%ZLSCWf>N65q%qGFTC~C(wnh||u+G}YQ zA)+(rP39foW*Cj=MOt>`BUtsSL~&6PCV^g^r`wxIHU}cYo)@JTcFcNkt3$ zZyN-)AUx#fg$sdY$EJ&WVHc&$R;Yf8aU6Pw?HUFShvh14o;<{Q8};$ha85N~==F#u z#cOEqWXIO253X`f*ik}vEA5Y;D$THgK2!U=92e47J*?Z|hCH-dP&Y%nXrwBvhb?}R ze!uz9AGdqAnR&OyV>M-^E;mv1#>&kg{}|L{e&@(kmaeO=Rei3?3LbXH7gCrBM0@spj@%BC1T9}k4oHy9qBmRcfLYJ&?YTO}W4bT>Cfc#tEH8VqIk2ok zQ+joKETk`N-Fv7{tLtbo+a|rEqa*D2)J~}B9B2}fFa9C87avZW@x*Mhd-cP1y?H3* zCHYAulsrJ`*QVn*_Fn6D8*!thW6xzMse}UGGtdMH06uim#f2vS1C#Hs+a@n z7S1e9*lcG>ki5coP&vJ5op$YEmWK8g%SG&WI9#n~mk1aBlCRVf3Yk15cGt*0@UeK- zIy^Q$zxl~CQ&5*P<&BQ%&(e!erERyY0pm}DW3(80@u`?j?)fKk!M`0t}4H2d)}};56of7uGJ_a z`n{7rdVBh?<6mW*lqP#F!Wy?HzkcogX2?^PR9>I5&v=ET9COH~(dBG@)!WXhm&?VH z{k|%1pZ!Rmt8XM{ZsiGGA>~>jX~v7`DsNd{U~^H~OzwKvQnG_#<31vUb{x&MFLXcNI8&R89Xw`kkNbA4xO{cEQ9yaFkLP;EWj!W1AF7q9Dh6Q zn8xoo>tD%j@D8NHvIMSMsWE+D3gHbJrt83CFc)=>pP*VCe^ks75&xsyPdoQkj{D;s zQS#K*tp_^IR(XO2!e#wGqi+R0)H=NpPV;W8?1%!sBw?Ck$KURzY zQ(+r7v%fTIx2j5&xzlHNL`4~dipRZLng}r|ilT?2lDdef+JY+Z3PPf)Vu?|T z%q1=wm5XM@<2kq-J4p7Tk4y02Tuv^#ue%oPeWWU%^kU_%icB#~@i%h~N1{6>_Y(PDGg zv%OQ=kuB^j=YzNJ9>074Hn5l(r+cCTK-gmm!8`H=o-XeMR2QIAqV-04MowFrHYg%t zZ5X`P-$iJjEG5NBg87^!7ovW4vF;NIh@U}My#|U3f>$f1OQL1aF1=)+GEwHII!3cL z;a1?bflR1TVtN+_&kYbiTNDxa0(V75FqX_^tl!q0#dJ3(sSf1z6=r^xiKr&I`~17< zk-)hk>-)J(RJJIRU9v@D#+f2%1s5*wkn~f`7@T6(&Sk1&i{(J`yqMWpx|Og`&?S11 zLD~1PiDN&>q(BtVQqY`c8&gMP)0E6KtQ8JHMvG{h>EFeJ(7olYkl#>N6{HQm^I@Ke z=)g>u-T?_+#fV6xy@g5jAoF~P=rDM^xC-KEJ)iMj*4f*Li5_gH>Pb<5L7X^(!? z9NX-j5}0j@9zC}CxBX{d-}1HR-@@o8n&4-7V`Ih`*+FFAU|m=fq2dX z7)BBt>07E@7aNLr4*B88p~l)W@-y#$n~=n%FNu=zY?g8YM*wT>^V4pv2CpR=XlZ;= z#z*?`*|TSvfP!^U@@zZA|83&)<@$=>VK3_^V-0>CU#MMMo$ol_vMfUzU!*~E#tihs zgSCF=p7|E0mrw>%(pjiTu(pBi@$;nIIQ3fN{zCEC~9_@S0(FFhpYGA@`W}CV3yJQz;`FOt)K>W{wEfjaFwEwMMHt0oZ zpI_a_5=k90d;9y`sYl=HO~hU1=F^MC9XDmZoy!glJdZtocI*V3Uh!O}_gDb9YDUsSqBa z6Zo#|>)pJ+Snlgg$f-zsaM~CDvPCpi^pUO!p`+QTsvYws3;bW-FE~wvdW+a_@~Yt<7%Yx;b~<2p+|-@j|zOP$%|2&_E@B z3Q}XztMFuB1TVmdKV!}jpV(hD!Kb$$I4pVp?1pp!Cnw&levmjXPHJD;U)jp1w({6k zo@nLevzw~lxASQPhbl{c!s5#u+a2kofPQMN?eE@xaAk|*PmAa4i2y3fSbq8B$pkuB zzWf}H{RVeV=-uZtJ*SRH6-{R*Lh3du@>arN;^JD_P1ipu{^k^YZFd#`u$tte$9wAE%~GU42ZFbTq_D%BO1lY zP5b;*dZ)i(`L>G>i{+<9mUCj|HN9ir1}|+s-gw3=JfGrE*HxoePvtd<&*u(I7y=Oc>k=No?-L5S*HAX zA|}EqiUKWP$UW@X%=4K{NLI=d0nZ3_{nUQS?IN8v)V2HA94zPd@m;Bg$54`JH2XN4 zY@@k%=+cbk4R@K(Qrg3-xXI$wx_=u%%ujww3%TK70bIkt+6|hOTCK)tV$qm^ffz40 zG3knSZZ6ZBaraFt32EYux36UpG(TuCU!E7Ocb;wHjpx%pGXapv${DwE!<6Sj!^K)v zl0PaJgGt^YJ!rYRiVx{@t?4{>1#6yTkUctV(&<@Fce*tCE|JMH9W$h8{|!S{`aCM$ zQC1hv40}pkXmP0zGcM%n)}!y!Tjo{WE1#k@;QEsN94Z`ZFX-LW{bP#D?X#Vyq}BXJ zzD!Evur7lnJj2;yotITMHaVUz%_PPTZO10>ajyd6h$Sp2M zPhQ|nNxLq2kC_%}`OJwkJ6A-G{C>GWPQ78?tgvcwEPl;Q6)cYxv+l4}Zta$2e2K^L z#MmU#LbOcxLu!#1-pWfmW$bLLssoUz)(Je@eaGE=o93^{LLw`rmUCYVt9hWj@RO4K z8E`6Q17XTR5&CUMo_dD3;OvHo=s?PBlc7%~RU2U;p&$}xLDRLIPC38>ff_a<4+|h^ z(oM98Tv;}Dg$?uE)&>}Mh{TYrK*UVEST0v@c3WoyTi$gz|$O zA&gT4);Q9cLpbCm3&o-yM#+T;vrZ@5>We`PvD_MBURXZ!5_m>r=>G)Y&f))aocnykmc>FGZFE$Gj~90R}40;(ytT_n*o zu8QL+m)AVevs5LBXsL>CjrV(D@0s*Ga!~%bi8YKc#eWKYFa`*I>09oa+)NUqrb^%| zwl>K66j?&3RAet*=#FS+F4pmszTMM!)4fN~VKLg0=fUvpK}0JK1G0S^o<@ZO6H|?E z@6hNX-0ya{2MF!g0pq^@_M+}FNjy#+Galp`NlENVLgh$%WHzf@NKK`P^0|s#uMxAO zulx6dVav`uYk?!pR>I#c4f_^D%lH&n0DKWdD7&Xt&|ZjXsZc~tH>CbvXvysWjXTjW z4%!RG4a`qj9j+uJrP(OxmL+(_YJ6(tsn+B(9lVLMt*2Y{lK-Y#H1zNG20gBa8i`ab^M- z6;XD{1H!Ww$~x<*+O^b9JXZfLthB!YTIqx{x76@o@}4|n-ZvvQ&_QqP+B6VdnN2n~nDpsRT{bA5`5yC= zq7G*tNPjcwWOw$r(Bf=7JM(tUUcq_g4h&S(+<8_*kut?PN*@wqkz(1@u<%*?l+zqU zBic7R6|J7u%5`dx*3o>;IvC|;(bnNdgK4SxgsVjqBjn@Cu02!d(N6mE}BdvOQFvEO>=IP(T2_&a{cua&cvc{zWGVfbY~wp z!jlFzl6fx|@`2zNZ(;&3nvaAo@ex32rzRD3zKopfIV=BsGs|VVl>$Xs*~1lDh$d3n z&H+vB`Q*(LK(X*Z+Kf0H(55DJ$@#!(@-ao4ZC+R(Yvi}aupBs4TpUV3c z`&HeYm_L+Wf`KV|%AF@prjo7SB%2em%j1<(Q`AxlIdW%<=~AZUY}5OmQbjg5za z-KDzG5~K3gbTVoVw(03PpkZ_MGtRYeyoIM)9u=MG+!MK_IBbN&9Hc<@>O-I9i6O5f zC}j+2x1V5pU5RC2w=cjg_n?Soz7LZ45?Tef+ATP1N4z-ST!gpi!*{G`T1yUCEy=%W zLqo>%83;+mhIqZ>WiI83hV zcm>Xod94z}V0oz#x0nd8k%-_6uCb&<&iqshuWuDUUlOjTweQ?ZrO4|!nSQat( zC#pZ#$+@K&cq#jHIr!As5z{T5w3zn59j^olD1QW^X!Mn;rOfyud6o#3_?~Y(4P^{j zu22S)S`2<_MMUl^k^qI4t2^5)VcbGZDjY4Y3@AD^{F%vz2Bz{w$Vlpd2rO(77VD}| zm}sMMkAgxdVwyoB^xd_9;%=hR6uZ!2Cwf}m!UjD&#pQZ-E=EhWh>LMvw6v>7@2Qz9 z8dv~>2i@U+|F{1w30`wNH+ADQw$2JzebI>>c)X;G;XhG=B*O>1fofO^#~K zcB?VzHapXHG>yA)z1|r`-J{m@s5v>BG^1K!vhiA{-T75PNblU4uLL2TFPE#E(MOH; z3N9cxi1;HqAiOIew~^{~SdA_@I^}*k;44VkGdOxYn=e1vywgC8?cvvYsHqdfoRm5o z!ah%@V^^3jRoe)I?-jkFCk74O-usDUA$JkmdXy6C<7oLgu#B}zV#tQx3YHiAk7bBR~Y1ML1w=kq{HjFAs-* zJbv@^`IC3O;K{3}$AjQ_s^;%xv)6D~W!X!elqOP%od!)r z?j%YU_kJ!iEcW_*HnQL2^%}V+^xJG%3=`|+sfRt;C9S7Rne#;c$0n`kq9LQoYrzaw zcqI=IZ{G6gb6`i4^+Pj-WuLk>HcwcVsRYaz8+iWZ7U$s!OFWg}JUt>%a_M*pj$MKUw>L|`FgW#%D$Z81u&3* zn0>^?+J!;D{Xu%lxec1<^eS34T%CE7jpB>w`MNb$RqP9W1dB?ffn`wNo>L!Gz`SU*I@QfVo7}rx;Uo&9HpmL zeGJ97kKe(llX)Dk0?rM#9gDQKh&P{>>kmXT1q&Mp48p8NIPg zmz++MXa(_+! zeO@kLx3@KBR`kvB>&MUUwxUAZv8L|~=@WNC3-$0^fX3e)zkP=xe?s)9*YnbdJul#! z7zs^~LkNQN8Kkj-3xh^bt{CufS$@VxF}6K-PhZAf<+>Jdb&9CQZDMG&@jFeM2*ulz zCJ9+iY}FX|2c-J2_}&lwZR1bqMVvJ{%IRFhlDL7Uimno~ByOQ};xzlm$RC0^53I1k z{L$6}=8v6Na~;y5|AhTV9oWKG*1HUGi+X3JlHWg{V$SnyuCE^YMgvl2jeTzmE@e$M zA-#*hqE(@&K3_+x3!kz$mn5^%P8aurCv!Rx>qHa#NGlK7)JF{9c{HXfCx3~c{|sQw zhz}4CB*!ZWoIpia>fqV&%O}UIvj>B`0#l^2!s*^{I4qs~ndFDz+5Iy8DTVicSN`)! zaC*8qyI=ZUZ}_EIxprSqPuIVrQa}B+{1e{%U7!9nuhYLI9Gh&Y)Y#kLC;a)b!h;&T ze*EtDgXb^l|DU}|_h!vf{Ke^Ma=(v%xJSwG>_M5qLgdXSuYUaT_~pCYn}5E?ul%lu z9rcssnV=tf{OjrI+XwtrlXTIm&r#zaAHR71bbwRGmFFuJaznMAJg)w0RQ+46dNeqD za8SO_6e#uM=_!$--*Qi%9zT2h{>8gg#cF>S(q%=3feRazgqJQc()Wx%bNqQs$0DAT z{KPqBo9Z&re4+P(>aX&jN)@Mz?<`Ye`tyRH94}llAgHt$Q$xNogW-KoskVCH$c_0Z zqu%nKS*4XAm6#VqQ`HOTOh=kMYF7ts-B%7$X8LN1+1(F-V62jaTM+M~Pn!7`-dQVEI ztzw+*xsEV3=jO-UgqsI;wr@}`vP8n&4|PsMtVhXjmTsM{ZzbWy(dBOSYG#%*f&5nIAT@PprlCJ6OK87iRyte(*lb_eAH4 z`(s|((I{rj-zMXWc>G}?m{YEujLmd5l}fT3IF<2O9UG=$s>Gvy@v9l*fTX?3ke(^g zE+0Te+27?L$#>banLV%R{M?BdV13fd>MO{_qSOcWO`57) zM9F}knpG+9Jg=E9d`S-tyVdPHEJ$uUR*K*77twpijz9ZW*2;(XWPk+?q)m`0iY%BO z5#B{9vQ?R*V|!`OQogKKf}$s)t{_5O+>mc$y8e~83L}glvl+}X94ePYhz0puT$J71 zNATHfX;Lldkv>T$v3s_Jds|kTVBOzvDE!v_`@(YFhoCqFw2SBqO9D5fF|*}VQpTBN zbo94vVV3m}Lh7ni4(IaWbT2#rz?_GO7jb&jRfx@vcS~t|v8HoWkUGt`&Llj`n}(d* zx`Ya|QJ8uR@TlT(FPv(g6RU%(O|~O&v?qV|cvgWQ9N^C?L?WNEq?oi5>SwQ4uYldz z-!r|^rtNd}L(ZMvso{*j;PEx{!4>=pwJA&_5~_1BTYQXwm@Rr?B;5Rhe}A*S=FO6= zB4q~2G2~{RO!%gx-gCa7C7Wx}+lpxru8PB+OK-~K&l?!2Xa|0geXZL6YiQk}xl(~! zustPHIdZsK*Gm#AQ`@l+1I)VsP29JKhL_1N2#tz_xN=+~OM)RR0HDIz^n!>DqxbQS z-QXr=F%7YNQacMF(5_1yROgoyL$m9-@rpo=y2neBkDl&3*6Ntgcga$S3p^!0(p4U< z=}@2xDSrUk9R1)j1j6#FROfD9W+NEAgT5o+dh8lhsZ$Rj#|r17rpK4P;xxk*11m6g zU6S8U=oc`@<=$Dk`$U)!R9Z|a(ilwLmRKj*bNew~ z^VOCW-VO}aFlubj#&?sx588G@9))$2Lp}}B>B32f>bv^@^yHVua-qIi3a@zyK z^wl181B~ntfqf0Yz{XkN#(@Mo$0+j|lARtv@JFfiU^yOdS2Nf;{r;#RHUYjhg3|%H!TvJ3#4X^*dKprfTi!1bAM^`};|t0-M>K)m1e9z<$LOx>#o$QNmiQ z=1TnMmVXg&@WM?gS*zt|2KwMD)9xJMUckN#28dlA44A7BN_C>lUwrAX8KHrd-5AO@ zlf)RusH6pcBW-I5O_Pa_+#YQ;84nVHmeLmtZ&iKmAls|5%b)A7IS(r&!W^$RrCP;r zD(yXI`p%F2-s_GgF4cfNbDb%eA-fO!W%l>DtZpofNj9B&y#8ocOznJ9joWjdqWK3l z1)VPtWQ4=1hZ>GPvvrbMVtu=3TU0zbFDe3AKP&uZ#TiC;UC>lX^!0{tBz?h3_K%!) zq^~wmh9*FzWvP`eF|O8|Wc+;6W44TU7P_I~ck&9jYkXHONt-xJYdFjsMR&JWkWc>1 zTc@Dz0%k?$4oQqlyUuPU;Gxncv*2Z?zuo~dt!b6`_g68l=9wqoao=ZHGf!R=}i8Lt#J z38v-f0*Dq~t_l0DMU0)_=P51eN|i-7SJL6QJm@&&6FrBfEU{+zYSz+x*LOq4JqO-z zx{`q*4kZ2T-l1!wJkmSUysh$*xhcKMZX{#n;@3i%z|!6OVa6`?>HPm9!EO!Zr3aa8 zrqjSB`><*7vf8lbO{VyqQ8wq&%`{&%7%N*q#q~WU9>yljDvBb$LyCL#>9lw?mI|x9 z(Fs|a+cnSHCMwG=QeOCRJrU1yvC$4wLe>%t4K`P%Q2Br^xgY@0bfU9bbyPxA4> zZ`l;WnpEulasfA&)n$05n)HlI%qPEQ*^n%{`FwKMPH9DefRw;KMy8uFs+>Z{W#eWA z@d(ony)qo0t5tRsKLBC84o32qwZCVDh}`Pn9d2c34Dh`~ovvUy*=D45sRhZ@xOa0z zqzwDy?B{nEHVmw&=uDx^mB5&vKbF(IgGv1HV6g=#+s?sA>KF7oZ&iLyiU>jVOhDDYrcr7{;*}gYUhk-WMCwUx4bl^`@3A( zRg9Z8rF_?!6)afgU0!8GP{LYpKiHhq&WPS`PU>{6ifL1%as1-jI8!U?xyTr27wIlM zL!^PsOoa-oAU{*ucB#6D>)hpq2LDfktA#QkjVDDXbB_g5Z!d#5G{0q#s znMJun7PlSs`rVQcm@g}I>C5<c__a37g7Oa`V;M-6EL(mI~N31i6bKOa;oM)x4Y%FBMZDmn0nwj+II)cvq&dVtUd2X``A> zz5t|EB!$yG>7r^ zZ>j+$tRZH%DPw&X`_yGnAbHwYepO1VAEs`wetPG*GuBUSo{H{`zPDl0A#$0{%aM~I zKrJ>%`*r4cEt5S4W;(IXt(LjDwy|@msFOR&1vOrb3Yx5K-*30-1G#p*UN;9(XtBrJ~xf z8~Ug;cNqF72$m9Vx13QVF!PxeJo>uf3a;MVRo5@R6)T=t(wB)WP=xxDNk7LYSLBd5 z23Rv5+0>}Df;#z?z9cwugU)A4s_fVZeg3!LsimJ;Wvgyr+gqbz6w=n$+r;*zq7sd3r;k0-eqKXfvl0kV7?8jUg4wBCVTLv9WgVNjvtvEg1dy<7)>4}c!OR@H? zd@YX!z{S8tD3;Y;?&QIzu(;2HFy(bwP-JcegQPCMGcBU4U+_UY^)tt^Q*Gu28@lmk zfw!`QhQz&0jIlZq=i?;n2|6zbvSGJ;eY?m}iZ{GbA$nJDiKBFlAbofc zoM0y_v*JZ(sdw=Fip23EEZ~CEp!>RFV?C(LlP!Y27E2FN#=j6V6)SaOzZs+9g6W~q zW7ggyZeG(qn7*e<5)!k5*-6!%YhJR{Wlvzy1@{$mp0chhHS@_9_fNe@rBFFV8=Ny0 zlO}$B`9XzrVPL-9Awv~y7Ja4IOm@@3RCT30m;wfL>%shG^yG>9UW#YmUC*Vq`6aKA zHuXMBLDn(Bkf~MF9Fx$pd|l`}rqNgS5SwVMq7$sASc~j%&Dy=84AYQWg3P9pGktQl z3${CZT=R-pRH{APc|O&LW8g)m-Ib?vp+^;@NZna&*SEn1=>7=4tk+cHD6cwAl?!M>g? z2u_a?90l8p!1zaZ!6RH0Q`9}wGVxyso6HthSZ}Y4KbAxrJ+4@fumWN-9+R^Ok26O# z+zVMfc;(hXzA7Dv8;e4!qYvs*rZSd|D(`tJQy`@SizE5e#$6xQ@^+uD^R8ajQoZ*% zXILP^NoJ5l_vOOPQ?6zFpIlcmB+Neh8-qzF}Odg;;{5KtN>4a33iY5U%?0P#h@}BAA0ef(UCB&-Fb%o%lxBAMiilrWRf_8^baM2@mo?#dYv(*a=a=DPMqrBF41TmC&>$C)XG;~W?A}y) zsgRi%S?=JAU&!bD;UDn`*zdWJ4t`y+UvfR0^Y(WS!4%^~3elWPx>bZrttr#NCYP41 zIe)0OgH@3(#kY&IC@TvDKbs-v?ly1q?%>;Q0VhjX7qSzIIH*W}9BK65@5dL#Dk1G~ zXC&c8@N*de)46hHQ@o^-#d88y{dDy1<7xNP@zI;Zld8u^{G%j3L}vh6h2!CVEvOj0 zrs|rEV|l&xwTD+UCnOj6$I?9>`YX6HkZNfr7S!pyBzG@A${?r*z5A<&9yFZ6P9d@w zo&ow$qwjKsMd*BN@YBWeA`b-Pl{=IyZRE>0wx@qZa6QJ;t18lucDe$G%>(KC3i>Z)My4x_h zPKFE0iyP;zJ@)+H&bw5jB8PWE-+3tu@5$|eg9~|z_`+Hy_c7;%Q?4B-Q)F@#!0efm zs6g>^NgDoutsi~F)J24bFQCrIV_5v-=;L2zNUO67JO{f{%nZObVAyeVRVp0g4?N;Z z&a;+#W;9-8mz5PZx#$MdTqzWyVk}7-`h^Z8HUym>fen|}E-E&x`LkXj@|v@r`jA&Qyk-_F z_cMN(7qoS03J>$w4;HI7b9|_#CbGgKG01gE7InerK6XCKb%PcOaGC#tJ z{*capL@9_grAINZ#7>0mh9}*lljFlbQIJA8w#&y8YPCX@55mKv4}U&*#~RE?V7*fZ z$p@s$x~2dNP#+aM5M7B96mk(3*%w$P3QCg!z5n?3kO!m$^fEXBeka)NsTA3`oXNaVIV406YpqgF$S3t9j3rDXdU(3mhsmOIJvln|pHHR0~e1kCBiohn+8urhcu;murvR|Z-L{9Lj7 zU3D)Nt~ks@bQN=rW_xM11r?01Vsc1CRJzF&5_a3VxlG4#9R;*m$|>ZOn1NAe$rXke zVvhOzE`TPm1PYZ~5F$dC++l`~yg)$izTTSi{YT>z6lk(Mneowiic-RTZQFEEyo7cL_W_8^IQ0evVhcLh5ZHSC}vQRJP)5BCg;KuYiw+j3FEQ z5ciWs#+pFzBgcPZ`GqtiQ)y5f&B3RmF!&^hEZ%!(lV27INTY<`U(wYcrUMia;5i8| z4=2cM)KqVftc3XKdT7|l>@treo-b+{&4j9qze=7{(SgX5u@1wM}=6j;3DO+MxQ>O zoCfzgga_QP4Xb-(2*!GH19GC4o6xN~o8Vs2arSp0A*`AiOU+S$>;eQHP!Y5b_=xOH zYSMw?2N!7@O)2djMc(j=^{TYVZv|3}xBuuZ*Rc5T=cBhr2Z0u+;$O3XF?j^|!XFiG z<=NzEI~y%77TLT`J2{Nu(ixDAqRyo^DPAnYY!g`VVG?ajWEAzydbWUDuik7m`t_*U z>i2qd6PhPKm?yj2^>@j|-N!Wu{4$pin2!%B`RP zrx&WLEHW$@g^K+Q<2SC8$W^U5prVU1!8^G7>@OU*z(4%f>P}wKrZls4nvyG9!3l@} zlWHX`!v9hTba_3er`K_kUx0a&oFg@rK>6l4_fNBQo(@vVo;>~d^Wlf?j|XpH0sh+k z;o#)3`}z1CX}ixjl71_1KfXEfT6iKm!Il&X*WWDixI9L5?(6Q3x^I^gqK|879R-h6 zwcy83h%X$f2clwMFTPRC%=zqCc)vkK3JsM1Mx_fVA~sjKK!Rrr@a^UE!@&FFIGe&@ z(P=8s$MVt~Zovr=ctE3flW$CbsNDw};$Kk$*A3tb2GLx?c-`6-Vng?`ktp~d#c}kV zEHI5&1Ns|bE3eRTZ0?e{ep*^@34$;Ttz}1dPq)LjnB-Gij?={j=_0diV@v8|YYVT) z)Xgvxl-Dvz@z&?1#H-2HsCO+kip>$-R+_bd@;k_+0sFiO`oTu9RrT=jc(E8#p={|^ zB@K$@40X3FxvfnMIveODOXP|)0BQZ3rw5|j2ybxz{Ki8%x88cc^+mNgTxoTT8buvo z61;o&o=Yr6cU<*}%0uxsli`#q3mYW8LsS~c0*bp~%HYCty&fMaG>*cRs6qZ_0T4FC z)Rq$Qhw8PX`l?wQqONnI$G z*!XHAK)opBsC4bZb=*Z9(Si|%f%#V8m(SL}3YR6;48k)@ILy|WOKh@C4)^Iw9Uml2mbLJ9}j-xNdHxf4(ZG|vfK zxd#jFuSAhiOP$}wQZT=~R6~euda@qcN((mSSAszB2C+*)aMj}XDFmM^ome!zATa!2Y<`#g%Pt?- zt2U>H{t~r=lg(yB%ozddGo%l(9iq6`~x_J@2Zq|HnO}S8w-n_p6u`* zZcr@On$3r(oQW}nMTff*3r(-LQM5pi-NwJ3j}K2l!#X)VIQ@(|*8Ns%zZPsaFy5`v z!vAdIf3_Z0T<2sQ9IJLD_gaHAe1beqS8x%T|2JayJ4&gL_Cd38x};%Z8{4(1Nyu%Cev3oIf3CKt}_ z@WTI>zI~_B9UfrO5y`V>ickrghHqqe^rd{Rk;~7Fj$NMS&j*i+?C9Ja{DQ-SM)C!^ zGmo<;)cJejqqvDL@(o`v_0zklWb0y)@`R0W8`jx)FhFnJ(kDv8YT&H}Fxy%3cX}3I zhAaJtIGW+D?NQ=`aYNGGJ2OGYjvbSbg*!Z}9K99Mqs=Xfr~ zrY%o>#M{OQ6y8;5t{=YNYTn^0anY9mu!@(|HR6Root}PL8dNHDgNRT=ThPp7;V8H3 z#J~3r^pcQ!eYiX;BzJZztzdm!UwL-qd-)PG512;@(nY-NvaH#H)>xCN4ObKaT3tpN z3};q}`GII?>gyD z2U4l<`?!=~D;~wd-A+x{yhW`pqu-Z8?`V9G;koaL+nKCRcv5jo$sQ4S%N3R$jQ^^H z50l6UHG;?+KO*U5=;MthSOKyYlrCviA!Le?+{-o>1~G{#mX>|e=$q2r<-SXIw|F$I zHibM8gAXs$WPq35`IpA|7jygJ-;Uw!oJ&5H1mstKj_-s}jzELBRic5*X*tD|O>r^d z((sObEXXdSX^hcnSm67IT)Dzrl~RJ8&JEF5CPB)m zETrY!%eA0UrSK^GL`gkUdTO=m{a;jlb=Fj5CHbZ5>9jR8zSG0s9;r>NmrKCfEC!9I zTK(lR8C;70ZMX}=as$H45-E2Md?cmzo8;?hgmT(M15obC1aA<(w2BG4B3 z#bk)WX65tATWl?8z6UbE5Fss4?fk&OLlP;<@El=qM2>G{K6ju)$%JA+&mY#R!GHYQzdPv$v^prKUVsvvm704c*r030 zcp%hLC!F}3C@7))ao6dl9xYs27aW95uA~B}sp1Kkc8?fhp)c7 zp@~=Wb!{vs&i; z@?3tQ@e*=V#pyGfakq_`4ey)JY@~;x-8pv=n4mgiu35TYZ0VH^TVe+G8`royHClR2 z7h>;x&c0kfU|y(;axWj0BR(&@wGgfOd*WMnhFej85N+-a2F*chduKRmG~n;S?tW`C zZVd;G{&1_+Z|;=Dw>BHi-R*B0-}>aiJTtx(^mha;Tpi(hyucFRS#(WW92(WuK)$`j zLgLGcv7*#u*R}31Q*^ogrVA((J>@&Al<1n7j;y64UQ_$ood`6x8@bn2Wg!YjbEm_X*^fx=% z{!SrQ%c2Zxe$_FYGd&vWzUpKQOd~#W^5&<*_XlK9v#B;hf*Va--uDOpihwmAkAX$~ z71$Lzl6FA2Xf|3~@((|Rtjs*Jwe*P}kKS=3t-Z4ee}zTUxs(h_F&Hs1lbUQBm49x3 zIjH}yQT^|Y`hNHPyN&8PWgvTBo}Fo>GV2gL<~cB1D;B|K;yIf4Dc^PB!Cka# zDcZ+MoD)66;XYv)dJgAF^2;LbrhTk)Tp?V7V%!b?dVZdFEW`I@`A?K8$H^1eoOkI< z>Il49dg*)ngP|r4FQW_{TTA|5PCkC1<}htWuOU;8r~fz2GNRFVk#6v#S9};Jhqe9C za0ogfK5qqI$9wdIAtFo0G!x2;!fYZP=!6lk@2Pda!Zk(VP%DBe$Zd5?1C|QJq96$o z$VQkF24msWOzJkB4B}THEM3Pls&&P@SHjvP$%#ya*H|@r5SLZDHh8EqrmCW$&m-~V zNGa=R?g)>?j5B#&6WctoskpMag{30$cmloJ@@~4Z+df|J!RsK;q*nKs-^-X_PO{)W z-^>GFSf=xr!N=~0j~{+`_wmioK{U=%!cL;>&?xxy@#N@VgCCE6{0QsahdXt?u#q@~ zbH}-BFbr*t7&M_V(aj8(4v3SX4i+w3mQ;}kfn+4eWf3CeV1fx8k7UlYAjYK8I3hG8 z&?Y{1kKca$@b0fbQXmeJlP4wjs+|E_OG_U3;poG`@n898CkO;u9Ste&13uBeQw9#k zUMWp`)?b#c>(CH3LnNeWxv;&Hv@A&O$yD`CD9d$N^2o@UR=EGZ3!0V|F~Ew9vHy8Q z=sO#R>0oiio(9LDMGIAkm{I=TC3fAtOw+F&|6X_$h=w7{l!bQkJXOIS*k|F+H@_I( zgO$&d1ji~)4SQYJu#LqGvo{?t$L-+JrInkSPK&q9QRZ+>P+p)h$IWp&@YtH;WYTr! zNUq#-sIaYrg|$cfUQDvZbV{+TX70>TOv6s?6m;kK z-CKwkcZ|995HvMf3>1<~P%Hj{r-CtJ>Ii>XYOgcXNE*h>M|e)z>l$iZdqTI>K>1sawA* ztu5;TB3bGz)FS=T2%2AYt364wL^$` z?)=mN7$^wl)ebERqvpZ*?AoBz2phL$+hV4yWGq#RVIv%Gt_&e5B&(#2CK$*XDh3h1pNi9^r zv{^~nZu-fx5d`PBt_weTLh}YiJ*O%&wyxWlB->=J zRvuR6xwMRd-^rIES)$r6iPc_FuV{H`p`49|ncN|lXcc3yM_id^YzvOl{BoAwL^lxz zI;1F)!UZ?Ivng`AgofF2BS80e%mLF8H zNG=9LNU`EvkWRfCbc`Ayu>6qHRITJ5dqtl39r(u&t9-JhcEnQ`Hn%!RPe&495GCGuEyh|MjxzvisD>1l3+!0 zIE0h*rlLNFa4{cLVbjwQ9&{s^_>#=afSf;+-%1BqIAl$(GD@zQB^bR)R|Gr^M34-K zaY%t)zcu92S6G2(%+ZRLsR;kdIjLp~qz%SG#yEU8%2ixU9k)o8S(99yD(5^)DJuTw z5!;9<$3hwZHD8E#KI2cp82}1Iur+bvS^5OrCYx2jiz(YV3Gv42~A@ zLpW}XUJw&NjHL<@0z?@#y@V_XBW*HmjCeB2M`+hWVV%vGeanQ6bH$ujlpkS;p(AO7 z49hsT{D`lkmytHU@kLMKxoqnf|J(BtZ58DUeaar6^WP#3o8?mg*5QJ1iQPS*t_0=R zl{!pCNguF%DNs8Dw3ipOG!W|Yvk%cOUp|J>o@*lq&Mw~;(b-p^vgc%J=SjugUS5V= zO;>HPf_dPGs!O*O)Z6_LE2FmU+Iqi{4oI)fl#qPbMJZH>MY_4t3y@}ZhgAX;J~uxQ zVWu(|`OAAqvFGHer}13B8}N@MnZ@d1; z2fskOV}@%7`2t(^q$owS&B@NMO*D4)%K~G1V3-t(D0$57Ts`&-q*zJV(i$jwhX|~{ z4P5}ys7z3Pg?Js4_{P8*K}WdrC6|_Sv4tkv>%mnN1g4W1N5w5nU26LHX#t{f9YrBJ z$QF$W-+L99hzJ=OFyrweqcT|}m)jARBcMB=2YD=X8lZxqLuX&sc%RqK84}%HWA9G} zpVomY=r*-L+qrh`LT?veJ@%NWlsUY&C3wHA`NXq!UM*?mlZdpRL|?l1Ay%m!KEs9g z@%0b>ZUa#jyEq~8SKIW-PX~2!*W2}Sk0s5TPFsG`x#hz!1RDi2i(v&bM@eO+OEC>8 z79n^2Qhd7xm*<)WLK+cb7XfSf#3Pwk36VCFaa=B!<%b(fWP)+3a7iT<_EiE zQjgI!SC5tx&j*!5?+8hm;d80#;?TP)cw5Rz(VQxjn$FFbpNjcRno$w-Igi%N@sA3r zQv`eF-}(Cor?oHK)VTv+UManPtEDjGeoKOX?Y338P%KzCHke`fVU!J$gsIb>@D<(p z(6NRQaIff9PsgzYO4NcJg1ZgWpXXqPmqVg2gF=^a;J}yYsjd&N>M8yQf#?SP1)1`O z(hHv-atveAE?r@&5yAPSh@|XtF(0Nk6SqCNO$c`yt{FLvbxz1+nIvRu1L3Pt_AZ(o zWE3*RRW28Kq>%Uf2A)ZX1e) z&9(JVO1Pp`B-89bGS_6{V$yWZvOn|XCmV+pa{V&;=;z>DSMPmYCC6(8UA|DXf~4uZz-kd0|F`cv>Y!m%eoNqC}2e*8I&Zg*(G7^MhKj0|&;C z*c8Z!E?#fuViGQ2R@!bEYxQZH;O&7fzT9WQ4R95eCTqZE$Q6%G1TfKrp!~#wuySwY zuZFd?d|~r|RA6a7H@l%ER{!_pH*7`y*3O{c-`niRqtW)xW`BRMxwE%9*xujlZ^olx zYiobIztbjSF7D@=!+Sw}!AoI8+Ydhyi9@im+gyg=GyvA&v`R#nVHeDD#_$)&z@Ho2Iki)rvR z8IK9wGcdf3fI~1KfO5FV2FRXJxDMfuBpTPpX-Z+9*U>CN-5#0)Zl0oDMG}-hd^|-L zI!3%Dn5isxfmwn}gvmgo0NU&@w-~M$M}l78aJ22;8c`W< z@MLWNOfJxZWBy$9&El10O=y*ca(w3Blv5F9EKe`NXQoG4>44frXRwrQ&__(VqDB78Dc`hQDOXV2>zY2`UuR-=T0Zo6X z5$#;c&w!!o1?g8hEpfUp9jdJUu~bE7T_TGaD4wzl`u7JnTw!TOL{e^nNR3?(t~KxB0rq zMpvaK-dOrxzSa1kRwFbe@_cH`Q)rQpJ*eO(^ptZam4lg+qB?*(O4H)q!?*&)d~sE2 z(#13|`Q)@Hgu)t1BWTW%kJT0E>3rUwf}1WQwO+JU%`*3RRSJfCCpKAjsmLwb*Kfk&5{*BQT&A}CqT3s9KApM`1w>p zoLy){xLz(EJak7XhiM_9dF&6u8*B1DFZqM8HvN{D_(3>Rt+WcPX;_HnK{-xPnGHJk zxt)ISff#HydhrnPQTF45?eohqJ!!_@@swZLH$Yc6pV4!Jv&UkkLNV!Rb&Xr+U2}@5 zN~%55MG=Ma4krG^fx47f$oO6yCs)Z_;dZwgjYbJ^XbAcjUTH1Oe*TSD(ogRHVhR16 zj#AtS81P6&3~j93KXkhSW>KS5PJctM(uf+km?)eL)TXx-rQ25ihuP*SvDtxj}7}>ntqie1c~p&+Hn||stKe=8y{=P(8wT`jnf-r z60Z7%?{fEYF}~fhL%vc@ z)zbVYpG_|xSJ@1!tG5fsDdr|IxK|L#vr6VfEwaPEe5tqK1h?HPhh+tcIklmbUufDW zS9bZnBh)|^Nc`?gTfV6Wt;V@}k-{+iG6!nHjQHWXUm!$-WIU&!ml{1S3a z%nBdkj&p(3|7qD(BOPQblhtLDDx|Sk$yGC;f~Ml+>rruGOU0Rn;+$R z_>SQJ*%x%%Hfh@mJ2Dhq(U^fMSJ5pRRXY@8&u$#mysS!8al-QR;*n8w)btg?zE!?R z6e&iVh|NY!OxALP<#wYfS>t%v>`BZEQr5pT7{}3s0QY7o8qQ0+#;EhPU8pI9$h-EC z@SL)JlFsFxIf|(Gs)yH>1j-qZsxCN$9M4aGrR=zaw{JgwIu$HE`R>!Z&wo1lAm6?D z_~*mpgFhX1KOKL3b9i!saLmW2x!*9~(`P$~b%ez!zB1-~&a;fur)43xaW;cRuM+5S z{!0_j&Sy{~$FX%e9WdsfK7PQIPb_gr9mG>T=-AtLwzn#R4)P0cKYlp<%kk0aA*Khu z`S|v*bM~T%v*MqBIym|1!5Qr8RQy*9Y4gelRdlWuV zQV>jrX3&BEqwyn_Ar5SqOghffZx8?c;q$w9^b5vjyA2(EI()=P%DyG{rIXXQAXu{} zU857U47|a|u5sXIcM{)p;qJibIyc^=;8d*z-GG8m2IyS5T1*JGq>`_TQD8mvhCSLf zZcA(|j*rtBzhXV#PLr7z6J7Li1EHc|F}}A#PR)!`$17- zF%`$^!5l8-{$j2{>Yq$O<#M+;_J%!IR;ChT*Z|^XWBf^Q8IKXZ^(wlPKupzbmt-m;4!2KYFkG(+-C!p3pEEK)?#=>Rf_ z$;~Zp+EVf;&$NCS_)p0NiCO~ZTroJi$SUZ|3@wzq<{0Fgv>@&ogZ@Td{m>EDX}*kR z(EvAeu)yT8kp>1LwG>wim0B3Sjt`pXQ&l>}wV-umItewtrtCOZ%Ub5JGp^)}^3_ZN zbwr4(=6-a3DWP^5L@A6sAHEci17})9Q!{7SqA`(>NnE~(5~46%us8!*z#NV&EbtFz z<|(fY1w=~xj@}y#)k^!^HAtrsrUs44}Z|9EjMAiNmp|c!SOvR zohG;v_^yA66H>4gh?@@-*&EIER4z_y5!URF-uJd4Rw&TC4ca`k`p|CQORX|eX~r3! zBEJfq=o7WzD!cHqENVF%cA8TJ6bAAiL!nkg0ii-AuCWaUTk*_os+!RE#`fkL;_`en z9`k~Lt~Ug2#54(Pf5TWQ3mPca<%1tRDycFXwb*w47z&`o zrNeYuWsI>W%#{v_YMAzvRG3O@9^KV)T~>WrP^`@sT|qE-SZi=jHi&HL?5lIiOTChk z=jfmX5z2%u5m?P7TPp0Egy7;4!+!E%ySRP0=xB-`rMQU>q`gLPlV`CAyE4^aUu?iv z{i%$ig}``H-5FsgQ#(ZXG^VV$33=h||$+T6U7PKpI9IOEJmk)R1V z{hV{mtMzBLX}NN4&MpOsi#ziPp#UZ3BI6SEI*@O@_8&ZI^Jzw~)SaCqXSUf&Db*m3 zZlXzMZG>hmNq8jsU__CxToNlcq~UzJ26x zN-(F~_LM^pO|ZAbDKR`iA)MU5)pr96NMX^TuFB-}PNS%X5NxF{Po*Vl2cgGap*00rxou8Q>T$OjzJ=33niw zVEh$JpdsZXi`U%qvZDo=@*sG08G$c42o$&TI@4B8HSjcLPA}{%%`?ZcJ{;i+QAywyw%kg(%Xa@%pP&$=La%st(6XxR6B=rB^eBv6Kd zpEpddr4x$Iky99ThcR9i3FU*A;0B>^st!k4<&4+)Z2pRK#<&Vi*$uSvh#F)GELbqEDku${t-(Axz<7n4pxYhFUEXj$Y>S3k4wMw`s%Djq4zpj`HKee;bK+!BWUwXA5U(oUKwe$;mU!S08J9NC$ zsFoGzJiLV~wME{As~90HU1T2GdNj4i7@pxkrs0Nn5!HPbmM$eOM9%P|6X3(eV*hNQ zU@onys95}vJtoGLP%M|@YI7Cb0z=VQ?+Zp(fs{I&ey zdv=AHl6<1ylY_N4h_<4wW}`LO-P>=(d;4(|@9%GK?ZvIVezdpQ+TP#Y8a3mx9IV!E ztNBfHu%0}aC+A>goR1-k)*XT%ji#VSvaw<;-D})Tq`Ay6g=Sx}#B<}yZ_7nh!D z#Nr}Rjn_#dT9$OPG^5B(AEIm_^QSFq!a$G4=$k8nf*hr0FS=T;Cd%1_U5OoOFuaOp zUnz_w8CBFf_Xo#2SCbO8z%ltvT`2Naaw$fa|4 zs<>dE4vr5$oNBJhi?cIl4Qsl5HD{A*xKK4&p}{29opzZFE4YL4%(09+9uq1hk3W~G*Q@;MSc+EObdBea zyV;9g_R`dH*T6_pyG&+&HSM}a|8=rQ%yag+n#nz3w{8dBr)F};~c0j~r>v6A^K!75@7YiisM#!+&GR&|A!S9dn?0-(as1*OQJRL5h$nUd*M zpKyExya0OZ+Q^wMqarw#P_vJ16Nhv$i>@fi(ZLWhEc8|2aiukZw3T4OGl~y@^RiZb z{fvP9{8^loZBy4cP#meLcD^;qqHI_o(eNP;}*O3AR2Sx?ivn7{@ri{3d+#c5Jq zC0uad^`eYnpd_V813k@Z3ljd!F_j7o9mV|Q4k4s)}X!&LsCB!jWErPeq44@qIv47qYGXU?_wRCwLYCSN(& zx#`zs4T`z4;~634k=()2Jw>s1Vp`@azWAzS7J3ioa@MMa*X-6iY7UN0&VBxQ%c?hp zRm0@{m3j#_(- zC?4$X@5P%j{I}I8v4U;2w)VcM5$wrh`He=fWwtNZ-t=q}lVe;e25J-yPAXoHl3UFF zQRv`lTDX5J-W__y4!a`Bk1Dr@)IlA-)z6L+**x=6v0VE1dlB%|s(-7OK4b4{tan~E zI$F0YU8fQDO8?&;)WRVhRhqLtv-OGLm6`si4GI=vmwS!Da&mA^aSTN%@P2#tfL~broi$E#Y z<$q*dc&XTO1*fl$s480bfEZAti4Gx%?_@JQ>%#B_st# zt`)LBWhG_MB{Ze5&SAI_UngU;zPBC$Y?myIH!Lmu0Nj_zDE<0d?y=h-$MRkJvV*p| z@(KbaVcXaDC)eFf&cFJ{) zK+{0Pgmr#!|mY^Q9w60_x75N;nr?rcYkj;jzA!f_Z!>WB^p6%du#jKY6MRmi?0#Df6s9o zSeFLY74A$J#~euHzdii7fB0ShGj5!XQ98hYb1J=5pGJ3>U_((Z|L}YN*J#j|(ZBFN z|KF|V)=ta(#^1wNJFR~R8vpR0@V^CGA)xzz`2Xks@Fa4I6HwHba>Y}Kd;?>3M&tA* z+ZZI_-PO2M_k0<=Icih31X`#xFpO|@Dw{h2hRkdv@brabA4qydG8v3R_Qwro$rLRs z@pXj3?Jp6nHYQ-0=_0#C#~cBP<6WU&k5Rt=WkFRL4+b3bi#Zfn zgk266Q$c#4M;E|>rAxPKae=kHWkAvuJ|F2Vj}7|8xF%Jnl-*ZG7!- zaLDO-w?rS7MX6)f%c2kB?xGG_9jVW37K*1f;-QCts3pAeVt!1sjO}?1cIUMbeQELZY+V98v z+s&xe+#GK0Z%12$&3G%`YP4E$b7#1>+t}I07Pp*`FCsot5!4*0sW2e*d3SYLN`i|=txN&QMmss78;?vqD}_IHI^?Z8fK?!=pW&F$^& z#!i2G6z?>4cQ;$D;dWzhv=Gbt57run5+ztX7lb=o1(uMdr^paKaA;u0`B4^4APPPmv-30%!8)>O zNyB(Nj|4Uw8u=PeHUqxtZXHxSuSt;5PX1=cBhr2f?3U-=cAF za1{I$4ZcP+`^p;%5D)$-IKb;Y83c!ui)0eVRB{58|H0R)Vr>s&jM8D2hI|%YUtgC_ zPH{ZJkBp1DzRs%xzjDtX;;VEH+B^I}K>M7p_8J~IAw>T+{6H*qe#wCyvzXU@oDL|e z!y=jwK`WSDp*tK0+dC1a{T`d`0apVG#^GK@8MF?9A++3&VQ4sDZN(dGa2La__2WT= zA;FV000kicB}6Lo@D|~fAhlsN5H-6*urR!8l4*>FWC|(e=kI`2?oceH=|p|1IZG7= zepy80WX=_XU%m`}f;ND3=}r8q*Xv=B0np%o{QJM*|NkHV4-@nBE~vm2Ho~kM{{8>> zzf8$QE>(u#L|6?>3EB&_{f~eD-@QNo$Ny{oL_r#xXq%7}T6?b^bQV+$A#$P1r?x&F zN0i6G^RFl=ASl4>BCZBBZmk7ri<)44%v9fUU(2q5BAnMU3zz-G5m_<6?V#9yr(EJY zN%8s49KBizOn$B}I_k?hWOfi#+&R^P|M)-uZ^Hz|4dY13+vHuZB zXLf`1`sc&rw?}VI+X3P!b$|H$r)A@`rg`E%0W5*UUjt*NbYl8U5$csZUt%^?6&gO9 zyd`ddb*+*C<@TIS*5OE=G8UnfJL^;N>NFU^diNI>7k32IAHtzM<*^g65XX( zDHvIg1Gr)knrI9@XO|-3!m~4wDKT#$%?$M7jPn?vAzegXjZb_yHiR;O81Tg5{67Li zp`$}Nx+uL|V4N6BlYDk~A;REKHl@~HKJd6cOeY4h>9V=La?BkeR|nw?$KR8$-cWpf zPsaBrA6b$nLJ|0I4Zt9wgPy?FJE-+NkcB6AoZc&;Y}i*X40|=&2|*?ZByt8R73A~y zme-u22q>0L>X(F4+L)PBG|o~%YJ=2jMCNr7Bq0h#sM{&#Z=ejIg+3#=Hi2 z*$nrCVinUFLu_6}(Pi2U$l7lM^7%?uB6C;G?owgL2B3`XdZ6Mx%C!L%o&P&%rLWsvBmZ_XA;EW%X z5HeHK4Rh@!pAm*w!(^f!%9B(OyJvcW9YT)BS?Q8F#8fby#t~shQA&~>QQ-`U#K|=# zXt9JIwKf%!+hVlqV$?!v4gCn#wFaJVGxDBPG2fo zmCfx}ibRYsZ;?4{&WZva7OpoD!Ytsj*F8(EJ*CPDi>)j|c{GX)+g1uBjn+LQ4Btwl zuhZz!z?n$-)|3UrKzzXVbW=gwFnFsqzh?2p0(fR1tH$(=^i^E5SB7zo#>rr=<?$M9zaY?JnjOg5JUhlH%Qm(GOwPNCq~82!99`gGu=sgK+5>iuhGAv|oWe3g(IB`> z7eFR>+Fm)tH$jCUxBz;6BgW%?cI=8L!1oxhGA8qDZ{H&TnjA9 z@@1NSWg;>1i`3@BL+w z%;cn)fLAR*EjB#dG^|HLOM${*BnX=p@pi&VtNLgd{KVm2%+_%pGYsTcD0ak))9)16 zIvzUOct*nMCES`9mtI4?5Q)ahk+zynz*8ruEm7(Kh)yf ztC`oEv%Z+xu)a3S;2y`V)BNN_a&Gu_65r4vz$el#^vxq2SlxFL+u1 z3SZRgb^1U2t!GVJqG$Ku(a)@D*Gbc+6w(=OL=T9rr@|6tYKR7IbnXqH_{$Xda0MY3 zVbiEaK!k{z7?_L{EKk&eDI9jxo`@qOqF;QoL4PXGg1yLQgN+`D`#76wkRLKj^E~F> z8<^jlaRQs$!!4huz|Cr<781gS#oWQ($7wt{IC_JHtj)WX8RjXFI23HP_BXa~Z>zPu zegI$K@^=UFQhsDs$ELAa-(%0wxh0d8R+x||8EXK}S5LLeUhpp`A3xMg4LVy*&Z{Md zK3w%oBgOUBe?I){dT*n*PF1<+6Jsy0_pq8=Rv0iIWgV@#gb;-q2CV0gY!0Y2(7!GV zV9A;=$ZLGJg02U5^<4Ghnkt8RwOOkS=f~6SQhrWX#)O4V`4KclZ4fuzSjS(sp+AO= z5-Bj5{EayoXq$-H4>Sz_T+k5f^BJ5)ylLo~QI7}95h%6ezB~QE)jq*EZ63r4P&D4f zK*fJ-*5vXvH6}^-Bx{BU3V&hUj9U_*stuP^=r25MOFc7ulUV*ocbTMfxEe2#j3cv? z`+_Dy%;0}nB=9H2CRftY2yI<8wDf(A?(CI3mBpyi1|7de`Tt%TPg%h+M)$4T5bj?nlu*(T*+$80Pv^qhZG|Vh8v0{1bWX!K zqe!DVK_&zaeS=^-01gvfP01r+o+Gwg{v0#pke<-Tnar2GAV2D}bbl`9&J!gw&e_Ro z)<{-!ZDht2_HjZwu>=FwNSEl<>p-w|)H=wm=ozkhGDpO3?}ZGHfR-q%O-l#~SO;{4GSu5dMMn<$6$HnI@4^)gixlV@Il|WdTY_Qtdgydx5^TgTKG8J~S zNi@waQ#XB~=Gcp6Oel_1b#J;7&L;RZ^ICD*1Rq%Jj&G;%8=WEe5RWsd-o#1(sep_P zM;spbRzHnqaHh}}gMp=C@LBXz*((_7CroECz$ctJH;pi_6+V7?`=bhvW~syvIAHvGy17kqLn*=9+fjHj55hNbj86zvh| zgJ>0_H-0*O|LzP|gcT_EMbXWmsx@y2>Cq0Pw%XiW=#g>o${7 z!qTaccvb3mZjx6d=8J4iv0x%Zi{xyE+>Z&A} zz#y59lR+|9_>LQfOYGT)P+#K7c2&=G0< zNOdzOFwUlM-ea2A*~FdLMAT{=g;_CBtVPeX^^ZU|QPX}M8EPG5q_c@&I6H)z%xnNR zvP`s>zB2TPb_AjoUe5vFo9fv)n~0N-6S~9TM7WZ4!y{ofKyc6ux;bG^F-GKXv}15F ziL=Rdg2yG6WN=pda1eDk1thoAuLfTPK`bf#dZ$LdpkhVdA@o2zl76Yy zToWz(EQsRS3Vk;<(5)j9z0W2moQpbIILW?hO(%1wdNMLW6ybPmzKsZe6|_zf+rjW7{xX7YDF;p@deL%@&;4C z7T2ToA^?jZ0(QrCMieyD@zBTcMSJaJ01Sl6vEzxGS#RwiW%DAU9+JR;m2K!?m24*) z`So`;JmMvbD-a{ZJNBT=!h#s19J*kyC#*tQbP35TUIYgQd%y(Qm{E7Q;=!jQmS28x zG{EmQ=xLY^vXCS*splI`s5=UQvTwYmQ0!sQYP5Fh%|^YkRpt0LQRG;wIh&v;-(Aec zoii`2YFP)@%?%7XgGag`&vl%FQVbBD4_CLIb;DE9eogk50F?hZxu|;gI*bS4Qm)BA z>uIP`?+5f(&3Y(D!tDg#G7>bW=c#p{1tL0npaDb!m<5~lnMIP~^7;5(P`SBGfVkz> z7k5=v>;^z7HbG--l9?tjR{zt{yN_5H>)^wO!{hGz zk8cm(bzl`i5ZstZ#7KR!o-NP}+-x=a^{CnEm$Y#B_UQCuu7MAxf$nzwU2<_bpODSH z*!}U*o5PdN+Wpy!$NPTK{&Mu8_VM%SdCfe&q$m66!x}Ed=aaX{&VuH9ao^PJmZ7l5 zM)$lKz*n{Fb=^vrE>-sqgPd0CXvEXmQky_|qn2JRU5MCo^p@`N*pA;n(0DS}f`i2c z-k5mq;C;B0g|z}J0?G8L2RWiv>U4UYR_ff!Yx0ptb6PlY$@U)IMUDpPt=zsI%CpKz zU2ZKAaG*B5p=zA{6i=murcrPQ-ofhHn@8jHLPD+(3ieJoBSs}soJ<-lgcF0>cA1j* z6mJ8P4~i@ic8UB_H46ObSt|bF;N-9i2fC+h_z>+n6=Nerra;!RL*qRnzRPi!#9GiD z<60k?Q+zrm8zjauUM3)XPSC?}yU`;np)eTY-=G=|#-cnUPG{aQsg6|~5MN4Sdql!SUZwAgO)cu{PgcMhgil zK~2Xs{*t5`M_)zh;1~#yX*B*P)IccsTt{C_gks+MdRtV{iI^fdcvR(Dj*T)AuH*@$ zC6}c{O*A3F51Zyv9oi=4Z5TUqX>8N_I<$&b8w#J%h$U}?Vel8-VvrxFXsAHG93gBG z8-xiXnu?ulh_?^axQiJEU$P4iMM4wfW&FxWLbyO7J8Ourew9H>Jl3!NP~dOr=vUtc z4S&1V8hp`u$nh^`n?VKR^{eo=2=a9jbP+LB&e=cW2q>E4A3cxJWBB~b0mihsxr_fa@& z;jZ5bDjbNw-Oa{}3oLs4#2L19raN0@D~Dzoq0C0O(+Db?8{5@aIby=!_8PBpl++2D z`>%4;)CqQ9DG7Cgot>>cx!o{sSYm_m+@N=b_y=ee*?hJbu->U5#zw-TOW`h4jur;J z+(!3^!%ot`3BBbu@SrlUAafKZ)iSCq3u9O!8N2by9>dF|S%U67APJuDTqnLGAIV|8 zsmR+R@y{ZUapUnWl4}akU=;960Z;1KNnMW z-0+C_l2H9x7>|)#h$T}v5VXhMT2gsaVg01>;8i0Y8%(=Fd?obkvn_)T9?(Bfl{&UB zK~uw+1lE!UNleb+Sj^mk=m{iDh*f3CcU(~E)g{lSN1-DW+37f6t2ANa4EAT-k zHlYlgl_~Kv9Bz&q8wQ^|A2u+}5k|5w6*?yRnG?^^UvNG$M|((L9E4-(Z2-$bg6zQ* zq2B7Puz{-S^lpao70ZN_pMp-w`5d!U(mOP$pTu#{dj|sfhm%7TWuB6#X&)r$9bBltdUZSL)l2CY&!KRUs8fB5|iiYZPuDkD?qwz`(5xwpuwfPOmMFU@2 zrO+?+r%?xOGIbK(-js|!u=Em%rJFX^$G9*c>OK+q7D*YvD2S08#n%XY0C~5Z{d_ETM zv2~S{zQ&r2yjP6dss&zvRxR-2zG{IJtySKB4votzY~Z4A<==i@>4CB>{#}>t{!Xje z7!ENtdAG4SjJKk#cx$j94R>2nV}A=iZZ#T%sN_^^?l->eRr}PTJo{9bNU#;B0t3V- z@iTV{9Jdag7QwCtd34Ir1?E5y8FYc7(K!HzLI{BhrdZiuznxtWy_+vM;KeCYpjdEJ zTFL%t5@-GD1j|brlpRMD57?_J1=b74vFxy!16C7vYga>F8AC_>k);QYPLXt$J7~_y z(pTZSA=92o+L(0ZtFFXjxV33XEa*DmCsZ-l7WagI4I-Ek#XDNGiezo9u|OqhIgkWY z#2L3zwN*czmjzv^Q0P;4H9VMIEKt8Vh0|w>zNw0YVG*Erpm~Io7SQ~a@*lPnU<5P* zTL_M7`k?+)lHjlrhH89qvC(;7K~cH^ZLBX|Ol{2?%$%udvJZI=DUvQ924TDxJRbp7 zC$F%S-Em-eJm5UU{h?KsGKaQ=>IS_ZN-18mwFLf&gj>P#YPrqSLLmeg4;yg9iM{M; zG(m+|STKVf>qPJz0;z?)(54mzmy5~Q&_$kw-Np|2%uqGwx>vRtJL>?KfO8E~Lgb-r z4$Yyk(_dgx5EcBRvlm7ftG~g2 zsRItCJ9~j0nJ?i%LI&cJdMdynOi&&+n$DvXryN96;(CJOOVjyHIT-Npe9bvNxhN=qkDkq{<(eKyK&k%a($L#UcgKjS~0Inw$h@;tEb0$Q3BB zfb^et%u9xkl*__;NI)BO7PwT1ws@inxSV5+WYhE}&K<(QKSN!T{J=&pxHYLXW2oS< zw}eF;-GtPmQ;xI79%-ypXkt+~e5C+I35|r}9HE-&GeM1)`svl&kIpYH2W208m+!XB z9yVZA-eKdAxVcStVWUKfVM>xjpa+j!zfSP6MEHru_8!&?6Fvc3UM&!GOQD99XP}r+=+&)=2nuZBE=Po*5ol6ftOgC- z7Ui4~nzqa%=MNOi2~4@us+RMa30zYo=<7>d^#n_zTEqm#s+1Zi&Hzf*>E3_y!Q_I- z@w&$jA53Pl0>b)*dG&p7GKI=EbTc`Nq)&zp%w4XId)d<%mX<3P@6QOEduZRA7m&?N z(ucbJ2E?YWdvk|sGOFX9E8(3xr4fRG7KD&blz>ygQXU=8 zAfPDfi$1v9KD_0B7U<6TcFkWQ9pSoljuav%4>_zWE z8My}+LQ+Fzt-eMh=4;)IxTGzO0&v=+c93_XL7vfJ;@ELqgHXvZJS&$%>_XVCKtpuU zj3mk`Gk7nGfWEAXU?R1())7=cYMbU4s@ir^TjQmvC9%{`U^789)ZJJK5 zqT8HftD?~vo7Gj#EAol9KN_cz)5A_9Y?w}RnDtcG4lBqpqu3i39RBO!o6n~QKfF6!R`pc}BuTc4`h@3pJT~<{GfDf#(D;MXpG??%#ZVCuxTE{5 zTq;=OI(rJscY`aA$k67XUyr@4F+)$piVRRp;p^gY+*FQW?9GTiu~Tz3&Uj zjYc?9nFtjS+SrK+vo^z(E}zE?O>q+U?Pu{tZs8j;$7KzE8xFa2m9#i3hl8Rd4csv9 zBKD@YRg?(ozj!5n1oMjcQ#+%vO97{Gott(ZjBfIu`cA~mA8-4w4zQ}ONS8z z(d~(is&hKwYwocge>?XzT-P#sti$_gkKdRPuVBZ&gZV}*`mymHRSXh1tFGP=QVDMq z{S9@ui>i0gMpucJG-Ft1v6-SSYT8()8kW}j5lel?wJuhoP{ayN-R(r;)2jt0`WPSL zkG{@mEtsVIJ)-*E$4^%9s0r~U8WU?}Q0A4OvZVylT}8X;ZI|VcF3TY>bpBwVsk``{ zQt>jP!glBi?edKaukcqKBFj_@U-E}#m6h<$(Ufmk=#}bs&iwq8^-Lz$(KwO&hS~A+ z7g>Cpp0&C{fFV(6tHX2mo`oA9s)pHgoXp9Pf-x4KFs}iQ(U-=#_acn@W|q$5;C`(Z ztc8C|L5Cy5C+ppqe9R*W$-J9Ys@0+nhzADxL}-6frlpJleB14!)`&hgJW1-?Fh{9S z_K|eRYW4YkrlQm2clnuy`+IRK+S}f2HKIXlueBRTTYIBuf4IFj+-yWUjm_n zX{WLCZLz$cJeKD=nxwRy$v%9f#5IToa?y~hH4p1$z;@8AD7Yz3^>&N3Ls36((kaSg z{n%WR>H`2)oQw#}IhD&Z%|KGt8^m)*n4ATQRfm^qoLV!nxcQ9s2uhqqd7yAMZIAP$ z)D&t*c{af?FRIu+8PTjIhxpmBJ)tcV_bi{A$mQiOw@1BbxoS+@vnfxI7>KYej%I^P z_(e+uJ$`6k2Jb0JN^@Z>`arK|BtwA*V?aynD&j%lGQ+ag0NZc;MmzB z;`tqWzJQIPJPV8pCmarLhQu}S|1s=}!Groy((dR^M)R?_q$?OfU(-A*G&Q2Zij4c` zZt)L%j0+545k)RE;QdAsIPs9mLu8n;KL3JaqVdI2kOUvr;t)tIFu!pHE+tHsb=4Uh zpd3qcc4VOZcWz{C;Wr(*Hbjk-!HPl;_9xh0Zb{;c;LxKOB_%O1gf+p7gaAcAy1!B* zrqLkoYJ3jYTM?oRset#KN9PbwH8e0#Wp+&+)0anj!nKo8f>Z_jRe9uvoShYBgoBkP zaDL@RR`|tSlkGNM&P}`^{b!e~Si2~oNUPq8R2cPgechdZ6=h#OaPIrMp(vYIl(s9p zuEzQ3marrig%M8nLB6#k0*0{^0&{TMO0q6hDLeO9&3Q{GzFk;}e9I-PfHy}nS;YP? zCYH7nl+CKpQ8c-$=sP&zSv)3v7X-ZuPMar6p}1HJ1Q()OGMM5CrNz~jbN%Lg2+oX@ zjzWZg1YJQ)@yky(1?Vn4+H}j1&&izbF}tSRN%*cu^GHpL7M*Zu)T*FI6nK$8lb3pZ z?}ZIQMa#&PtqSXaYbE(ysqQ4qQoca$L-hf+Vg zbZlnn!>&w$h4WuKCCmP#SGlY-cS-Hsm$8$X8MJ#ez24+!dJ-N`cH_h?WH};#_{|rR zsj3EYbuzjGwd5)j`lZhP?Ooa;&j0&=`jZaFh+luyti@uhiQ zb&A2Ni@jr<=2c&XawId`Myq`eXB~57K+XN)OEeW4LG`@)pRQ`HQX76(#A~Aux=m}l zKWN1L=4iAz+#U3{o4bRp!9J)KgVC_L)gKN9W%ZNxw>H0R$m>(b@=TpeKnGW-S>*i$ z#_UcCw?&%5HZ;yumLWbXc$*cNMZqDVykGad6SLtlw2U+l1`?Ne-ks64W=va{L$vKQ+~7@jUc;JXg^BE4)DT6q266 zo>sl!DL1$hZ+=}EqlATQp)@vhtam7JKxUZuSJ4vBCzqdcV#N@GH=V~_j1wevY!=;= zh1&8c-%?~-@TUZA5O3=As#67k0_!*7smSzbxRIkNt2lg>j;?z7d8t z?NZn!e%hnp2mG{;pC|rJ;2M2zk zryRwS-}=r}09K8f-steq3(_6G^oNe=3-#p&f!OnGO5{D3Z)|{E1>L1=g@^sry%dPw z`K4zwaOfz_!cis>jvU7-UAjW3PT&t6yW)Op@={2dp2G^YN_wy5+B|!~S{C;Y zv}P$Nzlmf(9gi!+1pVfwg{|$KU1$ZliuuJ%v8@fa&a2hcV@G#~4)43t7HYv>LD$fA zYq>KmmPr7s&^2iz=~mUB6|yY;@3Kwj%1nls-GsfmhB zBAA9`q{vWPt>9U8ml&HVGT5o}Hmf2V!}xk*vKWucJg8Qr$ae<=i#9kOtiOQ@Q?BbN z>PNm3Wf!BEomD|a%q|MurB;wS_XCGX2=5WbFun`-+Xnne>t0{LUy6N*5;#J|FiM#t zf1!B7`SjT8Pm9UdK(eiAQ>8`_)>}iYl~l3CxH=4rLN`*6ffNJ|P|lpf)xBQ54*xM| zT~{z6tbfFTrZ}EUP(Mk;b7tmfukFGbpe0dObg-DU9XZnv;}j}_GX)n$7lcGtKJ=bJ z0dgFV&{qr+n0{>VkMzyN{{0eZoU$7X`XwyDyC3Tyq9GyyMNm+b3%hwfPZGMW1#~Pm zQyqyoN$LfLoI9>iASB2ZydRNOI_N438kITOKcZv5Su2jA7 zGhGnH8Pv;X@KP0n$kzr;nJY{+SP%*Ns!djGi+lpy8rsNY0`;I-lgX3~z!;+GJ-CLO z?d5?k6<)tDxC@?^f&gSe8As`T9 z;nRX?`}b_zBO@*qUW)t7+!F)og5r+D`qf;HB3z{A@RDbCR|oc3?8ooIy)vTl}pyYId$=?&LZoI+3OYJozuWxADe4^zjqik4qzKJX{9_*(hq(W}nmC6BS5>^`Ka zgXIs4>TCy8{&a4dZ0;4A4Cegkf?whCp-m;cLccRDpD&DGF^HJY$#Z+*Ttz4dUWFV~ z+NxHm1@otO8E7<1=|S-u+VUIPdSXM9Tr-;`#%|jq+?B)|e2$1$CRRlL?nA8sOoBn* zL3$$N9I=lNWw%U$9f%kuPHq*YV57<4YrL6Oh(araBU5^ou!@tdA`Mqu>w<(2Q+yG6 zD%_fvM9CDmu=Mw7$c6*=5YjL`#m+tm#HNqYbSOu#>`9hcHR^*N&<6(^e^rxeIPysvN?fNWhn45#cZ&VjEBv5>?OiE zJa8-sYF1fI?lH-0x!ZB2Uvp0`L>`N-_auT7J=@IZH3-y%SPq&`$G5F z*&BQiJ1OmhjrchVq5fPlamNsR$HZ0(98cuxAy7n8zJFXv0vJT=H#SZPFeOslih<%Q z-azfrR99LANah4GBZ(7KSZG3$n`Zblf2MqP{;4#2fl}Qxaa(3P$0#MrrYpIWz2(WU z_7n1-W#a9MdDFWqW~@^LNo6>WX_o#t&tAw+lxxD-fAIX5^XIL4 zT`7UEQfbU%q#P)ESK(oN4;S?W{~Js3lrbgg(n1$>m4bu{tEK|2|7dOzmr3*#v{C$x zFO5!K+NhR1s@u^q`%-*{7okHFF8SFmTL*IvO3VbVH>#5nXkukNah8jHd$730MJ*dN zlW#{TP-4%OyuWZ8pri+FY~Z|Fu7ohvb(@*hl znZfChj20*9#}>D>X+Ms)Rc*HPwis>Uxwbf!Jp(R&l|vC>U=>7T9$T~@9)yj+y-Ma% z#@CF@Dco*sICpR zgL@doA7(b)ppeC(5rwpLRI#34Ed&-8fE12F_DZhe0<1y_RKn7E2wuX>pxn5*9%kr# ztwED!Ih~h^p^Y$+>T?%S8nboL?P?YmQ4^qK0G1Yu$P`SFY}#eAG#N5-lS)D&mp{$P z^p9PlO3I83!nU(QI12`2VN5s`<25B>Y1($WJt{}m>lvBY%R~ZN1qzwU9^xZS|Ww#y_N+(e0)!8 zj6P8xV02#0mB3511)_XCv`9R8($`XIPr1}b15WoT_)ctQl&_792BEbBDJT?t$>3C0 z$#oj~L1|jV~-rR`nZaEHH)A3ac{f=-l$Qmn;x6KvUU7(!Gh?s}; zht1>~G1<<}BOcb0-7fVTFBNLdEa-!0d8Th1+kdri@S%g}M*Zaj*M1*}-*C9u+K&3I zy}fAA9ByrnhP#c?=4QXu*lq1KN86jb+rzDXNub~U=HBi%M)7;%Se_Z^hlLR(8*g>I z-$AYbpXPejN2p^+9=}BEX_31uo+T7wJ!F&;sjHVsZ9lFt#Fze*f~Kk1*i4e6Os#JU z~Il5~G(Qu zN}iFoLjz{C!r6v_loE(-s_4X5FQU^D5*9{DN3ijj7k~H46#jDxI<2mI_FKXYG3|C| z%lwHOUY@G8U^gYklJRBRJvsgByF)RFVZUvPa=*t|@pM+t;3#9P*chR&Uj_9#Tukkk z&HdJJvyXpXq1meaa=Wq9+!^8*xSZ{mgZ^-PIC#Z%O{wr>`{igf!Ut}m>=ORi9PNyD z@o$7vpUk1n?d{>t9)6RhBltVs8?{EwR~R9_4#VlEw{WU&Mk>T>AlU?f21u!;nk)=Cci0UiGY9p&2E@nL)jk0*&4qGynsC|hs_wY77C|W3%m6=~AgRfW> zr`?+J+O$XMV3F0ej^90=LfWCt=`9wrNQS}7DB6x2up;u4_O~TXgqWQHZ<6eQVTMs3 zUW9GOdIZyU9XKvNi7tV5la||ANOA{ahCOXcJKWLzpjLTwI1$_|`swd=4ufgRQG#r& zz->pOi`(HIKBc5kzlrfUw0E}~IB^VEuA|SBrr6xZ_GoLUrW#`CwSgzaGqm0@#WrCK zws9)hQNiKXwy$q$n_&yb4E@t~TykH{uxX|n($pG3Q>S*>@)~T0Tl9yQJH|?7ep^jx>bA~1xVtyF=HpyeL)fDDUSw37)Jkib9cMBxy#RU@snD}b%6ZW zMuRwZUfbJi#jP!wd!a%}EoAtft`rEuMhOt5OHJcSiwK+RWHf3FcT6WcgRSkxK6es{ zkHW6-XdJ`DFQRE%mJ`3I-^}0({7(td*aP2Rz>-fM->w}xyuwM!cSR4V-8kKvaC1A) zg7_7>gR1_f?QAz*<#}j(l1^fGz~OY3Tw%KKeX&u)D0uON**#$Of$Q>B+o8G9`7JJ< zEN4VW;T=Srj29L=g#nO7;xaJwm6KHZb&oIT-e?oxT(4Cg+(*xN3!cbC8DTSHGa zD4cAUr3r=M6+8lMnKv+++);^WYE?^Tf2%1QCS_(Vmzr7cmaI4IjWF7V;h$Kp?p~Xu zTY78BaVicMC9$e=Hh1mOd_X%57EI1e>rb4{rZ;#w?&6sLMBwyEddFl;d-Q=Mke>Aoot(9qo^z zy!^E73xqo!8xRrHN;)W@Qp5A8&#%DMO*aIIig9}?Q-TWyLu>EzKi2tDSg{x(0b$iy z@p0GfwtO`B4g-~|K+RuUN^EU8D~POr98EJ2Q00T%mZ0rlOxnmwUX@B_)JJ%e&}Q1k zw~Q<>zpTxNPd#j&?x14aHKx!GqOptx?#GoYHNRXUV-{%K-GoWXTY!`qO@*ZwR=|vJ z)02~z-8j5wmxu*zkGc^$(s6AuwtR#6wTkojIt2~D186|4XY;#pEHCRY8uqz56}MkC zb4R!FmSRiASpn%>F(7#Yt?T*6_;8t9%E|MwCgmq?CLTPI^sM$ zUP{SwTPcU$%{b`8 zvT*tgMbtz@2a}*%i zj;>Rb!Ra}^?4EZmnEOafKK^DEu8Q1ajI6kXe|vK9p4krKtv=gCu#A;d;w+b}bh|Ad z^ehnDqEBqSO2*0jE;n2iKwk&Y;=Cd&TFsMV@CP=2Mw9td&-PMnhe_Ca&bue42dAG; z0)v@x_JU0SnD$t~^fgD|CI*j7^g?eEMET#Bi=y_5FeuD*q@JyCjc9 zLX{$62Pd}f5Ra4H7*t}`tfe=wN!pb_U6^NJI_ReJDIkNZ7&8)qws27$ z$UGM!It&gbcR?J@#tG4~P=gYJI5j}_NN>DhIrbBqqL8n{9Kqc{YJi!|M<6m=Nb+CmE;m|tb+7X*$8tc}~ZdyNK0Ex|-9gUc#@gfD;m@yA?3!7Qjaz8#SN z=J7>3yQ6m~%KFVfl3xdx;@6hoJIc4L^3(>GK4{K>fPQGQChpvE-=ga!6NU zt*||Aos^YJFDVF<=p?p}CweRJ!!BJG!=+!mcB5s3MZ*7eR_4<3c ziD<~wy}wyBaDC?cVR9W%*ca6eFd`Vt8($~ch+cr_V4^aN*K6+La_KHfv2+Sv)Ph-h zqhHW}cemQT|pzf8&^dyDzxPNi<6$)UQ674{*%{TM}g7_G^kZnWa?EA1-AXYDD(-_kq#Y-l5doz%c`K5eFGz|C`x97Fc=hW;F3E5WqgXy2J^hqe3WQMp* zXUX3&)?kd7K>r_m@4DT_k);dvZ#_j8-DeSy0q`!8kl{MAM7!7}OIjjbb*f1;lmHSW zN+5tj0-|UZ*Xnne`7=*4|L0NqNoHT;mXQD`t9p87x>mOZ<|QIBV#khs{q_WpB+9u@ zL=0=dzV-=yV9}-uFquB_Y7|X?9BA2$87QfhFg!SHIdhuDPC3=h8H4gQ56EX&GRZE- z*$f#LgCSaewOM0^C|y;n(TI4(TC177YXn{6NLS8VW6-l|)vNoq7*{mR3TH?%p^MWa zDDjbce8o9pJ2Fp_kx1%}_($2EI#=#AX&%po+Z>s^aBJsS3;D{KDTz2j{IyNtkegMR zI(e8HZ#%7Pv~w_E>_7tgaMGJeychmjd}1@Y4$yV-fBm1ytA#j-N}B1*{Z209P4dn1 z*3KDMoExib-eviwT@r2(BSQNayRs=~^X7Q6DKo*l!jIrIFaC9b*;MH#I3}2nhFMi5 z^TiANFTaebOoT*>m}XGemYpE^@CB6w@ue{KF4-(eP2MDeVGREvBJWci5tX!7YNEEO zc3l@EiqXf5whc^mqUZxjRC1@l`zARGFE&~6LKyKMNpi$r6t9}&ud|Pomb}?sQZC@) z!kN{NoaaSF?JJv8)A+zNo|(pTX}sEA*8HZKPgNZ1r1`Ok&vR@j(rN)MZ>`OBhaT*+ z@%+>He7$5qMgErGK6yNW7M8C#hdsB$(g|IEKK(hhOe!{=L59>SE^@|cFj>4+3e$CW zic6equk{y=uEB?0wC$pW$zVPXWG<-6(WU1nxV>uWM_uoI|K3yEsmJfO;QDtU{puG> zS@Q2U0}x})T#F^G0gs~MrY*Y5qmyg6e2ekN@#J|8je5-s?qS%u)j!0&ZhGP%Oz)-D^i-xE4axV)VjHfAr>d!vqH`(Spbh=#M({v zYTMh}geI2u2pEX)a&s+LR7zahn}+-PMnaf)jrKJng4731Mw6@9dKbkeB0QJ>=>(uo zRt>_+RVXi{hO@V-!vBa~j6!mW_8`x#t3LSUTKzhAku@&}$PORYa(YJ69Zb~T#X4Cq zFl9xX?+LQfl~M5>5q0sNil-oj#-I8)q=#(Vvh`hlOR}nc zKl(VIK8um3triIZ_j^Hguw%beZRKSXuEI_$>VgIUr&6k%dtD-h+^9+_*xbmV)@w4a8QR5 zD>`b&RPccH7F(mIsPKB)t}Wi9)51NstvXY>BE01{s}VhQ$-Eh5RckChW~L&`W7MoQ zNM+@)xZ+FJ%lhh*@Rewu?&r`WExgf}N_Fh8SFr)`RLcam%g?ywr)lw+j51k%YBF-I zuu=!gNk6IZKOHK?tPrM@6d`|=)Tt+k3#x92868+MTPyU5rfM=QI2DBREMU4Og8?OY zV4{Y}$ioHTGU=Kv!bg_LT_MLj^)*KfJIuu3sz4x2yq-*^@A(|k)_{;qF=e!2q1wgJ z{WUH}h<}qiqb6g-70u|f>}W!Uizn1kUb+MA?o6SUiR4J=mOOs3$rtqKki~R8WI!YA zxD=#&e7u%8QidbHM?HT+uIppOY@`~wFX(5Z z`)psFVAPE9du@{2OII05+Uo(+Ylb}{*)6=ev}Jc+#M^g7t>5)0J+{O)HSp zb6^r#Yp1+n%qgs6xzA6~(n|@8I0GgE9O|zAZUU2Z=k+G=psv z67PjQSqhN66G`I$TF@{sw`6r=$`vVR$=ppyMO$Vj$+lb&1BDyR4OdL|n$WWp;Er~x?J2eTnB_^t-7UEl-L!C|73f$XVRL>aVckm#va(_O>0sR)18s?3hgDg%P~Zq#mQ$?s5A8o&(DG@rjSw zox?2!+ier~4{NA!zs8q`W82Dw(Lq5LK6j3b%_>UFMA3NbC%*(K-<2h(p=W}K0k#tY zaBO<`L6uF46ClqEuwbsBMpvj2DzSwu5$?a#-*iW$V7ShKRPs07qkYBB9Q;w$Ifv;i zn`sSQ9Ws~VqtcmsXuf-AZq;$O!VV{CY1e(px$`5*zJb~R8-2HoXi#+}F~9$Qh@&|qjo z!`&u^<@jl4LlN^S@EZ%=lahUgB4_oGOZ$DUQYbUOY|hmft$beD_2Va;m_>BH=}v6A z!yA_I_`pUy@71Uri1OkxA@F+dd*(~D1@LKWCS`Lze>t_&u70_j<;L$NVkoORxI$yL zL~`E+ps7t46H?}feSCq9b1+7Qdwwk|)@=H>6#LFB=raG@GVdJYE4q#I>@z%`nDhVR z-~YGb6Bb0z#?XYmy;6^pe7Zy`X_HJ8f!D=YN7tFsb=Fe@txF=T%Ux#9zVUa6o}tlA zqBmpvByvyBU~g;abAc7hoZXJAU!N>mv{#4cXy1Nl4jm4n69{+@85hyr2ImCE+I2Ia z{cMY2xNou)*BHx?dULsK>zPQApY6*?2R~55`0E9>z1glM7e0+&Y@Va=XFt61KdPHG z^QVM6k$lLbL;)stmj(}#Of76*i_J0HrSIik6YI%Cjx6obe@c4}yWVtyqU7Uv&WE7N zZ7vDND7s~Ninx%Tv)g0y0L*TlZk9w1a*P?mjlcrofG9(nMEJ64D(}yq1^eF8&KrrL zQX#ZlP2N&YM%=-sJUt~e%`iw5lVC52g0Kd$IN$>y@H|? zIM7z_U~^otXP`V5V8uDes+k*u#Ic0Nz%70Ys@jo_ujbc{754Cw74@y;2&={QH%)3t zZ!|WBSnNb@_Nd#J%N>S3B6;1jwu5qImndGbt;BY^foeGY0ji|sO zR$i+m8H&6xj5htGJt4oRG#Fznpldxd9(#RxM@i@jf>xGzf20?k`}T^)siZW#L&fUG ziyP9r%t|V2Xv1NZ(5&ay{Y}Kv$MfV-tWHgoMNUU|VvH`laYA-VGYT_ZY$=^!K|b%Y3v_J|(qI&+wGE_siP zLda^GA`!abT8QGV*=T}YXt5I=D{r(z2TyS_8(y)~Qas}9oM$WT^!s0+n>+Zh1RWl5 zhX2RE{~vksj`F!-xHo)`N`kjeTv_?T)ot`Wsuuc>^fvd=Ng@SK5fwvB;pwcdi*$=+?u-6h#1?%t2+%To!BU7sUJR| ze;#&6S(-02yW2>95cGy7J2Zs6H*>B+ZZo!JE9Ef8?&Nb~1Z&a6up0VaBSEtZhGH@s zsl34rFq@2P$tay&WmT^Bv!YNy&}mr&*TK!t`NQ;oWDAgu zhd-UXe|7ruyqUaw`|70g!!JLnkt1|>VCsPOqUmBSeK?Rw8KeQb^_k;U>p&d(vTUnEqi-$`z-4>+ol=2k}d;#BsrxA{GgG%;tVm`=&~c=rK*{MlUJwbZ&ywL4Ugmg z8p)rjEpN;m%$XI9h7D(or$WE7!KG*xwE_w)`UkkM2@z-`;Rs*F?C)n>`WX3Q59m4d zr&eMNIku19!LQCoSvF0mHrS%a+S)jq-%e&9foC!nHX<;vu$tnAA7I7yKG*4Tn&;BH z!|`B3$xWF+18~ZPvQ%> zh2zYOc``=7y=gI6(f23sUYxGCqRiZJP0y9}aX6uYdN^gE@$-|jbNu96%>HynUg=Wg z1;!?(%oBJMBE$KNtg(g%27E!arr_he{DhC9zCC+R-(*hXvKAQXltPP(TzRy{o%$|9 zj`oB}!YU`GY5eYwSn9*zdp~!{#+}gXEOa{Z?i^=axB;dLjuKrGyHGN5QvIXreuC}? zGT7k!0qG&;kC|9K4q?;ZBK^St78on*9ENy`I(wy7q@UZ2>OAZ5)x@#E2Z^vovA2;! zSxQat=u#BX>S(CGnx)fgm$TTABqg-V@i)oK5$uRrE`@!#m*?c_0|D?V?Lm|Mzouya zOwgN=ZDBqTZ?8PD3KblwogYu$ygVVBJqpNE6pBPwxZL>g;X~!(-#~x((0*Ele=3cq zzpwt=MRIvLZ$GX4zWL#Pul8X7yu6(K9-jL9KUe>bZ~ndo|JB#wzn~mzHB{*AEcrYB z^K*?ps`Ku}`5!u`Z{YuaeCv;9Mq2#!{?2tK;6jtGUS6JkOMgm{E_n46Tl~|D*Qc*Kxa+9#Vx!D%pw){P^?yz4 zzi!u$JMC|`s!xdnc^5A)fffBTjr7&Yk1u|CeeN|Z{&!|wMpfw8v{5d2X$vF$K=?B! zpL?(^vVO%aoKrQWE_10D`b|>*D*qF$;&S{yjZmZGc};gt#h+RHb65r5@edbL?Z(QdE1TAq5fl4)Wx(V z$y3e*v?*X3M7@ecpLWo406eNiRsS^jo)ZJm9#g?$6E!w}O-?!qg2F?L4 zdlj&r0q`ytPU}9}(u2ZmC6)U^{}0TbycdR`!yKCz5i)Qt(Nj|K?>wpi@)J6qVtaV{_w5P%ZKmr2Sz&ZU6A-F zR>5?ba2clvo6@agMrrm^@mXmEAH8661u)`xN3M_Q;VVfMs*GS|Gjz*Ps$8C8F37K0 zth%|2;4@#qq#Dp8x#JhH`*DKdZJ{%_uC z*|b5mtt;4In1w0Z0B_YC>4i$oQ(<+KYV$=GCEAOBb7WSAAMD^i(*_pusd9-)Gofzv zdWi}sul^p4O1d`pB@Vf;dj~2R-{b8El7nk_70ssTBH>h>t>O4niip{47si5{_xRu6 z%^rwY!X`X7NI@XidD8SvF1=@CK`W-#qC<*42v^Nw&-p}o@_CLxvU8Egt1f)@_}#L-G_8i=qwt?bY+Z^8^lXQP)ST=#5;qIJq9q+H=b)^zWt880(j zQ&@qX9TH!=fGa2*SDS5r_`sMjsWi?heHL;X^s3aLg7-Xn+~2u?8&zYOf)CLE|Y}Fespij0I;lX5gkAMb6TeT(HY+ zHVE-ov(Xh8*&+hF7J!b)v%nJvHP{h;WwAoCwF5BzC_LSn^m>cw5Ttjny0NI7G(V_d z2PKv%#+!>-u&vLSc-3~AO2OrsR&gchGOpt4F)i7I*t?&R>K~&pqAH(y4!5e&!+y94 zd$5~@T~7aO(F+AS$Fia_HlBJuwaMI@S2zv1GDOT+1lE+~ek^<~1y!|;{&0rKgYjb* z(Oa9rS*=^?i9s$^jl7B4b39QEcB1qYF+;U5zStB~)eWDq~!K;0-lt z089pfU6v1H=upcYTS_G7MaM0qUP_K35&}kE@cWy2A_|)lXMLLXK2lt99}d>xoQ<%? zt2yQPxyfG{96U;tT(z1n6VL}8nTB#$dO`7})4|;3PKTrl=2RCV{AD*5n-MLrOpOix zON$ueHmb-2zvI5;2`Q6_KdC<;HU1tf1X}SA7$Q}9Z7UpA)z;5-*PK490gO4D%`4kA zw<|w-PRCBS-O&q0gOsXZ&(x*|Gi2z%U1pcYd37@uOu};N+3b^9G4bw;ZX*j}%UBX2QQvb*JE zAT9BM5;OreTIE*Z5Tj|anOZ%T*FkaGRdS%rKI={Uj_S(OtPu6SK}SE|kAkLbyf z0ScSP2QcXE>IzK*=Qn4mO4#`=n$n7_RF!RW75N-n2OT$gU-qFs3!)kRscWf!%exK2Jx9D> zzmbkI2he`XDRidBBRMnmZPAzXq;wiv%Eqek*BU&5mG#G=-_GsH{QoA!ZidE72Qpcw zQ{j?b*ffl?nv>;?r}&CcHb*>6U#{x(L@a>EJugtMNIDC$DQ_MTAUUu(I%G$ zA#-u>?!`5s=?82V(fQ?EFLoUH`e4a>C8nghMkJ30Bg=7X6UVN>>tWveO>LkJWj|=^H zqL0OH&2Hja3*HHyT@2t`l7e}kg+NpkB5ONOucRgc`FErVXoE)za(U;TuRerS=WS~g zLX3b2Z{6eg9;~bR9y(&vSheirC(zRso2>XQ7Vq$Pv|;&5?r#1-65vOx%_epmItQ|-NEo`FC->YU{QaB*XVw)R!on#s zGWc{o(D6n2eZhCzIB>1J_DH2rev5R2B8b>5F?4+d8+ASjC5ythO)*1ZvdFdIkMjlL zK+QN^^9qX_7chTqb0WF-dC5s`EjfQ4N7^9~QOo?>d8!}~M4w`zsqFhotOGT9P1?~T zTOCCs1eTB#nj^5oedBr5V-=rV24&7L7&Y%i3<^wx;Ff6S^BL;vmBRybj z>~o*Qde<3efS5)(whRR2D}wYN&>lnd8_=mKp4|~+d)Eul>xz<8SaZT<9p5BB4d(&c~2`rD2oa!Y`BW5JZs!M`go=o(HZ`HZA3@gQl78_P2y`Li$D zUp`#)Vc?3g%@mEfoEY=v-*UOJ)z3a{jTZ>YR{AlV`Q0M*AoNP0--R-s1E&TNzaCY# zikE!uxBOC|x!cG1b=Lso=1q5$M<9H4(+>?7TYQazmQ|$*V%=Sxe2B5>@SnDC#OKl> zrb-#@+`O>_XrN%6zaElWLrJTxWZOZ@AlnL!&Y>5ZK;H7YYS=rKK_l?Xm>lrvJIG+d zH*f$Wg6pvPI>42$vQZ^TD~mj}+*`Jo_lh>B5(xAQ2~d?n>ypS}S{uy49!L z(3vTEu&QNIWx!Ax+sV^pezDyKem}q1fn$|jo2-rF71zhNX}uPbdh)n2mLWP|cU_zl170sTD1705&|o3=K~sU? z3jZRZ`hhiBeafh@We=BRPs1DEeDe)HPVVMr6MiYs&_hz;qYthz>d!;{9wV6)1n5Cc z5geWW;U4~a_)v8`%S9GMQScI#a5;wNIF}Glc(`HCU3(;ALCLWmjD`9OB(~|ItWm|S zq+NGdoC0${#Ub7I9%xhyIA2S8t16~_tq^ex5}!<_u?TD`$iP4eHVk{*cjCLT-~tDF zfkbVRVE-B57XPZdDU zze~ao8oLW+g5jbq(aV3Z^Y!mZSmYKixdmoLs|m6M-I^Z;Vm*M@be5)&h3ee19-45v z?0tjm=e$SghLJTB7<`i|pbS0oC?_QF4Tq-m>l~6(U+gILDt)T!BIh7`_eN>l_vE7u zV0FSI+@N!eoK!ISmQxD*F~P7D2btn_@VA@haz5fH7ZOFpTghG}CkZR4aQA>w!7x2RmFiOze;5VTuZCaP2C!Pr5Vh zpD5T6kJ8n@|4q`G()@1RgWum)e@~>vL6yMwDM0DxYSj*b*}vmKvmr$$HBr8!!_L=^ z8e))Fv2Q>ukHY0FO>5wRWVA3KQqxN)j_2O^2{vRBinAPeVlSp8%(;+cCzm`Rci0St$*GVBAB#fzC21v^N&I$%EUQ)$;*Sv@6b`|C2qi2jW~+>` zZiu~i7(_HrlglqgX^F!W0&Dq{XZKjkBc7VjM#~`>KSeGWJa0Mv1T>3v{J747tfkds z&`rnQx#^@Z*Cuz)%Q~sWcZO@1L0t&xKNPQIO3VP=)hd%v0yE>P!0si%E5TEQe$ome zuSNQbo%mjwqZJKvYY?+SY|WG{#12@1WeT^_j?H$&PAd6avmEm)SLCWul?{fJSu(8h zWoFx&q=v&3nA6o9e%b+_zz?M3%O#ONe7<4C(Zcl6nd2p3>iq+~XQ+6zgy14aZ{etG#ZSeWqn5OIA|r-SS2Jl9DgwUe@M(!H^85&!KfX!&t#K^3zC8voQOHDXXOC~BZ4&WCp{Eyk(Eg+Pt zyPdVFd|(UmPa~p~4Xd^?Um$M@VS#YruL6JzFkcLHb=<*D2}a$may(0gH{2~wg{b)E z6gJ53q4+Tpfdlk2#+JbW`k*wcpcMy~8!tn+l_uM0?&H?C>I2_q02hUe5G<>W!p_5( z!uXgOVagdYqsXiTgM=ZUYmYe8d;B4T`oeE1HJdrfhW2|y;H~hZQRANE>a5N=_&5(E zK}V4!8w$&pw_|})MDS`tbdKH%W$CKshf{jdu8C^EWB4|?KuQ*2#mUZ+=-|;EsN*p# z;K*(ex~`dA4;XTPfk|KEiGwKP9*9B1!ks8?MlD?EdWc5Mnsda?s~>~uMyliu5LR$@ zytWJ7bCtSq2gVM#N6fkBT^DZVvMm~)M3M4CRgX8=U@Brw^!ntZDCsP~d{?4F#fU{- ziMz>`ZA>v&+KtIzKr1)qZ{sH~CH9gd`_|o;(&v5AAg%5G=t0&I!{DhE)Eq5nS$&Ac zj!E{F*~FTS72CnGi{+7$(5!NTQlY_Hf`F)aPhYglV7tTZS~SFBqcXzM{V6dV9Vatw zZ8qj+(`pkXQ^6b7IP0~}GLhzW+GpT?)a(^_UqCa;@|tDhdE(omeQsi@NTJ5=_?RPy9)L&Szz zyujKIqATsUB<>FXA~`Lhftk)X*i$s3AsBs>j@y_aT0Ab#jbLBT7X+ur2#$j7MPU4c zyJQ6y#T0c9wM_gM!Y1>@4c6O>@yAHC(Q3tdfE5sjqY*iaa65BU!@ZEzgI8`Hb;NI!vYyjGJ_<#mkT%R z9LxAWIj&^L?NSEdA6vnfddJjP#RF3eQK!bWDQ}%O9fQHLYSzD;|5!hgY-+~rzGKX8 zB<{tSLI)|riawjns#}8pXt2Ni5Kawz!`QrUJg9RLVUnj$?=kL*r|IG8Q?*yQMLzR} zIt9akIuHmiocrFZ^n??mP)~}|Tyk&g#SgS{k}aGxa4RNRV+jR{g@zSMAfdXmo0hv2 z$G{+-#sNzo@0mUxum@*YLah2+M+lC3t1s=USn5&wD;jwow&+Gd7PrmILa?PWSO%|G zDXzEBkE1s(HihGDw)y*qdh$V`kZw|C(e@@YT( z58MLwIv3Kx%N2W(>)EuM-##Q$j29_HbCz_g2$xz@riD$GmaJ(%RGZ1NNSET<#jl8! z1%lgV$idm>joux6(=Fg+3F}G#T0o`0RzeX673q&7jsE$5bXBYp(ri2%NO%$4jsY;W zl{1^-C6zpz6R_&L)7Nj$JMZ3~zC1ardW^*1O5#Iw2B1|q9_}}jiot8DZpt{y>#c7- zJg09$a)Ey=-Q%Xefg=N{mcGP-I<+IYd*LXPq@H}Zzj^oo4d<{@h%APCfPU2IT2NSo z_Qw`KT`Vv1Krmjxreq-}#v2vFxG^7@~i8rq$ELdVG;PJmN~=Sqq*Sj28KI zWr&3O?Qe74f|oAT+rHk5-&CSi<>FGqr)L!RJ8f9)kQaLV*+EvM9?eE2uI*!j673ng57V5NS#) zF|WiOksaGQi}wxCd&J;EGpToD(oN4pennXx_b@LUc2P0URSB0! z!DN<`Sb$~fJ;d4l@zm zWL%@!9$HO71>>Wb91r3zF}P z)4E$B3`+(`=-m*Wo(*6LF+azvU?KIkkSoj=T`F5~ITly&mRG<>L&lJey~(=6Mb4T) z@*~H8WBG+iPNveNIGPvlP8-QPL1gjXyBz;*F$8Ip@cSz|`~67|MFeXX*O zzJM|`g0p_Y1g+ie-DmZk?fUk9m2s}*<8!w_C2q53Q+Y93g*veCtxIp+%R2tFv!#+I zJl28D(VFBSXMY;bCR`Nxa^ua(52wGJb>M?Le?0k%h|%nTqe3isay8+yM(^I9ohSD? zga=%(EvtLv2*!GL3v!~Co6x1Y9OGKicJ^0bNLV#9mYUN9*#!tZpdx4=@Dtga)T9H& z4-V2Mno^n{DDsA9>_e3n`ISJ5@$#R(;u;oj{&f24^hKh@srYW5FeZ-xU-+ZKrMw)k zx3cNtYLUeY94x4ZRpXSe&| z1D%BC$v5W7&O!b4@alSwUJiT;Qxt?{x=fqDtBUn&fp%s$Nq53blPW=>PN0=rK>?mz zsjjlfv0xM`_A`v%_%uvi)tUn;Iw%vohO^J!;kX69@uk(ByrNB$+}3Ft-q;FGKm?dn zD`^q_MIq4gdQR)tagsa0yh+ZHno6L2bDaCT*SU!Hj_tjSKWC56KE7mGYDtBB5h-Ca@l?KmO&xR%yYu%fC3 zKYm7h;Y2+U75jSejbdibFOG%xD^#S=K>4p!x_}~LgUSUGJX?TokAEKq-oMZCDQp(~ zOa=NVFU{c=oDhKrGof4i|8Ds&v1TN2k#Q|nDZ(r7fSWk**}m&3Q1gsCm>CyOi6MP~WdzSPIo7M_!- zn_(s>uVp;JQ=g|2k0x8A-nG~$Hb?rovQtYazk^H~u+Dp+A8aN2RSyr3CyOB!VpF#) zX;3U@sJq?BX>DTA*+3^*A~&P~Nb6rcJrLbSc!K-;H|x{B_2&DPFRIPqNULMiDCz*? z$5o%GJQOc88BVFPutCy0L8Xx_ptu^Q3@$wP;RA0eG>*cNs6qZ_0uVOD z)Rq$Qhw8PX`l?wQqjP#c9Dm5!abmOF_9nlQpJFjobRnJ^{n#h^h!clQz9?KI1WI1v8M=rs&pI4DsG zC|1{#zMUaFUkMMbH# z`iU{h*|vnpr}NKqMbVr(IIG1#*+>`{}SvxMqKI$DQskaQ4D1VJ0J!$&k0%rBH`2(e9f)sm)3Llx&(XO&F9G z7>=*OG~V;S*a26cZDEV1o0j~Gl#5&y7z66!hCav|8Z-%iV&yZY$lehSLVD@ z9oMEq{7ULnc}Fr!8}wAQS%e#t&slKStsDw?!6&W5~l;1US`I*tN%hUY%;8BqsotuMSaCp#2E}%Q} zID0~!zsEj`oA@GM^6^qXzne<7E*2>tvJq~}IvZc~&|6pfL^P}h-dX^&oeh7bXYpk? z(tpU(8J^l6B|aE8B%Qr86Ljp@F$r17<5n(V3x=HIa+X=C7NR1YZIsS&=I4HnXDK#q zJoOPz8zWG7N1Zu-_A@}-lJS!yFyOrJK=~I2>(UI@*DP|rpPlresS=nJ(vjwfOCQ}oRC<3&)PIDN} ztdj8qY2Vb>DQ34ibAHb26mv>DSkQut3JNc)yLA3i$aaPW+p!wd937?U)p$ahFcB&| zf>Qg6FU8R^+u^q;2%Y1SN@Dd#WwQtLfVGgLfgur%3`s1xXCiuFN#-6s7R}_INB2M~ z6<*Jx1Y7Ya7S48Ry5>!4wTynh5qd}CgAC7oPu$LAb;6yBOG@^L#G9^0bYuKiC4BgZ zoKPc(yzwWJPL4j_bc_`sYe{rUs|q1gjN~p`To}YSqgYz@NuzH{SC{*au5NK_T5Sq> zAO;^^Pli1_?AjOG?F)1I;opwot<5E$A_4i8KW2AAD5s!7d{&}?!>OENVxPDeb7^?T zK9=Oy=`_RWK$t2VFK~!G;1JPoUC1|y&2YhAL9xL14?(%Yph_vhP6tEul}V5?Dhp{j zc)6BrS1CNoJ`t&BN>43Uz5k1+ zD3l;)93K^QGY8SZtxZ?Fy%>%u2DJUKSxx@q-~V?f-GF8X<XR*VNi zjXL4P-$X$P@yA`Kn|icxYF%&;Ho1}tpr(p7Fzr?tVzcolHpIe@n43uKv3{*}*B%S+ zVfAGbOh8f_TvIq!V(V}rC=^U``^RQdp%1Bi0!CYvuYx~z+TzdnSW7-3Cvxlz(3Why zaB*35x<^h}jYMBLR@Nf6fLX{^w0&Qo!#SqZE-rIWMdusqLS@8N2Ar=r^pbdY%&lJE>1Hooan+8vdh4KA}L(de&F?e zij5{)$xikRls|r=Sik-$_ezhsA7V>qhhMVZl%wiGsWeG#F4r}jt`(ZI0QPEAt{elBZJ`heQ;71=msE-7Fg~BmO82a$R z4YBy}Ve7*Ow3(*E4<9_A@8g)AhB37gooMVU#t43R@$!!+Z(fOL=K1@yAg_hS)>eJT zpzBXz2SZDLlyrLb^8M+%^RVa$c{+IASDO1w2%e5}-6y`pwG4Ge> z@@p6`Avab0d}cH5vN5yab@Q2x^iZ@r2M2)(sx#)A()D6XuPj)J8Q5=J(2Jh;lWppZ(VyZkBn~x{T)FImq)n1UtkIFJpDvk92(U&LB9Qr zg~ZE>v7*L%4tG9!&&jC zf;SYbR}31Q*^ogrVA((J>@%NlMvZJf%d*DFh=L~1;Wz5!C+BO#5ZXsFv}8H=>2G$j z{YoKLWl@GTzv>u%Gdqi{QQCpYBtqINN{Thr}yU<{|foXgZgYK`90!CT3ETZL9M8 z=EaNpzozwHx9i89_P1Nrr<8&0UA(;1N@dm|_@2Lk*;=s(HWSY|6{h=S_KK9o>k9SG zxqd9^s@RxwU$gW2jziGZn-SRf*KDlz0EunFuFe^c$7DV^fp);=fRVTt2vfe}!h^eL z*HW~Pl{hDQhQoatjfUrN9uNPv$U2iQ);X>aEGkWNI>w}>t4lkn&9a~HOU(VjXq2@4cMvoy=j;H%q%`&3Vc#&>!(W1^E84jm9D8#-7xY*|u89t4t+AeW_xkb?;(usw!zrUfx34Mr)U zA%QmWw)6hg+c&TO0we|EAUSy^}kuml^ zj|hEdLx0j++_0y?F=)|56(VMozjugTcdjRsk1hXPSP4YKkY&n3TOm(Xum|>8xZfL2 zhWB9Qm+=tCDozc1T-UIT#SF7I9WTe{-pZ+!lbUvmH_d78a7|ENpfShI@ww-*HOI-M z^URT4U&_*$Rnt_v98DV+%`JzfZc-eTlmV!)t%HTNm3=S9`C>YySXT4x%ur0jPVE$Q z=lI=Qh!=N^!F&js8chZYNhYWj|G-_r7%{RftmOB&O+hm!M{Tl0-Z;Oxha@uENVT@G z^tD&?rWl>%d?>w1GJ<@im025@HGCrg&79e{y?U|#LeqA+S6jL)tON?o|g>3Ucw%1V6|&8lyt-Fz|vS)zhYNKs%LtSj)@ z)40w)_lHO2)FKren z+fBDD8$oc6&oz31%Cms5Pj(V1=;hFqbhAY$pYx@V5LPtemlPP{(SQ&pzh|zP1#Tb# z)(cmG>h+sHeu+R;*b%fY^BEBBjIx~*DP`X*V`MaeSYLXSX%#dKN-v3y*Wtc8eZO+J z>koM*iO^iS#sW1&$GjwV|1r|(qbAgh&86=6@XAyonPFlNYY)Yk0%<4+%!I*^#yQR> zGXn>e4u&)Zp<~h!mT3hZXYrk^Q98om+;yfH$u^#=m4{V% zE-ho=cfwL6C8~W%toD+6MdhW10vio8xf3qYD#l=sxN^$CuuaW3hyO_e+ zMJp@zsIe)&mV+vYWuTPAb-~>lII#CX&iI5v!3?O%4P~-W`uG;+wNWPAsu7YKWk{hk zc94eOS_z3ZV{55-EYw)23LZYnz?F9A^6D0xxvyLzVOBJ9fOjo;Dt>&VwkL4jmJlgK3Mq_#ko!@!HVQ?XpASf z74}BLW@KfGDG;myiWvq)o1k5l=?>2<>_(tg{)jYniZdu9*Fb@*@nf;Yivb!!ph- zKjQ1?G1A62E_5fhWmzx$tL=!kit>d%Ww%fJOQc~leG0(ZUl1;_y9U&ip!~X0hp8y( z1Gbj}wKG6_yr89lP?y_2M7vyEh0z|g5rDJH)gn6k5>)m;mUf<0-0ku*5Mib=82QV4 zNU`VSsr7iS-wpc(1#TN-FzgA$hZ|ew-Gha%^WRHZ8O{p(jXKV}^4qRI^1(0A?wH}4 zNmyXZ?i8hnrrFuy+@vFCy(}=M2Zl+ph?2+L4C=AxAjL|;mexSgGelthZRi4sMlnJ8 zIpTGUvs(je1RdeZM-DCLU~8CcuLoCA5SUJ492K`Pb=36nhXshnbrgkYBU>~keD8T; zA|hmDz>G(WoXTX8Ty94gM?iN#4?-+-8lZxqLuVJ8yw00#hD3Mg*!z>gr*)tTx=k(6 za&ER==#0eWe)Fc3EqoMpLjOg)krJvM5KKu`qI4*u}bam9xl9(ufOqE8;Gjd z#Tk*m+NRI`@S;xcdOKh4wxqA7-4=dyFnt(?V54AW8O&hrD5<9}g0{SH<&-l~Zb}WnM%$6Zwe|C<_D+CJ^FBew!+- zrU2n}=8}0gL)nhrps-p$^kgv)A;Z;Xc|DGh7adUIv9OYJ$>#6%Ph945kw*%7 zziWTA#Ssi9(7^qP^tTwBZ7;`OC7oU6Q9!wuuTMFeCq-ujWw>oA7B<(`Ln+~gW|2&@ zJ;_{?4;PcBvzPrZFW=cXqz2b7qn~~bzBQisM(^+~zFf0*%obgiKaDkoE}FvLE|fI# zgJrCe7*3fT#bxCY(@D6c?y%kuu!b2`&@!>F&BR2GNXUd0!qk95RVfN9zboc67IZN| zLkg<~@^w+Vju&P`h^J*@bo8amjffmu*8J^k0%wL><_EQ42M&xOu_=%dUA*3xi%B>> zt+d=S*6MnT;H`m9zMN;tEpQc;CTqZE$Q6%GB=Dg_g7Om!!qT;ozqYNd<$}!vQh{aX zvDpogSpDCU->{!{cc1mT-J`v3HW(Z{+v^_p_MRQ>^$w2rx_jB6zq@~Y(0$g8g%`pj|~0l;6BPM;AIqybUo^Sv;+(-D+NCT;1KFMYxkKl&-ZR+j|4+;|Et^`rq) zqm2F>V|7~2#F5g{jhnmaopuQ1X_tpX1-} zUYwo%`R)5x{1;q*b@Jx?^u=p#@$Jv2=VZ=(y2aTWPiy?Eg9EKSB`utOZK1PR{wgL< z7!2Vw&$z6ToFVvC!@iRs0ecVlnV_12=*T8=P@hC3`n$k*{5{D(4nfoJYeYMj@-twl zdO-S>P9skD(xJ-izn7}WtV?9G9#CzE0?@>-@Axs@M11>;QZhg^Y_FS%PsqjW_3ukc zuZcQf6Jy2=#t@}BrMbbeTo{aK> zsB>Gu;oL#SR_Tn-9*?H18^i@U6Zu*FCJg5-Uv6pzdP^Dxa2NueE?jVJbX98NjivAM zrN#%f8lfqX=Tloqp+!RWpn})vDR3vn!OTff?ZFwPY4Pr6T!Lc0xT);W!PGPPiD4{(NJ`6hB2*$KsX?pP1;;7PlM%x+bl z70gHBqwf)sXvCf-js2h}V?i5FpWfU30$Ua(L5-}Nh-5m>pocN2Oo&RW}_E3 z5pQKbKG;5Aj_FBX{4Ia-bNdG9>gG3kZt&}|SgBCVWU#!(t@Ezg#Z)ELZt0?kLU{*c z|KLDfN-Si2E{=vb!@0uk?r(2zM~Fj1&@XtVwKRMCE6=2#+<##Sy-nM!VBv&8*&@Af zCIPqru_c+`hKUyyC;ODOGBKxtyfPfzm9KyV5nMY_U6P}d{FzGmfvP(ukGS|l;X5Q| z$;7VGI-#1sq8ADjt6^ADrf(2?0jfsrxj!V;w-JV}FWtPsRH2KMqu>@}$ri~d7?#9D zrU>fv7PMJ5Cp1{wbx)>4sD9?hbUwXMrf`^^PhY+T|TbZ z7gm=q7micRO=57bAd+X5%!yiLhwog}cVP!N-71H%g2bHK5akz|Hp-PB+TsuYdXJ^o?A5`SwpI?_d0M(s}p( z?aPz1GlXM)e;(Y!d{3Y4Al4BUr})U2^MPj>KcA+B+{XC~CcR3a$Kgd2&(3>LBge6I z*&Q(EKfHZ|DW6#4kUGewy3w(>Z*6Z?1RdlTUcG&D{^$3n=O>sR`10+mlh)#Ab;kwRB{PWo?^rU%|jqsTugmn3D^L*5$#rZM@d2OG4us3_(W?(OCh+LCKT+Zrr;D);3w>lwpFgbwJd&89`|0^U0KjNsI+}9=17E4D-2*l=bJ~ zxIek&=CWCReoZg~LjOrOyG}n1C$nIHs|jVNL7quiIIfpPiYPiAKn5|nxy3~*C69Qf z^*4$ClpK(#C2-CagR_gQg1*d#g>u&%gRn^p;+`|;Z|c<#9dMoI>vWd(a6x+uOdcC( zU?5UUakfyYh2iV?pouP3rBhrBnn$LShQ`;#wsSSsGKZaUC1;ecW)i3)LR>Yt>D-A> zy9^=}&Tk&sDTzDJdp`TW6!giCc<|KmSdsI42a3%0v{}3mn zU?~tc?9g?$4m)s~nhf$eV@D`i0g#kzcO)1#6qvr&s}=Z~QPN*o=g(<)<(t?{k2 zNmRqMyQIQYTJz|x7IazlWkInvTXY4%;9;%7+1VhnO=cgRT^{vHN}i*G7DOl$wnShx zNVZhiHwnSTEr$JsVY|3|IO%ALA53r&9Y}kP;3m&v5q4#&!M@mluliFNMGJwkR^1t4 zCsR8__%))e!OnbA(GRIM5DFPj*pO?>(Q0$^BApZqR&d6dk0L=IeTtc}pDB?-@k z2FcR_97(7-S&h{~gM@+XNEfQE5gtcCa|94RaU#eSF=<*F^6evkQ-V3=wof?p&;)x+ zoD#zW6e9YkevGH2loo^aNoDF3-2GCsH3Y{llx!mifWq>ZLITtrA2GRXR{&y5912Ec zDvTrz51}J*=Br*BtM3LDkiw!vU6sk{okmghC4jO<=1`66LZMqUPD$vsK(ea;n7#{e zvJTWv(;^h~Cexu>jwuagmSG`g`SQMn8gQRukO7Y2!h{9BO1J~VF~(o91lpjSWbvAN zUUsw~Qyv75E+_Cs2Z7@Ayw0>0s0N;<%;|-#(mX@0#Z8=_^3+RgQe?a_>1iH}xUn=@ zP(O{pYMd)(%qz{*00}!A3_rJ=>Kty?>meX4+)fE;P#fuwRA$!IdTf4 z?l8uyBB6Zn5}Y6uPSxTltH5|2X7g8^J;qgNVkZpSN^^>UwmgV?L(WosQaH%+l!l<* zi%MqBrYWt8wg%9E($4((#zhEIzMalN}V~$Dh491H1)&;`Z#-({%(A} z8MzyEG9`x?rH^jZ|Hg_-eX4ER(0sfz~e5JDf`2Mb6=fq;vV; z8y<^bW@9fhA?>)oH6C5E!1^Z6Oxwq~VF`rv%WpD9PV_Byj&hb#klbSVDscc}%pH26 z)2TL)G&?Aj0#!=i9n&o1XxC)8)%bWya-yhuSd_O`2^U3~H}dS@J08}NahDRZT`{u5 z^YEGUblBDC%Ha-EJx^!ZiKX?HSPtK?)Y}c=%{cBIp%_0R7sh007ds^!q}ILZ|H0hl z+}hSXPT)gXBrrWW0hy?EPjR1YM zLDmxkwhaVo8PA2D>ty9G8pQjHS)}cx4t)l^%E7p3@fDlQs?Zc>0L3^i*CIy$C1ELS z*>eL)PTb2)LXDoq|7$~G-29mOh5kA`70N0bb-Y&UzBzk+>i1v zdKamw!}jt{=sk^YFRjPBe1GZDf_y>8$H&s&(EGZEqV3S}v+ZiEKl za?^(>Tgd!r%bGCIqcQphB~Xx~)a*f53u>ZVj@gyik_H<$>Fgtgu?zuxXuCa(DTFU>PNw_1-4E+5j2))5UJPy~G~l4fd%|wr7P?Q_ib3!~ckIrTp7}da2$RO?h~^G);q;IeNUKsw z(4Q}pIZkJ||BVIG)3_)mb(P(5STLo$QS_S-5U~h_NT{!K_V&?)sBa3Xrg*&TmpYul zOl=hn*!#tTX)IQ!(>yu_Ah62(*r(B(NTsDb3ad%5D@a_~kdQhw1Og!w(%yW51e(p@@wp<%=a$#OTa!edziufU_rW^Rj<+p!ez8X_px zaQ%vyM#@hjcYdZz##p!4NVm^m*cOrA>jfm0-e4iVuMOvRQrZMd@B{nAdjkH5&%u zzr$9iv%4ImZWIqIhgEGx2usL>W!xB(K~bTj2cr-`MLA029kQH!$!aGWm`ZhEv!AkC`k9 zKJA(k>liFGxV-$_+k^k4#~d#s{WlZ1mhBpIO!a@EOF^%lTHxgc=34Y}1xYb||%!D4i?Mrrnj3 z?M!2oo`9@JYX8%(p5ulj$b*iQ42yjAbP|dQY_PKEozsapO{&X;3+}sKlrapHq!ekO zr&(=5!k;;&Qh}kPn4dr{UL_MdQ^Czv;CveN^*b580k1Ur!yK2i?+J#F6{+u8g8AL- zp}iu$RAZQpWPR^QLh$}_>DsC34dUshH_3I8PBsyve34&=y_QMT-lBND)AUz=lV}*Y z&n*t~PA$Mx{s+lmEN!Xvjs8PY7&Sw#T+5k*7T1N>&293PgPlA1Sk|DJD_fosQXUC5 zj;<++y<^idAMwRkC9}|bILKM67GASU@2ELAI@$N(^OjZb39E*W*CSDCw*a_CcEVx3>?n{eyJ(Xgke%N5@CmUIzc&-Huqn z_ILM>zN!&y?Xi5J5v%s6dX8$O3@N`l*e=FV@dczL8 zBFPUbpAD&lI{aCGJ4)ovrH_i`(!bw}fTvddQ$6~OJ*%;btQ(aj4)=j3cU=D zv6X!qj?Dai_6Xo0GBMt;wD1FPUm~N)$1gd@J|_Xocj?Ox+Um+n2$Y0vU*8{p>g2uI zqT2;d1q#H+?2dqut#QrR#_i2Up3PAgzub6p^26ybXPp=CPCEuP4Mbd6bu--Pd$E+* z`e*Y_7=vNP67Z0)dyRX>_nDBwj+`gFworpKy~qO>^tzNTowSVTWebJ0GYq*iInmbeSNW;LY845+td=Hu_ z@P@qy@3np2u)(`D8|LlEL0}F-k(P9soR$Q>=F3!ruci@XyMumq*y|tk`-lR%w|8{3 zv)$i6+&(-$I?PfK$g|_^gM)}huzRq7@O3qUb;sgs1n}QBj)P_?@NTo;b_l}%Y_^yh z10v?K^hOH|JEJm2*|?vM1%AZDiz*WSaGK?zhr589`Dl0d3INSA54Zu?3>6fNLFJ#k ztN9h&)4$!}UFY=N9@fPhvDhsTV}E{&AOSJ|HAk?lv)-yv~M)oMxTBz7zwZ+eGv);KlPWT=%I9PLS7Fg&8RhUyRp5aTBqrN z{W77@@WTW|3Q?n#EVDehPCsSFFlehF4hap9XIdOR8xi9uh6vzX!1gyYL9XUvwG79} zhbB~>nbjX${8$^#@cx%KZ`R*Ccljg3U*fyQ4d=KVTifjluZM@ZfnjN4uBUyX6df14 zouCujPPJX546j-Mbpq|}pbtbMD*l+=btmbpf2s^zV>@_9JGqW_bUYeEp~d`1-(W44 z$`*Nw;Wu&xZ2m&H1(w6e8-ITD_75-K{8aVpBOpe(Y+zOkathJgu0BuF=R zdn43&nv0>Bu66Hdw!I8+y3vZDMZCmrB*G+&E#Ysd+1J@wWUD@q$DiV;feC&bj{7YB z7p9lxR-VBQx7Oj3f#R0u5?*+{76GZ3`Rl;`>=NhXfdTJyVwOwB!tH11|3^xc;A;7; zb;BGk3`(tz+N^b1Q4i{{8i^&6h}+I^fC~W!#Z?9UE#aOBAb%Xr3`CNQ^Zc8D50ay zN-0}uZZeZ!7u#+Bu=v-2KZXFC3V6tG@3a*di!W5!!e!FS?P3Ub?-=gR93fl`uLA63 zq>y2T3E4Bz%S1+%w3U<|;mbn9WU3_Tds%{Y1bU@V+`YzZ>tD{^zIm0cQH8{d4YIQZ zD){7<_KOfMGA(AR+Lp$Xw_co+~ve@kdCZsg}J?Ca5S~3 z=o>2X%(5|oi(p!3^6vDN0C>(R{nHj|8e(~);olaSQcELwp=}Y7f|x3{l>}rtu39@* zCzXZ|m_s_@ugD2ftd3`Yq6p95B-!xldafmw1wLiK^{KTsb=te;(rq>pJndr&HU(Kt zX8nfUZ}jB~86u`57jVeLAL^4!k$vPLWUvNkMuP{I3&cCy_6*GlH9ETOik3E;BC*b! zrgocv2GC1IWQR4#cr`A7qkXFkAD-gGcJvC#`|YLe_>ZdgUh!1~yHX`tk#10_+uo9e zeQZo=ylj!MT$=Q%^(i3k2A4SxXI-Y8m&~kJxC8+h25yItz`k$Ag#O6OzGxf-zC3!M z$oA>UP)UHpd-iFF@D{TB-6O|{5G3_liz8|Uaf_zQ_FQ>`72&80O{pY&h2?+GKzRT3 zsRiv5R6S#^<8rnv#fuThrvF()3`uY1e}Z6IZLok~$1>QCakP+?Ir- zf#m{0Wv{_Zm%Ijdnjvdjt`bMpV%OwZn0fzpmDf0o(n9DuC$?~X{5t;huo@Y|)JY|z zcyLfW7P-jgmh<$3AQQ~$?f!hIYP}@kT&<d-_PdsIz(iZ7 zzWs(P<{Dp86GzQaWy34#%7Lj z=cEKvS+hctoKK9Nu(Qt&`7bBQ$HkiYnyYJg@VYPRq(%FK5e~W(px9?kSQ=+tmwpn$ z7!R^T^|0lSC8>B;cjx1hP=dlER4Lc;!etE-JuPjIo>;dzBt~q7t(8D>x)&ADD1Y!@ z_vcsVY=z3NkJ(C|PT9_C6rW#TabcgrFg3aAsx|hsFuC;wpPC<6&ofX%+X0!?>zu}d zlfi$p3DOI(w{i+b%H^FL+UwBM9qYc3>QPhf>=YYQSl; zX**(1TC0(z1}8MYd28dii=75T!e8^XfV|7za^7&ZWLv}5?K|r)J~Lrw_2t6S|ZZuZwV|`Avj#iX~}X69gs7roAO!xtvHgo;*DHr~kzN znRK+R!7R&u%{qfg4-G9G%>nZ9SLkDVn_SQIFZ?h3cYl9>Pk;0Eo&AHIoqtNU|1&0F zf#*4N|4;w_{NKjL#*eh{ipb`Aa;5SHZ$1R`9bXZ=*>#p+_MJGxRpW%Fo`}EcI?d6q z^u%#mJt=d8KPkAqpFDa0_U*ZXNNjBV0-Gb>y2)&0K;0c>edj3M-R};zd%H(F8`US% z^bX~(Ko+AWw~`Hq;F;3v6k0DYk?;_RW=~w)j#i=#!4UdG#ERc=ACQ3ApaA-l8G=Wn zf%*vcPRQr?@*jg`+`DX+BSkE zabsh451zsELgEd+!2M#9a({S*AxhPU>XSJmIr(26i{-bf!Srr}UUP+4LnRc%(q>{R zeA&u&gRd$55)L19Xvh1kuoY(popyFAU5YA7sFVsCSBh|SRV6xbBLA$|D zPM}jP#A%r4i!9&TI|$kVR@h%~$ZtOzQSjFVQY>?dCQ-Nl1_!}UM#J76_W$E#L2d{Q zbn@bLwonvg2$$z-`>11OWHCPHHFj~RcZ5xw$!IvpP$S0p9P2t6fGX5Ydml|Xh~&)# zh#tukR`^as{+K;(JUlV1I79e2;Nw0gRvuSpfkZj-QU|WD%z@|y+$Su?f}{$j?g9$^SdsJG+O0 z{J*!ebMW8t|9_JF|DNlwaJ`chv6-_g)&<}nj4eTUC#DV-{fFZrqDpw0f{=})10bBL zqXYausuGx_@u=`VNPr_%o+5;(NWR5-UQrfCudHBNtIi>FJcKfSUCs;te6msS9b6qe zW4`vOVN1Wrh*Z#b*IObf0;DT}30r$eGb-wa-NV}8B18^_^%Xj%!KJF4qgz$Vl&h^M z(p=Tor?9A)P}NomHl6^7bn3>f>i0KjX0ICvB z1N})aHwmACvK2grROs!u#!bJZFL)gLG5ZZC{!#Pxgp=}HiD{yNvfgLVFq~M3STyKH zE%J^juC@WxkZ}amvWAyc;?lBVq?LdWHJ>ed><%+cUNq?mtm$a4LAT9z;T`X9Q;dix zrMn4yHLTUv#jr6n$M`kbC^{=lYCyicSu1br3+ujdtF#&XuUUiE5vR)IC|Q4Kj0p~u zzI2HtuVDww6#s*$VqQ+dl3o^ErV zE@hc3OjYoLXY7Hg*V}%Yfb$^IP@F$l;}oVHgyxgwXz?3wCSwjC z64L9>hJ!hx#6v5NwM!(VuWFe1T6T#I-HjbnZpMymu-Dz)**oZ^(8$rjZuj8$c<*5Q z;Mx8lJA4L%e72oFOAnl#Ltr4=7DYR@ZQHhOCmq|ila6iMwr$(CZTn^Vr+-?*8q~d~ z_BwmHxPGBNk)NkNv=}P$c~*MX#8w@!ZHNMUhIT5JE@>y?4^-L5|Gy0DRdCKjdY?J4;Y1#~LW{|b(&8+n> z8-e$nL3jDxw;~p&BIc8#I=+K1ziKR__>h`t3rq$RGl=2nnwl#)?qIBP|%)5iefuWWldEo-)N=x%Oz2!7(Wm#dA;Pm{xKClNv>szn+> z++$^|#J~7K^-QrN8u%D*L{C5ero=T*%N#wGiGA}6HOXAaEuj;M%1EeJaZwzG(FXWA z4C=V0D_Db$>Kr*hx z{Hnb>{2H@dpvD`x{70ERqF-R^n+G7Upb63FpOrWW*_(g>=9UDVl-nr&MY|%~CaF-U zrtqWreQmphm}9qn_$a%$m(G4#G*EN2ucorSbX)n1!h}#w1>#vOD7LpmG!L}^uOv`p zrufXVZNUsbKy4&|S5&`ZQZ;E^u-cLWYWm5Z@tGb~HF_Cn3jAK~xm^HqgjXO6VuG^k_th40?=dd(GwkoxNVt9u=fj)p?*rGy-`c@pRFNJ43 zlmTllY%>wjjiE(evf3Lz(wJwwxT2-mdOWP^nUE24&m-0F_tni`?wEcnO}d(D63q38 zWhkoVg|q=fC6F$3gwEWQ*n|O0Um(UQ(0B zacxkOC4$nd`e@u2c?zS1fh=%~J*UJP^(t zt5?COesOI{YY*CSdvGqP8s6 zWn#3WNSUFe>$1%m|NcSp1(3@<|chSJ`pC`YID(&1{;WyE4R0? z2yrlhY=@Z6q{|YOwP7u5$bfLw?w}{zzmhf65Fg2b+$l&J?STe|iX`+nitKMTjAQMb z{u>1r+!^lV)d=(g=OFE+HWAbanJ}ZDiva`H`2DyAN7C6_S$mG9ohw6wsR^0I6 z>hz5QwD%RUNSw@8^(hZ&m(ce;_GNOTvXnHwV{G*;<4+&#Hn>EPv}^|L)i_jm%aDI; zZ_OpsY1V|X8XlXc%Qb*Za_yfkhLK#}?gBF1I_}yg%v)}mXa4X6q-!3Ky~6dYDBJmy zZuKg6WlziQNe)@#zsm-kQ*#+7AIR;c^eJs1{jG^7 zv*Wyr>$le8`?a&mW5DaPn}7b>v42-hY$EH$AA_F322V90PK$j&e>;7!(wQ?g<8~9^i%ACJ8}bCCOC=lEdi&;oxY%2SM&)@t zvmPn4^y(pq5MfmJqstQuym3u5r%bpX7$KU5@SZ!Ud~Y_T4ds+HgQK?q+@rD_B;Vne ztx#I9$5ZXLIkpx#I21eVv5Zry84EdzpK-+9a-&lOL-Se?6gZ_0jEKu*#pZv?sWZ|(G{P|&6_i}jyJWgEWps1ul`(i4f2Yt;>V4Eq})r)=J% z_G~fcb0+FrQSoyBR2C(I1hoMAX|1$tFI9vld7BR}F< z#9;3Ozi;SKltbe z1cj|hH>6XrVZg5$*%b7AUTt3m`SooLP^pJ+Vr{8NM7~X+8Yp^<7&g|s_FAQnT?hyO zg`i;^o%p+u75#b5%T&=bT%BwPAh%&Rdr91U53#MTCBOy?3`K z3u^rWIuZiL6)-R`aA3;y_2r|-ILp8l@cY}&$u(v^OQ&XMhnJUk{o)DMCAt|d8ZJ5; z$9UGkm+$JjXgzj$RG_5Cx~Qkiv9+b6r^T1~v{-Dz6Kv)=#~BXp#WkmI(lzGgB?j(e z=3Q)L&yM@#c^Ka_`PtLcGsG_c^5*8ckPBl{>Sq@`ILWxH>(UJGdvoU@s$rPy>Kj9r zzzSHne_MPEJyh;ydDbQMDK4{29QW$Rr2a%VNA4KervWad#?P9tvc@=obT-_k3D19K zLGO|@$n}UdXK>GooX~Cx{7Or#zCapScf$vqhRR@&k{P!aqh?458J8DUVEzDh+*!<{ za^QBVQHZ&DemCFnWQsU?p<4m_>Yb`qw;phvG{tRX7w}v04XXgI*zOppr_0{v9HqUA z$z-SSQrx^14hsg{OguU0$_kF$)>VGS1+M++>+9O)%gpzr)aTRc#%*?E=DC4KC=@X~ z$c0c~i7-RFPjCw(TEF?8esdzMaC$plMu1n%X5c(yZZ zKqAbdEvrPfN>{p{rp9R@?oj$7r#lGn)UBC69I8hGJVyH$_&Qu~T6n_<} z*rm{Zh_XvsET$Z?92W*WBqR6xVXQdrqWQ>1tK4WA_?`6B0t}oqF0KNCTV2?2uL1AP z!mbumL`)U%c)9lo3`RhFnevLTPfrHbvOi+A3jJ!V+tTqQwdhTUGx(niD_L3JPCobF zCp3Oc!uFs6Xb??NL@>!u3~BwWf>}l1(SL!ueLQ(EjGd{<7axY~va4(+3Jdem=5AXs zg;)lrMJ=+ASY%UxLF1!H|B9p;9zr}lm+XDQMc4?o%jv8yabeN(Kav3;2j6F=mpUAq zQSyw@w*x4oP?|MX`#U30c8;Rm0myA!mg;CID^&%bgau5faNo?8Mz@UH({A60aZaaT z$cOLKjWo^@kYRuX%raDC08;@nZQaIbq?xGtluYt9QJR&CnzYp}y^IqpA^P#YHX--7ORMC{Ezwxw z!)UDlP0~qVMiCN>$9sQs8m&9ik9#Cao)XAr#kt;sKJ*MPNfF38f(laO(q9=k-;X%} zRYo&SU&uP-lNqLa5Dsa%pQ6g|z()2Fn*fGIeZi}_hv0OOksMGG`7qH8s=1%IXXli6 z1I-tCMBe zj&dpI#n}NKcX{TkkrrgI^G4jn(R1~GWnw6TbsbuP3#mAyzDW^AQzc<2E1G_M1%FiK z7A`yL61tOE%t@K&e~SOX#i5Q4ViDO}qQeavVlc!|+`+)(<%b;nd$NoiJ)J549-~Ne zLp{&>2PJXCfhr^WZa-3|JHGTsq51~7>&V$0e!y_oG-%(Zrpw-mDN>~j>$M}HG2E!9 z-X=(U81TD90&d)4Z_KLrL$~B*CM+X1tTgg!s(e3fBBB|eud)xnqn~CK9_`aZ`XD0! zS?KV|^3`#m`$RLY(mM3Q>;0L)VtD4kQ!ZoXUIeruA&ou;5$q-T`v@t=%GY6^&r9^j zb>hcicH6dSpHBnKbK_SYIx*9*>wnwN1^?OjujpT0gQNY(FTK*rK1T0Il>jd(lxTGK z5b<{BqVApWgq1?8EbNU7CjUDX)x|3)qN%`bi4r;IG1tk#$TBrzdFkX~`$7EwMVyY4A=xKUtdF43lX z=Y!t+(cnSI%*(TXx(!)$%~|*(&)H`+d-!RxBj1Ra#n7&KpmJN@Xs7fnZ>!#=2`y>6 zYn5Flk+nWNmlhPec?gk>z9TJ(Z66MSW8)F!4a=Y?2>kMBNVIkX1KY?V(79O2zePw4 zIe5%wr0b)>7+06vo~W4>QWU9CclY|HCukb9IQw*c6eSFdbpE=hGF7Tjk3EkmEJj>a z4fb3`bZVnl)<899Ot%MpQ^of8jli>t8ioaH?BFkAAzv;(cJyYC?i>jhokFf$S`Tk6L+b2=yV7C6rX11^>~r~iu4B~sGNkP94Q3zV#(oIA<{R9eQh8y+7yuUrhB z8u6Y&z@~VuXLA=;3#?%^_w;T`@vfV|3RK-@DbG(nKadPi=9GxAqo4D?^&OqqF$F5drdVdC{d! z7Q}~dMbuTK-O8P$pR&PSXUW`C56|m_b_q$Pk`4O1xc`-ClTF$Wk2hn+c`w8Dc> z!6FhwAoAZ3sBoX%oF3|(6|Hlj`G@tDjJ8_L2H1{C(FeCOU@YjJb|67wZb#S%V=J||B25;M$%FD z=74r$KPM=faG)R3g_>nwdhJi4dut_$V(F}Afm3jZOlN~5Bf{@~?wJONRwFF~p9m0N zZ~%V=hkl`9(_+)}#m5t>cHGC8EQ@@BTF1845?nH2A?;3QMJ{> zu!3qj@PmH{O1l1k%8u51t@$Y$6zBypHBSV4n&a^?8brKcuOn4{Wd&WvT(Np=n{sdZ7be}0v%S+TuWa0`eN)TJ0{A8vmAwhACUwhebL| zf~foSA1W@oae&%4^8w938@fO+!L+;!JHnxss0NXnb>1KQ!NasYN$+gLER{EufB+Ex zLrWY`|Zy(bP(@8!c{Chu-i{3b9{x`*;~rLixeT9 z%m&NmMtWO6XELqL$US;Y8~S#y4@O(izlFRqF|IT9Wo$MERkTB7zCLUj^hYR2Pc>St zJ_Sl^EDN$QN$I|K!B*@;Q^5#~`uh+KtEow_PB6OZSXSj;Nb=h=e)h<}Rr>^|tox@Y zNx4J{aJ$n5<7rvps^~;V}82Fv%wz9SoQleA7Vg ziCHkiVLsAe2_=7!L9;S`;joXc9IXE_F-@-I=6cJodu&?VUJnwE};0nmX)Ym;WHCTRJGTG}%vbz_2gB>vpvR^wG* z32@fmCVxPb8Qq0bp@3!m25!Ad;NY}$0gw6R z3K~x1>-c+@w8$wDrcMF6I5UXNz|sj_Bm^vLpdi46-K;r1ij@cR8SWXDlNcBmSH!dG zIoFXr9JJtB-;wS-P`_b|6O(ykpkUy8FUqF&fZxopDuW1i3c4KD6Jlqi!;T@ap${H6 z_V#4ccu&WhAS_0^5IM^!U&Y`z5#dQ|43f~Dq@I~7jkf7De#9@JFf54;^WQ|Z$#X;XzTxlOM7vS=HMNgx! z^5n>LE?Rt;D(-$}Qvt$f%laKpec3OudmRw3MXFpHThLfFqq?4TEZH%kK|=xpOhUF} z@(V;gnJt{*k!Q`Xm29t;vwMlSODaeA?6MhSf*TG&R;vaB*_@$x53r5HIiJH&_*hX&3N=} zlERZ{HC{~S=2jSb`mu?>5AW;4ZaPjez7fLo$smxhI zt3_bI`IW6dtpzCIHi8D2FF7xe#M(-TsK_$>i9AI9`KUjJ->|C%oUbMdOJwY!C+ao3 z#kLg^iP~agN|6N9ml$j=WZ4$N$5I}|XsUSK0_EtTI| zuuv{HWYR;|l^WKvS>ntw;T~q^Ru4wvj02rKqSgwz^SBjpm&8Ry=GjwMuC8%(VO0I? zXT>VzDQ^_|6VmidMD&2Zw`;7Jc6r~#wNSJUh^TS6s%oF!%aa9bUfhB(-W!PLx%8mt zN;RBt2|Hi#{#%Nwc{>^yAe^jkD0@M-6XqQ~f=%HK4Ix+0yLx7-`aBxxFt zTnzCfCeH7{_pgkRSAX}m8vN$3ZOvma2qs7 zP91xVYcbvz^1fVA)caF_kG8?isjzpIYLzW~ zvpV3T4Usq15R`r^kinD4;9^fZ_u5y4LZX~9NwJ>5jleTl3Xk|5nt7N$abNG=<>>Rg z@S#?sgQ$?PC-LylCiynE@!`4#Z6~KoB;WZY&vG&fUy(&lPUAq&|1I*?vR~UZlnDLo9F0W4YGl^Az$dS&&7 z^G_p*?DNYvJEzNgO6T>HIf($$9u9MsflLvIOgGQO*7O@XVNdc#O{sDsQK*j9bIGFo z4~q#UB;;$Zi`$;OzEPWLx52BtWHHA6RydggGacJ`lrkWYTMp^Z<8?pRwCGyCA!jip*j~B zb6`CgiEWMdf_n02u9D<@HCWNfA#|)kYrZNdWcsFc6UP2BUv2>h&>*o5?{qMkskM|6Ri0!YM+OMDZL(X^>7CzsIDeBF!ft0d=B{i*cl_Y2KB) zeVGIfM!Y{g9{Kl5Vwfs6KPo9hXJbf;BbL7yCxqYQLi>7J7Up%t-5QJeTtw?R72fK5 z0SY5a5+Y$CUkgE5_3P}33i!+k>%VgNyUYJMuyCEwb!r|pykPIOVkp}^(#%NRYJp>3 zF`*1NVMJ&w>oLUOsLPVbH z`w$OGiZRBd3yTy`k|k1}U%0N!^Bf2IMV~Ew+~RQSfatt5<-W-n;1^MM)T14JWHz@@ zjgl-KZ8BMW=mw2BFfq_RM$w+|2?JMi`zN9Di}a*|B=T2DMtI&=}o_wp)i2Zpiw)gln$0Oh1^E<_eCCjb?pjmkQGpm7RcH41m>F*#)O}o2p`ITKj0~f& z^;@-4KQ-s2+DxrZ8%e&b74jjr!wc1Hrxy!+Jzr-bc#VrzwwT`MWmyAA!8mg%JTexB zh?6-eP!;uqk{StpGPD@3cIFH=DkXdZfm0KjJ`s`BIu}#SIKx0QSSGT#O0i|DK#>;1sw7JN}$C)y^jq~wG=8~jL_WMl{2{WBFR?P@Ci=0N2 zvzS1pUKvY{5no-y%PAyH?}GQafdY?0y!#gr3biHesI)LW)-AuR!sc!S+UA$x-LeUr z;HiL|dna|-j2Avql)3x6!kRsa?Y53`FI)CnC1fywyA5~GU+*bxqZuQ3^wVK)3M?Hj zKCZBR>trXB{Dun#f)QqOAY!pd{e6TG9ydgg#8CF>Uxyum4c9=&VtmF+YS!_B!S)9> z-kWe_p-md~DW&&X_VI#7+HoJ|piH~&fl#x>5y|kD8Rk2NR+T87 zp6uLKo;xa86Tkzj6+^Vzedg>684MhrcyAz!o5+Byq5z7`GElhJmJ=91hV zYcc$x_6VD68<6zNB#sTZHiIlmjECB*l>H7Ux9o#@z`WfF`g(iQSQzTD4yGqX85eYW zG*iltH!|mNMYoYMAtwMekndGJ42_GHzbf2iO`7V?1^<&HhtNv;7`vRxo{f14Vn$>} zU%#{_hbAg~ymATuhn{U3;0fvJ&1b}Rd_cSx9Z<1`EfdD0EBuATqU13$gPj^5(8VhH z&7DO@Sg0V)J5_AUwK-m)Z>8P1=iagcC|3sDoU6TlHhfNRF!Lge@5uMIZY(pUL7<+> zehYO}c_y%&JGspScY?Te=5xG2M_YF4^a%aU%d4O~2)bLpkdQ7%m?N2byissAiK)kM7fHoLv_Wf2aQlDiE%wrP_r z1(&k}HRGS#HcdiR{L6-62I2wL1>}ZFjA0z|5XNM|oHRLKHm)8{^?gV~Wxhi6Q>zx9 zSdGKEvwN17TFUa#li%YC>z$`Qq!m#3RZx>QRtIcy5d-#(_ZIOQ@A_ob+Xglz|6pkUad%&U!wmTTU5-Bnnd&s@)D z$0aS3&@_|Up2yx|iy18HZq+vSWlP1zu4HJ<`wBYfr>T``PWRP3ak!y@K zwS!Yd4M0OON%yTtnP5T~4Vm}-$Sh0xCr$%j3y3uoeV1lI2Uks9u44u5N34^(U?94= zIWqv&QI5NMxf{kvK4t65p5Zsk$YeAv1Q-cO0%qgQJOPNX0GJY~9U_f;qZJh?OR3M# zgFqg#5#9I9u6Gb}B_g@6d1ewNfr{MDoGmK%GqQd?6fKHN|_fqbi0 zZk8upFOE8%?zcSNY`VN!bhfuu z$ICwtFRuV-3iH$py#Z>UdJWN$+F-9k?B+P@x*xQ zGuoiOX^a2t*oo)u6f-7GN*!^%pwSNCaS7EHKrB#1g_ODuuhu{q-Ngcy0N-`hh=p5r zZGs5}#MAg9{eK>MzS&m99BI7`H7w0$O&eFg9%3dp;)omZ@eTDuV!@h)UEJRrm8hF% z9@ravCk;NR%GV;vuH{f8wsMvScX4@Icj|8RKsJHa=8e&2Y0J1{8RgxgF-a$IfCgp==H{?*M1WN*68U>=!v{~H5upVtt zWB3l_g3I`RJ?L;Nn(97Tsx;ikh(-*wx=H6P2S+Fj$7+ETCvek|oH2PA0n|2}oH9VS@+!1mH+rW_`fTeu1da7N+AsjM8j!@GLcc27oy#R@7t5 zQX=}?Es-{1W_4vYuMtTA8~_h(b5Y5St|;iA^=a%>B9r#9K=VIEKtchDVS&NTHj=%F z5oJ9Zu^*^I6!}Bz_)I@28CnRAReDC%nI_P5Q9PxLq@|+ST5Obr< z;aEBX>|)J;l3%s;A$r;$e7&@Q02<(IO8fxp!L*w@EbWUDuLg)_IvOn-J^a6dI1lt) zWSWz-QWi@j_kIdaCmiPN(QcJ4@84oKeOiJj$YlliNhDy;&~L)DT{T7R(tw8!MUQ}X zLsM(m__7682*Nk%o~a1vT4L(-)rgr7nHv8Yzh6hR2*ose+@aY{;Gs07mDCT#gs1(% zShKFjp_=8!j6_OA3%E{Mlt99vbN^@IN_~PjrczDpGTQWFm=T|_kK#)t<#X1}4%@xD zLzgpgo}-)L{ZB8Yg|kEWM$O#5x6?r0wZWS?eL=t(|t7Z|#Fv0VPr` zDS7*$x{!S&cz4kF7A!%x!Cku9n>sWqHw2~DD3})TLHx?67VxFXqfGo`K8A5XK?H~F z&}4L7dJlrq;79Jmb{Ar@6v_Q)FUF*)@_N{Jbqxf@O{;M*-}21D?F11 zxX74crPMxiInstT>?G~HyMHEoQ`Z9pBu+mKWjF;EZ6 z&I!wgbOnbtN09CDyI5!9+gi&SP607BR2b0GBO%96JyXNrGDW|e5FpDy%YS;*{C#gI znQQY=W@uxcBxuZ7s?D9QTXkx5X(7_(%e~xa7#sRHC)DA* z1p4c>_N&GC%Oxq>ao?UYDXBDABtb1hH4LuaAJ7s{bd=) z#k&6#E-RZBP?DCkwN)Pn-7C*WCQ7G~fs)1PFn^5-gpO2JN!|^`zBw73*MIG?zmBE^ zPVW(2hdu08BWbj$3H7u&zL?$jY3Y2&;uRr_JDHb&_IS-+l=*Cu)#&DQb+D_U#B(F% z*mysmU(S@=$bGx5d%k>ME}gx(-+b;LeuwaaTS!@ zGo!0Z8@!`6TcBF;Q7&-@hhhu)Gmg{Q+1z1l6Y^kjGp}>^XKqu=De^fAtI9!}Vfz_F z_vKop%-uNau7{7~=lk>Vk%h*v;ue!BBVt`T>UqOQ_zGd={XH28N9PnIaXHv-xZSp?i?2l z|JKHZpM>wrpy|{7vuo$a( z+>1}ob7&pcCsCq{o1z~Ri9f!3v`#ATic{e!#P~`N%oLLF*!}1w`;f{D#16%;hl7bL zd@@1C`qAz>HfwOs%{N9BeFc@rm(D8mqnS(gXC*WKFAD50QYq>EYXc(e$+tyi45(nP zb4JtCD-Uir{q6Fc`&v@Da@mZM45N4nFTtm zuKwkha%ss$$UDn;Q$X{cEs^vdJyRL~rV0P;3OaO5rc}Q7$hJq78f*S@?9~_PyCnW6 zX;JD%2DTAR+jxVYC&3%L4D=Ma9C#QgFe+0wN(UBin}>&N0rwK7Su_(CXMq5MZw*l% zwIkY?_7_4(XFPlqj1Q6=$3r)}?We9<{nme_mGbj| z3DKV8(={PXMhokC$VsL(z9p>~l3@T61}Doi_t43B3Wt;ywRIaCNA(%3;q`3h-ckEO~c##4~6-VBnwA_B8Tz`7#k5%fS3 zmrRYCghqXz##{XFklsOJ>^E-#cwJsbKqVm{D1)M!7;9-QEPG?32IQ9D-om|72$NvJ z2uPlAHQrz+wC=^cum^0?YJfgM!t9uWn*qx;Z5AvvDBfuPb2oEK2I z9om&LzzZWnE#6j-5Kwt)bbX}tpj|p8Nclv6%@9O$(va*sY>rmfKg=-$q(^eQl+_YAHWtnI+R%8(&Zf12qBf72O1aS1uB;;>8VVH1jaFxZGRW( zVO4l_S|+~h0NL~^i()Y&!mP1BxHloWOWvO0;Eo=0G4G1~RS<};IOwBI6Ok*r;W+NV zFmfbp{3$0TqBi9YMW4#2|5z7Br%=S#qd{&XmB&ZUKIwXp1HHD3?~S#FsP!2?+M9mAxY0i*b9|{S^dFuJKc<(U_n)eqe&ex@j14ahtU!Q5|;uS1yh8_IkE~A$)a-jEJ`+j~( zy%#lnKgeN305I0^7K4>0ZxDhASIO>!U2G)iWW045x{)`lr(D;eqseyB7@;jmZ#!_D zHojS9a>2Sjt*wCeeWcYNQ(h7IC_1(#0=`v5AOBJHX`rP58*BkidVM`ckuMYinJ%7Z z+I#Qh36zpMW71J9{*ecLZ$dwjpYg+GeAGjqDP_Ih1J=ok#H-7=$B+fwy_$ok!TT01 z*bqb8*6|sv8pV`RaG~XtWGDx*qrOgd$ROHNGZE(NV*vDt;BB0vo{O9tvTu55h7B!g=&)`U3WjQC5ExpGpqNe5+K~~6{k%W+I z)6cnnC|0R^u5|MksGsLhG&*j77j0tKS|<29);W4GM>py-MKmuu$GB>Dkv>|$GQHVL1kTS~cT#D?HJa6~VH_4mOD2Nc z;#a@y2IP;FtvN?3AOmQOO#U(JT7(I>2Eq%cdB*irp``K%_OU(3Z>v~y%G~^^O4Ns>WJ^28jwyaC z=|d^NFnF2kSw1~O!bolB@%RWH$1l+jqkRCm!|0I{(etXwuO#<))YW*#^Wq^PC$~i> zr11}J@-vY73wq%T)V~>QcuH3_f@s3jl-jKo#^!$KhVHy;*8FI zmj~FH_Pk9qEJ~chXAH-@&a|9(juKq@#}PVRDQ|O6d8bFITB5XqF4il z{x7Z znj8q`+JB+p241=pR3e-A{vAKH1JAs@4S?n7a+?(_YYnqmkFeJkadV1vpC)t-Bo^?z zk84;z-k$oDZa6L{JfI{{WHlkW&YTL=>mMj0P_6911{snHZxcs|QHI4PmZ$G1#>Z{3 zyNF@)NQRdX=|2T<$XP#hc=Nal09otCbo$FaCR^5`w_4qECkPAUPf2D|dLZz1!s)H+ zHY@t*c%u)`^iD(+SsDg-{`?3oG$|;TZMg=&(oRq81M}Z#+n)8`XJ}w!UwoRY?D^oa z$K2;_EE8)z!H>z-E8A>Hgr|_()uD}=Q!KMqp?crk8zbSLeucUf)G9G%rI~CH-`Lve zy3(V%^}{GO_ObknnwSnuTSGXcM_JHxNdI&PcHjMaWEL!LHDEq^t1ak1x zCr(D0dGrynVfpOPLlJJUnM|U+RWZTbhujCi8j+U?E12n`{k&);H@?8)=)!}iVO0Z> zhB#Vx0N^gNL|v=c21}Lwf4^9W^5%}}I;vSE+#rbQg0!qf|FXD*Lac_Q9n;N?(_27T z!`~NaNO(^6S?zr+lV7Zy^yAhd256W|S|?xwvgei$3MG({@XNs`5lF=aUBA#`rJ-gq z$lE+Mro%;&q06Fln~mZP_{lI6SQRsN-l1n6Im*#cj>d)#BwlY@8}-+qfXb{xq%0=D zMX@Wr(_M$>SO|FuX$?a$fnZJ}u-P9XY#O})flD@wxs|am7orX^q9x}=q&>uAiPxUx zRXEB}JrwAXjNK8HGGh*-lEs(+O>1?B+Mr1a3M=PzG^0nRRh?vFk8Me8$wy^@`PEPW z?sppWoy}C-jo1N-l-)Iz4Tae&!qPg)fgKoq!=9Yt${Z~9zl4wHmEjWJ8*bFshNB(ub~_?1RN*nuT1$*U)S znAuw%wPX6d(p>kW?*?uqN0={w5fBEf$}v$SYKE_B`q$*`-Id$SEa3oDvUgz&JS_cH z2{ae3#^g{m#G8vUnj>nRoF$uD1gw)Q9Jr|G4R;MACM}mIiI7l{r!zdUKk>El{ciH@ z{G|J>T4W9><-3bX{P-CEq+zK(=&7OFI#HQ-1f3Q1QY*hCPj?adphl#<5~pRk(QdXdDgSF? z9`YPMfU3Ys&1oeZpkIQ-qEYbmox6p}939R1CE)1mYioxNqdC>L_ZyAkiB^4m&FM4! z50RA{cqv!r;mugGAMRaSmd5c)k(@0X@GfHuP+Uz%LZa%VDD((SnmIlEqOu?)VHRs3!@m*kG zAuwsp0sdCt&^7Rm3tA)X;9Qnl>!Tx=tnBvwP+~!iyyW9hghC$-oPW4dM^3JK*UBsP zxNt|^mV{-MR6MO?Y>MC`DbSJa%KEeQGoxn>>=rRoZ)f8so?y3lr~(W$k!C6NkyWs_ ztG9{`gH<)Hz=hou4GRbNTtII1%N=98L~};T_Tb@~M~@>i3{g?gRjM-uh38fTD3mar zMy6j)mojZ`;5EYq515$#veqz~`smGIAprvc(+bL~Nn;rpL05AEJqz4sk?EdOU9~%W zX1KVp8&i9^O}>pg7B4aR!vY`lOA7gr9UTGfMjQ%8z_Pei&jR!d4QB<;8;uo&yXp@` z6PszEsZX(~U`(8oI1)F3*L8B2N|FA8hB~xLfMP#Pf&9Ybsm1l^f_cNoRCFh2)hW%& z^BaS=2S#_HEMAmlQR~DJgO#K1^72M?7k)<=YtUP$fTx>aT+0r1jt90D{`dzO>Jrd?#yWwJ{hvGmgpdSJCrnc^Pk52S}|*KaT8PV5`Q_; z{C>0?YS(3@rflQ+|TUraj8^6RKQc{Ah?AG46y$W>Yf`i`-x63XfFjY!2!ca zG(f5qkjfiIbFAi=n;gvjE%JSaVxk8YMnQ-9S0W6bJB~02VC*cuC#! z1qtv-;!Egyd3~!}1mVW%dlr3_iPqjQ@DLPgd#uB!zFB=c$K@krki=XTGC<&k{HDE@ zvXKn;P--bi=%Yixs}#|K;$;rfQS+%7UM!T<*&5YRWD9<9z;-~`6#L5OQb>(8B+60? zNR_>k^j2Sors7_?eg9k+-gfa-+Vl*tPZ8)?FEYu(pxF%Xf4`gr?aD=WY~VU?zQVpb zNnO}#;a^3jPpU>9Z}}$f2SGdd%Jk!EZ*cLO%bRpferVA!M(bV3ieD%mY4S8#SjdM- zB@LzwldwJ%IbQ_XojHA4C>Rr>qJcb|~%&62@lf+fqxKAfVs^9g?QBsn0Z43$J@1a7h z2?O{z!8soOjHHe^dQIl_xzkup+Lis|VlEmyOc@E(AtW(I0l&N8*v+aTpEW(KbtYUM zE@DJp!=@rBf05pb(xF>hu+61=b7o<3aDUhwCqFC4-B(X_15p9HgLaz$*tT56LiBFK z;1Ev$g(Wn$lQT%Oz>H8vTDgilY!G}Jzaa>Ii#0Vyd#UBW-jmi^RcOOWpIcno7+|2# z5HDiZ*0r%Md^%ODyZ&!W@6=v75!LP@XD<5Tl0(Y&Kb%`7Q_P$~)``swZ`N7=Z-&v< ypS%2{*GIE1yi}iES@3)F-<$t(>bKe7p8xjzw{$S~&+C7G;=j7j?`1e4!T dict[str, str]: def _run(cmd: list[str], cwd: Path, env: dict, timeout: float) -> tuple[int | None, str, bool]: - """Collect output, with at most one extra second of POSIX timeout cleanup.""" + """Collect output, bounding POSIX timeout and interrupt cleanup.""" proc = subprocess.Popen(cmd, cwd=cwd, env=env, stdin=subprocess.DEVNULL, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, text=True, errors="replace", start_new_session=True) try: out, _ = proc.communicate(timeout=timeout) return proc.returncode, out, False + except KeyboardInterrupt: + if os.name == "posix": + try: + try: + os.killpg(proc.pid, signal.SIGKILL) + except ProcessLookupError: + pass + # Reap the leader without draining an escaped helper's pipe. + proc.wait(timeout=1.0) + except (OSError, subprocess.TimeoutExpired): + # Cleanup failure must not replace the caller's cancellation. + pass + finally: + proc.stdout.close() + raise except subprocess.TimeoutExpired: try: os.killpg(proc.pid, signal.SIGKILL) diff --git a/tests/test_sandbox_interrupt.py b/tests/test_sandbox_interrupt.py new file mode 100644 index 0000000..184e969 --- /dev/null +++ b/tests/test_sandbox_interrupt.py @@ -0,0 +1,170 @@ +"""Real POSIX interrupt cleanup, including descendants and retained output pipes.""" +import json +import os +from pathlib import Path +import signal +import subprocess +import sys +import time + +import pytest + +import testpilot.sandbox as sandbox + + +pytestmark = pytest.mark.skipif(os.name != "posix", reason="POSIX process-group cancellation") + +WORKER = """\ +import json, os, pathlib, subprocess, sys, time +role, mode, folder = sys.argv[1:] +root = pathlib.Path(folder) +deadline = time.monotonic() + 8 +info = {"pid": os.getpid(), "pgid": os.getpgrp(), "role": role} +(root / (role + ".json")).write_text(json.dumps(info)) +if role == "leader": + child = subprocess.Popen( + [sys.executable, __file__, "child", mode, folder], + start_new_session=mode.startswith("escape"), + ) + while not (root / "child.json").exists() and time.monotonic() < deadline: + time.sleep(0.01) + (root / "ready").write_text("Both fixture processes have started") + print("leader-ready", flush=True) + if mode.endswith("exit"): + raise SystemExit(0) +while time.monotonic() < deadline: + time.sleep(0.01) +""" + +RUNNER = """\ +import json, os, pathlib, sys +from testpilot.sandbox import _run, clean_env +root = pathlib.Path(sys.argv[1]) +try: + result = _run([sys.executable, str(root / "worker.py"), "leader", + sys.argv[2], str(root)], root, clean_env(root), 12) +except KeyboardInterrupt: + info = json.loads((root / "leader.json").read_text()) + try: + waited = os.waitpid(info["pid"], os.WNOHANG) + # A live child returns (0, 0); a zombie reaped here was not reaped by _run. + reaped = False + except ChildProcessError: + waited, reaped = None, True + receipt = {"kind": "KeyboardInterrupt", "leader_reaped_before_return": reaped, + "waitpid_probe": waited} +else: + receipt = {"kind": "returned_result", "result": result} +(root / "interrupt.json").write_text(json.dumps(receipt)) +""" + + +def command_if_running(pid): + result = subprocess.run( + ["ps", "-p", str(pid), "-o", "stat=", "-o", "command="], + capture_output=True, text=True, timeout=1, + ) + fields = result.stdout.strip().split(None, 1) + if result.returncode or not fields or fields[0].startswith("Z"): + return None + return fields[1] if len(fields) == 2 else "" + + +def fixture_processes(root): + result = [] + for role in ("leader", "child"): + path = root / (role + ".json") + try: + result.append(json.loads(path.read_text())) + except (FileNotFoundError, json.JSONDecodeError): + pass + return result + + +def is_owned_running(info, root): + command = command_if_running(info["pid"]) + return command is not None and str(root / "worker.py") in command + + +def finish_fixture(root, runner): + # Never signal a reused PID or anything outside this unique fixture. A + # startup failure gets a ten-second cleanup deadline: workers self-exit at + # eight seconds even if they never reach the complete readiness record. + if runner.poll() is None: + os.killpg(runner.pid, signal.SIGKILL) + runner.wait(timeout=2) + deadline = time.monotonic() + 10 + infos = fixture_processes(root) + while True: + infos = fixture_processes(root) + for info in infos: + if is_owned_running(info, root): + try: + assert os.getpgid(info["pid"]) == info["pgid"] + assert info["pgid"] not in (os.getpgrp(), runner.pid) + os.killpg(info["pgid"], signal.SIGKILL) + except ProcessLookupError: + pass + if len(infos) == 2 and all(not is_owned_running(i, root) for i in infos): + break + if time.monotonic() >= deadline: + break + time.sleep(0.02) + assert all(not is_owned_running(i, root) for i in infos), "owned fixture process survived cleanup" + + +def interrupt_run(tmp_path, mode): + (tmp_path / "worker.py").write_text(WORKER) + (tmp_path / "runner.py").write_text(RUNNER) + env = {**os.environ, "PYTHONPATH": str(Path(sandbox.__file__).resolve().parent.parent), + "PYTHONDONTWRITEBYTECODE": "1"} + with (tmp_path / "runner.stdout").open("wb") as stdout, (tmp_path / "runner.stderr").open("wb") as stderr: + runner = subprocess.Popen( + [sys.executable, str(tmp_path / "runner.py"), str(tmp_path), mode], + cwd=tmp_path, env=env, stdin=subprocess.DEVNULL, stdout=stdout, + stderr=stderr, start_new_session=True, + ) + try: + deadline = time.monotonic() + 5 + while not (tmp_path / "ready").exists(): + assert runner.poll() is None, (tmp_path / "runner.stderr").read_text() + assert time.monotonic() < deadline, "native fixture never became ready" + time.sleep(0.01) + infos = fixture_processes(tmp_path) + assert len(infos) == 2 + leader, child = infos + assert leader["pgid"] == leader["pid"] and leader["pid"] != runner.pid + assert child["pgid"] == (child["pid"] if mode.startswith("escape") else leader["pid"]) + started = time.monotonic() + runner.send_signal(signal.SIGINT) # Only this test's own _run caller. + assert runner.wait(timeout=4) == 0, (tmp_path / "runner.stderr").read_text() + elapsed = time.monotonic() - started + receipt = json.loads((tmp_path / "interrupt.json").read_text()) + observed = {"receipt": receipt, "elapsed_s": elapsed, + "leader_running": is_owned_running(leader, tmp_path), + "child_running": is_owned_running(child, tmp_path), + "mode": mode, "processes": infos} + (tmp_path / "observed.json").write_text(json.dumps(observed, indent=2) + "\n") + return observed + finally: + finish_fixture(tmp_path, runner) + + +@pytest.mark.parametrize("mode", ["group-wait", "group-exit"]) +def test_interrupt_stops_same_group_descendant_and_reaps_leader(tmp_path, mode): + observed = interrupt_run(tmp_path, mode) + assert observed["receipt"]["kind"] == "KeyboardInterrupt" + assert observed["receipt"]["leader_reaped_before_return"], observed + assert not observed["leader_running"], observed + assert not observed["child_running"], observed + assert observed["elapsed_s"] < 2.5, observed + + +@pytest.mark.parametrize("mode", ["escape-wait", "escape-exit"]) +def test_interrupt_does_not_drain_a_detached_helpers_pipe(tmp_path, mode): + observed = interrupt_run(tmp_path, mode) + assert observed["receipt"]["kind"] == "KeyboardInterrupt" + assert observed["receipt"]["leader_reaped_before_return"], observed + assert not observed["leader_running"], observed + assert observed["child_running"], "escaped-session containment is outside this contract" + assert observed["elapsed_s"] < 2.5, observed From 37985347ec7957902cc51223a0916b86ed5ef1f5 Mon Sep 17 00:00:00 2001 From: Jacob Metoyer <150724801+Jacob-Met@users.noreply.github.com> Date: Thu, 8 Oct 2026 12:38:25 -0700 Subject: [PATCH 2/2] Keep complete process identity in cancellation tests Use ps -ww under pytest capture so owned escaped helpers remain observable. Preserve every liveness and timing assertion and the exact production cancellation handler. Retain the first hosted failure, native red/green evidence, diagnostic traces and complete root receiving proof. --- .../ps-width-correction/REVIEW.md | 24 + .../ps-width-correction/evidence.tar.xz | Bin 0 -> 63472 bytes .../ps-width-correction/qualification.json | 282 ++++++++ .../ps-width-correction/root-receiving.json | 608 ++++++++++++++++++ .../ps-width-correction/test-only.diff | 13 + tests/test_sandbox_interrupt.py | 3 +- 6 files changed, 929 insertions(+), 1 deletion(-) create mode 100644 docs/receipts/run-cancellation-18a24bf0c281/ps-width-correction/REVIEW.md create mode 100644 docs/receipts/run-cancellation-18a24bf0c281/ps-width-correction/evidence.tar.xz create mode 100644 docs/receipts/run-cancellation-18a24bf0c281/ps-width-correction/qualification.json create mode 100644 docs/receipts/run-cancellation-18a24bf0c281/ps-width-correction/root-receiving.json create mode 100644 docs/receipts/run-cancellation-18a24bf0c281/ps-width-correction/test-only.diff diff --git a/docs/receipts/run-cancellation-18a24bf0c281/ps-width-correction/REVIEW.md b/docs/receipts/run-cancellation-18a24bf0c281/ps-width-correction/REVIEW.md new file mode 100644 index 0000000..2ee3bf9 --- /dev/null +++ b/docs/receipts/run-cancellation-18a24bf0c281/ps-width-correction/REVIEW.md @@ -0,0 +1,24 @@ +# Complete process identity in cancellation receiving + +PR43's first hosted job failed only the escaped-child liveness assertion. This packet adds `-ww` to the `ps` argument list in `tests/test_sandbox_interrupt.py`, with one explanatory comment. The full worker-path match,zombie refusal,process-group guards,finite workers,reaping assertions and elapsed-time bounds remain unchanged. Production sandbox stays blob `84330f96ebd71b37dc40575fa2ac59ba53cf2a72`. + +Native source commit `7e58c46ff7222608703929568bf453576f418b6c` freezes the7,024-byte test blob `35a8152aa41be8aafffcc1f5713bedbf2abd7533`, SHA256 `e43719dc30472dd3e9ff8b829b61a7d743de20974ca4991aa131c12014ab4818`. Removing the comment and argument reproduces original `184e969e57fc2a483b6a4e7b1709e16f66ce37e6` exactly. The parsed AST changes only that argument. + +| Phase | Actual result | +| --- | --- | +| Standalone original oracle,short and long owned paths | Both live processes correctly identified; retained non-reproduction. | +| Exact public four-case test under native pytest | Two same-group controls pass;both escaped-session cases fail only child_running. | +| Observation-only original pytest run | Sixteen ps calls retained;eight live-child observations show81 bytes cut at80 columns,while -ww returns246 bytes including the full worker path. | +| One-argument candidate,observer absent | All four existing process cases pass. | + +The observer returns every original subprocess result unchanged. Stable /proc command-line,start identity,state,group and session are retained before/after. The observed pytest descriptors have no terminal and COLUMNS is unset. Original red and complete diagnostic were frozen before correction. The passing standalone control prevents a claim that all GNU ps invocations truncate. + +Native receiving uses Python3.14.4,pytest9.0.2 and procps-ng4.0.4 on the named ThinkPad. Candidate tests use the same twelve exact original source/context inputs through an explicit PYTHONPATH;only the test differs. All original and candidate bytes remain unchanged before/after. No runtime or dependency was installed. + +The failed hosted job113460074077/run37820525113 checked out `c49cd45f805d9c8e998bb0f3a3bf06593296eee7`, tree `90122828c9c577c4fde436807c933b9899d8abe0`, parents `cec50d8df4499ba509615e179d82ef3861379bd2` and `95a3116c175debdf97fd9dc1c984a587a90a5d3b`. Its complete20,002-byte decoded log matches root's independent SHA256 `7563982662d40069caadd14a04d382836d25d70cab0cf1cc7050c5474f321068`. It reports397 passed,25 passed subtests,and two failures,but has no raw hosted ps trace. The native reproduction establishes the defect;a new hosted checkout still must pass. + +The first packaging write failed with ENOSPC and left a zero-byte recipe that was never executed. That error is retained. The final archive and packet were instead assembled and verified in memory without cleanup,new filesystem writes or reruns. The source commit and raw native receipts remain authoritative;no final native evidence commit is claimed. + +Native root: `/var/tmp/tp-18a24bf0c281-ps`, device `d55b2499-5e82-4805-819a-d0d7ddea1efe`. The archive retains all selected original sources,receivers,raw logs and focused fixture artifacts,plus the packaging failure. MEMBER-MANIFEST.json binds every other member by bytes,SHA256 and Git blob;every member was read back from the finished archive and verified. Prior harmless missing-rg and missing-new-directory setup errors remain separate from product failures. Native commits are selected-source custody,not upstream ancestry. + +The five publication paths are one test replacement plus this review,qualification JSON,the evidence archive and the complete test-only diff. Root retains publication and merge authority. diff --git a/docs/receipts/run-cancellation-18a24bf0c281/ps-width-correction/evidence.tar.xz b/docs/receipts/run-cancellation-18a24bf0c281/ps-width-correction/evidence.tar.xz new file mode 100644 index 0000000000000000000000000000000000000000..c53ae4c83f0b7f9827b1114e9c20533d24981130 GIT binary patch literal 63472 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�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