diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index af7f9c8..52fa332 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -10,8 +10,8 @@ permissions: contents: read jobs: - quality-and-tests: - name: ${{ matrix.os }} / Python ${{ matrix.python }} + core-only: + name: core / ${{ matrix.os }} / Python ${{ matrix.python }} runs-on: ${{ matrix.os }} strategy: fail-fast: false @@ -26,12 +26,32 @@ jobs: cache: pip - run: python -m pip install --upgrade pip - run: python -m pip install -e ".[dev]" + - run: python -m pytest -m "not scipy" + - run: python -m phaseprobe --version + - run: python -m phaseprobe scan --example logistic-negative + + scipy-extra: + name: scipy / ${{ matrix.os }} / Python ${{ matrix.python }} + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + os: [ubuntu-latest, windows-latest] + python: ["3.10", "3.12", "3.14"] + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 + with: + python-version: ${{ matrix.python }} + cache: pip + - run: python -m pip install --upgrade pip + - run: python -m pip install -e ".[dev,scipy]" - run: python -m ruff format --check . - run: python -m ruff check . - run: python -m mypy src tests - run: python -m pytest --cov=phaseprobe --cov-report=term - - run: python -m phaseprobe --version - - run: python -m phaseprobe scan --example logistic-negative + - run: python -m phaseprobe perturb --config examples/scipy/lorenz-negative.json + - run: python -m phaseprobe check --config examples/scipy/predator-prey.json package-and-hygiene: runs-on: ubuntu-latest @@ -41,12 +61,18 @@ jobs: with: python-version: "3.12" cache: pip - - run: python -m pip install --upgrade pip build + - run: python -m pip install --upgrade pip build twine - run: python -m build - - run: python -m venv .packed-smoke - - run: .packed-smoke/bin/python -m pip install dist/*.whl - - run: .packed-smoke/bin/python -m phaseprobe --version - - run: .packed-smoke/bin/python -m phaseprobe scan --example logistic-negative + - run: python -m twine check dist/* + - run: python scripts/audit_package.py + - run: python -m venv .cache/packed-smoke + - run: .cache/packed-smoke/bin/python -m pip install dist/*.whl + - run: .cache/packed-smoke/bin/python -m phaseprobe --version + - run: .cache/packed-smoke/bin/python -m phaseprobe scan --example logistic-negative + - run: .cache/packed-smoke/bin/python -c "import importlib.util; assert importlib.util.find_spec('numpy') is None; assert importlib.util.find_spec('scipy') is None" + - run: python -m venv .cache/scipy-smoke + - run: .cache/scipy-smoke/bin/python -m pip install "$(find dist -name '*.whl')[scipy]" + - run: .cache/scipy-smoke/bin/python -m phaseprobe check --config examples/scipy/predator-prey.json - run: python scripts/check_links.py - run: python scripts/hygiene.py - uses: actions/upload-artifact@v4 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 251df8b..e9bd329 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -16,12 +16,17 @@ jobs: with: python-version: "3.12" cache: pip - - run: python -m pip install --upgrade pip build + - run: python -m pip install --upgrade pip build twine - run: python -m build - - run: python -m venv .tag-smoke - - run: .tag-smoke/bin/python -m pip install dist/*.whl - - run: .tag-smoke/bin/python -m phaseprobe --version - - run: .tag-smoke/bin/python -m phaseprobe scan --example logistic + - run: python -m twine check dist/* + - run: python scripts/audit_package.py + - run: python -m venv .cache/tag-core-smoke + - run: .cache/tag-core-smoke/bin/python -m pip install dist/*.whl + - run: .cache/tag-core-smoke/bin/python -m phaseprobe --version + - run: .cache/tag-core-smoke/bin/python -m phaseprobe scan --example logistic + - run: python -m venv .cache/tag-scipy-smoke + - run: .cache/tag-scipy-smoke/bin/python -m pip install "$(find dist -name '*.whl')[scipy]" + - run: .cache/tag-scipy-smoke/bin/python -m phaseprobe check --config examples/scipy/predator-prey.json - run: python scripts/hygiene.py - uses: actions/upload-artifact@v4 with: diff --git a/AGENTS.md b/AGENTS.md index 8081b14..e063678 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -8,4 +8,4 @@ - Required validation: `python -m ruff format --check .`, `python -m ruff check .`, `python -m mypy src tests`, `python -m pytest`, `python -m build`, packed-install smoke test, quick start, examples, replay, generated-test execution, privacy/secret/large-file scans, and clean Git status. - Do not fabricate tests, performance, scientific evidence, benchmark results, users, or adoption claims. - Do not publish to PyPI without separate authorization. -- Release only after all local gates pass; then use the authenticated `aliengineering-byte` GitHub account, pass CI, tag an annotated `v0.1.0`, create the release, and verify a fresh unauthenticated clone. +- Release only after all local gates pass; then use the authenticated `aliengineering-byte` GitHub account, pass CI, create the intended new annotated semantic-version tag and release, and verify a fresh unauthenticated clone. Never rewrite a published tag. diff --git a/ARCHITECTURE.md b/ARCHITECTURE.md index 10b9700..3d043ce 100644 --- a/ARCHITECTURE.md +++ b/ARCHITECTURE.md @@ -6,10 +6,10 @@ PhaseProbe separates simulation semantics from search, evidence, and test materi JSON config / built-in example | v - typed adapter ----> deterministic step + observe + typed adapter ----> fixed step OR whole trajectory | | v v - bounded engine ----> finite validation ----> capped trace + SHA-256 + bounded engine ----> finite validation ----> capped trace + SHA-256 integrity | | | +---- scan / perturb / check policy v @@ -20,25 +20,50 @@ JSON config / built-in example ## Modules -- `config.py` validates schema `1.0`, loads packaged examples, and emits canonical JSON. -- `types.py` defines the public adapter protocol, state shape, trace point, and invariant result. +- `config.py` emits schema `2.0`, keeps schema `1.0` readable, validates explicit Python adapter + references without importing them, loads packaged examples, and emits canonical JSON. +- `types.py` defines the step-level `ModelAdapter`, trajectory-level `TrajectoryAdapter`, state + shape, trace point/trace, replay mode, and invariant result. - `models/` contains four independent reference adapters. They are examples, not engine special cases. -- `engine.py` owns bounded execution, NaN/Inf/hard-limit checks, trace retention, scanning, perturbation, bracket refinement, repeatability confirmation, and CI policy evaluation. +- `adapters/scipy.py` optionally imports NumPy/SciPy and wraps only public `solve_ivp` behavior. +- `adapters/loader.py` imports a user-selected dotted module and calls its named factory only at + execution time. +- `engine.py` dispatches step versus trajectory execution and owns shared NaN/Inf/hard-limit + checks, bounded retention, scanning, perturbation, bracket refinement, repeatability + confirmation, and CI policy evaluation. - `artifacts.py` creates one finite run directory and hashes each evidence file. -- `replay.py` verifies fixture integrity before re-executing exact model/config/seed/state/parameter inputs and comparing classifications plus retained trace hashes. +- `replay.py` reads v1 exact fixtures and emits v2 fixtures with explicit `exact` or `tolerance` + comparison, always after SHA-256 integrity validation. - `generate.py` uses a fixed code template and sanitized names. It never evaluates configuration text. - `reporting.py` renders terminal, JSON, and offline HTML with explicit limitations. - `cli.py` maps the six public commands to stable exit codes. -## Adapter design +## Adapter design and dispatch -The engine deliberately does not require NumPy. A state is a tuple of finite floats; this keeps serialization and perturbation explicit. Downstream adapters may wrap larger simulators, but their `step` boundary must return a bounded tuple suitable for deterministic replay. Observations are scalar mappings and cannot carry arbitrary executable objects. +The engine deliberately does not require NumPy. A state is a tuple of finite floats; this keeps +serialization and perturbation explicit. Existing adapters implement `ModelAdapter.step`, and +their behavior is unchanged. Whole-trajectory solvers implement `TrajectoryAdapter.simulate` and +return `SimulationTrace`; the engine never manufactures a fake fixed-step loop around them. +Observations are scalar mappings and cannot carry arbitrary executable objects. + +Resolution order is explicit: a Python API caller may supply an adapter instance; otherwise a +built-in model name resolves from the immutable registry; otherwise a schema-v2 `adapter` section +may name an absolute dotted module and factory. Loading that factory executes trusted user code. +Configuration validation alone checks syntax and does not import the module. An adapter supplies scientific judgment: initial conditions, state advance, observables, qualitative classification, and invariants. The engine supplies operational judgment: search bounds, retention, failure containment, hashes, artifacts, and policy exits. -## Determinism boundary +## Determinism and replay boundary + +PhaseProbe controls seeds, canonical configuration serialization, fixed command order, search +grids, state perturbations, trace retention, and artifact hashing. An external adapter remains +responsible for solver settings, thread behavior, native library versions, and hardware-sensitive +arithmetic. -PhaseProbe controls seeds, canonical configuration serialization, fixed command order, search grids, state perturbations, trace retention, and fixture hashing. An external adapter remains responsible for deterministic solver settings, thread behavior, native library versions, and hardware-sensitive arithmetic. Exact replay hashes intentionally expose drift; users may choose a classification-only policy in a future version, but v0.1.0 replay is strict. +Step adapters default to exact classification/model-identity/trace-hash replay. Adaptive SciPy +adapters require tolerance replay: the fixture carries declared state/observable/invariant/grid/ +endpoint/event tolerances and expected solver success. The original trace hash remains as artifact +integrity evidence but is not required to match numerically across environments. ## Artifact safety @@ -46,10 +71,13 @@ Trace points are capped per series. Run IDs combine UTC time and an evidence dig ## Extension checklist -1. Give the adapter a stable `identity` version. +1. Give the adapter a stable explicit `identity` version and serialize configuration separately + from callable code. 2. Make `initial_state` deterministic for the declared seed. 3. Return the same state dimension after every step. 4. Define classifier thresholds in configuration tolerances. 5. Distinguish mathematical invariants from diagnostic bounds in invariant details. -6. Add positive, negative-control, invalid-state, repeatability, and replay tests. -7. Cite a primary technical source for the model and document solver limitations. +6. Select `exact` only where byte-identical retained values are justified; otherwise declare a + complete tolerance policy. +7. Add positive, negative-control, invalid-state, repeatability, and replay tests. +8. Cite a primary technical source for the model and document solver limitations. diff --git a/CHANGELOG.md b/CHANGELOG.md index f196884..6140c59 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,24 @@ All notable changes are documented here. PhaseProbe follows semantic versioning. +## 0.2.0 — 2026-08-02 + +- Added the backward-compatible `TrajectoryAdapter` protocol and shared engine dispatch; all v0.1 + step adapters and examples continue unchanged. +- Added optional `phaseprobe[scipy]` support with a typed public `SolveIVPAdapter`, controlled + evaluation grids, scalar/vector tolerances, methods, maximum step, named events, observables, + classifiers, invariants, invalid-value checks, bounded retention, and solver/environment evidence. +- Added schema-v2 `exact` and `tolerance` replay while keeping schema-v1 exact fixtures readable. + Tolerance fixtures preserve state, observable, classifier, invariant threshold, grid, endpoint, + event, solver-success, version, and platform evidence without claiming byte-identical replay. +- Added genuine SciPy Lorenz finite-time divergence and predator–prey first-integral examples, + negative controls, refinement evidence, HTML evidence, and generated pytest fixtures. +- Added explicit safe-shape Python module/factory loading, core-without-SciPy tests, optional import + diagnostics, a Windows/Linux core/SciPy CI matrix, current SciPy audit, security/limitations docs, + demo assets, and an unposted upstream visibility proposal. +- Base installation remains dependency-free. NumPy and SciPy are optional; no PyPI publication was + performed. + ## 0.1.0 — 2026-08-01 - Added `scan`, `perturb`, `check`, `replay`, `generate-test`, and `report` commands. diff --git a/CITATION.cff b/CITATION.cff index d64eb3b..ae458a2 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -4,8 +4,8 @@ title: "PhaseProbe" type: software authors: - name: "Ali" -version: 0.1.0 -date-released: 2026-08-01 +version: 0.2.0 +date-released: 2026-08-02 url: "https://github.com/aliengineering-byte/phaseprobe" repository-code: "https://github.com/aliengineering-byte/phaseprobe" license: Apache-2.0 diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 2327771..4d76cea 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -14,7 +14,14 @@ python -m mypy src tests python -m pytest --cov=phaseprobe ``` -Before a pull request, also run `python -m build`, install the wheel into a clean environment, execute the logistic quick start, run `python scripts/check_links.py`, and run `python scripts/hygiene.py`. +Install `.[dev,scipy]` to run the optional trajectory-adapter suite. Core-only jobs intentionally +install `.[dev]` and run tests marked `not scipy`; SciPy jobs run the full suite. The committed +`uv.lock` resolves the supported Python-dependent SciPy lines reproducibly. + +Before a pull request, also run `python -m build`, `python -m twine check dist/*`, +`python scripts/audit_package.py`, install the base wheel and SciPy extra into separate clean +environments, execute both quick starts, run `python scripts/check_links.py`, and run +`python scripts/hygiene.py`. ## Scientific changes @@ -27,6 +34,10 @@ New adapters or classifiers must include: - replay and generated-test coverage; - solver-refinement or convergence evidence where numerical integration matters. +Trajectory adapters must serialize explicit configuration without callable source, select an +honest exact/tolerance replay mode, and test solver failure, invalid values, retention, and any +supported event behavior. + Do not call finite-time divergence a Lyapunov exponent, a numerical bracket an exact bifurcation point, or a bounded search result globally minimal. ## Pull requests diff --git a/LIMITATIONS.md b/LIMITATIONS.md index fa1c5a1..14c7de3 100644 --- a/LIMITATIONS.md +++ b/LIMITATIONS.md @@ -1,5 +1,26 @@ # Limitations +## Optional SciPy adapter + +- Adaptive `solve_ivp` trajectories may vary within declared tolerances across SciPy/NumPy + versions, compilers, operating systems, and architectures. Tolerance replay is not exact + deterministic replay. +- A controlled `t_eval` grid standardizes retained comparison points but does not control or expose + SciPy's internal adaptive step sequence. +- Event detection looks for sign changes across internal solver steps, so several zero crossings + inside one step can be missed. PhaseProbe records event configuration and returned event states; + it does not claim exhaustive root detection. +- PhaseProbe's portable state schema is real-valued. SciPy's method-specific complex-domain + support is intentionally outside `SolveIVPAdapter`; split real and imaginary components. +- `vectorized=True` is a user assertion about the RHS contract and can help or hurt performance + depending on method and system size. +- Solver `success=True` does not establish scientific accuracy. Users must declare invariant, + convergence, endpoint, or qualitative policies appropriate to their model. +- A configured Python adapter module/factory executes trusted code during run and replay. PhaseProbe + validates dotted names and never loads code during JSON parsing, but it is not a sandbox. +- Callable source is neither serialized nor treated as securely hashable. Model identity combines + an explicit user identifier with serialized numerical configuration metadata. + - A reported bracket is finite-time, classifier-specific numerical evidence, not an exact bifurcation point. - A smallest result is the smallest reproducible candidate found by the declared finite grid/refinement, not a proof of global minimality. - The Lorenz metric is a finite-time divergence rate, not a Lyapunov exponent and not by itself proof of chaos. diff --git a/PRIOR_ART.md b/PRIOR_ART.md index d20d09d..f717318 100644 --- a/PRIOR_ART.md +++ b/PRIOR_ART.md @@ -1,6 +1,6 @@ # Prior art and name audit -Last verified: 2026-08-01. +Last verified: 2026-08-02. PhaseProbe is positioned narrowly: simulation-specific transition discovery, bounded counterexample minimization, deterministic replay, and regression-test generation. It is not a replacement for a simulator, ODE solver, sensitivity-analysis package, formal bifurcation package, property-based testing framework, or rigorous proof tool. @@ -15,7 +15,7 @@ Evidence: [GitHub repository search](https://api.github.com/search/repositories? | tool | primary job | target user | existing strength | overlap | remaining gap | PhaseProbe differentiation | last verified date | | --- | --- | --- | --- | --- | --- | --- | --- | | [Hypothesis](https://hypothesis.readthedocs.io/en/latest/) | Property-based test generation and shrinking | Python developers | Broad input strategies, edge-case generation, mature shrinking | Search and counterexample reduction | Does not provide a simulation trace/classification/replay artifact workflow by itself | Domain-specific bounded scans, trace evidence, replay fixtures, and generated pytest tests | 2026-08-01 | -| [SciPy `solve_ivp`](https://docs.scipy.org/doc/scipy/reference/generated/scipy.integrate.solve_ivp.html) | Numerical initial-value integration | Scientific Python users | Multiple adaptive ODE solvers and error controls | Produces trajectories for models | Does not classify regimes or turn discovered transitions into replayable regressions | PhaseProbe can sit above an adapter/solver; v0.1.0 examples use a documented fixed-step method to keep runtime dependencies at zero | 2026-08-01 | +| [SciPy `solve_ivp`](https://docs.scipy.org/doc/scipy/reference/generated/scipy.integrate.solve_ivp.html) | Numerical initial-value integration | Scientific Python users | Multiple adaptive ODE solvers, dense output, events, and error controls | Produces trajectories for models | Does not classify regimes or turn discovered transitions into integrity-protected tolerance fixtures and pytest regressions | Optional trajectory adapter keeps SciPy responsible for integration while PhaseProbe owns bounded search, evidence, tolerance replay, and test materialization | 2026-08-02 | | [Mesa](https://mesa.readthedocs.io/stable/) | Agent-based model construction, execution, visualization, and analysis | Agent-based modelers | Rich ABM components and data collection | Simulation configuration and repeated runs | No focused transition-to-replay-to-pytest pipeline in the core job | Adapter-oriented testing layer, not an ABM framework | 2026-08-01 | | [NetLogo](https://docs.netlogo.org/) | Programmable multi-agent modeling environment | Researchers and educators | Mature modeling language, model library, and interactive environment | Parameter sweeps and qualitative behavior exploration | Developer-facing Python fixture/test generation is not its central job | Headless local regression evidence for adapters | 2026-08-01 | | [cadCAD](https://cadcad.readthedocs.io/en/latest/) | Modeling complex adaptive and dynamical systems | System modelers | Structured generalized dynamical-system workflows | Parameterized simulation runs | No dedicated smallest-found transition fixture and pytest generation workflow | Testing pipeline around a small typed adapter | 2026-08-01 | @@ -28,6 +28,9 @@ Evidence: [GitHub repository search](https://api.github.com/search/repositories? | [Exploratory metamorphic testing](https://pmc.ncbi.nlm.nih.gov/articles/PMC7252536/) | Test relations among related scientific-simulation inputs and outputs | Scientific software teams | Addresses test-oracle difficulty using relations across executions | Baseline/perturbed twin runs and invariants | A research method, not a packaged transition/replay/pytest workflow | Implements a narrow, deterministic operational workflow without claiming to subsume metamorphic testing | 2026-08-01 | | General record/replay tools (for example [VCR](https://github.com/vcr/vcr)) | Capture and replay external interactions | Application developers | Stable deterministic fixtures for I/O interactions | Fixture integrity and replay concepts | External-call cassettes do not re-execute a scientific model from model/config/seed/tolerances | Re-executes supported simulation adapters and verifies trace/classification hashes | 2026-08-01 | +The 0.2.0 SciPy integration does not change this boundary: SciPy integrates trajectories; +PhaseProbe searches declared dimensions, preserves qualitative boundaries, and creates regressions. + ## Differentiation boundary PhaseProbe v0.1.0 offers bounded empirical evidence. It does not prove chaos, compute a formal Lyapunov exponent, prove global minimality, locate an exact bifurcation point, validate a scientific model against nature, or replace solver-convergence studies. Its “smallest” result always means the smallest reproducible change found by the declared finite search and refinement procedure. diff --git a/README.md b/README.md index dd57571..e391774 100644 --- a/README.md +++ b/README.md @@ -22,7 +22,7 @@ $ python -m pytest -q tests/generated [![Terminal demo: scan, refine, replay, and generated pytest](assets/demo-static.png)](assets/demo.gif) -No API key, LLM, GPU, Docker, account, telemetry, network connection, or hosted service is required at runtime. PhaseProbe 0.1.0 has no third-party runtime dependencies. +No API key, LLM, GPU, Docker, account, telemetry, network connection, or hosted service is required at runtime. PhaseProbe's base installation has no third-party runtime dependencies; NumPy and SciPy are isolated in the optional `scipy` extra. ## Five-minute quick start @@ -41,6 +41,63 @@ Replace `` with the directory printed by `scan`. The scan returns `0` wh The quick-start evidence is empirical: the built-in classifier finds a finite-time period-2/period-4 bracket for the logistic map, performs bounded binary refinement, repeats both endpoints, saves trace hashes and a versioned fixture, and generates a fixed pytest template. It does not claim an exact bifurcation point. +## Use with SciPy + +SciPy integrates trajectories. PhaseProbe searches declared dimensions, preserves qualitative +boundaries, and creates regressions. PhaseProbe is an independent project and does not imply +endorsement by SciPy. + +Five-minute path: + +[![SciPy demo: solve_ivp evidence, tolerance replay, and generated pytest](assets/scipy-demo-static.png)](assets/scipy-demo.gif) + +The verified command transcript is [assets/scipy-demo-session.txt](assets/scipy-demo-session.txt), +with a self-contained [HTML example report](examples/scipy/report.html). + +```bash +python -m pip install "phaseprobe[scipy]" +phaseprobe perturb --config examples/scipy/lorenz.json +phaseprobe check --config examples/scipy/predator-prey.json +phaseprobe replay .phaseprobe/runs//replay.json +phaseprobe generate-test .phaseprobe/runs//replay.json +python -m pytest -q tests/generated +``` + +The Lorenz command searches a declared initial-`x` perturbation and reports only finite-time +divergence evidence. `examples/scipy/lorenz-negative.json` is its short-window negative control. +The predator–prey command checks the declared first integral with tightly resolved DOP853 settings; +`examples/scipy/predator-prey-coarse.json` deliberately fails the same policy with loose RK23 +settings. + +For a direct Python API: + +```python +from phaseprobe import run_perturbation +from phaseprobe.adapters.scipy import SolveIVPAdapter + +adapter = SolveIVPAdapter( + name="lorenz-scipy", + identity="my-lorenz-v1", + rhs=lorenz_rhs, + state_names=("x", "y", "z"), + initial_state=(1.0, 1.0, 1.0), + t_span=(0.0, 25.0), + t_eval=1001, + method="DOP853", + rtol=1e-9, + atol=1e-12, + max_step=0.05, + classifier=classify_lorenz, +) + +outcome = run_perturbation(adapter, config) +``` + +JSON CLI configurations name an absolute dotted Python module and factory. Running, replaying, or +generating from that configuration executes the selected trusted Python code; validation alone +does not import it. See [the audited contract](docs/SCIPY_SOLVE_IVP_AUDIT.md), +[architecture](ARCHITECTURE.md), and [security boundary](SECURITY.md). + ## Commands | command | job | normal success | @@ -48,7 +105,7 @@ The quick-start evidence is empirical: the built-in classifier finds a finite-ti | `scan` | Bounded one-dimensional parameter scan, adjacent class-change detection, and stable bracket refinement | Finding or no finding, exit `0` | | `perturb` | Baseline/perturbed twin runs over bounded initial-state changes | Finding or no finding, exit `0` | | `check` | Execute a declared configuration policy for CI | Exit `1` only when policy fails | -| `replay` | Validate fixture integrity and re-execute model, parameters, seed, initial state, tolerances, and retention | Matching class and exact retained trace hashes | +| `replay` | Validate fixture integrity and re-execute model, parameters, seed, initial state, tolerances, and retention | Declared `exact` or `tolerance` comparison passes | | `generate-test` | Validate and copy a fixture into a non-extensible pytest template | Executable test under `tests/generated/` | | `report` | Regenerate terminal, versioned JSON, and self-contained offline HTML evidence | Local report files | @@ -105,7 +162,7 @@ Model names used for generated test paths are sanitized. The generated source co The evidence-backed audit is in [PRIOR_ART.md](PRIOR_ART.md). -## Adapter interface +## Adapter interfaces Adapters implement a small typed protocol: @@ -124,6 +181,26 @@ class ModelAdapter(Protocol): The explicit serializable state tuple makes bounded perturbation, invalid-value detection, trace hashing, and replay straightforward. See [ARCHITECTURE.md](ARCHITECTURE.md) for extension guidance. +Whole-trajectory solvers use the optional protocol instead of a fake step loop: + +```python +class TrajectoryAdapter(Protocol): + name: str + identity: str + dimensions: tuple[str, ...] + replay_mode: Literal["exact", "tolerance"] + + def initial_state(self, config, seed): ... + def simulate(self, initial_state, parameters, config, seed): ... + def observe(self, trace): ... + def classify(self, trace, tolerances): ... + def invariants(self, trace, parameters, tolerances): ... + def configuration(self): ... +``` + +`SolveIVPAdapter` records the explicit identity plus a digest of serializable numerical settings. +It never serializes or claims to securely hash arbitrary callable source. + ## Scientific scope PhaseProbe uses these terms deliberately: @@ -137,12 +214,13 @@ PhaseProbe uses these terms deliberately: - invalid integration: NaN, infinity, overflow, state-shape mismatch, or hard bound breach; - solver failure: the step method could not advance a valid state. -The Lorenz example reports `finite-time divergence rate`; it does not compute or claim a Lyapunov exponent. “Smallest” always means smallest found within the declared bounded search. Read [SCIENTIFIC_METHODS.md](SCIENTIFIC_METHODS.md) and [LIMITATIONS.md](LIMITATIONS.md). +The Lorenz examples report `finite-time divergence rate`; they do not compute or claim a Lyapunov exponent. Adaptive SciPy replay is tolerance-based, never exact deterministic replay. “Smallest” always means smallest found within the declared bounded search. Read [SCIENTIFIC_METHODS.md](SCIENTIFIC_METHODS.md) and [LIMITATIONS.md](LIMITATIONS.md). ## Development ```bash python -m pip install -e ".[dev]" +python -m pip install -e ".[dev,scipy]" # include optional adapter tests python -m ruff format --check . python -m ruff check . python -m mypy src tests diff --git a/ROADMAP.md b/ROADMAP.md index a2336eb..9677bea 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -1,14 +1,20 @@ # Roadmap -## After 0.1.0 +## Delivered in 0.2.0 + +- Explicit dotted-module/factory adapter loading with validation separated from code execution. +- Optional trajectory-level protocol and public `solve_ivp` adapter without a fake step loop. +- Exact and tolerance replay modes with v1 fixture compatibility and artifact integrity hashes. +- Genuine SciPy Lorenz and predator-prey positive/negative examples and generated regressions. +- Separate core-only and SciPy-extra Windows/Linux CI coverage. + +## After 0.2.0 -- External adapter discovery with an explicit safe registration mechanism. - Non-monotonic multi-dimension search: coarse exploration, stable bracket discovery, local refinement, repeatability, and delta debugging. -- Optional classification/tolerance replay modes alongside strict trace hashes. - Adapter-provided solver convergence studies and paired step-size evidence. - Streaming trace summaries for expensive simulators without weakening the configured cap. - JSON Schema publication and compatibility migration tooling. - JUnit/SARIF policy output for CI annotation. -- More reference adapters, accepted only with positive cases, negative controls, invalid-integration tests, and primary citations. +- Additional reference adapters only when they validate a missing capability such as stiff/event-heavy systems, with positive cases, negative controls, invalid-integration tests, and primary citations. PyPI publication is intentionally absent and requires separate authorization. diff --git a/RUN_LOG.md b/RUN_LOG.md index b75de24..b2f68b3 100644 --- a/RUN_LOG.md +++ b/RUN_LOG.md @@ -102,3 +102,97 @@ These are single-environment observations, not cross-machine benchmark claims. - No formal trademark or legal clearance was performed. - No PyPI or npm publication was attempted or authorized. - The tagged release remains immutable; post-tag release and fresh-public-clone evidence is therefore external to this tracked pre-release log. + +# v0.2.0 SciPy integration log (append-only) + +This section records the PhaseProbe 0.2.0 SciPy integration and release mission. Entries are +appended in execution order. Measurements are observations from the named environment, not +cross-platform performance claims. + +## 2026-08-02 pre-edit baseline + +- Project root: the public PhaseProbe repository root; neighboring projects were not inspected. +- Branch and HEAD: clean `main` tracking `origin/main` at + `92ed4a14c3eecca82fc990c2cf2eb28b6a3b6a82`. +- Remote: public `https://github.com/aliengineering-byte/phaseprobe.git` for fetch and push. +- Latest and only tag: annotated `v0.1.0`; local and public remote dereference to + `92ed4a14c3eecca82fc990c2cf2eb28b6a3b6a82`. The tag object is + `4e12bbbafc1215cea6f369f8e3e34a50ffe1f77c` and will not be changed. +- Environment: CPython 3.12.13, Windows, PhaseProbe 0.1.0 from the project virtual environment. +- Base wheel audit: `phaseprobe-0.1.0-py3-none-any.whl` has no unconditional `Requires-Dist`; + only the existing `dev` and `demo` extras declare packages. +- Formatting: 28 files already formatted; exit 0 in 2.046 seconds. +- Ruff lint: all checks passed; exit 0 in 0.189 seconds. +- Strict mypy: no issues in 25 source files; exit 0 in 10.707 seconds. +- Tests and branch coverage: 38 passed in 70.47 seconds (73.153 seconds wall time), with + 87.92% total coverage and the 85% gate met. +- Generated pytest: 1 passed in 1.13 seconds (1.844 seconds wall time). +- Package build: wheel and source archive built successfully in 27.571 seconds. +- Link inventory: 15 Markdown files and 22 external links; no missing local links; exit 0 in + 0.410 seconds. +- Hygiene: 77 tracked public files scanned; no secret, personal-data, or file-over-1-MiB issue; + exit 0 in 0.226 seconds. +- All eight existing examples completed in 14.358 seconds: logistic positive found a + qualitative transition (exit 0, 11.172 seconds); logistic negative found none (exit 0, + 0.263 seconds); Lorenz positive found finite-time trajectory divergence (exit 0, + 0.862 seconds); Lorenz negative found none (exit 0, 0.422 seconds); predator–prey positive + passed policy (exit 0, 0.319 seconds); predator–prey negative failed its declared policy as + expected (exit 1, 0.226 seconds); toggle positive found a qualitative state switch (exit 0, + 0.602 seconds); toggle negative found none (exit 0, 0.413 seconds). +- Release target: `v0.2.0`, because `v0.1.0` remains the latest public release tag. +- Release tooling observation: `gh` is not installed in this environment. No global tool or Git + configuration was changed. + +## 2026-08-02 integration and pre-release validation + +- Current upstream audit: SciPy 1.18.0 documentation and the public `solve_ivp` implementation + were reviewed, including solver methods, evaluation grids, events, vectorization, tolerances, + termination status, invalid values, complex-domain caveats, and cross-platform replay limits. + Only the public `scipy.integrate.solve_ivp` API is used. +- Compatibility policy: the optional extra declares NumPy `>=1.23.5,<2.5` and SciPy + `>=1.15,<1.19`. The lock resolves supported SciPy releases for Python 3.10 through 3.14 while + the base wheel retains no unconditional runtime dependency. +- Architecture: the existing step-level protocol remains intact. A backward-compatible + trajectory protocol dispatches one bounded adaptive solve while sharing scan, perturbation, + invariant, artifact, reporting, and test-generation machinery. +- Replay: schema 2.0 adds declared `exact` and `tolerance` modes and retains integrity hashes. + Existing schema 1.0 fixtures remain readable and use exact trace comparison; adaptive SciPy + fixtures record tolerances and environment evidence without claiming byte-identical replay. +- Installed-wheel core validation: 46 tests passed and three SciPy-dependent tests skipped in an + isolated environment where NumPy and SciPy were absent. Core import, CLI execution, exact + replay, and the dependency audit passed. +- Installed-wheel SciPy validation: SciPy 1.18.0 and NumPy 2.4.6 were installed solely through + the wheel's `scipy` extra. The predator-prey policy and tolerance replay passed, and all three + committed generated pytest regressions passed. +- Full validation: 81 tests passed in 109.91 seconds with 86.37% branch coverage, exceeding the + unchanged 85% gate. Formatting covered 40 files; Ruff passed; strict mypy passed for 35 source + files; the lockfile check passed. +- All 12 built-in and SciPy positive/negative example commands matched their declared exit + outcomes in 35.815 seconds. The SciPy Lorenz positive case found finite-time trajectory + divergence; its short-window control found none. The tight DOP853 predator-prey configuration + passed its first-integral policy, while the deliberately coarse RK23 configuration failed it. +- Instrumented Windows measurements using the real CPython 3.12 process: the base logistic-map + quick start completed in 10.962 seconds with a 19.92 MiB peak working set; the SciPy Lorenz + example completed in 7.830 seconds with a 73.54 MiB peak working set. These are observations of + this host, not performance guarantees. +- Documentation/demo validation: the verified terminal transcript, GIF, static fallback, HTML + report, replay fixtures, generated tests, five-minute quick start, and unposted upstream + proposal are present. Link inventory passed for 17 Markdown files and 29 external links. +- Public-tree hygiene: 101 tracked or untracked candidate files were scanned; no secret, + personal-data, workstation-path, PDF, or file-over-1-MiB issue was found. `git diff --check` + passed. Neighboring projects and global Git configuration were not touched. + +## 2026-08-02 pre-release CI portability repair + +- The first GitHub matrix run exposed two CI-environment defects: strict mypy could not resolve + NumPy type aliases in the intentionally SciPy-free environment, and top-level packed-smoke + virtual environments were correctly treated as unignored public candidates by the expanded + hygiene scanner. +- Static checks were moved into the full SciPy matrix, where the optional type namespaces are + installed on both operating systems and all supported Python versions. The core matrix still + executes all dependency-free tests and examples without NumPy or SciPy. +- Packed-smoke environments now live under the ignored `.cache` directory in CI and tagged + release validation. No hygiene exclusion was weakened, and the 85% full-install branch-coverage + gate remains unchanged. +- Feature-branch push triggering was removed because pull-request triggering already covers the + branch; this prevents duplicate full matrix runs while retaining main and release-branch pushes. diff --git a/SCIENTIFIC_METHODS.md b/SCIENTIFIC_METHODS.md index 5bec841..34553c6 100644 --- a/SCIENTIFIC_METHODS.md +++ b/SCIENTIFIC_METHODS.md @@ -1,5 +1,26 @@ # Scientific methods +## SciPy trajectory evidence + +SciPy integrates trajectories. PhaseProbe searches declared dimensions, preserves qualitative +boundaries, and creates regressions. `SolveIVPAdapter` passes a real-valued RHS, controlled +evaluation grid, method, `rtol`, scalar/vector `atol`, `max_step`, vectorization declaration, and +optional named events to the public `solve_ivp` API. It records termination status/message and +evaluation counts before PhaseProbe applies model-specific observables, classification, invariants, +search, policy, artifacts, and replay. + +Adaptive error control is local and method-specific. A successful solver status is necessary but +not sufficient evidence that a scientific invariant or qualitative policy is resolved. The +predator–prey examples therefore compare a tightly resolved DOP853 run with a deliberately loose +RK23 control. The Lorenz examples use a controlled common `t_eval` grid for twin-distance evidence +and report only finite-time divergence within the declared window. + +Tolerance replay compares retained times/states, named numeric observables, classifier outcome, +invariant results and stored thresholds, endpoint/event evidence, and expected solver success. +Environment and solver evidence are retained for interpretation. Artifact hashes still detect +fixture tampering, but an adaptive trace hash is not required to match across supported platforms. +See [the complete SciPy audit](docs/SCIPY_SOLVE_IVP_AUDIT.md). + PhaseProbe 0.1.0 produces bounded computational evidence. It does not perform formal verification, model validation against observations, or computer-assisted proof. ## Execution record diff --git a/SECURITY.md b/SECURITY.md index dba023a..84abc2e 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -2,16 +2,30 @@ ## Supported version -Security fixes target the latest 0.1.x release until a newer minor release replaces it. +Security fixes target the latest 0.2.x release until a newer minor release replaces it. ## Reporting -Use GitHub’s private vulnerability reporting feature for the public repository. Do not open a public issue with an exploit, credential, sensitive fixture, or personal data. No password or token is ever required by PhaseProbe maintainers in chat. +Use GitHub's private vulnerability reporting feature for the public repository. Do not open a +public issue with an exploit, credential, sensitive fixture, or personal data. No password or token +is ever required by PhaseProbe maintainers in chat. -Include the affected version, operating system, minimal reproduction, impact, and suggested remediation if known. Ali will acknowledge a valid report through GitHub and coordinate disclosure after a fix is available. +Include the affected version, operating system, minimal reproduction, impact, and suggested +remediation if known. Ali will acknowledge a valid report through GitHub and coordinate disclosure +after a fix is available. ## Security boundary -PhaseProbe executes installed Python adapter code with the user’s permissions. Configuration files are data, but an adapter is code and must be reviewed before installation. Generated tests use a fixed template and sanitized names; replay fixtures are integrity checked before execution. HTML reports contain escaped data and no script or external resource. +PhaseProbe executes installed Python adapter code with the user's permissions. A schema-v2 +`adapter.module` must be an absolute dotted module name and `adapter.factory` a Python identifier; +path separators, relative imports, calls, and punctuation are rejected. Parsing and validation do +not import the module. Running, replaying, or generating a test does import it and call the factory, +so the selected code must be trusted. This validation is not a sandbox. -Review downstream fixtures before committing because model parameters and state may be sensitive. PhaseProbe has no telemetry and performs no runtime network calls. +Generated tests use a fixed template and sanitized names; user strings are never inserted into +executable source. Replay fixtures are SHA-256 integrity checked before execution, including when +their numerical policy is tolerance-based. Callable source is not serialized. HTML reports contain +escaped data and no script or external resource. + +Review downstream fixtures before committing because model parameters and state may be sensitive. +PhaseProbe has no telemetry and performs no runtime network calls. diff --git a/assets/scipy-demo-session.txt b/assets/scipy-demo-session.txt new file mode 100644 index 0000000..13486c1 --- /dev/null +++ b/assets/scipy-demo-session.txt @@ -0,0 +1,46 @@ +$ phaseprobe perturb --config examples/scipy/lorenz.json +FINITE-TIME TRAJECTORY DIVERGENCE FOUND + +Model: lorenz-scipy +Evidence: finite-time-divergence +Search dimension: x +Stable bracket: 3.25e-06 .. 3.390625e-06 +Smallest reproducible change found: 3.390625e-06 +Baseline regime: bounded-finite-window +Changed regime: bounded-finite-window +Invariant violations: 0 +Repeatable: true +Replay: /.cache/phaseprobe-scipy-demo-uqyijm6y/runs/lorenz/20260802T175927Z-786e1809/replay.json + +Scope: Smallest reproducible perturbation found within the declared finite search; not a proof of global minimality. +HTML report: /.cache/phaseprobe-scipy-demo-uqyijm6y/runs/lorenz/20260802T175927Z-786e1809/report.html + +$ phaseprobe check --config examples/scipy/predator-prey.json +CHECK POLICY PASSED + +Model: predator-prey-scipy +Baseline regime: positive-oscillation +Changed regime: n/a +Invariant violations: 0 +Repeatable: true +Replay: /.cache/phaseprobe-scipy-demo-uqyijm6y/runs/predator-prey/20260802T175928Z-073e812d/replay.json +HTML report: /.cache/phaseprobe-scipy-demo-uqyijm6y/runs/predator-prey/20260802T175928Z-073e812d/report.html + +$ phaseprobe replay .phaseprobe/runs//replay.json +REPLAY VERIFIED + +Model: predator-prey-scipy +Comparison mode: tolerance +baseline: declared tolerances=True + +$ phaseprobe generate-test .phaseprobe/runs//replay.json +PYTEST REGRESSION GENERATED + +Test: /.cache/phaseprobe-scipy-demo-uqyijm6y/generated/test_predator_prey_scipy_transition.py +Replay fixture: /.cache/phaseprobe-scipy-demo-uqyijm6y/generated/fixtures/predator_prey_scipy-replay.json + +$ python -m pytest -q tests/generated +. [100%] +1 passed in 1.04s + +Measured demo run: lorenz=5.916s, predator-prey=1.397s, replay=1.343s, generate=1.300s, pytest=1.759s. diff --git a/assets/scipy-demo-static.png b/assets/scipy-demo-static.png new file mode 100644 index 0000000..28b6bdf Binary files /dev/null and b/assets/scipy-demo-static.png differ diff --git a/assets/scipy-demo.gif b/assets/scipy-demo.gif new file mode 100644 index 0000000..ab82ea0 Binary files /dev/null and b/assets/scipy-demo.gif differ diff --git a/docs/SCIPY_SOLVE_IVP_AUDIT.md b/docs/SCIPY_SOLVE_IVP_AUDIT.md new file mode 100644 index 0000000..3174af0 --- /dev/null +++ b/docs/SCIPY_SOLVE_IVP_AUDIT.md @@ -0,0 +1,92 @@ +# SciPy `solve_ivp` audit + +Reviewed 2026-08-02 against SciPy 1.18.0, the current stable release, using the +[official API reference](https://docs.scipy.org/doc/scipy/reference/generated/scipy.integrate.solve_ivp.html), +the tagged public +[`ivp.py`](https://github.com/scipy/scipy/blob/v1.18.0/scipy/integrate/_ivp/ivp.py) and +[`base.py`](https://github.com/scipy/scipy/blob/v1.18.0/scipy/integrate/_ivp/base.py) sources, +and the [1.18.0 release](https://github.com/scipy/scipy/releases/tag/v1.18.0). +PhaseProbe uses only the public `scipy.integrate.solve_ivp` function and public result fields. + +## Public contract reviewed + +The public signature is `solve_ivp(fun, t_span, y0, method='RK45', t_eval=None, +dense_output=False, events=None, vectorized=False, args=None, **options)`. + +| area | reviewed behavior | PhaseProbe policy | +| --- | --- | --- | +| RHS | `fun(t, y)` returns the same shape as `y`; `args` can extend all user callables | Close over an immutable parameter mapping; reject shape mismatch, complex output, NaN, or infinity | +| `t_span` | Two float-convertible endpoints; forward and backward integration are supported | Require distinct finite endpoints and serialize both | +| `y0` | One-dimensional; tagged source rejects non-finite components | Require one finite real value per declared state name before calling SciPy | +| methods | `RK23`, `RK45`, `DOP853`, `Radau`, `BDF`, and `LSODA`, plus custom `OdeSolver` classes | Accept only the six public string names so configuration and replay remain portable and serializable | +| `t_eval` | Must be one-dimensional, strictly sorted in integration direction, and inside `t_span` | Always pass a controlled grid that includes both endpoints; allow explicit grids or bounded linspace specifications | +| `dense_output` | Returns an `OdeSolution` when enabled | Forward and record the option, but retain only the controlled finite grid and event states | +| events | Detect sign changes across solver steps; multiple crossings inside one step can be missed; `terminal` and `direction` affect handling | Wrap explicitly named event callables, retain bounded `t_events`/`y_events`, record terminal/direction, and never imply all roots were found | +| `vectorized` | May call `fun` with `(n, k)` state arrays; can accelerate finite-difference Jacobians for `Radau`/`BDF` but can slow small systems or other methods | Forward and record the declaration; the user callback remains responsible for the vectorized contract | +| `rtol`, `atol` | Local error target is `atol + rtol * abs(y)`; `atol` may be scalar or shape `(n,)`; defaults are `1e-3` and `1e-6` | Require positive finite values, validate vector length, serialize exact values, and make scientific examples choose explicit non-default values | +| `max_step` | Defaults to infinity and bounds the internal step when finite | Represent unbounded as JSON `null`; otherwise require a positive finite value and pass it explicitly | +| result | Public fields include `t`, `y`, `t_events`, `y_events`, `nfev`, `njev`, `nlu`, `status`, `message`, and `success` | Record every applicable field plus Python, NumPy, SciPy, machine, word-size, and byte-order evidence | +| status | `-1` is failed step, `0` reached `t_span` end, `1` terminated on event; success is `status >= 0` | Never classify an unsuccessful result; surface status and message as a numerical failure | + +## Method and domain implications + +SciPy recommends explicit `RK23`, `RK45`, and `DOP853` for non-stiff problems, with `DOP853` +for high precision. `Radau` and `BDF` target stiff problems; `LSODA` wraps ODEPACK and switches +between Adams and BDF formulas. Method selection is scientific configuration, not an +implementation detail, so PhaseProbe stores and replays it. + +SciPy supports complex states only for some methods, and stiff complex problems require a +complex-differentiable RHS. PhaseProbe's common state protocol is deliberately a tuple of real +finite floats. `SolveIVPAdapter` therefore rejects complex state/output and tells users to split +real and imaginary components. This is narrower than SciPy, not a SciPy limitation. + +SciPy validates finite `y0`, but intermediate non-finite RHS or result behavior can vary by +method and failure path. PhaseProbe independently validates RHS outputs, every retained time and +state, observables, events, and the final state. It treats solver exceptions, unsuccessful status, +and invalid values as different diagnostic evidence where possible. + +## Adaptive replay and floating point + +Adaptive step acceptance can change after small floating-point, compiler, architecture, NumPy, +or SciPy differences. A controlled `t_eval` makes comparison meaningful but does not make the +internal step sequence or interpolated values byte-identical. Therefore: + +- built-in fixed-step adapters retain `exact` class/identity/trace-hash replay; +- SciPy trajectories use `tolerance` replay with declared state, observable, invariant, grid, + endpoint, and event tolerances; +- every stored fixture and run artifact still has a SHA-256 integrity digest; +- environment evidence is preserved for interpretation but a version string is not substituted + for numerical comparison. + +This is tolerance-based numerical replay, never "exact deterministic replay." + +## Supported versions + +The optional extra is `numpy>=1.23.5,<2.5` and `scipy>=1.15,<1.19`. The lower bound preserves +PhaseProbe's Python 3.10 support through SciPy 1.15; the upper bound prevents silently claiming +support for an unreviewed future SciPy minor. The lock resolves and tests these representative +combinations: + +| Python | representative SciPy | rationale | +| --- | --- | --- | +| 3.10 | 1.15.3 | Last supported minor line for Python 3.10 | +| 3.11 | 1.17.1 | Supported current bug-fix line for Python 3.11 | +| 3.12–3.14 | 1.18.0 | Audited current stable line | + +SciPy 1.18.0 itself requires Python 3.12–3.14 and NumPy 2.0 or newer. Resolver metadata chooses +an older compatible SciPy within the declared PhaseProbe range on Python 3.10 and 3.11. + +## Relevant upstream context + +- [SciPy issue #18039](https://github.com/scipy/scipy/issues/18039) discusses default tolerance + limitations, piecewise dynamics, `max_step`, and manual convergence checks. +- [SciPy issue #9686](https://github.com/scipy/scipy/issues/9686) discusses bounded internal work + and minimum-step behavior. +- [SciPy issue #10319](https://github.com/scipy/scipy/issues/10319) records the distinction between + a controlled `t_eval` grid and terminal event states returned through `y_events`. +- The Scientific Python discussion + ["Design of callback for scipy.integrate.solve_ivp"](https://discuss.scientific-python.org/t/design-of-callback-for-scipy-integrate-solve-ivp/1672) + concerns progress/control callbacks, not external qualitative regression evidence. + +None duplicates PhaseProbe's external adapter, tolerance fixture, qualitative search, and pytest +materialization workflow, and this project requests no SciPy API change. diff --git a/docs/upstream/SCIPY_INTEGRATION_PROPOSAL.md b/docs/upstream/SCIPY_INTEGRATION_PROPOSAL.md new file mode 100644 index 0000000..c7bcf6d --- /dev/null +++ b/docs/upstream/SCIPY_INTEGRATION_PROPOSAL.md @@ -0,0 +1,109 @@ +# Prepared SciPy integration visibility proposal + +Status: prepared for human review; not posted or submitted anywhere. + +## Problem addressed + +Real ODE applications need regression checks that survive routine solver and platform variation +without reducing a trajectory to an exact byte hash or one arbitrary endpoint assertion. +PhaseProbe adds a bounded layer around a user-declared `solve_ivp` model: search a parameter or +initial-state dimension, preserve qualitative transition/invariant evidence, and materialize the +declared comparison as pytest. + +SciPy integrates trajectories. PhaseProbe searches declared dimensions, preserves qualitative +boundaries, and creates regressions. It neither replaces an ODE solver nor changes SciPy. + +## Python example + +```python +from phaseprobe import run_perturbation +from phaseprobe.adapters.scipy import SolveIVPAdapter + +adapter = SolveIVPAdapter( + name="lorenz-scipy", + identity="my-lorenz-v1", + rhs=lorenz_rhs, + state_names=("x", "y", "z"), + initial_state=(1.0, 1.0, 1.0), + t_span=(0.0, 25.0), + t_eval=1001, + method="DOP853", + rtol=1e-9, + atol=1e-12, + max_step=0.05, + classifier=classify_lorenz, +) + +outcome = run_perturbation(adapter, config) +``` + +The user supplies the RHS and scientific callbacks. PhaseProbe stores an explicit model identity +plus solver configuration metadata; it does not hash or serialize callable source. + +## CLI example + +```bash +python -m pip install "phaseprobe[scipy]" +phaseprobe perturb --config examples/scipy/lorenz.json +phaseprobe check --config examples/scipy/predator-prey.json +phaseprobe replay .phaseprobe/runs//replay.json +phaseprobe generate-test .phaseprobe/runs//replay.json +``` + +The `adapter.module`/`adapter.factory` configuration explicitly executes trusted Python model code +only when a command runs. JSON validation alone does not import it. + +## Numerical validation + +- Lorenz: a small initial-condition search reports only repeatable finite-time divergence over a + declared 25-unit window and distance threshold. A five-unit negative control finds no crossing. +- Predator–prey: tight DOP853 settings preserve the declared first integral within policy. A + deliberately loose RK23 configuration violates the same scientific policy, providing + refinement/convergence evidence rather than assuming solver success implies accuracy. +- Windows and Linux CI cover Python 3.10, 3.12, and 3.14 with separate core-only and SciPy-extra + jobs. + +## Replay semantics + +Built-in fixed-step adapters use exact retained-trace hashes. Adaptive SciPy runs use declared +tolerances for states, observables, invariant outcomes and thresholds, retained times, endpoints, +and event times. The fixture itself remains integrity-hashed and records Python/NumPy/SciPy, +method, tolerances, grid, maximum step, initial state, parameters, events, termination, and +evaluation counts. A tolerance match is not called exact deterministic replay. + +## Limitations + +- Evidence is finite-window and model-policy-specific; no global proof, formal Lyapunov exponent, + or exact bifurcation point is claimed. +- Event detection can miss multiple zero crossings inside one solver step. +- PhaseProbe's common serialized state is real-valued; complex systems must split components. +- User-selected Python adapter modules execute code and must be trusted. +- Cross-platform adaptive results can differ within declared tolerances. + +## Duplication check + +Searches reviewed +[SciPy #18039](https://github.com/scipy/scipy/issues/18039), +[#9686](https://github.com/scipy/scipy/issues/9686), +[#10319](https://github.com/scipy/scipy/issues/10319), and the Scientific Python +[`solve_ivp` callback discussion](https://discuss.scientific-python.org/t/design-of-callback-for-scipy-integrate-solve-ivp/1672). +They cover tolerance choice, solver work bounds, event return semantics, and callbacks. They do not +propose this external qualitative regression/replay layer. + +## Public demo + +Project quick start and terminal assets: +https://github.com/aliengineering-byte/phaseprobe#use-with-scipy + +## Suggested discussion title + +`PhaseProbe: tolerance-aware qualitative regression fixtures for SciPy solve_ivp models` + +## Human-editable outreach message + +> I built an optional, dependency-isolated PhaseProbe adapter for public `solve_ivp` models. It +> keeps SciPy responsible for integration and adds bounded qualitative searches, explicit +> tolerance replay, and generated pytest regressions. The examples include finite-time Lorenz +> divergence with a negative control and a Lotka–Volterra invariant refinement check. I reviewed +> related tolerance, event, work-bound, and callback discussions and do not propose a SciPy API +> change. Would this workflow be useful to users maintaining scientific simulation regressions? diff --git a/examples/README.md b/examples/README.md index 85e1752..5e3b368 100644 --- a/examples/README.md +++ b/examples/README.md @@ -1,5 +1,33 @@ # Deterministic examples +The original eight examples use dependency-free fixed-step adapters and remain unchanged. The +`scipy/` directory adds genuine public `scipy.integrate.solve_ivp` trajectories through the +optional extra: + +```bash +python -m pip install "phaseprobe[scipy]" +phaseprobe perturb --config examples/scipy/lorenz.json +phaseprobe perturb --config examples/scipy/lorenz-negative.json +phaseprobe check --config examples/scipy/predator-prey.json +phaseprobe check --config examples/scipy/predator-prey-coarse.json +``` + +| SciPy configuration | declared evidence | expected exit | +| --- | --- | --- | +| `lorenz.json` | finite-time twin-trajectory distance crosses the declared threshold | 0 | +| `lorenz-negative.json` | short-window negative control does not cross it | 0 | +| `predator-prey.json` | tight DOP853 first-integral policy passes | 0 | +| `predator-prey-coarse.json` | deliberately loose RK23 first-integral policy fails | 1 | + +All four use controlled evaluation grids, bounded retained traces, explicit solver settings, and +tolerance replay. The predator–prey pair is refinement evidence: solver success alone is not +treated as proof that the declared invariant accuracy was achieved. The Lorenz pair is finite-time +divergence evidence only, not a Lyapunov exponent or global proof of chaos. + +The `adapter.module`/`adapter.factory` fields select trusted Python code in +`phaseprobe.examples.scipy_models`. A run or replay executes that module; JSON validation does not. +See [the solve_ivp audit](../docs/SCIPY_SOLVE_IVP_AUDIT.md). + The `configs/` files are readable copies of the examples embedded in the wheel. All commands run without network access. ## Logistic map diff --git a/examples/scipy/lorenz-negative.json b/examples/scipy/lorenz-negative.json new file mode 100644 index 0000000..d875461 --- /dev/null +++ b/examples/scipy/lorenz-negative.json @@ -0,0 +1,54 @@ +{ + "schema_version": "2.0", + "model": "lorenz-scipy", + "seed": 23, + "adapter": { + "kind": "python", + "module": "phaseprobe.examples.scipy_models", + "factory": "lorenz_adapter", + "options": { + "identity": "phaseprobe-lorenz-scipy-v1", + "state_names": ["x", "y", "z"], + "initial_state": [1.0, 1.0, 1.0], + "t_span": [0.0, 5.0], + "t_eval": {"kind": "linspace", "points": 401}, + "method": "DOP853", + "rtol": 1e-9, + "atol": 1e-12, + "max_step": 0.05, + "vectorized": false, + "dense_output": false + } + }, + "parameters": {"sigma": 10.0, "rho": 28.0, "beta": 2.6666666666666665}, + "simulation": {"trace_cap": 401, "hard_state_limit": 1000.0}, + "tolerances": {"state_bound": 100.0}, + "perturb": { + "dimension": "x", + "start": 1e-9, + "stop": 1e-5, + "points": 5, + "scale": "log", + "predicate": "finite-time-divergence", + "divergence_threshold": 1.0, + "refine_iterations": 0, + "repeatability": 2 + }, + "replay": { + "mode": "tolerance", + "state_atol": 1e-6, + "state_rtol": 1e-6, + "observable_atol": {"x": 1e-6, "y": 1e-6, "z": 1e-6, "radius": 2e-6}, + "invariant_measure_atol": 1e-6, + "endpoint_time_atol": 1e-10, + "event_time_atol": 1e-8, + "retained_grid_time_atol": 1e-12, + "max_unmatched_points": 0, + "expected_solver_success": true, + "require_classifier": true, + "require_invariants": true + }, + "classification_rule": "Short-window negative control for the same finite-time trajectory-distance predicate.", + "refinement_rule": "Evaluate only the declared bounded perturbation grid.", + "invalid_state_policy": "Abort on solver failure, invalid shape, NaN, infinity, or the declared hard-state-limit breach." +} diff --git a/examples/scipy/lorenz.json b/examples/scipy/lorenz.json new file mode 100644 index 0000000..af26441 --- /dev/null +++ b/examples/scipy/lorenz.json @@ -0,0 +1,54 @@ +{ + "schema_version": "2.0", + "model": "lorenz-scipy", + "seed": 23, + "adapter": { + "kind": "python", + "module": "phaseprobe.examples.scipy_models", + "factory": "lorenz_adapter", + "options": { + "identity": "phaseprobe-lorenz-scipy-v1", + "state_names": ["x", "y", "z"], + "initial_state": [1.0, 1.0, 1.0], + "t_span": [0.0, 25.0], + "t_eval": {"kind": "linspace", "points": 1001}, + "method": "DOP853", + "rtol": 1e-9, + "atol": 1e-12, + "max_step": 0.05, + "vectorized": false, + "dense_output": false + } + }, + "parameters": {"sigma": 10.0, "rho": 28.0, "beta": 2.6666666666666665}, + "simulation": {"trace_cap": 1001, "hard_state_limit": 1000.0}, + "tolerances": {"state_bound": 100.0}, + "perturb": { + "dimension": "x", + "start": 1e-9, + "stop": 1e-5, + "points": 5, + "scale": "log", + "predicate": "finite-time-divergence", + "divergence_threshold": 1.0, + "refine_iterations": 6, + "repeatability": 2 + }, + "replay": { + "mode": "tolerance", + "state_atol": 1e-6, + "state_rtol": 1e-6, + "observable_atol": {"x": 1e-6, "y": 1e-6, "z": 1e-6, "radius": 2e-6}, + "invariant_measure_atol": 1e-6, + "endpoint_time_atol": 1e-10, + "event_time_atol": 1e-8, + "retained_grid_time_atol": 1e-12, + "max_unmatched_points": 0, + "expected_solver_success": true, + "require_classifier": true, + "require_invariants": true + }, + "classification_rule": "Classify only boundedness over the declared finite window; the finding is twin-trajectory separation, not a proof of chaos.", + "refinement_rule": "Search the declared positive x perturbations and repeat the smallest threshold crossing found in the bounded grid.", + "invalid_state_policy": "Abort on solver failure, invalid shape, NaN, infinity, or the declared hard-state-limit breach." +} diff --git a/examples/scipy/predator-prey-coarse.json b/examples/scipy/predator-prey-coarse.json new file mode 100644 index 0000000..f65358f --- /dev/null +++ b/examples/scipy/predator-prey-coarse.json @@ -0,0 +1,45 @@ +{ + "schema_version": "2.0", + "model": "predator-prey-scipy", + "seed": 31, + "adapter": { + "kind": "python", + "module": "phaseprobe.examples.scipy_models", + "factory": "predator_prey_adapter", + "options": { + "identity": "phaseprobe-predator-prey-scipy-v1", + "state_names": ["prey", "predator"], + "initial_state": [10.0, 5.0], + "t_span": [0.0, 30.0], + "t_eval": {"kind": "linspace", "points": 301}, + "method": "RK23", + "rtol": 0.01, + "atol": 0.0001, + "max_step": 2.0, + "vectorized": false, + "dense_output": false + } + }, + "parameters": {"alpha": 1.1, "beta": 0.4, "delta": 0.1, "gamma": 0.4}, + "simulation": {"trace_cap": 301, "hard_state_limit": 1000.0}, + "tolerances": {"invariant_drift": 0.001}, + "check": {"analysis": "invariants"}, + "policy": {"forbid_findings": true, "require_finding": false, "require_invariants": true}, + "replay": { + "mode": "tolerance", + "state_atol": 1e-5, + "state_rtol": 1e-5, + "observable_atol": {"prey": 1e-5, "predator": 1e-5, "first_integral": 1e-5}, + "invariant_measure_atol": 1e-5, + "endpoint_time_atol": 1e-9, + "event_time_atol": 1e-7, + "retained_grid_time_atol": 1e-12, + "max_unmatched_points": 0, + "expected_solver_success": true, + "require_classifier": true, + "require_invariants": true + }, + "classification_rule": "Deliberately loose/coarse negative control; positivity alone does not satisfy the invariant policy.", + "refinement_rule": "Compare its first-integral drift with the tight DOP853 configuration.", + "invalid_state_policy": "Abort on solver failure, invalid shape, NaN, infinity, or non-finite observables." +} diff --git a/examples/scipy/predator-prey.json b/examples/scipy/predator-prey.json new file mode 100644 index 0000000..d5de4e3 --- /dev/null +++ b/examples/scipy/predator-prey.json @@ -0,0 +1,45 @@ +{ + "schema_version": "2.0", + "model": "predator-prey-scipy", + "seed": 31, + "adapter": { + "kind": "python", + "module": "phaseprobe.examples.scipy_models", + "factory": "predator_prey_adapter", + "options": { + "identity": "phaseprobe-predator-prey-scipy-v1", + "state_names": ["prey", "predator"], + "initial_state": [10.0, 5.0], + "t_span": [0.0, 30.0], + "t_eval": {"kind": "linspace", "points": 1201}, + "method": "DOP853", + "rtol": 1e-10, + "atol": [1e-12, 1e-12], + "max_step": 0.05, + "vectorized": false, + "dense_output": false + } + }, + "parameters": {"alpha": 1.1, "beta": 0.4, "delta": 0.1, "gamma": 0.4}, + "simulation": {"trace_cap": 1201, "hard_state_limit": 1000.0}, + "tolerances": {"invariant_drift": 1e-8}, + "check": {"analysis": "invariants"}, + "policy": {"forbid_findings": true, "require_finding": false, "require_invariants": true}, + "replay": { + "mode": "tolerance", + "state_atol": 1e-7, + "state_rtol": 1e-7, + "observable_atol": {"prey": 1e-7, "predator": 1e-7, "first_integral": 1e-8}, + "invariant_measure_atol": 1e-8, + "endpoint_time_atol": 1e-10, + "event_time_atol": 1e-8, + "retained_grid_time_atol": 1e-12, + "max_unmatched_points": 0, + "expected_solver_success": true, + "require_classifier": true, + "require_invariants": true + }, + "classification_rule": "Require both populations to remain positive over the declared retained grid.", + "refinement_rule": "DOP853 with tight tolerances and a bounded maximum step; compare with the committed coarse negative control.", + "invalid_state_policy": "Abort on solver failure, invalid shape, NaN, infinity, or non-finite observables." +} diff --git a/examples/scipy/report.html b/examples/scipy/report.html new file mode 100644 index 0000000..9f6e6ef --- /dev/null +++ b/examples/scipy/report.html @@ -0,0 +1,116 @@ + + + + + +PhaseProbe — CHECK POLICY PASSED + + +
+

PhaseProbe evidence report · schema 2.0

+

CHECK POLICY PASSED

Model: predator-prey-scipy

+
+

Baseline

positive-oscillation

Trace SHA-256: b67250eb64257ffcb68dda5dc6101dccdc13576ee67caab191675add9df54ca6

+

Changed

n/a

Trace SHA-256: n/a

+
+

Finding

{}
+

Search and refinement history

+
PhaseValue / deltaClassificationBracket
No refinement history for this check.
+

Configuration

{
+  "adapter": {
+    "factory": "predator_prey_adapter",
+    "kind": "python",
+    "module": "phaseprobe.examples.scipy_models",
+    "options": {
+      "atol": [
+        1e-12,
+        1e-12
+      ],
+      "dense_output": false,
+      "identity": "phaseprobe-predator-prey-scipy-v1",
+      "initial_state": [
+        10.0,
+        5.0
+      ],
+      "max_step": 0.05,
+      "method": "DOP853",
+      "rtol": 1e-10,
+      "state_names": [
+        "prey",
+        "predator"
+      ],
+      "t_eval": {
+        "kind": "linspace",
+        "points": 1201
+      },
+      "t_span": [
+        0.0,
+        30.0
+      ],
+      "vectorized": false
+    }
+  },
+  "check": {
+    "analysis": "invariants"
+  },
+  "classification_rule": "Require both populations to remain positive over the declared retained grid.",
+  "invalid_state_policy": "Abort on solver failure, invalid shape, NaN, infinity, or non-finite observables.",
+  "model": "predator-prey-scipy",
+  "parameters": {
+    "alpha": 1.1,
+    "beta": 0.4,
+    "delta": 0.1,
+    "gamma": 0.4
+  },
+  "policy": {
+    "forbid_findings": true,
+    "require_finding": false,
+    "require_invariants": true
+  },
+  "refinement_rule": "DOP853 with tight tolerances and a bounded maximum step; compare with the committed coarse negative control.",
+  "replay": {
+    "endpoint_time_atol": 1e-10,
+    "event_time_atol": 1e-08,
+    "expected_solver_success": true,
+    "invariant_measure_atol": 1e-08,
+    "max_unmatched_points": 0,
+    "mode": "tolerance",
+    "observable_atol": {
+      "first_integral": 1e-08,
+      "predator": 1e-07,
+      "prey": 1e-07
+    },
+    "require_classifier": true,
+    "require_invariants": true,
+    "retained_grid_time_atol": 1e-12,
+    "state_atol": 1e-07,
+    "state_rtol": 1e-07
+  },
+  "schema_version": "2.0",
+  "seed": 31,
+  "simulation": {
+    "hard_state_limit": 1000.0,
+    "trace_cap": 1201
+  },
+  "tolerances": {
+    "invariant_drift": 1e-08
+  }
+}
+

Replay and generated test

The run directory contains a versioned replay.json fixture with declared tolerance comparison. Artifact SHA-256 integrity is retained in both modes. The generate-test command validates and copies that fixture into a fixed pytest template.

+

Scientific limitations

This report contains bounded numerical evidence. It does not prove global minimality, an exact bifurcation point, chaos, a formal Lyapunov exponent, or scientific validity outside the declared model, integration settings, search space, and tolerances.

+
diff --git a/pyproject.toml b/pyproject.toml index 75e27d3..4773d0d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "hatchling.build" [project] name = "phaseprobe" -version = "0.1.0" +version = "0.2.0" description = "Find reproducible qualitative simulation transitions and turn them into regression tests." readme = "README.md" requires-python = ">=3.10" @@ -29,6 +29,10 @@ classifiers = [ dependencies = [] [project.optional-dependencies] +scipy = [ + "numpy>=1.23.5,<2.5", + "scipy>=1.15,<1.19", +] dev = [ "build==1.3.0", "mypy==1.17.1", @@ -56,6 +60,7 @@ include = [ "/src", "/tests", "/examples", + "/docs", "/scripts", "/README.md", "/LICENSE", @@ -80,6 +85,7 @@ testpaths = ["tests"] markers = [ "numerical: deterministic numerical validation", "integration: CLI, replay, packaging, or generated-test integration", + "scipy: requires the optional NumPy and SciPy dependencies", ] [tool.coverage.run] @@ -96,6 +102,10 @@ strict = true warn_unreachable = true mypy_path = "src" +[[tool.mypy.overrides]] +module = ["numpy", "numpy.*", "scipy", "scipy.*"] +ignore_missing_imports = true + [tool.ruff] target-version = "py310" line-length = 100 diff --git a/scripts/audit_package.py b/scripts/audit_package.py new file mode 100644 index 0000000..9a03889 --- /dev/null +++ b/scripts/audit_package.py @@ -0,0 +1,92 @@ +"""Audit built distribution metadata, optional extras, contents, and archive hashes.""" + +from __future__ import annotations + +import hashlib +import json +import tarfile +import zipfile +from pathlib import Path + +ROOT = Path(__file__).resolve().parents[1] +DIST = ROOT / "dist" + + +def sha256(path: Path) -> str: + digest = hashlib.sha256() + with path.open("rb") as handle: + for chunk in iter(lambda: handle.read(65_536), b""): + digest.update(chunk) + return digest.hexdigest() + + +def main() -> int: + wheels = sorted(DIST.glob("phaseprobe-*.whl")) + sdists = sorted(DIST.glob("phaseprobe-*.tar.gz")) + issues: list[str] = [] + if len(wheels) != 1 or len(sdists) != 1: + issues.append("dist must contain exactly one PhaseProbe wheel and one source archive") + if issues: + print(json.dumps({"status": "FAIL", "issues": issues}, indent=2)) + return 1 + wheel = wheels[0] + sdist = sdists[0] + with zipfile.ZipFile(wheel) as archive: + names = archive.namelist() + metadata_names = [name for name in names if name.endswith(".dist-info/METADATA")] + if len(metadata_names) != 1: + issues.append("wheel must contain exactly one METADATA file") + metadata = "" + else: + metadata = archive.read(metadata_names[0]).decode("utf-8") + wheel_members = len(names) + requirements = [ + line.removeprefix("Requires-Dist: ") + for line in metadata.splitlines() + if line.startswith("Requires-Dist: ") + ] + unconditional = [requirement for requirement in requirements if "extra ==" not in requirement] + scipy_requirements = [ + requirement for requirement in requirements if "extra == 'scipy'" in requirement + ] + if unconditional: + issues.append(f"base wheel has runtime dependencies: {unconditional}") + if not any(requirement.startswith("numpy") for requirement in scipy_requirements): + issues.append("scipy extra does not declare NumPy") + if not any(requirement.startswith("scipy") for requirement in scipy_requirements): + issues.append("scipy extra does not declare SciPy") + with tarfile.open(sdist, "r:gz") as archive: + source_names = archive.getnames() + forbidden = [ + name + for name in source_names + if name.lower().endswith(".pdf") + or any(part in name.split("/") for part in (".git", ".tools", ".venv", ".phaseprobe")) + ] + if forbidden: + issues.append(f"source archive has forbidden paths: {forbidden}") + result = { + "schema_version": "1.0", + "status": "PASS" if not issues else "FAIL", + "base_runtime_dependencies": unconditional, + "scipy_extra_requirements": scipy_requirements, + "wheel": { + "name": wheel.name, + "bytes": wheel.stat().st_size, + "sha256": sha256(wheel), + "members": wheel_members, + }, + "sdist": { + "name": sdist.name, + "bytes": sdist.stat().st_size, + "sha256": sha256(sdist), + "members": len(source_names), + }, + "issues": issues, + } + print(json.dumps(result, indent=2, sort_keys=True)) + return 0 if not issues else 1 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/generate_scipy_demo.py b/scripts/generate_scipy_demo.py new file mode 100644 index 0000000..548b5eb --- /dev/null +++ b/scripts/generate_scipy_demo.py @@ -0,0 +1,206 @@ +"""Run the real SciPy quick start and render a short terminal demo plus static report.""" + +from __future__ import annotations + +import shutil +import subprocess +import sys +import tempfile +import textwrap +import time +from pathlib import Path + +from PIL import Image, ImageDraw, ImageFont + +ROOT = Path(__file__).resolve().parents[1] +ASSETS = ROOT / "assets" +CACHE = ROOT / ".cache" +EXAMPLES = ROOT / "examples" / "scipy" +WIDTH = 1200 +HEIGHT = 720 + + +def run(command: list[str], cwd: Path, *, expected: int = 0) -> tuple[str, float]: + started = time.perf_counter() + completed = subprocess.run( + command, + cwd=cwd, + check=False, + capture_output=True, + text=True, + timeout=120, + ) + elapsed = time.perf_counter() - started + if completed.returncode != expected: + raise RuntimeError(completed.stdout + completed.stderr) + return (completed.stdout + completed.stderr).strip(), elapsed + + +def font(size: int) -> ImageFont.FreeTypeFont | ImageFont.ImageFont: + for name in ("CascadiaMono.ttf", "consola.ttf", "DejaVuSansMono.ttf"): + try: + return ImageFont.truetype(name, size) + except OSError: + continue + return ImageFont.load_default() + + +def frame(lines: list[str], active: int) -> Image.Image: + image = Image.new("RGB", (WIDTH, HEIGHT), "#09151b") + draw = ImageDraw.Draw(image) + draw.rounded_rectangle((24, 24, WIDTH - 24, HEIGHT - 24), radius=18, fill="#10252d") + for x, color in ((48, "#ef5b35"), (74, "#f2c14e"), (100, "#52b788")): + draw.ellipse((x, 48, x + 16, 64), fill=color) + draw.text((142, 44), "PhaseProbe + SciPy | tolerance replay", font=font(22), fill="#d9f2ec") + y = 92 + terminal_font = font(19) + for index, line in enumerate(lines[:25]): + if index == active: + draw.rounded_rectangle((42, y - 3, WIDTH - 42, y + 25), radius=5, fill="#173b46") + draw.text( + (52, y), + line, + font=terminal_font, + fill="#efb366" if line.startswith("$") else "#d9f2ec", + ) + y += 24 + draw.text( + (52, HEIGHT - 58), + "solve_ivp -> bounded evidence -> tolerance fixture -> generated pytest", + font=font(18), + fill="#62c6cf", + ) + return image + + +def main() -> int: + ASSETS.mkdir(exist_ok=True) + CACHE.mkdir(exist_ok=True) + with tempfile.TemporaryDirectory(prefix="phaseprobe-scipy-demo-", dir=CACHE) as raw_temp: + workspace = Path(raw_temp) + output_root = workspace / "runs" + lorenz_output, lorenz_time = run( + [ + sys.executable, + "-m", + "phaseprobe", + "perturb", + "--config", + str(EXAMPLES / "lorenz.json"), + "--output-root", + str(output_root / "lorenz"), + ], + ROOT, + ) + predator_output, predator_time = run( + [ + sys.executable, + "-m", + "phaseprobe", + "check", + "--config", + str(EXAMPLES / "predator-prey.json"), + "--output-root", + str(output_root / "predator-prey"), + ], + ROOT, + ) + predator_run = max((output_root / "predator-prey").iterdir()) + fixture = predator_run / "replay.json" + replay_output, replay_time = run( + [sys.executable, "-m", "phaseprobe", "replay", str(fixture)], ROOT + ) + generated_directory = workspace / "generated" + generate_output, generate_time = run( + [ + sys.executable, + "-m", + "phaseprobe", + "generate-test", + str(fixture), + "--output-directory", + str(generated_directory), + ], + ROOT, + ) + generated_test = next(generated_directory.glob("test_*_transition.py")) + pytest_output, pytest_time = run( + [sys.executable, "-m", "pytest", "-q", generated_test.name], + generated_directory, + ) + transcript = "\n\n".join( + ( + "$ phaseprobe perturb --config examples/scipy/lorenz.json\n" + lorenz_output, + "$ phaseprobe check --config examples/scipy/predator-prey.json\n" + predator_output, + "$ phaseprobe replay .phaseprobe/runs//replay.json\n" + replay_output, + "$ phaseprobe generate-test .phaseprobe/runs//replay.json\n" + + generate_output, + "$ python -m pytest -q tests/generated\n" + pytest_output, + ) + ) + replacements = { + str(ROOT): "", + str(workspace): "", + str(predator_run): ".phaseprobe/runs/", + str(generated_directory): "tests/generated", + } + for original, replacement in replacements.items(): + transcript = transcript.replace(original, replacement) + transcript = transcript.replace("\\", "/") + timing = ( + f"\n\nMeasured demo run: lorenz={lorenz_time:.3f}s, " + f"predator-prey={predator_time:.3f}s, replay={replay_time:.3f}s, " + f"generate={generate_time:.3f}s, pytest={pytest_time:.3f}s." + ) + (ASSETS / "scipy-demo-session.txt").write_text(transcript + timing + "\n", encoding="utf-8") + shutil.copyfile(predator_run / "report.html", EXAMPLES / "report.html") + + selected = [ + "$ phaseprobe perturb --config examples/scipy/lorenz.json", + "FINITE-TIME TRAJECTORY DIVERGENCE FOUND", + "Evidence: finite-time-divergence", + "Repeatable: true", + "Scope: declared finite search and 25-unit window", + "", + "$ phaseprobe check --config examples/scipy/predator-prey.json", + "CHECK POLICY PASSED", + "Method: DOP853 | rtol=1e-10 | vector atol=1e-12", + "First-integral drift: 3.997e-15 <= 1e-8", + "", + "$ phaseprobe replay .phaseprobe/runs//replay.json", + "REPLAY VERIFIED", + "Comparison mode: tolerance", + "baseline: declared tolerances=True", + "", + "$ phaseprobe generate-test .phaseprobe/runs//replay.json", + "PYTEST REGRESSION GENERATED", + "$ python -m pytest -q tests/generated", + ". [100%]", + "1 passed", + ] + images = [frame(selected[: limit + 1], limit) for limit in (1, 4, 9, 14, 20)] + images[-1].save(ASSETS / "scipy-demo-static.png", optimize=True) + images[0].save( + ASSETS / "scipy-demo.gif", + save_all=True, + append_images=images[1:], + duration=[900, 1100, 1300, 1300, 2200], + loop=0, + optimize=True, + ) + print( + textwrap.dedent( + f"""\ + SciPy demo assets generated from real commands: + {ASSETS / "scipy-demo.gif"} + {ASSETS / "scipy-demo-static.png"} + {ASSETS / "scipy-demo-session.txt"} + {EXAMPLES / "report.html"} + """ + ).strip() + ) + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/hygiene.py b/scripts/hygiene.py index 7d138d5..109d9b2 100644 --- a/scripts/hygiene.py +++ b/scripts/hygiene.py @@ -68,7 +68,16 @@ def tracked_files() -> list[Path]: """Use Git's index when available; otherwise walk only public project content.""" completed = subprocess.run( - ["git", "-C", str(ROOT), "ls-files", "-z"], + [ + "git", + "-C", + str(ROOT), + "ls-files", + "--cached", + "--others", + "--exclude-standard", + "-z", + ], check=False, capture_output=True, ) diff --git a/src/phaseprobe/__init__.py b/src/phaseprobe/__init__.py index f5cb0f6..4409919 100644 --- a/src/phaseprobe/__init__.py +++ b/src/phaseprobe/__init__.py @@ -1,7 +1,30 @@ -"""PhaseProbe: deterministic transition discovery for simulation regression tests.""" +"""PhaseProbe: qualitative simulation evidence and executable regressions.""" -from phaseprobe.types import InvariantResult, ModelAdapter, TracePoint +from phaseprobe.api import ( + run_invariant_check, + run_parameter_scan, + run_perturbation, + run_simulation, +) +from phaseprobe.types import ( + InvariantResult, + ModelAdapter, + SimulationTrace, + TracePoint, + TrajectoryAdapter, +) -__all__ = ["InvariantResult", "ModelAdapter", "TracePoint", "__version__"] +__all__ = [ + "InvariantResult", + "ModelAdapter", + "SimulationTrace", + "TracePoint", + "TrajectoryAdapter", + "__version__", + "run_invariant_check", + "run_parameter_scan", + "run_perturbation", + "run_simulation", +] -__version__ = "0.1.0" +__version__ = "0.2.0" diff --git a/src/phaseprobe/adapters/__init__.py b/src/phaseprobe/adapters/__init__.py new file mode 100644 index 0000000..7ec667a --- /dev/null +++ b/src/phaseprobe/adapters/__init__.py @@ -0,0 +1,4 @@ +"""Optional and external adapter loading support. + +SciPy is deliberately not imported here so the base package stays dependency-free. +""" diff --git a/src/phaseprobe/adapters/loader.py b/src/phaseprobe/adapters/loader.py new file mode 100644 index 0000000..16c93d0 --- /dev/null +++ b/src/phaseprobe/adapters/loader.py @@ -0,0 +1,51 @@ +"""Explicit loading of user-selected Python adapter factories.""" + +from __future__ import annotations + +import importlib + +from phaseprobe.config import ProbeConfig +from phaseprobe.errors import ConfigurationError +from phaseprobe.types import ModelAdapter, TrajectoryAdapter + + +def load_configured_adapter(config: ProbeConfig) -> ModelAdapter | TrajectoryAdapter: + """Import and call the explicitly configured adapter factory. + + Configuration parsing validates names but does not import anything. Calling this function + executes the selected module and factory, so callers must trust that Python code. + """ + + reference = config.section("adapter") + module_name = reference.get("module") + factory_name = reference.get("factory") + if not isinstance(module_name, str) or not isinstance(factory_name, str): + raise ConfigurationError("adapter.module and adapter.factory must be strings") + try: + module = importlib.import_module(module_name) + except (ImportError, ValueError) as exc: + raise ConfigurationError( + f"cannot import configured adapter module {module_name!r}: {exc}" + ) from exc + factory = getattr(module, factory_name, None) + if not callable(factory): + raise ConfigurationError( + f"configured adapter factory {module_name}.{factory_name} is not callable" + ) + try: + candidate = factory(reference) + except ConfigurationError: + raise + except Exception as exc: + raise ConfigurationError( + f"configured adapter factory {module_name}.{factory_name} failed: {exc}" + ) from exc + if not isinstance(candidate, ModelAdapter | TrajectoryAdapter): + raise ConfigurationError( + f"configured factory {module_name}.{factory_name} did not return a PhaseProbe adapter" + ) + if candidate.name != config.model: + raise ConfigurationError( + f"configured adapter name {candidate.name!r} does not match model {config.model!r}" + ) + return candidate diff --git a/src/phaseprobe/adapters/scipy.py b/src/phaseprobe/adapters/scipy.py new file mode 100644 index 0000000..5a7b611 --- /dev/null +++ b/src/phaseprobe/adapters/scipy.py @@ -0,0 +1,539 @@ +"""Trajectory-level adapter for the public :func:`scipy.integrate.solve_ivp` API.""" + +from __future__ import annotations + +import hashlib +import math +import platform +import sys +from collections.abc import Callable, Mapping, Sequence +from dataclasses import dataclass +from itertools import pairwise +from typing import Any, Literal, TypeAlias, cast + +try: + import numpy as np + import numpy.typing as npt + import scipy + from scipy.integrate import solve_ivp +except ModuleNotFoundError as exc: # pragma: no cover - exercised in an isolated interpreter + raise ImportError( + "PhaseProbe SciPy support is optional; install it with " + '`python -m pip install "phaseprobe[scipy]"`.' + ) from exc + +from phaseprobe.config import canonical_json +from phaseprobe.errors import ConfigurationError, NumericalFailure +from phaseprobe.types import ( + InvariantResult, + ModelConfig, + Parameters, + Scalar, + SimulationTrace, + State, + Tolerances, + TracePoint, +) + +FloatArray: TypeAlias = npt.NDArray[np.float64] +RHSCallback: TypeAlias = Callable[[float, FloatArray, Parameters], object] +EventCallback: TypeAlias = Callable[[float, FloatArray, Parameters], float] +ObservableCallback: TypeAlias = Callable[[float, State, Parameters], Mapping[str, Scalar]] +ClassifierCallback: TypeAlias = Callable[[SimulationTrace, Tolerances], str] +InvariantCallback: TypeAlias = Callable[ + [SimulationTrace, Parameters, Tolerances], list[InvariantResult] +] + +SUPPORTED_METHODS = ("RK23", "RK45", "DOP853", "Radau", "BDF", "LSODA") +MAX_EVALUATION_POINTS = 100_000 +MAX_EVENT_POINTS = 10_000 + + +def _finite_number(value: object, context: str) -> float: + if not isinstance(value, int | float) or isinstance(value, bool): + raise ConfigurationError(f"{context} must be a real number") + result = float(value) + if not math.isfinite(result): + raise ConfigurationError(f"{context} must be finite") + return result + + +def _finite_sequence(value: object, context: str) -> tuple[float, ...]: + if not isinstance(value, list | tuple): + raise ConfigurationError(f"{context} must be an array of real numbers") + return tuple(_finite_number(item, f"{context}[{index}]") for index, item in enumerate(value)) + + +def _string(value: object, context: str) -> str: + if not isinstance(value, str) or not value: + raise ConfigurationError(f"{context} must be a non-empty string") + return value + + +def _mapping(value: object, context: str) -> Mapping[str, object]: + if not isinstance(value, dict): + raise ConfigurationError(f"{context} must be an object") + return cast(Mapping[str, object], value) + + +@dataclass(frozen=True, slots=True) +class EventSpec: + """Named, explicitly configured solve_ivp event callback.""" + + name: str + function: EventCallback + terminal: bool | int = False + direction: float = 0.0 + + def __post_init__(self) -> None: + if not self.name: + raise ConfigurationError("event name must be non-empty") + terminal = self.terminal + if not isinstance(terminal, bool) and (not isinstance(terminal, int) or terminal <= 0): + raise ConfigurationError("event terminal must be a boolean or positive integer") + if not math.isfinite(float(self.direction)): + raise ConfigurationError("event direction must be finite") + + def as_dict(self) -> dict[str, object]: + """Serialize event policy without serializing executable code.""" + + return { + "name": self.name, + "terminal": self.terminal, + "direction": float(self.direction), + } + + +class _EventWrapper: + def __init__(self, spec: EventSpec, parameters: Parameters) -> None: + self._spec = spec + self._parameters = parameters + self.terminal = spec.terminal + self.direction = float(spec.direction) + + def __call__(self, time: float, state: FloatArray) -> float: + value = float(self._spec.function(time, state, self._parameters)) + if not math.isfinite(value): + raise NumericalFailure( + f"invalid event value from {self._spec.name!r}: expected a finite scalar" + ) + return value + + +class SolveIVPAdapter: + """Typed real-valued trajectory adapter backed by SciPy ``solve_ivp``. + + ``identity`` is an explicit user-controlled identifier. PhaseProbe combines it with a digest + of serialized numerical configuration; callable source is never inspected or stored. + """ + + replay_mode: Literal["tolerance"] = "tolerance" + + def __init__( + self, + *, + name: str, + identity: str, + rhs: RHSCallback, + state_names: Sequence[str], + initial_state: Sequence[float], + t_span: tuple[float, float], + t_eval: Sequence[float] | int = 501, + method: str = "RK45", + rtol: float = 1e-3, + atol: float | Sequence[float] = 1e-6, + max_step: float | None = None, + events: Sequence[EventSpec] = (), + observable: ObservableCallback | None = None, + classifier: ClassifierCallback | None = None, + invariant: InvariantCallback | None = None, + vectorized: bool = False, + dense_output: bool = False, + ) -> None: + self.name = _string(name, "name") + self.explicit_identity = _string(identity, "identity") + self.dimensions = tuple(_string(item, "state_names item") for item in state_names) + if not self.dimensions or len(set(self.dimensions)) != len(self.dimensions): + raise ConfigurationError("state_names must be non-empty and unique") + self._initial_state = _finite_sequence(tuple(initial_state), "initial_state") + if len(self._initial_state) != len(self.dimensions): + raise ConfigurationError("initial_state length must match state_names") + self._t_span = ( + _finite_number(t_span[0], "t_span[0]"), + _finite_number(t_span[1], "t_span[1]"), + ) + if self._t_span[0] == self._t_span[1]: + raise ConfigurationError("t_span endpoints must differ") + self._t_eval, self._grid_configuration = self._evaluation_grid(t_eval) + if method not in SUPPORTED_METHODS: + raise ConfigurationError(f"method must be one of {', '.join(SUPPORTED_METHODS)}") + self.method = method + self.rtol = _finite_number(rtol, "rtol") + if self.rtol <= 0.0: + raise ConfigurationError("rtol must be positive") + if isinstance(atol, int | float) and not isinstance(atol, bool): + scalar_atol = _finite_number(atol, "atol") + if scalar_atol <= 0.0: + raise ConfigurationError("atol must be positive") + self.atol: float | tuple[float, ...] = scalar_atol + else: + vector_atol = _finite_sequence(atol, "atol") + if len(vector_atol) != len(self.dimensions) or any(x <= 0.0 for x in vector_atol): + raise ConfigurationError("vector atol must contain one positive value per state") + self.atol = vector_atol + if max_step is None: + self.max_step = None + else: + parsed_max_step = _finite_number(max_step, "max_step") + if parsed_max_step <= 0.0: + raise ConfigurationError("max_step must be positive") + self.max_step = parsed_max_step + self.events = tuple(events) + if len({event.name for event in self.events}) != len(self.events): + raise ConfigurationError("event names must be unique") + if not isinstance(vectorized, bool) or not isinstance(dense_output, bool): + raise ConfigurationError("vectorized and dense_output must be booleans") + self.vectorized = vectorized + self.dense_output = dense_output + self._rhs = rhs + self._observable = observable or self._default_observable + self._classifier = classifier or self._default_classifier + self._invariant = invariant or self._default_invariants + configuration = self.configuration() + digest = hashlib.sha256(canonical_json(configuration).encode("utf-8")).hexdigest() + self.identity = f"{self.explicit_identity}:sha256:{digest[:16]}" + + @classmethod + def from_config( + cls, + *, + name: str, + rhs: RHSCallback, + values: Mapping[str, object], + observable: ObservableCallback | None = None, + classifier: ClassifierCallback | None = None, + invariant: InvariantCallback | None = None, + events: Sequence[EventSpec] = (), + ) -> SolveIVPAdapter: + """Construct from a JSON-compatible ``adapter.options`` mapping.""" + + options = _mapping(values.get("options"), "adapter.options") + state_names_raw = options.get("state_names") + if not isinstance(state_names_raw, list) or not all( + isinstance(item, str) for item in state_names_raw + ): + raise ConfigurationError("adapter.options.state_names must be an array of strings") + t_span_values = _finite_sequence(options.get("t_span"), "adapter.options.t_span") + if len(t_span_values) != 2: + raise ConfigurationError("adapter.options.t_span must contain two values") + atol_raw = options.get("atol", 1e-6) + if isinstance(atol_raw, list): + atol: float | Sequence[float] = _finite_sequence(atol_raw, "adapter.options.atol") + else: + atol = _finite_number(atol_raw, "adapter.options.atol") + t_eval_raw = options.get("t_eval", 501) + if isinstance(t_eval_raw, dict): + grid = _mapping(t_eval_raw, "adapter.options.t_eval") + if grid.get("kind") != "linspace": + raise ConfigurationError("adapter.options.t_eval.kind must be 'linspace'") + points_raw = grid.get("points") + if not isinstance(points_raw, int) or isinstance(points_raw, bool): + raise ConfigurationError("adapter.options.t_eval.points must be an integer") + t_eval: Sequence[float] | int = points_raw + elif isinstance(t_eval_raw, list): + t_eval = _finite_sequence(t_eval_raw, "adapter.options.t_eval") + else: + raise ConfigurationError("adapter.options.t_eval must be an array or linspace object") + max_step_raw = options.get("max_step") + max_step = ( + None + if max_step_raw is None + else _finite_number(max_step_raw, "adapter.options.max_step") + ) + vectorized = options.get("vectorized", False) + dense_output = options.get("dense_output", False) + if not isinstance(vectorized, bool) or not isinstance(dense_output, bool): + raise ConfigurationError("adapter.options.vectorized and dense_output must be booleans") + return cls( + name=name, + identity=_string(options.get("identity"), "adapter.options.identity"), + rhs=rhs, + state_names=cast(list[str], state_names_raw), + initial_state=_finite_sequence( + options.get("initial_state"), "adapter.options.initial_state" + ), + t_span=(t_span_values[0], t_span_values[1]), + t_eval=t_eval, + method=_string(options.get("method", "RK45"), "adapter.options.method"), + rtol=_finite_number(options.get("rtol", 1e-3), "adapter.options.rtol"), + atol=atol, + max_step=max_step, + events=events, + observable=observable, + classifier=classifier, + invariant=invariant, + vectorized=vectorized, + dense_output=dense_output, + ) + + def _evaluation_grid( + self, requested: Sequence[float] | int + ) -> tuple[tuple[float, ...], dict[str, object]]: + start, stop = self._t_span + if isinstance(requested, bool): + raise ConfigurationError("t_eval must be an integer point count or numeric sequence") + if isinstance(requested, int): + if requested < 2 or requested > MAX_EVALUATION_POINTS: + raise ConfigurationError( + f"t_eval point count must be between 2 and {MAX_EVALUATION_POINTS}" + ) + values = tuple( + start + (stop - start) * index / (requested - 1) for index in range(requested) + ) + configuration: dict[str, object] = { + "kind": "linspace", + "start": start, + "stop": stop, + "points": requested, + } + else: + values = _finite_sequence(tuple(requested), "t_eval") + if len(values) < 2 or len(values) > MAX_EVALUATION_POINTS: + raise ConfigurationError( + f"t_eval must contain between 2 and {MAX_EVALUATION_POINTS} values" + ) + configuration = {"kind": "explicit", "values": list(values)} + direction = 1.0 if stop > start else -1.0 + if values[0] != start or values[-1] != stop: + raise ConfigurationError("t_eval must include both t_span endpoints") + if any(direction * (right - left) <= 0.0 for left, right in pairwise(values)): + raise ConfigurationError("t_eval must be strictly ordered in the t_span direction") + return values, configuration + + def configuration(self) -> Mapping[str, object]: + """Return stable JSON metadata; callables are represented only by declared labels.""" + + return { + "adapter": "scipy.solve_ivp", + "identity": self.explicit_identity, + "state_names": list(self.dimensions), + "initial_state": list(self._initial_state), + "t_span": list(self._t_span), + "t_eval": self._grid_configuration, + "method": self.method, + "rtol": self.rtol, + "atol": list(self.atol) if isinstance(self.atol, tuple) else self.atol, + "max_step": self.max_step, + "events": [event.as_dict() for event in self.events], + "vectorized": self.vectorized, + "dense_output": self.dense_output, + } + + def initial_state(self, config: ModelConfig, seed: int) -> State: + """Return the serialized initial state; config and seed remain replay evidence.""" + + return self._initial_state + + def _default_observable( + self, time: float, state: State, parameters: Parameters + ) -> Mapping[str, Scalar]: + return dict(zip(self.dimensions, state, strict=True)) + + @staticmethod + def _default_classifier(trace: SimulationTrace, tolerances: Tolerances) -> str: + return "completed" + + @staticmethod + def _default_invariants( + trace: SimulationTrace, parameters: Parameters, tolerances: Tolerances + ) -> list[InvariantResult]: + return [] + + def _checked_rhs(self, parameters: Parameters) -> Callable[[float, FloatArray], FloatArray]: + def evaluate(time: float, state: FloatArray) -> FloatArray: + raw: Any = self._rhs(time, state, parameters) + if np.iscomplexobj(raw): + raise NumericalFailure( + "SolveIVPAdapter supports real-valued states only; split complex states into " + "real and imaginary components" + ) + result = np.asarray(raw, dtype=float) + if result.shape != state.shape: + raise NumericalFailure(f"RHS returned shape {result.shape}; expected {state.shape}") + if not np.isfinite(result).all(): + raise NumericalFailure("RHS returned NaN or infinite derivative values") + return cast(FloatArray, result) + + return evaluate + + def _point(self, index: int, time: float, state: object, parameters: Parameters) -> TracePoint: + values_array = np.asarray(state) + if np.iscomplexobj(values_array): + raise NumericalFailure("solve_ivp returned a complex state to a real-valued adapter") + values = tuple(float(value) for value in values_array) + if len(values) != len(self.dimensions) or not all(math.isfinite(x) for x in values): + raise NumericalFailure("solve_ivp returned an invalid state shape or NaN/Inf value") + observations = dict(self._observable(time, values, parameters)) + for key, value in observations.items(): + if not isinstance(key, str) or not key: + raise NumericalFailure("observable names must be non-empty strings") + if isinstance(value, int | float) and not isinstance(value, bool): + if not math.isfinite(float(value)): + raise NumericalFailure(f"observable {key!r} is NaN or infinite") + elif not isinstance(value, str): + raise NumericalFailure(f"observable {key!r} must be a finite number or string") + return TracePoint(step=index, time=float(time), state=values, observations=observations) + + def simulate( + self, + initial_state: State, + parameters: Parameters, + config: ModelConfig, + seed: int, + ) -> SimulationTrace: + """Run one public ``solve_ivp`` call and retain its declared evaluation grid.""" + + if len(initial_state) != len(self.dimensions) or not all( + math.isfinite(value) for value in initial_state + ): + raise NumericalFailure("initial state must match state_names and contain finite values") + parameter_snapshot = dict(parameters) + wrappers = tuple(_EventWrapper(event, parameter_snapshot) for event in self.events) + try: + solution: Any = solve_ivp( + self._checked_rhs(parameter_snapshot), + self._t_span, + np.asarray(initial_state, dtype=float), + method=self.method, + t_eval=np.asarray(self._t_eval, dtype=float), + dense_output=self.dense_output, + events=wrappers or None, + vectorized=self.vectorized, + rtol=self.rtol, + atol=np.asarray(self.atol, dtype=float) + if isinstance(self.atol, tuple) + else self.atol, + max_step=np.inf if self.max_step is None else self.max_step, + ) + except NumericalFailure: + raise + except (ArithmeticError, RuntimeError, TypeError, ValueError) as exc: + raise NumericalFailure(f"solve_ivp failed before returning a result: {exc}") from exc + + times = np.asarray(solution.t) + states = np.asarray(solution.y) + if times.ndim != 1 or states.shape != (len(self.dimensions), len(times)): + raise NumericalFailure("solve_ivp returned an invalid trajectory shape") + if not np.isfinite(times).all() or not np.isfinite(states).all(): + raise NumericalFailure("solve_ivp returned NaN or infinite trajectory values") + points = [ + self._point(index, float(time), states[:, index], parameter_snapshot) + for index, time in enumerate(times) + ] + event_evidence: list[dict[str, object]] = [] + terminal_candidates: list[tuple[float, State]] = [] + t_events = solution.t_events or [] + y_events = solution.y_events or [] + for index, spec in enumerate(self.events): + event_times = np.asarray(t_events[index]) + event_states = np.asarray(y_events[index]) + if len(event_times) > MAX_EVENT_POINTS: + raise NumericalFailure( + f"event {spec.name!r} exceeded the bounded event retention limit" + ) + serialized_states: list[list[float]] = [] + serialized_times: list[float] = [] + for event_time, event_state in zip(event_times, event_states, strict=True): + point = self._point(len(points), float(event_time), event_state, parameter_snapshot) + serialized_times.append(point.time) + serialized_states.append(list(point.state)) + terminal_candidates.append((point.time, point.state)) + event_evidence.append( + { + "name": spec.name, + "terminal": spec.terminal, + "direction": float(spec.direction), + "times": serialized_times, + "states": serialized_states, + } + ) + if not points: + raise NumericalFailure("solve_ivp returned no retained evaluation points") + final_state = points[-1].state + termination_time = points[-1].time + if int(solution.status) == 1 and terminal_candidates: + direction = 1.0 if self._t_span[1] > self._t_span[0] else -1.0 + termination_time, final_state = max( + terminal_candidates, key=lambda item: direction * item[0] + ) + if not math.isclose(points[-1].time, termination_time, rel_tol=0.0, abs_tol=1e-15): + points.append( + self._point(len(points), termination_time, final_state, parameter_snapshot) + ) + metadata: dict[str, object] = { + "python_version": platform.python_version(), + "python_implementation": platform.python_implementation(), + "numpy_version": np.__version__, + "scipy_version": scipy.__version__, + "platform": { + "system": platform.system(), + "release": platform.release(), + "machine": platform.machine(), + "architecture_bits": 64 if sys.maxsize > 2**32 else 32, + "byteorder": sys.byteorder, + }, + "solver_method": self.method, + "rtol": self.rtol, + "atol": list(self.atol) if isinstance(self.atol, tuple) else self.atol, + "evaluation_grid": self._grid_configuration, + "maximum_step": self.max_step, + "t_span": list(self._t_span), + "initial_state": list(initial_state), + "parameters": parameter_snapshot, + "event_configuration": [event.as_dict() for event in self.events], + "events": event_evidence, + "solver_success": bool(solution.success), + "solver_status": int(solution.status), + "solver_message": str(solution.message), + "termination_time": termination_time, + "nfev": int(solution.nfev), + "njev": int(solution.njev), + "nlu": int(solution.nlu), + "vectorized": self.vectorized, + "dense_output": self.dense_output, + "seed": seed, + } + return SimulationTrace( + points=tuple(points), + final_state=final_state, + success=bool(solution.success), + status=int(solution.status), + message=str(solution.message), + metadata=metadata, + ) + + def observe(self, trace: SimulationTrace) -> Mapping[str, Scalar]: + """Return the final retained point's observables.""" + + return dict(trace.points[-1].observations) + + def classify(self, trace: SimulationTrace, tolerances: Tolerances) -> str: + """Delegate qualitative interpretation to the declared callback.""" + + result = self._classifier(trace, tolerances) + if not isinstance(result, str) or not result: + raise NumericalFailure("classifier must return a non-empty string") + return result + + def invariants( + self, + trace: SimulationTrace, + parameters: Parameters, + tolerances: Tolerances, + ) -> list[InvariantResult]: + """Delegate invariant evaluation to the declared callback.""" + + return list(self._invariant(trace, parameters, tolerances)) + + +__all__ = ["SUPPORTED_METHODS", "EventSpec", "SolveIVPAdapter"] diff --git a/src/phaseprobe/api.py b/src/phaseprobe/api.py new file mode 100644 index 0000000..3d224e1 --- /dev/null +++ b/src/phaseprobe/api.py @@ -0,0 +1,64 @@ +"""Practical Python API for supplied step-level or trajectory-level adapters.""" + +from __future__ import annotations + +from collections.abc import Mapping + +from phaseprobe.config import CONFIG_SCHEMA_VERSION, ProbeConfig, canonical_json, parse_config +from phaseprobe.engine import ( + Adapter, + ProbeOutcome, + SimulationResult, + run_check, + run_perturb, + run_scan, + simulate, +) + + +def _coerce_config(adapter: Adapter, config: ProbeConfig | Mapping[str, object]) -> ProbeConfig: + if isinstance(config, ProbeConfig): + return config + data = dict(config) + data.setdefault("schema_version", CONFIG_SCHEMA_VERSION) + data.setdefault("model", adapter.name) + data.setdefault("seed", 0) + return parse_config(canonical_json(data), "Python API configuration") + + +def run_simulation( + adapter: Adapter, config: ProbeConfig | Mapping[str, object] +) -> SimulationResult: + """Run one supplied adapter without registering it globally.""" + + return simulate(_coerce_config(adapter, config), adapter=adapter) + + +def run_parameter_scan( + adapter: Adapter, config: ProbeConfig | Mapping[str, object] +) -> ProbeOutcome: + """Run the shared bounded one-dimensional scan with a supplied adapter.""" + + return run_scan(_coerce_config(adapter, config), adapter=adapter) + + +def run_perturbation(adapter: Adapter, config: ProbeConfig | Mapping[str, object]) -> ProbeOutcome: + """Run the shared bounded initial-state perturbation search.""" + + return run_perturb(_coerce_config(adapter, config), adapter=adapter) + + +def run_invariant_check( + adapter: Adapter, config: ProbeConfig | Mapping[str, object] +) -> ProbeOutcome: + """Run the shared declared CI policy and invariant evaluation.""" + + return run_check(_coerce_config(adapter, config), adapter=adapter) + + +__all__ = [ + "run_invariant_check", + "run_parameter_scan", + "run_perturbation", + "run_simulation", +] diff --git a/src/phaseprobe/artifacts.py b/src/phaseprobe/artifacts.py index 7932879..de80949 100644 --- a/src/phaseprobe/artifacts.py +++ b/src/phaseprobe/artifacts.py @@ -74,7 +74,7 @@ def write_artifacts(outcome: ProbeOutcome, output_root: Path) -> ArtifactBundle: findings_json.write_text( json.dumps( { - "schema_version": "1.0", + "schema_version": "2.0", "status": outcome.status, "finding": dict(outcome.finding) if outcome.finding is not None else None, "reproducible": outcome.reproducible, @@ -98,7 +98,7 @@ def write_artifacts(outcome: ProbeOutcome, output_root: Path) -> ArtifactBundle: files = [run_json, findings_json, replay_json, trace_jsonl, report_html] manifest = { - "schema_version": "1.0", + "schema_version": "2.0", "run_id": run_directory.name, "bounded_trace": { "baseline_points": len(outcome.baseline.trace), diff --git a/src/phaseprobe/cli.py b/src/phaseprobe/cli.py index f705243..c79df98 100644 --- a/src/phaseprobe/cli.py +++ b/src/phaseprobe/cli.py @@ -44,7 +44,7 @@ def build_parser() -> argparse.ArgumentParser: parser = argparse.ArgumentParser( prog="phaseprobe", - description="Find bounded simulation transitions and turn them into deterministic tests.", + description="Find bounded simulation transitions and turn them into regression tests.", ) parser.add_argument("--version", action="version", version=f"phaseprobe {__version__}") commands = parser.add_subparsers(dest="command", required=True) @@ -144,12 +144,20 @@ def _replay_command(args: argparse.Namespace) -> int: print(str(data["status"])) print() print(f"Model: {verification.model}") + print(f"Comparison mode: {verification.mode}") for comparison in verification.comparisons: - print( - f"{comparison['series']}: classification={comparison['classification_match']}, " - f"trace-hash={comparison['trace_hash_match']}, " - f"model-identity={comparison['model_identity_match']}" - ) + if verification.mode == "exact": + print( + f"{comparison['series']}: classification=" + f"{comparison['classification_match']}, " + f"trace-hash={comparison['trace_hash_match']}, " + f"model-identity={comparison['model_identity_match']}" + ) + else: + matched = all( + value is True for key, value in comparison.items() if key.endswith("_match") + ) + print(f"{comparison['series']}: declared tolerances={matched}") return int(ExitCode.OK if verification.ok else ExitCode.POLICY_FAILED) @@ -160,7 +168,7 @@ def _generate_command(args: argparse.Namespace) -> int: raise ConfigurationError("fixture and output directory must be paths") generated = generate_regression_test(fixture, output_directory) data: dict[str, object] = { - "schema_version": "1.0", + "schema_version": "2.0", "status": "PYTEST REGRESSION GENERATED", "test": str(generated.test_path), "fixture": str(generated.fixture_path), diff --git a/src/phaseprobe/config.py b/src/phaseprobe/config.py index e852354..585eb80 100644 --- a/src/phaseprobe/config.py +++ b/src/phaseprobe/config.py @@ -3,6 +3,7 @@ from __future__ import annotations import json +import re from collections.abc import Mapping from dataclasses import dataclass from importlib import resources @@ -11,7 +12,10 @@ from phaseprobe.errors import ConfigurationError -CONFIG_SCHEMA_VERSION = "1.0" +CONFIG_SCHEMA_VERSION = "2.0" +SUPPORTED_CONFIG_SCHEMA_VERSIONS = frozenset({"1.0", CONFIG_SCHEMA_VERSION}) +_DOTTED_MODULE = re.compile(r"^[A-Za-z_]\w*(?:\.[A-Za-z_]\w*)*$") +_IDENTIFIER = re.compile(r"^[A-Za-z_]\w*$") def canonical_json(value: object) -> str: @@ -71,13 +75,26 @@ def parse_config(text: str, source: str) -> ProbeConfig: raise ConfigurationError(f"invalid JSON in {source}: {exc}") from exc data = _as_object(parsed, source) version = data.get("schema_version") - if version != CONFIG_SCHEMA_VERSION: + if version not in SUPPORTED_CONFIG_SCHEMA_VERSIONS: raise ConfigurationError( - f"unsupported configuration schema {version!r}; expected {CONFIG_SCHEMA_VERSION!r}" + f"unsupported configuration schema {version!r}; supported versions are " + f"{sorted(SUPPORTED_CONFIG_SCHEMA_VERSIONS)!r}" ) config = ProbeConfig(data=data, source=source) _ = config.model _ = config.seed + adapter = data.get("adapter") + if adapter is not None: + values = _as_object(adapter, "adapter") + kind = values.get("kind") + module = values.get("module") + factory = values.get("factory") + if kind != "python": + raise ConfigurationError("adapter.kind must be 'python'") + if not isinstance(module, str) or _DOTTED_MODULE.fullmatch(module) is None: + raise ConfigurationError("adapter.module must be an absolute dotted Python module name") + if not isinstance(factory, str) or _IDENTIFIER.fullmatch(factory) is None: + raise ConfigurationError("adapter.factory must be a Python identifier") return config diff --git a/src/phaseprobe/engine.py b/src/phaseprobe/engine.py index 72c5463..99fc093 100644 --- a/src/phaseprobe/engine.py +++ b/src/phaseprobe/engine.py @@ -8,10 +8,20 @@ from collections.abc import Mapping, Sequence from dataclasses import dataclass +from phaseprobe.adapters.loader import load_configured_adapter from phaseprobe.config import ProbeConfig, canonical_json from phaseprobe.errors import ConfigurationError, NumericalFailure from phaseprobe.models import get_model -from phaseprobe.types import InvariantResult, ModelAdapter, State, TracePoint +from phaseprobe.types import ( + InvariantResult, + ModelAdapter, + SimulationTrace, + State, + TracePoint, + TrajectoryAdapter, +) + +Adapter = ModelAdapter | TrajectoryAdapter def _number(values: Mapping[str, object], name: str, default: float | None = None) -> float: @@ -99,6 +109,33 @@ def as_dict(self) -> dict[str, object]: } +@dataclass(frozen=True, slots=True) +class TrajectorySettings: + """Engine-owned bounds for one trajectory-level adapter execution.""" + + trace_cap: int + hard_state_limit: float + + @classmethod + def from_config(cls, values: Mapping[str, object]) -> TrajectorySettings: + settings = cls( + trace_cap=_integer(values, "trace_cap", 2048), + hard_state_limit=_number(values, "hard_state_limit", 1e100), + ) + if settings.trace_cap < 16 or settings.trace_cap > 100_000: + raise ConfigurationError("simulation trace_cap must be between 16 and 100000") + if settings.hard_state_limit <= 0.0: + raise ConfigurationError("simulation hard_state_limit must be positive") + return settings + + def as_dict(self) -> dict[str, object]: + return { + "mode": "trajectory", + "trace_cap": self.trace_cap, + "hard_state_limit": self.hard_state_limit, + } + + def _invariant_dict(result: InvariantResult) -> dict[str, object]: return { "name": result.name, @@ -127,7 +164,7 @@ def trace_hash(trace: Sequence[TracePoint]) -> str: @dataclass(frozen=True, slots=True) class SimulationResult: - """One bounded deterministic execution.""" + """One bounded step-level or trajectory-level execution.""" model: str model_identity: str @@ -135,12 +172,15 @@ class SimulationResult: parameters: Mapping[str, float] initial_state: State final_state: State - settings: SimulationSettings + settings: SimulationSettings | TrajectorySettings tolerances: Mapping[str, float] classification: str invariants: tuple[InvariantResult, ...] + observations: Mapping[str, object] trace: tuple[TracePoint, ...] trace_sha256: str + replay_mode: str + execution_metadata: Mapping[str, object] @property def invariant_violations(self) -> int: @@ -159,8 +199,11 @@ def as_dict(self, *, include_trace: bool = False) -> dict[str, object]: "classification": self.classification, "invariants": [_invariant_dict(result) for result in self.invariants], "invariant_violations": self.invariant_violations, + "observations": dict(self.observations), "trace_points_retained": len(self.trace), "trace_sha256": self.trace_sha256, + "replay_mode": self.replay_mode, + "execution_metadata": dict(self.execution_metadata), } if include_trace: payload["trace"] = [_point_dict(point) for point in self.trace] @@ -183,7 +226,7 @@ class ProbeOutcome: def as_dict(self) -> dict[str, object]: return { - "schema_version": "1.0", + "schema_version": "2.0", "command": self.command, "status": self.status, "model": self.baseline.model, @@ -199,7 +242,10 @@ def as_dict(self) -> dict[str, object]: def _validate_state( - model: ModelAdapter, state: State, settings: SimulationSettings, step: int + model: Adapter, + state: State, + settings: SimulationSettings | TrajectorySettings, + step: int, ) -> None: if len(state) != len(model.dimensions): raise NumericalFailure( @@ -217,20 +263,95 @@ def _validate_state( ) +def _resolve_adapter(config: ProbeConfig, adapter: Adapter | None) -> Adapter: + if adapter is not None: + if not isinstance(adapter, ModelAdapter | TrajectoryAdapter): + raise ConfigurationError("adapter does not implement a PhaseProbe protocol") + if adapter.name != config.model: + raise ConfigurationError( + f"adapter name {adapter.name!r} does not match model {config.model!r}" + ) + return adapter + try: + return get_model(config.model) + except ConfigurationError: + if "adapter" not in config.data: + raise + return load_configured_adapter(config) + + +def _validate_trace_points( + model: Adapter, + trace: SimulationTrace, + settings: TrajectorySettings, +) -> None: + if not trace.points: + raise NumericalFailure("trajectory adapter returned an empty trace") + direction = 0 + previous_time: float | None = None + for point in trace.points: + if not math.isfinite(point.time): + raise NumericalFailure("trajectory adapter returned a NaN or infinite time") + _validate_state(model, point.state, settings, point.step) + for name, value in point.observations.items(): + if not isinstance(name, str) or not name: + raise NumericalFailure("trajectory observable names must be non-empty strings") + if isinstance(value, int | float) and not isinstance(value, bool): + if not math.isfinite(float(value)): + raise NumericalFailure(f"trajectory observable {name!r} is NaN or infinite") + elif not isinstance(value, str): + raise NumericalFailure( + f"trajectory observable {name!r} must be a finite number or string" + ) + if previous_time is not None: + delta = point.time - previous_time + if delta == 0.0: + raise NumericalFailure("trajectory retained duplicate time points") + this_direction = 1 if delta > 0.0 else -1 + if direction == 0: + direction = this_direction + elif direction != this_direction: + raise NumericalFailure("trajectory retained times are not monotonic") + previous_time = point.time + _validate_state(model, trace.final_state, settings, trace.points[-1].step) + + +def _bounded_trace(trace: SimulationTrace, cap: int) -> SimulationTrace: + if len(trace.points) <= cap: + return trace + last = len(trace.points) - 1 + indices = tuple(round(index * last / (cap - 1)) for index in range(cap)) + points = tuple(trace.points[index] for index in indices) + metadata = dict(trace.metadata) + metadata["retention"] = { + "points_produced": len(trace.points), + "points_retained": len(points), + "strategy": "uniform-in-index-with-endpoints", + } + return SimulationTrace( + points=points, + final_state=trace.final_state, + success=trace.success, + status=trace.status, + message=trace.message, + metadata=metadata, + ) + + def simulate( config: ProbeConfig, *, parameters_override: Mapping[str, float] | None = None, initial_override: State | None = None, + adapter: Adapter | None = None, ) -> SimulationResult: """Execute one model with explicit seed, parameters, retention, and tolerances.""" - model = get_model(config.model) + model = _resolve_adapter(config, adapter) parameters = _numeric_mapping(config.section("parameters"), "parameters") if parameters_override is not None: parameters.update(parameters_override) tolerances = _numeric_mapping(config.section("tolerances", required=False), "tolerances") - settings = SimulationSettings.from_config(config.section("simulation")) model_config = config.section("model_config", required=False) state = ( initial_override @@ -238,6 +359,45 @@ def simulate( else model.initial_state(model_config, config.seed) ) initial = tuple(state) + if isinstance(model, TrajectoryAdapter): + trajectory_settings = TrajectorySettings.from_config(config.section("simulation")) + _validate_state(model, initial, trajectory_settings, 0) + try: + raw_trace = model.simulate(initial, parameters, model_config, config.seed) + except NumericalFailure: + raise + except (ArithmeticError, RuntimeError, TypeError, ValueError) as exc: + raise NumericalFailure(f"trajectory solver failure: {exc}") from exc + _validate_trace_points(model, raw_trace, trajectory_settings) + if not raw_trace.success: + raise NumericalFailure( + f"solver failure with status {raw_trace.status}: {raw_trace.message}" + ) + bounded = _bounded_trace(raw_trace, trajectory_settings.trace_cap) + classification = model.classify(bounded, tolerances) + invariants = tuple(model.invariants(bounded, parameters, tolerances)) + observations = dict(model.observe(bounded)) + execution_metadata = dict(bounded.metadata) + execution_metadata["adapter_configuration"] = dict(model.configuration()) + return SimulationResult( + model=model.name, + model_identity=model.identity, + seed=config.seed, + parameters=parameters, + initial_state=initial, + final_state=bounded.final_state, + settings=trajectory_settings, + tolerances=tolerances, + classification=classification, + invariants=invariants, + observations=observations, + trace=bounded.points, + trace_sha256=trace_hash(bounded.points), + replay_mode=model.replay_mode, + execution_metadata=execution_metadata, + ) + + settings = SimulationSettings.from_config(config.section("simulation")) _validate_state(model, initial, settings, 0) retained: deque[TracePoint] = deque(maxlen=settings.trace_cap) total_steps = settings.burn_in + settings.steps @@ -272,8 +432,11 @@ def simulate( tolerances=tolerances, classification=classification, invariants=invariants, + observations=dict(trace[-1].observations), trace=trace, trace_sha256=trace_hash(trace), + replay_mode="exact", + execution_metadata={"execution_kind": "step", "solver_success": True}, ) @@ -291,7 +454,7 @@ def _logspace(start: float, stop: float, points: int) -> list[float]: return [math.exp(value) for value in _linspace(log_start, log_stop, points)] -def run_scan(config: ProbeConfig) -> ProbeOutcome: +def run_scan(config: ProbeConfig, *, adapter: Adapter | None = None) -> ProbeOutcome: """Scan a one-dimensional parameter and refine the first adjacent class change.""" scan = config.section("scan") @@ -308,7 +471,7 @@ def run_scan(config: ProbeConfig) -> ProbeOutcome: runs: list[SimulationResult] = [] values = _linspace(start, stop, points) for value in values: - run = simulate(config, parameters_override={parameter_name: value}) + run = simulate(config, parameters_override={parameter_name: value}, adapter=adapter) runs.append(run) history.append({"phase": "coarse", "value": value, "classification": run.classification}) @@ -340,7 +503,9 @@ def run_scan(config: ProbeConfig) -> ProbeOutcome: unresolved_midpoint: float | None = None for _ in range(refinements): midpoint = (low + high) / 2.0 - midpoint_run = simulate(config, parameters_override={parameter_name: midpoint}) + midpoint_run = simulate( + config, parameters_override={parameter_name: midpoint}, adapter=adapter + ) history.append( { "phase": "refine", @@ -375,7 +540,9 @@ def run_scan(config: ProbeConfig) -> ProbeOutcome: classes: list[str] = [] for _ in range(repeatability): value = low if side == "baseline" else high - confirmed = simulate(config, parameters_override={parameter_name: value}) + confirmed = simulate( + config, parameters_override={parameter_name: value}, adapter=adapter + ) hashes.append(confirmed.trace_sha256) classes.append(confirmed.classification) stable = len(set(hashes)) == 1 and len(set(classes)) == 1 @@ -425,7 +592,9 @@ def _pair_metrics( distances = [_distance(a.state, b.state) for a, b in zip(left, right, strict=False)] max_index = max(range(count), key=distances.__getitem__) max_distance = distances[max_index] - elapsed = max(right[max_index].time - right[0].time, changed.settings.dt) + elapsed = abs(right[max_index].time - right[0].time) + if elapsed == 0.0: + elapsed = 1.0 initial_separation = abs(delta) rate: float | None = None if initial_separation > 0.0 and max_distance > 0.0: @@ -439,11 +608,11 @@ def _pair_metrics( } -def run_perturb(config: ProbeConfig) -> ProbeOutcome: +def run_perturb(config: ProbeConfig, *, adapter: Adapter | None = None) -> ProbeOutcome: """Search bounded initial-state perturbations using a deterministic predicate.""" search = config.section("perturb") - model = get_model(config.model) + model = _resolve_adapter(config, adapter) dimension = _string(search, "dimension") try: dimension_index = model.dimensions.index(dimension) @@ -473,7 +642,7 @@ def run_perturb(config: ProbeConfig) -> ProbeOutcome: if scale not in {"linear", "log"}: raise ConfigurationError("perturb scale must be linear or log") - baseline = simulate(config) + baseline = simulate(config, adapter=model) initial = baseline.initial_state history: list[Mapping[str, object]] = [] previous_delta = 0.0 @@ -485,7 +654,7 @@ def run_perturb(config: ProbeConfig) -> ProbeOutcome: def evaluate(delta: float, phase: str) -> tuple[bool, SimulationResult, dict[str, object]]: candidate_state = list(initial) candidate_state[dimension_index] += delta - changed = simulate(config, initial_override=tuple(candidate_state)) + changed = simulate(config, initial_override=tuple(candidate_state), adapter=model) metrics = _pair_metrics(baseline, changed, delta) if predicate == "classification-change": triggered = ( @@ -587,7 +756,7 @@ def evaluate(delta: float, phase: str) -> tuple[bool, SimulationResult, dict[str ) -def run_check(config: ProbeConfig) -> ProbeOutcome: +def run_check(config: ProbeConfig, *, adapter: Adapter | None = None) -> ProbeOutcome: """Execute a declared CI policy and mark only policy violations as failure.""" check = config.section("check") @@ -598,11 +767,11 @@ def run_check(config: ProbeConfig) -> ProbeOutcome: require_invariants = _boolean(policy, "require_invariants", True) if analysis == "scan": - outcome = run_scan(config) + outcome = run_scan(config, adapter=adapter) elif analysis == "perturb": - outcome = run_perturb(config) + outcome = run_perturb(config, adapter=adapter) elif analysis == "invariants": - baseline = simulate(config) + baseline = simulate(config, adapter=adapter) violations = [_invariant_dict(item) for item in baseline.invariants if not item.passed] finding: Mapping[str, object] | None = None if violations: diff --git a/src/phaseprobe/examples/__init__.py b/src/phaseprobe/examples/__init__.py new file mode 100644 index 0000000..827fc3f --- /dev/null +++ b/src/phaseprobe/examples/__init__.py @@ -0,0 +1 @@ +"""Reference model definitions used by reproducible optional-dependency examples.""" diff --git a/src/phaseprobe/examples/scipy_models.py b/src/phaseprobe/examples/scipy_models.py new file mode 100644 index 0000000..276a944 --- /dev/null +++ b/src/phaseprobe/examples/scipy_models.py @@ -0,0 +1,151 @@ +"""Genuine SciPy-backed Lorenz and Lotka-Volterra reference adapters.""" + +from __future__ import annotations + +import math +from collections.abc import Mapping + +import numpy as np +import numpy.typing as npt + +from phaseprobe.adapters.scipy import SolveIVPAdapter +from phaseprobe.types import ( + InvariantResult, + Parameters, + Scalar, + SimulationTrace, + State, + Tolerances, +) + +FloatArray = npt.NDArray[np.float64] + + +def lorenz_rhs(time: float, state: FloatArray, parameters: Parameters) -> tuple[float, ...]: + """Classic Lorenz equations; time is accepted by the solve_ivp contract.""" + + x, y, z = state + sigma = parameters["sigma"] + rho = parameters["rho"] + beta = parameters["beta"] + return (sigma * (y - x), x * (rho - z) - y, x * y - beta * z) + + +def lorenz_observable(time: float, state: State, parameters: Parameters) -> Mapping[str, Scalar]: + x, y, z = state + return {"x": x, "y": y, "z": z, "radius": math.sqrt(x * x + y * y + z * z)} + + +def lorenz_classifier(trace: SimulationTrace, tolerances: Tolerances) -> str: + bound = tolerances.get("state_bound", 100.0) + maximum = max(abs(value) for point in trace.points for value in point.state) + return "bounded-finite-window" if maximum <= bound else "declared-bound-exceeded" + + +def lorenz_invariants( + trace: SimulationTrace, parameters: Parameters, tolerances: Tolerances +) -> list[InvariantResult]: + bound = tolerances.get("state_bound", 100.0) + maximum = max(abs(value) for point in trace.points for value in point.state) + return [ + InvariantResult( + name="declared-state-bound", + passed=maximum <= bound, + measured=maximum, + tolerance=bound, + detail="Maximum absolute state over the declared finite observation window.", + ) + ] + + +def lorenz_adapter(values: Mapping[str, object]) -> SolveIVPAdapter: + """Factory named by the explicit CLI configuration.""" + + return SolveIVPAdapter.from_config( + name="lorenz-scipy", + rhs=lorenz_rhs, + values=values, + observable=lorenz_observable, + classifier=lorenz_classifier, + invariant=lorenz_invariants, + ) + + +def predator_prey_rhs(time: float, state: FloatArray, parameters: Parameters) -> tuple[float, ...]: + prey, predator = state + alpha = parameters["alpha"] + beta = parameters["beta"] + delta = parameters["delta"] + gamma = parameters["gamma"] + return ( + alpha * prey - beta * prey * predator, + delta * prey * predator - gamma * predator, + ) + + +def _first_integral(state: State, parameters: Parameters) -> float: + prey, predator = state + if prey <= 0.0 or predator <= 0.0: + return math.inf + return ( + parameters["delta"] * prey + - parameters["gamma"] * math.log(prey) + + parameters["beta"] * predator + - parameters["alpha"] * math.log(predator) + ) + + +def predator_prey_observable( + time: float, state: State, parameters: Parameters +) -> Mapping[str, Scalar]: + return { + "prey": state[0], + "predator": state[1], + "first_integral": _first_integral(state, parameters), + } + + +def predator_prey_classifier(trace: SimulationTrace, tolerances: Tolerances) -> str: + positive = all(point.state[0] > 0.0 and point.state[1] > 0.0 for point in trace.points) + return "positive-oscillation" if positive else "non-positive-population" + + +def predator_prey_invariants( + trace: SimulationTrace, parameters: Parameters, tolerances: Tolerances +) -> list[InvariantResult]: + threshold = tolerances.get("invariant_drift", 1e-8) + reference = _first_integral(trace.points[0].state, parameters) + drift = max(abs(_first_integral(point.state, parameters) - reference) for point in trace.points) + minimum_population = min(value for point in trace.points for value in point.state) + return [ + InvariantResult( + name="lotka-volterra-first-integral-drift", + passed=math.isfinite(drift) and drift <= threshold, + measured=drift, + tolerance=threshold, + detail="Maximum absolute drift of the declared Lotka-Volterra first integral.", + ), + InvariantResult( + name="positive-populations", + passed=minimum_population > 0.0, + measured=minimum_population, + tolerance=0.0, + detail="Minimum retained population; the policy requires a value strictly above zero.", + ), + ] + + +def predator_prey_adapter(values: Mapping[str, object]) -> SolveIVPAdapter: + """Factory named by the explicit CLI configuration.""" + + return SolveIVPAdapter.from_config( + name="predator-prey-scipy", + rhs=predator_prey_rhs, + values=values, + observable=predator_prey_observable, + classifier=predator_prey_classifier, + invariant=predator_prey_invariants, + ) + + +__all__ = ["lorenz_adapter", "predator_prey_adapter"] diff --git a/src/phaseprobe/generate.py b/src/phaseprobe/generate.py index 2398f83..5b03a3b 100644 --- a/src/phaseprobe/generate.py +++ b/src/phaseprobe/generate.py @@ -39,17 +39,32 @@ def generate_regression_test(fixture: Path, output_directory: Path) -> Generated copied_fixture = fixture_directory / f"{model_name}-replay.json" shutil.copyfile(fixture, copied_fixture) test_path = output_directory / f"test_{model_name}_transition.py" + baseline = payload.get("baseline") + metadata = baseline.get("execution_metadata") if isinstance(baseline, dict) else None + adapter_configuration = ( + metadata.get("adapter_configuration") if isinstance(metadata, dict) else None + ) + scipy_backed = ( + isinstance(adapter_configuration, dict) + and adapter_configuration.get("adapter") == "scipy.solve_ivp" + ) + scipy_import = "import pytest\n" if scipy_backed else "" + scipy_guard = ( + '\npytest.importorskip("scipy")\npytestmark = pytest.mark.scipy\n' if scipy_backed else "" + ) source = f'''"""Generated by PhaseProbe from a validated replay fixture.""" from pathlib import Path +{scipy_import} from phaseprobe.replay import verify_replay +{scipy_guard} FIXTURE = Path(__file__).parent / "fixtures" / "{model_name}-replay.json" def test_{model_name}_transition_replays() -> None: - """Re-execute model/config/seed and verify class and exact retained trace hashes.""" + """Re-execute model/config/seed and verify the fixture's declared replay policy.""" result = verify_replay(FIXTURE) assert result.ok, result.as_dict() ''' diff --git a/src/phaseprobe/replay.py b/src/phaseprobe/replay.py index e2c9061..f7edb12 100644 --- a/src/phaseprobe/replay.py +++ b/src/phaseprobe/replay.py @@ -1,35 +1,130 @@ -"""Versioned replay fixtures, integrity validation, and deterministic re-execution.""" +"""Versioned exact/tolerance replay with integrity-protected evidence.""" from __future__ import annotations import hashlib import json -from collections.abc import Mapping +import math +from collections.abc import Mapping, Sequence from dataclasses import dataclass from pathlib import Path from typing import Any, cast from phaseprobe import __version__ -from phaseprobe.config import canonical_json, parse_config +from phaseprobe.config import ProbeConfig, canonical_json, parse_config from phaseprobe.engine import ProbeOutcome, SimulationResult, simulate from phaseprobe.errors import ConfigurationError, IntegrityError +from phaseprobe.types import InvariantResult, TracePoint -REPLAY_SCHEMA_VERSION = "1.0" +REPLAY_SCHEMA_VERSION = "2.0" +SUPPORTED_REPLAY_SCHEMA_VERSIONS = frozenset({"1.0", REPLAY_SCHEMA_VERSION}) -def _execution_payload(result: SimulationResult) -> dict[str, object]: +def _invariant_payload(result: InvariantResult) -> dict[str, object]: return { + "name": result.name, + "passed": result.passed, + "measured": result.measured, + "tolerance": result.tolerance, + "detail": result.detail, + } + + +def _point_payload(point: TracePoint) -> dict[str, object]: + return { + "step": point.step, + "time": point.time, + "state": list(point.state), + "observations": dict(point.observations), + } + + +def _execution_payload(result: SimulationResult) -> dict[str, object]: + payload: dict[str, object] = { "parameters": dict(result.parameters), "initial_state": list(result.initial_state), + "final_state": list(result.final_state), "classification": result.classification, + "observations": dict(result.observations), + "invariants": [_invariant_payload(item) for item in result.invariants], "trace_sha256": result.trace_sha256, "invariant_violations": result.invariant_violations, + "solver_success": bool(result.execution_metadata.get("solver_success", True)), + "execution_metadata": dict(result.execution_metadata), + } + if result.replay_mode == "tolerance": + payload["trace"] = [_point_payload(point) for point in result.trace] + return payload + + +def _number(values: Mapping[str, object], name: str) -> float: + raw = values.get(name) + if not isinstance(raw, int | float) or isinstance(raw, bool): + raise ConfigurationError(f"replay.{name} must be numeric") + result = float(raw) + if not math.isfinite(result) or result < 0.0: + raise ConfigurationError(f"replay.{name} must be finite and non-negative") + return result + + +def _tolerance_policy(config: ProbeConfig) -> dict[str, object]: + values = config.section("replay") + if values.get("mode") != "tolerance": + raise ConfigurationError( + "trajectory adapters require replay.mode='tolerance'; exact adaptive replay is not claimed" + ) + observable_raw = values.get("observable_atol") + if not isinstance(observable_raw, dict): + raise ConfigurationError("replay.observable_atol must be an object") + observable_atol: dict[str, float] = {} + for name, raw in observable_raw.items(): + if not isinstance(raw, int | float) or isinstance(raw, bool): + raise ConfigurationError(f"replay.observable_atol.{name} must be numeric") + parsed = float(raw) + if not math.isfinite(parsed) or parsed < 0.0: + raise ConfigurationError( + f"replay.observable_atol.{name} must be finite and non-negative" + ) + observable_atol[name] = parsed + max_unmatched = values.get("max_unmatched_points") + if not isinstance(max_unmatched, int) or isinstance(max_unmatched, bool) or max_unmatched < 0: + raise ConfigurationError("replay.max_unmatched_points must be a non-negative integer") + expected_success = values.get("expected_solver_success") + require_classifier = values.get("require_classifier") + require_invariants = values.get("require_invariants") + if not all( + isinstance(item, bool) + for item in (expected_success, require_classifier, require_invariants) + ): + raise ConfigurationError( + "replay expected_solver_success, require_classifier, and require_invariants must be booleans" + ) + return { + "mode": "tolerance", + "state_atol": _number(values, "state_atol"), + "state_rtol": _number(values, "state_rtol"), + "observable_atol": observable_atol, + "invariant_measure_atol": _number(values, "invariant_measure_atol"), + "endpoint_time_atol": _number(values, "endpoint_time_atol"), + "event_time_atol": _number(values, "event_time_atol"), + "retained_grid_time_atol": _number(values, "retained_grid_time_atol"), + "max_unmatched_points": max_unmatched, + "expected_solver_success": expected_success, + "require_classifier": require_classifier, + "require_invariants": require_invariants, } def fixture_payload(outcome: ProbeOutcome) -> dict[str, object]: """Create an integrity-protected replay fixture from validated evidence.""" + modes = {outcome.baseline.replay_mode} + if outcome.changed is not None: + modes.add(outcome.changed.replay_mode) + if len(modes) != 1: + raise ConfigurationError("baseline and changed executions use different replay modes") + mode = next(iter(modes)) + comparison = {"mode": "exact"} if mode == "exact" else _tolerance_policy(outcome.config) payload: dict[str, object] = { "schema_version": REPLAY_SCHEMA_VERSION, "created_by": f"phaseprobe {__version__}", @@ -37,6 +132,7 @@ def fixture_payload(outcome: ProbeOutcome) -> dict[str, object]: "model_identity": outcome.baseline.model_identity, "seed": outcome.baseline.seed, "configuration": dict(outcome.config.data), + "comparison": comparison, "baseline": _execution_payload(outcome.baseline), "changed": _execution_payload(outcome.changed) if outcome.changed is not None else None, "finding": dict(outcome.finding) if outcome.finding is not None else None, @@ -60,13 +156,14 @@ def _load_fixture(path: Path) -> dict[str, object]: def validate_fixture(path: Path) -> dict[str, object]: - """Validate replay schema and SHA-256 integrity before any execution.""" + """Validate a v1 exact or v2 exact/tolerance fixture before execution.""" payload = _load_fixture(path) - if payload.get("schema_version") != REPLAY_SCHEMA_VERSION: + version = payload.get("schema_version") + if version not in SUPPORTED_REPLAY_SCHEMA_VERSIONS: raise IntegrityError( - f"unsupported replay schema {payload.get('schema_version')!r}; " - f"expected {REPLAY_SCHEMA_VERSION!r}" + f"unsupported replay schema {version!r}; supported versions are " + f"{sorted(SUPPORTED_REPLAY_SCHEMA_VERSIONS)!r}" ) expected = payload.get("integrity_sha256") if not isinstance(expected, str): @@ -87,6 +184,12 @@ def _mapping(value: object, context: str) -> Mapping[str, object]: return cast(Mapping[str, object], value) +def _sequence(value: object, context: str) -> Sequence[object]: + if not isinstance(value, list): + raise IntegrityError(f"replay {context} must be an array") + return cast(Sequence[object], value) + + def _float_mapping(value: object, context: str) -> dict[str, float]: values = _mapping(value, context) result: dict[str, float] = {} @@ -98,21 +201,217 @@ def _float_mapping(value: object, context: str) -> dict[str, float]: def _state(value: object, context: str) -> tuple[float, ...]: - if not isinstance(value, list): - raise IntegrityError(f"replay {context} must be an array") + raw_values = _sequence(value, context) state: list[float] = [] - for raw in value: + for raw in raw_values: if not isinstance(raw, int | float) or isinstance(raw, bool): raise IntegrityError(f"replay {context} contains a non-number") state.append(float(raw)) return tuple(state) +def _policy_number(policy: Mapping[str, object], name: str) -> float: + raw = policy.get(name) + if not isinstance(raw, int | float) or isinstance(raw, bool): + raise IntegrityError(f"replay comparison.{name} must be numeric") + result = float(raw) + if not math.isfinite(result) or result < 0.0: + raise IntegrityError(f"replay comparison.{name} must be finite and non-negative") + return result + + +def _close(left: float, right: float, *, atol: float, rtol: float) -> bool: + return math.isclose(left, right, abs_tol=atol, rel_tol=rtol) + + +def _observations_match( + expected: object, + actual: Mapping[str, object], + policy: Mapping[str, object], +) -> bool: + expected_values = _mapping(expected, "trace observations") + tolerances = _mapping(policy.get("observable_atol"), "comparison.observable_atol") + if set(expected_values) != set(actual): + return False + default_atol = _policy_number(policy, "state_atol") + rtol = _policy_number(policy, "state_rtol") + for name, expected_value in expected_values.items(): + actual_value = actual[name] + if isinstance(expected_value, int | float) and not isinstance(expected_value, bool): + if not isinstance(actual_value, int | float) or isinstance(actual_value, bool): + return False + configured = tolerances.get(name, default_atol) + if not isinstance(configured, int | float) or isinstance(configured, bool): + raise IntegrityError(f"replay observable tolerance for {name!r} is not numeric") + if not _close( + float(expected_value), float(actual_value), atol=float(configured), rtol=rtol + ): + return False + elif expected_value != actual_value: + return False + return True + + +def _invariants_match( + expected: object, actual: tuple[InvariantResult, ...], policy: Mapping[str, object] +) -> tuple[bool, bool]: + expected_items = _sequence(expected, "invariants") + if len(expected_items) != len(actual): + return False, False + outcome_match = True + threshold_match = True + atol = _policy_number(policy, "invariant_measure_atol") + rtol = _policy_number(policy, "state_rtol") + for raw, observed in zip(expected_items, actual, strict=True): + item = _mapping(raw, "invariant") + outcome_match = outcome_match and item.get("name") == observed.name + outcome_match = outcome_match and item.get("passed") is observed.passed + measured = item.get("measured") + tolerance = item.get("tolerance") + if not isinstance(measured, int | float) or isinstance(measured, bool): + raise IntegrityError("replay invariant measured value must be numeric") + if not isinstance(tolerance, int | float) or isinstance(tolerance, bool): + raise IntegrityError("replay invariant tolerance must be numeric") + outcome_match = outcome_match and _close( + float(measured), observed.measured, atol=atol, rtol=rtol + ) + threshold_match = threshold_match and float(tolerance) == observed.tolerance + return outcome_match, threshold_match + + +def _event_match( + expected_metadata: Mapping[str, object], + actual_metadata: Mapping[str, object], + policy: Mapping[str, object], +) -> bool: + expected_events = _sequence(expected_metadata.get("events", []), "execution events") + actual_events = _sequence(actual_metadata.get("events", []), "actual execution events") + if len(expected_events) != len(actual_events): + return False + time_atol = _policy_number(policy, "event_time_atol") + state_atol = _policy_number(policy, "state_atol") + state_rtol = _policy_number(policy, "state_rtol") + for expected_raw, actual_raw in zip(expected_events, actual_events, strict=True): + expected = _mapping(expected_raw, "expected event") + actual = _mapping(actual_raw, "actual event") + if expected.get("name") != actual.get("name"): + return False + expected_times = _sequence(expected.get("times"), "expected event times") + actual_times = _sequence(actual.get("times"), "actual event times") + expected_states = _sequence(expected.get("states"), "expected event states") + actual_states = _sequence(actual.get("states"), "actual event states") + if len(expected_times) != len(actual_times) or len(expected_states) != len(actual_states): + return False + for expected_time, actual_time in zip(expected_times, actual_times, strict=True): + if not isinstance(expected_time, int | float) or not isinstance( + actual_time, int | float + ): + raise IntegrityError("replay event times must be numeric") + if not _close(float(expected_time), float(actual_time), atol=time_atol, rtol=0.0): + return False + for expected_state, actual_state in zip(expected_states, actual_states, strict=True): + left = _state(expected_state, "expected event state") + right = _state(actual_state, "actual event state") + if len(left) != len(right) or not all( + _close(a, b, atol=state_atol, rtol=state_rtol) + for a, b in zip(left, right, strict=True) + ): + return False + return True + + +def _tolerance_comparison( + label: str, + expected: Mapping[str, object], + run: SimulationResult, + expected_identity: object, + policy: Mapping[str, object], +) -> Mapping[str, object]: + expected_trace = _sequence(expected.get("trace"), f"{label}.trace") + actual_trace = run.trace + max_unmatched = policy.get("max_unmatched_points") + if not isinstance(max_unmatched, int) or isinstance(max_unmatched, bool): + raise IntegrityError("replay comparison.max_unmatched_points must be an integer") + count_difference = abs(len(expected_trace) - len(actual_trace)) + grid_match = count_difference <= max_unmatched + state_match = True + observations_match = True + time_atol = _policy_number(policy, "retained_grid_time_atol") + state_atol = _policy_number(policy, "state_atol") + state_rtol = _policy_number(policy, "state_rtol") + for raw, point in zip(expected_trace, actual_trace, strict=False): + expected_point = _mapping(raw, f"{label}.trace point") + expected_time = expected_point.get("time") + if not isinstance(expected_time, int | float) or isinstance(expected_time, bool): + raise IntegrityError(f"replay {label}.trace point time must be numeric") + grid_match = grid_match and _close( + float(expected_time), point.time, atol=time_atol, rtol=0.0 + ) + expected_state = _state(expected_point.get("state"), f"{label}.trace state") + state_match = ( + state_match + and len(expected_state) == len(point.state) + and all( + _close(a, b, atol=state_atol, rtol=state_rtol) + for a, b in zip(expected_state, point.state, strict=False) + ) + ) + observations_match = observations_match and _observations_match( + expected_point.get("observations"), point.observations, policy + ) + expected_final = _state(expected.get("final_state"), f"{label}.final_state") + endpoint_state_match = len(expected_final) == len(run.final_state) and all( + _close(a, b, atol=state_atol, rtol=state_rtol) + for a, b in zip(expected_final, run.final_state, strict=False) + ) + expected_metadata = _mapping(expected.get("execution_metadata"), "execution metadata") + expected_endpoint = expected_metadata.get("termination_time") + actual_endpoint = run.execution_metadata.get("termination_time") + if not isinstance(expected_endpoint, int | float) or not isinstance( + actual_endpoint, int | float + ): + raise IntegrityError("tolerance replay requires numeric termination_time evidence") + endpoint_time_match = _close( + float(expected_endpoint), + float(actual_endpoint), + atol=_policy_number(policy, "endpoint_time_atol"), + rtol=0.0, + ) + invariant_match, invariant_threshold_match = _invariants_match( + expected.get("invariants"), run.invariants, policy + ) + require_classifier = policy.get("require_classifier") is True + require_invariants = policy.get("require_invariants") is True + expected_success = policy.get("expected_solver_success") + actual_success = bool(run.execution_metadata.get("solver_success", True)) + return { + "series": label, + "mode": "tolerance", + "classification_match": (run.classification == expected.get("classification")) + if require_classifier + else True, + "model_identity_match": run.model_identity == expected_identity, + "solver_success_match": actual_success is expected_success, + "retained_grid_match": grid_match, + "state_tolerance_match": state_match, + "observable_tolerance_match": observations_match, + "endpoint_state_match": endpoint_state_match, + "endpoint_time_match": endpoint_time_match, + "event_tolerance_match": _event_match(expected_metadata, run.execution_metadata, policy), + "invariant_result_match": invariant_match if require_invariants else True, + "invariant_threshold_match": invariant_threshold_match if require_invariants else True, + "artifact_trace_sha256_equal": run.trace_sha256 == expected.get("trace_sha256"), + "expected_environment": expected_metadata, + "actual_environment": dict(run.execution_metadata), + } + + @dataclass(frozen=True, slots=True) class ReplayVerification: - """Deterministic replay verdict with comparisons suitable for CI diagnostics.""" + """Replay verdict with exact or declared-tolerance comparisons.""" ok: bool + mode: str model: str baseline: SimulationResult changed: SimulationResult | None @@ -120,8 +419,9 @@ class ReplayVerification: def as_dict(self) -> dict[str, object]: return { - "schema_version": "1.0", + "schema_version": "2.0", "status": "REPLAY VERIFIED" if self.ok else "REPLAY MISMATCH", + "comparison_mode": self.mode, "model": self.model, "ok": self.ok, "comparisons": [dict(item) for item in self.comparisons], @@ -131,7 +431,7 @@ def as_dict(self) -> dict[str, object]: def verify_replay(path: Path) -> ReplayVerification: - """Re-execute the recorded model/config/seed and compare exact trace evidence.""" + """Re-execute a v1/v2 fixture and apply its explicit comparison policy.""" fixture = validate_fixture(path) configuration = fixture.get("configuration") @@ -142,6 +442,15 @@ def verify_replay(path: Path) -> ReplayVerification: if config.model != expected_model: raise IntegrityError("replay model does not match embedded configuration") expected_identity = fixture.get("model_identity") + if fixture.get("schema_version") == "1.0": + mode = "exact" + policy: Mapping[str, object] = {"mode": mode} + else: + policy = _mapping(fixture.get("comparison"), "comparison") + raw_mode = policy.get("mode") + if raw_mode not in {"exact", "tolerance"}: + raise IntegrityError("replay comparison.mode must be exact or tolerance") + mode = cast(str, raw_mode) comparisons: list[Mapping[str, object]] = [] @@ -152,19 +461,22 @@ def execute(label: str, raw: object) -> SimulationResult: parameters_override=_float_mapping(expected.get("parameters"), f"{label}.parameters"), initial_override=_state(expected.get("initial_state"), f"{label}.initial_state"), ) - classification_match = run.classification == expected.get("classification") - hash_match = run.trace_sha256 == expected.get("trace_sha256") - identity_match = run.model_identity == expected_identity - comparisons.append( - { - "series": label, - "classification_match": classification_match, - "trace_hash_match": hash_match, - "model_identity_match": identity_match, - "expected_trace_sha256": expected.get("trace_sha256"), - "actual_trace_sha256": run.trace_sha256, - } - ) + if mode == "exact": + comparisons.append( + { + "series": label, + "mode": "exact", + "classification_match": run.classification == expected.get("classification"), + "trace_hash_match": run.trace_sha256 == expected.get("trace_sha256"), + "model_identity_match": run.model_identity == expected_identity, + "expected_trace_sha256": expected.get("trace_sha256"), + "actual_trace_sha256": run.trace_sha256, + } + ) + else: + comparisons.append( + _tolerance_comparison(label, expected, run, expected_identity, policy) + ) return run baseline = execute("baseline", fixture.get("baseline")) @@ -176,6 +488,7 @@ def execute(label: str, raw: object) -> SimulationResult: ) return ReplayVerification( ok=ok, + mode=mode, model=config.model, baseline=baseline, changed=changed, diff --git a/src/phaseprobe/reporting.py b/src/phaseprobe/reporting.py index 22936b9..05e7f2a 100644 --- a/src/phaseprobe/reporting.py +++ b/src/phaseprobe/reporting.py @@ -88,6 +88,7 @@ def html_report(data: Mapping[str, object]) -> str: finding = _mapping(data.get("finding")) history = _sequence(data.get("history")) config = _mapping(data.get("configuration")) + replay_mode = html.escape(str(baseline.get("replay_mode", "exact"))) history_rows: list[str] = [] for item in history: @@ -148,7 +149,7 @@ def html_report(data: Mapping[str, object]) -> str:

Search and refinement history

{"".join(history_rows)}
PhaseValue / deltaClassificationBracket

Configuration

{config_json}
-

Replay and generated test

The run directory contains a versioned replay.json fixture. The generate-test command validates and copies that fixture into a fixed pytest template.

+

Replay and generated test

The run directory contains a versioned replay.json fixture with declared {replay_mode} comparison. Artifact SHA-256 integrity is retained in both modes. The generate-test command validates and copies that fixture into a fixed pytest template.

Scientific limitations

{html.escape(limitations)}

""" diff --git a/src/phaseprobe/types.py b/src/phaseprobe/types.py index 88dea81..1ffd7e7 100644 --- a/src/phaseprobe/types.py +++ b/src/phaseprobe/types.py @@ -4,13 +4,14 @@ from collections.abc import Mapping, Sequence from dataclasses import dataclass -from typing import Protocol, TypeAlias, runtime_checkable +from typing import Literal, Protocol, TypeAlias, runtime_checkable Scalar: TypeAlias = float | int | str State: TypeAlias = tuple[float, ...] Parameters: TypeAlias = Mapping[str, float] ModelConfig: TypeAlias = Mapping[str, object] Tolerances: TypeAlias = Mapping[str, float] +ReplayMode: TypeAlias = Literal["exact", "tolerance"] @dataclass(frozen=True, slots=True) @@ -34,6 +35,22 @@ class InvariantResult: detail: str +@dataclass(frozen=True, slots=True) +class SimulationTrace: + """One completed trajectory-level simulation before engine retention. + + ``metadata`` contains JSON-serializable execution evidence supplied by the adapter. It must + describe solver termination and the numerical environment without embedding callable code. + """ + + points: tuple[TracePoint, ...] + final_state: State + success: bool + status: int + message: str + metadata: Mapping[str, object] + + @runtime_checkable class ModelAdapter(Protocol): """Small interface implemented by built-in and downstream simulation adapters. @@ -66,3 +83,49 @@ def invariants( tolerances: Tolerances, ) -> list[InvariantResult]: """Evaluate declared invariants or boundedness conditions.""" + + +@runtime_checkable +class TrajectoryAdapter(Protocol): + """Optional protocol for solvers that naturally integrate a whole trajectory. + + The engine dispatches this protocol without manufacturing a fake fixed-step loop. Search, + perturbation, policy, artifact, replay, and reporting code is shared with ``ModelAdapter``. + """ + + name: str + identity: str + dimensions: tuple[str, ...] + + @property + def replay_mode(self) -> ReplayMode: + """Declare whether numerical replay is exact or tolerance-based.""" + + def initial_state(self, config: ModelConfig, seed: int) -> State: + """Return the declared initial state for ``config`` and ``seed``.""" + + def simulate( + self, + initial_state: State, + parameters: Parameters, + config: ModelConfig, + seed: int, + ) -> SimulationTrace: + """Integrate once and return a finite, serializable trajectory.""" + + def observe(self, trace: SimulationTrace) -> Mapping[str, Scalar]: + """Return bounded summary observables for the completed trajectory.""" + + def classify(self, trace: SimulationTrace, tolerances: Tolerances) -> str: + """Return a qualitative class from retained trajectory evidence.""" + + def invariants( + self, + trace: SimulationTrace, + parameters: Parameters, + tolerances: Tolerances, + ) -> list[InvariantResult]: + """Evaluate declared invariants or boundedness conditions.""" + + def configuration(self) -> Mapping[str, object]: + """Serialize adapter settings and explicit identity, never callable source.""" diff --git a/tests/generated/fixtures/lorenz_scipy-replay.json b/tests/generated/fixtures/lorenz_scipy-replay.json new file mode 100644 index 0000000..fe95cfc --- /dev/null +++ b/tests/generated/fixtures/lorenz_scipy-replay.json @@ -0,0 +1,30407 @@ +{ + "baseline": { + "classification": "bounded-finite-window", + "execution_metadata": { + "adapter_configuration": { + "adapter": "scipy.solve_ivp", + "atol": 1e-12, + "dense_output": false, + "events": [], + "identity": "phaseprobe-lorenz-scipy-v1", + "initial_state": [ + 1.0, + 1.0, + 1.0 + ], + "max_step": 0.05, + "method": "DOP853", + "rtol": 1e-09, + "state_names": [ + "x", + "y", + "z" + ], + "t_eval": { + "kind": "linspace", + "points": 1001, + "start": 0.0, + "stop": 25.0 + }, + "t_span": [ + 0.0, + 25.0 + ], + "vectorized": false + }, + "atol": 1e-12, + "dense_output": false, + "evaluation_grid": { + "kind": "linspace", + "points": 1001, + "start": 0.0, + "stop": 25.0 + }, + "event_configuration": [], + "events": [], + "initial_state": [ + 1.0, + 1.0, + 1.0 + ], + "maximum_step": 0.05, + "nfev": 13400, + "njev": 0, + "nlu": 0, + "numpy_version": "2.4.6", + "parameters": { + "beta": 2.6666666666666665, + "rho": 28.0, + "sigma": 10.0 + }, + "platform": { + "architecture_bits": 64, + "byteorder": "little", + "machine": "AMD64", + "release": "10", + "system": "Windows" + }, + "python_implementation": "CPython", + "python_version": "3.12.13", + "rtol": 1e-09, + "scipy_version": "1.18.0", + "seed": 23, + "solver_message": "The solver successfully reached the end of the integration interval.", + "solver_method": "DOP853", + "solver_status": 0, + "solver_success": true, + "t_span": [ + 0.0, + 25.0 + ], + "termination_time": 25.0, + "vectorized": false + }, + "final_state": [ + -1.2112854749425483, + -2.158399271895271, + 11.711810465525831 + ], + "initial_state": [ + 1.0, + 1.0, + 1.0 + ], + "invariant_violations": 0, + "invariants": [ + { + "detail": "Maximum absolute state over the declared finite observation window.", + "measured": 47.69159102939705, + "name": "declared-state-bound", + "passed": true, + "tolerance": 100.0 + } + ], + "observations": { + "radius": 11.970480537519169, + "x": -1.2112854749425483, + "y": -2.158399271895271, + "z": 11.711810465525831 + }, + "parameters": { + "beta": 2.6666666666666665, + "rho": 28.0, + "sigma": 10.0 + }, + "solver_success": true, + "trace": [ + { + "observations": { + "radius": 1.7320508075688772, + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "state": [ + 1.0, + 1.0, + 1.0 + ], + "step": 0, + "time": 0.0 + }, + { + "observations": { + "radius": 2.2019365753474, + "x": 1.075316451777333, + "y": 1.659516395068235, + "z": 0.9686199176608816 + }, + "state": [ + 1.075316451777333, + 1.659516395068235, + 0.9686199176608816 + ], + "step": 1, + "time": 0.025 + }, + { + "observations": { + "radius": 2.8892022816902374, + "x": 1.287554770381978, + "y": 2.40016044712825, + "z": 0.9638061868611374 + }, + "state": [ + 1.287554770381978, + 2.40016044712825, + 0.9638061868611374 + ], + "step": 2, + "time": 0.05 + }, + { + "observations": { + "radius": 3.8236221612019334, + "x": 1.6344063986027566, + "y": 3.3082855473129746, + "z": 1.0020224015864125 + }, + "state": [ + 1.6344063986027566, + 3.3082855473129746, + 1.0020224015864125 + ], + "step": 3, + "time": 0.075 + }, + { + "observations": { + "radius": 5.077845728179291, + "x": 2.1331076186376636, + "y": 4.471420176966452, + "z": 1.1138988856785563 + }, + "state": [ + 2.1331076186376636, + 4.471420176966452, + 1.1138988856785563 + ], + "step": 4, + "time": 0.1 + }, + { + "observations": { + "radius": 6.753755925848817, + "x": 2.817452709445632, + "y": 5.986813585714007, + "z": 1.3539728305566827 + }, + "state": [ + 2.817452709445632, + 5.986813585714007, + 1.3539728305566827 + ], + "step": 5, + "time": 0.125 + }, + { + "observations": { + "radius": 8.982982549543578, + "x": 3.736722549098051, + "y": 7.96408431244383, + "z": 1.8177571732089808 + }, + "state": [ + 3.736722549098051, + 7.96408431244383, + 1.8177571732089808 + ], + "step": 6, + "time": 0.15 + }, + { + "observations": { + "radius": 11.927971702159265, + "x": 4.95432888935214, + "y": 10.516954229631324, + "z": 2.6692335820386317 + }, + "state": [ + 4.95432888935214, + 10.516954229631324, + 2.6692335820386317 + ], + "step": 7, + "time": 0.175 + }, + { + "observations": { + "radius": 15.774162602598581, + "x": 6.542527557037073, + "y": 13.731186714216262, + "z": 4.180197411362407 + }, + "state": [ + 6.542527557037073, + 13.731186714216262, + 4.180197411362407 + ], + "step": 8, + "time": 0.2 + }, + { + "observations": { + "radius": 20.698209083443693, + "x": 8.566145639788664, + "y": 17.583375738725, + "z": 6.772141889439245 + }, + "state": [ + 8.566145639788664, + 17.583375738725, + 6.772141889439245 + ], + "step": 9, + "time": 0.225 + }, + { + "observations": { + "radius": 26.78586378035899, + "x": 11.042844241422415, + "y": 21.775417186002656, + "z": 11.01677338857306 + }, + "state": [ + 11.042844241422415, + 21.775417186002656, + 11.01677338857306 + ], + "step": 10, + "time": 0.25 + }, + { + "observations": { + "radius": 33.86750105021543, + "x": 13.864669037787431, + "y": 25.482082322550777, + "z": 17.476900765459156 + }, + "state": [ + 13.864669037787431, + 25.482082322550777, + 17.476900765459156 + ], + "step": 11, + "time": 0.275 + }, + { + "observations": { + "radius": 41.280792491001314, + "x": 16.684813957464335, + "y": 27.183492341008062, + "z": 26.206460196605526 + }, + "state": [ + 16.684813957464335, + 27.183492341008062, + 26.206460196605526 + ], + "step": 12, + "time": 0.3 + }, + { + "observations": { + "radius": 47.72945146835833, + "x": 18.84909689229916, + "y": 25.094747987193742, + "z": 35.95922284024402 + }, + "state": [ + 18.84909689229916, + 25.094747987193742, + 35.95922284024402 + ], + "step": 13, + "time": 0.325 + }, + { + "observations": { + "radius": 51.61415781570514, + "x": 19.555094379046743, + "y": 18.600223932559345, + "z": 43.99603664547225 + }, + "state": [ + 19.555094379046743, + 18.600223932559345, + 43.99603664547225 + ], + "step": 14, + "time": 0.35 + }, + { + "observations": { + "radius": 51.9704196689655, + "x": 18.31715056717538, + "y": 9.535127726074627, + "z": 47.69159102939705 + }, + "state": [ + 18.31715056717538, + 9.535127726074627, + 47.69159102939705 + ], + "step": 15, + "time": 0.375 + }, + { + "observations": { + "radius": 49.2306293716889, + "x": 15.366200072050413, + "y": 1.1130374744788667, + "z": 46.75784331273975 + }, + "state": [ + 15.366200072050413, + 1.1130374744788667, + 46.75784331273975 + ], + "step": 16, + "time": 0.4 + }, + { + "observations": { + "radius": 44.86950171476976, + "x": 11.497876671776039, + "y": -4.613844062232047, + "z": 43.12520677216239 + }, + "state": [ + 11.497876671776039, + -4.613844062232047, + 43.12520677216239 + ], + "step": 17, + "time": 0.425 + }, + { + "observations": { + "radius": 40.364061026511926, + "x": 7.548658592609776, + "y": -7.581102908971821, + "z": 38.920458048278114 + }, + "state": [ + 7.548658592609776, + -7.581102908971821, + 38.920458048278114 + ], + "step": 18, + "time": 0.45 + }, + { + "observations": { + "radius": 36.55560024789908, + "x": 4.048420432988155, + "y": -8.699213223645048, + "z": 35.27386980147659 + }, + "state": [ + 4.048420432988155, + -8.699213223645048, + 35.27386980147659 + ], + "step": 19, + "time": 0.475 + }, + { + "observations": { + "radius": 33.66560879812239, + "x": 1.1982729719195488, + "y": -8.86719772508511, + "z": 32.454740210595254 + }, + "state": [ + 1.1982729719195488, + -8.86719772508511, + 32.454740210595254 + ], + "step": 20, + "time": 0.5 + }, + { + "observations": { + "radius": 31.581353839078933, + "x": -1.007827134262989, + "y": -8.661120285601726, + "z": 30.353767314369517 + }, + "state": [ + -1.007827134262989, + -8.661120285601726, + 30.353767314369517 + ], + "step": 21, + "time": 0.525 + }, + { + "observations": { + "radius": 30.098102004988416, + "x": -2.6682260604478083, + "y": -8.381601600238424, + "z": 28.784111391667373 + }, + "state": [ + -2.6682260604478083, + -8.381601600238424, + 28.784111391667373 + ], + "step": 22, + "time": 0.55 + }, + { + "observations": { + "radius": 29.037950868425703, + "x": -3.905210250457126, + "y": -8.164662192458133, + "z": 27.59148808636233 + }, + "state": [ + -3.905210250457126, + -8.164662192458133, + 27.59148808636233 + ], + "step": 23, + "time": 0.575 + }, + { + "observations": { + "radius": 28.280792961521527, + "x": -4.833214016912187, + "y": -8.061281103209671, + "z": 26.67318953132909 + }, + "state": [ + -4.833214016912187, + -8.061281103209671, + 26.67318953132909 + ], + "step": 24, + "time": 0.6 + }, + { + "observations": { + "radius": 27.756869248727675, + "x": -5.547346191864117, + "y": -8.0813825779629, + "z": 25.968480824783963 + }, + "state": [ + -5.547346191864117, + -8.0813825779629, + 25.968480824783963 + ], + "step": 25, + "time": 0.625 + }, + { + "observations": { + "radius": 27.43012300066246, + "x": -6.121387198088279, + "y": -8.215623609259751, + "z": 25.444916885569235 + }, + "state": [ + -6.121387198088279, + -8.215623609259751, + 25.444916885569235 + ], + "step": 26, + "time": 0.65 + }, + { + "observations": { + "radius": 27.283448013032046, + "x": -6.609554595790925, + "y": -8.445475915235802, + "z": 25.08733266192828 + }, + "state": [ + -6.609554595790925, + -8.445475915235802, + 25.08733266192828 + ], + "step": 27, + "time": 0.675 + }, + { + "observations": { + "radius": 27.308024669891243, + "x": -7.04936183177536, + "y": -8.747486496520796, + "z": 24.890082143883813 + }, + "state": [ + -7.04936183177536, + -8.747486496520796, + 24.890082143883813 + ], + "step": 28, + "time": 0.7 + }, + { + "observations": { + "radius": 27.496029178525532, + "x": -7.464427437586115, + "y": -9.094761744839857, + "z": 24.85154426630137 + }, + "state": [ + -7.464427437586115, + -9.094761744839857, + 24.85154426630137 + ], + "step": 29, + "time": 0.725 + }, + { + "observations": { + "radius": 27.835633703263223, + "x": -7.866839485864984, + "y": -9.457334114570845, + "z": 24.96986527018625 + }, + "state": [ + -7.866839485864984, + -9.457334114570845, + 24.96986527018625 + ], + "step": 30, + "time": 0.75 + }, + { + "observations": { + "radius": 28.307613953972968, + "x": -8.259054024651403, + "y": -9.802463443501509, + "z": 25.23926989482602 + }, + "state": [ + -8.259054024651403, + -9.802463443501509, + 25.23926989482602 + ], + "step": 31, + "time": 0.775 + }, + { + "observations": { + "radius": 28.88336040807915, + "x": -8.635509300709108, + "y": -10.095639192755694, + "z": 25.646726045833915 + }, + "state": [ + -8.635509300709108, + -10.095639192755694, + 25.646726045833915 + ], + "step": 32, + "time": 0.8 + }, + { + "observations": { + "radius": 29.524431585159636, + "x": -8.98423927507459, + "y": -10.302817656110573, + "z": 26.169208116026656 + }, + "state": [ + -8.98423927507459, + -10.302817656110573, + 26.169208116026656 + ], + "step": 33, + "time": 0.825 + }, + { + "observations": { + "radius": 30.18391934988923, + "x": -9.288789407489974, + "y": -10.394071188980016, + "z": 26.77219943864036 + }, + "state": [ + -9.288789407489974, + -10.394071188980016, + 26.77219943864036 + ], + "step": 34, + "time": 0.85 + }, + { + "observations": { + "radius": 30.809783025626825, + "x": -9.530647967361398, + "y": -10.348273481813084, + "z": 27.4102666049427 + }, + "state": [ + -9.530647967361398, + -10.348273481813084, + 27.4102666049427 + ], + "step": 35, + "time": 0.875 + }, + { + "observations": { + "radius": 31.349947239487026, + "x": -9.692200693031168, + "y": -10.157781731492637, + "z": 28.03033906216585 + }, + "state": [ + -9.692200693031168, + -10.157781731492637, + 28.03033906216585 + ], + "step": 36, + "time": 0.9 + }, + { + "observations": { + "radius": 31.758423900400405, + "x": -9.75992110934147, + "y": -9.83158883938159, + "z": 28.577636177093126 + }, + "state": [ + -9.75992110934147, + -9.83158883938159, + 28.577636177093126 + ], + "step": 37, + "time": 0.925 + }, + { + "observations": { + "radius": 32.001216922058646, + "x": -9.727229996567912, + "y": -9.395487215136743, + "z": 29.00316708700489 + }, + "state": [ + -9.727229996567912, + -9.395487215136743, + 29.00316708700489 + ], + "step": 38, + "time": 0.95 + }, + { + "observations": { + "radius": 32.06058266026749, + "x": -9.59634103317994, + "y": -8.888609175259223, + "z": 29.27086992592207 + }, + "state": [ + -9.59634103317994, + -8.888609175259223, + 29.27086992592207 + ], + "step": 39, + "time": 0.975 + }, + { + "observations": { + "radius": 31.93655802786202, + "x": -9.37857001427395, + "y": -8.357033791973926, + "z": 29.3623253396962 + }, + "state": [ + -9.37857001427395, + -8.357033791973926, + 29.3623253396962 + ], + "step": 40, + "time": 1.0 + }, + { + "observations": { + "radius": 31.645471880574913, + "x": -9.092994792382264, + "y": -7.846299809677046, + "z": 29.277788774882378 + }, + "state": [ + -9.092994792382264, + -7.846299809677046, + 29.277788774882378 + ], + "step": 41, + "time": 1.025 + }, + { + "observations": { + "radius": 31.216083204435584, + "x": -8.763842317485615, + "y": -7.394989295571203, + "z": 29.03365377934512 + }, + "state": [ + -8.763842317485615, + -7.394989295571203, + 29.03365377934512 + ], + "step": 42, + "time": 1.05 + }, + { + "observations": { + "radius": 30.684606103089966, + "x": -8.41731501807054, + "y": -7.030903641215814, + "z": 28.657638660159847 + }, + "state": [ + -8.41731501807054, + -7.030903641215814, + 28.657638660159847 + ], + "step": 43, + "time": 1.075 + }, + { + "observations": { + "radius": 30.089949917741833, + "x": -8.078618590774267, + "y": -6.770199354019534, + "z": 28.183424355884107 + }, + "state": [ + -8.078618590774267, + -6.770199354019534, + 28.183424355884107 + ], + "step": 44, + "time": 1.1 + }, + { + "observations": { + "radius": 29.47009898310028, + "x": -7.7697406995959035, + "y": -6.6188378366223395, + "z": 27.646136244098695 + }, + "state": [ + -7.7697406995959035, + -6.6188378366223395, + 27.646136244098695 + ], + "step": 45, + "time": 1.125 + }, + { + "observations": { + "radius": 28.85996479951675, + "x": -7.5082014080858634, + "y": -6.575233183405353, + "z": 27.07934246669975 + }, + "state": [ + -7.5082014080858634, + -6.575233183405353, + 27.07934246669975 + ], + "step": 46, + "time": 1.15 + }, + { + "observations": { + "radius": 28.290542512789244, + "x": -7.306698917589209, + "y": -6.633045638988659, + "z": 26.513574865467117 + }, + "state": [ + -7.306698917589209, + -6.633045638988659, + 26.513574865467117 + ], + "step": 47, + "time": 1.175 + }, + { + "observations": { + "radius": 27.788930040409063, + "x": -7.173397135457514, + "y": -6.783423776539874, + "z": 25.975992150361318 + }, + "state": [ + -7.173397135457514, + -6.783423776539874, + 25.975992150361318 + ], + "step": 48, + "time": 1.2 + }, + { + "observations": { + "radius": 27.378709900926317, + "x": -7.1125492435463515, + "y": -7.016388993950196, + "z": 25.49069800109019 + }, + "state": [ + -7.1125492435463515, + -7.016388993950196, + 25.49069800109019 + ], + "step": 49, + "time": 1.225 + }, + { + "observations": { + "radius": 27.08026731292109, + "x": -7.125187091009895, + "y": -7.321342292069648, + "z": 25.07928495192239 + }, + "state": [ + -7.125187091009895, + -7.321342292069648, + 25.07928495192239 + ], + "step": 50, + "time": 1.25 + }, + { + "observations": { + "radius": 26.9107413514359, + "x": -7.20968136837062, + "y": -7.686830259931314, + "z": 24.761282987871528 + }, + "state": [ + -7.20968136837062, + -7.686830259931314, + 24.761282987871528 + ], + "step": 51, + "time": 1.275 + }, + { + "observations": { + "radius": 26.88343461890066, + "x": -7.362060306438576, + "y": -8.099774108521888, + "z": 24.554282403360652 + }, + "state": [ + -7.362060306438576, + -8.099774108521888, + 24.554282403360652 + ], + "step": 52, + "time": 1.3 + }, + { + "observations": { + "radius": 27.006633670186854, + "x": -7.5760478485839835, + "y": -8.544397019647665, + "z": 24.47355799147873 + }, + "state": [ + -7.5760478485839835, + -8.544397019647665, + 24.47355799147873 + ], + "step": 53, + "time": 1.325 + }, + { + "observations": { + "radius": 27.28192787559918, + "x": -7.842847555939723, + "y": -9.00112519610388, + "z": 24.531063491576347 + }, + "state": [ + -7.842847555939723, + -9.00112519610388, + 24.531063491576347 + ], + "step": 54, + "time": 1.35 + }, + { + "observations": { + "radius": 27.70226521046246, + "x": -8.150760667066114, + "y": -9.445806680752776, + "z": 24.733728681475686 + }, + "state": [ + -8.150760667066114, + -9.445806680752776, + 24.733728681475686 + ], + "step": 55, + "time": 1.375 + }, + { + "observations": { + "radius": 28.25014242785715, + "x": -8.484793255697921, + "y": -9.84967704118881, + "z": 25.081122239376686 + }, + "state": [ + -8.484793255697921, + -9.84967704118881, + 25.081122239376686 + ], + "step": 56, + "time": 1.4 + }, + { + "observations": { + "radius": 28.896465206667504, + "x": -8.826475128543168, + "y": -10.18054847613508, + "z": 25.56277510307553 + }, + "state": [ + -8.826475128543168, + -10.18054847613508, + 25.56277510307553 + ], + "step": 57, + "time": 1.425 + }, + { + "observations": { + "radius": 29.600685403638064, + "x": -9.154162319873958, + "y": -10.405611873336943, + "z": 26.15578578685834 + }, + "state": [ + -9.154162319873958, + -10.405611873336943, + 26.15578578685834 + ], + "step": 58, + "time": 1.45 + }, + { + "observations": { + "radius": 30.31276190771036, + "x": -9.444089305116899, + "y": -10.4959122791871, + "z": 26.823656296227075 + }, + "state": [ + -9.444089305116899, + -10.4959122791871, + 26.823656296227075 + ], + "step": 59, + "time": 1.475 + }, + { + "observations": { + "radius": 30.97722517249394, + "x": -9.672324285185908, + "y": -10.431944645603211, + "z": 27.51743362344435 + }, + "state": [ + -9.672324285185908, + -10.431944645603211, + 27.51743362344435 + ], + "step": 60, + "time": 1.5 + }, + { + "observations": { + "radius": 31.539121682114395, + "x": -9.817539096514855, + "y": -10.209062738202213, + "z": 28.179907036309963 + }, + "state": [ + -9.817539096514855, + -10.209062738202213, + 28.179907036309963 + ], + "step": 61, + "time": 1.525 + }, + { + "observations": { + "radius": 31.950947206191557, + "x": -9.864165815144675, + "y": -9.840876575671313, + "z": 28.752711322005357 + }, + "state": [ + -9.864165815144675, + -9.840876575671313, + 28.752711322005357 + ], + "step": 62, + "time": 1.55 + }, + { + "observations": { + "radius": 32.1790997507439, + "x": -9.805209269614764, + "y": -9.359002193799657, + "z": 29.184951771141236 + }, + "state": [ + -9.805209269614764, + -9.359002193799657, + 29.184951771141236 + ], + "step": 63, + "time": 1.575 + }, + { + "observations": { + "radius": 32.20822745890752, + "x": -9.643895081303363, + "y": -8.808622313383957, + "z": 29.441015210853237 + }, + "state": [ + -9.643895081303363, + -8.808622313383957, + 29.441015210853237 + ], + "step": 64, + "time": 1.6 + }, + { + "observations": { + "radius": 32.042333920949766, + "x": -9.393576940786135, + "y": -8.240920710044684, + "z": 29.505238538434753 + }, + "state": [ + -9.393576940786135, + -8.240920710044684, + 29.505238538434753 + ], + "step": 65, + "time": 1.625 + }, + { + "observations": { + "radius": 31.70250551790085, + "x": -9.075848899020773, + "y": -7.704705073840937, + "z": 29.382228346396854 + }, + "state": [ + -9.075848899020773, + -7.704705073840937, + 29.382228346396854 + ], + "step": 66, + "time": 1.65 + }, + { + "observations": { + "radius": 31.22218560695203, + "x": -8.717374571052044, + "y": -7.2396966228851936, + "z": 29.093281827107827 + }, + "state": [ + -8.717374571052044, + -7.2396966228851936, + 29.093281827107827 + ], + "step": 67, + "time": 1.675 + }, + { + "observations": { + "radius": 30.64152926182095, + "x": -8.346286335054707, + "y": -6.873016627946099, + "z": 28.670620194692074 + }, + "state": [ + -8.346286335054707, + -6.873016627946099, + 28.670620194692074 + ], + "step": 68, + "time": 1.7 + }, + { + "observations": { + "radius": 30.00231613965396, + "x": -7.988996591945596, + "y": -6.618996217385672, + "z": 28.151443946480903 + }, + "state": [ + -7.988996591945596, + -6.618996217385672, + 28.151443946480903 + ], + "step": 69, + "time": 1.725 + }, + { + "observations": { + "radius": 29.344337930038343, + "x": -7.667968719405817, + "y": -6.4813550619935905, + "z": 27.573256260929192 + }, + "state": [ + -7.667968719405817, + -6.4813550619935905, + 27.573256260929192 + ], + "step": 70, + "time": 1.75 + }, + { + "observations": { + "radius": 28.703480648910613, + "x": -7.400605983529114, + "y": -6.456410029864902, + "z": 26.97101410709651 + }, + "state": [ + -7.400605983529114, + -6.456410029864902, + 26.97101410709651 + ], + "step": 71, + "time": 1.775 + }, + { + "observations": { + "radius": 28.111194722745765, + "x": -7.1991006939056, + "y": -6.5361787136926495, + "z": 26.375947106441664 + }, + "state": [ + -7.1991006939056, + -6.5361787136926495, + 26.375947106441664 + ], + "step": 72, + "time": 1.8 + }, + { + "observations": { + "radius": 27.59480297325936, + "x": -7.070921473730421, + "y": -6.710704443183318, + "z": 25.815531497948694 + }, + "state": [ + -7.070921473730421, + -6.710704443183318, + 25.815531497948694 + ], + "step": 73, + "time": 1.825 + }, + { + "observations": { + "radius": 27.178086107564333, + "x": -7.019591347463398, + "y": -6.969366410820964, + "z": 25.314059998675024 + }, + "state": [ + -7.019591347463398, + -6.969366410820964, + 25.314059998675024 + ], + "step": 74, + "time": 1.85 + }, + { + "observations": { + "radius": 26.881698355072253, + "x": -7.045469531083817, + "y": -7.301224565428052, + "z": 24.893356249908404 + }, + "state": [ + -7.045469531083817, + -7.301224565428052, + 24.893356249908404 + ], + "step": 75, + "time": 1.875 + }, + { + "observations": { + "radius": 26.723110300509205, + "x": -7.14634299379823, + "y": -7.694585460534292, + "z": 24.573313991781944 + }, + "state": [ + -7.14634299379823, + -7.694585460534292, + 24.573313991781944 + ], + "step": 76, + "time": 1.9 + }, + { + "observations": { + "radius": 26.71591379727532, + "x": -7.317723447365401, + "y": -8.13602069048312, + "z": 24.372036043288524 + }, + "state": [ + -7.317723447365401, + -8.13602069048312, + 24.372036043288524 + ], + "step": 77, + "time": 1.925 + }, + { + "observations": { + "radius": 26.868456368267868, + "x": -7.552822738806793, + "y": -8.609090049189751, + "z": 24.305398264883856 + }, + "state": [ + -7.552822738806793, + -8.609090049189751, + 24.305398264883856 + ], + "step": 78, + "time": 1.95 + }, + { + "observations": { + "radius": 27.181916645851402, + "x": -7.8422450045023355, + "y": -9.093063948481488, + "z": 24.38589702799956 + }, + "state": [ + -7.8422450045023355, + -9.093063948481488, + 24.38589702799956 + ], + "step": 79, + "time": 1.975 + }, + { + "observations": { + "radius": 27.648098796423017, + "x": -8.173499916869678, + "y": -9.562023673697288, + "z": 24.620702049887853 + }, + "state": [ + -8.173499916869678, + -9.562023673697288, + 24.620702049887853 + ], + "step": 80, + "time": 2.0 + }, + { + "observations": { + "radius": 28.247400301394062, + "x": -8.53051432283223, + "y": -9.984825866972015, + "z": 25.008982417951316 + }, + "state": [ + -8.53051432283223, + -9.984825866972015, + 25.008982417951316 + ], + "step": 81, + "time": 2.025 + }, + { + "observations": { + "radius": 28.947563035631667, + "x": -8.893396794584763, + "y": -10.326480983752429, + "z": 25.538846678112495 + }, + "state": [ + -8.893396794584763, + -10.326480983752429, + 25.538846678112495 + ], + "step": 82, + "time": 2.05 + }, + { + "observations": { + "radius": 29.70389646451869, + "x": -9.238768452354783, + "y": -10.551396738645229, + "z": 26.184626205510874 + }, + "state": [ + -9.238768452354783, + -10.551396738645229, + 26.184626205510874 + ], + "step": 83, + "time": 2.075 + }, + { + "observations": { + "radius": 30.461586954838765, + "x": -9.540963635685584, + "y": -10.628539726023007, + "z": 26.905620899768866 + }, + "state": [ + -9.540963635685584, + -10.628539726023007, + 26.905620899768866 + ], + "step": 84, + "time": 2.1 + }, + { + "observations": { + "radius": 31.16039048183493, + "x": -9.774269794176668, + "y": -10.537827804152462, + "z": 27.64756354800737 + }, + "state": [ + -9.774269794176668, + -10.537827804152462, + 27.64756354800737 + ], + "step": 85, + "time": 2.125 + }, + { + "observations": { + "radius": 31.741403405949523, + "x": -9.916081496705983, + "y": -10.27616602850803, + "z": 28.34763534555302 + }, + "state": [ + -9.916081496705983, + -10.27616602850803, + 28.34763534555302 + ], + "step": 86, + "time": 2.15 + }, + { + "observations": { + "radius": 32.15482190145966, + "x": -9.950442453878372, + "y": -9.860964395932548, + "z": 28.942747756023365 + }, + "state": [ + -9.950442453878372, + -9.860964395932548, + 28.942747756023365 + ], + "step": 87, + "time": 2.175 + }, + { + "observations": { + "radius": 32.36694709276227, + "x": -9.871103966139179, + "y": -9.329296403357093, + "z": 29.37932605104568 + }, + "state": [ + -9.871103966139179, + -9.329296403357093, + 29.37932605104568 + ], + "step": 88, + "time": 2.2 + }, + { + "observations": { + "radius": 32.36458238786048, + "x": -9.683159200613442, + "y": -8.732267477451247, + "z": 29.621784648100313 + }, + "state": [ + -9.683159200613442, + -8.732267477451247, + 29.621784648100313 + ], + "step": 89, + "time": 2.225 + }, + { + "observations": { + "radius": 32.15563360162233, + "x": -9.402646533258581, + "y": -8.126088780144574, + "z": 29.657068156336553 + }, + "state": [ + -9.402646533258581, + -8.126088780144574, + 29.657068156336553 + ], + "step": 90, + "time": 2.25 + }, + { + "observations": { + "radius": 31.765952365241343, + "x": -9.05415742771529, + "y": -7.562703583057665, + "z": 29.49412615182448 + }, + "state": [ + -9.05415742771529, + -7.562703583057665, + 29.49412615182448 + ], + "step": 91, + "time": 2.275 + }, + { + "observations": { + "radius": 31.233665950760685, + "x": -8.667129176895878, + "y": -7.082772139645783, + "z": 29.159168358726642 + }, + "state": [ + -8.667129176895878, + -7.082772139645783, + 29.159168358726642 + ], + "step": 92, + "time": 2.3 + }, + { + "observations": { + "radius": 30.602824737283473, + "x": -8.27183913310304, + "y": -6.7125182599935735, + "z": 28.688876901444004 + }, + "state": [ + -8.27183913310304, + -6.7125182599935735, + 28.688876901444004 + ], + "step": 93, + "time": 2.325 + }, + { + "observations": { + "radius": 29.917991836951135, + "x": -7.896029727871475, + "y": -6.464271886178275, + "z": 28.12387133866904 + }, + "state": [ + -7.896029727871475, + -6.464271886178275, + 28.12387133866904 + ], + "step": 94, + "time": 2.35 + }, + { + "observations": { + "radius": 29.220665231956314, + "x": -7.562705516269108, + "y": -6.339410321949053, + "z": 27.50390224390385 + }, + "state": [ + -7.562705516269108, + -6.339410321949053, + 27.50390224390385 + ], + "step": 95, + "time": 2.375 + }, + { + "observations": { + "radius": 28.547620100104112, + "x": -7.28919088311735, + "y": -6.332130945143288, + "z": 26.86518988101342 + }, + "state": [ + -7.28919088311735, + -6.332130945143288, + 26.86518988101342 + ], + "step": 96, + "time": 2.4 + }, + { + "observations": { + "radius": 27.930714139362504, + "x": -7.087204418368736, + "y": -6.432848812047935, + "z": 26.239565202731022 + }, + "state": [ + -7.087204418368736, + -6.432848812047935, + 26.239565202731022 + ], + "step": 97, + "time": 2.425 + }, + { + "observations": { + "radius": 27.397495545066185, + "x": -6.963558582596524, + "y": -6.630583579963625, + "z": 25.654765159669353 + }, + "state": [ + -6.963558582596524, + -6.630583579963625, + 25.654765159669353 + ], + "step": 98, + "time": 2.45 + }, + { + "observations": { + "radius": 26.971996261067837, + "x": -6.921097716370076, + "y": -6.91417798182829, + "z": 25.135256743131052 + }, + "state": [ + -6.921097716370076, + -6.91417798182829, + 25.135256743131052 + ], + "step": 99, + "time": 2.475 + }, + { + "observations": { + "radius": 26.675245432968975, + "x": -6.95957359696533, + "y": -7.2724692336664125, + "z": 24.703122181273578 + }, + "state": [ + -6.95957359696533, + -7.2724692336664125, + 24.703122181273578 + ], + "step": 100, + "time": 2.5 + }, + { + "observations": { + "radius": 26.525201697985626, + "x": -7.076266935939946, + "y": -7.693646100395917, + "z": 24.378691126719772 + }, + "state": [ + -7.076266935939946, + -7.693646100395917, + 24.378691126719772 + ], + "step": 101, + "time": 2.525 + }, + { + "observations": { + "radius": 26.53594709399763, + "x": -7.266259896826529, + "y": -8.164046687406714, + "z": 24.180700919804938 + }, + "state": [ + -7.266259896826529, + -8.164046687406714, + 24.180700919804938 + ], + "step": 102, + "time": 2.55 + }, + { + "observations": { + "radius": 26.716121917201317, + "x": -7.522343406130257, + "y": -8.666661299489766, + "z": 24.12580572530044 + }, + "state": [ + -7.522343406130257, + -8.666661299489766, + 24.12580572530044 + ], + "step": 103, + "time": 2.575 + }, + { + "observations": { + "radius": 27.066733547430594, + "x": -7.8346090851156305, + "y": -9.17965124805631, + "z": 24.227277361996055 + }, + "state": [ + -7.8346090851156305, + -9.17965124805631, + 24.227277361996055 + ], + "step": 104, + "time": 2.6 + }, + { + "observations": { + "radius": 27.57865512686249, + "x": -8.189844505241638, + "y": -9.67529768141635, + "z": 24.492800582260116 + }, + "state": [ + -8.189844505241638, + -9.67529768141635, + 24.492800582260116 + ], + "step": 105, + "time": 2.625 + }, + { + "observations": { + "radius": 28.23032813373092, + "x": -8.570931346600906, + "y": -10.119931190863525, + "z": 24.921427629294456 + }, + "state": [ + -8.570931346600906, + -10.119931190863525, + 24.921427629294456 + ], + "step": 106, + "time": 2.65 + }, + { + "observations": { + "radius": 28.98635939884754, + "x": -8.956535943031254, + "y": -10.47548100842988, + "z": 25.500074367389036 + }, + "state": [ + -8.956535943031254, + -10.47548100842988, + 25.500074367389036 + ], + "step": 107, + "time": 2.675 + }, + { + "observations": { + "radius": 29.797795099747304, + "x": -9.321451980694663, + "y": -10.703176284576754, + "z": 26.20040349306479 + }, + "state": [ + -9.321451980694663, + -10.703176284576754, + 26.20040349306479 + ], + "step": 108, + "time": 2.7 + }, + { + "observations": { + "radius": 30.604770708718878, + "x": -9.637947185908244, + "y": -10.769462533293316, + "z": 26.97740982598018 + }, + "state": [ + -9.637947185908244, + -10.769462533293316, + 26.97740982598018 + ], + "step": 109, + "time": 2.725 + }, + { + "observations": { + "radius": 31.341865352581063, + "x": -9.878305923053084, + "y": -10.653305417786873, + "z": 27.77118433818134 + }, + "state": [ + -9.878305923053084, + -10.653305417786873, + 27.77118433818134 + ], + "step": 110, + "time": 2.75 + }, + { + "observations": { + "radius": 31.945777846919558, + "x": -10.018409414328296, + "y": -10.35297666547132, + "z": 28.512805355065307 + }, + "state": [ + -10.018409414328296, + -10.35297666547132, + 28.512805355065307 + ], + "step": 111, + "time": 2.775 + }, + { + "observations": { + "radius": 32.364014976459835, + "x": -10.041717713262301, + "y": -9.889761052233437, + "z": 29.13393205685421 + }, + "state": [ + -10.041717713262301, + -9.889761052233437, + 29.13393205685421 + ], + "step": 112, + "time": 2.8 + }, + { + "observations": { + "radius": 32.56253625416167, + "x": -9.942620961121035, + "y": -9.306491584404704, + "z": 29.577901719298385 + }, + "state": [ + -9.942620961121035, + -9.306491584404704, + 29.577901719298385 + ], + "step": 113, + "time": 2.825 + }, + { + "observations": { + "radius": 32.530232857091384, + "x": -9.728077279060006, + "y": -8.660600504971324, + "z": 29.808967796327916 + }, + "state": [ + -9.728077279060006, + -8.660600504971324, + 29.808967796327916 + ], + "step": 114, + "time": 2.85 + }, + { + "observations": { + "radius": 32.27898875008796, + "x": -9.416894150022085, + "y": -8.01368251697315, + "z": 29.816708601264892 + }, + "state": [ + -9.416894150022085, + -8.01368251697315, + 29.816708601264892 + ], + "step": 115, + "time": 2.875 + }, + { + "observations": { + "radius": 31.839563974222607, + "x": -9.036789210839043, + "y": -7.421027133723704, + "z": 29.614567886565787 + }, + "state": [ + -9.036789210839043, + -7.421027133723704, + 29.614567886565787 + ], + "step": 116, + "time": 2.9 + }, + { + "observations": { + "radius": 31.25490383515645, + "x": -8.620101833023508, + "y": -6.9242888209672335, + "z": 29.233834549319912 + }, + "state": [ + -8.620101833023508, + -6.9242888209672335, + 29.233834549319912 + ], + "step": 117, + "time": 2.925 + }, + { + "observations": { + "radius": 30.57303519726184, + "x": -8.199353546337525, + "y": -6.548747992138781, + "z": 28.715761914506672 + }, + "state": [ + -8.199353546337525, + -6.548747992138781, + 28.715761914506672 + ], + "step": 118, + "time": 2.95 + }, + { + "observations": { + "radius": 29.841327727738076, + "x": -7.8036792800975, + "y": -6.304657220920332, + "z": 28.104425409076473 + }, + "state": [ + -7.8036792800975, + -6.304657220920332, + 28.104425409076473 + ], + "step": 119, + "time": 2.975 + }, + { + "observations": { + "radius": 29.10297116795434, + "x": -7.456658265882377, + "y": -6.1909961304502055, + "z": 27.441806522555694 + }, + "state": [ + -7.456658265882377, + -6.1909961304502055, + 27.441806522555694 + ], + "step": 120, + "time": 3.0 + }, + { + "observations": { + "radius": 28.39560585108592, + "x": -7.175554668236149, + "y": -6.199830281266217, + "z": 26.765349826536433 + }, + "state": [ + -7.175554668236149, + -6.199830281266217, + 26.765349826536433 + ], + "step": 121, + "time": 3.025 + }, + { + "observations": { + "radius": 27.751487644383747, + "x": -6.971630311238605, + "y": -6.320004138616764, + "z": 26.107450755821983 + }, + "state": [ + -6.971630311238605, + -6.320004138616764, + 26.107450755821983 + ], + "step": 122, + "time": 3.05 + }, + { + "observations": { + "radius": 27.198413132572597, + "x": -6.851066312672156, + "y": -6.539582981434598, + "z": 25.49608640043403 + }, + "state": [ + -6.851066312672156, + -6.539582981434598, + 25.49608640043403 + ], + "step": 123, + "time": 3.075 + }, + { + "observations": { + "radius": 26.760733055209755, + "x": -6.81606642454537, + "y": -6.84697260785584, + "z": 24.955901872215577 + }, + "state": [ + -6.81606642454537, + -6.84697260785584, + 24.955901872215577 + ], + "step": 124, + "time": 3.1 + }, + { + "observations": { + "radius": 26.45997329423529, + "x": -6.865829852845529, + "y": -7.230912602676366, + "z": 24.50927314499302 + }, + "state": [ + -6.865829852845529, + -7.230912602676366, + 24.50927314499302 + ], + "step": 125, + "time": 3.125 + }, + { + "observations": { + "radius": 26.314764104768805, + "x": -6.99720384792865, + "y": -7.679620182649496, + "z": 24.17704245871285 + }, + "state": [ + -6.99720384792865, + -7.679620182649496, + 24.17704245871285 + ], + "step": 126, + "time": 3.15 + }, + { + "observations": { + "radius": 26.33992563217131, + "x": -7.204931856049494, + "y": -8.179359014671727, + "z": 23.978714005699032 + }, + "state": [ + -7.204931856049494, + -8.179359014671727, + 23.978714005699032 + ], + "step": 127, + "time": 3.175 + }, + { + "observations": { + "radius": 26.544696196097846, + "x": -7.481489637454292, + "y": -8.712704059878728, + "z": 23.93192422085546 + }, + "state": [ + -7.481489637454292, + -8.712704059878728, + 23.93192422085546 + ], + "step": 128, + "time": 3.2 + }, + { + "observations": { + "radius": 26.93025331927283, + "x": -7.8165693037932575, + "y": -9.256825186621224, + "z": 24.051007788106034 + }, + "state": [ + -7.8165693037932575, + -9.256825186621224, + 24.051007788106034 + ], + "step": 129, + "time": 3.225 + }, + { + "observations": { + "radius": 27.486877679489808, + "x": -8.196341764968905, + "y": -9.782237912265376, + "z": 24.344532192402042 + }, + "state": [ + -8.196341764968905, + -9.782237912265376, + 24.344532192402042 + ], + "step": 130, + "time": 3.25 + }, + { + "observations": { + "radius": 28.191334615958127, + "x": -8.60271826418185, + "y": -10.252642448283064, + "z": 24.811850167282877 + }, + "state": [ + -8.60271826418185, + -10.252642448283064, + 24.811850167282877 + ], + "step": 131, + "time": 3.275 + }, + { + "observations": { + "radius": 29.00524955072611, + "x": -9.01293733464456, + "y": -10.626597076467611, + "z": 25.439082072199017 + }, + "state": [ + -9.01293733464456, + -10.626597076467611, + 25.439082072199017 + ], + "step": 132, + "time": 3.3 + }, + { + "observations": { + "radius": 29.875368228253322, + "x": -9.399889647997988, + "y": -10.86166846070337, + "z": 26.19549311673575 + }, + "state": [ + -9.399889647997988, + -10.86166846070337, + 26.19549311673575 + ], + "step": 133, + "time": 3.325 + }, + { + "observations": { + "radius": 30.736507944494484, + "x": -9.733592935693878, + "y": -10.92116253351349, + "z": 27.03180160664035 + }, + "state": [ + -9.733592935693878, + -10.92116253351349, + 27.03180160664035 + ], + "step": 134, + "time": 3.35 + }, + { + "observations": { + "radius": 31.51758682506312, + "x": -9.984046140791676, + "y": -10.782476440895206, + "z": 27.88216820362927 + }, + "state": [ + -9.984046140791676, + -10.782476440895206, + 27.88216820362927 + ], + "step": 135, + "time": 3.375 + }, + { + "observations": { + "radius": 32.150284002465625, + "x": -10.125278406986332, + "y": -10.444813053763928, + "z": 28.670984965503646 + }, + "state": [ + -10.125278406986332, + -10.444813053763928, + 28.670984965503646 + ], + "step": 136, + "time": 3.4 + }, + { + "observations": { + "radius": 32.578789519508746, + "x": -10.139841314597831, + "y": -9.933217656580728, + "z": 29.323920809779523 + }, + "state": [ + -10.139841314597831, + -9.933217656580728, + 29.323920809779523 + ], + "step": 137, + "time": 3.425 + }, + { + "observations": { + "radius": 32.76822626144205, + "x": -10.022526259456797, + "y": -9.296514404254289, + "z": 29.780537933876413 + }, + "state": [ + -10.022526259456797, + -9.296514404254289, + 29.780537933876413 + ], + "step": 138, + "time": 3.45 + }, + { + "observations": { + "radius": 32.70929778598074, + "x": -9.782052788363952, + "y": -8.598928419463716, + "z": 30.004466916353714 + }, + "state": [ + -9.782052788363952, + -8.598928419463716, + 30.004466916353714 + ], + "step": 139, + "time": 3.475 + }, + { + "observations": { + "radius": 32.41781301965153, + "x": -9.44002900857693, + "y": -7.90795415171019, + "z": 29.987742736470913 + }, + "state": [ + -9.44002900857693, + -7.90795415171019, + 29.987742736470913 + ], + "step": 140, + "time": 3.5 + }, + { + "observations": { + "radius": 31.929542118123212, + "x": -9.027427390729672, + "y": -7.282636847818691, + "z": 29.74835146896213 + }, + "state": [ + -9.027427390729672, + -7.282636847818691, + 29.74835146896213 + ], + "step": 141, + "time": 3.525 + }, + { + "observations": { + "radius": 31.29241200190871, + "x": -8.579660429524134, + "y": -6.765861321220828, + "z": 29.322816992800433 + }, + "state": [ + -8.579660429524134, + -6.765861321220828, + 29.322816992800433 + ], + "step": 142, + "time": 3.55 + }, + { + "observations": { + "radius": 30.558577590929623, + "x": -8.131660890192794, + "y": -6.382047968867928, + "z": 28.757124669737824 + }, + "state": [ + -8.131660890192794, + -6.382047968867928, + 28.757124669737824 + ], + "step": 143, + "time": 3.575 + }, + { + "observations": { + "radius": 29.778319675202898, + "x": -7.714092851365886, + "y": -6.139364428804183, + "z": 28.098919882611423 + }, + "state": [ + -7.714092851365886, + -6.139364428804183, + 28.098919882611423 + ], + "step": 144, + "time": 3.6 + }, + { + "observations": { + "radius": 28.996576545689607, + "x": -7.351210683476301, + "y": -6.03435511978066, + "z": 27.392475447566937 + }, + "state": [ + -7.351210683476301, + -6.03435511978066, + 27.392475447566937 + ], + "step": 145, + "time": 3.625 + }, + { + "observations": { + "radius": 28.251880324242332, + "x": -7.060288817467673, + "y": -6.056925979488196, + "z": 26.676482364589468 + }, + "state": [ + -7.060288817467673, + -6.056925979488196, + 26.676482364589468 + ], + "step": 146, + "time": 3.65 + }, + { + "observations": { + "radius": 27.576904217900044, + "x": -6.852184331328521, + "y": -6.194352566824667, + "z": 25.98390294799074 + }, + "state": [ + -6.852184331328521, + -6.194352566824667, + 25.98390294799074 + ], + "step": 147, + "time": 3.675 + }, + { + "observations": { + "radius": 26.999727461816217, + "x": -6.732491861324419, + "y": -6.433785011903785, + "z": 25.342952605609227 + }, + "state": [ + -6.732491861324419, + -6.433785011903785, + 25.342952605609227 + ], + "step": 148, + "time": 3.7 + }, + { + "observations": { + "radius": 26.545089832462182, + "x": -6.702823325777808, + "y": -6.763273124470051, + "z": 24.778460208832936 + }, + "state": [ + -6.702823325777808, + -6.763273124470051, + 24.778460208832936 + ], + "step": 149, + "time": 3.725 + }, + { + "observations": { + "radius": 26.23514117748414, + "x": -6.761885883984732, + "y": -7.171584245643757, + "z": 24.31312220390722 + }, + "state": [ + -6.761885883984732, + -7.171584245643757, + 24.31312220390722 + ], + "step": 150, + "time": 3.75 + }, + { + "observations": { + "radius": 26.08938734190142, + "x": -6.906173816641112, + "y": -7.6471348961543395, + "z": 23.968358787579206 + }, + "state": [ + -6.906173816641112, + -7.6471348961543395, + 23.968358787579206 + ], + "step": 151, + "time": 3.775 + }, + { + "observations": { + "radius": 26.12368186538023, + "x": -7.13019689899264, + "y": -8.176325167098428, + "z": 23.764569281749345 + }, + "state": [ + -7.13019689899264, + -8.176325167098428, + 23.764569281749345 + ], + "step": 152, + "time": 3.8 + }, + { + "observations": { + "radius": 26.348250986549015, + "x": -7.426247347073334, + "y": -8.741547732499843, + "z": 23.720592817859643 + }, + "state": [ + -7.426247347073334, + -8.741547732499843, + 23.720592817859643 + ], + "step": 153, + "time": 3.825 + }, + { + "observations": { + "radius": 26.764910254625963, + "x": -7.7837708982415705, + "y": -9.319198566240452, + "z": 23.852166979644668 + }, + "state": [ + -7.7837708982415705, + -9.319198566240452, + 23.852166979644668 + ], + "step": 154, + "time": 3.85 + }, + { + "observations": { + "radius": 27.363852094948175, + "x": -8.188481529633949, + "y": -9.878166893940119, + "z": 24.16921576155314 + }, + "state": [ + -8.188481529633949, + -9.878166893940119, + 24.16921576155314 + ], + "step": 155, + "time": 3.875 + }, + { + "observations": { + "radius": 28.12063492047517, + "x": -8.621458392891117, + "y": -10.379499501852045, + "z": 24.671979118047016 + }, + "state": [ + -8.621458392891117, + -10.379499501852045, + 24.671979118047016 + ], + "step": 156, + "time": 3.9 + }, + { + "observations": { + "radius": 28.994241276132463, + "x": -9.05858728440732, + "y": -10.77811038453472, + "z": 25.34640724300275 + }, + "state": [ + -9.05858728440732, + -10.77811038453472, + 25.34640724300275 + ], + "step": 157, + "time": 3.925 + }, + { + "observations": { + "radius": 29.927217929089128, + "x": -9.47081947434444, + "y": -11.027328915217304, + "z": 26.159892363218628 + }, + "state": [ + -9.47081947434444, + -11.027328915217304, + 26.159892363218628 + ], + "step": 158, + "time": 3.95 + }, + { + "observations": { + "radius": 30.84884257293057, + "x": -9.825735010976416, + "y": -11.086480658210716, + "z": 27.059119834145484 + }, + "state": [ + -9.825735010976416, + -11.086480658210716, + 27.059119834145484 + ], + "step": 159, + "time": 3.975 + }, + { + "observations": { + "radius": 31.681802816079756, + "x": -10.090698427790318, + "y": -10.930443913910294, + "z": 27.972125960698992 + }, + "state": [ + -10.090698427790318, + -10.930443913910294, + 27.972125960698992 + ], + "step": 160, + "time": 4.0 + }, + { + "observations": { + "radius": 32.351913085320504, + "x": -10.237416328165208, + "y": -10.558545729450543, + "z": 28.815945226264052 + }, + "state": [ + -10.237416328165208, + -10.558545729450543, + 28.815945226264052 + ], + "step": 161, + "time": 4.025 + }, + { + "observations": { + "radius": 32.79909285551966, + "x": -10.247028718847162, + "y": -9.999180903652642, + "z": 29.50924051608497 + }, + "state": [ + -10.247028718847162, + -9.999180903652642, + 29.50924051608497 + ], + "step": 162, + "time": 4.05 + }, + { + "observations": { + "radius": 32.986778032202565, + "x": -10.114304618675666, + "y": -9.307269804734062, + "z": 29.986715322094273 + }, + "state": [ + -10.114304618675666, + -9.307269804734062, + 29.986715322094273 + ], + "step": 163, + "time": 4.075 + }, + { + "observations": { + "radius": 32.906907949539594, + "x": -9.849471600401642, + "y": -8.554372162833815, + "z": 30.21051500540975 + }, + "state": [ + -9.849471600401642, + -8.554372162833815, + 30.21051500540975 + ], + "step": 164, + "time": 4.1 + }, + { + "observations": { + "radius": 32.5789781983663, + "x": -9.47688986448504, + "y": -7.8146299460122925, + "z": 30.174657210197687 + }, + "state": [ + -9.47688986448504, + -7.8146299460122925, + 30.174657210197687 + ], + "step": 165, + "time": 4.125 + }, + { + "observations": { + "radius": 32.04381651201244, + "x": -9.030912907013306, + "y": -7.15154658740108, + "z": 29.901574709865926 + }, + "state": [ + -9.030912907013306, + -7.15154658740108, + 29.901574709865926 + ], + "step": 166, + "time": 4.15 + }, + { + "observations": { + "radius": 31.354546117072474, + "x": -8.55025853201093, + "y": -6.609737108141371, + "z": 29.43317883961326 + }, + "state": [ + -8.55025853201093, + -6.609737108141371, + 29.43317883961326 + ], + "step": 167, + "time": 4.175 + }, + { + "observations": { + "radius": 30.56771049240436, + "x": -8.072534329708432, + "y": -6.213025601546186, + "z": 28.820434193774005 + }, + "state": [ + -8.072534329708432, + -6.213025601546186, + 28.820434193774005 + ], + "step": 168, + "time": 4.2 + }, + { + "observations": { + "radius": 29.736726699432825, + "x": -7.6301747637531045, + "y": -5.967574493934639, + "z": 28.114789747225338 + }, + "state": [ + -7.6301747637531045, + -5.967574493934639, + 28.114789747225338 + ], + "step": 169, + "time": 4.225 + }, + { + "observations": { + "radius": 28.90843887915473, + "x": -7.248301208423319, + "y": -5.867467521903505, + "z": 27.36298216388706 + }, + "state": [ + -7.248301208423319, + -5.867467521903505, + 27.36298216388706 + ], + "step": 170, + "time": 4.25 + }, + { + "observations": { + "radius": 28.122363753835476, + "x": -6.944336943045684, + "y": -5.900389401610045, + "z": 26.605054640685445 + }, + "state": [ + -6.944336943045684, + -5.900389401610045, + 26.605054640685445 + ], + "step": 171, + "time": 4.275 + }, + { + "observations": { + "radius": 27.4116428346629, + "x": -6.7288291293126195, + "y": -6.051996199816513, + "z": 25.874589145357387 + }, + "state": [ + -6.7288291293126195, + -6.051996199816513, + 25.874589145357387 + ], + "step": 172, + "time": 4.3 + }, + { + "observations": { + "radius": 26.804677117507186, + "x": -6.60685295561112, + "y": -6.308512309162916, + "z": 25.200057179337627 + }, + "state": [ + -6.60685295561112, + -6.308512309162916, + 25.200057179337627 + ], + "step": 173, + "time": 4.325 + }, + { + "observations": { + "radius": 26.326656266365585, + "x": -6.579484511570286, + "y": -6.657678767052277, + "z": 24.60647327765835 + }, + "state": [ + -6.579484511570286, + -6.657678767052277, + 24.60647327765835 + ], + "step": 174, + "time": 4.35 + }, + { + "observations": { + "radius": 26.000472214732145, + "x": -6.645001121045633, + "y": -7.0884079806266325, + "z": 24.1168610683594 + }, + "state": [ + -6.645001121045633, + -7.0884079806266325, + 24.1168610683594 + ], + "step": 175, + "time": 4.375 + }, + { + "observations": { + "radius": 25.846717955641285, + "x": -6.799627137560409, + "y": -7.589510670520946, + "z": 23.753257200869744 + }, + "state": [ + -6.799627137560409, + -7.589510670520946, + 23.753257200869744 + ], + "step": 176, + "time": 4.4 + }, + { + "observations": { + "radius": 25.88261734450885, + "x": -7.037755626278166, + "y": -8.147795808244776, + "z": 23.537062259640845 + }, + "state": [ + -7.037755626278166, + -8.147795808244776, + 23.537062259640845 + ], + "step": 177, + "time": 4.425 + }, + { + "observations": { + "radius": 26.119865424125887, + "x": -7.351654204854937, + "y": -8.74580852068333, + "z": 23.488537279835636 + }, + "state": [ + -7.351654204854937, + -8.74580852068333, + 23.488537279835636 + ], + "step": 178, + "time": 4.45 + }, + { + "observations": { + "radius": 26.56153504532745, + "x": -7.7307235897479565, + "y": -9.359526612189653, + "z": 23.625205149136512 + }, + "state": [ + -7.7307235897479565, + -9.359526612189653, + 23.625205149136512 + ], + "step": 179, + "time": 4.475 + }, + { + "observations": { + "radius": 27.198446341556735, + "x": -8.16045154575441, + "y": -9.95651123281032, + "z": 23.958931487753315 + }, + "state": [ + -8.16045154575441, + -9.95651123281032, + 23.958931487753315 + ], + "step": 180, + "time": 4.5 + }, + { + "observations": { + "radius": 28.005678334476162, + "x": -8.621312854577804, + "y": -10.495276805372482, + "z": 24.49163425368445 + }, + "state": [ + -8.621312854577804, + -10.495276805372482, + 24.49163425368445 + ], + "step": 181, + "time": 4.525 + }, + { + "observations": { + "radius": 28.94017964447165, + "x": -9.08801040900644, + "y": -10.926892889222032, + "z": 25.210019366266874 + }, + "state": [ + -9.08801040900644, + -10.926892889222032, + 25.210019366266874 + ], + "step": 182, + "time": 4.55 + }, + { + "observations": { + "radius": 29.9406273711576, + "x": -9.52959483653694, + "y": -11.199810095854014, + "z": 26.08049546014735 + }, + "state": [ + -9.52959483653694, + -11.199810095854014, + 26.08049546014735 + ], + "step": 183, + "time": 4.575 + }, + { + "observations": { + "radius": 30.93065319580666, + "x": -9.911042681520756, + "y": -11.268274009706332, + "z": 27.046303646275128 + }, + "state": [ + -9.911042681520756, + -11.268274009706332, + 27.046303646275128 + ], + "step": 184, + "time": 4.6 + }, + { + "observations": { + "radius": 31.82608368249973, + "x": -10.196672855171004, + "y": -11.103248154142978, + "z": 28.029365773731215 + }, + "state": [ + -10.196672855171004, + -11.103248154142978, + 28.029365773731215 + ], + "step": 185, + "time": 4.625 + }, + { + "observations": { + "radius": 32.54575754153633, + "x": -10.3552384497546, + "y": -10.702837579249357, + "z": 28.938635737598283 + }, + "state": [ + -10.3552384497546, + -10.702837579249357, + 28.938635737598283 + ], + "step": 186, + "time": 4.65 + }, + { + "observations": { + "radius": 33.02393613664911, + "x": -10.365725134069558, + "y": -10.0979051656859, + "z": 29.684413615013717 + }, + "state": [ + -10.365725134069558, + -10.0979051656859, + 29.684413615013717 + ], + "step": 187, + "time": 4.675 + }, + { + "observations": { + "radius": 33.22101559818714, + "x": -10.222189378826094, + "y": -9.349333932631872, + "z": 30.194911437103872 + }, + "state": [ + -10.222189378826094, + -9.349333932631872, + 30.194911437103872 + ], + "step": 188, + "time": 4.7 + }, + { + "observations": { + "radius": 33.129152519246674, + "x": -9.93588835780457, + "y": -8.536625276324862, + "z": 30.429342715155105 + }, + "state": [ + -9.93588835780457, + -8.536625276324862, + 30.429342715155105 + ], + "step": 189, + "time": 4.725 + }, + { + "observations": { + "radius": 32.77100829908906, + "x": -9.533755183080153, + "y": -7.741630346619882, + "z": 30.382785531026453 + }, + "state": [ + -9.533755183080153, + -7.741630346619882, + 30.382785531026453 + ], + "step": 190, + "time": 4.75 + }, + { + "observations": { + "radius": 32.192426963953814, + "x": -9.053633989064087, + "y": -7.033435491673019, + "z": 30.08180264887792 + }, + "state": [ + -9.053633989064087, + -7.033435491673019, + 30.08180264887792 + ], + "step": 191, + "time": 4.775 + }, + { + "observations": { + "radius": 31.45201281954833, + "x": -8.537858340253399, + "y": -6.459271639151215, + "z": 29.57383802035939 + }, + "state": [ + -8.537858340253399, + -6.459271639151215, + 29.57383802035939 + ], + "step": 192, + "time": 4.8 + }, + { + "observations": { + "radius": 30.61111636065369, + "x": -8.02710771195497, + "y": -6.042893726351992, + "z": 28.91521091118252 + }, + "state": [ + -8.02710771195497, + -6.042893726351992, + 28.91521091118252 + ], + "step": 193, + "time": 4.825 + }, + { + "observations": { + "radius": 29.726691057386553, + "x": -7.5559737192255225, + "y": -5.788661572177453, + "z": 28.161584109891173 + }, + "state": [ + -7.5559737192255225, + -5.788661572177453, + 28.161584109891173 + ], + "step": 194, + "time": 4.85 + }, + { + "observations": { + "radius": 28.847788150321296, + "x": -7.150763623351176, + "y": -5.688184356695072, + "z": 27.36249293271768 + }, + "state": [ + -7.150763623351176, + -5.688184356695072, + 27.36249293271768 + ], + "step": 195, + "time": 4.875 + }, + { + "observations": { + "radius": 28.01509413184893, + "x": -6.829281097474086, + "y": -5.726808871292273, + "z": 26.559557207523767 + }, + "state": [ + -6.829281097474086, + -5.726808871292273, + 26.559557207523767 + ], + "step": 196, + "time": 4.9 + }, + { + "observations": { + "radius": 27.262309839348763, + "x": -6.601914851300718, + "y": -5.88843986022737, + "z": 25.787100148820784 + }, + "state": [ + -6.601914851300718, + -5.88843986022737, + 25.787100148820784 + ], + "step": 197, + "time": 4.925 + }, + { + "observations": { + "radius": 26.6181962205639, + "x": -6.473313468739795, + "y": -6.158286757591545, + "z": 25.073892537520912 + }, + "state": [ + -6.473313468739795, + -6.158286757591545, + 25.073892537520912 + ], + "step": 198, + "time": 4.95 + }, + { + "observations": { + "radius": 26.10842778783538, + "x": -6.444078343775779, + "y": -6.523771309448356, + "z": 24.44512760764225 + }, + "state": [ + -6.444078343775779, + -6.523771309448356, + 24.44512760764225 + ], + "step": 199, + "time": 4.975 + }, + { + "observations": { + "radius": 25.756724838650538, + "x": -6.512113704531703, + "y": -6.974042783515878, + "z": 23.924129592670617 + }, + "state": [ + -6.512113704531703, + -6.974042783515878, + 23.924129592670617 + ], + "step": 200, + "time": 5.0 + }, + { + "observations": { + "radius": 25.58496263588912, + "x": -6.673451859712237, + "y": -7.498516627479681, + "z": 23.53354205688885 + }, + "state": [ + -6.673451859712237, + -7.498516627479681, + 23.53354205688885 + ], + "step": 201, + "time": 5.025 + }, + { + "observations": { + "radius": 25.61209484170143, + "x": -6.922491031100969, + "y": -8.084748343699566, + "z": 23.29582289432341 + }, + "state": [ + -6.922491031100969, + -8.084748343699566, + 23.29582289432341 + ], + "step": 202, + "time": 5.05 + }, + { + "observations": { + "radius": 25.851851695989087, + "x": -7.2516579330707085, + "y": -8.715892626279432, + "z": 23.232841174947037 + }, + "state": [ + -7.2516579330707085, + -8.715892626279432, + 23.232841174947037 + ], + "step": 203, + "time": 5.075 + }, + { + "observations": { + "radius": 26.309350821773066, + "x": -7.65056285695245, + "y": -9.368046799453284, + "z": 23.364300284797825 + }, + "state": [ + -7.65056285695245, + -9.368046799453284, + 23.364300284797825 + ], + "step": 204, + "time": 5.1 + }, + { + "observations": { + "radius": 26.97701579545057, + "x": -8.104785757817927, + "y": -10.00797214591542, + "z": 23.704689885641667 + }, + "state": [ + -8.104785757817927, + -10.00797214591542, + 23.704689885641667 + ], + "step": 205, + "time": 5.125 + }, + { + "observations": { + "radius": 27.830516032497194, + "x": -8.594546058491579, + "y": -10.592012100980645, + "z": 24.258620742660327 + }, + "state": [ + -8.594546058491579, + -10.592012100980645, + 24.258620742660327 + ], + "step": 206, + "time": 5.15 + }, + { + "observations": { + "radius": 28.82576391665699, + "x": -9.093675763781413, + "y": -11.067369065169105, + "z": 25.01485695456595 + }, + "state": [ + -9.093675763781413, + -11.067369065169105, + 25.01485695456595 + ], + "step": 207, + "time": 5.175 + }, + { + "observations": { + "radius": 29.89826284789579, + "x": -9.569496256103003, + "y": -11.376983547141524, + "z": 25.940221820454184 + }, + "state": [ + -9.569496256103003, + -11.376983547141524, + 25.940221820454184 + ], + "step": 208, + "time": 5.2 + }, + { + "observations": { + "radius": 30.96613801386902, + "x": -9.984290979408794, + "y": -11.468663169091657, + "z": 26.975644612249784 + }, + "state": [ + -9.984290979408794, + -11.468663169091657, + 26.975644612249784 + ], + "step": 209, + "time": 5.225 + }, + { + "observations": { + "radius": 31.93774293835399, + "x": -10.2988888142791, + "y": -11.307499224365149, + "z": 28.03734606696002 + }, + "state": [ + -10.2988888142791, + -11.307499224365149, + 28.03734606696002 + ], + "step": 210, + "time": 5.25 + }, + { + "observations": { + "radius": 32.72355221275185, + "x": -10.478281250821421, + "y": -10.888259543213199, + "z": 29.02554556884344 + }, + "state": [ + -10.478281250821421, + -10.888259543213199, + 29.02554556884344 + ], + "step": 211, + "time": 5.275 + }, + { + "observations": { + "radius": 33.2502279695288, + "x": -10.49824629037268, + "y": -10.242646364626207, + "z": 29.840453754953543 + }, + "state": [ + -10.49824629037268, + -10.242646364626207, + 29.840453754953543 + ], + "step": 212, + "time": 5.3 + }, + { + "observations": { + "radius": 33.473070463662765, + "x": -10.351059420358782, + "y": -9.436913526972992, + "z": 30.401425595290238 + }, + "state": [ + -10.351059420358782, + -9.436913526972992, + 30.401425595290238 + ], + "step": 213, + "time": 5.325 + }, + { + "observations": { + "radius": 33.382772114001796, + "x": -10.048183233451446, + "y": -8.559099446322882, + "z": 30.662441265990488 + }, + "state": [ + -10.048183233451446, + -8.559099446322882, + 30.662441265990488 + ], + "step": 214, + "time": 5.35 + }, + { + "observations": { + "radius": 33.00418552185692, + "x": -9.618722094971536, + "y": -7.700219166798005, + "z": 30.61801874720395 + }, + "state": [ + -9.618722094971536, + -7.700219166798005, + 30.61801874720395 + ], + "step": 215, + "time": 5.375 + }, + { + "observations": { + "radius": 32.38795769723617, + "x": -9.104061986246535, + "y": -6.936664908435845, + "z": 30.298160655337064 + }, + "state": [ + -9.104061986246535, + -6.936664908435845, + 30.298160655337064 + ], + "step": 216, + "time": 5.4 + }, + { + "observations": { + "radius": 31.598532862370952, + "x": -8.550550704423092, + "y": -6.319744291381743, + "z": 29.755943839794003 + }, + "state": [ + -8.550550704423092, + -6.319744291381743, + 29.755943839794003 + ], + "step": 217, + "time": 5.425 + }, + { + "observations": { + "radius": 30.702705050208603, + "x": -8.002514149707439, + "y": -5.874073972397062, + "z": 29.05359047778165 + }, + "state": [ + -8.002514149707439, + -5.874073972397062, + 29.05359047778165 + ], + "step": 218, + "time": 5.45 + }, + { + "observations": { + "radius": 29.76161774967387, + "x": -7.497291326709046, + "y": -5.602609042384341, + "z": 28.251642178081426 + }, + "state": [ + -7.497291326709046, + -5.602609042384341, + 28.251642178081426 + ], + "step": 219, + "time": 5.475 + }, + { + "observations": { + "radius": 28.82704352286954, + "x": -7.062875224207575, + "y": -5.494495992463185, + "z": 27.40300614212783 + }, + "state": [ + -7.062875224207575, + -5.494495992463185, + 27.40300614212783 + ], + "step": 220, + "time": 5.5 + }, + { + "observations": { + "radius": 27.941161842477683, + "x": -6.717815008808955, + "y": -5.532549777897143, + "z": 26.551278303879126 + }, + "state": [ + -6.717815008808955, + -5.532549777897143, + 26.551278303879126 + ], + "step": 221, + "time": 5.525 + }, + { + "observations": { + "radius": 27.138384558839114, + "x": -6.47257334248601, + "y": -5.698672050826822, + "z": 25.731747854483224 + }, + "state": [ + -6.47257334248601, + -5.698672050826822, + 25.731747854483224 + ], + "step": 222, + "time": 5.55 + }, + { + "observations": { + "radius": 26.447867876407248, + "x": -6.33150106599557, + "y": -5.976847382460207, + "z": 24.973568123637637 + }, + "state": [ + -6.33150106599557, + -5.976847382460207, + 24.973568123637637 + ], + "step": 223, + "time": 5.575 + }, + { + "observations": { + "radius": 25.89576045671604, + "x": -6.294789654674096, + "y": -6.35407106734614, + "z": 24.302094841929588 + }, + "state": [ + -6.294789654674096, + -6.35407106734614, + 24.302094841929588 + ], + "step": 224, + "time": 5.6 + }, + { + "observations": { + "radius": 25.506632187403966, + "x": -6.360012709717557, + "y": -6.8197631754086245, + "z": 23.740879387821412 + }, + "state": [ + -6.360012709717557, + -6.8197631754086245, + 23.740879387821412 + ], + "step": 225, + "time": 5.625 + }, + { + "observations": { + "radius": 25.303778150694214, + "x": -6.523070095302024, + "y": -7.364146646959665, + "z": 23.31308837098592 + }, + "state": [ + -6.523070095302024, + -7.364146646959665, + 23.31308837098592 + ], + "step": 226, + "time": 5.65 + }, + { + "observations": { + "radius": 25.308222628018342, + "x": -6.7784779597039675, + "y": -7.975916015475431, + "z": 23.042203298583008 + }, + "state": [ + -6.7784779597039675, + -7.975916015475431, + 23.042203298583008 + ], + "step": 227, + "time": 5.675 + }, + { + "observations": { + "radius": 25.53635317293297, + "x": -7.119019605744971, + "y": -8.639425139250854, + "z": 22.9518022492584 + }, + "state": [ + -7.119019605744971, + -8.639425139250854, + 22.9518022492584 + ], + "step": 228, + "time": 5.7 + }, + { + "observations": { + "radius": 25.996283275627338, + "x": -7.534819793648434, + "y": -9.331652088941643, + "z": 23.064117241179133 + }, + "state": [ + -7.534819793648434, + -9.331652088941643, + 23.064117241179133 + ], + "step": 229, + "time": 5.725 + }, + { + "observations": { + "radius": 26.683312822167817, + "x": -8.011968412588343, + "y": -10.01940179126402, + "z": 23.39698982917605 + }, + "state": [ + -8.011968412588343, + -10.01940179126402, + 23.39698982917605 + ], + "step": 230, + "time": 5.75 + }, + { + "observations": { + "radius": 27.57520526220249, + "x": -8.530934030070338, + "y": -10.657584881930426, + "z": 23.958943931476526 + }, + "state": [ + -8.530934030070338, + -10.657584881930426, + 23.958943931476526 + ], + "step": 231, + "time": 5.775 + }, + { + "observations": { + "radius": 28.628377158283254, + "x": -9.065193237952798, + "y": -11.189867173639513, + "z": 24.742536711335685 + }, + "state": [ + -9.065193237952798, + -11.189867173639513, + 24.742536711335685 + ], + "step": 232, + "time": 5.8 + }, + { + "observations": { + "radius": 29.7764286417089, + "x": -9.580729970516986, + "y": -11.553231102321764, + "z": 25.717079285625825 + }, + "state": [ + -9.580729970516986, + -11.553231102321764, + 25.717079285625825 + ], + "step": 233, + "time": 5.825 + }, + { + "observations": { + "radius": 30.932593337896286, + "x": -10.03722030952353, + "y": -11.687522275485593, + "z": 26.823149742820696 + }, + "state": [ + -10.03722030952353, + -11.687522275485593, + 26.823149742820696 + ], + "step": 234, + "time": 5.85 + }, + { + "observations": { + "radius": 31.997346868865435, + "x": -10.391604827413559, + "y": -11.549364174531423, + "z": 27.97243183781878 + }, + "state": [ + -10.391604827413559, + -11.549364174531423, + 27.97243183781878 + ], + "step": 235, + "time": 5.875 + }, + { + "observations": { + "radius": 32.87120533265541, + "x": -10.604148973317612, + "y": -11.127016935719922, + "z": 29.056112243131945 + }, + "state": [ + -10.604148973317612, + -11.127016935719922, + 29.056112243131945 + ], + "step": 236, + "time": 5.9 + }, + { + "observations": { + "radius": 33.470636436807595, + "x": -10.645992732373015, + "y": -10.450212949435775, + "z": 29.962299503520388 + }, + "state": [ + -10.645992732373015, + -10.450212949435775, + 29.962299503520388 + ], + "step": 237, + "time": 5.925 + }, + { + "observations": { + "radius": 33.742822297092935, + "x": -10.506034803861503, + "y": -9.589108630809617, + "z": 30.598207217740317 + }, + "state": [ + -10.506034803861503, + -9.589108630809617, + 30.598207217740317 + ], + "step": 238, + "time": 5.95 + }, + { + "observations": { + "radius": 33.67430342711141, + "x": -10.194583442990426, + "y": -8.64063175392485, + "z": 30.909038526265064 + }, + "state": [ + -10.194583442990426, + -8.64063175392485, + 30.909038526265064 + ], + "step": 239, + "time": 5.975 + }, + { + "observations": { + "radius": 33.29038692158823, + "x": -9.742121121320237, + "y": -7.706838553077476, + "z": 30.886009404961616 + }, + "state": [ + -9.742121121320237, + -7.706838553077476, + 30.886009404961616 + ], + "step": 240, + "time": 6.0 + }, + { + "observations": { + "radius": 32.6459521322526, + "x": -9.19346866963729, + "y": -6.873977992859345, + "z": 30.561196818766952 + }, + "state": [ + -9.19346866963729, + -6.873977992859345, + 30.561196818766952 + ], + "step": 241, + "time": 6.025 + }, + { + "observations": { + "radius": 31.811674700652663, + "x": -8.599457818410114, + "y": -6.199767186951293, + "z": 29.993246895211794 + }, + "state": [ + -8.599457818410114, + -6.199767186951293, + 29.993246895211794 + ], + "step": 242, + "time": 6.05 + }, + { + "observations": { + "radius": 30.860713095948704, + "x": -8.008861804486223, + "y": -5.711267478506089, + "z": 29.251037061548097 + }, + "state": [ + -8.008861804486223, + -5.711267478506089, + 29.251037061548097 + ], + "step": 243, + "time": 6.075 + }, + { + "observations": { + "radius": 29.859422454176745, + "x": -7.46264212976843, + "y": -5.410769318958752, + "z": 28.401015071947946 + }, + "state": [ + -7.46264212976843, + -5.410769318958752, + 28.401015071947946 + ], + "step": 244, + "time": 6.1 + }, + { + "observations": { + "radius": 28.8631367145788, + "x": -6.991242761683311, + "y": -5.285044269658395, + "z": 27.50039077394044 + }, + "state": [ + -6.991242761683311, + -5.285044269658395, + 27.50039077394044 + ], + "step": 245, + "time": 6.125 + }, + { + "observations": { + "radius": 27.916073412054637, + "x": -6.614525468640691, + "y": -5.314088170712877, + "z": 26.595407018615393 + }, + "state": [ + -6.614525468640691, + -5.314088170712877, + 26.595407018615393 + ], + "step": 246, + "time": 6.15 + }, + { + "observations": { + "radius": 27.053613879224027, + "x": -6.343385837300916, + "y": -5.477377658051767, + "z": 25.72271008343305 + }, + "state": [ + -6.343385837300916, + -5.477377658051767, + 25.72271008343305 + ], + "step": 247, + "time": 6.175 + }, + { + "observations": { + "radius": 26.30535310431999, + "x": -6.182064102558583, + "y": -5.757279704393076, + "z": 24.91199341241478 + }, + "state": [ + -6.182064102558583, + -5.757279704393076, + 24.91199341241478 + ], + "step": 248, + "time": 6.2 + }, + { + "observations": { + "radius": 25.69783846308532, + "x": -6.130414124488634, + "y": -6.140097528686415, + "z": 24.188760337712974 + }, + "state": [ + -6.130414124488634, + -6.140097528686415, + 24.188760337712974 + ], + "step": 249, + "time": 6.225 + }, + { + "observations": { + "radius": 25.256401408394286, + "x": -6.1856968204287215, + "y": -6.615441497690341, + "z": 23.576660084463096 + }, + "state": [ + -6.1856968204287215, + -6.615441497690341, + 23.576660084463096 + ], + "step": 250, + "time": 6.25 + }, + { + "observations": { + "radius": 25.005772650867506, + "x": -6.343701207266577, + "y": -7.1744882259330955, + "z": 23.099195647375804 + }, + "state": [ + -6.343701207266577, + -7.1744882259330955, + 23.099195647375804 + ], + "step": 251, + "time": 6.275 + }, + { + "observations": { + "radius": 24.969293659621037, + "x": -6.599140303916816, + "y": -7.807481671906424, + "z": 22.78069803698862 + }, + "state": [ + -6.599140303916816, + -7.807481671906424, + 22.78069803698862 + ], + "step": 252, + "time": 6.3 + }, + { + "observations": { + "radius": 25.166613814190907, + "x": -6.9453398458725735, + "y": -8.500680839965524, + "z": 22.646393323330813 + }, + "state": [ + -6.9453398458725735, + -8.500680839965524, + 22.646393323330813 + ], + "step": 253, + "time": 6.325 + }, + { + "observations": { + "radius": 25.60990818745594, + "x": -7.373274978481786, + "y": -9.2329509724995, + "z": 22.72124181907841 + }, + "state": [ + -7.373274978481786, + -9.2329509724995, + 22.72124181907841 + ], + "step": 254, + "time": 6.35 + }, + { + "observations": { + "radius": 26.29892207193582, + "x": -7.870059165923193, + "y": -9.97238369036567, + "z": 23.027093485777794 + }, + "state": [ + -7.870059165923193, + -9.97238369036567, + 23.027093485777794 + ], + "step": 255, + "time": 6.375 + }, + { + "observations": { + "radius": 27.21552788835732, + "x": -8.417095152030267, + "y": -10.673743557133811, + "z": 23.5777154516753 + }, + "state": [ + -8.417095152030267, + -10.673743557133811, + 23.5777154516753 + ], + "step": 256, + "time": 6.4 + }, + { + "observations": { + "radius": 28.31890728984361, + "x": -8.988292866051637, + "y": -11.278113586602675, + "z": 24.3716075664395 + }, + "state": [ + -8.988292866051637, + -11.278113586602675, + 24.3716075664395 + ], + "step": 257, + "time": 6.425 + }, + { + "observations": { + "radius": 29.54289143859741, + "x": -9.5490329871944, + "y": -11.716584033995483, + "z": 25.383460405085582 + }, + "state": [ + -9.5490329871944, + -11.716584033995483, + 25.383460405085582 + ], + "step": 258, + "time": 6.45 + }, + { + "observations": { + "radius": 30.797287798277072, + "x": -10.056810288737067, + "y": -11.919632434071248, + "z": 26.556653877755284 + }, + "state": [ + -10.056810288737067, + -11.919632434071248, + 26.556653877755284 + ], + "step": 259, + "time": 6.475 + }, + { + "observations": { + "radius": 31.974879632185633, + "x": -10.464495653965278, + "y": -11.832252714393768, + "z": 27.8008103101982 + }, + "state": [ + -10.464495653965278, + -11.832252714393768, + 27.8008103101982 + ], + "step": 260, + "time": 6.5 + }, + { + "observations": { + "radius": 32.96468410722862, + "x": -10.726617013660427, + "y": -11.431688401279702, + "z": 28.99873421423199 + }, + "state": [ + -10.726617013660427, + -11.431688401279702, + 28.99873421423199 + ], + "step": 261, + "time": 6.525 + }, + { + "observations": { + "radius": 33.669730694303354, + "x": -10.807849440217815, + "y": -10.741080655425826, + "z": 30.024495696982722 + }, + "state": [ + -10.807849440217815, + -10.741080655425826, + 30.024495696982722 + ], + "step": 262, + "time": 6.55 + }, + { + "observations": { + "radius": 34.0247954651942, + "x": -10.691415403123887, + "y": -9.83138007545357, + "z": 30.76888540292157 + }, + "state": [ + -10.691415403123887, + -9.83138007545357, + 30.76888540292157 + ], + "step": 263, + "time": 6.575 + }, + { + "observations": { + "radius": 34.008055104380794, + "x": -10.38428461726704, + "y": -8.807945673608362, + "z": 31.163031591630418 + }, + "state": [ + -10.38428461726704, + -8.807945673608362, + 31.163031591630418 + ], + "step": 264, + "time": 6.6 + }, + { + "observations": { + "radius": 33.64222296855202, + "x": -9.916828566126215, + "y": -7.786026786444469, + "z": 31.190278362602044 + }, + "state": [ + -9.916828566126215, + -7.786026786444469, + 31.190278362602044 + ], + "step": 265, + "time": 6.625 + }, + { + "observations": { + "radius": 32.98508467523511, + "x": -9.336817039426846, + "y": -6.865365503270743, + "z": 30.882137476398853 + }, + "state": [ + -9.336817039426846, + -6.865365503270743, + 30.882137476398853 + ], + "step": 266, + "time": 6.65 + }, + { + "observations": { + "radius": 32.1138103900021, + "x": -8.700019946207364, + "y": -6.113756423444794, + "z": 30.302284618414312 + }, + "state": [ + -8.700019946207364, + -6.113756423444794, + 30.302284618414312 + ], + "step": 267, + "time": 6.675 + }, + { + "observations": { + "radius": 31.109175029613155, + "x": -8.060721482267398, + "y": -5.563386977897503, + "z": 29.527178421626743 + }, + "state": [ + -8.060721482267398, + -5.563386977897503, + 29.527178421626743 + ], + "step": 268, + "time": 6.7 + }, + { + "observations": { + "radius": 30.044298336932073, + "x": -7.464777308573273, + "y": -5.2172663145493985, + "z": 28.630701956030645 + }, + "state": [ + -7.464777308573273, + -5.2172663145493985, + 28.630701956030645 + ], + "step": 269, + "time": 6.725 + }, + { + "observations": { + "radius": 28.97942967272466, + "x": -6.946247006055665, + "y": -5.06008980833395, + "z": 27.675846650443273 + }, + "state": [ + -6.946247006055665, + -5.06008980833395, + 27.675846650443273 + ], + "step": 270, + "time": 6.75 + }, + { + "observations": { + "radius": 27.961746505330332, + "x": -6.527193014417453, + "y": -5.068663805946056, + "z": 26.712612493037543 + }, + "state": [ + -6.527193014417453, + -5.068663805946056, + 26.712612493037543 + ], + "step": 271, + "time": 6.775 + }, + { + "observations": { + "radius": 27.028064558871524, + "x": -6.219514950213297, + "y": -5.219387044986754, + "z": 25.779680107736493 + }, + "state": [ + -6.219514950213297, + -5.219387044986754, + 25.779680107736493 + ], + "step": 272, + "time": 6.8 + }, + { + "observations": { + "radius": 26.208512746796426, + "x": -6.027637380480903, + "y": -5.492342909215909, + "z": 24.907587144804005 + }, + "state": [ + -6.027637380480903, + -5.492342909215909, + 24.907587144804005 + ], + "step": 273, + "time": 6.825 + }, + { + "observations": { + "radius": 25.52989089176847, + "x": -5.951173594567185, + "y": -5.872621386103757, + "z": 24.122006132334967 + }, + "state": [ + -5.951173594567185, + -5.872621386103757, + 24.122006132334967 + ], + "step": 274, + "time": 6.85 + }, + { + "observations": { + "radius": 25.01804477033185, + "x": -5.987057598655353, + "y": -6.3497339335099845, + "z": 23.446504737686254 + }, + "state": [ + -5.987057598655353, + -6.3497339335099845, + 23.446504737686254 + ], + "step": 275, + "time": 6.875 + }, + { + "observations": { + "radius": 24.698945057459365, + "x": -6.130924914097821, + "y": -6.915811240529763, + "z": 22.904610923009656 + }, + "state": [ + -6.130924914097821, + -6.915811240529763, + 22.904610923009656 + ], + "step": 276, + "time": 6.9 + }, + { + "observations": { + "radius": 24.59827949320714, + "x": -6.3776910008576175, + "y": -7.562992672794827, + "z": 22.52113570304052 + }, + "state": [ + -6.3776910008576175, + -7.562992672794827, + 22.52113570304052 + ], + "step": 277, + "time": 6.925 + }, + { + "observations": { + "radius": 24.739404486161657, + "x": -6.721350824335217, + "y": -8.280197400648413, + "z": 22.32263220214899 + }, + "state": [ + -6.721350824335217, + -8.280197400648413, + 22.32263220214899 + ], + "step": 278, + "time": 6.95 + }, + { + "observations": { + "radius": 25.13960274129802, + "x": -7.154048481938361, + "y": -9.049397760362474, + "z": 22.336687679311385 + }, + "state": [ + -7.154048481938361, + -9.049397760362474, + 22.336687679311385 + ], + "step": 279, + "time": 6.975 + }, + { + "observations": { + "radius": 25.804844317335313, + "x": -7.66449351896737, + "y": -9.841657381014507, + "z": 22.589539821216864 + }, + "state": [ + -7.66449351896737, + -9.841657381014507, + 22.589539821216864 + ], + "step": 280, + "time": 7.0 + }, + { + "observations": { + "radius": 26.723645046625766, + "x": -8.235883475063961, + "y": -10.613603575550643, + "z": 23.10140357433446 + }, + "state": [ + -8.235883475063961, + -10.613603575550643, + 23.10140357433446 + ], + "step": 281, + "time": 7.025 + }, + { + "observations": { + "radius": 27.86109028565074, + "x": -8.84367780566241, + "y": -11.30567092640152, + "z": 23.87910215394908 + }, + "state": [ + -8.84367780566241, + -11.30567092640152, + 23.87910215394908 + ], + "step": 282, + "time": 7.05 + }, + { + "observations": { + "radius": 29.15459183280193, + "x": -9.45387488950578, + "y": -11.844185886177181, + "z": 24.906419558108595 + }, + "state": [ + -9.45387488950578, + -11.844185886177181, + 24.906419558108595 + ], + "step": 283, + "time": 7.075 + }, + { + "observations": { + "radius": 30.513405823152016, + "x": -10.022801505380876, + "y": -12.149600384802898, + "z": 26.13424181799999 + }, + "state": [ + -10.022801505380876, + -12.149600384802898, + 26.13424181799999 + ], + "step": 284, + "time": 7.1 + }, + { + "observations": { + "radius": 31.824093047851186, + "x": -10.499610894051315, + "y": -12.152000193021061, + "z": 27.474714933928347 + }, + "state": [ + -10.499610894051315, + -12.152000193021061, + 27.474714933928347 + ], + "step": 285, + "time": 7.125 + }, + { + "observations": { + "radius": 32.96332558685145, + "x": -10.832327010671973, + "y": -11.811693689498263, + "z": 28.80495473810207 + }, + "state": [ + -10.832327010671973, + -11.811693689498263, + 28.80495473810207 + ], + "step": 286, + "time": 7.15 + }, + { + "observations": { + "radius": 33.81712197586697, + "x": -10.977066542815207, + "y": -11.13801522482768, + "z": 29.984101882443944 + }, + "state": [ + -10.977066542815207, + -11.13801522482768, + 29.984101882443944 + ], + "step": 287, + "time": 7.175 + }, + { + "observations": { + "radius": 34.30209437580544, + "x": -10.908234507901467, + "y": -10.19666506871891, + "z": 30.881582212763295 + }, + "state": [ + -10.908234507901467, + -10.19666506871891, + 30.881582212763295 + ], + "step": 288, + "time": 7.2 + }, + { + "observations": { + "radius": 34.3816082577691, + "x": -10.626051500525934, + "y": -9.09890969354278, + "z": 31.40687597147511 + }, + "state": [ + -10.626051500525934, + -9.09890969354278, + 31.40687597147511 + ], + "step": 289, + "time": 7.225 + }, + { + "observations": { + "radius": 34.07047252579655, + "x": -10.15806431902052, + "y": -7.974966928033697, + "z": 31.527935706583598 + }, + "state": [ + -10.15806431902052, + -7.974966928033697, + 31.527935706583598 + ], + "step": 290, + "time": 7.25 + }, + { + "observations": { + "radius": 33.42646895721994, + "x": -9.553663282977242, + "y": -6.942931287202104, + "z": 31.270625992529645 + }, + "state": [ + -9.553663282977242, + -6.942931287202104, + 31.270625992529645 + ], + "step": 291, + "time": 7.275 + }, + { + "observations": { + "radius": 32.53293574942816, + "x": -8.873734077415708, + "y": -6.086357096051437, + "z": 30.70187305848092 + }, + "state": [ + -8.873734077415708, + -6.086357096051437, + 30.70187305848092 + ], + "step": 292, + "time": 7.3 + }, + { + "observations": { + "radius": 31.479785283278783, + "x": -8.179366727443986, + "y": -5.447141312292817, + "z": 29.906579425658673 + }, + "state": [ + -8.179366727443986, + -5.447141312292817, + 29.906579425658673 + ], + "step": 293, + "time": 7.325 + }, + { + "observations": { + "radius": 30.349195167893562, + "x": -7.523115284905232, + "y": -5.031659380504156, + "z": 28.968237565090213 + }, + "state": [ + -7.523115284905232, + -5.031659380504156, + 28.968237565090213 + ], + "step": 294, + "time": 7.35 + }, + { + "observations": { + "radius": 29.208509117614, + "x": -6.944429532090228, + "y": -4.823376475340843, + "z": 27.95794954435503 + }, + "state": [ + -6.944429532090228, + -4.823376475340843, + 27.95794954435503 + ], + "step": 295, + "time": 7.375 + }, + { + "observations": { + "radius": 28.109452075086793, + "x": -6.4689906746381665, + "y": -4.795549998751658, + "z": 26.93132294972749 + }, + "state": [ + -6.4689906746381665, + -4.795549998751658, + 26.93132294972749 + ], + "step": 296, + "time": 7.4 + }, + { + "observations": { + "radius": 27.091154229099317, + "x": -6.1106499424911895, + "y": -4.920560209891928, + "z": 25.930265751935643 + }, + "state": [ + -6.1106499424911895, + -4.920560209891928, + 25.930265751935643 + ], + "step": 297, + "time": 7.425 + }, + { + "observations": { + "radius": 26.184543214808894, + "x": -5.87452531946155, + "y": -5.1751400358983135, + "z": 24.986760119071903 + }, + "state": [ + -5.87452531946155, + -5.1751400358983135, + 24.986760119071903 + ], + "step": 298, + "time": 7.45 + }, + { + "observations": { + "radius": 25.416490635686966, + "x": -5.760162544030062, + "y": -5.542239479897634, + "z": 24.1267922701668 + }, + "state": [ + -5.760162544030062, + -5.542239479897634, + 24.1267922701668 + ], + "step": 299, + "time": 7.475 + }, + { + "observations": { + "radius": 24.81291392832879, + "x": -5.764128704941261, + "y": -6.010621428439611, + "z": 23.373659275592846 + }, + "state": [ + -5.764128704941261, + -6.010621428439611, + 23.373659275592846 + ], + "step": 300, + "time": 7.5 + }, + { + "observations": { + "radius": 24.40051020946596, + "x": -5.881770520310967, + "y": -6.573075092425803, + "z": 22.750480387411272 + }, + "state": [ + -5.881770520310967, + -6.573075092425803, + 22.750480387411272 + ], + "step": 301, + "time": 7.525 + }, + { + "observations": { + "radius": 24.206948708470883, + "x": -6.108082635415025, + "y": -7.2237648864275945, + "z": 22.281941413599878 + }, + "state": [ + -6.108082635415025, + -7.2237648864275945, + 22.281941413599878 + ], + "step": 302, + "time": 7.55 + }, + { + "observations": { + "radius": 24.259340724455342, + "x": -6.4377199244444, + "y": -7.954921023679043, + "z": 21.995240532139178 + }, + "state": [ + -6.4377199244444, + -7.954921023679043, + 21.995240532139178 + ], + "step": 303, + "time": 7.575 + }, + { + "observations": { + "radius": 24.580831392548962, + "x": -6.8642040193201534, + "y": -8.752918443970374, + "z": 21.919999859563703 + }, + "state": [ + -6.8642040193201534, + -8.752918443970374, + 21.919999859563703 + ], + "step": 304, + "time": 7.6 + }, + { + "observations": { + "radius": 25.185350623286553, + "x": -7.37837524440153, + "y": -9.593844845471125, + "z": 22.086638627272148 + }, + "state": [ + -7.37837524440153, + -9.593844845471125, + 22.086638627272148 + ], + "step": 305, + "time": 7.625 + }, + { + "observations": { + "radius": 26.070948806792448, + "x": -7.966185271471441, + "y": -10.438998372307065, + "z": 22.522468268152906 + }, + "state": [ + -7.966185271471441, + -10.438998372307065, + 22.522468268152906 + ], + "step": 306, + "time": 7.65 + }, + { + "observations": { + "radius": 27.212651506140503, + "x": -8.606074600667183, + "y": -11.231440269209237, + "z": 23.244754923242088 + }, + "state": [ + -8.606074600667183, + -11.231440269209237, + 23.244754923242088 + ], + "step": 307, + "time": 7.675 + }, + { + "observations": { + "radius": 28.556329774147706, + "x": -9.2664813598836, + "y": -11.895683790967377, + "z": 24.2505463963623 + }, + "state": [ + -9.2664813598836, + -11.895683790967377, + 24.2505463963623 + ], + "step": 308, + "time": 7.7 + }, + { + "observations": { + "radius": 30.015678466783164, + "x": -9.904468814063836, + "y": -12.343389902354724, + "z": 25.50457168922848 + }, + "state": [ + -9.904468814063836, + -12.343389902354724, + 25.50457168922848 + ], + "step": 309, + "time": 7.725 + }, + { + "observations": { + "radius": 31.474897855383304, + "x": -10.46686586216916, + "y": -12.487562362015597, + "z": 26.929067943115705 + }, + "state": [ + -10.46686586216916, + -12.487562362015597, + 26.929067943115705 + ], + "step": 310, + "time": 7.75 + }, + { + "observations": { + "radius": 32.799474493645995, + "x": -10.89528640950005, + "y": -12.26491603054609, + "z": 28.401938241569905 + }, + "state": [ + -10.89528640950005, + -12.26491603054609, + 28.401938241569905 + ], + "step": 311, + "time": 7.775 + }, + { + "observations": { + "radius": 33.85558415724987, + "x": -11.135425756514902, + "y": -11.660622505903273, + "z": 29.76966164780169 + }, + "state": [ + -11.135425756514902, + -11.660622505903273, + 29.76966164780169 + ], + "step": 312, + "time": 7.8 + }, + { + "observations": { + "radius": 34.534746634724, + "x": -11.148992846608886, + "y": -10.724252150199057, + "z": 30.876189846705433 + }, + "state": [ + -11.148992846608886, + -10.724252150199057, + 30.876189846705433 + ], + "step": 313, + "time": 7.825 + }, + { + "observations": { + "radius": 34.77609960270268, + "x": -10.924392402136998, + "y": -9.565873787462563, + "z": 31.59950652943121 + }, + "state": [ + -10.924392402136998, + -9.565873787462563, + 31.59950652943121 + ], + "step": 314, + "time": 7.85 + }, + { + "observations": { + "radius": 34.57745645746742, + "x": -10.481563651912243, + "y": -8.33015094134999, + "z": 31.880180422533584 + }, + "state": [ + -10.481563651912243, + -8.33015094134999, + 31.880180422533584 + ], + "step": 315, + "time": 7.875 + }, + { + "observations": { + "radius": 33.99043945307081, + "x": -9.868418662152143, + "y": -7.159097567085562, + "z": 31.72871899945395 + }, + "state": [ + -9.868418662152143, + -7.159097567085562, + 31.72871899945395 + ], + "step": 316, + "time": 7.9 + }, + { + "observations": { + "radius": 33.10245344987465, + "x": -9.150184466462921, + "y": -6.160522924599029, + "z": 31.21048711453105 + }, + "state": [ + -9.150184466462921, + -6.160522924599029, + 31.21048711453105 + ], + "step": 317, + "time": 7.925 + }, + { + "observations": { + "radius": 32.01389026016025, + "x": -8.396017811717998, + "y": -5.393918171833799, + "z": 30.41877218512376 + }, + "state": [ + -8.396017811717998, + -5.393918171833799, + 30.41877218512376 + ], + "step": 318, + "time": 7.95 + }, + { + "observations": { + "radius": 30.819188119460602, + "x": -7.667608081758394, + "y": -4.874223239263216, + "z": 29.449483704491005 + }, + "state": [ + -7.667608081758394, + -4.874223239263216, + 29.449483704491005 + ], + "step": 319, + "time": 7.975 + }, + { + "observations": { + "radius": 29.596277338340297, + "x": -7.012491605647682, + "y": -4.585886070892188, + "z": 28.385458296696097 + }, + "state": [ + -7.012491605647682, + -4.585886070892188, + 28.385458296696097 + ], + "step": 320, + "time": 8.0 + }, + { + "observations": { + "radius": 28.404220070513457, + "x": -6.462283256958741, + "y": -4.49860711484509, + "z": 27.291045178725845 + }, + "state": [ + -6.462283256958741, + -4.49860711484509, + 27.291045178725845 + ], + "step": 321, + "time": 8.025 + }, + { + "observations": { + "radius": 27.28618914935194, + "x": -6.034429991992447, + "y": -4.579528488352122, + "z": 26.213540237639116 + }, + "state": [ + -6.034429991992447, + -4.579528488352122, + 26.213540237639116 + ], + "step": 322, + "time": 8.05 + }, + { + "observations": { + "radius": 26.2746301089581, + "x": -5.735694502545585, + "y": -4.800400448600995, + "z": 25.187579309435577 + }, + "state": [ + -5.735694502545585, + -4.800400448600995, + 25.187579309435577 + ], + "step": 323, + "time": 8.075 + }, + { + "observations": { + "radius": 25.396417705061552, + "x": -5.565936820519362, + "y": -5.140471988992169, + "z": 24.239924242669108 + }, + "state": [ + -5.565936820519362, + -5.140471988992169, + 24.239924242669108 + ], + "step": 324, + "time": 8.1 + }, + { + "observations": { + "radius": 24.67693096428644, + "x": -5.521342103155296, + "y": -5.586506853753678, + "z": 23.393517144051827 + }, + "state": [ + -5.521342103155296, + -5.586506853753678, + 23.393517144051827 + ], + "step": 325, + "time": 8.125 + }, + { + "observations": { + "radius": 24.142677357718867, + "x": -5.596726824389828, + "y": -6.131121256864839, + "z": 22.670572797917718 + }, + "state": [ + -5.596726824389828, + -6.131121256864839, + 22.670572797917718 + ], + "step": 326, + "time": 8.15 + }, + { + "observations": { + "radius": 23.822341461656883, + "x": -5.786848323563449, + "y": -6.770168041823324, + "z": 22.09482210567267 + }, + "state": [ + -5.786848323563449, + -6.770168041823324, + 22.09482210567267 + ], + "step": 327, + "time": 8.175 + }, + { + "observations": { + "radius": 23.746098638320337, + "x": -6.0867676422671995, + "y": -7.499458497405333, + "z": 21.693007685786288 + }, + "state": [ + -6.0867676422671995, + -7.499458497405333, + 21.693007685786288 + ], + "step": 328, + "time": 8.2 + }, + { + "observations": { + "radius": 23.942956133931524, + "x": -6.491333154354657, + "y": -8.310832279775397, + "z": 21.495529980160725 + }, + "state": [ + -6.491333154354657, + -8.310832279775397, + 21.495529980160725 + ], + "step": 329, + "time": 8.225 + }, + { + "observations": { + "radius": 24.435960740312495, + "x": -6.993826882055744, + "y": -9.187510052730657, + "z": 21.535835759888705 + }, + "state": [ + -6.993826882055744, + -9.187510052730657, + 21.535835759888705 + ], + "step": 330, + "time": 8.25 + }, + { + "observations": { + "radius": 25.235437134557365, + "x": -7.583808660547996, + "y": -10.098861835460022, + "z": 21.847794469938677 + }, + "state": [ + -7.583808660547996, + -10.098861835460022, + 21.847794469938677 + ], + "step": 331, + "time": 8.275 + }, + { + "observations": { + "radius": 26.330941660678064, + "x": -8.244273255169551, + "y": -10.995301166811496, + "z": 22.460048964399913 + }, + "state": [ + -8.244273255169551, + -10.995301166811496, + 22.460048964399913 + ], + "step": 332, + "time": 8.3 + }, + { + "observations": { + "radius": 27.683219057652085, + "x": -8.948477455310062, + "y": -11.805038864879647, + "z": 23.38645817614203 + }, + "state": [ + -8.948477455310062, + -11.805038864879647, + 23.38645817614203 + ], + "step": 333, + "time": 8.325 + }, + { + "observations": { + "radius": 29.218112748939, + "x": -9.657245899713537, + "y": -12.435709511753421, + "z": 24.6127780468086 + }, + "state": [ + -9.657245899713537, + -12.435709511753421, + 24.6127780468086 + ], + "step": 334, + "time": 8.35 + }, + { + "observations": { + "radius": 30.825149070110424, + "x": -10.318159122833585, + "y": -12.78461426077368, + "z": 26.08215952933418 + }, + "state": [ + -10.318159122833585, + -12.78461426077368, + 26.08215952933418 + ], + "step": 335, + "time": 8.375 + }, + { + "observations": { + "radius": 32.3640481394989, + "x": -10.86843893907992, + "y": -12.75991839210666, + "z": 27.68561232174704 + }, + "state": [ + -10.86843893907992, + -12.75991839210666, + 27.68561232174704 + ], + "step": 336, + "time": 8.4 + }, + { + "observations": { + "radius": 33.681605224413666, + "x": -11.242952229599032, + "y": -12.310079315213375, + "z": 29.26616652227209 + }, + "state": [ + -11.242952229599032, + -12.310079315213375, + 29.26616652227209 + ], + "step": 337, + "time": 8.425 + }, + { + "observations": { + "radius": 34.637965844049845, + "x": -11.386955036567036, + "y": -11.451011270002619, + "z": 30.643111358069323 + }, + "state": [ + -11.386955036567036, + -11.451011270002619, + 30.643111358069323 + ], + "step": 338, + "time": 8.45 + }, + { + "observations": { + "radius": 35.135710775297866, + "x": -11.270269931570581, + "y": -10.275594182465067, + "z": 31.65298329624253 + }, + "state": [ + -11.270269931570581, + -10.275594182465067, + 31.65298329624253 + ], + "step": 339, + "time": 8.475 + }, + { + "observations": { + "radius": 35.14085323672304, + "x": -10.897293121370659, + "y": -8.935379955694131, + "z": 32.19142050110891 + }, + "state": [ + -10.897293121370659, + -8.935379955694131, + 32.19142050110891 + ], + "step": 340, + "time": 8.5 + }, + { + "observations": { + "radius": 34.6863853803841, + "x": -10.307889226141796, + "y": -7.5998041482105, + "z": 32.235628229754674 + }, + "state": [ + -10.307889226141796, + -7.5998041482105, + 32.235628229754674 + ], + "step": 341, + "time": 8.525 + }, + { + "observations": { + "radius": 33.8570611523772, + "x": -9.568297535569958, + "y": -6.412357975369818, + "z": 31.83755545487634 + }, + "state": [ + -9.568297535569958, + -6.412357975369818, + 31.83755545487634 + ], + "step": 342, + "time": 8.55 + }, + { + "observations": { + "radius": 32.76327658042473, + "x": -8.756006955812573, + "y": -5.4634547544360865, + "z": 31.095261642594345 + }, + "state": [ + -8.756006955812573, + -5.4634547544360865, + 31.095261642594345 + ], + "step": 343, + "time": 8.575 + }, + { + "observations": { + "radius": 31.515563347291337, + "x": -7.944718297588677, + "y": -4.786962823646158, + "z": 30.119713995888514 + }, + "state": [ + -7.944718297588677, + -4.786962823646158, + 30.119713995888514 + ], + "step": 344, + "time": 8.6 + }, + { + "observations": { + "radius": 30.207878028315235, + "x": -7.1940413546904765, + "y": -4.373888778034292, + "z": 29.010873149871916 + }, + "state": [ + -7.1940413546904765, + -4.373888778034292, + 29.010873149871916 + ], + "step": 345, + "time": 8.625 + }, + { + "observations": { + "radius": 28.91158021797016, + "x": -6.54535716997742, + "y": -4.191777760051479, + "z": 27.847203978638262 + }, + "state": [ + -6.54535716997742, + -4.191777760051479, + 27.847203978638262 + ], + "step": 346, + "time": 8.65 + }, + { + "observations": { + "radius": 27.67735926284698, + "x": -6.022673228345534, + "y": -4.201333112098884, + "z": 26.68543466069933 + }, + "state": [ + -6.022673228345534, + -4.201333112098884, + 26.68543466069933 + ], + "step": 347, + "time": 8.675 + }, + { + "observations": { + "radius": 26.5410113731045, + "x": -5.636285992425734, + "y": -4.366978337533087, + "z": 25.565348914465545 + }, + "state": [ + -5.636285992425734, + -4.366978337533087, + 25.565348914465545 + ], + "step": 348, + "time": 8.7 + }, + { + "observations": { + "radius": 25.529869081172997, + "x": -5.387288109834717, + "y": -4.661729201186365, + "z": 24.515701559985445 + }, + "state": [ + -5.387288109834717, + -4.661729201186365, + 24.515701559985445 + ], + "step": 349, + "time": 8.725 + }, + { + "observations": { + "radius": 24.668203750061657, + "x": -5.271666571614645, + "y": -5.0681152788425985, + "z": 23.55937213366772 + }, + "state": [ + -5.271666571614645, + -5.0681152788425985, + 23.55937213366772 + ], + "step": 350, + "time": 8.75 + }, + { + "observations": { + "radius": 23.981050208111263, + "x": -5.283410726160139, + "y": -5.576833635537646, + "z": 22.717290040499662 + }, + "state": [ + -5.283410726160139, + -5.576833635537646, + 22.717290040499662 + ], + "step": 351, + "time": 8.775 + }, + { + "observations": { + "radius": 23.496391959403574, + "x": -5.4164867131977905, + "y": -6.184240365681828, + "z": 22.01129886887978 + }, + "state": [ + -5.4164867131977905, + -6.184240365681828, + 22.01129886887978 + ], + "step": 352, + "time": 8.8 + }, + { + "observations": { + "radius": 23.245659766176207, + "x": -5.665740361982997, + "y": -6.889189089787792, + "z": 21.466232967164242 + }, + "state": [ + -5.665740361982997, + -6.889189089787792, + 21.466232967164242 + ], + "step": 353, + "time": 8.825 + }, + { + "observations": { + "radius": 23.26231628468589, + "x": -6.0268355286679425, + "y": -7.689286297611962, + "z": 21.111311865265623 + }, + "state": [ + -6.0268355286679425, + -7.689286297611962, + 21.111311865265623 + ], + "step": 354, + "time": 8.85 + }, + { + "observations": { + "radius": 23.5781920537525, + "x": -6.4952950480458105, + "y": -8.576393303630775, + "z": 20.980652055260492 + }, + "state": [ + -6.4952950480458105, + -8.576393303630775, + 20.980652055260492 + ], + "step": 355, + "time": 8.875 + }, + { + "observations": { + "radius": 24.217395375376224, + "x": -7.0646535367091845, + "y": -9.531201322087982, + "z": 21.112297613745984 + }, + "state": [ + -7.0646535367091845, + -9.531201322087982, + 21.112297613745984 + ], + "step": 356, + "time": 8.9 + }, + { + "observations": { + "radius": 25.18808084438272, + "x": -7.723721845987986, + "y": -10.517039765135635, + "z": 21.54473049373149 + }, + "state": [ + -7.723721845987986, + -10.517039765135635, + 21.54473049373149 + ], + "step": 357, + "time": 8.925 + }, + { + "observations": { + "radius": 26.472993685013815, + "x": -8.453083156515586, + "y": -11.473908061742504, + "z": 22.309509487805737 + }, + "state": [ + -8.453083156515586, + -11.473908061742504, + 22.309509487805737 + ], + "step": 358, + "time": 8.95 + }, + { + "observations": { + "radius": 28.02038277862971, + "x": -9.221287182507462, + "y": -12.315143198627062, + "z": 23.41894450559123 + }, + "state": [ + -9.221287182507462, + -12.315143198627062, + 23.41894450559123 + ], + "step": 359, + "time": 8.975 + }, + { + "observations": { + "radius": 29.737687156005297, + "x": -9.981836836505268, + "y": -12.93082934239169, + "z": 24.849278123836335 + }, + "state": [ + -9.981836836505268, + -12.93082934239169, + 24.849278123836335 + ], + "step": 360, + "time": 9.0 + }, + { + "observations": { + "radius": 31.491453504345543, + "x": -10.672846583105137, + "y": -13.202759653639609, + "z": 26.523369453334624 + }, + "state": [ + -10.672846583105137, + -13.202759653639609, + 26.523369453334624 + ], + "step": 361, + "time": 9.025 + }, + { + "observations": { + "radius": 33.117578554463094, + "x": -11.221682816059703, + "y": -13.033137758778304, + "z": 28.301681297186065 + }, + "state": [ + -11.221682816059703, + -13.033137758778304, + 28.301681297186065 + ], + "step": 362, + "time": 9.05 + }, + { + "observations": { + "radius": 34.444423026598244, + "x": -11.556069467038256, + "y": -12.381456599948589, + "z": 29.992916973376015 + }, + "state": [ + -11.556069467038256, + -12.381456599948589, + 29.992916973376015 + ], + "step": 363, + "time": 9.075 + }, + { + "observations": { + "radius": 35.32607593923217, + "x": -11.620377957385834, + "y": -11.29368903681253, + "z": 31.390301771911655 + }, + "state": [ + -11.620377957385834, + -11.29368903681253, + 31.390301771911655 + ], + "step": 364, + "time": 9.1 + }, + { + "observations": { + "radius": 35.67558500508915, + "x": -11.391935855037469, + "y": -9.904174856405536, + "z": 32.32458017273848 + }, + "state": [ + -11.391935855037469, + -9.904174856405536, + 32.32458017273848 + ], + "step": 365, + "time": 9.125 + }, + { + "observations": { + "radius": 35.4839884269236, + "x": -10.89002729037415, + "y": -8.402193302430796, + "z": 32.70969104112024 + }, + "state": [ + -10.89002729037415, + -8.402193302430796, + 32.70969104112024 + ], + "step": 366, + "time": 9.15 + }, + { + "observations": { + "radius": 34.81590971112795, + "x": -10.17261632638482, + "y": -6.97733881152403, + "z": 32.55736766384504 + }, + "state": [ + -10.17261632638482, + -6.97733881152403, + 32.55736766384504 + ], + "step": 367, + "time": 9.175 + }, + { + "observations": { + "radius": 33.78449494942674, + "x": -9.321957581075493, + "y": -5.771489065205437, + "z": 31.955955936486767 + }, + "state": [ + -9.321957581075493, + -5.771489065205437, + 31.955955936486767 + ], + "step": 368, + "time": 9.2 + }, + { + "observations": { + "radius": 32.51854470458949, + "x": -8.425674269507027, + "y": -4.857786111298173, + "z": 31.03007697227693 + }, + "state": [ + -8.425674269507027, + -4.857786111298173, + 31.03007697227693 + ], + "step": 369, + "time": 9.225 + }, + { + "observations": { + "radius": 31.135609105685095, + "x": -7.560741932549041, + "y": -4.2475270342364, + "z": 29.90350898983004 + }, + "state": [ + -7.560741932549041, + -4.2475270342364, + 29.90350898983004 + ], + "step": 370, + "time": 9.25 + }, + { + "observations": { + "radius": 29.728018902835597, + "x": -6.7845555672391775, + "y": -3.9120766647187946, + "z": 28.677875964090457 + }, + "state": [ + -6.7845555672391775, + -3.9120766647187946, + 28.677875964090457 + ], + "step": 371, + "time": 9.275 + }, + { + "observations": { + "radius": 28.361035911052387, + "x": -6.133157555727932, + "y": -3.8059173358244234, + "z": 27.427134913758156 + }, + "state": [ + -6.133157555727932, + -3.8059173358244234, + 27.427134913758156 + ], + "step": 372, + "time": 9.3 + }, + { + "observations": { + "radius": 27.078281698330656, + "x": -5.624288699125605, + "y": -3.8832757539611222, + "z": 26.201543576318834 + }, + "state": [ + -5.624288699125605, + -3.8832757539611222, + 26.201543576318834 + ], + "step": 373, + "time": 9.325 + }, + { + "observations": { + "radius": 25.90958311009418, + "x": -5.262534434187538, + "y": -4.107008481372319, + "z": 25.034869873873994 + }, + "state": [ + -5.262534434187538, + -4.107008481372319, + 25.034869873873994 + ], + "step": 374, + "time": 9.35 + }, + { + "observations": { + "radius": 24.878233991311205, + "x": -5.04457133151922, + "y": -4.451568977119648, + "z": 23.95124965945603 + }, + "state": [ + -5.04457133151922, + -4.451568977119648, + 23.95124965945603 + ], + "step": 375, + "time": 9.375 + }, + { + "observations": { + "radius": 24.006516599118687, + "x": -4.963462836985974, + "y": -4.902448702943461, + "z": 22.970478284194 + }, + "state": [ + -4.963462836985974, + -4.902448702943461, + 22.970478284194 + ], + "step": 376, + "time": 9.4 + }, + { + "observations": { + "radius": 23.31937145543372, + "x": -5.011656566452584, + "y": -5.453888570208722, + "z": 22.111795110306545 + }, + "state": [ + -5.011656566452584, + -5.453888570208722, + 22.111795110306545 + ], + "step": 377, + "time": 9.425 + }, + { + "observations": { + "radius": 22.84637592081709, + "x": -5.182714872833062, + "y": -6.105840386080904, + "z": 21.39661357415956 + }, + "state": [ + -5.182714872833062, + -6.105840386080904, + 21.39661357415956 + ], + "step": 378, + "time": 9.45 + }, + { + "observations": { + "radius": 22.62200602037724, + "x": -5.4719395656691265, + "y": -6.860495302025081, + "z": 20.85057884056317 + }, + "state": [ + -5.4719395656691265, + -6.860495302025081, + 20.85057884056317 + ], + "step": 379, + "time": 9.475 + }, + { + "observations": { + "radius": 22.683847436978592, + "x": -5.876031635497271, + "y": -7.718256807796347, + "z": 20.50506519403586 + }, + "state": [ + -5.876031635497271, + -7.718256807796347, + 20.50506519403586 + ], + "step": 380, + "time": 9.5 + }, + { + "observations": { + "radius": 23.068277358532654, + "x": -6.39183846273782, + "y": -8.672808972577016, + "z": 20.39784806987353 + }, + "state": [ + -6.39183846273782, + -8.672808972577016, + 20.39784806987353 + ], + "step": 381, + "time": 9.525 + }, + { + "observations": { + "radius": 23.80335781304824, + "x": -7.014148983210925, + "y": -9.70494950501032, + "z": 20.572202417887244 + }, + "state": [ + -7.014148983210925, + -9.70494950501032, + 20.572202417887244 + ], + "step": 382, + "time": 9.55 + }, + { + "observations": { + "radius": 24.899262005613647, + "x": -7.732470067664492, + "y": -10.77525938240699, + "z": 21.073109412678477 + }, + "state": [ + -7.732470067664492, + -10.77525938240699, + 21.073109412678477 + ], + "step": 383, + "time": 9.575 + }, + { + "observations": { + "radius": 26.3372801155179, + "x": -8.526852562019169, + "y": -11.816707675729491, + "z": 21.938790508485134 + }, + "state": [ + -8.526852562019169, + -11.816707675729491, + 21.938790508485134 + ], + "step": 384, + "time": 9.6 + }, + { + "observations": { + "radius": 28.059168467027504, + "x": -9.363260309696521, + "y": -12.730131587254856, + "z": 23.185988035989936 + }, + "state": [ + -9.363260309696521, + -12.730131587254856, + 23.185988035989936 + ], + "step": 385, + "time": 9.625 + }, + { + "observations": { + "radius": 29.95958062802777, + "x": -10.189785071272182, + "y": -13.387853401134482, + "z": 24.789314894089088 + }, + "state": [ + -10.189785071272182, + -13.387853401134482, + 24.789314894089088 + ], + "step": 386, + "time": 9.65 + }, + { + "observations": { + "radius": 31.885801847356177, + "x": -10.936065236152107, + "y": -13.651838903560606, + "z": 26.659597355374988 + }, + "state": [ + -10.936065236152107, + -13.651838903560606, + 26.659597355374988 + ], + "step": 387, + "time": 9.675 + }, + { + "observations": { + "radius": 33.65009174220846, + "x": -11.518895125298561, + "y": -13.409471836305155, + "z": 28.632670054026704 + }, + "state": [ + -11.518895125298561, + -13.409471836305155, + 28.632670054026704 + ], + "step": 388, + "time": 9.7 + }, + { + "observations": { + "radius": 35.05803793049679, + "x": -11.855953353585942, + "y": -12.619528701357225, + "z": 30.48360032819888 + }, + "state": [ + -11.855953353585942, + -12.619528701357225, + 30.48360032819888 + ], + "step": 389, + "time": 9.725 + }, + { + "observations": { + "radius": 35.94922752204605, + "x": -11.885869740689593, + "y": -11.346971028062727, + "z": 31.973728409860144 + }, + "state": [ + -11.885869740689593, + -11.346971028062727, + 31.973728409860144 + ], + "step": 390, + "time": 9.75 + }, + { + "observations": { + "radius": 36.23659628373529, + "x": -11.587701185878052, + "y": -9.760981120841407, + "z": 32.91715873242702 + }, + "state": [ + -11.587701185878052, + -9.760981120841407, + 32.91715873242702 + ], + "step": 391, + "time": 9.775 + }, + { + "observations": { + "radius": 35.926224701474666, + "x": -10.99037370033062, + "y": -8.08822638905697, + "z": 33.23380659971548 + }, + "state": [ + -10.99037370033062, + -8.08822638905697, + 33.23380659971548 + ], + "step": 392, + "time": 9.8 + }, + { + "observations": { + "radius": 35.107227144161065, + "x": -10.166450963105316, + "y": -6.5435386119085415, + "z": 32.95971442535503 + }, + "state": [ + -10.166450963105316, + -6.5435386119085415, + 32.95971442535503 + ], + "step": 393, + "time": 9.825 + }, + { + "observations": { + "radius": 33.91779021594278, + "x": -9.212982971608348, + "y": -5.275112974557508, + "z": 32.213516122944625 + }, + "state": [ + -9.212982971608348, + -5.275112974557508, + 32.213516122944625 + ], + "step": 394, + "time": 9.85 + }, + { + "observations": { + "radius": 32.50517771197664, + "x": -8.228587949891457, + "y": -4.3468497669721895, + "z": 31.144531069538647 + }, + "state": [ + -8.228587949891457, + -4.3468497669721895, + 31.144531069538647 + ], + "step": 395, + "time": 9.875 + }, + { + "observations": { + "radius": 30.99624388141397, + "x": -7.295777891424925, + "y": -3.7536878526555584, + "z": 29.89061035208071 + }, + "state": [ + -7.295777891424925, + -3.7536878526555584, + 29.89061035208071 + ], + "step": 396, + "time": 9.9 + }, + { + "observations": { + "radius": 29.4848518746798, + "x": -6.472576246667931, + "y": -3.450992855062947, + "z": 28.557886741094546 + }, + "state": [ + -6.472576246667931, + -3.450992855062947, + 28.557886741094546 + ], + "step": 397, + "time": 9.925 + }, + { + "observations": { + "radius": 28.03312601847261, + "x": -5.792423657540896, + "y": -3.381454633472925, + "z": 27.218922592580533 + }, + "state": [ + -5.792423657540896, + -3.381454633472925, + 27.218922592580533 + ], + "step": 398, + "time": 9.95 + }, + { + "observations": { + "radius": 26.67977068887932, + "x": -5.268999001277923, + "y": -3.492418350036328, + "z": 25.920085408887946 + }, + "state": [ + -5.268999001277923, + -3.492418350036328, + 25.920085408887946 + ], + "step": 399, + "time": 9.975 + }, + { + "observations": { + "radius": 25.44978196822841, + "x": -4.902687569605354, + "y": -3.7438729943519076, + "z": 24.69085806178804 + }, + "state": [ + -4.902687569605354, + -3.7438729943519076, + 24.69085806178804 + ], + "step": 400, + "time": 10.0 + }, + { + "observations": { + "radius": 24.362604545233843, + "x": -4.686598658935823, + "y": -4.110144079869996, + "z": 23.5516243363429 + }, + "state": [ + -4.686598658935823, + -4.110144079869996, + 23.5516243363429 + ], + "step": 401, + "time": 10.025 + }, + { + "observations": { + "radius": 23.43797235305183, + "x": -4.611199636495111, + "y": -4.578284491942686, + "z": 22.519207291679837 + }, + "state": [ + -4.611199636495111, + -4.578284491942686, + 22.519207291679837 + ], + "step": 402, + "time": 10.05 + }, + { + "observations": { + "radius": 22.699703454397355, + "x": -4.667388742940859, + "y": -5.145124612349163, + "z": 21.610638860599355 + }, + "state": [ + -4.667388742940859, + -5.145124612349163, + 21.610638860599355 + ], + "step": 403, + "time": 10.075 + }, + { + "observations": { + "radius": 22.177842321596792, + "x": -4.848179919553828, + "y": -5.813919945738701, + "z": 20.845867129332532 + }, + "state": [ + -4.848179919553828, + -5.813919945738701, + 20.845867129332532 + ], + "step": 404, + "time": 10.1 + }, + { + "observations": { + "radius": 21.90918983580396, + "x": -5.1492518197254284, + "y": -6.590799798605682, + "z": 20.24991760410519 + }, + "state": [ + -5.1492518197254284, + -6.590799798605682, + 20.24991760410519 + ], + "step": 405, + "time": 10.125 + }, + { + "observations": { + "radius": 21.935800347767504, + "x": -5.568544572633307, + "y": -7.4807544489638635, + "z": 19.854696197978463 + }, + "state": [ + -5.568544572633307, + -7.4807544489638635, + 19.854696197978463 + ], + "step": 406, + "time": 10.15 + }, + { + "observations": { + "radius": 22.30076366190323, + "x": -6.104955481351637, + "y": -8.482636478114525, + "z": 19.700214639819002 + }, + "state": [ + -6.104955481351637, + -8.482636478114525, + 19.700214639819002 + ], + "step": 407, + "time": 10.175 + }, + { + "observations": { + "radius": 23.040774153650066, + "x": -6.756047307067065, + "y": -9.582603679113227, + "z": 19.834485249514955 + }, + "state": [ + -6.756047307067065, + -9.582603679113227, + 19.834485249514955 + ], + "step": 408, + "time": 10.2 + }, + { + "observations": { + "radius": 24.175645394420307, + "x": -7.514602174704463, + "y": -10.745745236637337, + "z": 20.31062637394447 + }, + "state": [ + -7.514602174704463, + -10.745745236637337, + 20.31062637394447 + ], + "step": 409, + "time": 10.225 + }, + { + "observations": { + "radius": 25.69575309130393, + "x": -8.363932965450061, + "y": -11.90663292130546, + "z": 21.178962315373205 + }, + "state": [ + -8.363932965450061, + -11.90663292130546, + 21.178962315373205 + ], + "step": 410, + "time": 10.25 + }, + { + "observations": { + "radius": 27.549100111751436, + "x": -9.272264195981831, + "y": -12.961617526829825, + "z": 22.47163778489219 + }, + "state": [ + -9.272264195981831, + -12.961617526829825, + 22.47163778489219 + ], + "step": 411, + "time": 10.275 + }, + { + "observations": { + "radius": 29.630668030830808, + "x": -10.187398141205264, + "y": -13.768827301148125, + "z": 24.178767582675185 + }, + "state": [ + -10.187398141205264, + -13.768827301148125, + 24.178767582675185 + ], + "step": 412, + "time": 10.3 + }, + { + "observations": { + "radius": 31.778640245156367, + "x": -11.034273966025074, + "y": -14.164474910066183, + "z": 26.220114881439383 + }, + "state": [ + -11.034273966025074, + -14.164474910066183, + 26.220114881439383 + ], + "step": 413, + "time": 10.325 + }, + { + "observations": { + "radius": 33.78431704068824, + "x": -11.71926375591293, + "y": -14.002100073186183, + "z": 28.424991265883666 + }, + "state": [ + -11.71926375591293, + -14.002100073186183, + 28.424991265883666 + ], + "step": 414, + "time": 10.35 + }, + { + "observations": { + "radius": 35.42179384571595, + "x": -12.144527194436767, + "y": -13.209725131308414, + "z": 30.540417489406813 + }, + "state": [ + -12.144527194436767, + -13.209725131308414, + 30.540417489406813 + ], + "step": 415, + "time": 10.375 + }, + { + "observations": { + "radius": 36.495739541690284, + "x": -12.231686015821335, + "y": -11.840285431877675, + "z": 32.2820771140415 + }, + "state": [ + -12.231686015821335, + -11.840285431877675, + 32.2820771140415 + ], + "step": 416, + "time": 10.4 + }, + { + "observations": { + "radius": 36.89207603944695, + "x": -11.947131773640237, + "y": -10.079585768728215, + "z": 33.41696077764199 + }, + "state": [ + -11.947131773640237, + -10.079585768728215, + 33.41696077764199 + ], + "step": 417, + "time": 10.425 + }, + { + "observations": { + "radius": 36.6074346734659, + "x": -11.316548491787074, + "y": -8.194304051479874, + "z": 33.83627320963415 + }, + "state": [ + -11.316548491787074, + -8.194304051479874, + 33.83627320963415 + ], + "step": 418, + "time": 10.45 + }, + { + "observations": { + "radius": 35.7409021826765, + "x": -10.419797211373808, + "y": -6.444349635413773, + "z": 33.57544151134932 + }, + "state": [ + -10.419797211373808, + -6.444349635413773, + 33.57544151134932 + ], + "step": 419, + "time": 10.475 + }, + { + "observations": { + "radius": 34.45330549709879, + "x": -9.368314644368606, + "y": -5.00979085688118, + "z": 32.77448605197092 + }, + "state": [ + -9.368314644368606, + -5.00979085688118, + 32.77448605197092 + ], + "step": 420, + "time": 10.5 + }, + { + "observations": { + "radius": 32.916907386378575, + "x": -8.27663520384614, + "y": -3.9660094710393348, + "z": 31.611562290742693 + }, + "state": [ + -8.27663520384614, + -3.9660094710393348, + 31.611562290742693 + ], + "step": 421, + "time": 10.525 + }, + { + "observations": { + "radius": 31.27804646794873, + "x": -7.24018039267105, + "y": -3.303064634273763, + "z": 30.24873125859251 + }, + "state": [ + -7.24018039267105, + -3.303064634273763, + 30.24873125859251 + ], + "step": 422, + "time": 10.55 + }, + { + "observations": { + "radius": 29.64165239120218, + "x": -6.324880104186987, + "y": -2.9635131636931473, + "z": 28.806961621752805 + }, + "state": [ + -6.324880104186987, + -2.9635131636931473, + 28.806961621752805 + ], + "step": 423, + "time": 10.575 + }, + { + "observations": { + "radius": 28.07349412410844, + "x": -5.567291112863284, + "y": -2.8762766222154847, + "z": 27.365185451472485 + }, + "state": [ + -5.567291112863284, + -2.8762766222154847, + 27.365185451472485 + ], + "step": 424, + "time": 10.6 + }, + { + "observations": { + "radius": 26.611061589530962, + "x": -4.980742250599651, + "y": -2.9775899428077386, + "z": 25.970651968854998 + }, + "state": [ + -4.980742250599651, + -2.9775899428077386, + 25.970651968854998 + ], + "step": 425, + "time": 10.625 + }, + { + "observations": { + "radius": 25.27568314453235, + "x": -4.563305895469256, + "y": -3.219967948889311, + "z": 24.65092704413564 + }, + "state": [ + -4.563305895469256, + -3.219967948889311, + 24.65092704413564 + ], + "step": 426, + "time": 10.65 + }, + { + "observations": { + "radius": 24.082284108700257, + "x": -4.3050277363647265, + "y": -3.573550058178875, + "z": 23.423340582909542 + }, + "state": [ + -4.3050277363647265, + -3.573550058178875, + 23.423340582909542 + ], + "step": 427, + "time": 10.675 + }, + { + "observations": { + "radius": 23.04610915991102, + "x": -4.193372864265675, + "y": -4.023778344090226, + "z": 22.301299945729742 + }, + "state": [ + -4.193372864265675, + -4.023778344090226, + 22.301299945729742 + ], + "step": 428, + "time": 10.7 + }, + { + "observations": { + "radius": 22.187045101101887, + "x": -4.2167824246444505, + "y": -4.567862099560556, + "z": 21.298318058967407 + }, + "state": [ + -4.2167824246444505, + -4.567862099560556, + 21.298318058967407 + ], + "step": 429, + "time": 10.725 + }, + { + "observations": { + "radius": 21.532315014632818, + "x": -4.366640254123876, + "y": -5.211154234180867, + "z": 20.43078349765436 + }, + "state": [ + -4.366640254123876, + -5.211154234180867, + 20.43078349765436 + ], + "step": 430, + "time": 10.75 + }, + { + "observations": { + "radius": 21.11785661393881, + "x": -4.638022164438947, + "y": -5.963682009471368, + "z": 19.720220973887685 + }, + "state": [ + -4.638022164438947, + -5.963682009471368, + 19.720220973887685 + ], + "step": 431, + "time": 10.775 + }, + { + "observations": { + "radius": 20.988055972902306, + "x": -5.029504958462757, + "y": -6.836537831232591, + "z": 19.19542455577902 + }, + "state": [ + -5.029504958462757, + -6.836537831232591, + 19.19542455577902 + ], + "step": 432, + "time": 10.8 + }, + { + "observations": { + "radius": 21.19298283683989, + "x": -5.542144832902901, + "y": -7.837503340432738, + "z": 18.89446198129027 + }, + "state": [ + -5.542144832902901, + -7.837503340432738, + 18.89446198129027 + ], + "step": 433, + "time": 10.825 + }, + { + "observations": { + "radius": 21.782179221527766, + "x": -6.177547082621409, + "y": -8.965088710233667, + "z": 18.866065517176402 + }, + "state": [ + -6.177547082621409, + -8.965088710233667, + 18.866065517176402 + ], + "step": 434, + "time": 10.85 + }, + { + "observations": { + "radius": 22.794603140543913, + "x": -6.934782832342513, + "y": -10.20019826336624, + "z": 19.169211637184308 + }, + "state": [ + -6.934782832342513, + -10.20019826336624, + 19.169211637184308 + ], + "step": 435, + "time": 10.875 + }, + { + "observations": { + "radius": 24.245302898745692, + "x": -7.805836960945572, + "y": -11.495179929697215, + "z": 19.868680388363707 + }, + "state": [ + -7.805836960945572, + -11.495179929697215, + 19.868680388363707 + ], + "step": 436, + "time": 10.9 + }, + { + "observations": { + "radius": 26.11019897491627, + "x": -8.769448946906117, + "y": -12.761642697904929, + "z": 21.023313994904218 + }, + "state": [ + -8.769448946906117, + -12.761642697904929, + 21.023313994904218 + ], + "step": 437, + "time": 10.925 + }, + { + "observations": { + "radius": 28.310947636405608, + "x": -9.78389329360182, + "y": -13.861750794150998, + "z": 22.663562231290292 + }, + "state": [ + -9.78389329360182, + -13.861750794150998, + 22.663562231290292 + ], + "step": 438, + "time": 10.95 + }, + { + "observations": { + "radius": 30.703441068661363, + "x": -10.780703321796473, + "y": -14.61244697926749, + "z": 24.75791030402736 + }, + "state": [ + -10.780703321796473, + -14.61244697926749, + 24.75791030402736 + ], + "step": 439, + "time": 10.975 + }, + { + "observations": { + "radius": 33.07694521600006, + "x": -11.66342013072579, + "y": -14.815026968404823, + "z": 27.176532368973927 + }, + "state": [ + -11.66342013072579, + -14.815026968404823, + 27.176532368973927 + ], + "step": 440, + "time": 11.0 + }, + { + "observations": { + "radius": 35.1738802916604, + "x": -12.316829755577873, + "y": -14.31626344910956, + "z": 29.673930653013546 + }, + "state": [ + -12.316829755577873, + -14.31626344910956, + 29.673930653013546 + ], + "step": 441, + "time": 11.025 + }, + { + "observations": { + "radius": 36.73663968003456, + "x": -12.630073702004715, + "y": -13.085359841974757, + "z": 31.919199411461637 + }, + "state": [ + -12.630073702004715, + -13.085359841974757, + 31.919199411461637 + ], + "step": 442, + "time": 11.05 + }, + { + "observations": { + "radius": 37.572994195134676, + "x": -12.529420499944502, + "y": -11.262873799441358, + "z": 33.58409130080866 + }, + "state": [ + -12.529420499944502, + -11.262873799441358, + 33.58409130080866 + ], + "step": 443, + "time": 11.075 + }, + { + "observations": { + "radius": 37.612430837980106, + "x": -12.006664691516749, + "y": -9.135762933029312, + "z": 34.45392273978116 + }, + "state": [ + -12.006664691516749, + -9.135762933029312, + 34.45392273978116 + ], + "step": 444, + "time": 11.1 + }, + { + "observations": { + "radius": 36.921615520134694, + "x": -11.126611619811214, + "y": -7.038757947999888, + "z": 34.49434871146289 + }, + "state": [ + -11.126611619811214, + -7.038757947999888, + 34.49434871146289 + ], + "step": 445, + "time": 11.125 + }, + { + "observations": { + "radius": 35.66936141078257, + "x": -10.007967231843807, + "y": -5.240704665465378, + "z": 33.83310434986324 + }, + "state": [ + -10.007967231843807, + -5.240704665465378, + 33.83310434986324 + ], + "step": 446, + "time": 11.15 + }, + { + "observations": { + "radius": 34.06314936517691, + "x": -8.788303968149656, + "y": -3.8817977354578987, + "z": 32.6802004947759 + }, + "state": [ + -8.788303968149656, + -3.8817977354578987, + 32.6802004947759 + ], + "step": 447, + "time": 11.175 + }, + { + "observations": { + "radius": 32.29162292705773, + "x": -7.59100953272821, + "y": -2.979405776668962, + "z": 31.244977624496098 + }, + "state": [ + -7.59100953272821, + -2.979405776668962, + 31.244977624496098 + ], + "step": 448, + "time": 11.2 + }, + { + "observations": { + "radius": 30.49411914014542, + "x": -6.506149700141644, + "y": -2.4736197329160654, + "z": 29.689097723401062 + }, + "state": [ + -6.506149700141644, + -2.4736197329160654, + 29.689097723401062 + ], + "step": 449, + "time": 11.225 + }, + { + "observations": { + "radius": 28.757275326997046, + "x": -5.586536865200169, + "y": -2.2758491996677335, + "z": 28.117467889318274 + }, + "state": [ + -5.586536865200169, + -2.2758491996677335, + 28.117467889318274 + ], + "step": 450, + "time": 11.25 + }, + { + "observations": { + "radius": 27.127127052502917, + "x": -4.853737509432498, + "y": -2.301465069606816, + "z": 26.589951350943522 + }, + "state": [ + -4.853737509432498, + -2.301465069606816, + 26.589951350943522 + ], + "step": 451, + "time": 11.275 + }, + { + "observations": { + "radius": 25.62507130131252, + "x": -4.307876518304888, + "y": -2.4848852044908063, + "z": 25.13785640465174 + }, + "state": [ + -4.307876518304888, + -2.4848852044908063, + 25.13785640465174 + ], + "step": 452, + "time": 11.3 + }, + { + "observations": { + "radius": 24.261234082185524, + "x": -3.9371292941817733, + "y": -2.7828805461235913, + "z": 23.77734358538613 + }, + "state": [ + -3.9371292941817733, + -2.7828805461235913, + 23.77734358538613 + ], + "step": 453, + "time": 11.325 + }, + { + "observations": { + "radius": 23.043556898002556, + "x": -3.7250888096091, + "y": -3.1721213885198583, + "z": 22.51814543359424 + }, + "state": [ + -3.7250888096091, + -3.1721213885198583, + 22.51814543359424 + ], + "step": 454, + "time": 11.35 + }, + { + "observations": { + "radius": 21.983396741958213, + "x": -3.6556950265081753, + "y": -3.644863055790359, + "z": 21.368682680316 + }, + "state": [ + -3.6556950265081753, + -3.644863055790359, + 21.368682680316 + ], + "step": 455, + "time": 11.375 + }, + { + "observations": { + "radius": 21.099024370194563, + "x": -3.7161030849379704, + "y": -4.2046664154332785, + "z": 20.339129469353058 + }, + "state": [ + -3.7161030849379704, + -4.2046664154332785, + 20.339129469353058 + ], + "step": 456, + "time": 11.4 + }, + { + "observations": { + "radius": 20.418024237187982, + "x": -3.898040939702569, + "y": -4.862755858914841, + "z": 19.44362610315751 + }, + "state": [ + -3.898040939702569, + -4.862755858914841, + 19.44362610315751 + ], + "step": 457, + "time": 11.425 + }, + { + "observations": { + "radius": 19.97886513491323, + "x": -4.198127384411918, + "y": -5.634894638382585, + "z": 18.7023726023633 + }, + "state": [ + -4.198127384411918, + -5.634894638382585, + 18.7023726023633 + ], + "step": 458, + "time": 11.45 + }, + { + "observations": { + "radius": 19.83110401650533, + "x": -4.61743955302293, + "y": -6.538245832786816, + "z": 18.143959874230294 + }, + "state": [ + -4.61743955302293, + -6.538245832786816, + 18.143959874230294 + ], + "step": 459, + "time": 11.475 + }, + { + "observations": { + "radius": 20.03301788691617, + "x": -5.160403114342147, + "y": -7.587398747225505, + "z": 17.807959613767995 + }, + "state": [ + -5.160403114342147, + -7.587398747225505, + 17.807959613767995 + ], + "step": 460, + "time": 11.5 + }, + { + "observations": { + "radius": 20.645292554043085, + "x": -5.832851745973663, + "y": -8.788496489360439, + "z": 17.74734556512658 + }, + "state": [ + -5.832851745973663, + -8.788496489360439, + 17.74734556512658 + ], + "step": 461, + "time": 11.525 + }, + { + "observations": { + "radius": 21.72008173545777, + "x": -6.638882289674123, + "y": -10.130273677293992, + "z": 18.029552067701015 + }, + "state": [ + -6.638882289674123, + -10.130273677293992, + 18.029552067701015 + ], + "step": 462, + "time": 11.55 + }, + { + "observations": { + "radius": 23.286007103699728, + "x": -7.5759748172702475, + "y": -11.571136667241928, + "z": 18.733700345357576 + }, + "state": [ + -7.5759748172702475, + -11.571136667241928, + 18.733700345357576 + ], + "step": 463, + "time": 11.575 + }, + { + "observations": { + "radius": 25.33049117642416, + "x": -8.627915928417593, + "y": -13.022941442106264, + "z": 19.93980556992799 + }, + "state": [ + -8.627915928417593, + -13.022941442106264, + 19.93980556992799 + ], + "step": 464, + "time": 11.6 + }, + { + "observations": { + "radius": 27.780963906597254, + "x": -9.755700806268441, + "y": -14.335974219958024, + "z": 21.70456404821188 + }, + "state": [ + -9.755700806268441, + -14.335974219958024, + 21.70456404821188 + ], + "step": 465, + "time": 11.625 + }, + { + "observations": { + "radius": 30.487920979691186, + "x": -10.88827849895945, + "y": -15.296376193019475, + "z": 24.020399504475737 + }, + "state": [ + -10.88827849895945, + -15.296376193019475, + 24.020399504475737 + ], + "step": 466, + "time": 11.65 + }, + { + "observations": { + "radius": 33.217726942511625, + "x": -11.917918365174236, + "y": -15.653966850071896, + "z": 26.764415310728456 + }, + "state": [ + -11.917918365174236, + -15.653966850071896, + 26.764415310728456 + ], + "step": 467, + "time": 11.675 + }, + { + "observations": { + "radius": 35.66926757683704, + "x": -12.707819726352838, + "y": -15.194985220842682, + "z": 29.663452115505507 + }, + "state": [ + -12.707819726352838, + -15.194985220842682, + 29.663452115505507 + ], + "step": 468, + "time": 11.7 + }, + { + "observations": { + "radius": 37.527181273317716, + "x": -13.118490299519754, + "y": -13.847124537868694, + "z": 32.31797779277981 + }, + "state": [ + -13.118490299519754, + -13.847124537868694, + 32.31797779277981 + ], + "step": 469, + "time": 11.725 + }, + { + "observations": { + "radius": 38.545860649181584, + "x": -13.050017544028405, + "y": -11.75916164140051, + "z": 34.31038520299781 + }, + "state": [ + -13.050017544028405, + -11.75916164140051, + 34.31038520299781 + ], + "step": 470, + "time": 11.75 + }, + { + "observations": { + "radius": 38.628592285255955, + "x": -12.48228984862661, + "y": -9.281934015655688, + "z": 35.35825622120558 + }, + "state": [ + -12.48228984862661, + -9.281934015655688, + 35.35825622120558 + ], + "step": 471, + "time": 11.775 + }, + { + "observations": { + "radius": 37.854255301310154, + "x": -11.48863457956714, + "y": -6.838679326701444, + "z": 35.414522232842394 + }, + "state": [ + -11.48863457956714, + -6.838679326701444, + 35.414522232842394 + ], + "step": 472, + "time": 11.8 + }, + { + "observations": { + "radius": 36.43319670275751, + "x": -10.212388406188197, + "y": -4.766798159676732, + "z": 34.64624915236679 + }, + "state": [ + -10.212388406188197, + -4.766798159676732, + 34.64624915236679 + ], + "step": 473, + "time": 11.825 + }, + { + "observations": { + "radius": 34.622104042695774, + "x": -8.820591978020664, + "y": -3.2316079487850637, + "z": 33.32332449750292 + }, + "state": [ + -8.820591978020664, + -3.2316079487850637, + 33.32332449750292 + ], + "step": 474, + "time": 11.85 + }, + { + "observations": { + "radius": 32.64779808389811, + "x": -7.460570865335367, + "y": -2.2387149570374816, + "z": 31.70499578034078 + }, + "state": [ + -7.460570865335367, + -2.2387149570374816, + 31.70499578034078 + ], + "step": 475, + "time": 11.875 + }, + { + "observations": { + "radius": 30.669612835292224, + "x": -6.236123997009557, + "y": -1.6996763420354644, + "z": 29.980777329698576 + }, + "state": [ + -6.236123997009557, + -1.6996763420354644, + 29.980777329698576 + ], + "step": 476, + "time": 11.9 + }, + { + "observations": { + "radius": 28.77860114236147, + "x": -5.204195622346911, + "y": -1.4970819936185693, + "z": 28.264517988811647 + }, + "state": [ + -5.204195622346911, + -1.4970819936185693, + 28.264517988811647 + ], + "step": 477, + "time": 11.925 + }, + { + "observations": { + "radius": 27.01591597596426, + "x": -4.383957794246059, + "y": -1.5246436144163205, + "z": 26.614208459536226 + }, + "state": [ + -4.383957794246059, + -1.5246436144163205, + 26.614208459536226 + ], + "step": 478, + "time": 11.95 + }, + { + "observations": { + "radius": 25.394220916061883, + "x": -3.769828386673421, + "y": -1.703184213798067, + "z": 25.05501972465109 + }, + "state": [ + -3.769828386673421, + -1.703184213798067, + 25.05501972465109 + ], + "step": 479, + "time": 11.975 + }, + { + "observations": { + "radius": 23.914139765981854, + "x": -3.343290856293845, + "y": -1.9821069416624124, + "z": 23.596180603414407 + }, + "state": [ + -3.343290856293845, + -1.9821069416624124, + 23.596180603414407 + ], + "step": 480, + "time": 12.0 + }, + { + "observations": { + "radius": 22.57440577200101, + "x": -3.081595217090065, + "y": -2.334716789883694, + "z": 22.24087822879293 + }, + "state": [ + -3.081595217090065, + -2.334716789883694, + 22.24087822879293 + ], + "step": 481, + "time": 12.025 + }, + { + "observations": { + "radius": 21.377402183505787, + "x": -2.9632884559180517, + "y": -2.7522226796139675, + "z": 20.991367653495075 + }, + "state": [ + -2.9632884559180517, + -2.7522226796139675, + 20.991367653495075 + ], + "step": 482, + "time": 12.05 + }, + { + "observations": { + "radius": 20.332271202716207, + "x": -2.97126277211593, + "y": -3.2385081919721337, + "z": 19.851572091156157 + }, + "state": [ + -2.97126277211593, + -3.2385081919721337, + 19.851572091156157 + ], + "step": 483, + "time": 12.075 + }, + { + "observations": { + "radius": 19.45718219958637, + "x": -3.094123963214752, + "y": -3.806228112320776, + "z": 18.828727084036775 + }, + "state": [ + -3.094123963214752, + -3.806228112320776, + 18.828727084036775 + ], + "step": 484, + "time": 12.1 + }, + { + "observations": { + "radius": 18.78152793134373, + "x": -3.3265337226873735, + "y": -4.474059064896322, + "z": 17.934959166708115 + }, + "state": [ + -3.3265337226873735, + -4.474059064896322, + 17.934959166708115 + ], + "step": 485, + "time": 12.125 + }, + { + "observations": { + "radius": 18.347986251114918, + "x": -3.668953772228463, + "y": -5.264594730203054, + "z": 17.189282126228274 + }, + "state": [ + -3.668953772228463, + -5.264594730203054, + 17.189282126228274 + ], + "step": 486, + "time": 12.15 + }, + { + "observations": { + "radius": 18.213514913355112, + "x": -4.126987328314613, + "y": -6.20216322284046, + "z": 16.620266918680485 + }, + "state": [ + -4.126987328314613, + -6.20216322284046, + 16.620266918680485 + ], + "step": 487, + "time": 12.175 + }, + { + "observations": { + "radius": 18.447543753151635, + "x": -4.710283914057913, + "y": -7.309602108897468, + "z": 16.269444151015513 + }, + "state": [ + -4.710283914057913, + -7.309602108897468, + 16.269444151015513 + ], + "step": 488, + "time": 12.2 + }, + { + "observations": { + "radius": 19.125415604977015, + "x": -5.430730435551183, + "y": -8.602686673718866, + "z": 16.195137263799165 + }, + "state": [ + -5.430730435551183, + -8.602686673718866, + 16.195137263799165 + ], + "step": 489, + "time": 12.225 + }, + { + "observations": { + "radius": 20.316137966146034, + "x": -6.2993791976647255, + "y": -10.080525806508556, + "z": 16.475626939446773 + }, + "state": [ + -6.2993791976647255, + -10.080525806508556, + 16.475626939446773 + ], + "step": 490, + "time": 12.25 + }, + { + "observations": { + "radius": 22.06530107797209, + "x": -7.321291850497129, + "y": -11.710165433220102, + "z": 17.20895763339598 + }, + "state": [ + -7.321291850497129, + -11.710165433220102, + 17.20895763339598 + ], + "step": 491, + "time": 12.275 + }, + { + "observations": { + "radius": 24.374694462020326, + "x": -8.487369962404687, + "y": -13.404827078431364, + "z": 18.50407771912635 + }, + "state": [ + -8.487369962404687, + -13.404827078431364, + 18.50407771912635 + ], + "step": 492, + "time": 12.3 + }, + { + "observations": { + "radius": 27.17913724195894, + "x": -9.76273928183846, + "y": -14.999522044652252, + "z": 20.455042443468038 + }, + "state": [ + -9.76273928183846, + -14.999522044652252, + 20.455042443468038 + ], + "step": 493, + "time": 12.325 + }, + { + "observations": { + "radius": 30.32189397657917, + "x": -11.073168923569604, + "y": -16.237293166951655, + "z": 23.090095169302913 + }, + "state": [ + -11.073168923569604, + -16.237293166951655, + 23.090095169302913 + ], + "step": 494, + "time": 12.35 + }, + { + "observations": { + "radius": 33.53734385059269, + "x": -12.295117476473774, + "y": -16.79236095118238, + "z": 26.29829143647552 + }, + "state": [ + -12.295117476473774, + -16.79236095118238, + 26.29829143647552 + ], + "step": 495, + "time": 12.375 + }, + { + "observations": { + "radius": 36.46149391433537, + "x": -13.260320691862592, + "y": -16.359355330840664, + "z": 29.76534775159483 + }, + "state": [ + -13.260320691862592, + -16.359355330840664, + 29.76534775159483 + ], + "step": 496, + "time": 12.4 + }, + { + "observations": { + "radius": 38.69430419864368, + "x": -13.786885717415007, + "y": -14.804006683990849, + "z": 32.98503214690666 + }, + "state": [ + -13.786885717415007, + -14.804006683990849, + 32.98503214690666 + ], + "step": 497, + "time": 12.425 + }, + { + "observations": { + "radius": 39.91375979410364, + "x": -13.736887096599656, + "y": -12.295133427546137, + "z": 35.401071280337206 + }, + "state": [ + -13.736887096599656, + -12.295133427546137, + 35.401071280337206 + ], + "step": 498, + "time": 12.45 + }, + { + "observations": { + "radius": 39.99245121145095, + "x": -13.07595408986036, + "y": -9.293902100060796, + "z": 36.63384995184964 + }, + "state": [ + -13.07595408986036, + -9.293902100060796, + 36.63384995184964 + ], + "step": 499, + "time": 12.475 + }, + { + "observations": { + "radius": 39.04044069975533, + "x": -11.895895708740381, + "y": -6.365754629590905, + "z": 36.63496749437246 + }, + "state": [ + -11.895895708740381, + -6.365754629590905, + 36.63496749437246 + ], + "step": 500, + "time": 12.5 + }, + { + "observations": { + "radius": 37.34141391204239, + "x": -10.381811945387831, + "y": -3.9448774873244545, + "z": 35.651607471347994 + }, + "state": [ + -10.381811945387831, + -3.9448774873244545, + 35.651607471347994 + ], + "step": 501, + "time": 12.525 + }, + { + "observations": { + "radius": 35.229101123625924, + "x": -8.745810130388838, + "y": -2.2164598880835396, + "z": 34.05418735935958 + }, + "state": [ + -8.745810130388838, + -2.2164598880835396, + 34.05418735935958 + ], + "step": 502, + "time": 12.55 + }, + { + "observations": { + "radius": 32.98257306900969, + "x": -7.167684019856313, + "y": -1.1510369949606025, + "z": 32.17374000454861 + }, + "state": [ + -7.167684019856313, + -1.1510369949606025, + 32.17374000454861 + ], + "step": 503, + "time": 12.575 + }, + { + "observations": { + "radius": 30.782138124216694, + "x": -5.766180503595174, + "y": -0.6081380360817012, + "z": 30.231132265057234 + }, + "state": [ + -5.766180503595174, + -0.6081380360817012, + 30.231132265057234 + ], + "step": 504, + "time": 12.6 + }, + { + "observations": { + "radius": 28.717090744852143, + "x": -4.5989912641966075, + "y": -0.42604752241987276, + "z": 28.343236648423833 + }, + "state": [ + -4.5989912641966075, + -0.42604752241987276, + 28.343236648423833 + ], + "step": 505, + "time": 12.625 + }, + { + "observations": { + "radius": 26.81590772567966, + "x": -3.6777948235809994, + "y": -0.469302705192057, + "z": 26.55836002765808 + }, + "state": [ + -3.6777948235809994, + -0.469302705192057, + 26.55836002765808 + ], + "step": 506, + "time": 12.65 + }, + { + "observations": { + "radius": 25.07598912963742, + "x": -2.9863001190092953, + "y": -0.6425847845582705, + "z": 24.889241194209866 + }, + "state": [ + -2.9863001190092953, + -0.6425847845582705, + 24.889241194209866 + ], + "step": 507, + "time": 12.675 + }, + { + "observations": { + "radius": 23.483798919154868, + "x": -2.4951309750583297, + "y": -0.8875406355657176, + "z": 23.333996758224327 + }, + "state": [ + -2.4951309750583297, + -0.8875406355657176, + 23.333996758224327 + ], + "step": 508, + "time": 12.7 + }, + { + "observations": { + "radius": 22.02549467695936, + "x": -2.171928793909337, + "y": -1.1740862182068754, + "z": 21.88667774311966 + }, + "state": [ + -2.171928793909337, + -1.1740862182068754, + 21.88667774311966 + ], + "step": 509, + "time": 12.725 + }, + { + "observations": { + "radius": 20.691398007703043, + "x": -1.98724223308369, + "y": -1.4917600662151531, + "z": 20.541652117711266 + }, + "state": [ + -1.98724223308369, + -1.4917600662151531, + 20.541652117711266 + ], + "step": 510, + "time": 12.75 + }, + { + "observations": { + "radius": 19.47754397670034, + "x": -1.9174135085128727, + "y": -1.843045394284994, + "z": 19.295114108920757 + }, + "state": [ + -1.9174135085128727, + -1.843045394284994, + 19.295114108920757 + ], + "step": 511, + "time": 12.775 + }, + { + "observations": { + "radius": 18.386440165558735, + "x": -1.9456074512103532, + "y": -2.2389046069616003, + "z": 18.14560827771812 + }, + "state": [ + -1.9456074512103532, + -2.2389046069616003, + 18.14560827771812 + ], + "step": 512, + "time": 12.8 + }, + { + "observations": { + "radius": 17.428185747289994, + "x": -2.061846828592597, + "y": -2.696159268104905, + "z": 17.094477801280647 + }, + "state": [ + -2.061846828592597, + -2.696159268104905, + 17.094477801280647 + ], + "step": 513, + "time": 12.825 + }, + { + "observations": { + "radius": 16.622478489854977, + "x": -2.262622856109467, + "y": -3.2361964479355354, + "z": 16.146651711951673 + }, + "state": [ + -2.262622856109467, + -3.2361964479355354, + 16.146651711951673 + ], + "step": 514, + "time": 12.85 + }, + { + "observations": { + "radius": 16.001604023271163, + "x": -2.550407935126859, + "y": -3.884480229217897, + "z": 15.312007184912929 + }, + "state": [ + -2.550407935126859, + -3.884480229217897, + 15.312007184912929 + ], + "step": 515, + "time": 12.875 + }, + { + "observations": { + "radius": 15.613958135013819, + "x": -2.9332104277580044, + "y": -4.670342488790135, + "z": 14.607527725999958 + }, + "state": [ + -2.9332104277580044, + -4.670342488790135, + 14.607527725999958 + ], + "step": 516, + "time": 12.9 + }, + { + "observations": { + "radius": 15.526743927676057, + "x": -3.4241550042676403, + "y": -5.626426103961281, + "z": 14.060521640360191 + }, + "state": [ + -3.4241550042676403, + -5.626426103961281, + 14.060521640360191 + ], + "step": 517, + "time": 12.925 + }, + { + "observations": { + "radius": 15.825351317867137, + "x": -4.040908908681031, + "y": -6.786874237084021, + "z": 13.713173870977739 + }, + "state": [ + -4.040908908681031, + -6.786874237084021, + 13.713173870977739 + ], + "step": 518, + "time": 12.95 + }, + { + "observations": { + "radius": 16.60659205833386, + "x": -4.804556598737845, + "y": -8.182814497496725, + "z": 13.62852459296307 + }, + "state": [ + -4.804556598737845, + -8.182814497496725, + 13.62852459296307 + ], + "step": 519, + "time": 12.975 + }, + { + "observations": { + "radius": 17.964816766730138, + "x": -5.737199354614959, + "y": -9.832836460036653, + "z": 13.89728434543123 + }, + "state": [ + -5.737199354614959, + -9.832836460036653, + 13.89728434543123 + ], + "step": 520, + "time": 13.0 + }, + { + "observations": { + "radius": 19.97299813676626, + "x": -6.857094336402221, + "y": -11.725207108068249, + "z": 14.643101792511551 + }, + "state": [ + -6.857094336402221, + -11.725207108068249, + 14.643101792511551 + ], + "step": 521, + "time": 13.025 + }, + { + "observations": { + "radius": 22.66074971750652, + "x": -8.169647306776767, + "y": -13.788496557087369, + "z": 16.02010622116897 + }, + "state": [ + -8.169647306776767, + -13.788496557087369, + 16.02010622116897 + ], + "step": 522, + "time": 13.05 + }, + { + "observations": { + "radius": 25.986711859948734, + "x": -9.652515212444282, + "y": -15.850875696669304, + "z": 18.19032388425974 + }, + "state": [ + -9.652515212444282, + -15.850875696669304, + 18.19032388425974 + ], + "step": 523, + "time": 13.075 + }, + { + "observations": { + "radius": 29.80127055694911, + "x": -11.234736086772172, + "y": -17.600833274774725, + "z": 21.26281025411843 + }, + "state": [ + -11.234736086772172, + -17.600833274774725, + 21.26281025411843 + ], + "step": 524, + "time": 13.1 + }, + { + "observations": { + "radius": 33.80656277703759, + "x": -12.775338828491368, + "y": -18.587284538500526, + "z": 25.183074834099266 + }, + "state": [ + -12.775338828491368, + -18.587284538500526, + 25.183074834099266 + ], + "step": 525, + "time": 13.125 + }, + { + "observations": { + "radius": 37.544596870527954, + "x": -14.05721569378104, + "y": -18.321062596039454, + "z": 29.602873280493863 + }, + "state": [ + -14.05721569378104, + -18.321062596039454, + 29.602873280493863 + ], + "step": 526, + "time": 13.15 + }, + { + "observations": { + "radius": 40.46323659595132, + "x": -14.820441499799628, + "y": -16.509231693073286, + "z": 33.838931698198984 + }, + "state": [ + -14.820441499799628, + -16.509231693073286, + 33.838931698198984 + ], + "step": 527, + "time": 13.175 + }, + { + "observations": { + "radius": 42.08363119119781, + "x": -14.846782943543323, + "y": -13.315753160576397, + "z": 37.05800545402664 + }, + "state": [ + -14.846782943543323, + -13.315753160576397, + 37.05800545402664 + ], + "step": 528, + "time": 13.2 + }, + { + "observations": { + "radius": 42.201095310600245, + "x": -14.062406553107323, + "y": -9.401394560786345, + "z": 38.66257813004595 + }, + "state": [ + -14.062406553107323, + -9.401394560786345, + 38.66257813004595 + ], + "step": 529, + "time": 13.225 + }, + { + "observations": { + "radius": 40.975066932064756, + "x": -12.586117056524484, + "y": -5.619587875198297, + "z": 38.58712219950555 + }, + "state": [ + -12.586117056524484, + -5.619587875198297, + 38.58712219950555 + ], + "step": 530, + "time": 13.25 + }, + { + "observations": { + "radius": 38.82909869345274, + "x": -10.67987722776615, + "y": -2.6005460718592848, + "z": 37.240787959895165 + }, + "state": [ + -10.67987722776615, + -2.6005460718592848, + 37.240787959895165 + ], + "step": 531, + "time": 13.275 + }, + { + "observations": { + "radius": 36.24414614358889, + "x": -8.639961864929694, + "y": -0.561022041198898, + "z": 35.19480704478545 + }, + "state": [ + -8.639961864929694, + -0.561022041198898, + 35.19480704478545 + ], + "step": 532, + "time": 13.3 + }, + { + "observations": { + "radius": 33.59386934605555, + "x": -6.704497994687777, + "y": 0.6058171664538411, + "z": 32.91247103819323 + }, + "state": [ + -6.704497994687777, + 0.6058171664538411, + 32.91247103819323 + ], + "step": 533, + "time": 13.325 + }, + { + "observations": { + "radius": 31.090811808671052, + "x": -5.016451882331218, + "y": 1.142112246487142, + "z": 30.662181413768966 + }, + "state": [ + -5.016451882331218, + 1.142112246487142, + 30.662181413768966 + ], + "step": 534, + "time": 13.35 + }, + { + "observations": { + "radius": 28.815291638822327, + "x": -3.6320517580842493, + "y": 1.2886429875232384, + "z": 28.556411390573714 + }, + "state": [ + -3.6320517580842493, + 1.2886429875232384, + 28.556411390573714 + ], + "step": 535, + "time": 13.375 + }, + { + "observations": { + "radius": 26.7704977669387, + "x": -2.548015870421282, + "y": 1.2286485716222915, + "z": 26.62062336800552 + }, + "state": [ + -2.548015870421282, + 1.2286485716222915, + 26.62062336800552 + ], + "step": 536, + "time": 13.4 + }, + { + "observations": { + "radius": 24.927893583755623, + "x": -1.728711346946758, + "y": 1.081963294033448, + "z": 24.844331164922643 + }, + "state": [ + -1.728711346946758, + 1.081963294033448, + 24.844331164922643 + ], + "step": 537, + "time": 13.425 + }, + { + "observations": { + "radius": 23.25327635365951, + "x": -1.125945755217587, + "y": 0.9184250173368737, + "z": 23.20783494476591 + }, + "state": [ + -1.125945755217587, + 0.9184250173368737, + 23.20783494476591 + ], + "step": 538, + "time": 13.45 + }, + { + "observations": { + "radius": 21.71754070527473, + "x": -0.6909062526392618, + "y": 0.7741252480098518, + "z": 21.692739636471057 + }, + "state": [ + -0.6909062526392618, + 0.7741252480098518, + 21.692739636471057 + ], + "step": 539, + "time": 13.475 + }, + { + "observations": { + "radius": 20.299001247385448, + "x": -0.380159411901769, + "y": 0.6646819735169132, + "z": 20.284553934878137 + }, + "state": [ + -0.380159411901769, + 0.6646819735169132, + 20.284553934878137 + ], + "step": 540, + "time": 13.5 + }, + { + "observations": { + "radius": 18.982319073284817, + "x": -0.15784761803295846, + "y": 0.5945539521131058, + "z": 18.972349014486863 + }, + "state": [ + -0.15784761803295846, + 0.5945539521131058, + 18.972349014486863 + ], + "step": 541, + "time": 13.525 + }, + { + "observations": { + "radius": 17.756683350890725, + "x": 0.004260332858856469, + "y": 0.5630254222049869, + "z": 17.747754445205587 + }, + "state": [ + 0.004260332858856469, + 0.5630254222049869, + 17.747754445205587 + ], + "step": 542, + "time": 13.55 + }, + { + "observations": { + "radius": 16.61428703192664, + "x": 0.12776116532156506, + "y": 0.5677984507146101, + "z": 16.60409032688173 + }, + "state": [ + 0.12776116532156506, + 0.5677984507146101, + 16.60409032688173 + ], + "step": 543, + "time": 13.575 + }, + { + "observations": { + "radius": 15.549340016450385, + "x": 0.22899060819130235, + "y": 0.6070208849662992, + "z": 15.53579942885979 + }, + "state": [ + 0.22899060819130235, + 0.6070208849662992, + 15.53579942885979 + ], + "step": 544, + "time": 13.6 + }, + { + "observations": { + "radius": 14.55757489989422, + "x": 0.3204239705176777, + "y": 0.6803766012797122, + "z": 14.538136164088538 + }, + "state": [ + 0.3204239705176777, + 0.6803766012797122, + 14.538136164088538 + ], + "step": 545, + "time": 13.625 + }, + { + "observations": { + "radius": 13.636156273218969, + "x": 0.4119439491303555, + "y": 0.7896763074680705, + "z": 13.607037569575809 + }, + "state": [ + 0.4119439491303555, + 0.7896763074680705, + 13.607037569575809 + ], + "step": 546, + "time": 13.65 + }, + { + "observations": { + "radius": 12.783957164921734, + "x": 0.5119304127211416, + "y": 0.9392395596746016, + "z": 12.739125444732348 + }, + "state": [ + 0.5119304127211416, + 0.9392395596746016, + 12.739125444732348 + ], + "step": 547, + "time": 13.675 + }, + { + "observations": { + "radius": 12.00225429144393, + "x": 0.6281883643437006, + "y": 1.1362544007149895, + "z": 11.93182355686855 + }, + "state": [ + 0.6281883643437006, + 1.1362544007149895, + 11.93182355686855 + ], + "step": 548, + "time": 13.7 + }, + { + "observations": { + "radius": 11.296000366680724, + "x": 0.7687594677598223, + "y": 1.3912326897876013, + "z": 11.183608754228084 + }, + "state": [ + 0.7687594677598223, + 1.3912326897876013, + 11.183608754228084 + ], + "step": 549, + "time": 13.725 + }, + { + "observations": { + "radius": 10.67594901272373, + "x": 0.9426734017304103, + "y": 1.718636047935167, + "z": 10.494453025988758 + }, + "state": [ + 0.9426734017304103, + 1.718636047935167, + 10.494453025988758 + ], + "step": 550, + "time": 13.75 + }, + { + "observations": { + "radius": 10.161994253398198, + "x": 1.1606957051491098, + "y": 2.1377172350940166, + "z": 9.866563622099054 + }, + "state": [ + 1.1606957051491098, + 2.1377172350940166, + 9.866563622099054 + ], + "step": 551, + "time": 13.775 + }, + { + "observations": { + "radius": 9.787990300156304, + "x": 1.4361226214951976, + "y": 2.6735878797854467, + "z": 9.305602279328728 + }, + "state": [ + 1.4361226214951976, + 2.6735878797854467, + 9.305602279328728 + ], + "step": 552, + "time": 13.8 + }, + { + "observations": { + "radius": 9.607678042772237, + "x": 1.785658322114697, + "y": 3.358460921458657, + "z": 8.822677709701594 + }, + "state": [ + 1.785658322114697, + 3.358460921458657, + 8.822677709701594 + ], + "step": 553, + "time": 13.825 + }, + { + "observations": { + "radius": 9.69971659480655, + "x": 2.2303766708827357, + "y": 4.2328781552265005, + "z": 8.437574559584874 + }, + "state": [ + 2.2303766708827357, + 4.2328781552265005, + 8.437574559584874 + ], + "step": 554, + "time": 13.85 + }, + { + "observations": { + "radius": 10.167707877696323, + "x": 2.7966968656975486, + "y": 5.346430246784741, + "z": 8.18391432896451 + }, + "state": [ + 2.7966968656975486, + 5.346430246784741, + 8.18391432896451 + ], + "step": 555, + "time": 13.875 + }, + { + "observations": { + "radius": 11.13167067114413, + "x": 3.5171434862803994, + "y": 6.756838366001494, + "z": 8.117199573957512 + }, + "state": [ + 3.5171434862803994, + 6.756838366001494, + 8.117199573957512 + ], + "step": 556, + "time": 13.9 + }, + { + "observations": { + "radius": 12.713717865655639, + "x": 4.430331632573749, + "y": 8.52499720101625, + "z": 8.326776466050525 + }, + "state": [ + 4.430331632573749, + 8.52499720101625, + 8.326776466050525 + ], + "step": 557, + "time": 13.925 + }, + { + "observations": { + "radius": 15.026008180509738, + "x": 5.578966353711987, + "y": 10.701265530371451, + "z": 8.952037327523772 + }, + "state": [ + 5.578966353711987, + 10.701265530371451, + 8.952037327523772 + ], + "step": 558, + "time": 13.95 + }, + { + "observations": { + "radius": 18.16150230028602, + "x": 7.003482029583996, + "y": 13.294744425702868, + "z": 10.200057642966094 + }, + "state": [ + 7.003482029583996, + 13.294744425702868, + 10.200057642966094 + ], + "step": 559, + "time": 13.975 + }, + { + "observations": { + "radius": 22.173279010507965, + "x": 8.727224350299318, + "y": 16.214004007963876, + "z": 12.352972567244983 + }, + "state": [ + 8.727224350299318, + 16.214004007963876, + 12.352972567244983 + ], + "step": 560, + "time": 14.0 + }, + { + "observations": { + "radius": 27.02267408373268, + "x": 10.727660949768568, + "y": 19.1720776021455, + "z": 15.734473159269092 + }, + "state": [ + 10.727660949768568, + 19.1720776021455, + 15.734473159269092 + ], + "step": 561, + "time": 14.025 + }, + { + "observations": { + "radius": 32.486874728305686, + "x": 12.890622767747526, + "y": 21.580262872766312, + "z": 20.57962897174193 + }, + "state": [ + 12.890622767747526, + 21.580262872766312, + 20.57962897174193 + ], + "step": 562, + "time": 14.05 + }, + { + "observations": { + "radius": 38.05163057274809, + "x": 14.959299377555123, + "y": 22.53899423165313, + "z": 26.760786430953086 + }, + "state": [ + 14.959299377555123, + 22.53899423165313, + 26.760786430953086 + ], + "step": 563, + "time": 14.075 + }, + { + "observations": { + "radius": 42.88465408941925, + "x": 16.52299431701332, + "y": 21.12659425205808, + "z": 33.462684149332595 + }, + "state": [ + 16.52299431701332, + 21.12659425205808, + 33.462684149332595 + ], + "step": 564, + "time": 14.1 + }, + { + "observations": { + "radius": 46.03591539449588, + "x": 17.116961195797167, + "y": 17.052108734234952, + "z": 39.18597623317026 + }, + "state": [ + 17.116961195797167, + 17.052108734234952, + 39.18597623317026 + ], + "step": 565, + "time": 14.125 + }, + { + "observations": { + "radius": 46.8814762887636, + "x": 16.44522537777919, + "y": 11.184842308190387, + "z": 42.45381824793696 + }, + "state": [ + 16.44522537777919, + 11.184842308190387, + 42.45381824793696 + ], + "step": 566, + "time": 14.15 + }, + { + "observations": { + "radius": 45.502515885253985, + "x": 14.577904642753575, + "y": 5.191765204689495, + "z": 42.790293550920524 + }, + "state": [ + 14.577904642753575, + 5.191765204689495, + 42.790293550920524 + ], + "step": 567, + "time": 14.175 + }, + { + "observations": { + "radius": 42.61658519883598, + "x": 11.926288111967942, + "y": 0.46518085908174367, + "z": 40.91113042496286 + }, + "state": [ + 11.926288111967942, + 0.46518085908174367, + 40.91113042496286 + ], + "step": 568, + "time": 14.2 + }, + { + "observations": { + "radius": 39.126252266402346, + "x": 9.014879637794335, + "y": -2.53206847428811, + "z": 37.98926415149091 + }, + "state": [ + 9.014879637794335, + -2.53206847428811, + 37.98926415149091 + ], + "step": 569, + "time": 14.225 + }, + { + "observations": { + "radius": 35.71074944682533, + "x": 6.261180886133799, + "y": -4.071487449446347, + "z": 34.92102847732365 + }, + "state": [ + 6.261180886133799, + -4.071487449446347, + 34.92102847732365 + ], + "step": 570, + "time": 14.25 + }, + { + "observations": { + "radius": 32.702852697700145, + "x": 3.894247359800344, + "y": -4.667157154339385, + "z": 32.13299015287654 + }, + "state": [ + 3.894247359800344, + -4.667157154339385, + 32.13299015287654 + ], + "step": 571, + "time": 14.275 + }, + { + "observations": { + "radius": 30.17456921516623, + "x": 1.9829991297474154, + "y": -4.768401907224507, + "z": 29.729357292471967 + }, + "state": [ + 1.9829991297474154, + -4.768401907224507, + 29.729357292471967 + ], + "step": 572, + "time": 14.3 + }, + { + "observations": { + "radius": 28.07136165238232, + "x": 0.4985681568476892, + "y": -4.676910947601751, + "z": 27.674524003133655 + }, + "state": [ + 0.4985681568476892, + -4.676910947601751, + 27.674524003133655 + ], + "step": 573, + "time": 14.325 + }, + { + "observations": { + "radius": 26.307990280138117, + "x": -0.6329893774575593, + "y": -4.568474519821111, + "z": 25.900554387688555 + }, + "state": [ + -0.6329893774575593, + -4.568474519821111, + 25.900554387688555 + ], + "step": 574, + "time": 14.35 + }, + { + "observations": { + "radius": 24.813888262458004, + "x": -1.4978460452330944, + "y": -4.536045273256702, + "z": 24.349739243069855 + }, + "state": [ + -1.4978460452330944, + -4.536045273256702, + 24.349739243069855 + ], + "step": 575, + "time": 14.375 + }, + { + "observations": { + "radius": 23.545943241837406, + "x": -2.1776432444551745, + "y": -4.62481439760957, + "z": 22.98435130334051 + }, + "state": [ + -2.1776432444551745, + -4.62481439760957, + 22.98435130334051 + ], + "step": 576, + "time": 14.4 + }, + { + "observations": { + "radius": 22.48719645365532, + "x": -2.74278230621057, + "y": -4.855213246254234, + "z": 21.78481245958808 + }, + "state": [ + -2.74278230621057, + -4.855213246254234, + 21.78481245958808 + ], + "step": 577, + "time": 14.425 + }, + { + "observations": { + "radius": 21.64212528113237, + "x": -3.2511443732275915, + "y": -5.236529117783511, + "z": 20.745852832488346 + }, + "state": [ + -3.2511443732275915, + -5.236529117783511, + 20.745852832488346 + ], + "step": 578, + "time": 14.45 + }, + { + "observations": { + "radius": 21.03256729704589, + "x": -3.7493259353520028, + "y": -5.774167855973203, + "z": 19.87386292863838 + }, + "state": [ + -3.7493259353520028, + -5.774167855973203, + 19.87386292863838 + ], + "step": 579, + "time": 14.475 + }, + { + "observations": { + "radius": 20.69467124409897, + "x": -4.27468226973464, + "y": -6.4725968715497375, + "z": 19.1859844452287 + }, + "state": [ + -4.27468226973464, + -6.4725968715497375, + 19.1859844452287 + ], + "step": 580, + "time": 14.5 + }, + { + "observations": { + "radius": 20.675604088417806, + "x": -4.857182385841805, + "y": -7.335027489345575, + "z": 18.710578703562646 + }, + "state": [ + -4.857182385841805, + -7.335027489345575, + 18.710578703562646 + ], + "step": 581, + "time": 14.525 + }, + { + "observations": { + "radius": 21.028238870655603, + "x": -5.520443097232045, + "y": -8.360140221425818, + "z": 18.4883637320795 + }, + "state": [ + -5.520443097232045, + -8.360140221425818, + 18.4883637320795 + ], + "step": 582, + "time": 14.55 + }, + { + "observations": { + "radius": 21.80241880265074, + "x": -6.281451107313831, + "y": -9.535638214782914, + "z": 18.573110710631543 + }, + "state": [ + -6.281451107313831, + -9.535638214782914, + 18.573110710631543 + ], + "step": 583, + "time": 14.575 + }, + { + "observations": { + "radius": 23.032479950759612, + "x": -7.148519758462112, + "y": -10.828283073554193, + "z": 19.03003109887107 + }, + "state": [ + -7.148519758462112, + -10.828283073554193, + 19.03003109887107 + ], + "step": 584, + "time": 14.6 + }, + { + "observations": { + "radius": 24.72190743862429, + "x": -8.1171076832847, + "y": -12.170765880782033, + "z": 19.928816526253115 + }, + "state": [ + -8.1171076832847, + -12.170765880782033, + 19.928816526253115 + ], + "step": 585, + "time": 14.625 + }, + { + "observations": { + "radius": 26.826640572976327, + "x": -9.163513907796828, + "y": -13.448034911524148, + "z": 21.327189554924985 + }, + "state": [ + -9.163513907796828, + -13.448034911524148, + 21.327189554924985 + ], + "step": 586, + "time": 14.65 + }, + { + "observations": { + "radius": 29.239267731476055, + "x": -10.23751426679708, + "y": -14.490180403434694, + "z": 23.241401657085582 + }, + "state": [ + -10.23751426679708, + -14.490180403434694, + 23.241401657085582 + ], + "step": 587, + "time": 14.675 + }, + { + "observations": { + "radius": 31.778988403344655, + "x": -11.256996643734137, + "y": -15.084584680859775, + "z": 25.605457143133435 + }, + "state": [ + -11.256996643734137, + -15.084584680859775, + 25.605457143133435 + ], + "step": 588, + "time": 14.7 + }, + { + "observations": { + "radius": 34.19690539897873, + "x": -12.110095587388246, + "y": -15.021281049254254, + "z": 28.233579995642337 + }, + "state": [ + -12.110095587388246, + -15.021281049254254, + 28.233579995642337 + ], + "step": 589, + "time": 14.725 + }, + { + "observations": { + "radius": 36.208251616818444, + "x": -12.671027751396002, + "y": -14.17223543398777, + "z": 30.816071840418097 + }, + "state": [ + -12.671027751396002, + -14.17223543398777, + 30.816071840418097 + ], + "step": 590, + "time": 14.75 + }, + { + "observations": { + "radius": 37.554504269250934, + "x": -12.831227529629599, + "y": -12.573738889178767, + "z": 32.97880351587692 + }, + "state": [ + -12.831227529629599, + -12.573738889178767, + 32.97880351587692 + ], + "step": 591, + "time": 14.775 + }, + { + "observations": { + "radius": 38.07703089490282, + "x": -12.536582967744808, + "y": -10.453692410844507, + "z": 34.4007948199411 + }, + "state": [ + -12.536582967744808, + -10.453692410844507, + 34.4007948199411 + ], + "step": 592, + "time": 14.8 + }, + { + "observations": { + "radius": 37.765065210638944, + "x": -11.81180361363725, + "y": -8.164904912025694, + "z": 34.92872418990216 + }, + "state": [ + -11.81180361363725, + -8.164904912025694, + 34.92872418990216 + ], + "step": 593, + "time": 14.825 + }, + { + "observations": { + "radius": 36.748201753020005, + "x": -10.75611703204922, + "y": -6.055341380347063, + "z": 34.61313506807755 + }, + "state": [ + -10.75611703204922, + -6.055341380347063, + 34.61313506807755 + ], + "step": 594, + "time": 14.85 + }, + { + "observations": { + "radius": 35.23840709792503, + "x": -9.511896958120387, + "y": -4.357713976211407, + "z": 33.64936076597481 + }, + "state": [ + -9.511896958120387, + -4.357713976211407, + 33.64936076597481 + ], + "step": 595, + "time": 14.875 + }, + { + "observations": { + "radius": 33.45736633876126, + "x": -8.224184029645173, + "y": -3.1555788585730347, + "z": 32.276934201375624 + }, + "state": [ + -8.224184029645173, + -3.1555788585730347, + 32.276934201375624 + ], + "step": 596, + "time": 14.9 + }, + { + "observations": { + "radius": 31.584811515250433, + "x": -7.010145783946108, + "y": -2.417293647158681, + "z": 30.70203358028789 + }, + "state": [ + -7.010145783946108, + -2.417293647158681, + 30.70203358028789 + ], + "step": 597, + "time": 14.925 + }, + { + "observations": { + "radius": 29.740357278206268, + "x": -5.946378559071505, + "y": -2.053788120937427, + "z": 29.067359484856333 + }, + "state": [ + -5.946378559071505, + -2.053788120937427, + 29.067359484856333 + ], + "step": 598, + "time": 14.95 + }, + { + "observations": { + "radius": 27.990440556170736, + "x": -5.070973705446424, + "y": -1.9656777234676794, + "z": 27.456986347643134 + }, + "state": [ + -5.070973705446424, + -1.9656777234676794, + 27.456986347643134 + ], + "step": 599, + "time": 14.975 + }, + { + "observations": { + "radius": 26.365580813264668, + "x": -4.393112638344688, + "y": -2.069129028028455, + "z": 25.914534879734504 + }, + "state": [ + -4.393112638344688, + -2.069129028028455, + 25.914534879734504 + ], + "step": 600, + "time": 15.0 + }, + { + "observations": { + "radius": 24.877281038848707, + "x": -3.904156191302449, + "y": -2.3046488014293254, + "z": 24.460688261409295 + }, + "state": [ + -3.904156191302449, + -2.3046488014293254, + 24.460688261409295 + ], + "step": 601, + "time": 15.025 + }, + { + "observations": { + "radius": 23.530283226434204, + "x": -3.587004132535716, + "y": -2.636410223442076, + "z": 23.10534507864171 + }, + "state": [ + -3.587004132535716, + -2.636410223442076, + 23.10534507864171 + ], + "step": 602, + "time": 15.05 + }, + { + "observations": { + "radius": 22.330140224756125, + "x": -3.4227294949779195, + "y": -3.04788434281291, + "z": 21.854758893529702 + }, + "state": [ + -3.4227294949779195, + -3.04788434281291, + 21.854758893529702 + ], + "step": 603, + "time": 15.075 + }, + { + "observations": { + "radius": 21.287665516095853, + "x": -3.3946771894003027, + "y": -3.536909069778017, + "z": 20.715480784598356 + }, + "state": [ + -3.3946771894003027, + -3.536909069778017, + 20.715480784598356 + ], + "step": 604, + "time": 15.1 + }, + { + "observations": { + "radius": 20.421813384958355, + "x": -3.4906343223110445, + "y": -4.111454107820234, + "z": 19.696747931505254 + }, + "state": [ + -3.4906343223110445, + -4.111454107820234, + 19.696747931505254 + ], + "step": 605, + "time": 15.125 + }, + { + "observations": { + "radius": 19.761891722028498, + "x": -3.703690022718637, + "y": -4.786288317730446, + "z": 18.812402525683687 + }, + "state": [ + -3.703690022718637, + -4.786288317730446, + 18.812402525683687 + ], + "step": 606, + "time": 15.15 + }, + { + "observations": { + "radius": 19.349186288659997, + "x": -4.032242490708141, + "y": -5.580211324829964, + "z": 18.0829552921981 + }, + "state": [ + -4.032242490708141, + -5.580211324829964, + 18.0829552921981 + ], + "step": 607, + "time": 15.175 + }, + { + "observations": { + "radius": 19.23722929118397, + "x": -4.479396053730655, + "y": -6.513193340288915, + "z": 17.538081830902286 + }, + "state": [ + -4.479396053730655, + -6.513193340288915, + 17.538081830902286 + ], + "step": 608, + "time": 15.2 + }, + { + "observations": { + "radius": 19.48925655527656, + "x": -5.051761813843964, + "y": -7.602502828379745, + "z": 17.219546288972204 + }, + "state": [ + -5.051761813843964, + -7.602502828379745, + 17.219546288972204 + ], + "step": 609, + "time": 15.225 + }, + { + "observations": { + "radius": 20.171297695897756, + "x": -5.757437176413389, + "y": -8.85662654947253, + "z": 17.18410120021881 + }, + "state": [ + -5.757437176413389, + -8.85662654947253, + 17.18410120021881 + ], + "step": 610, + "time": 15.25 + }, + { + "observations": { + "radius": 21.340235342233733, + "x": -6.60269866039271, + "y": -10.265591467611031, + "z": 17.505074883646785 + }, + "state": [ + -6.60269866039271, + -10.265591467611031, + 17.505074883646785 + ], + "step": 611, + "time": 15.275 + }, + { + "observations": { + "radius": 23.02760621280512, + "x": -7.58675411323029, + "y": -11.786568238229908, + "z": 18.269882842617086 + }, + "state": [ + -7.58675411323029, + -11.786568238229908, + 18.269882842617086 + ], + "step": 612, + "time": 15.3 + }, + { + "observations": { + "radius": 25.220583090686993, + "x": -8.69394833044443, + "y": -13.325269355117205, + "z": 19.568604203554827 + }, + "state": [ + -8.69394833044443, + -13.325269355117205, + 19.568604203554827 + ], + "step": 613, + "time": 15.325 + }, + { + "observations": { + "radius": 27.841368544371115, + "x": -9.883508411031341, + "y": -14.718086527651918, + "z": 21.467090927210453 + }, + "state": [ + -9.883508411031341, + -14.718086527651918, + 21.467090927210453 + ], + "step": 614, + "time": 15.35 + }, + { + "observations": { + "radius": 30.72787709722247, + "x": -11.078865177363975, + "y": -15.72803667313257, + "z": 23.96017611981177 + }, + "state": [ + -11.078865177363975, + -15.72803667313257, + 23.96017611981177 + ], + "step": 615, + "time": 15.375 + }, + { + "observations": { + "radius": 33.62481999691957, + "x": -12.162081591587356, + "y": -16.07611282230253, + "z": 26.9122813546049 + }, + "state": [ + -12.162081591587356, + -16.07611282230253, + 26.9122813546049 + ], + "step": 616, + "time": 15.4 + }, + { + "observations": { + "radius": 36.202231182343674, + "x": -12.982451933512706, + "y": -15.525975878213934, + "z": 30.016687981904457 + }, + "state": [ + -12.982451933512706, + -15.525975878213934, + 30.016687981904457 + ], + "step": 617, + "time": 15.425 + }, + { + "observations": { + "radius": 38.11690426351657, + "x": -13.387092170664257, + "y": -14.006551247550904, + "z": 32.8253054212441 + }, + "state": [ + -13.387092170664257, + -14.006551247550904, + 32.8253054212441 + ], + "step": 618, + "time": 15.45 + }, + { + "observations": { + "radius": 39.10921861422517, + "x": -13.269795222108458, + "y": -11.701387887761667, + "z": 34.8786616268272 + }, + "state": [ + -13.269795222108458, + -11.701387887761667, + 34.8786616268272 + ], + "step": 619, + "time": 15.475 + }, + { + "observations": { + "radius": 39.09150177754963, + "x": -12.616120973446932, + "y": -9.017195735147803, + "z": 35.88410767849119 + }, + "state": [ + -12.616120973446932, + -9.017195735147803, + 35.88410767849119 + ], + "step": 620, + "time": 15.5 + }, + { + "observations": { + "radius": 38.17181012708187, + "x": -11.515768382927828, + "y": -6.424666345880524, + "z": 35.82175078458422 + }, + "state": [ + -11.515768382927828, + -6.424666345880524, + 35.82175078458422 + ], + "step": 621, + "time": 15.525 + }, + { + "observations": { + "radius": 36.59581392437738, + "x": -10.132007562867301, + "y": -4.278150049698498, + "z": 34.90406067617231 + }, + "state": [ + -10.132007562867301, + -4.278150049698498, + 34.90406067617231 + ], + "step": 622, + "time": 15.55 + }, + { + "observations": { + "radius": 34.64710600843023, + "x": -8.647554259317587, + "y": -2.7305921109422937, + "z": 33.439282689902605 + }, + "state": [ + -8.647554259317587, + -2.7305921109422937, + 33.439282689902605 + ], + "step": 623, + "time": 15.575 + }, + { + "observations": { + "radius": 32.56474023289008, + "x": -7.217362634259838, + "y": -1.7621072195459804, + "z": 31.705945202564514 + }, + "state": [ + -7.217362634259838, + -1.7621072195459804, + 31.705945202564514 + ], + "step": 624, + "time": 15.6 + }, + { + "observations": { + "radius": 30.50791920751572, + "x": -5.945533490551796, + "y": -1.260468349898928, + "z": 29.896404222313034 + }, + "state": [ + -5.945533490551796, + -1.260468349898928, + 29.896404222313034 + ], + "step": 625, + "time": 15.625 + }, + { + "observations": { + "radius": 28.561015899320612, + "x": -4.884865305943588, + "y": -1.0924736658521255, + "z": 28.118965511438237 + }, + "state": [ + -4.884865305943588, + -1.0924736658521255, + 28.118965511438237 + ], + "step": 626, + "time": 15.65 + }, + { + "observations": { + "radius": 26.756894873196153, + "x": -4.048742729920263, + "y": -1.1438258897063414, + "z": 26.424056613174024 + }, + "state": [ + -4.048742729920263, + -1.1438258897063414, + 26.424056613174024 + ], + "step": 627, + "time": 15.675 + }, + { + "observations": { + "radius": 25.100882549662288, + "x": -3.4259553450948514, + "y": -1.332538517958592, + "z": 24.830253237603387 + }, + "state": [ + -3.4259553450948514, + -1.332538517958592, + 24.830253237603387 + ], + "step": 628, + "time": 15.7 + }, + { + "observations": { + "radius": 23.58783558827457, + "x": -2.993331947769572, + "y": -1.607907072106314, + "z": 23.341820546765515 + }, + "state": [ + -2.993331947769572, + -1.607907072106314, + 23.341820546765515 + ], + "step": 629, + "time": 15.725 + }, + { + "observations": { + "radius": 22.211908530198414, + "x": -2.7246156081668857, + "y": -1.9441636077303914, + "z": 21.958269016660015 + }, + "state": [ + -2.7246156081668857, + -1.9441636077303914, + 21.958269016660015 + ], + "step": 630, + "time": 15.75 + }, + { + "observations": { + "radius": 20.971413951821013, + "x": -2.595854402350006, + "y": -2.3335883927509156, + "z": 20.678880730679097 + }, + "state": [ + -2.595854402350006, + -2.3335883927509156, + 20.678880730679097 + ], + "step": 631, + "time": 15.775 + }, + { + "observations": { + "radius": 19.871305017421527, + "x": -2.5882101496507515, + "y": -2.780927924131465, + "z": 19.504778163245863 + }, + "state": [ + -2.5882101496507515, + -2.780927924131465, + 19.504778163245863 + ], + "step": 632, + "time": 15.8 + }, + { + "observations": { + "radius": 18.925023260797175, + "x": -2.689104684144778, + "y": -3.299483894128165, + "z": 18.440136318688474 + }, + "state": [ + -2.689104684144778, + -3.299483894128165, + 18.440136318688474 + ], + "step": 633, + "time": 15.825 + }, + { + "observations": { + "radius": 18.156602619722403, + "x": -2.892416930399594, + "y": -3.9086034770543083, + "z": 17.493397664559254 + }, + "state": [ + -2.892416930399594, + -3.9086034770543083, + 17.493397664559254 + ], + "step": 634, + "time": 15.85 + }, + { + "observations": { + "radius": 17.60317028207968, + "x": -3.1981938146782602, + "y": -4.632052649056369, + "z": 16.678946266476693 + }, + "state": [ + -3.1981938146782602, + -4.632052649056369, + 16.678946266476693 + ], + "step": 635, + "time": 15.875 + }, + { + "observations": { + "radius": 17.31719312300107, + "x": -3.6121050619250914, + "y": -5.496618551264297, + "z": 16.019521190810536 + }, + "state": [ + -3.6121050619250914, + -5.496618551264297, + 16.019521190810536 + ], + "step": 636, + "time": 15.9 + }, + { + "observations": { + "radius": 17.36689689862335, + "x": -4.144657568251622, + "y": -6.530108115624206, + "z": 15.549553354601757 + }, + "state": [ + -4.144657568251622, + -6.530108115624206, + 15.549553354601757 + ], + "step": 637, + "time": 15.925 + }, + { + "observations": { + "radius": 17.83258344095041, + "x": -4.809963964186926, + "y": -7.757592276103489, + "z": 15.319433439896574 + }, + "state": [ + -4.809963964186926, + -7.757592276103489, + 15.319433439896574 + ], + "step": 638, + "time": 15.95 + }, + { + "observations": { + "radius": 18.79697656957625, + "x": -5.623597211659012, + "y": -9.194256087930615, + "z": 15.4002317368204 + }, + "state": [ + -5.623597211659012, + -9.194256087930615, + 15.4002317368204 + ], + "step": 639, + "time": 15.975 + }, + { + "observations": { + "radius": 20.329647235086423, + "x": -6.598741238531478, + "y": -10.832691757460461, + "z": 15.887226317322016 + }, + "state": [ + -6.598741238531478, + -10.832691757460461, + 15.887226317322016 + ], + "step": 640, + "time": 16.0 + }, + { + "observations": { + "radius": 22.46728600534246, + "x": -7.739526861171305, + "y": -12.622501910457068, + "z": 16.898257600462024 + }, + "state": [ + -7.739526861171305, + -12.622501910457068, + 16.898257600462024 + ], + "step": 641, + "time": 16.025 + }, + { + "observations": { + "radius": 25.19066631690055, + "x": -9.030401487695809, + "y": -14.44221919062677, + "z": 18.55919780891246 + }, + "state": [ + -9.030401487695809, + -14.44221919062677, + 18.55919780891246 + ], + "step": 642, + "time": 16.05 + }, + { + "observations": { + "radius": 28.397345814286954, + "x": -10.421332093192742, + "y": -16.070645879830728, + "z": 20.96519562762703 + }, + "state": [ + -10.421332093192742, + -16.070645879830728, + 20.96519562762703 + ], + "step": 643, + "time": 16.075 + }, + { + "observations": { + "radius": 31.872931104567314, + "x": -11.81179273427903, + "y": -17.179194684962845, + "z": 24.108931116394853 + }, + "state": [ + -11.81179273427903, + -17.179194684962845, + 24.108931116394853 + ], + "step": 644, + "time": 16.1 + }, + { + "observations": { + "radius": 35.276744782122876, + "x": -13.04260549197137, + "y": -17.383091491493964, + "z": 27.787898348061187 + }, + "state": [ + -13.04260549197137, + -17.383091491493964, + 27.787898348061187 + ], + "step": 645, + "time": 16.125 + }, + { + "observations": { + "radius": 38.172443907254625, + "x": -13.911013923735794, + "y": -16.38177465748308, + "z": 31.547688101310605 + }, + "state": [ + -13.911013923735794, + -16.38177465748308, + 31.547688101310605 + ], + "step": 646, + "time": 16.15 + }, + { + "observations": { + "radius": 40.12840648598709, + "x": -14.221192298022663, + "y": -14.151713658520443, + "z": 34.75306745101096 + }, + "state": [ + -14.221192298022663, + -14.151713658520443, + 34.75306745101096 + ], + "step": 647, + "time": 16.175 + }, + { + "observations": { + "radius": 40.865911938010335, + "x": -13.859478148883403, + "y": -11.05300722272885, + "z": 36.82076391521696 + }, + "state": [ + -13.859478148883403, + -11.05300722272885, + 36.82076391521696 + ], + "step": 648, + "time": 16.2 + }, + { + "observations": { + "radius": 40.37079825011672, + "x": -12.852172840202249, + "y": -7.7135769291459955, + "z": 37.48498013331928 + }, + "state": [ + -12.852172840202249, + -7.7135769291459955, + 37.48498013331928 + ], + "step": 649, + "time": 16.225 + }, + { + "observations": { + "radius": 38.88453684025947, + "x": -11.362101339197473, + "y": -4.7425595985136795, + "z": 36.8838445243151 + }, + "state": [ + -11.362101339197473, + -4.7425595985136795, + 36.8838445243151 + ], + "step": 650, + "time": 16.25 + }, + { + "observations": { + "radius": 36.78051373993951, + "x": -9.62415689358795, + "y": -2.494736942482465, + "z": 35.41127055965792 + }, + "state": [ + -9.62415689358795, + -2.494736942482465, + 35.41127055965792 + ], + "step": 651, + "time": 16.275 + }, + { + "observations": { + "radius": 34.41660486115795, + "x": -7.864861683588636, + "y": -1.0310942035323976, + "z": 33.490050546551025 + }, + "state": [ + -7.864861683588636, + -1.0310942035323976, + 33.490050546551025 + ], + "step": 652, + "time": 16.3 + }, + { + "observations": { + "radius": 32.0469221052851, + "x": -6.249908623769919, + "y": -0.2241353726881987, + "z": 31.43077507716676 + }, + "state": [ + -6.249908623769919, + -0.2241353726881987, + 31.43077507716676 + ], + "step": 653, + "time": 16.325 + }, + { + "observations": { + "radius": 29.808364778984473, + "x": -4.870956634997228, + "y": 0.11622370855074574, + "z": 29.407463071583535 + }, + "state": [ + -4.870956634997228, + 0.11622370855074574, + 29.407463071583535 + ], + "step": 654, + "time": 16.35 + }, + { + "observations": { + "radius": 27.75070514262828, + "x": -3.758269342651898, + "y": 0.16396292173083907, + "z": 27.49454788901749 + }, + "state": [ + -3.758269342651898, + 0.16396292173083907, + 27.49454788901749 + ], + "step": 655, + "time": 16.375 + }, + { + "observations": { + "radius": 25.875252379758674, + "x": -2.9019500538819263, + "y": 0.047778068094027445, + "z": 25.711963924546698 + }, + "state": [ + -2.9019500538819263, + 0.047778068094027445, + 25.711963924546698 + ], + "step": 656, + "time": 16.4 + }, + { + "observations": { + "radius": 24.163873874186663, + "x": -2.2712570848015883, + "y": -0.1496784017526724, + "z": 24.056429249545495 + }, + "state": [ + -2.2712570848015883, + -0.1496784017526724, + 24.056429249545495 + ], + "step": 657, + "time": 16.425 + }, + { + "observations": { + "radius": 22.59513662355784, + "x": -1.8283516724999138, + "y": -0.38198561024879824, + "z": 22.517802206087396 + }, + "state": [ + -1.8283516724999138, + -0.38198561024879824, + 22.517802206087396 + ], + "step": 658, + "time": 16.45 + }, + { + "observations": { + "radius": 21.15106519571142, + "x": -1.5365803915940064, + "y": -0.627838733925031, + "z": 21.085831691863312 + }, + "state": [ + -1.5365803915940064, + -0.627838733925031, + 21.085831691863312 + ], + "step": 659, + "time": 16.475 + }, + { + "observations": { + "radius": 19.818908168440178, + "x": -1.3646807369756888, + "y": -0.8820426722388194, + "z": 19.752183884308643 + }, + "state": [ + -1.3646807369756888, + -0.8820426722388194, + 19.752183884308643 + ], + "step": 660, + "time": 16.5 + }, + { + "observations": { + "radius": 18.591004103415095, + "x": -1.2883832374143178, + "y": -1.1492640495355007, + "z": 18.510664341162688 + }, + "state": [ + -1.2883832374143178, + -1.1492640495355007, + 18.510664341162688 + ], + "step": 661, + "time": 16.525 + }, + { + "observations": { + "radius": 17.46441429709748, + "x": -1.2905640884169545, + "y": -1.4401851209942902, + "z": 17.357018116359104 + }, + "state": [ + -1.2905640884169545, + -1.4401851209942902, + 17.357018116359104 + ], + "step": 662, + "time": 16.55 + }, + { + "observations": { + "radius": 16.441084089629534, + "x": -1.3607326557736548, + "y": -1.7694667127332122, + "z": 16.288850181467986 + }, + "state": [ + -1.3607326557736548, + -1.7694667127332122, + 16.288850181467986 + ], + "step": 663, + "time": 16.575 + }, + { + "observations": { + "radius": 15.528878335384485, + "x": -1.494335927703264, + "y": -2.1549703250636894, + "z": 15.305852651467795 + }, + "state": [ + -1.494335927703264, + -2.1549703250636894, + 15.305852651467795 + ], + "step": 664, + "time": 16.6 + }, + { + "observations": { + "radius": 14.743700722716857, + "x": -1.6921465684611126, + "y": -2.6178039687860797, + "z": 14.410428632518004 + }, + "state": [ + -1.6921465684611126, + -2.6178039687860797, + 14.410428632518004 + ], + "step": 665, + "time": 16.625 + }, + { + "observations": { + "radius": 14.112823701865272, + "x": -1.9598582135828444, + "y": -3.182854653694134, + "z": 13.608827461469252 + }, + "state": [ + -1.9598582135828444, + -3.182854653694134, + 13.608827461469252 + ], + "step": 666, + "time": 16.65 + }, + { + "observations": { + "radius": 13.6792663869891, + "x": -2.307915218470827, + "y": -3.8795080732490037, + "z": 12.912988551847958 + }, + "state": [ + -2.307915218470827, + -3.8795080732490037, + 12.912988551847958 + ], + "step": 667, + "time": 16.675 + }, + { + "observations": { + "radius": 13.506253794817534, + "x": -2.7515270255924897, + "y": -4.74219055748876, + "z": 12.343403878749234 + }, + "state": [ + -2.7515270255924897, + -4.74219055748876, + 12.343403878749234 + ], + "step": 668, + "time": 16.7 + }, + { + "observations": { + "radius": 13.679374474412361, + "x": -3.3107246741914365, + "y": -5.810138981203219, + "z": 11.933426714988755 + }, + "state": [ + -3.3107246741914365, + -5.810138981203219, + 11.933426714988755 + ], + "step": 669, + "time": 16.725 + }, + { + "observations": { + "radius": 14.30291860281152, + "x": -4.01016614944346, + "y": -7.125307223962252, + "z": 11.735503609843976 + }, + "state": [ + -4.01016614944346, + -7.125307223962252, + 11.735503609843976 + ], + "step": 670, + "time": 16.75 + }, + { + "observations": { + "radius": 15.4882312508807, + "x": -4.8781249495462875, + "y": -8.726410033021246, + "z": 11.829580389555572 + }, + "state": [ + -4.8781249495462875, + -8.726410033021246, + 11.829580389555572 + ], + "step": 671, + "time": 16.775 + }, + { + "observations": { + "radius": 17.33624565503726, + "x": -5.943624826258952, + "y": -10.635684774568428, + "z": 12.332921256234867 + }, + "state": [ + -5.943624826258952, + -10.635684774568428, + 12.332921256234867 + ], + "step": 672, + "time": 16.8 + }, + { + "observations": { + "radius": 19.918170302219586, + "x": -7.229963341171628, + "y": -12.833313612937525, + "z": 13.407729113669067 + }, + "state": [ + -7.229963341171628, + -12.833313612937525, + 13.407729113669067 + ], + "step": 673, + "time": 16.825 + }, + { + "observations": { + "radius": 23.252185482176635, + "x": -8.742061573711998, + "y": -15.214310301701643, + "z": 15.256646131522785 + }, + "state": [ + -8.742061573711998, + -15.214310301701643, + 15.256646131522785 + ], + "step": 674, + "time": 16.85 + }, + { + "observations": { + "radius": 27.26654015033949, + "x": -10.445044090444352, + "y": -17.5291793508002, + "z": 18.08571638078594 + }, + "state": [ + -10.445044090444352, + -17.5291793508002, + 18.08571638078594 + ], + "step": 675, + "time": 16.875 + }, + { + "observations": { + "radius": 31.744080324719036, + "x": -12.234549438699666, + "y": -19.332519731581957, + "z": 22.005820060207302 + }, + "state": [ + -12.234549438699666, + -19.332519731581957, + 22.005820060207302 + ], + "step": 676, + "time": 16.9 + }, + { + "observations": { + "radius": 36.26741888920601, + "x": -13.909308040155665, + "y": -20.007914343848302, + "z": 26.861500076101997 + }, + "state": [ + -13.909308040155665, + -20.007914343848302, + 26.861500076101997 + ], + "step": 677, + "time": 16.925 + }, + { + "observations": { + "radius": 40.222564743574694, + "x": -15.173772639762213, + "y": -18.966905636237207, + "z": 32.060377867609965 + }, + "state": [ + -15.173772639762213, + -18.966905636237207, + 32.060377867609965 + ], + "step": 678, + "time": 16.95 + }, + { + "observations": { + "radius": 42.93495884724481, + "x": -15.706672194502657, + "y": -16.025692377079864, + "z": 36.60448502061252 + }, + "state": [ + -15.706672194502657, + -16.025692377079864, + 36.60448502061252 + ], + "step": 679, + "time": 16.975 + }, + { + "observations": { + "radius": 43.935714535159214, + "x": -15.295568339096558, + "y": -11.699594245100737, + "z": 39.49065833078797 + }, + "state": [ + -15.295568339096558, + -11.699594245100737, + 39.49065833078797 + ], + "step": 680, + "time": 17.0 + }, + { + "observations": { + "radius": 43.197004917385755, + "x": -13.95885522714354, + "y": -7.039402822498913, + "z": 40.26882668371269 + }, + "state": [ + -13.95885522714354, + -7.039402822498913, + 40.26882668371269 + ], + "step": 681, + "time": 17.025 + }, + { + "observations": { + "radius": 41.13118163970607, + "x": -11.949869933479315, + "y": -3.0523288789339182, + "z": 39.238476016102446 + }, + "state": [ + -11.949869933479315, + -3.0523288789339182, + 39.238476016102446 + ], + "step": 682, + "time": 17.05 + }, + { + "observations": { + "radius": 38.350151615878055, + "x": -9.634787396654989, + "y": -0.23853963073437345, + "z": 37.11937633671478 + }, + "state": [ + -9.634787396654989, + -0.23853963073437345, + 37.11937633671478 + ], + "step": 683, + "time": 17.075 + }, + { + "observations": { + "radius": 35.39232890467356, + "x": -7.345878309922741, + "y": 1.4240378940183762, + "z": 34.59229875606416 + }, + "state": [ + -7.345878309922741, + 1.4240378940183762, + 34.59229875606416 + ], + "step": 684, + "time": 17.1 + }, + { + "observations": { + "radius": 32.588924629493825, + "x": -5.3009410905895376, + "y": 2.2258260618564654, + "z": 32.0777762696121 + }, + "state": [ + -5.3009410905895376, + 2.2258260618564654, + 32.0777762696121 + ], + "step": 685, + "time": 17.125 + }, + { + "observations": { + "radius": 30.074936083836768, + "x": -3.597968965452796, + "y": 2.4943729423077663, + "z": 29.754571134452405 + }, + "state": [ + -3.597968965452796, + 2.4943729423077663, + 29.754571134452405 + ], + "step": 686, + "time": 17.15 + }, + { + "observations": { + "radius": 27.863086812825085, + "x": -2.24792652197283, + "y": 2.4874744284643193, + "z": 27.660638171571065 + }, + "state": [ + -2.24792652197283, + 2.4874744284643193, + 27.660638171571065 + ], + "step": 687, + "time": 17.175 + }, + { + "observations": { + "radius": 25.91395369009772, + "x": -1.2125686294751095, + "y": 2.3753038901249957, + "z": 25.776357473485255 + }, + "state": [ + -1.2125686294751095, + 2.3753038901249957, + 25.776357473485255 + ], + "step": 688, + "time": 17.2 + }, + { + "observations": { + "radius": 24.178593936310232, + "x": -0.4329645144559865, + "y": 2.258084687398948, + "z": 24.069025738711034 + }, + "state": [ + -0.4329645144559865, + 2.258084687398948, + 24.069025738711034 + ], + "step": 689, + "time": 17.225 + }, + { + "observations": { + "radius": 22.616825651207755, + "x": 0.15319635579989616, + "y": 2.189621881165712, + "z": 22.51006195973745 + }, + "state": [ + 0.15319635579989616, + 2.189621881165712, + 22.51006195973745 + ], + "step": 690, + "time": 17.25 + }, + { + "observations": { + "radius": 21.201638408284623, + "x": 0.6029084853252056, + "y": 2.1964839919008488, + "z": 21.078933337038094 + }, + "state": [ + 0.6029084853252056, + 2.1964839919008488, + 21.078933337038094 + ], + "step": 691, + "time": 17.275 + }, + { + "observations": { + "radius": 19.918125697639052, + "x": 0.9646360715590341, + "y": 2.291312895637495, + "z": 19.762365591464036 + }, + "state": [ + 0.9646360715590341, + 2.291312895637495, + 19.762365591464036 + ], + "step": 692, + "time": 17.3 + }, + { + "observations": { + "radius": 18.761515703073073, + "x": 1.278176690427919, + "y": 2.4813598119202074, + "z": 18.55272457911483 + }, + "state": [ + 1.278176690427919, + 2.4813598119202074, + 18.55272457911483 + ], + "step": 693, + "time": 17.325 + }, + { + "observations": { + "radius": 17.73619344767936, + "x": 1.576035361685742, + "y": 2.773696891613381, + "z": 17.446927411601006 + }, + "state": [ + 1.576035361685742, + 2.773696891613381, + 17.446927411601006 + ], + "step": 694, + "time": 17.35 + }, + { + "observations": { + "radius": 16.85626534418902, + "x": 1.8853819459715493, + "y": 3.1782819216208043, + "z": 16.446201394188588 + }, + "state": [ + 1.8853819459715493, + 3.1782819216208043, + 16.446201394188588 + ], + "step": 695, + "time": 17.375 + }, + { + "observations": { + "radius": 16.14764642012705, + "x": 2.2300872195798513, + "y": 3.709678860974914, + "z": 15.556718119543866 + }, + "state": [ + 2.2300872195798513, + 3.709678860974914, + 15.556718119543866 + ], + "step": 696, + "time": 17.4 + }, + { + "observations": { + "radius": 15.651257276416736, + "x": 2.63258018760191, + "y": 4.387872246893156, + "z": 14.791144412565869 + }, + "state": [ + 2.63258018760191, + 4.387872246893156, + 14.791144412565869 + ], + "step": 697, + "time": 17.425 + }, + { + "observations": { + "radius": 15.426255613075483, + "x": 3.1153804962961464, + "y": 5.2382458631307, + "z": 14.171257773417098 + }, + "state": [ + 3.1153804962961464, + 5.2382458631307, + 14.171257773417098 + ], + "step": 698, + "time": 17.45 + }, + { + "observations": { + "radius": 15.551162925865992, + "x": 3.7021606605380004, + "y": 6.290360149759609, + "z": 13.731862363740397 + }, + "state": [ + 3.7021606605380004, + 6.290360149759609, + 13.731862363740397 + ], + "step": 699, + "time": 17.475 + }, + { + "observations": { + "radius": 16.119912715552875, + "x": 4.418078273943311, + "y": 7.5745685545991135, + "z": 13.526199818649422 + }, + "state": [ + 4.418078273943311, + 7.5745685545991135, + 13.526199818649422 + ], + "step": 700, + "time": 17.5 + }, + { + "observations": { + "radius": 17.230742345497017, + "x": 5.288871957044789, + "y": 9.114665734177237, + "z": 13.632651383832297 + }, + "state": [ + 5.288871957044789, + 9.114665734177237, + 13.632651383832297 + ], + "step": 701, + "time": 17.525 + }, + { + "observations": { + "radius": 18.968899250785604, + "x": 6.337806168413943, + "y": 10.913699616359313, + "z": 14.161303345453323 + }, + "state": [ + 6.337806168413943, + 10.913699616359313, + 14.161303345453323 + ], + "step": 702, + "time": 17.55 + }, + { + "observations": { + "radius": 21.385917323109066, + "x": 7.579016051671123, + "y": 12.929342819937125, + "z": 15.2560830387065 + }, + "state": [ + 7.579016051671123, + 12.929342819937125, + 15.2560830387065 + ], + "step": 703, + "time": 17.575 + }, + { + "observations": { + "radius": 24.474935753990913, + "x": 9.005425567374283, + "y": 15.036693844299991, + "z": 17.082816768473954 + }, + "state": [ + 9.005425567374283, + 15.036693844299991, + 17.082816768473954 + ], + "step": 704, + "time": 17.6 + }, + { + "observations": { + "radius": 28.137276435275194, + "x": 10.57009249626613, + "y": 16.984403033124373, + "z": 19.786599592245928 + }, + "state": [ + 10.57009249626613, + 16.984403033124373, + 19.786599592245928 + ], + "step": 705, + "time": 17.625 + }, + { + "observations": { + "radius": 32.14055905119925, + "x": 12.163473069332213, + "y": 18.370343527841303, + "z": 23.400767886639 + }, + "state": [ + 12.163473069332213, + 18.370343527841303, + 23.400767886639 + ], + "step": 706, + "time": 17.65 + }, + { + "observations": { + "radius": 36.088408821959966, + "x": 13.5977449321597, + "y": 18.69242752226091, + "z": 27.71403502534169 + }, + "state": [ + 13.5977449321597, + 18.69242752226091, + 27.71403502534169 + ], + "step": 707, + "time": 17.675 + }, + { + "observations": { + "radius": 39.44734783763907, + "x": 14.620525217459914, + "y": 17.53228404394585, + "z": 32.17067779813954 + }, + "state": [ + 14.620525217459914, + 17.53228404394585, + 32.17067779813954 + ], + "step": 708, + "time": 17.7 + }, + { + "observations": { + "radius": 41.67512717209027, + "x": 14.979587154834837, + "y": 14.83571930427255, + "z": 35.9489864419769 + }, + "state": [ + 14.979587154834837, + 14.83571930427255, + 35.9489864419769 + ], + "step": 709, + "time": 17.725 + }, + { + "observations": { + "radius": 42.426687728809384, + "x": 14.527421105252014, + "y": 11.080551058712796, + "z": 38.29098139123417 + }, + "state": [ + 14.527421105252014, + 11.080551058712796, + 38.29098139123417 + ], + "step": 710, + "time": 17.75 + }, + { + "observations": { + "radius": 41.71121179249689, + "x": 13.302985665453056, + "y": 7.106120461175489, + "z": 38.88905776146479 + }, + "state": [ + 13.302985665453056, + 7.106120461175489, + 38.88905776146479 + ], + "step": 711, + "time": 17.775 + }, + { + "observations": { + "radius": 39.87024976194281, + "x": 11.523110004422914, + "y": 3.6887182322621523, + "z": 37.99010541849872 + }, + "state": [ + 11.523110004422914, + 3.6887182322621523, + 37.99010541849872 + ], + "step": 712, + "time": 17.8 + }, + { + "observations": { + "radius": 37.39340085661986, + "x": 9.487502010640698, + "y": 1.2234053092943054, + "z": 36.149094216468804 + }, + "state": [ + 9.487502010640698, + 1.2234053092943054, + 36.149094216468804 + ], + "step": 713, + "time": 17.825 + }, + { + "observations": { + "radius": 34.717379677533195, + "x": 7.469515306134658, + "y": -0.28671704204760107, + "z": 33.903105847447286 + }, + "state": [ + 7.469515306134658, + -0.28671704204760107, + 33.903105847447286 + ], + "step": 714, + "time": 17.85 + }, + { + "observations": { + "radius": 32.123903762323316, + "x": 5.654227433869329, + "y": -1.0538351460468225, + "z": 31.604815084762738 + }, + "state": [ + 5.654227433869329, + -1.0538351460468225, + 31.604815084762738 + ], + "step": 715, + "time": 17.875 + }, + { + "observations": { + "radius": 29.741853393599147, + "x": 4.131316242301291, + "y": -1.334424964148717, + "z": 29.423279548811333 + }, + "state": [ + 4.131316242301291, + -1.334424964148717, + 29.423279548811333 + ], + "step": 716, + "time": 17.9 + }, + { + "observations": { + "radius": 27.598844591586683, + "x": 2.9180819419113084, + "y": -1.340912071731819, + "z": 27.41136580666364 + }, + "state": [ + 2.9180819419113084, + -1.340912071731819, + 27.41136580666364 + ], + "step": 717, + "time": 17.925 + }, + { + "observations": { + "radius": 25.674051286611856, + "x": 1.9886020913523916, + "y": -1.2196955133116227, + "z": 25.567845314860858 + }, + "state": [ + 1.9886020913523916, + -1.2196955133116227, + 25.567845314860858 + ], + "step": 718, + "time": 17.95 + }, + { + "observations": { + "radius": 23.932685941448, + "x": 1.2971850617618799, + "y": -1.0599231942153557, + "z": 23.87398856726477 + }, + "state": [ + 1.2971850617618799, + -1.0599231942153557, + 23.87398856726477 + ], + "step": 719, + "time": 17.975 + }, + { + "observations": { + "radius": 22.34234353956747, + "x": 0.7935128086409076, + "y": -0.9101306685877418, + "z": 22.309691042878004 + }, + "state": [ + 0.7935128086409076, + -0.9101306685877418, + 22.309691042878004 + ], + "step": 720, + "time": 18.0 + }, + { + "observations": { + "radius": 20.878005847489415, + "x": 0.4308483510174576, + "y": -0.7932888797034465, + "z": 20.85848006494161 + }, + "state": [ + 0.4308483510174576, + -0.7932888797034465, + 20.85848006494161 + ], + "step": 721, + "time": 18.025 + }, + { + "observations": { + "radius": 19.52185121684806, + "x": 0.16954857337895624, + "y": -0.717868307078876, + "z": 19.507911044181768 + }, + "state": [ + 0.16954857337895624, + -0.717868307078876, + 19.507911044181768 + ], + "step": 722, + "time": 18.05 + }, + { + "observations": { + "radius": 18.26149961058504, + "x": -0.022202868267732174, + "y": -0.685171525689168, + "z": 18.24862775773628 + }, + "state": [ + -0.022202868267732174, + -0.685171525689168, + 18.24862775773628 + ], + "step": 723, + "time": 18.075 + }, + { + "observations": { + "radius": 17.08830002710601, + "x": -0.1691054605510388, + "y": -0.6938603543615313, + "z": 17.073369877333775 + }, + "state": [ + -0.1691054605510388, + -0.6938603543615313, + 17.073369877333775 + ], + "step": 724, + "time": 18.1 + }, + { + "observations": { + "radius": 15.996156240390752, + "x": -0.2900631060984434, + "y": -0.7425930524827855, + "z": 15.976277207781441 + }, + "state": [ + -0.2900631060984434, + -0.7425930524827855, + 15.976277207781441 + ], + "step": 725, + "time": 18.125 + }, + { + "observations": { + "radius": 14.980931335317898, + "x": -0.3996508298757497, + "y": -0.8314955651014914, + "z": 14.952498052596624 + }, + "state": [ + -0.3996508298757497, + -0.8314955651014914, + 14.952498052596624 + ], + "step": 726, + "time": 18.15 + }, + { + "observations": { + "radius": 14.040362563689975, + "x": -0.5095001570122892, + "y": -0.9629869209762072, + "z": 13.998030100692745 + }, + "state": [ + -0.5095001570122892, + -0.9629869209762072, + 13.998030100692745 + ], + "step": 727, + "time": 18.175 + }, + { + "observations": { + "radius": 13.174459409043983, + "x": -0.6295216601650094, + "y": -1.1423107726445794, + "z": 13.109737194109986 + }, + "state": [ + -0.6295216601650094, + -1.1423107726445794, + 13.109737194109986 + ], + "step": 728, + "time": 18.2 + }, + { + "observations": { + "radius": 12.386457297955532, + "x": -0.7689637843238096, + "y": -1.3780018750023193, + "z": 12.285525219743938 + }, + "state": [ + -0.7689637843238096, + -1.3780018750023193, + 12.285525219743938 + ], + "step": 729, + "time": 18.225 + }, + { + "observations": { + "radius": 11.684520854094977, + "x": -0.9373476819496696, + "y": -1.6824311632320437, + "z": 11.524705301824843 + }, + "state": [ + -0.9373476819496696, + -1.6824311632320437, + 11.524705301824843 + ], + "step": 730, + "time": 18.25 + }, + { + "observations": { + "radius": 11.084502542111732, + "x": -1.1453336406502943, + "y": -2.07251470127555, + "z": 10.82862365541775 + }, + "state": [ + -1.1453336406502943, + -2.07251470127555, + 10.82862365541775 + ], + "step": 731, + "time": 18.275 + }, + { + "observations": { + "radius": 10.614072013328302, + "x": -1.4055754939101173, + "y": -2.570623507674181, + "z": 10.201704613290435 + }, + "state": [ + -1.4055754939101173, + -2.570623507674181, + 10.201704613290435 + ], + "step": 732, + "time": 18.3 + }, + { + "observations": { + "radius": 10.318188869591069, + "x": -1.7336089368381136, + "y": -3.2056685592337337, + "z": 9.653150298788907 + }, + "state": [ + -1.7336089368381136, + -3.2056685592337337, + 9.653150298788907 + ], + "step": 733, + "time": 18.325 + }, + { + "observations": { + "radius": 10.2647665986924, + "x": -2.1487913307743316, + "y": -4.014220690985275, + "z": 9.199682678575709 + }, + "state": [ + -2.1487913307743316, + -4.014220690985275, + 9.199682678575709 + ], + "step": 734, + "time": 18.35 + }, + { + "observations": { + "radius": 10.547361146531356, + "x": -2.675252158536748, + "y": -5.041283462829323, + "z": 8.869910602199287 + }, + "state": [ + -2.675252158536748, + -5.041283462829323, + 8.869910602199287 + ], + "step": 735, + "time": 18.375 + }, + { + "observations": { + "radius": 11.280554866565415, + "x": -3.3426856942118657, + "y": -6.3398379256465045, + "z": 8.711132275648112 + }, + "state": [ + -3.3426856942118657, + -6.3398379256465045, + 8.711132275648112 + ], + "step": 736, + "time": 18.4 + }, + { + "observations": { + "radius": 12.587145405912185, + "x": -4.186558278402755, + "y": -7.967283073776251, + "z": 8.79950905865958 + }, + "state": [ + -4.186558278402755, + -7.967283073776251, + 8.79950905865958 + ], + "step": 737, + "time": 18.425 + }, + { + "observations": { + "radius": 14.583195327381931, + "x": -5.246789292966256, + "y": -9.975063724498666, + "z": 9.254128363275475 + }, + "state": [ + -5.246789292966256, + -9.975063724498666, + 9.254128363275475 + ], + "step": 738, + "time": 18.45 + }, + { + "observations": { + "radius": 17.366316386987403, + "x": -6.563035010536353, + "y": -12.384849476743998, + "z": 10.253341881641088 + }, + "state": [ + -6.563035010536353, + -12.384849476743998, + 10.253341881641088 + ], + "step": 739, + "time": 18.475 + }, + { + "observations": { + "radius": 20.999809150674054, + "x": -8.163260853212961, + "y": -15.14139230372408, + "z": 12.045388981343017 + }, + "state": [ + -8.163260853212961, + -15.14139230372408, + 12.045388981343017 + ], + "step": 740, + "time": 18.5 + }, + { + "observations": { + "radius": 25.474541310632535, + "x": -10.040802140037993, + "y": -18.033372626189507, + "z": 14.930908180573981 + }, + "state": [ + -10.040802140037993, + -18.033372626189507, + 14.930908180573981 + ], + "step": 741, + "time": 18.525 + }, + { + "observations": { + "radius": 30.634440116134936, + "x": -12.115977730805996, + "y": -20.59326753528551, + "z": 19.172619463073545 + }, + "state": [ + -12.115977730805996, + -20.59326753528551, + 19.172619463073545 + ], + "step": 742, + "time": 18.55 + }, + { + "observations": { + "radius": 36.07646353991662, + "x": -14.187756759114437, + "y": -22.048524470464194, + "z": 24.780664808807636 + }, + "state": [ + -14.187756759114437, + -22.048524470464194, + 24.780664808807636 + ], + "step": 743, + "time": 18.575 + }, + { + "observations": { + "radius": 41.0915775195796, + "x": -15.906547661032, + "y": -21.48851531023368, + "z": 31.204858504995492 + }, + "state": [ + -15.906547661032, + -21.48851531023368, + 31.204858504995492 + ], + "step": 744, + "time": 18.6 + }, + { + "observations": { + "radius": 44.77526492426423, + "x": -16.82996649886386, + "y": -18.380728716105533, + "z": 37.19845949162546 + }, + "state": [ + -16.82996649886386, + -18.380728716105533, + 37.19845949162546 + ], + "step": 745, + "time": 18.625 + }, + { + "observations": { + "radius": 46.38351918500862, + "x": -16.600902449100975, + "y": -13.173817869546268, + "z": 41.25883435825011 + }, + "state": [ + -16.600902449100975, + -13.173817869546268, + 41.25883435825011 + ], + "step": 746, + "time": 18.65 + }, + { + "observations": { + "radius": 45.748974305794846, + "x": -15.160653804456448, + "y": -7.276570711544506, + "z": 42.54614841479297 + }, + "state": [ + -15.160653804456448, + -7.276570711544506, + 42.54614841479297 + ], + "step": 747, + "time": 18.675 + }, + { + "observations": { + "radius": 43.376320355369856, + "x": -12.805995122427689, + "y": -2.195254078058117, + "z": 41.38468939147425 + }, + "state": [ + -12.805995122427689, + -2.195254078058117, + 41.38468939147425 + ], + "step": 748, + "time": 18.7 + }, + { + "observations": { + "radius": 40.109239941255176, + "x": -10.02484414122179, + "y": 1.3052063797045097, + "z": 38.81430232421767 + }, + "state": [ + -10.02484414122179, + 1.3052063797045097, + 38.81430232421767 + ], + "step": 749, + "time": 18.725 + }, + { + "observations": { + "radius": 36.6955376408299, + "x": -7.267230874804372, + "y": 3.2735094144158223, + "z": 35.81946362350482 + }, + "state": [ + -7.267230874804372, + 3.2735094144158223, + 35.81946362350482 + ], + "step": 750, + "time": 18.75 + }, + { + "observations": { + "radius": 33.57235661255117, + "x": -4.81913156199266, + "y": 4.150349173914533, + "z": 32.96443084967646 + }, + "state": [ + -4.81913156199266, + 4.150349173914533, + 32.96443084967646 + ], + "step": 751, + "time": 18.775 + }, + { + "observations": { + "radius": 30.890524833800306, + "x": -2.798450742492692, + "y": 4.399774013128139, + "z": 30.447252529298567 + }, + "state": [ + -2.798450742492692, + 4.399774013128139, + 30.447252529298567 + ], + "step": 752, + "time": 18.8 + }, + { + "observations": { + "radius": 28.635239663903434, + "x": -1.2075377271008212, + "y": 4.362792955877165, + "z": 28.275162968070852 + }, + "state": [ + -1.2075377271008212, + 4.362792955877165, + 28.275162968070852 + ], + "step": 753, + "time": 18.825 + }, + { + "observations": { + "radius": 26.73267363372897, + "x": 0.011693822070362958, + "y": 4.2500994060258845, + "z": 26.392657272447803 + }, + "state": [ + 0.011693822070362958, + 4.2500994060258845, + 26.392657272447803 + ], + "step": 754, + "time": 18.85 + }, + { + "observations": { + "radius": 25.10936603839025, + "x": 0.939526813598595, + "y": 4.178501287531422, + "z": 24.741416273255115 + }, + "state": [ + 0.939526813598595, + 4.178501287531422, + 24.741416273255115 + ], + "step": 755, + "time": 18.875 + }, + { + "observations": { + "radius": 23.71416995512036, + "x": 1.6571403474089, + "y": 4.207511670399606, + "z": 23.27901604606118 + }, + "state": [ + 1.6571403474089, + 4.207511670399606, + 23.27901604606118 + ], + "step": 756, + "time": 18.9 + }, + { + "observations": { + "radius": 22.52112654996118, + "x": 2.236943719714654, + "y": 4.365419638958028, + "z": 21.98045348144563 + }, + "state": [ + 2.236943719714654, + 4.365419638958028, + 21.98045348144563 + ], + "step": 757, + "time": 18.925 + }, + { + "observations": { + "radius": 21.5260832428968, + "x": 2.7396421997746723, + "y": 4.6656019798217345, + "z": 20.83503728250131 + }, + "state": [ + 2.7396421997746723, + 4.6656019798217345, + 20.83503728250131 + ], + "step": 758, + "time": 18.95 + }, + { + "observations": { + "radius": 20.743007665665385, + "x": 3.214710217077494, + "y": 5.115889828844604, + "z": 19.843529839652895 + }, + "state": [ + 3.214710217077494, + 5.115889828844604, + 19.843529839652895 + ], + "step": 759, + "time": 18.975 + }, + { + "observations": { + "radius": 20.201561375760885, + "x": 3.7022590810338114, + "y": 5.723250641335989, + "z": 19.016854677153734 + }, + "state": [ + 3.7022590810338114, + 5.723250641335989, + 19.016854677153734 + ], + "step": 760, + "time": 19.0 + }, + { + "observations": { + "radius": 19.945276848209794, + "x": 4.235126037145732, + "y": 6.495134516355087, + "z": 18.37637079555364 + }, + "state": [ + 4.235126037145732, + 6.495134516355087, + 18.37637079555364 + ], + "step": 761, + "time": 19.025 + }, + { + "observations": { + "radius": 20.02866548714026, + "x": 4.840474545689765, + "y": 7.438035197599721, + "z": 17.955302274469247 + }, + "state": [ + 4.840474545689765, + 7.438035197599721, + 17.955302274469247 + ], + "step": 762, + "time": 19.05 + }, + { + "observations": { + "radius": 20.511356970163718, + "x": 5.540396148271011, + "y": 8.5531567007367, + "z": 17.800654081531675 + }, + "state": [ + 5.540396148271011, + 8.5531567007367, + 17.800654081531675 + ], + "step": 763, + "time": 19.075 + }, + { + "observations": { + "radius": 21.448008826874208, + "x": 6.351032819417961, + "y": 9.828594905647694, + "z": 17.974431477658094 + }, + "state": [ + 6.351032819417961, + 9.828594905647694, + 17.974431477658094 + ], + "step": 764, + "time": 19.1 + }, + { + "observations": { + "radius": 22.874068785514037, + "x": 7.27969508345808, + "y": 11.227379487873577, + "z": 18.551954401937806 + }, + "state": [ + 7.27969508345808, + 11.227379487873577, + 18.551954401937806 + ], + "step": 765, + "time": 19.125 + }, + { + "observations": { + "radius": 24.788598238270325, + "x": 8.319506603239384, + "y": 12.671686166925042, + "z": 19.613484702724183 + }, + "state": [ + 8.319506603239384, + 12.671686166925042, + 19.613484702724183 + ], + "step": 766, + "time": 19.15 + }, + { + "observations": { + "radius": 27.135631919455093, + "x": 9.44157852475673, + "y": 14.026566566541364, + "z": 21.22391445948147 + }, + "state": [ + 9.44157852475673, + 14.026566566541364, + 21.22391445948147 + ], + "step": 767, + "time": 19.175 + }, + { + "observations": { + "radius": 29.786375958148035, + "x": 10.586091125982602, + "y": 15.09251132260644, + "z": 23.396131504364735 + }, + "state": [ + 10.586091125982602, + 15.09251132260644, + 23.396131504364735 + ], + "step": 768, + "time": 19.2 + }, + { + "observations": { + "radius": 32.52849356053598, + "x": 11.656275795280987, + "y": 15.623422952219066, + "z": 26.041174765326 + }, + "state": [ + 11.656275795280987, + 15.623422952219066, + 26.041174765326 + ], + "step": 769, + "time": 19.225 + }, + { + "observations": { + "radius": 35.07516170027664, + "x": 12.522377623138317, + "y": 15.3870639684389, + "z": 28.9256856339698 + }, + "state": [ + 12.522377623138317, + 15.3870639684389, + 28.9256856339698 + ], + "step": 770, + "time": 19.25 + }, + { + "observations": { + "radius": 37.10824302470504, + "x": 13.043056454104423, + "y": 14.264874991234107, + "z": 31.676706271329394 + }, + "state": [ + 13.043056454104423, + 14.264874991234107, + 31.676706271329394 + ], + "step": 771, + "time": 19.275 + }, + { + "observations": { + "radius": 38.356247951828365, + "x": 13.10462917530931, + "y": 12.345042967870576, + "z": 33.86842726258778 + }, + "state": [ + 13.10462917530931, + 12.345042967870576, + 33.86842726258778 + ], + "step": 772, + "time": 19.3 + }, + { + "observations": { + "radius": 38.67901814958165, + "x": 12.66408239987192, + "y": 9.933669844580942, + "z": 35.17114819569848 + }, + "state": [ + 12.66408239987192, + 9.933669844580942, + 35.17114819569848 + ], + "step": 773, + "time": 19.325 + }, + { + "observations": { + "radius": 38.11133373684049, + "x": 11.771421201641017, + "y": 7.449555205538638, + "z": 35.47409659644661 + }, + "state": [ + 11.771421201641017, + 7.449555205538638, + 35.47409659644661 + ], + "step": 774, + "time": 19.35 + }, + { + "observations": { + "radius": 36.83613007767687, + "x": 10.555486879550134, + "y": 5.263242097798853, + "z": 34.89671128423327 + }, + "state": [ + 10.555486879550134, + 5.263242097798853, + 34.89671128423327 + ], + "step": 775, + "time": 19.375 + }, + { + "observations": { + "radius": 35.10557839718184, + "x": 9.181388191629303, + "y": 3.586304800980586, + "z": 33.69335488415711 + }, + "state": [ + 9.181388191629303, + 3.586304800980586, + 33.69335488415711 + ], + "step": 776, + "time": 19.4 + }, + { + "observations": { + "radius": 33.158795951647086, + "x": 7.804324021484629, + "y": 2.460582571500958, + "z": 32.13321971012975 + }, + "state": [ + 7.804324021484629, + 2.460582571500958, + 32.13321971012975 + ], + "step": 777, + "time": 19.425 + }, + { + "observations": { + "radius": 31.173460024456507, + "x": 6.540143810574405, + "y": 1.8155442974666147, + "z": 30.42556372094574 + }, + "state": [ + 6.540143810574405, + 1.8155442974666147, + 30.42556372094574 + ], + "step": 778, + "time": 19.45 + }, + { + "observations": { + "radius": 29.25686428315432, + "x": 5.457309160676083, + "y": 1.5368630809160535, + "z": 28.702263608959992 + }, + "state": [ + 5.457309160676083, + 1.5368630809160535, + 28.702263608959992 + ], + "step": 779, + "time": 19.475 + }, + { + "observations": { + "radius": 27.461026607133242, + "x": 4.5836122879610315, + "y": 1.5134384752604748, + "z": 27.03346046463408 + }, + "state": [ + 4.5836122879610315, + 1.5134384752604748, + 27.03346046463408 + ], + "step": 780, + "time": 19.5 + }, + { + "observations": { + "radius": 25.80430906710855, + "x": 3.9187574156717995, + "y": 1.6587828838446554, + "z": 25.45101463777509 + }, + "state": [ + 3.9187574156717995, + 1.6587828838446554, + 25.45101463777509 + ], + "step": 781, + "time": 19.525 + }, + { + "observations": { + "radius": 24.289417631855443, + "x": 3.4467372384154578, + "y": 1.9153513456684732, + "z": 23.96721178040233 + }, + "state": [ + 3.4467372384154578, + 1.9153513456684732, + 23.96721178040233 + ], + "step": 782, + "time": 19.55 + }, + { + "observations": { + "radius": 22.915061864288575, + "x": 3.145372372517328, + "y": 2.250899056712963, + "z": 22.586282259789147 + }, + "state": [ + 3.145372372517328, + 2.250899056712963, + 22.586282259789147 + ], + "step": 783, + "time": 19.575 + }, + { + "observations": { + "radius": 21.682473252543023, + "x": 2.992601172168472, + "y": 2.652573338321661, + "z": 21.31051006560858 + }, + "state": [ + 2.992601172168472, + 2.652573338321661, + 21.31051006560858 + ], + "step": 784, + "time": 19.6 + }, + { + "observations": { + "radius": 20.59897155011161, + "x": 2.970089488924686, + "y": 3.12140940727001, + "z": 20.143311561466074 + }, + "state": [ + 2.970089488924686, + 3.12140940727001, + 20.143311561466074 + ], + "step": 785, + "time": 19.625 + }, + { + "observations": { + "radius": 19.680354804989115, + "x": 3.0649646419582153, + "y": 3.668089094123115, + "z": 19.091031386265623 + }, + "state": [ + 3.0649646419582153, + 3.668089094123115, + 19.091031386265623 + ], + "step": 786, + "time": 19.65 + }, + { + "observations": { + "radius": 18.953089261481615, + "x": 3.270374843199401, + "y": 4.3099299076449045, + "z": 18.16449132593165 + }, + "state": [ + 3.270374843199401, + 4.3099299076449045, + 18.16449132593165 + ], + "step": 787, + "time": 19.675 + }, + { + "observations": { + "radius": 18.45644480921865, + "x": 3.585360155300777, + "y": 5.068662344609958, + "z": 17.380857561951558 + }, + "state": [ + 3.585360155300777, + 5.068662344609958, + 17.380857561951558 + ], + "step": 788, + "time": 19.7 + }, + { + "observations": { + "radius": 18.24386244355123, + "x": 4.014288098422163, + "y": 5.968324336867604, + "z": 16.766129921124882 + }, + "state": [ + 4.014288098422163, + 5.968324336867604, + 16.766129921124882 + ], + "step": 789, + "time": 19.725 + }, + { + "observations": { + "radius": 18.381992833326393, + "x": 4.565877545561083, + "y": 7.032375412725361, + "z": 16.358365407885344 + }, + "state": [ + 4.565877545561083, + 7.032375412725361, + 16.358365407885344 + ], + "step": 790, + "time": 19.75 + }, + { + "observations": { + "radius": 18.945423888051312, + "x": 5.2515965415640355, + "y": 8.278819140639637, + "z": 16.211445762150788 + }, + "state": [ + 5.2515965415640355, + 8.278819140639637, + 16.211445762150788 + ], + "step": 791, + "time": 19.775 + }, + { + "observations": { + "radius": 20.00580414599006, + "x": 6.0829550982684, + "y": 9.71173894299147, + "z": 16.398536017076236 + }, + "state": [ + 6.0829550982684, + 9.71173894299147, + 16.398536017076236 + ], + "step": 792, + "time": 19.8 + }, + { + "observations": { + "radius": 21.615801199239876, + "x": 7.06693600688609, + "y": 11.307453767768024, + "z": 17.01301755272784 + }, + "state": [ + 7.06693600688609, + 11.307453767768024, + 17.01301755272784 + ], + "step": 793, + "time": 19.825 + }, + { + "observations": { + "radius": 23.789452690611167, + "x": 8.198635529462118, + "y": 12.994259951233106, + "z": 18.16231381442485 + }, + "state": [ + 8.198635529462118, + 12.994259951233106, + 18.16231381442485 + ], + "step": 794, + "time": 19.85 + }, + { + "observations": { + "radius": 26.479713681004903, + "x": 9.450480148339006, + "y": 14.628076399658255, + "z": 19.94700585149585 + }, + "state": [ + 9.450480148339006, + 14.628076399658255, + 19.94700585149585 + ], + "step": 795, + "time": 19.875 + }, + { + "observations": { + "radius": 29.553941524826246, + "x": 10.758871258780005, + "y": 15.974441003467149, + "z": 22.416498020801424 + }, + "state": [ + 10.758871258780005, + 15.974441003467149, + 22.416498020801424 + ], + "step": 796, + "time": 19.9 + }, + { + "observations": { + "radius": 32.77358517041638, + "x": 12.01265682876027, + "y": 16.7200265052621, + "z": 25.499895578223622 + }, + "state": [ + 12.01265682876027, + 16.7200265052621, + 25.499895578223622 + ], + "step": 797, + "time": 19.925 + }, + { + "observations": { + "radius": 35.79580516554397, + "x": 13.053110366342784, + "y": 16.54416176569641, + "z": 28.935215373038577 + }, + "state": [ + 13.053110366342784, + 16.54416176569641, + 28.935215373038577 + ], + "step": 798, + "time": 19.95 + }, + { + "observations": { + "radius": 38.221830617106, + "x": 13.697902587472184, + "y": 15.258152536413583, + "z": 32.25623322092027 + }, + "state": [ + 13.697902587472184, + 15.258152536413583, + 32.25623322092027 + ], + "step": 799, + "time": 19.975 + }, + { + "observations": { + "radius": 39.70064620600726, + "x": 13.79333109555666, + "y": 12.951996079808659, + "z": 34.90173525788552 + }, + "state": [ + 13.79333109555666, + 12.951996079808659, + 34.90173525788552 + ], + "step": 800, + "time": 20.0 + }, + { + "observations": { + "radius": 40.05114383625522, + "x": 13.276528300692187, + "y": 10.026454947905663, + "z": 36.432102877145894 + }, + "state": [ + 13.276528300692187, + 10.026454947905663, + 36.432102877145894 + ], + "step": 801, + "time": 20.025 + }, + { + "observations": { + "radius": 39.32806099812774, + "x": 12.209789062866637, + "y": 7.042131299826117, + "z": 36.71547112143283 + }, + "state": [ + 12.209789062866637, + 7.042131299826117, + 36.71547112143283 + ], + "step": 802, + "time": 20.05 + }, + { + "observations": { + "radius": 37.78248681949767, + "x": 10.7605576654711, + "y": 4.479618026243391, + "z": 35.93966793575786 + }, + "state": [ + 10.7605576654711, + 4.479618026243391, + 35.93966793575786 + ], + "step": 803, + "time": 20.075 + }, + { + "observations": { + "radius": 35.74602088404115, + "x": 9.139870882903956, + "y": 2.5849616885090665, + "z": 34.46097419335517 + }, + "state": [ + 9.139870882903956, + 2.5849616885090665, + 34.46097419335517 + ], + "step": 804, + "time": 20.1 + }, + { + "observations": { + "radius": 33.5162415404586, + "x": 7.538526268304586, + "y": 1.3722364366274111, + "z": 32.628607629845874 + }, + "state": [ + 7.538526268304586, + 1.3722364366274111, + 32.628607629845874 + ], + "step": 805, + "time": 20.125 + }, + { + "observations": { + "radius": 31.297491934819757, + "x": 6.090489902974942, + "y": 0.7190266304365416, + "z": 30.690746730188746 + }, + "state": [ + 6.090489902974942, + 0.7190266304365416, + 30.690746730188746 + ], + "step": 806, + "time": 20.15 + }, + { + "observations": { + "radius": 29.19852931440653, + "x": 4.867029340645916, + "y": 0.46365721090718276, + "z": 28.786301629634938 + }, + "state": [ + 4.867029340645916, + 0.46365721090718276, + 28.786301629634938 + ], + "step": 807, + "time": 20.175 + }, + { + "observations": { + "radius": 27.259686818883132, + "x": 3.8893227488926065, + "y": 0.46269466173181956, + "z": 26.976834648797144 + }, + "state": [ + 3.8893227488926065, + 0.46269466173181956, + 26.976834648797144 + ], + "step": 808, + "time": 20.2 + }, + { + "observations": { + "radius": 25.483868135499836, + "x": 3.1464638059763534, + "y": 0.6113887463360927, + "z": 25.281485408616287 + }, + "state": [ + 3.1464638059763534, + 0.6113887463360927, + 25.281485408616287 + ], + "step": 809, + "time": 20.225 + }, + { + "observations": { + "radius": 23.859139734354244, + "x": 2.611319941177631, + "y": 0.8433777701555565, + "z": 23.700807390573363 + }, + "state": [ + 2.611319941177631, + 0.8433777701555565, + 23.700807390573363 + ], + "step": 810, + "time": 20.25 + }, + { + "observations": { + "radius": 22.37136998182748, + "x": 2.251752726513269, + "y": 1.1227005733183253, + "z": 22.22942527248787 + }, + "state": [ + 2.251752726513269, + 1.1227005733183253, + 22.22942527248787 + ], + "step": 811, + "time": 20.275 + }, + { + "observations": { + "radius": 21.0098691726885, + "x": 2.03740955067398, + "y": 1.4349202027212036, + "z": 20.861557204296414 + }, + "state": [ + 2.03740955067398, + 1.4349202027212036, + 20.861557204296414 + ], + "step": 812, + "time": 20.3 + }, + { + "observations": { + "radius": 19.76943399867318, + "x": 1.9432221706337995, + "y": 1.7799429566926361, + "z": 19.593014349363717 + }, + "state": [ + 1.9432221706337995, + 1.7799429566926361, + 19.593014349363717 + ], + "step": 813, + "time": 20.325 + }, + { + "observations": { + "radius": 18.651195922391587, + "x": 1.9507994000744786, + "y": 2.1670585409262806, + "z": 18.421871466175855 + }, + "state": [ + 1.9507994000744786, + 2.1670585409262806, + 18.421871466175855 + ], + "step": 814, + "time": 20.35 + }, + { + "observations": { + "radius": 17.663623540897152, + "x": 2.048647271393422, + "y": 2.611927819611746, + "z": 17.348904115738453 + }, + "state": [ + 2.048647271393422, + 2.611927819611746, + 17.348904115738453 + ], + "step": 815, + "time": 20.375 + }, + { + "observations": { + "radius": 16.824326535765465, + "x": 2.231850480667422, + "y": 3.135015920732529, + "z": 16.378293012116988 + }, + "state": [ + 2.231850480667422, + 3.135015920732529, + 16.378293012116988 + ], + "step": 816, + "time": 20.4 + }, + { + "observations": { + "radius": 16.162847023249565, + "x": 2.501593160670843, + "y": 3.760944580299613, + "z": 15.518857928963948 + }, + "state": [ + 2.501593160670843, + 3.760944580299613, + 15.518857928963948 + ], + "step": 817, + "time": 20.425 + }, + { + "observations": { + "radius": 15.72411981689862, + "x": 2.864697791278818, + "y": 4.518238971776337, + "z": 14.78603960412482 + }, + "state": [ + 2.864697791278818, + 4.518238971776337, + 14.78603960412482 + ], + "step": 818, + "time": 20.45 + }, + { + "observations": { + "radius": 15.571455037666318, + "x": 3.3331989268505393, + "y": 5.438868014845788, + "z": 14.20488337231931 + }, + "state": [ + 3.3331989268505393, + 5.438868014845788, + 14.20488337231931 + ], + "step": 819, + "time": 20.475 + }, + { + "observations": { + "radius": 15.786766141286936, + "x": 3.923808113500484, + "y": 6.556740230496041, + "z": 13.814299571020822 + }, + "state": [ + 3.923808113500484, + 6.556740230496041, + 13.814299571020822 + ], + "step": 820, + "time": 20.5 + }, + { + "observations": { + "radius": 16.46516017035047, + "x": 4.656922461012104, + "y": 7.903832876952203, + "z": 13.672746559511221 + }, + "state": [ + 4.656922461012104, + 7.903832876952203, + 13.672746559511221 + ], + "step": 821, + "time": 20.525 + }, + { + "observations": { + "radius": 17.70237499483027, + "x": 5.554528376778975, + "y": 9.50184508293611, + "z": 13.864928235985644 + }, + "state": [ + 5.554528376778975, + 9.50184508293611, + 13.864928235985644 + ], + "step": 822, + "time": 20.55 + }, + { + "observations": { + "radius": 19.576618261360757, + "x": 6.635917933965256, + "y": 11.346307071119046, + "z": 14.507580486511031 + }, + "state": [ + 6.635917933965256, + 11.346307071119046, + 14.507580486511031 + ], + "step": 823, + "time": 20.575 + }, + { + "observations": { + "radius": 22.127204021079727, + "x": 7.909629388375755, + "y": 13.379720695015235, + "z": 15.7490950486817 + }, + "state": [ + 7.909629388375755, + 13.379720695015235, + 15.7490950486817 + ], + "step": 824, + "time": 20.6 + }, + { + "observations": { + "radius": 25.32845206899916, + "x": 9.359824744031535, + "y": 15.452886881985142, + "z": 17.75197036909352 + }, + "state": [ + 9.359824744031535, + 15.452886881985142, + 17.75197036909352 + ], + "step": 825, + "time": 20.625 + }, + { + "observations": { + "radius": 29.054486198562095, + "x": 10.926512802985012, + "y": 17.28386409456272, + "z": 20.640797663591524 + }, + "state": [ + 10.926512802985012, + 17.28386409456272, + 20.640797663591524 + ], + "step": 826, + "time": 20.65 + }, + { + "observations": { + "radius": 33.038679824378434, + "x": 12.483634405462272, + "y": 18.446756847811518, + "z": 24.40144254683047 + }, + "state": [ + 12.483634405462272, + 18.446756847811518, + 24.40144254683047 + ], + "step": 827, + "time": 20.675 + }, + { + "observations": { + "radius": 36.85334446499908, + "x": 13.828514483387725, + "y": 18.449085212064517, + "z": 28.750172873855856 + }, + "state": [ + 13.828514483387725, + 18.449085212064517, + 28.750172873855856 + ], + "step": 828, + "time": 20.7 + }, + { + "observations": { + "radius": 39.95731344938643, + "x": 14.705915800323943, + "y": 16.941741613654, + "z": 33.06509231292852 + }, + "state": [ + 14.705915800323943, + 16.941741613654, + 33.06509231292852 + ], + "step": 829, + "time": 20.725 + }, + { + "observations": { + "radius": 41.84477581130803, + "x": 14.883094519548024, + "y": 13.988515302674902, + "z": 36.52122944052759 + }, + "state": [ + 14.883094519548024, + 13.988515302674902, + 36.52122944052759 + ], + "step": 830, + "time": 20.75 + }, + { + "observations": { + "radius": 42.248078303235424, + "x": 14.253115589723535, + "y": 10.165071671201297, + "z": 38.450229312991524 + }, + "state": [ + 14.253115589723535, + 10.165071671201297, + 38.450229312991524 + ], + "step": 831, + "time": 20.775 + }, + { + "observations": { + "radius": 41.258108353672334, + "x": 12.898276284962096, + "y": 6.315681073874504, + "z": 38.67787670456141 + }, + "state": [ + 12.898276284962096, + 6.315681073874504, + 38.67787670456141 + ], + "step": 832, + "time": 20.8 + }, + { + "observations": { + "radius": 39.259639119222925, + "x": 11.059136662530188, + "y": 3.1333516086517017, + "z": 37.539271007142105 + }, + "state": [ + 11.059136662530188, + 3.1333516086517017, + 37.539271007142105 + ], + "step": 833, + "time": 20.825 + }, + { + "observations": { + "radius": 36.73502087362108, + "x": 9.03209124960196, + "y": 0.9130409362426245, + "z": 35.595637970023596 + }, + "state": [ + 9.03209124960196, + 0.9130409362426245, + 35.595637970023596 + ], + "step": 834, + "time": 20.85 + }, + { + "observations": { + "radius": 34.08396713250951, + "x": 7.069786071123243, + "y": -0.40260904317723323, + "z": 33.340258642621414 + }, + "state": [ + 7.069786071123243, + -0.40260904317723323, + 33.340258642621414 + ], + "step": 835, + "time": 20.875 + }, + { + "observations": { + "radius": 31.548736646024523, + "x": 5.333308560106472, + "y": -1.0406256252827755, + "z": 31.077253772991437 + }, + "state": [ + 5.333308560106472, + -1.0406256252827755, + 31.077253772991437 + ], + "step": 836, + "time": 20.9 + }, + { + "observations": { + "radius": 29.23113100706502, + "x": 3.8937222074997395, + "y": -1.246821812672239, + "z": 28.94379696395181 + }, + "state": [ + 3.8937222074997395, + -1.246821812672239, + 28.94379696395181 + ], + "step": 837, + "time": 20.925 + }, + { + "observations": { + "radius": 27.145657163246607, + "x": 2.7572468668500676, + "y": -1.2159620131124718, + "z": 26.97787480366893 + }, + "state": [ + 2.7572468668500676, + -1.2159620131124718, + 26.97787480366893 + ], + "step": 838, + "time": 20.95 + }, + { + "observations": { + "radius": 25.267830363130358, + "x": 1.8930927447301031, + "y": -1.0788161780326864, + "z": 25.173708641632395 + }, + "state": [ + 1.8930927447301031, + -1.0788161780326864, + 25.173708641632395 + ], + "step": 839, + "time": 20.975 + }, + { + "observations": { + "radius": 23.563729511552054, + "x": 1.2547329102438831, + "y": -0.9133256383864273, + "z": 23.512567492636915 + }, + "state": [ + 1.2547329102438831, + -0.9133256383864273, + 23.512567492636915 + ], + "step": 840, + "time": 21.0 + }, + { + "observations": { + "radius": 22.00315044627785, + "x": 0.7931984302795135, + "y": -0.7608170105701391, + "z": 21.97568254430716 + }, + "state": [ + 0.7931984302795135, + -0.7608170105701391, + 21.97568254430716 + ], + "step": 841, + "time": 21.025 + }, + { + "observations": { + "radius": 20.563119721726423, + "x": 0.46404670201909315, + "y": -0.6399111668448676, + "z": 20.547921234201443 + }, + "state": [ + 0.46404670201909315, + -0.6399111668448676, + 20.547921234201443 + ], + "step": 842, + "time": 21.05 + }, + { + "observations": { + "radius": 19.22724073279792, + "x": 0.23016009593500228, + "y": -0.556518280706398, + "z": 19.21780684496653 + }, + "state": [ + 0.23016009593500228, + -0.556518280706398, + 19.21780684496653 + ], + "step": 843, + "time": 21.075 + }, + { + "observations": { + "radius": 17.983922541562436, + "x": 0.06213028495623821, + "y": -0.5103586319598448, + "z": 17.976572083559002 + }, + "state": [ + 0.06213028495623821, + -0.5103586319598448, + 17.976572083559002 + ], + "step": 844, + "time": 21.1 + }, + { + "observations": { + "radius": 16.82476683696345, + "x": -0.06257263693482198, + "y": -0.498921818729567, + "z": 16.817251285572436 + }, + "state": [ + -0.06257263693482198, + -0.498921818729567, + 16.817251285572436 + ], + "step": 845, + "time": 21.125 + }, + { + "observations": { + "radius": 15.74345977586054, + "x": -0.1609121628700616, + "y": -0.5197176342467463, + "z": 15.734056265649754 + }, + "state": [ + -0.1609121628700616, + -0.5197176342467463, + 15.734056265649754 + ], + "step": 846, + "time": 21.15 + }, + { + "observations": { + "radius": 14.735150630393582, + "x": -0.245674118881383, + "y": -0.5714794656095373, + "z": 14.722014792415026 + }, + "state": [ + -0.245674118881383, + -0.5714794656095373, + 14.722014792415026 + ], + "step": 847, + "time": 21.175 + }, + { + "observations": { + "radius": 13.79621710379246, + "x": -0.32674059964675145, + "y": -0.6547882185032433, + "z": 13.776795684934413 + }, + "state": [ + -0.32674059964675145, + -0.6547882185032433, + 13.776795684934413 + ], + "step": 848, + "time": 21.2 + }, + { + "observations": { + "radius": 12.924349606475225, + "x": -0.4121848202086114, + "y": -0.7724293773816475, + "z": 12.894660495001165 + }, + "state": [ + -0.4121848202086114, + -0.7724293773816475, + 12.894660495001165 + ], + "step": 849, + "time": 21.225 + }, + { + "observations": { + "radius": 12.118958568000917, + "x": -0.5091922773952041, + "y": -0.9296839663278046, + "z": 12.072512899985524 + }, + "state": [ + -0.5091922773952041, + -0.9296839663278046, + 12.072512899985524 + ], + "step": 850, + "time": 21.25 + }, + { + "observations": { + "radius": 11.381997715911641, + "x": -0.6248476302520254, + "y": -1.1346803205132647, + "z": 11.308047489033028 + }, + "state": [ + -0.6248476302520254, + -1.1346803205132647, + 11.308047489033028 + ], + "step": 851, + "time": 21.275 + }, + { + "observations": { + "radius": 10.719401393507647, + "x": -0.7668405544050604, + "y": -1.3988881727171418, + "z": 10.600029890499627 + }, + "state": [ + -0.7668405544050604, + -1.3988881727171418, + 10.600029890499627 + ], + "step": 852, + "time": 21.3 + }, + { + "observations": { + "radius": 10.143448546277886, + "x": -0.9441466413343544, + "y": -1.737809536854519, + "z": 9.948776484787539 + }, + "state": [ + -0.9441466413343544, + -1.737809536854519, + 9.948776484787539 + ], + "step": 853, + "time": 21.325 + }, + { + "observations": { + "radius": 9.676432225406439, + "x": -1.1677365729219713, + "y": -2.171900296767039, + "z": 9.356953618034446 + }, + "state": [ + -1.1677365729219713, + -2.171900296767039, + 9.356953618034446 + ], + "step": 854, + "time": 21.35 + }, + { + "observations": { + "radius": 9.35583520804822, + "x": -1.4513597779752894, + "y": -2.7277256945393056, + "z": 8.830895751302936 + }, + "state": [ + -1.4513597779752894, + -2.7277256945393056, + 8.830895751302936 + ], + "step": 855, + "time": 21.375 + }, + { + "observations": { + "radius": 9.24036615290675, + "x": -1.812431993142937, + "y": -3.4392872916362602, + "z": 8.382765643605095 + }, + "state": [ + -1.812431993142937, + -3.4392872916362602, + 8.382765643605095 + ], + "step": 856, + "time": 21.4 + }, + { + "observations": { + "radius": 9.414312099992705, + "x": -2.2730213583142564, + "y": -4.349303872652795, + "z": 8.034065100809407 + }, + "state": [ + -2.2730213583142564, + -4.349303872652795, + 8.034065100809407 + ], + "step": 857, + "time": 21.425 + }, + { + "observations": { + "radius": 9.985758558045983, + "x": -2.8608448982025894, + "y": -5.509887612637188, + "z": 7.821258143299203 + }, + "state": [ + -2.8608448982025894, + -5.509887612637188, + 7.821258143299203 + ], + "step": 858, + "time": 21.45 + }, + { + "observations": { + "radius": 11.076191246181006, + "x": -3.6100109353753735, + "y": -6.981331986918447, + "z": 7.80453952881759 + }, + "state": [ + -3.6100109353753735, + -6.981331986918447, + 7.80453952881759 + ], + "step": 859, + "time": 21.475 + }, + { + "observations": { + "radius": 12.806433959249759, + "x": -4.5608672377217445, + "y": -8.826289051259906, + "z": 8.080833024887434 + }, + "state": [ + -4.5608672377217445, + -8.826289051259906, + 8.080833024887434 + ], + "step": 860, + "time": 21.5 + }, + { + "observations": { + "radius": 15.286849157318246, + "x": -5.757580818794441, + "y": -11.094008995758706, + "z": 8.801192230355886 + }, + "state": [ + -5.757580818794441, + -11.094008995758706, + 8.801192230355886 + ], + "step": 861, + "time": 21.525 + }, + { + "observations": { + "radius": 18.60865528927019, + "x": -7.240769076919511, + "y": -13.78541626138748, + "z": 10.18899471733513 + }, + "state": [ + -7.240769076919511, + -13.78541626138748, + 10.18899471733513 + ], + "step": 862, + "time": 21.55 + }, + { + "observations": { + "radius": 22.819190857211506, + "x": -9.030626422714569, + "y": -16.786621978638536, + "z": 12.544822849984941 + }, + "state": [ + -9.030626422714569, + -16.786621978638536, + 12.544822849984941 + ], + "step": 863, + "time": 21.575 + }, + { + "observations": { + "radius": 27.86160716717027, + "x": -11.094686995393952, + "y": -19.765183994719965, + "z": 16.202301566963126 + }, + "state": [ + -11.094686995393952, + -19.765183994719965, + 16.202301566963126 + ], + "step": 864, + "time": 21.6 + }, + { + "observations": { + "radius": 33.47287983432893, + "x": -13.298074612543015, + "y": -22.063161590818602, + "z": 21.37315598174705 + }, + "state": [ + -13.298074612543015, + -22.063161590818602, + 21.37315598174705 + ], + "step": 865, + "time": 21.625 + }, + { + "observations": { + "radius": 39.075305972251115, + "x": -15.352230449073563, + "y": -22.717641828184224, + "z": 27.84056944155268 + }, + "state": [ + -15.352230449073563, + -22.717641828184224, + 27.84056944155268 + ], + "step": 866, + "time": 21.65 + }, + { + "observations": { + "radius": 43.77400880058583, + "x": -16.81540212882834, + "y": -20.824702732194336, + "z": 34.637232190740924 + }, + "state": [ + -16.81540212882834, + -20.824702732194336, + 34.637232190740924 + ], + "step": 867, + "time": 21.675 + }, + { + "observations": { + "radius": 46.61090917600475, + "x": -17.21891573547217, + "y": -16.254905123428976, + "z": 40.14802429182282 + }, + "state": [ + -17.21891573547217, + -16.254905123428976, + 40.14802429182282 + ], + "step": 868, + "time": 21.7 + }, + { + "observations": { + "radius": 47.04704443528904, + "x": -16.310035098963485, + "y": -10.103187540981413, + "z": 42.9573363545553 + }, + "state": [ + -16.310035098963485, + -10.103187540981413, + 42.9573363545553 + ], + "step": 869, + "time": 21.725 + }, + { + "observations": { + "radius": 45.30096207661429, + "x": -14.230449292720825, + "y": -4.129606497774782, + "z": 42.8090858132673 + }, + "state": [ + -14.230449292720825, + -4.129606497774782, + 42.8090858132673 + ], + "step": 870, + "time": 21.75 + }, + { + "observations": { + "radius": 42.18662385699533, + "x": -11.444105621608147, + "y": 0.3757647918364668, + "z": 40.602986094550985 + }, + "state": [ + -11.444105621608147, + 0.3757647918364668, + 40.602986094550985 + ], + "step": 871, + "time": 21.775 + }, + { + "observations": { + "radius": 38.61673022295345, + "x": -8.483893824653713, + "y": 3.111849626626335, + "z": 37.5445307679512 + }, + "state": [ + -8.483893824653713, + 3.111849626626335, + 37.5445307679512 + ], + "step": 872, + "time": 21.8 + }, + { + "observations": { + "radius": 35.22423975822855, + "x": -5.744363137585468, + "y": 4.4471289243654315, + "z": 34.46697554208652 + }, + "state": [ + -5.744363137585468, + 4.4471289243654315, + 34.46697554208652 + ], + "step": 873, + "time": 21.825 + }, + { + "observations": { + "radius": 32.28796690630257, + "x": -3.424471994467649, + "y": 4.9174577117343965, + "z": 31.72702961442973 + }, + "state": [ + -3.424471994467649, + 4.9174577117343965, + 31.72702961442973 + ], + "step": 874, + "time": 21.85 + }, + { + "observations": { + "radius": 29.84381759473378, + "x": -1.5697752523144206, + "y": 4.957760518889321, + "z": 29.387239831639597 + }, + "state": [ + -1.5697752523144206, + 4.957760518889321, + 29.387239831639597 + ], + "step": 875, + "time": 21.875 + }, + { + "observations": { + "radius": 27.82118710858183, + "x": -0.137526029242089, + "y": 4.8485145708803685, + "z": 27.39509892623061 + }, + "state": [ + -0.137526029242089, + 4.8485145708803685, + 27.39509892623061 + ], + "step": 876, + "time": 21.9 + }, + { + "observations": { + "radius": 26.131652660287312, + "x": 0.9527467775764601, + "y": 4.748605132901939, + "z": 25.678907562968792 + }, + "state": [ + 0.9527467775764601, + 4.748605132901939, + 25.678907562968792 + ], + "step": 877, + "time": 21.925 + }, + { + "observations": { + "radius": 24.70734677764272, + "x": 1.789250635426622, + "y": 4.73997123990181, + "z": 24.18231253621583 + }, + "state": [ + 1.789250635426622, + 4.73997123990181, + 24.18231253621583 + ], + "step": 878, + "time": 21.95 + }, + { + "observations": { + "radius": 23.509654698715472, + "x": 2.45333171679626, + "y": 4.861342792556832, + "z": 22.87033829643654 + }, + "state": [ + 2.45333171679626, + 4.861342792556832, + 22.87033829643654 + ], + "step": 879, + "time": 21.975 + }, + { + "observations": { + "radius": 22.52620208556883, + "x": 3.014093422367085, + "y": 5.129579964594667, + "z": 21.726307339903805 + }, + "state": [ + 3.014093422367085, + 5.129579964594667, + 21.726307339903805 + ], + "step": 880, + "time": 22.0 + }, + { + "observations": { + "radius": 21.765592166761184, + "x": 3.527814429865598, + "y": 5.551930713203019, + "z": 20.74780935602602 + }, + "state": [ + 3.527814429865598, + 5.551930713203019, + 20.74780935602602 + ], + "step": 881, + "time": 22.025 + }, + { + "observations": { + "radius": 21.253048770612466, + "x": 4.039463960287373, + "y": 6.132232479364172, + "z": 19.94418556318113 + }, + "state": [ + 4.039463960287373, + 6.132232479364172, + 19.94418556318113 + ], + "step": 882, + "time": 22.05 + }, + { + "observations": { + "radius": 21.026847862267214, + "x": 4.584749089265465, + "y": 6.87294986702867, + "z": 19.335743247589978 + }, + "state": [ + 4.584749089265465, + 6.87294986702867, + 19.335743247589978 + ], + "step": 883, + "time": 22.075 + }, + { + "observations": { + "radius": 21.134080255084548, + "x": 5.1917768348961495, + "y": 7.773970553855937, + "z": 18.954160054003214 + }, + "state": [ + 5.1917768348961495, + 7.773970553855937, + 18.954160054003214 + ], + "step": 884, + "time": 22.1 + }, + { + "observations": { + "radius": 21.624081524137523, + "x": 5.881735434855735, + "y": 8.828384753244153, + "z": 18.843187434338024 + }, + "state": [ + 5.881735434855735, + 8.828384753244153, + 18.843187434338024 + ], + "step": 885, + "time": 22.125 + }, + { + "observations": { + "radius": 22.538501855676486, + "x": 6.668129379488148, + "y": 10.015087018068382, + "z": 19.058282936751088 + }, + "state": [ + 6.668129379488148, + 10.015087018068382, + 19.058282936751088 + ], + "step": 886, + "time": 22.15 + }, + { + "observations": { + "radius": 23.8981421327404, + "x": 7.55417329716911, + "y": 11.288186696501285, + "z": 19.662972926237032 + }, + "state": [ + 7.55417329716911, + 11.288186696501285, + 19.662972926237032 + ], + "step": 887, + "time": 22.175 + }, + { + "observations": { + "radius": 25.68769419860572, + "x": 8.528145516938903, + "y": 12.564395606197882, + "z": 20.718695188982153 + }, + "state": [ + 8.528145516938903, + 12.564395606197882, + 20.718695188982153 + ], + "step": 888, + "time": 22.2 + }, + { + "observations": { + "radius": 27.840141178783032, + "x": 9.557099564155784, + "y": 13.712439934847955, + "z": 22.264417796308326 + }, + "state": [ + 9.557099564155784, + 13.712439934847955, + 22.264417796308326 + ], + "step": 889, + "time": 22.225 + }, + { + "observations": { + "radius": 30.223841418690306, + "x": 10.580649794882202, + "y": 14.553164941582672, + "z": 24.284477144943594 + }, + "state": [ + 10.580649794882202, + 14.553164941582672, + 24.284477144943594 + ], + "step": 890, + "time": 22.25 + }, + { + "observations": { + "radius": 32.63852399519413, + "x": 11.508598057662633, + "y": 14.88292853345109, + "z": 26.670655365030193 + }, + "state": [ + 11.508598057662633, + 14.88292853345109, + 26.670655365030193 + ], + "step": 891, + "time": 22.275 + }, + { + "observations": { + "radius": 34.830087634268274, + "x": 12.227930858471053, + "y": 14.529281948206506, + "z": 29.197819740535074 + }, + "state": [ + 12.227930858471053, + 14.529281948206506, + 29.197819740535074 + ], + "step": 892, + "time": 22.3 + }, + { + "observations": { + "radius": 36.532473952844725, + "x": 12.623602458376043, + "y": 13.42885064222405, + "z": 31.54254721034747 + }, + "state": [ + 12.623602458376043, + 13.42885064222405, + 31.54254721034747 + ], + "step": 893, + "time": 22.325 + }, + { + "observations": { + "radius": 37.532032666747995, + "x": 12.610883239332868, + "y": 11.687578378729134, + "z": 33.36194855914167 + }, + "state": [ + 12.610883239332868, + 11.687578378729134, + 33.36194855914167 + ], + "step": 894, + "time": 22.35 + }, + { + "observations": { + "radius": 37.729630466959065, + "x": 12.166773710441237, + "y": 9.572739883739066, + "z": 34.40722720258744 + }, + "state": [ + 12.166773710441237, + 9.572739883739066, + 34.40722720258744 + ], + "step": 895, + "time": 22.375 + }, + { + "observations": { + "radius": 37.16662508502319, + "x": 11.343006943129758, + "y": 7.42408087181585, + "z": 34.60602890982326 + }, + "state": [ + 11.343006943129758, + 7.42408087181585, + 34.60602890982326 + ], + "step": 896, + "time": 22.4 + }, + { + "observations": { + "radius": 35.99851042824892, + "x": 10.251657668786274, + "y": 5.534653351314034, + "z": 34.06117849363921 + }, + "state": [ + 10.251657668786274, + 5.534653351314034, + 34.06117849363921 + ], + "step": 897, + "time": 22.425 + }, + { + "observations": { + "radius": 34.43312276752004, + "x": 9.031272216636633, + "y": 4.073200093569864, + "z": 32.97703908282028 + }, + "state": [ + 9.031272216636633, + 4.073200093569864, + 32.97703908282028 + ], + "step": 898, + "time": 22.45 + }, + { + "observations": { + "radius": 32.66850856158382, + "x": 7.811566199273892, + "y": 3.0779010642558893, + "z": 31.571148382523074 + }, + "state": [ + 7.811566199273892, + 3.0779010642558893, + 31.571148382523074 + ], + "step": 899, + "time": 22.475 + }, + { + "observations": { + "radius": 30.85602129219068, + "x": 6.690826102458336, + "y": 2.4983419085678302, + "z": 30.01808094730042 + }, + "state": [ + 6.690826102458336, + 2.4983419085678302, + 30.01808094730042 + ], + "step": 900, + "time": 22.5 + }, + { + "observations": { + "radius": 29.09240334630327, + "x": 5.729283104171698, + "y": 2.2466756042361147, + "z": 28.434058737816184 + }, + "state": [ + 5.729283104171698, + 2.2466756042361147, + 28.434058737816184 + ], + "step": 901, + "time": 22.525 + }, + { + "observations": { + "radius": 27.430203651995527, + "x": 4.953848146259718, + "y": 2.23445785936249, + "z": 26.88647725174276 + }, + "state": [ + 4.953848146259718, + 2.23445785936249, + 26.88647725174276 + ], + "step": 902, + "time": 22.55 + }, + { + "observations": { + "radius": 25.893996357747746, + "x": 4.367764455850311, + "y": 2.390941936767541, + "z": 25.410727610367054 + }, + "state": [ + 4.367764455850311, + 2.390941936767541, + 25.410727610367054 + ], + "step": 903, + "time": 22.575 + }, + { + "observations": { + "radius": 24.494716041245017, + "x": 3.9605158458403262, + "y": 2.668096945611748, + "z": 24.02470992259617 + }, + "state": [ + 3.9605158458403262, + 2.668096945611748, + 24.02470992259617 + ], + "step": 904, + "time": 22.6 + }, + { + "observations": { + "radius": 23.239654927588926, + "x": 3.715761385188336, + "y": 3.038781115083626, + "z": 22.73852431043762 + }, + "state": [ + 3.715761385188336, + 3.038781115083626, + 22.73852431043762 + ], + "step": 905, + "time": 22.625 + }, + { + "observations": { + "radius": 22.1386543549157, + "x": 3.6167720198154196, + "y": 3.492488388999466, + "z": 21.560183247268846 + }, + "state": [ + 3.6167720198154196, + 3.492488388999466, + 21.560183247268846 + ], + "step": 906, + "time": 22.65 + }, + { + "observations": { + "radius": 21.20791107405362, + "x": 3.64967853148191, + "y": 4.030923399534447, + "z": 20.49895107777205 + }, + "state": [ + 3.64967853148191, + 4.030923399534447, + 20.49895107777205 + ], + "step": 907, + "time": 22.675 + }, + { + "observations": { + "radius": 20.472555846857706, + "x": 3.8050895154958093, + "y": 4.6642088204874055, + "z": 19.56762614014942 + }, + "state": [ + 3.8050895154958093, + 4.6642088204874055, + 19.56762614014942 + ], + "step": 908, + "time": 22.7 + }, + { + "observations": { + "radius": 19.96845895806577, + "x": 4.078589140673572, + "y": 5.407711964091922, + "z": 18.78459781562953 + }, + "state": [ + 4.078589140673572, + 5.407711964091922, + 18.78459781562953 + ], + "step": 909, + "time": 22.725 + }, + { + "observations": { + "radius": 19.742902390873628, + "x": 4.470452154117452, + "y": 6.279024869852222, + "z": 18.176113419460375 + }, + "state": [ + 4.470452154117452, + 6.279024869852222, + 18.176113419460375 + ], + "step": 910, + "time": 22.75 + }, + { + "observations": { + "radius": 19.8530208652866, + "x": 4.984699849334909, + "y": 7.294331140126577, + "z": 17.778862115099642 + }, + "state": [ + 4.984699849334909, + 7.294331140126577, + 17.778862115099642 + ], + "step": 911, + "time": 22.775 + }, + { + "observations": { + "radius": 20.360575935014513, + "x": 5.627393656668547, + "y": 8.463135684152764, + "z": 17.64258562201127 + }, + "state": [ + 5.627393656668547, + 8.463135684152764, + 17.64258562201127 + ], + "step": 912, + "time": 22.8 + }, + { + "observations": { + "radius": 21.322100467325622, + "x": 6.403835298829655, + "y": 9.780147899932842, + "z": 17.831757312716828 + }, + "state": [ + 6.403835298829655, + 9.780147899932842, + 17.831757312716828 + ], + "step": 913, + "time": 22.825 + }, + { + "observations": { + "radius": 22.774671230157253, + "x": 7.314154072442053, + "y": 11.213250258495396, + "z": 18.424218259852566 + }, + "state": [ + 7.314154072442053, + 11.213250258495396, + 18.424218259852566 + ], + "step": 914, + "time": 22.85 + }, + { + "observations": { + "radius": 24.718595670701177, + "x": 8.346741759783464, + "y": 12.687596242139527, + "z": 19.502968377237877 + }, + "state": [ + 8.346741759783464, + 12.687596242139527, + 19.502968377237877 + ], + "step": 915, + "time": 22.875 + }, + { + "observations": { + "radius": 27.09847747920779, + "x": 9.469441924750713, + "y": 14.069067702512239, + "z": 21.13571586928232 + }, + "state": [ + 9.469441924750713, + 14.069067702512239, + 21.13571586928232 + ], + "step": 916, + "time": 22.9 + }, + { + "observations": { + "radius": 29.78493440600901, + "x": 10.619794786455145, + "y": 15.156532566131624, + "z": 23.337561929979554 + }, + "state": [ + 10.619794786455145, + 15.156532566131624, + 23.337561929979554 + ], + "step": 917, + "time": 22.925 + }, + { + "observations": { + "radius": 32.5633351766365, + "x": 11.698340999424584, + "y": 15.699981469075965, + "z": 26.01980394925806 + }, + "state": [ + 11.698340999424584, + 15.699981469075965, + 26.01980394925806 + ], + "step": 918, + "time": 22.95 + }, + { + "observations": { + "radius": 35.142658011727264, + "x": 12.57222276976045, + "y": 15.462393510261874, + "z": 28.945811677867088 + }, + "state": [ + 12.57222276976045, + 15.462393510261874, + 28.945811677867088 + ], + "step": 919, + "time": 22.975 + }, + { + "observations": { + "radius": 37.19943502966011, + "x": 13.09680207587162, + "y": 14.322517534074697, + "z": 31.735425527278995 + }, + "state": [ + 13.09680207587162, + 14.322517534074697, + 31.735425527278995 + ], + "step": 920, + "time": 23.0 + }, + { + "observations": { + "radius": 38.457689763990246, + "x": 13.155787394448605, + "y": 12.37102570536864, + "z": 33.954040746463384 + }, + "state": [ + 13.155787394448605, + 12.37102570536864, + 33.954040746463384 + ], + "step": 921, + "time": 23.025 + }, + { + "observations": { + "radius": 38.775919202810954, + "x": 12.70535049598609, + "y": 9.921997729274608, + "z": 35.26613020813793 + }, + "state": [ + 12.70535049598609, + 9.921997729274608, + 35.26613020813793 + ], + "step": 922, + "time": 23.05 + }, + { + "observations": { + "radius": 38.191618728449356, + "x": 11.796926682549024, + "y": 7.40398998100767, + "z": 35.561400342322635 + }, + "state": [ + 11.796926682549024, + 7.40398998100767, + 35.561400342322635 + ], + "step": 923, + "time": 23.075 + }, + { + "observations": { + "radius": 36.8931564386309, + "x": 10.562339565017425, + "y": 5.194134292803469, + "z": 34.965167579562426 + }, + "state": [ + 10.562339565017425, + 5.194134292803469, + 34.965167579562426 + ], + "step": 924, + "time": 23.1 + }, + { + "observations": { + "radius": 35.13828288880474, + "x": 9.16986663676987, + "y": 3.505270185029829, + "z": 33.739080473057705 + }, + "state": [ + 9.16986663676987, + 3.505270185029829, + 33.739080473057705 + ], + "step": 925, + "time": 23.125 + }, + { + "observations": { + "radius": 33.169880841343925, + "x": 7.776955192682561, + "y": 2.376575674601759, + "z": 32.157609535269465 + }, + "state": [ + 7.776955192682561, + 2.376575674601759, + 32.157609535269465 + ], + "step": 926, + "time": 23.15 + }, + { + "observations": { + "radius": 31.167102084042458, + "x": 6.5004256276980295, + "y": 1.7335919340047923, + "z": 30.432340987545537 + }, + "state": [ + 6.5004256276980295, + 1.7335919340047923, + 30.432340987545537 + ], + "step": 927, + "time": 23.175 + }, + { + "observations": { + "radius": 29.237025841111098, + "x": 5.408671910519181, + "y": 1.4586410614406295, + "z": 28.69533610975899 + }, + "state": [ + 5.408671910519181, + 1.4586410614406295, + 28.69533610975899 + ], + "step": 928, + "time": 23.2 + }, + { + "observations": { + "radius": 27.430638674223236, + "x": 4.528825934093914, + "y": 1.4384488646355251, + "z": 27.01593119991052 + }, + "state": [ + 4.528825934093914, + 1.4384488646355251, + 27.01593119991052 + ], + "step": 929, + "time": 23.225 + }, + { + "observations": { + "radius": 25.765089954941363, + "x": 3.859722138498033, + "y": 1.5853899603652426, + "z": 25.424966943407846 + }, + "state": [ + 3.859722138498033, + 1.5853899603652426, + 25.424966943407846 + ], + "step": 930, + "time": 23.25 + }, + { + "observations": { + "radius": 24.24198465018523, + "x": 3.3845087355449057, + "y": 1.8414576791689303, + "z": 23.933824475304114 + }, + "state": [ + 3.3845087355449057, + 1.8414576791689303, + 23.933824475304114 + ], + "step": 931, + "time": 23.275 + }, + { + "observations": { + "radius": 22.85909236224012, + "x": 3.080292680344602, + "y": 2.174304007289176, + "z": 22.546004140705872 + }, + "state": [ + 3.080292680344602, + 2.174304007289176, + 22.546004140705872 + ], + "step": 932, + "time": 23.3 + }, + { + "observations": { + "radius": 21.616799027061322, + "x": 2.9244539420721685, + "y": 2.5711244500770793, + "z": 21.263181520630297 + }, + "state": [ + 2.9244539420721685, + 2.5711244500770793, + 21.263181520630297 + ], + "step": 933, + "time": 23.325 + }, + { + "observations": { + "radius": 20.52157831356795, + "x": 2.898240455569832, + "y": 3.033046647051347, + "z": 20.088205663483517 + }, + "state": [ + 2.898240455569832, + 3.033046647051347, + 20.088205663483517 + ], + "step": 934, + "time": 23.35 + }, + { + "observations": { + "radius": 19.588307389152423, + "x": 2.9884758680365624, + "y": 3.5708562954175767, + "z": 19.026817486788566 + }, + "state": [ + 2.9884758680365624, + 3.5708562954175767, + 19.026817486788566 + ], + "step": 935, + "time": 23.375 + }, + { + "observations": { + "radius": 18.842438158522864, + "x": 3.1880980356895936, + "y": 4.202010299265875, + "z": 18.089129777782407 + }, + "state": [ + 3.1880980356895936, + 4.202010299265875, + 18.089129777782407 + ], + "step": 936, + "time": 23.4 + }, + { + "observations": { + "radius": 18.322211979865877, + "x": 3.496025049118241, + "y": 4.948491075805423, + "z": 17.29143420204792 + }, + "state": [ + 3.496025049118241, + 4.948491075805423, + 17.29143420204792 + ], + "step": 937, + "time": 23.425 + }, + { + "observations": { + "radius": 18.080256435462157, + "x": 3.9166109369112387, + "y": 5.834840501823328, + "z": 16.658645438907094 + }, + "state": [ + 3.9166109369112387, + 5.834840501823328, + 16.658645438907094 + ], + "step": 938, + "time": 23.45 + }, + { + "observations": { + "radius": 18.183032503599094, + "x": 4.458725219667701, + "y": 6.885496963525659, + "z": 16.22751897265011 + }, + "state": [ + 4.458725219667701, + 6.885496963525659, + 16.22751897265011 + ], + "step": 939, + "time": 23.475 + }, + { + "observations": { + "radius": 18.706091854602818, + "x": 5.134255363498585, + "y": 8.120247928343504, + "z": 16.050509895871127 + }, + "state": [ + 5.134255363498585, + 8.120247928343504, + 16.050509895871127 + ], + "step": 940, + "time": 23.5 + }, + { + "observations": { + "radius": 19.723683191225682, + "x": 5.955567131371873, + "y": 9.546205223070935, + "z": 16.19953285161565 + }, + "state": [ + 5.955567131371873, + 9.546205223070935, + 16.19953285161565 + ], + "step": 941, + "time": 23.525 + }, + { + "observations": { + "radius": 21.29299224620147, + "x": 6.9311691012008625, + "y": 11.144426898302955, + "z": 16.767592635668844 + }, + "state": [ + 6.9311691012008625, + 11.144426898302955, + 16.767592635668844 + ], + "step": 942, + "time": 23.55 + }, + { + "observations": { + "radius": 23.43459359102685, + "x": 8.058616200865826, + "y": 12.849859033457236, + "z": 17.863930265314437 + }, + "state": [ + 8.058616200865826, + 12.849859033457236, + 17.863930265314437 + ], + "step": 943, + "time": 23.575 + }, + { + "observations": { + "radius": 26.109961083526123, + "x": 9.313883671720564, + "y": 14.526239355709414, + "z": 19.595152689212316 + }, + "state": [ + 9.313883671720564, + 14.526239355709414, + 19.595152689212316 + ], + "step": 944, + "time": 23.6 + }, + { + "observations": { + "radius": 29.196372212564743, + "x": 10.637759330725121, + "y": 15.945336667975731, + "z": 22.02299855471779 + }, + "state": [ + 10.637759330725121, + 15.945336667975731, + 22.02299855471779 + ], + "step": 945, + "time": 23.625 + }, + { + "observations": { + "radius": 32.46446553196266, + "x": 11.923190640373312, + "y": 16.79294008524977, + "z": 25.09534240695905 + }, + "state": [ + 11.923190640373312, + 16.79294008524977, + 25.09534240695905 + ], + "step": 946, + "time": 23.65 + }, + { + "observations": { + "radius": 35.57539075962012, + "x": 13.012967190100873, + "y": 16.733735872835492, + "z": 28.570145192966756 + }, + "state": [ + 13.012967190100873, + 16.733735872835492, + 28.570145192966756 + ], + "step": 947, + "time": 23.675 + }, + { + "observations": { + "radius": 38.123583018668214, + "x": 13.720864835403585, + "y": 15.54904621794693, + "z": 31.99019556148451 + }, + "state": [ + 13.720864835403585, + 15.54904621794693, + 31.99019556148451 + ], + "step": 948, + "time": 23.7 + }, + { + "observations": { + "radius": 39.73813690213586, + "x": 13.88267392583986, + "y": 13.294444287739712, + "z": 34.78000345316088 + }, + "state": [ + 13.88267392583986, + 13.294444287739712, + 34.78000345316088 + ], + "step": 949, + "time": 23.725 + }, + { + "observations": { + "radius": 40.210616309863234, + "x": 13.421214285550837, + "y": 10.352457027274493, + "z": 36.46356132660111 + }, + "state": [ + 13.421214285550837, + 10.352457027274493, + 36.46356132660111 + ], + "step": 950, + "time": 23.75 + }, + { + "observations": { + "radius": 39.573155340219415, + "x": 12.386888216333421, + "y": 7.294387674568707, + "z": 36.86992720836721 + }, + "state": [ + 12.386888216333421, + 7.294387674568707, + 36.86992720836721 + ], + "step": 951, + "time": 23.775 + }, + { + "observations": { + "radius": 38.06876070876676, + "x": 10.942918203000843, + "y": 4.631787989449849, + "z": 36.1666921783644 + }, + "state": [ + 10.942918203000843, + 4.631787989449849, + 36.1666921783644 + ], + "step": 952, + "time": 23.8 + }, + { + "observations": { + "radius": 36.03567284573041, + "x": 9.304226416583074, + "y": 2.64133193186138, + "z": 34.71346214164181 + }, + "state": [ + 9.304226416583074, + 2.64133193186138, + 34.71346214164181 + ], + "step": 953, + "time": 23.825 + }, + { + "observations": { + "radius": 33.785435734746294, + "x": 7.669947430446081, + "y": 1.3540307632376045, + "z": 32.87543421603845 + }, + "state": [ + 7.669947430446081, + 1.3540307632376045, + 32.87543421603845 + ], + "step": 954, + "time": 23.85 + }, + { + "observations": { + "radius": 31.535795368113888, + "x": 6.18259871235716, + "y": 0.6504978933442552, + "z": 30.916964843791952 + }, + "state": [ + 6.18259871235716, + 0.6504978933442552, + 30.916964843791952 + ], + "step": 955, + "time": 23.875 + }, + { + "observations": { + "radius": 29.40437929293399, + "x": 4.919762058762734, + "y": 0.3643427472078526, + "z": 28.987595920504358 + }, + "state": [ + 4.919762058762734, + 0.3643427472078526, + 28.987595920504358 + ], + "step": 956, + "time": 23.9 + }, + { + "observations": { + "radius": 27.435653354075992, + "x": 3.9061650558145455, + "y": 0.34527385853602804, + "z": 27.153963531763946 + }, + "state": [ + 3.9061650558145455, + 0.34527385853602804, + 27.153963531763946 + ], + "step": 957, + "time": 23.925 + }, + { + "observations": { + "radius": 25.633418741816495, + "x": 3.132204331961426, + "y": 0.48242676396307227, + "z": 25.436759165301766 + }, + "state": [ + 3.132204331961426, + 0.48242676396307227, + 25.436759165301766 + ], + "step": 958, + "time": 23.95 + }, + { + "observations": { + "radius": 23.98498164835794, + "x": 2.570587987373633, + "y": 0.7049024727288945, + "z": 23.83641194842836 + }, + "state": [ + 2.570587987373633, + 0.7049024727288945, + 23.83641194842836 + ], + "step": 959, + "time": 23.975 + }, + { + "observations": { + "radius": 22.474802755433135, + "x": 2.188222955455652, + "y": 0.9736479875402816, + "z": 22.34682189460507 + }, + "state": [ + 2.188222955455652, + 0.9736479875402816, + 22.34682189460507 + ], + "step": 960, + "time": 24.0 + }, + { + "observations": { + "radius": 21.090570635560237, + "x": 1.9534557947711775, + "y": 1.2721620035408072, + "z": 20.961340224999393 + }, + "state": [ + 1.9534557947711775, + 1.2721620035408072, + 20.961340224999393 + ], + "step": 961, + "time": 24.025 + }, + { + "observations": { + "radius": 19.825294761784104, + "x": 1.839826147100387, + "y": 1.5989006925711096, + "z": 19.674879128354654 + }, + "state": [ + 1.839826147100387, + 1.5989006925711096, + 19.674879128354654 + ], + "step": 962, + "time": 24.05 + }, + { + "observations": { + "radius": 18.6779906323047, + "x": 1.827576720785045, + "y": 1.9619983667703367, + "z": 18.484530283426118 + }, + "state": [ + 1.827576720785045, + 1.9619983667703367, + 18.484530283426118 + ], + "step": 963, + "time": 24.075 + }, + { + "observations": { + "radius": 17.654410972860532, + "x": 1.9039063704656247, + "y": 2.376041457831918, + "z": 17.389876202026937 + }, + "state": [ + 1.9039063704656247, + 2.376041457831918, + 17.389876202026937 + ], + "step": 964, + "time": 24.1 + }, + { + "observations": { + "radius": 16.76853685873529, + "x": 2.0626415165713357, + "y": 2.860388129479289, + "z": 16.393520613511125 + }, + "state": [ + 2.0626415165713357, + 2.860388129479289, + 16.393520613511125 + ], + "step": 965, + "time": 24.125 + }, + { + "observations": { + "radius": 16.045107505183573, + "x": 2.3037357799266167, + "y": 3.4385116751484612, + "z": 15.502093851123847 + }, + "state": [ + 2.3037357799266167, + 3.4385116751484612, + 15.502093851123847 + ], + "step": 966, + "time": 24.15 + }, + { + "observations": { + "radius": 15.523069145666382, + "x": 2.6328051356511493, + "y": 4.137873698993422, + "z": 14.727933122811464 + }, + "state": [ + 2.6328051356511493, + 4.137873698993422, + 14.727933122811464 + ], + "step": 967, + "time": 24.175 + }, + { + "observations": { + "radius": 15.259151469107147, + "x": 3.0607489801544365, + "y": 4.989801398615343, + "z": 14.09167843942001 + }, + "state": [ + 3.0607489801544365, + 4.989801398615343, + 14.09167843942001 + ], + "step": 968, + "time": 24.2 + }, + { + "observations": { + "radius": 15.329684401742291, + "x": 3.6033637485577206, + "y": 6.028673555499994, + "z": 13.626081194305868 + }, + "state": [ + 3.6033637485577206, + 6.028673555499994, + 13.626081194305868 + ], + "step": 969, + "time": 24.225 + }, + { + "observations": { + "radius": 15.827746278682248, + "x": 4.280682411315492, + "y": 7.289327297744598, + "z": 13.381293581046242 + }, + "state": [ + 4.280682411315492, + 7.289327297744598, + 13.381293581046242 + ], + "step": 970, + "time": 24.25 + }, + { + "observations": { + "radius": 16.85324436790402, + "x": 5.115516636962486, + "y": 8.800894957718793, + "z": 13.431589005194004 + }, + "state": [ + 5.115516636962486, + 8.800894957718793, + 13.431589005194004 + ], + "step": 971, + "time": 24.275 + }, + { + "observations": { + "radius": 18.496416764638944, + "x": 6.130286381197237, + "y": 10.574273282952694, + "z": 13.882426536926358 + }, + "state": [ + 6.130286381197237, + 10.574273282952694, + 13.882426536926358 + ], + "step": 972, + "time": 24.3 + }, + { + "observations": { + "radius": 20.817613043936497, + "x": 7.340690337679731, + "y": 12.579526474830088, + "z": 14.874232480448168 + }, + "state": [ + 7.340690337679731, + 12.579526474830088, + 14.874232480448168 + ], + "step": 973, + "time": 24.325 + }, + { + "observations": { + "radius": 23.823573782215433, + "x": 8.744306577564002, + "y": 14.710322717519812, + "z": 16.574262450578427 + }, + "state": [ + 8.744306577564002, + 14.710322717519812, + 16.574262450578427 + ], + "step": 974, + "time": 24.35 + }, + { + "observations": { + "radius": 27.435418152999837, + "x": 10.302579994406074, + "y": 16.73897313598866, + "z": 19.140684236501748 + }, + "state": [ + 10.302579994406074, + 16.73897313598866, + 19.140684236501748 + ], + "step": 975, + "time": 24.375 + }, + { + "observations": { + "radius": 31.446410220375768, + "x": 11.917623864881671, + "y": 18.283940280590702, + "z": 22.639445332851007 + }, + "state": [ + 11.917623864881671, + 18.283940280590702, + 22.639445332851007 + ], + "step": 976, + "time": 24.4 + }, + { + "observations": { + "radius": 35.48541793877613, + "x": 13.413171552859048, + "y": 18.841954589548326, + "z": 26.91249639904456 + }, + "state": [ + 13.413171552859048, + 18.841954589548326, + 26.91249639904456 + ], + "step": 977, + "time": 24.425 + }, + { + "observations": { + "radius": 39.02907148833078, + "x": 14.540848548200659, + "y": 17.949759618092447, + "z": 31.458516722697254 + }, + "state": [ + 14.540848548200659, + 17.949759618092447, + 31.458516722697254 + ], + "step": 978, + "time": 24.45 + }, + { + "observations": { + "radius": 41.51307837996838, + "x": 15.036295562273477, + "y": 15.465795933284197, + "z": 35.469066078702475 + }, + "state": [ + 15.036295562273477, + 15.465795933284197, + 35.469066078702475 + ], + "step": 979, + "time": 24.475 + }, + { + "observations": { + "radius": 42.5363214844259, + "x": 14.722520468908021, + "y": 11.78500042251557, + "z": 38.12741535313303 + }, + "state": [ + 14.722520468908021, + 11.78500042251557, + 38.12741535313303 + ], + "step": 980, + "time": 24.5 + }, + { + "observations": { + "radius": 42.04280986343597, + "x": 13.603967375610974, + "y": 7.729913636264849, + "z": 39.02279292967416 + }, + "state": [ + 13.603967375610974, + 7.729913636264849, + 39.02279292967416 + ], + "step": 981, + "time": 24.525 + }, + { + "observations": { + "radius": 40.334771838853214, + "x": 11.876009981095839, + "y": 4.134571422463131, + "z": 38.324398565063085 + }, + "state": [ + 11.876009981095839, + 4.134571422463131, + 38.324398565063085 + ], + "step": 982, + "time": 24.55 + }, + { + "observations": { + "radius": 37.90258053591832, + "x": 9.838199502894138, + "y": 1.4744292874871152, + "z": 36.57378159418613 + }, + "state": [ + 9.838199502894138, + 1.4744292874871152, + 36.57378159418613 + ], + "step": 983, + "time": 24.575 + }, + { + "observations": { + "radius": 35.210323766444276, + "x": 7.778966743019628, + "y": -0.19436677512074152, + "z": 34.339726232245276 + }, + "state": [ + 7.778966743019628, + -0.19436677512074152, + 34.339726232245276 + ], + "step": 984, + "time": 24.6 + }, + { + "observations": { + "radius": 32.57156708171356, + "x": 5.902404178837318, + "y": -1.0684271738853446, + "z": 32.01448219856622 + }, + "state": [ + 5.902404178837318, + -1.0684271738853446, + 32.01448219856622 + ], + "step": 985, + "time": 24.625 + }, + { + "observations": { + "radius": 30.138039795959653, + "x": 4.313497195884396, + "y": -1.4112983330673656, + "z": 29.794352177871335 + }, + "state": [ + 4.313497195884396, + -1.4112983330673656, + 29.794352177871335 + ], + "step": 986, + "time": 24.65 + }, + { + "observations": { + "radius": 27.948838249708864, + "x": 3.0388806054902346, + "y": -1.4494284635925259, + "z": 27.74530449108267 + }, + "state": [ + 3.0388806054902346, + -1.4494284635925259, + 27.74530449108267 + ], + "step": 987, + "time": 24.675 + }, + { + "observations": { + "radius": 25.986569103004356, + "x": 2.0568531757503594, + "y": -1.3420505317016262, + "z": 25.870253750765293 + }, + "state": [ + 2.0568531757503594, + -1.3420505317016262, + 25.870253750765293 + ], + "step": 988, + "time": 24.7 + }, + { + "observations": { + "radius": 24.215893606813236, + "x": 1.3225676469261194, + "y": -1.1876227450970573, + "z": 24.15056666438969 + }, + "state": [ + 1.3225676469261194, + -1.1876227450970573, + 24.15056666438969 + ], + "step": 989, + "time": 24.725 + }, + { + "observations": { + "radius": 22.602621136777255, + "x": 0.7846977915652711, + "y": -1.0407001111351672, + "z": 22.565009969137744 + }, + "state": [ + 0.7846977915652711, + -1.0407001111351672, + 22.565009969137744 + ], + "step": 990, + "time": 24.75 + }, + { + "observations": { + "radius": 21.12004072549967, + "x": 0.394681017443494, + "y": -0.9279007075803957, + "z": 21.095955712365967 + }, + "state": [ + 0.394681017443494, + -0.9279007075803957, + 21.095955712365967 + ], + "step": 991, + "time": 24.775 + }, + { + "observations": { + "radius": 19.749167125183853, + "x": 0.11083147130311533, + "y": -0.859855120756173, + "z": 19.730128425702677 + }, + "state": [ + 0.11083147130311533, + -0.859855120756173, + 19.730128425702677 + ], + "step": 992, + "time": 24.8 + }, + { + "observations": { + "radius": 18.477024948307818, + "x": -0.10063196182680842, + "y": -0.8392141832614682, + "z": 18.45768251171477 + }, + "state": [ + -0.10063196182680842, + -0.8392141832614682, + 18.45768251171477 + ], + "step": 993, + "time": 24.825 + }, + { + "observations": { + "radius": 17.294871112589373, + "x": -0.2661909525711724, + "y": -0.8656484799087755, + "z": 17.271142460389793 + }, + "state": [ + -0.2661909525711724, + -0.8656484799087755, + 17.271142460389793 + ], + "step": 994, + "time": 24.85 + }, + { + "observations": { + "radius": 16.19698824367018, + "x": -0.40635354144322094, + "y": -0.9388064381184409, + "z": 16.164651169657017 + }, + "state": [ + -0.40635354144322094, + -0.9388064381184409, + 16.164651169657017 + ], + "step": 995, + "time": 24.875 + }, + { + "observations": { + "radius": 15.180147287261379, + "x": -0.5371830517128695, + "y": -1.060007046977653, + "z": 15.133561745083647 + }, + "state": [ + -0.5371830517128695, + -1.060007046977653, + 15.133561745083647 + ], + "step": 996, + "time": 24.9 + }, + { + "observations": { + "radius": 14.243705081743371, + "x": -0.6717735120380058, + "y": -1.2332294771765742, + "z": 14.174307738328135 + }, + "state": [ + -0.6717735120380058, + -1.2332294771765742, + 14.174307738328135 + ], + "step": 997, + "time": 24.925 + }, + { + "observations": { + "radius": 13.390350285580425, + "x": -0.8215753921393628, + "y": -1.465781638390743, + "z": 13.284501452223616 + }, + "state": [ + -0.8215753921393628, + -1.465781638390743, + 13.284501452223616 + ], + "step": 998, + "time": 24.95 + }, + { + "observations": { + "radius": 12.627626464315792, + "x": -0.9975635134471215, + "y": -1.768895765698528, + "z": 12.46325900112091 + }, + "state": [ + -0.9975635134471215, + -1.768895765698528, + 12.46325900112091 + ], + "step": 999, + "time": 24.975 + }, + { + "observations": { + "radius": 11.970480537519169, + "x": -1.2112854749425483, + "y": -2.158399271895271, + "z": 11.711810465525831 + }, + "state": [ + -1.2112854749425483, + -2.158399271895271, + 11.711810465525831 + ], + "step": 1000, + "time": 25.0 + } + ], + "trace_sha256": "eb99bfa1ecb12e1d414304449b1b72dd9590b650dd0486fdb74666aa8f60c3a1" + }, + "changed": { + "classification": "bounded-finite-window", + "execution_metadata": { + "adapter_configuration": { + "adapter": "scipy.solve_ivp", + "atol": 1e-12, + "dense_output": false, + "events": [], + "identity": "phaseprobe-lorenz-scipy-v1", + "initial_state": [ + 1.0, + 1.0, + 1.0 + ], + "max_step": 0.05, + "method": "DOP853", + "rtol": 1e-09, + "state_names": [ + "x", + "y", + "z" + ], + "t_eval": { + "kind": "linspace", + "points": 1001, + "start": 0.0, + "stop": 25.0 + }, + "t_span": [ + 0.0, + 25.0 + ], + "vectorized": false + }, + "atol": 1e-12, + "dense_output": false, + "evaluation_grid": { + "kind": "linspace", + "points": 1001, + "start": 0.0, + "stop": 25.0 + }, + "event_configuration": [], + "events": [], + "initial_state": [ + 1.000003390625, + 1.0, + 1.0 + ], + "maximum_step": 0.05, + "nfev": 13436, + "njev": 0, + "nlu": 0, + "numpy_version": "2.4.6", + "parameters": { + "beta": 2.6666666666666665, + "rho": 28.0, + "sigma": 10.0 + }, + "platform": { + "architecture_bits": 64, + "byteorder": "little", + "machine": "AMD64", + "release": "10", + "system": "Windows" + }, + "python_implementation": "CPython", + "python_version": "3.12.13", + "rtol": 1e-09, + "scipy_version": "1.18.0", + "seed": 23, + "solver_message": "The solver successfully reached the end of the integration interval.", + "solver_method": "DOP853", + "solver_status": 0, + "solver_success": true, + "t_span": [ + 0.0, + 25.0 + ], + "termination_time": 25.0, + "vectorized": false + }, + "final_state": [ + -0.8892998317807409, + -1.5986737785825442, + 11.485698800705771 + ], + "initial_state": [ + 1.000003390625, + 1.0, + 1.0 + ], + "invariant_violations": 0, + "invariants": [ + { + "detail": "Maximum absolute state over the declared finite observation window.", + "measured": 47.69159847585942, + "name": "declared-state-bound", + "passed": true, + "tolerance": 100.0 + } + ], + "observations": { + "radius": 11.630472431576743, + "x": -0.8892998317807409, + "y": -1.5986737785825442, + "z": 11.485698800705771 + }, + "parameters": { + "beta": 2.6666666666666665, + "rho": 28.0, + "sigma": 10.0 + }, + "solver_success": true, + "trace": [ + { + "observations": { + "radius": 1.7320527651493463, + "x": 1.000003390625, + "y": 1.0, + "z": 1.0 + }, + "state": [ + 1.000003390625, + 1.0, + 1.0 + ], + "step": 0, + "time": 0.0 + }, + { + "observations": { + "radius": 2.201939588251187, + "x": 1.0753193363511049, + "y": 1.659518450442891, + "z": 0.9686200430596372 + }, + "state": [ + 1.0753193363511049, + 1.659518450442891, + 0.9686200430596372 + ], + "step": 1, + "time": 0.025 + }, + { + "observations": { + "radius": 2.8892069422824034, + "x": 1.2875576855877262, + "y": 2.400164355713494, + "z": 0.9638065299525843 + }, + "state": [ + 1.2875576855877262, + 2.400164355713494, + 0.9638065299525843 + ], + "step": 2, + "time": 0.05 + }, + { + "observations": { + "radius": 3.823628855922818, + "x": 1.6344097547120577, + "y": 3.308291412441716, + "z": 1.0020231094700889 + }, + "state": [ + 1.6344097547120577, + 3.308291412441716, + 1.0020231094700889 + ], + "step": 3, + "time": 0.075 + }, + { + "observations": { + "radius": 5.077854954033297, + "x": 2.133111785732294, + "y": 4.471428334149598, + "z": 1.1139002183026239 + }, + "state": [ + 2.133111785732294, + 4.471428334149598, + 1.1139002183026239 + ], + "step": 4, + "time": 0.1 + }, + { + "observations": { + "radius": 6.753768374412482, + "x": 2.817458072372956, + "y": 5.986824558325027, + "z": 1.3539752484706078 + }, + "state": [ + 2.817458072372956, + 5.986824558325027, + 1.3539752484706078 + ], + "step": 5, + "time": 0.125 + }, + { + "observations": { + "radius": 8.982999132741687, + "x": 3.736729539886788, + "y": 7.964098754340467, + "z": 1.8177614793168062 + }, + "state": [ + 3.736729539886788, + 7.964098754340467, + 1.8177614793168062 + ], + "step": 6, + "time": 0.15 + }, + { + "observations": { + "radius": 11.927993535590815, + "x": 4.954337992069244, + "y": 10.516972786351216, + "z": 2.6692411387103103 + }, + "state": [ + 4.954337992069244, + 10.516972786351216, + 2.6692411387103103 + ], + "step": 7, + "time": 0.175 + }, + { + "observations": { + "radius": 15.774190891539035, + "x": 6.542539259878294, + "y": 13.731209674840027, + "z": 4.180210423082061 + }, + "state": [ + 6.542539259878294, + 13.731209674840027, + 4.180210423082061 + ], + "step": 8, + "time": 0.2 + }, + { + "observations": { + "radius": 20.69824478355135, + "x": 8.566160276666176, + "y": 17.583402264917382, + "z": 6.772163614708036 + }, + "state": [ + 8.566160276666176, + 17.583402264917382, + 6.772163614708036 + ], + "step": 9, + "time": 0.225 + }, + { + "observations": { + "radius": 26.785906825417307, + "x": 11.042861627187971, + "y": 21.775443909410185, + "z": 11.016807799487465 + }, + "state": [ + 11.042861627187971, + 21.775443909410185, + 11.016807799487465 + ], + "step": 10, + "time": 0.25 + }, + { + "observations": { + "radius": 33.86754898752041, + "x": 13.864687821501343, + "y": 25.48210164097532, + "z": 17.476950591948523 + }, + "state": [ + 13.864687821501343, + 25.48210164097532, + 17.476950591948523 + ], + "step": 11, + "time": 0.275 + }, + { + "observations": { + "radius": 41.28083894935746, + "x": 16.684830890207696, + "y": 27.18349256164445, + "z": 26.20652236903973 + }, + "state": [ + 16.684830890207696, + 27.18349256164445, + 26.20652236903973 + ], + "step": 12, + "time": 0.3 + }, + { + "observations": { + "radius": 47.72948633782909, + "x": 18.849106905100463, + "y": 25.094719433723338, + "z": 35.959283801207945 + }, + "state": [ + 18.849106905100463, + 25.094719433723338, + 35.959283801207945 + ], + "step": 13, + "time": 0.325 + }, + { + "observations": { + "radius": 51.61417164232774, + "x": 19.555092723196896, + "y": 18.600170191741547, + "z": 43.996076322202754 + }, + "state": [ + 19.555092723196896, + 18.600170191741547, + 43.996076322202754 + ], + "step": 14, + "time": 0.35 + }, + { + "observations": { + "radius": 51.970410476798065, + "x": 18.317136262759085, + "y": 9.535067859003505, + "z": 47.69159847585942 + }, + "state": [ + 18.317136262759085, + 9.535067859003505, + 47.69159847585942 + ], + "step": 15, + "time": 0.375 + }, + { + "observations": { + "radius": 49.23060439163787, + "x": 15.366176960038239, + "y": 1.112990819891511, + "z": 46.75782571755857 + }, + "state": [ + 15.366176960038239, + 1.112990819891511, + 46.75782571755857 + ], + "step": 16, + "time": 0.4 + }, + { + "observations": { + "radius": 44.86947158883087, + "x": 11.49785060737433, + "y": -4.6138712354319695, + "z": 43.12517946970488 + }, + "state": [ + 11.49785060737433, + -4.6138712354319695, + 43.12517946970488 + ], + "step": 17, + "time": 0.425 + }, + { + "observations": { + "radius": 40.364033514359505, + "x": 7.548634165616517, + "y": -7.581114796565707, + "z": 38.92043193777938 + }, + "state": [ + 7.548634165616517, + -7.581114796565707, + 38.92043193777938 + ], + "step": 18, + "time": 0.45 + }, + { + "observations": { + "radius": 36.55557850085284, + "x": 4.048399896507239, + "y": -8.699216371723407, + "z": 35.27384884482999 + }, + "state": [ + 4.048399896507239, + -8.699216371723407, + 35.27384884482999 + ], + "step": 19, + "time": 0.475 + }, + { + "observations": { + "radius": 33.66559282058347, + "x": 1.1982567996819853, + "y": -8.867196962172233, + "z": 32.45472444248111 + }, + "state": [ + 1.1982567996819853, + -8.867196962172233, + 32.45472444248111 + ], + "step": 20, + "time": 0.5 + }, + { + "observations": { + "radius": 31.58134239595299, + "x": -1.0078393880515544, + "y": -8.661118323342562, + "z": 30.353755561501274 + }, + "state": [ + -1.0078393880515544, + -8.661118323342562, + 30.353755561501274 + ], + "step": 21, + "time": 0.525 + }, + { + "observations": { + "radius": 30.098093782890263, + "x": -2.6682351664198323, + "y": -8.381599741915377, + "z": 28.784102491247875 + }, + "state": [ + -2.6682351664198323, + -8.381599741915377, + 28.784102491247875 + ], + "step": 22, + "time": 0.55 + }, + { + "observations": { + "radius": 29.037944898317335, + "x": -3.9052169999673336, + "y": -8.1646609801041, + "z": 27.59148120672113 + }, + "state": [ + -3.9052169999673336, + -8.1646609801041, + 27.59148120672113 + ], + "step": 23, + "time": 0.575 + }, + { + "observations": { + "radius": 28.280788648902117, + "x": -4.833219097953881, + "y": -8.061280704058056, + "z": 26.673184158728144 + }, + "state": [ + -4.833219097953881, + -8.061280704058056, + 26.673184158728144 + ], + "step": 24, + "time": 0.6 + }, + { + "observations": { + "radius": 27.75686627503009, + "x": -5.547350154427737, + "y": -8.081382982533086, + "z": 25.96847667391559 + }, + "state": [ + -5.547350154427737, + -8.081382982533086, + 25.96847667391559 + ], + "step": 25, + "time": 0.625 + }, + { + "observations": { + "radius": 27.43012121579826, + "x": -6.121390457766185, + "y": -8.21562472542098, + "z": 25.444913816871267 + }, + "state": [ + -6.121390457766185, + -8.21562472542098, + 25.444913816871267 + ], + "step": 26, + "time": 0.65 + }, + { + "observations": { + "radius": 27.283447352968494, + "x": -6.609557450665061, + "y": -8.445477609722275, + "z": 25.08733062149581 + }, + "state": [ + -6.609557450665061, + -8.445477609722275, + 25.08733062149581 + ], + "step": 27, + "time": 0.675 + }, + { + "observations": { + "radius": 27.308025099585457, + "x": -7.049364481447229, + "y": -8.747488610728848, + "z": 24.890081121853918 + }, + "state": [ + -7.049364481447229, + -8.747488610728848, + 24.890081121853918 + ], + "step": 28, + "time": 0.7 + }, + { + "observations": { + "radius": 27.49603065277059, + "x": -7.464429999949102, + "y": -9.09476409885898, + "z": 24.851544266303964 + }, + "state": [ + -7.464429999949102, + -9.09476409885898, + 24.851544266303964 + ], + "step": 29, + "time": 0.725 + }, + { + "observations": { + "radius": 27.835636139299556, + "x": -7.866842010522206, + "y": -9.457336507608158, + "z": 24.969866284039735 + }, + "state": [ + -7.866842010522206, + -9.457336507608158, + 24.969866284039735 + ], + "step": 30, + "time": 0.75 + }, + { + "observations": { + "radius": 28.307617213003827, + "x": -8.259056503610209, + "y": -9.802465656411702, + "z": 25.239271879414304 + }, + "state": [ + -8.259056503610209, + -9.802465656411702, + 25.239271879414304 + ], + "step": 31, + "time": 0.775 + }, + { + "observations": { + "radius": 28.883364285685186, + "x": -8.635511677948434, + "y": -10.095640997061095, + "z": 25.64672890210504 + }, + "state": [ + -8.635511677948434, + -10.095640997061095, + 25.64672890210504 + ], + "step": 32, + "time": 0.8 + }, + { + "observations": { + "radius": 29.524435812296367, + "x": -8.984241457027148, + "y": -10.302818832264261, + "z": 26.169211672990535 + }, + "state": [ + -8.984241457027148, + -10.302818832264261, + 26.169211672990535 + ], + "step": 33, + "time": 0.825 + }, + { + "observations": { + "radius": 30.183923606370822, + "x": -9.288791276337955, + "y": -10.394071553803535, + "z": 26.77220344749886 + }, + "state": [ + -9.288791276337955, + -10.394071553803535, + 26.77220344749886 + ], + "step": 34, + "time": 0.85 + }, + { + "observations": { + "radius": 30.80978696655292, + "x": -9.530649398154207, + "y": -10.348272920907101, + "z": 27.41027074890465 + }, + "state": [ + -9.530649398154207, + -10.348272920907101, + 27.41027074890465 + ], + "step": 35, + "time": 0.875 + }, + { + "observations": { + "radius": 31.34995053206654, + "x": -9.692201573966571, + "y": -10.157780228113742, + "z": 28.030342984879095 + }, + "state": [ + -9.692201573966571, + -10.157780228113742, + 28.030342984879095 + ], + "step": 36, + "time": 0.9 + }, + { + "observations": { + "radius": 31.758426264897622, + "x": -9.759921362508347, + "y": -9.831586489161388, + "z": 28.57763952685266 + }, + "state": [ + -9.759921362508347, + -9.831586489161388, + 28.57763952685266 + ], + "step": 37, + "time": 0.925 + }, + { + "observations": { + "radius": 32.001218167800275, + "x": -9.727229594879676, + "y": -9.395484218460975, + "z": 29.003169567002466 + }, + "state": [ + -9.727229594879676, + -9.395484218460975, + 29.003169567002466 + ], + "step": 38, + "time": 0.95 + }, + { + "observations": { + "radius": 32.06058270768747, + "x": -9.596340009126727, + "y": -8.88860580637376, + "z": 29.270871336613833 + }, + "state": [ + -9.596340009126727, + -8.88860580637376, + 29.270871336613833 + ], + "step": 39, + "time": 0.975 + }, + { + "observations": { + "radius": 31.936556911203752, + "x": -9.378568457929891, + "y": -8.357030352856613, + "z": 29.36232560108126 + }, + "state": [ + -9.378568457929891, + -8.357030352856613, + 29.36232560108126 + ], + "step": 40, + "time": 1.0 + }, + { + "observations": { + "radius": 31.64546973186777, + "x": -9.092992839213784, + "y": -7.846296582477154, + "z": 29.27778792389161 + }, + "state": [ + -9.092992839213784, + -7.846296582477154, + 29.27778792389161 + ], + "step": 41, + "time": 1.025 + }, + { + "observations": { + "radius": 31.21608022494332, + "x": -8.763840129487447, + "y": -7.3949865067579355, + "z": 29.033651946659255 + }, + "state": [ + -8.763840129487447, + -7.3949865067579355, + 29.033651946659255 + ], + "step": 42, + "time": 1.05 + }, + { + "observations": { + "radius": 30.684602531064847, + "x": -8.41731276324272, + "y": -7.030901444421588, + "z": 28.657636036735703 + }, + "state": [ + -8.41731276324272, + -7.030901444421588, + 28.657636036735703 + ], + "step": 43, + "time": 1.075 + }, + { + "observations": { + "radius": 30.089946000317635, + "x": -8.078616425495996, + "y": -6.770197830928184, + "z": 28.183421159998176 + }, + "state": [ + -8.078616425495996, + -6.770197830928184, + 28.183421159998176 + ], + "step": 44, + "time": 1.1 + }, + { + "observations": { + "radius": 29.470094956772684, + "x": -7.769738756628265, + "y": -6.618837010001778, + "z": 27.646132696092923 + }, + "state": [ + -7.769738756628265, + -6.618837010001778, + 27.646132696092923 + ], + "step": 45, + "time": 1.125 + }, + { + "observations": { + "radius": 28.85996087990569, + "x": -7.50819979079217, + "y": -6.5752330349333565, + "z": 27.07933877382452 + }, + "state": [ + -7.50819979079217, + -6.5752330349333565, + 27.07933877382452 + ], + "step": 46, + "time": 1.15 + }, + { + "observations": { + "radius": 28.290538891717667, + "x": -7.306697699333164, + "y": -6.633046125948242, + "z": 26.513571215613194 + }, + "state": [ + -7.306697699333164, + -6.633046125948242, + 26.513571215613194 + ], + "step": 47, + "time": 1.175 + }, + { + "observations": { + "radius": 27.788926887195533, + "x": -7.173396362344923, + "y": -6.783424843985781, + "z": 25.975988711819845 + }, + "state": [ + -7.173396362344923, + -6.783424843985781, + 25.975988711819845 + ], + "step": 48, + "time": 1.2 + }, + { + "observations": { + "radius": 27.378707364825136, + "x": -7.112548938603652, + "y": -7.016390581212325, + "z": 25.490694925336445 + }, + "state": [ + -7.112548938603652, + -7.016390581212325, + 25.490694925336445 + ], + "step": 49, + "time": 1.225 + }, + { + "observations": { + "radius": 27.0802655242744, + "x": -7.12518725824707, + "y": -7.3213443339173505, + "z": 25.079282376980697 + }, + "state": [ + -7.12518725824707, + -7.3213443339173505, + 25.079282376980697 + ], + "step": 50, + "time": 1.25 + }, + { + "observations": { + "radius": 26.91074041989643, + "x": -7.209681995685414, + "y": -7.686832683439619, + "z": 24.761281040466013 + }, + "state": [ + -7.209681995685414, + -7.686832683439619, + 24.761281040466013 + ], + "step": 51, + "time": 1.275 + }, + { + "observations": { + "radius": 26.88343462787898, + "x": -7.362061366817375, + "y": -8.099776826979673, + "z": 24.554281198515685 + }, + "state": [ + -7.362061366817375, + -8.099776826979673, + 24.554281198515685 + ], + "step": 52, + "time": 1.3 + }, + { + "observations": { + "radius": 27.00663466749582, + "x": -7.576049299497334, + "y": -8.544399925065298, + "z": 24.473557628504224 + }, + "state": [ + -7.576049299497334, + -8.544399925065298, + 24.473557628504224 + ], + "step": 53, + "time": 1.325 + }, + { + "observations": { + "radius": 27.28192986118915, + "x": -7.842849337233725, + "y": -9.001128152240465, + "z": 24.531064045638967 + }, + "state": [ + -7.842849337233725, + -9.001128152240465, + 24.531064045638967 + ], + "step": 54, + "time": 1.35 + }, + { + "observations": { + "radius": 27.70226812317758, + "x": -8.15076269807239, + "y": -9.445809519145778, + "z": 24.73373019049386 + }, + "state": [ + -8.15076269807239, + -9.445809519145778, + 24.73373019049386 + ], + "step": 55, + "time": 1.375 + }, + { + "observations": { + "radius": 28.250146134188842, + "x": -8.484795432742828, + "y": -9.84967956324635, + "z": 25.081124687080887 + }, + "state": [ + -8.484795432742828, + -9.84967956324635, + 25.081124687080887 + ], + "step": 56, + "time": 1.4 + }, + { + "observations": { + "radius": 28.89646949530643, + "x": -8.826477324480733, + "y": -10.180550464460815, + "z": 25.562778400912705 + }, + "state": [ + -8.826477324480733, + -10.180550464460815, + 25.562778400912705 + ], + "step": 57, + "time": 1.425 + }, + { + "observations": { + "radius": 29.600689989863422, + "x": -9.154164387512973, + "y": -10.405613114369825, + "z": 26.155789759753855 + }, + "state": [ + -9.154164387512973, + -10.405613114369825, + 26.155789759753855 + ], + "step": 58, + "time": 1.45 + }, + { + "observations": { + "radius": 30.312766450828917, + "x": -9.444091086156737, + "y": -10.49591259629516, + "z": 26.823660679143078 + }, + "state": [ + -9.444091086156737, + -10.49591259629516, + 26.823660679143078 + ], + "step": 59, + "time": 1.475 + }, + { + "observations": { + "radius": 30.977229307187507, + "x": -9.672325625212636, + "y": -10.431943937080646, + "z": 27.51743807558287 + }, + "state": [ + -9.672325625212636, + -10.431943937080646, + 27.51743807558287 + ], + "step": 60, + "time": 1.5 + }, + { + "observations": { + "radius": 31.53912506065909, + "x": -9.817539864676695, + "y": -10.20906100977129, + "z": 28.179911176157844 + }, + "state": [ + -9.817539864676695, + -10.20906100977129, + 28.179911176157844 + ], + "step": 61, + "time": 1.525 + }, + { + "observations": { + "radius": 31.95094954403337, + "x": -9.864165924822423, + "y": -9.840873955118818, + "z": 28.752714779171768 + }, + "state": [ + -9.864165924822423, + -9.840873955118818, + 28.752714779171768 + ], + "step": 62, + "time": 1.55 + }, + { + "observations": { + "radius": 32.17910086488116, + "x": -9.805208694787051, + "y": -9.358998919053972, + "z": 29.18495424284599 + }, + "state": [ + -9.805208694787051, + -9.358998919053972, + 29.18495424284599 + ], + "step": 63, + "time": 1.575 + }, + { + "observations": { + "radius": 32.208227289103604, + "x": -9.643893863537768, + "y": -8.808618694526068, + "z": 29.44101650673466 + }, + "state": [ + -9.643893863537768, + -8.808618694526068, + 29.44101650673466 + ], + "step": 64, + "time": 1.6 + }, + { + "observations": { + "radius": 32.04233252862301, + "x": -9.39357518425969, + "y": -8.240917076182374, + "z": 29.50523860056038 + }, + "state": [ + -9.39357518425969, + -8.240917076182374, + 29.50523860056038 + ], + "step": 65, + "time": 1.625 + }, + { + "observations": { + "radius": 31.702503064714705, + "x": -9.075846754746102, + "y": -7.704701721433279, + "z": 29.382227240907945 + }, + "state": [ + -9.075846754746102, + -7.704701721433279, + 29.382227240907945 + ], + "step": 66, + "time": 1.65 + }, + { + "observations": { + "radius": 31.22218232119538, + "x": -8.71737221477888, + "y": -7.239693779840855, + "z": 29.093279714413434 + }, + "state": [ + -8.71737221477888, + -7.239693779840855, + 29.093279714413434 + ], + "step": 67, + "time": 1.675 + }, + { + "observations": { + "radius": 30.64152540286862, + "x": -8.34628394462424, + "y": -6.873014439703654, + "z": 28.670617290912585 + }, + "state": [ + -8.34628394462424, + -6.873014439703654, + 28.670617290912585 + ], + "step": 68, + "time": 1.7 + }, + { + "observations": { + "radius": 30.002311968825005, + "x": -7.988994328927012, + "y": -6.618994752439445, + "z": 28.151440488086063 + }, + "state": [ + -7.988994328927012, + -6.618994752439445, + 28.151440488086063 + ], + "step": 69, + "time": 1.725 + }, + { + "observations": { + "radius": 29.34433369188856, + "x": -7.667966717530213, + "y": -6.4813543291602835, + "z": 27.573252479524978 + }, + "state": [ + -7.667966717530213, + -6.4813543291602835, + 27.573252479524978 + ], + "step": 70, + "time": 1.75 + }, + { + "observations": { + "radius": 28.703476562805317, + "x": -7.400604344030319, + "y": -6.456409998938327, + "z": 26.971010215789896 + }, + "state": [ + -7.400604344030319, + -6.456409998938327, + 26.971010215789896 + ], + "step": 71, + "time": 1.775 + }, + { + "observations": { + "radius": 28.1111909819307, + "x": -7.199099486233142, + "y": -6.536179333397113, + "z": 26.375943295578494 + }, + "state": [ + -7.199099486233142, + -6.536179333397113, + 26.375943295578494 + ], + "step": 72, + "time": 1.8 + }, + { + "observations": { + "radius": 27.59479974778451, + "x": -7.07092073944238, + "y": -6.710705653360469, + "z": 25.815527936705216 + }, + "state": [ + -7.07092073944238, + -6.710705653360469, + 25.815527936705216 + ], + "step": 73, + "time": 1.825 + }, + { + "observations": { + "radius": 27.17808354774509, + "x": -7.019591105208642, + "y": -6.969368148183551, + "z": 25.314056839214306 + }, + "state": [ + -7.019591105208642, + -6.969368148183551, + 25.314056839214306 + ], + "step": 74, + "time": 1.85 + }, + { + "observations": { + "radius": 26.881696592995056, + "x": -7.045469781075478, + "y": -7.301226763588364, + "z": 24.893353631611294 + }, + "state": [ + -7.045469781075478, + -7.301226763588364, + 24.893353631611294 + ], + "step": 75, + "time": 1.875 + }, + { + "observations": { + "radius": 26.723109447973115, + "x": -7.146343720765156, + "y": -7.6945880455844184, + "z": 24.573312043796207 + }, + "state": [ + -7.146343720765156, + -7.6945880455844184, + 24.573312043796207 + ], + "step": 76, + "time": 1.9 + }, + { + "observations": { + "radius": 26.71591393938977, + "x": -7.317724621501608, + "y": -8.136023573590814, + "z": 24.372034884078197 + }, + "state": [ + -7.317724621501608, + -8.136023573590814, + 24.372034884078197 + ], + "step": 77, + "time": 1.925 + }, + { + "observations": { + "radius": 26.868457552782807, + "x": -7.552824314685399, + "y": -8.609093117855629, + "z": 24.30539799767285 + }, + "state": [ + -7.552824314685399, + -8.609093117855629, + 24.30539799767285 + ], + "step": 78, + "time": 1.95 + }, + { + "observations": { + "radius": 27.181918869288403, + "x": -7.842246918335775, + "y": -9.09306705851992, + "z": 24.385897731223466 + }, + "state": [ + -7.842246918335775, + -9.09306705851992, + 24.385897731223466 + ], + "step": 79, + "time": 1.975 + }, + { + "observations": { + "radius": 27.648101989217505, + "x": -8.173502082944538, + "y": -9.56202664469398, + "z": 24.62070376233053 + }, + "state": [ + -8.173502082944538, + -9.56202664469398, + 24.62070376233053 + ], + "step": 80, + "time": 2.0 + }, + { + "observations": { + "radius": 28.247404315424607, + "x": -8.53051663046042, + "y": -9.984828484699822, + "z": 25.00898511950523 + }, + "state": [ + -8.53051663046042, + -9.984828484699822, + 25.00898511950523 + ], + "step": 81, + "time": 2.025 + }, + { + "observations": { + "radius": 28.94756763843151, + "x": -8.89339910742462, + "y": -10.326483013200793, + "z": 25.538850269260394 + }, + "state": [ + -8.89339910742462, + -10.326483013200793, + 25.538850269260394 + ], + "step": 82, + "time": 2.05 + }, + { + "observations": { + "radius": 29.70390134471967, + "x": -9.23877061224025, + "y": -10.551397950035664, + "z": 26.184630491401403 + }, + "state": [ + -9.23877061224025, + -10.551397950035664, + 26.184630491401403 + ], + "step": 83, + "time": 2.075 + }, + { + "observations": { + "radius": 30.46159174241248, + "x": -9.54096547279516, + "y": -10.628539932646845, + "z": 26.90562558701199 + }, + "state": [ + -9.54096547279516, + -10.628539932646845, + 26.90562558701199 + ], + "step": 84, + "time": 2.1 + }, + { + "observations": { + "radius": 31.16039478389735, + "x": -9.774271144083539, + "y": -10.537826905238934, + "z": 27.647568262064123 + }, + "state": [ + -9.774271144083539, + -10.537826905238934, + 27.647568262064123 + ], + "step": 85, + "time": 2.125 + }, + { + "observations": { + "radius": 31.741406854296596, + "x": -9.9160822225524, + "y": -10.276164044672514, + "z": 28.34763967198234 + }, + "state": [ + -9.9160822225524, + -10.276164044672514, + 28.34763967198234 + ], + "step": 86, + "time": 2.15 + }, + { + "observations": { + "radius": 32.15482420279932, + "x": -9.950442469219269, + "y": -9.860961482843882, + "z": 28.942751299998342 + }, + "state": [ + -9.950442469219269, + -9.860961482843882, + 28.942751299998342 + ], + "step": 87, + "time": 2.175 + }, + { + "observations": { + "radius": 32.366948069366245, + "x": -9.871103252259894, + "y": -9.329292834352245, + "z": 29.379328500140694 + }, + "state": [ + -9.871103252259894, + -9.329292834352245, + 29.379328500140694 + ], + "step": 88, + "time": 2.2 + }, + { + "observations": { + "radius": 32.36458199758893, + "x": -9.683157812675827, + "y": -8.732263597242268, + "z": 29.621785819253876 + }, + "state": [ + -9.683157812675827, + -8.732263597242268, + 29.621785819253876 + ], + "step": 89, + "time": 2.225 + }, + { + "observations": { + "radius": 32.15563193246239, + "x": -9.402644592811132, + "y": -8.12608494381626, + "z": 29.657068012923286 + }, + "state": [ + -9.402644592811132, + -8.12608494381626, + 29.657068012923286 + ], + "step": 90, + "time": 2.25 + }, + { + "observations": { + "radius": 31.765949607992887, + "x": -9.054155103577159, + "y": -7.562700099961921, + "z": 29.49412478877695 + }, + "state": [ + -9.054155103577159, + -7.562700099961921, + 29.49412478877695 + ], + "step": 91, + "time": 2.275 + }, + { + "observations": { + "radius": 31.233662360040164, + "x": -8.667126660001367, + "y": -7.082769237612615, + "z": 29.159165965562384 + }, + "state": [ + -8.667126660001367, + -7.082769237612615, + 29.159165965562384 + ], + "step": 92, + "time": 2.3 + }, + { + "observations": { + "radius": 30.602820592645376, + "x": -8.271836611933981, + "y": -6.712516074992383, + "z": 28.688873718465793 + }, + "state": [ + -8.271836611933981, + -6.712516074992383, + 28.688873718465793 + ], + "step": 93, + "time": 2.325 + }, + { + "observations": { + "radius": 29.917987412850366, + "x": -7.896027369581595, + "y": -6.464270472733741, + "z": 28.123867619330632 + }, + "state": [ + -7.896027369581595, + -6.464270472733741, + 28.123867619330632 + ], + "step": 94, + "time": 2.35 + }, + { + "observations": { + "radius": 29.220660780045655, + "x": -7.562703455758585, + "y": -6.339409674699733, + "z": 27.503898229870597 + }, + "state": [ + -7.562703455758585, + -6.339409674699733, + 27.503898229870597 + ], + "step": 95, + "time": 2.375 + }, + { + "observations": { + "radius": 28.547615842769844, + "x": -7.289189219650942, + "y": -6.33213102223114, + "z": 26.865185790233916 + }, + "state": [ + -7.289189219650942, + -6.33213102223114, + 26.865185790233916 + ], + "step": 96, + "time": 2.4 + }, + { + "observations": { + "radius": 27.93071027086964, + "x": -7.087203217696384, + "y": -6.432849554180249, + "z": 26.239561227269405 + }, + "state": [ + -7.087203217696384, + -6.432849554180249, + 26.239561227269405 + ], + "step": 97, + "time": 2.425 + }, + { + "observations": { + "radius": 27.397492236141254, + "x": -6.963557882038309, + "y": -6.630584922490744, + "z": 25.65476146914176 + }, + "state": [ + -6.963557882038309, + -6.630584922490744, + 25.65476146914176 + ], + "step": 98, + "time": 2.45 + }, + { + "observations": { + "radius": 26.971993663384577, + "x": -6.921097530610621, + "y": -6.914179859666824, + "z": 25.13525349021989 + }, + "state": [ + -6.921097530610621, + -6.914179859666824, + 25.13525349021989 + ], + "step": 99, + "time": 2.475 + }, + { + "observations": { + "radius": 26.675243681006616, + "x": -6.959573922931613, + "y": -7.2724715801512785, + "z": 24.703119506819895 + }, + "state": [ + -6.959573922931613, + -7.2724715801512785, + 24.703119506819895 + ], + "step": 100, + "time": 2.5 + }, + { + "observations": { + "radius": 26.525200906682876, + "x": -7.076267755788493, + "y": -7.693648841546638, + "z": 24.378689162693846 + }, + "state": [ + -7.076267755788493, + -7.693648841546638, + 24.378689162693846 + ], + "step": 101, + "time": 2.525 + }, + { + "observations": { + "radius": 26.53594735147333, + "x": -7.266261178624019, + "y": -8.164049733161681, + "z": 24.180699788853268 + }, + "state": [ + -7.266261178624019, + -8.164049733161681, + 24.180699788853268 + ], + "step": 102, + "time": 2.55 + }, + { + "observations": { + "radius": 26.71612327269738, + "x": -7.522345102256397, + "y": -8.66666453361238, + "z": 24.12580553569864 + }, + "state": [ + -7.522345102256397, + -8.66666453361238, + 24.12580553569864 + ], + "step": 103, + "time": 2.575 + }, + { + "observations": { + "radius": 27.066735995701876, + "x": -7.834611128838845, + "y": -9.17965451890097, + "z": 24.227278196993552 + }, + "state": [ + -7.834611128838845, + -9.17965451890097, + 24.227278196993552 + ], + "step": 104, + "time": 2.6 + }, + { + "observations": { + "radius": 27.57865859149509, + "x": -8.189846806393428, + "y": -9.67530079659017, + "z": 24.49280248337366 + }, + "state": [ + -8.189846806393428, + -9.67530079659017, + 24.49280248337366 + ], + "step": 105, + "time": 2.625 + }, + { + "observations": { + "radius": 28.230332453178843, + "x": -8.570933787850898, + "y": -10.11993391974379, + "z": 24.921430574533588 + }, + "state": [ + -8.570933787850898, + -10.11993391974379, + 24.921430574533588 + ], + "step": 106, + "time": 2.65 + }, + { + "observations": { + "radius": 28.986364320020872, + "x": -8.956538378867222, + "y": -10.475483096790201, + "z": 25.50007824791368 + }, + "state": [ + -8.956538378867222, + -10.475483096790201, + 25.50007824791368 + ], + "step": 107, + "time": 2.675 + }, + { + "observations": { + "radius": 29.797800284294514, + "x": -9.321454241554527, + "y": -10.70317748411726, + "z": 26.200408095081126 + }, + "state": [ + -9.321454241554527, + -10.70317748411726, + 26.200408095081126 + ], + "step": 108, + "time": 2.7 + }, + { + "observations": { + "radius": 30.60477575602977, + "x": -9.637949089572905, + "y": -10.76946264468687, + "z": 26.977414827376666 + }, + "state": [ + -9.637949089572905, + -10.76946264468687, + 26.977414827376666 + ], + "step": 109, + "time": 2.725 + }, + { + "observations": { + "radius": 31.34186984026927, + "x": -9.878307293878324, + "y": -10.65330433912091, + "z": 27.77118932905392 + }, + "state": [ + -9.878307293878324, + -10.65330433912091, + 27.77118932905392 + ], + "step": 110, + "time": 2.75 + }, + { + "observations": { + "radius": 31.945781384133774, + "x": -10.018410108171473, + "y": -10.352974431293584, + "z": 28.512809885599438 + }, + "state": [ + -10.018410108171473, + -10.352974431293584, + 28.512809885599438 + ], + "step": 111, + "time": 2.775 + }, + { + "observations": { + "radius": 32.36401725931872, + "x": -10.041717642801133, + "y": -9.889757846483958, + "z": 29.13393570531873 + }, + "state": [ + -10.041717642801133, + -9.889757846483958, + 29.13393570531873 + ], + "step": 112, + "time": 2.8 + }, + { + "observations": { + "radius": 32.562537109061346, + "x": -9.942620114340738, + "y": -9.306487717206178, + "z": 29.57790416189752 + }, + "state": [ + -9.942620114340738, + -9.306487717206178, + 29.57790416189752 + ], + "step": 113, + "time": 2.825 + }, + { + "observations": { + "radius": 32.530232259586725, + "x": -9.728075724589921, + "y": -8.660596357280443, + "z": 29.808968856630415 + }, + "state": [ + -9.728075724589921, + -8.660596357280443, + 29.808968856630415 + ], + "step": 114, + "time": 2.85 + }, + { + "observations": { + "radius": 32.278986814812924, + "x": -9.416892026997756, + "y": -8.013678471010074, + "z": 29.816708264092508 + }, + "state": [ + -9.416892026997756, + -8.013678471010074, + 29.816708264092508 + ], + "step": 115, + "time": 2.875 + }, + { + "observations": { + "radius": 31.839560921283642, + "x": -9.036786706226188, + "y": -7.421023512156168, + "z": 29.614566276046173 + }, + "state": [ + -9.036786706226188, + -7.421023512156168, + 29.614566276046173 + ], + "step": 116, + "time": 2.9 + }, + { + "observations": { + "radius": 31.254899945467578, + "x": -8.620099153227354, + "y": -6.9242858513970695, + "z": 29.233831884271698 + }, + "state": [ + -8.620099153227354, + -6.9242858513970695, + 29.233831884271698 + ], + "step": 117, + "time": 2.925 + }, + { + "observations": { + "radius": 30.57303077024456, + "x": -8.199350890640888, + "y": -6.5487458007106545, + "z": 28.715758459217856 + }, + "state": [ + -8.199350890640888, + -6.5487458007106545, + 28.715758459217856 + ], + "step": 118, + "time": 2.95 + }, + { + "observations": { + "radius": 29.841323050472933, + "x": -7.803676821291759, + "y": -6.304655847941839, + "z": 28.10442143347793 + }, + "state": [ + -7.803676821291759, + -6.304655847941839, + 28.10442143347793 + ], + "step": 119, + "time": 2.975 + }, + { + "observations": { + "radius": 29.10296649863941, + "x": -7.456656140052353, + "y": -6.1909955563947126, + "z": 27.441802277741314 + }, + "state": [ + -7.456656140052353, + -6.1909955563947126, + 27.441802277741314 + ], + "step": 120, + "time": 3.0 + }, + { + "observations": { + "radius": 28.39560141467765, + "x": -7.1755529727246605, + "y": -6.199830452906638, + "z": 26.765345534703584 + }, + "state": [ + -7.1755529727246605, + -6.199830452906638, + 26.765345534703584 + ], + "step": 121, + "time": 3.025 + }, + { + "observations": { + "radius": 27.751483635914155, + "x": -6.971629108221167, + "y": -6.3200049891430465, + "z": 26.107446610287674 + }, + "state": [ + -6.971629108221167, + -6.3200049891430465, + 26.107446610287674 + ], + "step": 122, + "time": 3.05 + }, + { + "observations": { + "radius": 27.198409723455484, + "x": -6.851065635458673, + "y": -6.539584442372564, + "z": 25.49608257094948 + }, + "state": [ + -6.851065635458673, + -6.539584442372564, + 25.49608257094948 + ], + "step": 123, + "time": 3.075 + }, + { + "observations": { + "radius": 26.76073039880595, + "x": -6.816066284198338, + "y": -6.846974613139283, + "z": 24.95589851185522 + }, + "state": [ + -6.816066284198338, + -6.846974613139283, + 24.95589851185522 + ], + "step": 124, + "time": 3.1 + }, + { + "observations": { + "radius": 26.459971528123205, + "x": -6.865830243468916, + "y": -7.230915086325759, + "z": 24.509270396144082 + }, + "state": [ + -6.865830243468916, + -7.230915086325759, + 24.509270396144082 + ], + "step": 125, + "time": 3.125 + }, + { + "observations": { + "radius": 26.31476334816912, + "x": -6.997204749698366, + "y": -7.679623071726046, + "z": 24.177040456539682 + }, + "state": [ + -6.997204749698366, + -7.679623071726046, + 24.177040456539682 + ], + "step": 126, + "time": 3.15 + }, + { + "observations": { + "radius": 26.339925977822563, + "x": -7.204933235626293, + "y": -8.179362219114747, + "z": 23.97871287779763 + }, + "state": [ + -7.204933235626293, + -8.179362219114747, + 23.97871287779763 + ], + "step": 127, + "time": 3.175 + }, + { + "observations": { + "radius": 26.544697696785065, + "x": -7.481491445862453, + "y": -8.712707460950874, + "z": 23.931924081842734 + }, + "state": [ + -7.481491445862453, + -8.712707460950874, + 23.931924081842734 + ], + "step": 128, + "time": 3.2 + }, + { + "observations": { + "radius": 26.930255970351663, + "x": -7.816571472263985, + "y": -9.256828626243868, + "z": 24.05100872795156 + }, + "state": [ + -7.816571472263985, + -9.256828626243868, + 24.05100872795156 + ], + "step": 129, + "time": 3.225 + }, + { + "observations": { + "radius": 27.486881400141506, + "x": -8.196344199756934, + "y": -9.782241186558794, + "z": 24.344534257868823 + }, + "state": [ + -8.196344199756934, + -9.782241186558794, + 24.344534257868823 + ], + "step": 130, + "time": 3.25 + }, + { + "observations": { + "radius": 28.191339233371274, + "x": -8.602720842009994, + "y": -10.252645309804482, + "z": 24.811853337403264 + }, + "state": [ + -8.602720842009994, + -10.252645309804482, + 24.811853337403264 + ], + "step": 131, + "time": 3.275 + }, + { + "observations": { + "radius": 29.005254792621333, + "x": -9.012939901138624, + "y": -10.626599250125812, + "z": 25.4390862316352 + }, + "state": [ + -9.012939901138624, + -10.626599250125812, + 25.4390862316352 + ], + "step": 132, + "time": 3.3 + }, + { + "observations": { + "radius": 29.875373729582765, + "x": -9.399892021930249, + "y": -10.861669676778236, + "z": 26.195498034793157 + }, + "state": [ + -9.399892021930249, + -10.861669676778236, + 26.195498034793157 + ], + "step": 133, + "time": 3.325 + }, + { + "observations": { + "radius": 30.73651327295447, + "x": -9.733594921487041, + "y": -10.92116257633777, + "z": 27.031806933020725 + }, + "state": [ + -9.733594921487041, + -10.92116257633777, + 27.031806933020725 + ], + "step": 134, + "time": 3.35 + }, + { + "observations": { + "radius": 31.51759152634774, + "x": -9.9840475500014, + "y": -10.782475203755256, + "z": 27.88217349170292 + }, + "state": [ + -9.9840475500014, + -10.782475203755256, + 27.88217349170292 + ], + "step": 135, + "time": 3.375 + }, + { + "observations": { + "radius": 32.150287659841716, + "x": -10.125279086252778, + "y": -10.444810582582756, + "z": 28.670989727074826 + }, + "state": [ + -10.125279086252778, + -10.444810582582756, + 28.670989727074826 + ], + "step": 136, + "time": 3.4 + }, + { + "observations": { + "radius": 32.57879181520513, + "x": -10.139841173850982, + "y": -9.933214162803054, + "z": 29.3239245924457 + }, + "state": [ + -10.139841173850982, + -9.933214162803054, + 29.3239245924457 + ], + "step": 137, + "time": 3.425 + }, + { + "observations": { + "radius": 32.768227023321536, + "x": -10.022525291962367, + "y": -9.296510235764364, + "z": 29.78054039906333 + }, + "state": [ + -10.022525291962367, + -9.296510235764364, + 29.78054039906333 + ], + "step": 138, + "time": 3.45 + }, + { + "observations": { + "radius": 32.7092970056544, + "x": -9.782051075466132, + "y": -8.598923995459204, + "z": 30.004467891989016 + }, + "state": [ + -9.782051075466132, + -8.598923995459204, + 30.004467891989016 + ], + "step": 139, + "time": 3.475 + }, + { + "observations": { + "radius": 32.417810837709524, + "x": -9.440026706878909, + "y": -7.907949883628578, + "z": 29.98774222779949 + }, + "state": [ + -9.440026706878909, + -7.907949883628578, + 29.98774222779949 + ], + "step": 140, + "time": 3.5 + }, + { + "observations": { + "radius": 31.929538783872115, + "x": -9.027424705655418, + "y": -7.28263307317928, + "z": 29.74834962911306 + }, + "state": [ + -9.027424705655418, + -7.28263307317928, + 29.74834962911306 + ], + "step": 141, + "time": 3.525 + }, + { + "observations": { + "radius": 31.292407822641884, + "x": -8.57965758345052, + "y": -6.765858268235491, + "z": 29.322814069993836 + }, + "state": [ + -8.57965758345052, + -6.765858268235491, + 29.322814069993836 + ], + "step": 142, + "time": 3.55 + }, + { + "observations": { + "radius": 30.558572885946333, + "x": -8.131658093714709, + "y": -6.38204575419018, + "z": 28.757120952279653 + }, + "state": [ + -8.131658093714709, + -6.38204575419018, + 28.757120952279653 + ], + "step": 143, + "time": 3.575 + }, + { + "observations": { + "radius": 29.778314744073075, + "x": -7.71409028335527, + "y": -6.139363078636458, + "z": 28.098915656765104 + }, + "state": [ + -7.71409028335527, + -6.139363078636458, + 28.098915656765104 + ], + "step": 144, + "time": 3.6 + }, + { + "observations": { + "radius": 28.996571652914717, + "x": -7.35120848156753, + "y": -6.034354600529358, + "z": 27.39247097357625 + }, + "state": [ + -7.35120848156753, + -6.034354600529358, + 27.39247097357625 + ], + "step": 145, + "time": 3.625 + }, + { + "observations": { + "radius": 28.25187569709034, + "x": -7.06028707739682, + "y": -6.0569262267504245, + "z": 26.676477868569723 + }, + "state": [ + -7.06028707739682, + -6.0569262267504245, + 26.676477868569723 + ], + "step": 146, + "time": 3.65 + }, + { + "observations": { + "radius": 27.576900051986758, + "x": -6.8521831120012155, + "y": -6.194353506610223, + "z": 25.983898624186832 + }, + "state": [ + -6.8521831120012155, + -6.194353506610223, + 25.983898624186832 + ], + "step": 147, + "time": 3.675 + }, + { + "observations": { + "radius": 26.99972392923084, + "x": -6.732491192372012, + "y": -6.433786572429227, + "z": 25.342948623625922 + }, + "state": [ + -6.732491192372012, + -6.433786572429227, + 25.342948623625922 + ], + "step": 148, + "time": 3.7 + }, + { + "observations": { + "radius": 26.545087088522283, + "x": -6.702823215036872, + "y": -6.763275239423815, + "z": 24.778456721938756 + }, + "state": [ + -6.702823215036872, + -6.763275239423815, + 24.778456721938756 + ], + "step": 149, + "time": 3.725 + }, + { + "observations": { + "radius": 26.235139363548377, + "x": -6.761886323239762, + "y": -7.171586850744397, + "z": 24.313119355990064 + }, + "state": [ + -6.761886323239762, + -7.171586850744397, + 24.313119355990064 + ], + "step": 150, + "time": 3.75 + }, + { + "observations": { + "radius": 26.089386582704275, + "x": -6.90617478473815, + "y": -7.647137920832134, + "z": 23.96835671722632 + }, + "state": [ + -6.90617478473815, + -7.647137920832134, + 23.96835671722632 + ], + "step": 151, + "time": 3.775 + }, + { + "observations": { + "radius": 26.12368226017831, + "x": -7.130198362024334, + "y": -8.176328522927735, + "z": 23.76456812218768 + }, + "state": [ + -7.130198362024334, + -8.176328522927735, + 23.76456812218768 + ], + "step": 152, + "time": 3.8 + }, + { + "observations": { + "radius": 26.3482525942755, + "x": -7.426249255747967, + "y": -8.74155130007637, + "z": 23.720592691401738 + }, + "state": [ + -7.426249255747967, + -8.74155130007637, + 23.720592691401738 + ], + "step": 153, + "time": 3.825 + }, + { + "observations": { + "radius": 26.764913074464282, + "x": -7.783773182968465, + "y": -9.319202182828537, + "z": 23.852167985222934 + }, + "state": [ + -7.783773182968465, + -9.319202182828537, + 23.852167985222934 + ], + "step": 154, + "time": 3.85 + }, + { + "observations": { + "radius": 27.36385604525742, + "x": -8.188484094382947, + "y": -9.878170345449966, + "z": 24.16921795441221 + }, + "state": [ + -8.188484094382947, + -9.878170345449966, + 24.16921795441221 + ], + "step": 155, + "time": 3.875 + }, + { + "observations": { + "radius": 28.120639820656486, + "x": -8.62146110961045, + "y": -10.37950252420277, + "z": 24.671982482334776 + }, + "state": [ + -8.62146110961045, + -10.37950252420277, + 24.671982482334776 + ], + "step": 156, + "time": 3.9 + }, + { + "observations": { + "radius": 28.99424683744825, + "x": -9.058589990631859, + "y": -10.778112680264739, + "z": 25.3464116612987 + }, + "state": [ + -9.058589990631859, + -10.778112680264739, + 25.3464116612987 + ], + "step": 157, + "time": 3.925 + }, + { + "observations": { + "radius": 29.927223761068404, + "x": -9.47082197721528, + "y": -11.027330189675975, + "z": 26.159897591711136 + }, + "state": [ + -9.47082197721528, + -11.027330189675975, + 26.159897591711136 + ], + "step": 158, + "time": 3.95 + }, + { + "observations": { + "radius": 30.848848210835307, + "x": -9.825737100603385, + "y": -11.086480674180578, + "z": 27.059125496327546 + }, + "state": [ + -9.825737100603385, + -11.086480674180578, + 27.059125496327546 + ], + "step": 159, + "time": 3.975 + }, + { + "observations": { + "radius": 31.68180777077979, + "x": -10.090699900932309, + "y": -10.930442554039915, + "z": 27.972131572456195 + }, + "state": [ + -10.090699900932309, + -10.930442554039915, + 27.972131572456195 + ], + "step": 160, + "time": 4.0 + }, + { + "observations": { + "radius": 32.35191690960777, + "x": -10.237417019479919, + "y": -10.558543046159107, + "z": 28.815950257415306 + }, + "state": [ + -10.237417019479919, + -10.558543046159107, + 28.815950257415306 + ], + "step": 161, + "time": 4.025 + }, + { + "observations": { + "radius": 32.79909521247117, + "x": -10.247028532535168, + "y": -9.999177133360512, + "z": 29.509244478058736 + }, + "state": [ + -10.247028532535168, + -9.999177133360512, + 29.509244478058736 + ], + "step": 162, + "time": 4.05 + }, + { + "observations": { + "radius": 32.9867787464015, + "x": -10.114303550730023, + "y": -9.307265333395929, + "z": 29.986717855769108 + }, + "state": [ + -10.114303550730023, + -9.307265333395929, + 29.986717855769108 + ], + "step": 163, + "time": 4.075 + }, + { + "observations": { + "radius": 32.90690702529227, + "x": -9.84946974323705, + "y": -8.554367450399557, + "z": 30.21051593852432 + }, + "state": [ + -9.84946974323705, + -8.554367450399557, + 30.21051593852432 + ], + "step": 164, + "time": 4.1 + }, + { + "observations": { + "radius": 32.57897580048552, + "x": -9.476887391575822, + "y": -7.814625436557554, + "z": 30.17465656577255 + }, + "state": [ + -9.476887391575822, + -7.814625436557554, + 30.17465656577255 + ], + "step": 165, + "time": 4.125 + }, + { + "observations": { + "radius": 32.043812918583036, + "x": -9.030910042518931, + "y": -7.151542636431726, + "z": 29.901572669081787 + }, + "state": [ + -9.030910042518931, + -7.151542636431726, + 29.901572669081787 + ], + "step": 166, + "time": 4.15 + }, + { + "observations": { + "radius": 31.354541662079637, + "x": -8.550255515088995, + "y": -6.60973394669646, + "z": 29.433175680168567 + }, + "state": [ + -8.550255515088995, + -6.60973394669646, + 29.433175680168567 + ], + "step": 167, + "time": 4.175 + }, + { + "observations": { + "radius": 30.567705515544468, + "x": -8.072531383271544, + "y": -6.213023338031179, + "z": 28.82043022843732 + }, + "state": [ + -8.072531383271544, + -6.213023338031179, + 28.82043022843732 + ], + "step": 168, + "time": 4.2 + }, + { + "observations": { + "radius": 29.736721513171723, + "x": -7.630172073723411, + "y": -5.9675731409727915, + "z": 28.11478527900296 + }, + "state": [ + -7.630172073723411, + -5.9675731409727915, + 28.11478527900296 + ], + "step": 169, + "time": 4.225 + }, + { + "observations": { + "radius": 28.90843375447588, + "x": -7.24829891480486, + "y": -5.867467031965129, + "z": 27.362977462391797 + }, + "state": [ + -7.24829891480486, + -5.867467031965129, + 27.362977462391797 + ], + "step": 170, + "time": 4.25 + }, + { + "observations": { + "radius": 28.122358920290516, + "x": -6.944335140616196, + "y": -5.90038969911665, + "z": 26.605049935961496 + }, + "state": [ + -6.944335140616196, + -5.90038969911665, + 26.605049935961496 + ], + "step": 171, + "time": 4.275 + }, + { + "observations": { + "radius": 27.411638488313823, + "x": -6.728827874217512, + "y": -6.051997203656868, + "z": 25.874584632416624 + }, + "state": [ + -6.728827874217512, + -6.051997203656868, + 25.874584632416624 + ], + "step": 172, + "time": 4.3 + }, + { + "observations": { + "radius": 26.80467343101266, + "x": -6.606852274232167, + "y": -6.308513944503335, + "z": 25.200053027359214 + }, + "state": [ + -6.606852274232167, + -6.308513944503335, + 25.200053027359214 + ], + "step": 173, + "time": 4.325 + }, + { + "observations": { + "radius": 26.326653397104675, + "x": -6.579484408947475, + "y": -6.657680967916941, + "z": 24.60646963977435 + }, + "state": [ + -6.579484408947475, + -6.657680967916941, + 24.60646963977435 + ], + "step": 174, + "time": 4.35 + }, + { + "observations": { + "radius": 26.00047030838009, + "x": -6.64500158715167, + "y": -7.088410685445725, + "z": 24.11685808968833 + }, + "state": [ + -6.64500158715167, + -7.088410685445725, + 24.11685808968833 + ], + "step": 175, + "time": 4.375 + }, + { + "observations": { + "radius": 25.84671714365936, + "x": -6.799628150592345, + "y": -7.589513812632404, + "z": 23.75325502338298 + }, + "state": [ + -6.799628150592345, + -7.589513812632404, + 23.75325502338298 + ], + "step": 176, + "time": 4.4 + }, + { + "observations": { + "radius": 25.88261773479016, + "x": -7.0377571526945575, + "y": -8.147799302958104, + "z": 23.537061022644394 + }, + "state": [ + -7.0377571526945575, + -8.147799302958104, + 23.537061022644394 + ], + "step": 177, + "time": 4.425 + }, + { + "observations": { + "radius": 26.119867084926153, + "x": -7.3516561962993165, + "y": -8.7458122505109, + "z": 23.48853711461052 + }, + "state": [ + -7.3516561962993165, + -8.7458122505109, + 23.48853711461052 + ], + "step": 178, + "time": 4.45 + }, + { + "observations": { + "radius": 26.561537983873773, + "x": -7.730725977384777, + "y": -9.359530412528214, + "z": 23.62520616604894 + }, + "state": [ + -7.730725977384777, + -9.359530412528214, + 23.62520616604894 + ], + "step": 179, + "time": 4.475 + }, + { + "observations": { + "radius": 27.198450480390587, + "x": -8.160454233086275, + "y": -9.956514881798395, + "z": 23.95893375449939 + }, + "state": [ + -8.160454233086275, + -9.956514881798395, + 23.95893375449939 + ], + "step": 180, + "time": 4.5 + }, + { + "observations": { + "radius": 28.00568349044336, + "x": -8.621315710614141, + "y": -10.495280023529135, + "z": 24.49163776501114 + }, + "state": [ + -8.621315710614141, + -10.495280023529135, + 24.49163776501114 + ], + "step": 181, + "time": 4.525 + }, + { + "observations": { + "radius": 28.940185516963286, + "x": -9.088013264657492, + "y": -10.926895355749194, + "z": 25.210024009154925 + }, + "state": [ + -9.088013264657492, + -10.926895355749194, + 25.210024009154925 + ], + "step": 182, + "time": 4.55 + }, + { + "observations": { + "radius": 29.940633547133846, + "x": -9.529597487907484, + "y": -11.199811487223648, + "z": 26.080500983931987 + }, + "state": [ + -9.529597487907484, + -11.199811487223648, + 26.080500983931987 + ], + "step": 183, + "time": 4.575 + }, + { + "observations": { + "radius": 30.930659178184293, + "x": -9.911044903642296, + "y": -11.268274060217891, + "z": 27.046309652497936 + }, + "state": [ + -9.911044903642296, + -11.268274060217891, + 27.046309652497936 + ], + "step": 184, + "time": 4.6 + }, + { + "observations": { + "radius": 31.826088944110484, + "x": -10.19667442763836, + "y": -11.103246727089783, + "z": 28.02937174131 + }, + "state": [ + -10.19667442763836, + -11.103246727089783, + 28.02937174131 + ], + "step": 185, + "time": 4.625 + }, + { + "observations": { + "radius": 32.54576159852036, + "x": -10.355239191478608, + "y": -10.702834725322003, + "z": 28.938641090373082 + }, + "state": [ + -10.355239191478608, + -10.702834725322003, + 28.938641090373082 + ], + "step": 186, + "time": 4.65 + }, + { + "observations": { + "radius": 33.023938625102446, + "x": -10.365724939071697, + "y": -10.097901141008933, + "z": 29.68441782060835 + }, + "state": [ + -10.365724939071697, + -10.097901141008933, + 29.68441782060835 + ], + "step": 187, + "time": 4.675 + }, + { + "observations": { + "radius": 33.22101633178043, + "x": -10.222188241687048, + "y": -9.349329160301496, + "z": 30.194914106853716 + }, + "state": [ + -10.222188241687048, + -9.349329160301496, + 30.194914106853716 + ], + "step": 188, + "time": 4.7 + }, + { + "observations": { + "radius": 33.12915150915925, + "x": -9.93588637905735, + "y": -8.536620260075043, + "z": 30.429343668810333 + }, + "state": [ + -9.93588637905735, + -8.536620260075043, + 30.429343668810333 + ], + "step": 189, + "time": 4.725 + }, + { + "observations": { + "radius": 32.77100573110788, + "x": -9.533752551735411, + "y": -7.741625568398158, + "z": 30.38278480438072 + }, + "state": [ + -9.533752551735411, + -7.741625568398158, + 30.38278480438072 + ], + "step": 190, + "time": 4.75 + }, + { + "observations": { + "radius": 32.19242314405438, + "x": -9.053630948186308, + "y": -7.033431330361134, + "z": 30.08180044912514 + }, + "state": [ + -9.053630948186308, + -7.033431330361134, + 30.08180044912514 + ], + "step": 191, + "time": 4.775 + }, + { + "observations": { + "radius": 31.452008109051423, + "x": -8.53785514698094, + "y": -6.459268332785365, + "z": 29.573834654743095 + }, + "state": [ + -8.53785514698094, + -6.459268332785365, + 29.573834654743095 + ], + "step": 192, + "time": 4.8 + }, + { + "observations": { + "radius": 30.611111120905978, + "x": -8.027104603184704, + "y": -6.04289137759625, + "z": 28.915206717998014 + }, + "state": [ + -8.027104603184704, + -6.04289137759625, + 28.915206717998014 + ], + "step": 193, + "time": 4.825 + }, + { + "observations": { + "radius": 29.7266856149286, + "x": -7.555970889607601, + "y": -5.788660181147495, + "z": 28.161579410100614 + }, + "state": [ + -7.555970889607601, + -5.788660181147495, + 28.161579410100614 + ], + "step": 194, + "time": 4.85 + }, + { + "observations": { + "radius": 28.847782783383245, + "x": -7.150761216686564, + "y": -5.6881838620605985, + "z": 27.36248800622099 + }, + "state": [ + -7.150761216686564, + -5.6881838620605985, + 27.36248800622099 + ], + "step": 195, + "time": 4.875 + }, + { + "observations": { + "radius": 28.015089072548243, + "x": -6.829279208664545, + "y": -5.726809185990487, + "z": 26.559552288774917 + }, + "state": [ + -6.829279208664545, + -5.726809185990487, + 26.559552288774917 + ], + "step": 196, + "time": 4.9 + }, + { + "observations": { + "radius": 27.262305284095216, + "x": -6.601913534491391, + "y": -5.888440895658124, + "z": 25.787095433659182 + }, + "state": [ + -6.601913534491391, + -5.888440895658124, + 25.787095433659182 + ], + "step": 197, + "time": 4.925 + }, + { + "observations": { + "radius": 26.618192342302684, + "x": -6.473312747598037, + "y": -6.1582884357261145, + "z": 25.073888194414682 + }, + "state": [ + -6.473312747598037, + -6.1582884357261145, + 25.073888194414682 + ], + "step": 198, + "time": 4.95 + }, + { + "observations": { + "radius": 26.10842474580709, + "x": -6.444078220971316, + "y": -6.523773564937602, + "z": 24.44512378906878 + }, + "state": [ + -6.444078220971316, + -6.523773564937602, + 24.44512378906878 + ], + "step": 199, + "time": 4.975 + }, + { + "observations": { + "radius": 25.756722783056762, + "x": -6.51211416869458, + "y": -6.97404555841202, + "z": 23.924126444372344 + }, + "state": [ + -6.51211416869458, + -6.97404555841202, + 23.924126444372344 + ], + "step": 200, + "time": 5.0 + }, + { + "observations": { + "radius": 25.5849617059145, + "x": -6.673452889042133, + "y": -7.4985198607162085, + "z": 23.533539723749403 + }, + "state": [ + -6.673452889042133, + -7.4985198607162085, + 23.533539723749403 + ], + "step": 201, + "time": 5.025 + }, + { + "observations": { + "radius": 25.61209515604462, + "x": -6.922492593405079, + "y": -8.084751956898135, + "z": 23.295821521722903 + }, + "state": [ + -6.922492593405079, + -8.084751956898135, + 23.295821521722903 + ], + "step": 202, + "time": 5.05 + }, + { + "observations": { + "radius": 25.851853335879795, + "x": -7.251659982366167, + "y": -8.715896507326672, + "z": 23.23284090406421 + }, + "state": [ + -7.251659982366167, + -8.715896507326672, + 23.23284090406421 + ], + "step": 203, + "time": 5.075 + }, + { + "observations": { + "radius": 26.309353807742845, + "x": -7.650565327124393, + "y": -9.368050785968935, + "z": 23.364301239880934 + }, + "state": [ + -7.650565327124393, + -9.368050785968935, + 23.364301239880934 + ], + "step": 204, + "time": 5.1 + }, + { + "observations": { + "radius": 26.977020060906735, + "x": -8.104788554353506, + "y": -10.007976012356174, + "z": 23.70469215138404 + }, + "state": [ + -8.104788554353506, + -10.007976012356174, + 23.70469215138404 + ], + "step": 205, + "time": 5.125 + }, + { + "observations": { + "radius": 27.830521399224573, + "x": -8.594549050171137, + "y": -10.592015555430084, + "z": 24.25862433136773 + }, + "state": [ + -8.594549050171137, + -10.592015555430084, + 24.25862433136773 + ], + "step": 206, + "time": 5.15 + }, + { + "observations": { + "radius": 28.825770079368997, + "x": -9.09367877738014, + "y": -11.067371763803195, + "z": 25.0148617666427 + }, + "state": [ + -9.09367877738014, + -11.067371763803195, + 25.0148617666427 + ], + "step": 207, + "time": 5.175 + }, + { + "observations": { + "radius": 29.89826937632697, + "x": -9.569499078244997, + "y": -11.376985133717355, + "z": 25.94022760806184 + }, + "state": [ + -9.569499078244997, + -11.376985133717355, + 25.94022760806184 + ], + "step": 208, + "time": 5.2 + }, + { + "observations": { + "radius": 30.966144380384634, + "x": -9.984293369852036, + "y": -11.468663340797121, + "z": 26.97565096280369 + }, + "state": [ + -9.984293369852036, + -11.468663340797121, + 26.97565096280369 + ], + "step": 209, + "time": 5.225 + }, + { + "observations": { + "radius": 31.93774857477419, + "x": -10.298890532930303, + "y": -11.307497812820309, + "z": 28.037352425456888 + }, + "state": [ + -10.298890532930303, + -11.307497812820309, + 28.037352425456888 + ], + "step": 210, + "time": 5.25 + }, + { + "observations": { + "radius": 32.723556590798054, + "x": -10.478282096010108, + "y": -10.888256584421843, + "z": 29.025551309482328 + }, + "state": [ + -10.478282096010108, + -10.888256584421843, + 29.025551309482328 + ], + "step": 211, + "time": 5.275 + }, + { + "observations": { + "radius": 33.25023068728104, + "x": -10.498246139625893, + "y": -10.242642124809905, + "z": 29.84045829159307 + }, + "state": [ + -10.498246139625893, + -10.242642124809905, + 29.84045829159307 + ], + "step": 212, + "time": 5.3 + }, + { + "observations": { + "radius": 33.473071312280304, + "x": -10.35105826049174, + "y": -9.436908463027311, + "z": 30.4014284964597 + }, + "state": [ + -10.35105826049174, + -9.436908463027311, + 30.4014284964597 + ], + "step": 213, + "time": 5.325 + }, + { + "observations": { + "radius": 33.382771102109174, + "x": -10.048181168201829, + "y": -8.559094108977362, + "z": 30.66244233097681 + }, + "state": [ + -10.048181168201829, + -8.559094108977362, + 30.66244233097681 + ], + "step": 214, + "time": 5.35 + }, + { + "observations": { + "radius": 33.00418285060031, + "x": -9.6187193263243, + "y": -7.700214083373752, + "z": 30.61801801598966 + }, + "state": [ + -9.6187193263243, + -7.700214083373752, + 30.61801801598966 + ], + "step": 215, + "time": 5.375 + }, + { + "observations": { + "radius": 32.387953698731025, + "x": -9.104058776010527, + "y": -6.936660489719295, + "z": 30.298158357307088 + }, + "state": [ + -9.104058776010527, + -6.936660489719295, + 30.298158357307088 + ], + "step": 216, + "time": 5.4 + }, + { + "observations": { + "radius": 31.59852792627236, + "x": -8.550547329338162, + "y": -6.319740789406998, + "z": 29.75594031165656 + }, + "state": [ + -8.550547329338162, + -6.319740789406998, + 29.75594031165656 + ], + "step": 217, + "time": 5.425 + }, + { + "observations": { + "radius": 30.702699561762635, + "x": -8.002510863169254, + "y": -5.87407148847022, + "z": 29.053586085250455 + }, + "state": [ + -8.002510863169254, + -5.87407148847022, + 29.053586085250455 + ], + "step": 218, + "time": 5.45 + }, + { + "observations": { + "radius": 29.761612051774968, + "x": -7.497288334729262, + "y": -5.602607566024456, + "z": 28.251637262421006 + }, + "state": [ + -7.497288334729262, + -5.602607566024456, + 28.251637262421006 + ], + "step": 219, + "time": 5.475 + }, + { + "observations": { + "radius": 28.82703790261573, + "x": -7.0628726766420105, + "y": -5.494495448717155, + "z": 27.40300099544599 + }, + "state": [ + -7.0628726766420105, + -5.494495448717155, + 27.40300099544599 + ], + "step": 220, + "time": 5.5 + }, + { + "observations": { + "radius": 27.941156535303286, + "x": -6.7178130023620195, + "y": -5.532550067484937, + "z": 26.551273166204098 + }, + "state": [ + -6.7178130023620195, + -5.532550067484937, + 26.551273166204098 + ], + "step": 221, + "time": 5.525 + }, + { + "observations": { + "radius": 27.138379761479776, + "x": -6.472571930410012, + "y": -5.698673076678261, + "z": 25.73174292287846 + }, + "state": [ + -6.472571930410012, + -5.698673076678261, + 25.73174292287846 + ], + "step": 222, + "time": 5.55 + }, + { + "observations": { + "radius": 26.447863761564523, + "x": -6.331500269904789, + "y": -5.976849062590049, + "z": 24.973563565608533 + }, + "state": [ + -6.331500269904789, + -5.976849062590049, + 24.973563565608533 + ], + "step": 223, + "time": 5.575 + }, + { + "observations": { + "radius": 25.89575718481478, + "x": -6.294789475277418, + "y": -6.3540733368235225, + "z": 24.302090808551664 + }, + "state": [ + -6.294789475277418, + -6.3540733368235225, + 24.302090808551664 + ], + "step": 224, + "time": 5.6 + }, + { + "observations": { + "radius": 25.506629912796758, + "x": -6.360013134660506, + "y": -6.819765980517077, + "z": 23.740876024407903 + }, + "state": [ + -6.360013134660506, + -6.819765980517077, + 23.740876024407903 + ], + "step": 225, + "time": 5.625 + }, + { + "observations": { + "radius": 25.303777020749056, + "x": -6.5230711033202375, + "y": -7.364149933900421, + "z": 23.313085824228654 + }, + "state": [ + -6.5230711033202375, + -7.364149933900421, + 23.313085824228654 + ], + "step": 226, + "time": 5.65 + }, + { + "observations": { + "radius": 25.30822277411921, + "x": -6.778479520882307, + "y": -7.97591971513587, + "z": 23.042201719174585 + }, + "state": [ + -6.778479520882307, + -7.97591971513587, + 23.042201719174585 + ], + "step": 227, + "time": 5.675 + }, + { + "observations": { + "radius": 25.536354693129923, + "x": -7.1190216780126105, + "y": -8.639429149250121, + "z": 22.95180178845252 + }, + "state": [ + -7.1190216780126105, + -8.639429149250121, + 22.95180178845252 + ], + "step": 228, + "time": 5.7 + }, + { + "observations": { + "radius": 25.996286209929334, + "x": -7.534822315926524, + "y": -9.331656254758402, + "z": 23.06411803904511 + }, + "state": [ + -7.534822315926524, + -9.331656254758402, + 23.06411803904511 + ], + "step": 229, + "time": 5.725 + }, + { + "observations": { + "radius": 26.683317123342203, + "x": -8.011971295492357, + "y": -10.019405889974797, + "z": 23.39699199207009 + }, + "state": [ + -8.011971295492357, + -10.019405889974797, + 23.39699199207009 + ], + "step": 230, + "time": 5.75 + }, + { + "observations": { + "radius": 27.575210767229443, + "x": -8.530937145947743, + "y": -10.657588614811582, + "z": 23.95894749746854 + }, + "state": [ + -8.530937145947743, + -10.657588614811582, + 23.95894749746854 + ], + "step": 231, + "time": 5.775 + }, + { + "observations": { + "radius": 28.628383567934552, + "x": -9.065196413368476, + "y": -11.189870176662629, + "z": 24.742541606093596 + }, + "state": [ + -9.065196413368476, + -11.189870176662629, + 24.742541606093596 + ], + "step": 232, + "time": 5.8 + }, + { + "observations": { + "radius": 29.77643551764949, + "x": -9.580732985723857, + "y": -11.553232984019905, + "z": 25.717085278272794 + }, + "state": [ + -9.580732985723857, + -11.553232984019905, + 25.717085278272794 + ], + "step": 233, + "time": 5.825 + }, + { + "observations": { + "radius": 30.932600126952856, + "x": -10.037222910071183, + "y": -11.68752268628332, + "z": 26.823156419875698 + }, + "state": [ + -10.037222910071183, + -11.68752268628332, + 26.823156419875698 + ], + "step": 234, + "time": 5.85 + }, + { + "observations": { + "radius": 31.997352960394362, + "x": -10.391606751402856, + "y": -11.549362898014168, + "z": 27.972438618151084 + }, + "state": [ + -10.391606751402856, + -11.549362898014168, + 27.972438618151084 + ], + "step": 235, + "time": 5.875 + }, + { + "observations": { + "radius": 32.871210145146286, + "x": -10.60414999278184, + "y": -11.127013973799123, + "z": 29.056118449714376 + }, + "state": [ + -10.60414999278184, + -11.127013973799123, + 29.056118449714376 + ], + "step": 236, + "time": 5.9 + }, + { + "observations": { + "radius": 33.47063951562067, + "x": -10.645992699820972, + "y": -10.450208561961235, + "z": 29.96230448466036 + }, + "state": [ + -10.645992699820972, + -10.450208561961235, + 29.96230448466036 + ], + "step": 237, + "time": 5.925 + }, + { + "observations": { + "radius": 33.74282339393153, + "x": -10.506033688957324, + "y": -9.58910330042174, + "z": 30.598210480588367 + }, + "state": [ + -10.506033688957324, + -9.58910330042174, + 30.598210480588367 + ], + "step": 238, + "time": 5.95 + }, + { + "observations": { + "radius": 33.67430253324208, + "x": -10.194581344778891, + "y": -8.640626080572744, + "z": 30.90903983045617 + }, + "state": [ + -10.194581344778891, + -8.640626080572744, + 30.90903983045617 + ], + "step": 239, + "time": 5.975 + }, + { + "observations": { + "radius": 33.29038424398631, + "x": -9.742118250073739, + "y": -7.706833119434585, + "z": 30.886008780401173 + }, + "state": [ + -9.742118250073739, + -7.706833119434585, + 30.886008780401173 + ], + "step": 240, + "time": 6.0 + }, + { + "observations": { + "radius": 32.64594802566138, + "x": -9.193465304887274, + "y": -6.873973254423906, + "z": 30.561194510023377 + }, + "state": [ + -9.193465304887274, + -6.873973254423906, + 30.561194510023377 + ], + "step": 241, + "time": 6.025 + }, + { + "observations": { + "radius": 31.811669584203717, + "x": -8.599454258413342, + "y": -6.19976342096061, + "z": 29.993243267711602 + }, + "state": [ + -8.599454258413342, + -6.19976342096061, + 29.993243267711602 + ], + "step": 242, + "time": 6.05 + }, + { + "observations": { + "radius": 30.860707382304398, + "x": -8.008858322683844, + "y": -5.711264792263154, + "z": 29.251032511281547 + }, + "state": [ + -8.008858322683844, + -5.711264792263154, + 29.251032511281547 + ], + "step": 243, + "time": 6.075 + }, + { + "observations": { + "radius": 29.85941650643275, + "x": -7.462638947451852, + "y": -5.410767694758164, + "z": 28.401009964400295 + }, + "state": [ + -7.462638947451852, + -5.410767694758164, + 28.401009964400295 + ], + "step": 244, + "time": 6.1 + }, + { + "observations": { + "radius": 28.86313083162505, + "x": -6.991240038197103, + "y": -5.285043619348318, + "z": 27.500385416815522 + }, + "state": [ + -6.991240038197103, + -5.285043619348318, + 27.500385416815522 + ], + "step": 245, + "time": 6.125 + }, + { + "observations": { + "radius": 27.916067834178424, + "x": -6.614523305046264, + "y": -5.314088381562558, + "z": 26.595401659730445 + }, + "state": [ + -6.614523305046264, + -5.314088381562558, + 26.595401659730445 + ], + "step": 246, + "time": 6.15 + }, + { + "observations": { + "radius": 27.053608803692597, + "x": -6.343384287590452, + "y": -5.477378622699128, + "z": 25.722704922048592 + }, + "state": [ + -6.343384287590452, + -5.477378622699128, + 25.722704922048592 + ], + "step": 247, + "time": 6.175 + }, + { + "observations": { + "radius": 26.305348702796323, + "x": -6.1820631871681115, + "y": -5.75728133522525, + "z": 24.911988614974838 + }, + "state": [ + -6.1820631871681115, + -5.75728133522525, + 24.911988614974838 + ], + "step": 248, + "time": 6.2 + }, + { + "observations": { + "radius": 25.697834895847233, + "x": -6.13041384254331, + "y": -6.140099760160301, + "z": 24.18875605294031 + }, + "state": [ + -6.13041384254331, + -6.140099760160301, + 24.18875605294031 + ], + "step": 249, + "time": 6.225 + }, + { + "observations": { + "radius": 25.25639883265091, + "x": -6.185697158766324, + "y": -6.615444280297181, + "z": 23.576656455660622 + }, + "state": [ + -6.185697158766324, + -6.615444280297181, + 23.576656455660622 + ], + "step": 250, + "time": 6.25 + }, + { + "observations": { + "radius": 25.00577122161399, + "x": -6.343702145439293, + "y": -7.174491514466707, + "z": 23.099192821102918 + }, + "state": [ + -6.343702145439293, + -7.174491514466707, + 23.099192821102918 + ], + "step": 251, + "time": 6.275 + }, + { + "observations": { + "radius": 24.969293521934024, + "x": -6.599141814989247, + "y": -7.807485409552216, + "z": 22.780696167364727 + }, + "state": [ + -6.599141814989247, + -7.807485409552216, + 22.780696167364727 + ], + "step": 252, + "time": 6.3 + }, + { + "observations": { + "radius": 25.166615086375526, + "x": -6.945341893132508, + "y": -8.500684939143285, + "z": 22.646392570533287 + }, + "state": [ + -6.945341893132508, + -8.500684939143285, + 22.646392570533287 + ], + "step": 253, + "time": 6.325 + }, + { + "observations": { + "radius": 25.60991093559025, + "x": -7.373277508384985, + "y": -9.232955293780133, + "z": 22.721242339631576 + }, + "state": [ + -7.373277508384985, + -9.232955293780133, + 22.721242339631576 + ], + "step": 254, + "time": 6.35 + }, + { + "observations": { + "radius": 26.298926278248008, + "x": -7.870062097977963, + "y": -9.972388022451854, + "z": 23.027095411544053 + }, + "state": [ + -7.870062097977963, + -9.972388022451854, + 23.027095411544053 + ], + "step": 255, + "time": 6.375 + }, + { + "observations": { + "radius": 27.2155334183345, + "x": -8.417098367160456, + "y": -10.673747603923353, + "z": 23.577718855092133 + }, + "state": [ + -8.417098367160456, + -10.673747603923353, + 23.577718855092133 + ], + "step": 256, + "time": 6.4 + }, + { + "observations": { + "radius": 28.318913865576455, + "x": -8.988296196402322, + "y": -11.278116971050487, + "z": 24.37161241278428 + }, + "state": [ + -8.988296196402322, + -11.278116971050487, + 24.37161241278428 + ], + "step": 257, + "time": 6.425 + }, + { + "observations": { + "radius": 29.54289862843157, + "x": -9.549036212124985, + "y": -11.716586330540338, + "z": 25.383466499836164 + }, + "state": [ + -9.549036212124985, + -11.716586330540338, + 25.383466499836164 + ], + "step": 258, + "time": 6.45 + }, + { + "observations": { + "radius": 30.79729503413901, + "x": -10.056813143028728, + "y": -11.919633237695278, + "z": 26.556660827461688 + }, + "state": [ + -10.056813143028728, + -11.919633237695278, + 26.556660827461688 + ], + "step": 259, + "time": 6.475 + }, + { + "observations": { + "radius": 31.97488626356188, + "x": -10.46449785337646, + "y": -11.832251740828612, + "z": 27.800817523699838 + }, + "state": [ + -10.46449785337646, + -11.832251740828612, + 27.800817523699838 + ], + "step": 260, + "time": 6.5 + }, + { + "observations": { + "radius": 32.96468949132777, + "x": -10.7266182981238, + "y": -11.431685590801456, + "z": 28.99874096748121 + }, + "state": [ + -10.7266182981238, + -11.431685590801456, + 28.99874096748121 + ], + "step": 261, + "time": 6.525 + }, + { + "observations": { + "radius": 33.66973430565152, + "x": -10.807849626491844, + "y": -10.741076234502444, + "z": 30.02450126128515 + }, + "state": [ + -10.807849626491844, + -10.741076234502444, + 30.02450126128515 + ], + "step": 262, + "time": 6.55 + }, + { + "observations": { + "radius": 34.024796992266786, + "x": -10.691414430382192, + "y": -9.831374535439853, + "z": 30.768889199753172 + }, + "state": [ + -10.691414430382192, + -9.831374535439853, + 30.768889199753172 + ], + "step": 263, + "time": 6.575 + }, + { + "observations": { + "radius": 34.00805449826176, + "x": -10.384282567437962, + "y": -8.807939661925264, + "z": 31.16303331237557 + }, + "state": [ + -10.384282567437962, + -8.807939661925264, + 31.16303331237557 + ], + "step": 264, + "time": 6.6 + }, + { + "observations": { + "radius": 33.642220425846666, + "x": -9.916825649353115, + "y": -7.786020952874441, + "z": 31.190278003618157 + }, + "state": [ + -9.916825649353115, + -7.786020952874441, + 31.190278003618157 + ], + "step": 265, + "time": 6.625 + }, + { + "observations": { + "radius": 32.985080566095895, + "x": -9.336813549918192, + "y": -6.865360366371822, + "z": 30.882135284428635 + }, + "state": [ + -9.336813549918192, + -6.865360366371822, + 30.882135284428635 + ], + "step": 266, + "time": 6.65 + }, + { + "observations": { + "radius": 32.113805163522784, + "x": -8.700016205447564, + "y": -6.113752303200299, + "z": 30.3022809847834 + }, + "state": [ + -8.700016205447564, + -6.113752303200299, + 30.3022809847834 + ], + "step": 267, + "time": 6.675 + }, + { + "observations": { + "radius": 31.109169130799568, + "x": -8.060717788395664, + "y": -5.563383999895961, + "z": 29.527173776273205 + }, + "state": [ + -8.060717788395664, + -5.563383999895961, + 29.527173776273205 + ], + "step": 268, + "time": 6.7 + }, + { + "observations": { + "radius": 30.044292155138937, + "x": -7.464773903783295, + "y": -5.217264459984459, + "z": 28.63069669468981 + }, + "state": [ + -7.464773903783295, + -5.217264459984459, + 28.63069669468981 + ], + "step": 269, + "time": 6.725 + }, + { + "observations": { + "radius": 28.979423523604765, + "x": -6.9462440643181464, + "y": -5.0600889771060675, + "z": 27.67584110199999 + }, + "state": [ + -6.9462440643181464, + -5.0600889771060675, + 27.67584110199999 + ], + "step": 270, + "time": 6.75 + }, + { + "observations": { + "radius": 27.961740636949983, + "x": -6.527190645057458, + "y": -5.0686638702038955, + "z": 26.712606916997526 + }, + "state": [ + -6.527190645057458, + -5.0686638702038955, + 26.712606916997526 + ], + "step": 271, + "time": 6.775 + }, + { + "observations": { + "radius": 27.028059169841452, + "x": -6.219513210467258, + "y": -5.219387884174987, + "z": 25.779674707563732 + }, + "state": [ + -6.219513210467258, + -5.219387884174987, + 25.779674707563732 + ], + "step": 272, + "time": 6.8 + }, + { + "observations": { + "radius": 26.208508006817116, + "x": -6.027636290891269, + "y": -5.492344427122997, + "z": 24.907582086223833 + }, + "state": [ + -6.027636290891269, + -5.492344427122997, + 24.907582086223833 + ], + "step": 273, + "time": 6.825 + }, + { + "observations": { + "radius": 25.5298869588777, + "x": -5.951173153081177, + "y": -5.872623514257322, + "z": 24.12200156071033 + }, + "state": [ + -5.951173153081177, + -5.872623514257322, + 24.12200156071033 + ], + "step": 274, + "time": 6.85 + }, + { + "observations": { + "radius": 25.018041802018487, + "x": -5.987057791232696, + "y": -6.34973662543518, + "z": 23.44650079222039 + }, + "state": [ + -5.987057791232696, + -6.34973662543518, + 23.44650079222039 + ], + "step": 275, + "time": 6.875 + }, + { + "observations": { + "radius": 24.698943214138758, + "x": -6.130925720966104, + "y": -6.915814460022029, + "z": 22.90460774721535 + }, + "state": [ + -6.130925720966104, + -6.915814460022029, + 22.90460774721535 + ], + "step": 276, + "time": 6.9 + }, + { + "observations": { + "radius": 24.598278932885126, + "x": -6.377692398272165, + "y": -7.5629963778394185, + "z": 22.521133451090545 + }, + "state": [ + -6.377692398272165, + -7.5629963778394185, + 22.521133451090545 + ], + "step": 277, + "time": 6.925 + }, + { + "observations": { + "radius": 24.739405349335474, + "x": -6.721352781959172, + "y": -8.280201523658217, + "z": 22.32263103997346 + }, + "state": [ + -6.721352781959172, + -8.280201523658217, + 22.32263103997346 + ], + "step": 278, + "time": 6.95 + }, + { + "observations": { + "radius": 25.13960512600723, + "x": -7.15405095606697, + "y": -9.049402185431077, + "z": 22.336687778090138 + }, + "state": [ + -7.15405095606697, + -9.049402185431077, + 22.336687778090138 + ], + "step": 279, + "time": 6.975 + }, + { + "observations": { + "radius": 25.80484824608721, + "x": -7.664496442054336, + "y": -9.841661920271132, + "z": 22.589541339753044 + }, + "state": [ + -7.664496442054336, + -9.841661920271132, + 22.589541339753044 + ], + "step": 280, + "time": 7.0 + }, + { + "observations": { + "radius": 26.723650429434485, + "x": -8.235886742692335, + "y": -10.61360794976356, + "z": 23.101406626542772 + }, + "state": [ + -8.235886742692335, + -10.61360794976356, + 23.101406626542772 + ], + "step": 281, + "time": 7.025 + }, + { + "observations": { + "radius": 27.86109688633417, + "x": -8.843681263476928, + "y": -11.305674759425115, + "z": 23.879106759965385 + }, + "state": [ + -8.843681263476928, + -11.305674759425115, + 23.879106759965385 + ], + "step": 282, + "time": 7.05 + }, + { + "observations": { + "radius": 29.15459924869367, + "x": -9.453878324710196, + "y": -11.844188726883072, + "z": 24.906425584083323 + }, + "state": [ + -9.453878324710196, + -11.844188726883072, + 24.906425584083323 + ], + "step": 283, + "time": 7.075 + }, + { + "observations": { + "radius": 30.513413491004968, + "x": -10.022804649435301, + "y": -12.149601769386027, + "z": 26.13424892124574 + }, + "state": [ + -10.022804649435301, + -12.149601769386027, + 26.13424892124574 + ], + "step": 284, + "time": 7.1 + }, + { + "observations": { + "radius": 31.824100288390188, + "x": -10.499613443540952, + "y": -12.151999749212164, + "z": 27.474722542673256 + }, + "state": [ + -10.499613443540952, + -12.151999749212164, + 27.474722542673256 + ], + "step": 285, + "time": 7.125 + }, + { + "observations": { + "radius": 32.963331692927056, + "x": -10.832328669529408, + "y": -11.811691260030498, + "z": 28.80496209806463 + }, + "state": [ + -10.832328669529408, + -11.811691260030498, + 28.80496209806463 + ], + "step": 286, + "time": 7.15 + }, + { + "observations": { + "radius": 33.81712633196222, + "x": -10.977067080103176, + "y": -11.138010960672217, + "z": 29.984108182681595 + }, + "state": [ + -10.977067080103176, + -11.138010960672217, + 29.984108182681595 + ], + "step": 287, + "time": 7.175 + }, + { + "observations": { + "radius": 34.302096575837965, + "x": -10.908233814423436, + "y": -10.196659436649144, + "z": 30.881586761061644 + }, + "state": [ + -10.908233814423436, + -10.196659436649144, + 30.881586761061644 + ], + "step": 288, + "time": 7.2 + }, + { + "observations": { + "radius": 34.38160817826809, + "x": -10.62604962206254, + "y": -9.09890337602244, + "z": 31.406878350247148 + }, + "state": [ + -10.62604962206254, + -9.09890337602244, + 31.406878350247148 + ], + "step": 289, + "time": 7.225 + }, + { + "observations": { + "radius": 34.07047032542994, + "x": -10.158061450705647, + "y": -7.974960652197436, + "z": 31.527935840387535 + }, + "state": [ + -10.158061450705647, + -7.974960652197436, + 31.527935840387535 + ], + "step": 290, + "time": 7.25 + }, + { + "observations": { + "radius": 33.426465006585346, + "x": -9.553659726235393, + "y": -6.942925659217397, + "z": 31.27062410573801 + }, + "state": [ + -9.553659726235393, + -6.942925659217397, + 31.27062410573801 + ], + "step": 291, + "time": 7.275 + }, + { + "observations": { + "radius": 32.532930525167714, + "x": -8.873730177059826, + "y": -6.086352505595092, + "z": 30.701869559975716 + }, + "state": [ + -8.873730177059826, + -6.086352505595092, + 30.701869559975716 + ], + "step": 292, + "time": 7.3 + }, + { + "observations": { + "radius": 31.479779268653246, + "x": -8.179362811738564, + "y": -5.447137923954567, + "z": 29.90657478272119 + }, + "state": [ + -8.179362811738564, + -5.447137923954567, + 29.90657478272119 + ], + "step": 293, + "time": 7.325 + }, + { + "observations": { + "radius": 30.34918878753625, + "x": -7.523111624703494, + "y": -5.031657185891176, + "z": 28.96823221232937 + }, + "state": [ + -7.523111624703494, + -5.031657185891176, + 28.96823221232937 + ], + "step": 294, + "time": 7.35 + }, + { + "observations": { + "radius": 29.208502712147475, + "x": -6.944426323610946, + "y": -4.823375365930135, + "z": 27.957943840719118 + }, + "state": [ + -6.944426323610946, + -4.823375365930135, + 27.957943840719118 + ], + "step": 295, + "time": 7.375 + }, + { + "observations": { + "radius": 28.109445905797088, + "x": -6.468988041536645, + "y": -4.795549829932307, + "z": 26.9313171730984 + }, + "state": [ + -6.468988041536645, + -4.795549829932307, + 26.9313171730984 + ], + "step": 296, + "time": 7.4 + }, + { + "observations": { + "radius": 27.091148498187366, + "x": -6.110647949279492, + "y": -4.920560843787569, + "z": 25.930260113878347 + }, + "state": [ + -6.110647949279492, + -4.920560843787569, + 25.930260113878347 + ], + "step": 297, + "time": 7.425 + }, + { + "observations": { + "radius": 26.184538089440448, + "x": -5.87452398891841, + "y": -5.175141362958302, + "z": 24.986754785973666 + }, + "state": [ + -5.87452398891841, + -5.175141362958302, + 24.986754785973666 + ], + "step": 298, + "time": 7.45 + }, + { + "observations": { + "radius": 25.416486268933735, + "x": -5.760161873581471, + "y": -5.542241424486066, + "z": 24.126787383357655 + }, + "state": [ + -5.760161873581471, + -5.542241424486066, + 24.126787383357655 + ], + "step": 299, + "time": 7.475 + }, + { + "observations": { + "radius": 24.812910473852316, + "x": -5.764128679364207, + "y": -6.01062394405006, + "z": 23.37365496781265 + }, + "state": [ + -5.764128679364207, + -6.01062394405006, + 23.37365496781265 + ], + "step": 300, + "time": 7.5 + }, + { + "observations": { + "radius": 24.400507828555135, + "x": -5.881771119779389, + "y": -6.57307815048124, + "z": 22.75047679530202 + }, + "state": [ + -5.881771119779389, + -6.57307815048124, + 22.75047679530202 + ], + "step": 301, + "time": 7.525 + }, + { + "observations": { + "radius": 24.206947568334613, + "x": -6.108083838756635, + "y": -7.223768460654983, + "z": 22.281938686336684 + }, + "state": [ + -6.108083838756635, + -7.223768460654983, + 22.281938686336684 + ], + "step": 302, + "time": 7.55 + }, + { + "observations": { + "radius": 24.25934098652814, + "x": -6.437721707772589, + "y": -7.954925070609143, + "z": 21.995238835596034 + }, + "state": [ + -6.437721707772589, + -7.954925070609143, + 21.995238835596034 + ], + "step": 303, + "time": 7.575 + }, + { + "observations": { + "radius": 24.58083318997648, + "x": -6.864206350211711, + "y": -8.752922879616598, + "z": 21.919999374056715 + }, + "state": [ + -6.864206350211711, + -8.752922879616598, + 21.919999374056715 + ], + "step": 304, + "time": 7.6 + }, + { + "observations": { + "radius": 25.185354028254977, + "x": -7.3783780718310075, + "y": -9.593849519073018, + "z": 22.086639535317385 + }, + "state": [ + -7.3783780718310075, + -9.593849519073018, + 22.086639535317385 + ], + "step": 305, + "time": 7.625 + }, + { + "observations": { + "radius": 26.070953790863072, + "x": -7.966188512131591, + "y": -10.439003040662929, + "z": 22.522470727509678 + }, + "state": [ + -7.966188512131591, + -10.439003040662929, + 22.522470727509678 + ], + "step": 306, + "time": 7.65 + }, + { + "observations": { + "radius": 27.212657899743622, + "x": -8.60607812344586, + "y": -11.231444579823103, + "z": 23.244759021164057 + }, + "state": [ + -8.60607812344586, + -11.231444579823103, + 23.244759021164057 + ], + "step": 307, + "time": 7.675 + }, + { + "observations": { + "radius": 28.55633723471753, + "x": -9.26648497237399, + "y": -11.895687288056148, + "z": 24.250552085766238 + }, + "state": [ + -9.26648497237399, + -11.895687288056148, + 24.250552085766238 + ], + "step": 308, + "time": 7.7 + }, + { + "observations": { + "radius": 30.015686468659535, + "x": -9.904472257706699, + "y": -12.343392073049317, + "z": 25.504578718578607 + }, + "state": [ + -9.904472257706699, + -12.343392073049317, + 25.504578718578607 + ], + "step": 309, + "time": 7.725 + }, + { + "observations": { + "radius": 31.474905716983763, + "x": -10.466868824552286, + "y": -12.487562733878844, + "z": 26.929075807945452 + }, + "state": [ + -10.466868824552286, + -12.487562733878844, + 26.929075807945452 + ], + "step": 310, + "time": 7.75 + }, + { + "observations": { + "radius": 32.79948145372966, + "x": -10.895288560625016, + "y": -12.264914309142654, + "z": 28.401946197464312 + }, + "state": [ + -10.895288560625016, + -12.264914309142654, + 28.401946197464312 + ], + "step": 311, + "time": 7.775 + }, + { + "observations": { + "radius": 33.8555894969774, + "x": -11.135426807966816, + "y": -11.660618706578338, + "z": 29.7696688152901 + }, + "state": [ + -11.135426807966816, + -11.660618706578338, + 29.7696688152901 + ], + "step": 312, + "time": 7.8 + }, + { + "observations": { + "radius": 34.53474981710983, + "x": -11.148992619433558, + "y": -10.724246654911497, + "z": 30.87619539688792 + }, + "state": [ + -11.148992619433558, + -10.724246654911497, + 30.87619539688792 + ], + "step": 313, + "time": 7.825 + }, + { + "observations": { + "radius": 34.77610038059093, + "x": -10.92439087832694, + "y": -9.565867277066884, + "z": 31.59950988316124 + }, + "state": [ + -10.92439087832694, + -9.565867277066884, + 31.59950988316124 + ], + "step": 314, + "time": 7.85 + }, + { + "observations": { + "radius": 34.57745490533345, + "x": -10.481560986011916, + "y": -8.330144219237734, + "z": 31.88018137203082 + }, + "state": [ + -10.481560986011916, + -8.330144219237734, + 31.88018137203082 + ], + "step": 315, + "time": 7.875 + }, + { + "observations": { + "radius": 33.9904359113023, + "x": -9.868415146266695, + "y": -7.159091355176497, + "z": 31.728717700366023 + }, + "state": [ + -9.868415146266695, + -7.159091355176497, + 31.728717700366023 + ], + "step": 316, + "time": 7.9 + }, + { + "observations": { + "radius": 33.10244841170892, + "x": -9.150180463773868, + "y": -6.160517722072005, + "z": 31.21048397135581 + }, + "state": [ + -9.150180463773868, + -6.160517722072005, + 31.21048397135581 + ], + "step": 317, + "time": 7.925 + }, + { + "observations": { + "radius": 32.013884251710905, + "x": -8.396013685252207, + "y": -5.393914217354495, + "z": 30.418767701779473 + }, + "state": [ + -8.396013685252207, + -5.393914217354495, + 30.418767701779473 + ], + "step": 318, + "time": 7.95 + }, + { + "observations": { + "radius": 30.81918161299103, + "x": -7.6676041409811635, + "y": -4.874220557096494, + "z": 29.44947836537196 + }, + "state": [ + -7.6676041409811635, + -4.874220557096494, + 29.44947836537196 + ], + "step": 319, + "time": 7.975 + }, + { + "observations": { + "radius": 29.596270712617187, + "x": -7.012488080151509, + "y": -4.585884553319711, + "z": 28.385452504476277 + }, + "state": [ + -7.012488080151509, + -4.585884553319711, + 28.385452504476277 + ], + "step": 320, + "time": 8.0 + }, + { + "observations": { + "radius": 28.404213609994734, + "x": -6.4622802942840885, + "y": -4.498606600449867, + "z": 27.291039241016573 + }, + "state": [ + -6.4622802942840885, + -4.498606600449867, + 27.291039241016573 + ], + "step": 321, + "time": 8.025 + }, + { + "observations": { + "radius": 27.286183065193995, + "x": -6.034427670709152, + "y": -4.579528816858919, + "z": 26.213534381494952 + }, + "state": [ + -6.034427670709152, + -4.579528816858919, + 26.213534381494952 + ], + "step": 322, + "time": 8.05 + }, + { + "observations": { + "radius": 26.27462456676428, + "x": -5.735692851566085, + "y": -4.800401490173333, + "z": 25.18757370550106 + }, + "state": [ + -5.735692851566085, + -4.800401490173333, + 25.18757370550106 + ], + "step": 323, + "time": 8.075 + }, + { + "observations": { + "radius": 25.396412850277375, + "x": -5.565935838222222, + "y": -5.14047365389678, + "z": 24.23991902874513 + }, + "state": [ + -5.565935838222222, + -5.14047365389678, + 24.23991902874513 + ], + "step": 324, + "time": 8.1 + }, + { + "observations": { + "radius": 24.676926941301023, + "x": -5.521341772853463, + "y": -5.586509089521026, + "z": 23.393512444401132 + }, + "state": [ + -5.521341772853463, + -5.586509089521026, + 23.393512444401132 + ], + "step": 325, + "time": 8.125 + }, + { + "observations": { + "radius": 24.14267432138856, + "x": -5.596727124845565, + "y": -6.131124038210688, + "z": 22.670568738051713 + }, + "state": [ + -5.596727124845565, + -6.131124038210688, + 22.670568738051713 + ], + "step": 326, + "time": 8.15 + }, + { + "observations": { + "radius": 23.82233958048275, + "x": -5.786849234403274, + "y": -6.770171356110803, + "z": 22.094818823312814 + }, + "state": [ + -5.786849234403274, + -6.770171356110803, + 22.094818823312814 + ], + "step": 327, + "time": 8.175 + }, + { + "observations": { + "radius": 23.74609808803127, + "x": -6.086769144556323, + "y": -7.499462326407405, + "z": 21.69300533817469 + }, + "state": [ + -6.086769144556323, + -7.499462326407405, + 21.69300533817469 + ], + "step": 328, + "time": 8.2 + }, + { + "observations": { + "radius": 23.9429570799706, + "x": -6.491335226551918, + "y": -8.31083657735287, + "z": 21.495528746564343 + }, + "state": [ + -6.491335226551918, + -8.31083657735287, + 21.495528746564343 + ], + "step": 329, + "time": 8.225 + }, + { + "observations": { + "radius": 24.435963308584956, + "x": -6.993829491410847, + "y": -9.187514718065419, + "z": 21.535835836319738 + }, + "state": [ + -6.993829491410847, + -9.187514718065419, + 21.535835836319738 + ], + "step": 330, + "time": 8.25 + }, + { + "observations": { + "radius": 25.235441371980095, + "x": -7.58381175007107, + "y": -10.098866683189247, + "z": 21.847796051164952 + }, + "state": [ + -7.58381175007107, + -10.098866683189247, + 21.847796051164952 + ], + "step": 331, + "time": 8.275 + }, + { + "observations": { + "radius": 26.330947490070592, + "x": -8.244276726986092, + "y": -10.9953058994484, + "z": 22.46005220722529 + }, + "state": [ + -8.244276726986092, + -10.9953058994484, + 22.46005220722529 + ], + "step": 332, + "time": 8.3 + }, + { + "observations": { + "radius": 27.683226234833594, + "x": -8.948481152947059, + "y": -11.805043059453052, + "z": 23.38646313979071 + }, + "state": [ + -8.948481152947059, + -11.805043059453052, + 23.38646313979071 + ], + "step": 333, + "time": 8.325 + }, + { + "observations": { + "radius": 29.21812083389711, + "x": -9.657249594777472, + "y": -12.43571263968026, + "z": 24.612784614335684 + }, + "state": [ + -9.657249594777472, + -12.43571263968026, + 24.612784614335684 + ], + "step": 334, + "time": 8.35 + }, + { + "observations": { + "radius": 30.82515742866378, + "x": -10.318162514904888, + "y": -12.784615761486293, + "z": 26.082167330363355 + }, + "state": [ + -10.318162514904888, + -12.784615761486293, + 26.082167330363355 + ], + "step": 335, + "time": 8.375 + }, + { + "observations": { + "radius": 32.36405599360099, + "x": -10.86844167899762, + "y": -12.759917806895487, + "z": 27.685620697185737 + }, + "state": [ + -10.86844167899762, + -12.759917806895487, + 27.685620697185737 + ], + "step": 336, + "time": 8.4 + }, + { + "observations": { + "radius": 33.681611760556905, + "x": -11.24295397176473, + "y": -12.310076452361695, + "z": 29.266174579447085 + }, + "state": [ + -11.24295397176473, + -12.310076452361695, + 29.266174579447085 + ], + "step": 337, + "time": 8.425 + }, + { + "observations": { + "radius": 34.6379703648867, + "x": -11.386955513178968, + "y": -11.451006329810642, + "z": 30.643118137263524 + }, + "state": [ + -11.386955513178968, + -11.451006329810642, + 30.643118137263524 + ], + "step": 338, + "time": 8.45 + }, + { + "observations": { + "radius": 35.13571284818952, + "x": -11.27026902527412, + "y": -10.2755877602445, + "z": 31.65298800476647 + }, + "state": [ + -11.27026902527412, + -10.2755877602445, + 31.65298800476647 + ], + "step": 339, + "time": 8.475 + }, + { + "observations": { + "radius": 35.14085277849074, + "x": -10.897290904861283, + "y": -8.935372894365425, + "z": 32.19142271122896 + }, + "state": [ + -10.897290904861283, + -8.935372894365425, + 32.19142271122896 + ], + "step": 340, + "time": 8.5 + }, + { + "observations": { + "radius": 34.68638264066705, + "x": -10.307885948415, + "y": -7.599797303431682, + "z": 32.23562794356563 + }, + "state": [ + -10.307885948415, + -7.599797303431682, + 32.23562794356563 + ], + "step": 341, + "time": 8.525 + }, + { + "observations": { + "radius": 33.85705660838136, + "x": -9.568293560359205, + "y": -6.412352008416029, + "z": 31.83755301913279 + }, + "state": [ + -9.568293560359205, + -6.412352008416029, + 31.83755301913279 + ], + "step": 342, + "time": 8.55 + }, + { + "observations": { + "radius": 32.76327079662567, + "x": -8.756002679777252, + "y": -5.463450036064803, + "z": 31.09525758163424 + }, + "state": [ + -8.756002679777252, + -5.463450036064803, + 31.09525758163424 + ], + "step": 343, + "time": 8.575 + }, + { + "observations": { + "radius": 31.51555685727038, + "x": -7.944714079310753, + "y": -4.786959454173419, + "z": 30.11970885327319 + }, + "state": [ + -7.944714079310753, + -4.786959454173419, + 30.11970885327319 + ], + "step": 344, + "time": 8.6 + }, + { + "observations": { + "radius": 30.207871268925107, + "x": -7.194037472552577, + "y": -4.373886673464546, + "z": 29.010867391568105 + }, + "state": [ + -7.194037472552577, + -4.373886673464546, + 29.010867391568105 + ], + "step": 345, + "time": 8.625 + }, + { + "observations": { + "radius": 28.911573514588632, + "x": -6.545353810422921, + "y": -4.191776748199347, + "z": 27.8471979609996 + }, + "state": [ + -6.545353810422921, + -4.191776748199347, + 27.8471979609996 + ], + "step": 346, + "time": 8.65 + }, + { + "observations": { + "radius": 27.677352847314236, + "x": -6.022670495723604, + "y": -4.201333005968983, + "z": 26.68542864013298 + }, + "state": [ + -6.022670495723604, + -4.201333005968983, + 26.68542864013298 + ], + "step": 347, + "time": 8.675 + }, + { + "observations": { + "radius": 26.541005414575775, + "x": -5.636283929317484, + "y": -4.366978977882949, + "z": 25.5653430740013 + }, + "state": [ + -5.636283929317484, + -4.366978977882949, + 25.5653430740013 + ], + "step": 348, + "time": 8.7 + }, + { + "observations": { + "radius": 25.529863716759532, + "x": -5.3872867192254645, + "y": -4.66173047376586, + "z": 24.515696037256102 + }, + "state": [ + -5.3872867192254645, + -4.66173047376586, + 24.515696037256102 + ], + "step": 349, + "time": 8.725 + }, + { + "observations": { + "radius": 24.66819910934482, + "x": -5.27166583592931, + "y": -5.068117115267834, + "z": 23.55936704409746 + }, + "state": [ + -5.27166583592931, + -5.068117115267834, + 23.55936704409746 + ], + "step": 350, + "time": 8.75 + }, + { + "observations": { + "radius": 23.981046429993697, + "x": -5.28341062113035, + "y": -5.576836005113107, + "z": 22.717285494929065 + }, + "state": [ + -5.28341062113035, + -5.576836005113107, + 22.717285494929065 + ], + "step": 351, + "time": 8.775 + }, + { + "observations": { + "radius": 23.49638920111584, + "x": -5.4164872162530235, + "y": -6.1842432624475645, + "z": 22.011294986832386 + }, + "state": [ + -5.4164872162530235, + -6.1842432624475645, + 22.011294986832386 + ], + "step": 352, + "time": 8.8 + }, + { + "observations": { + "radius": 23.24565820374343, + "x": -5.665741455541718, + "y": -6.889192516357838, + "z": 21.466229886889302 + }, + "state": [ + -5.665741455541718, + -6.889192516357838, + 21.466229886889302 + ], + "step": 353, + "time": 8.825 + }, + { + "observations": { + "radius": 23.262316103182673, + "x": -6.026837198738044, + "y": -7.689290245493692, + "z": 21.11130975057812 + }, + "state": [ + -6.026837198738044, + -7.689290245493692, + 21.11130975057812 + ], + "step": 354, + "time": 8.85 + }, + { + "observations": { + "radius": 23.57819342548449, + "x": -6.495297278261518, + "y": -8.576397728827063, + "z": 20.980651097464502 + }, + "state": [ + -6.495297278261518, + -8.576397728827063, + 20.980651097464502 + ], + "step": 355, + "time": 8.875 + }, + { + "observations": { + "radius": 24.217398425477228, + "x": -7.064656297656789, + "y": -9.531206115198636, + "z": 21.11229802470317 + }, + "state": [ + -7.064656297656789, + -9.531206115198636, + 21.11229802470317 + ], + "step": 356, + "time": 8.9 + }, + { + "observations": { + "radius": 25.188085606024377, + "x": -7.723725079766368, + "y": -10.517044717604481, + "z": 21.544732483753613 + }, + "state": [ + -7.723725079766368, + -10.517044717604481, + 21.544732483753613 + ], + "step": 357, + "time": 8.925 + }, + { + "observations": { + "radius": 26.473000049696566, + "x": -8.453086757410787, + "y": -11.473912835283809, + "z": 22.309513220848864 + }, + "state": [ + -8.453086757410787, + -11.473912835283809, + 22.309513220848864 + ], + "step": 358, + "time": 8.95 + }, + { + "observations": { + "radius": 28.020390450563855, + "x": -9.221290976963605, + "y": -12.315147313385967, + "z": 23.41895002705762 + }, + "state": [ + -9.221290976963605, + -12.315147313385967, + 23.41895002705762 + ], + "step": 359, + "time": 8.975 + }, + { + "observations": { + "radius": 29.73769562455231, + "x": -9.981840569359465, + "y": -12.930832208059819, + "z": 24.849285267657297 + }, + "state": [ + -9.981840569359465, + -12.930832208059819, + 24.849285267657297 + ], + "step": 360, + "time": 9.0 + }, + { + "observations": { + "radius": 31.491462054459376, + "x": -10.6728499211321, + "y": -13.202760667635603, + "z": 26.52337775701993 + }, + "state": [ + -10.6728499211321, + -13.202760667635603, + 26.52337775701993 + ], + "step": 361, + "time": 9.025 + }, + { + "observations": { + "radius": 33.11758633639318, + "x": -11.22168538075418, + "y": -13.033136473333217, + "z": 28.30168997836164 + }, + "state": [ + -11.22168538075418, + -13.033136473333217, + 28.30168997836164 + ], + "step": 362, + "time": 9.05 + }, + { + "observations": { + "radius": 34.444429191998445, + "x": -11.556070901004237, + "y": -12.381452910961528, + "z": 29.992925024198627 + }, + "state": [ + -11.556070901004237, + -12.381452910961528, + 29.992925024198627 + ], + "step": 363, + "time": 9.075 + }, + { + "observations": { + "radius": 35.32607981718975, + "x": -11.620378011241108, + "y": -11.293683298257397, + "z": 31.390308180790242 + }, + "state": [ + -11.620378011241108, + -11.293683298257397, + 31.390308180790242 + ], + "step": 364, + "time": 9.1 + }, + { + "observations": { + "radius": 35.67558625481025, + "x": -11.391934462532193, + "y": -9.904167830167783, + "z": 32.32458419558784 + }, + "state": [ + -11.391934462532193, + -9.904167830167783, + 32.32458419558784 + ], + "step": 365, + "time": 9.125 + }, + { + "observations": { + "radius": 35.48398709777833, + "x": -10.890024595501131, + "y": -8.402185941632858, + "z": 32.70969238722533 + }, + "state": [ + -10.890024595501131, + -8.402185941632858, + 32.70969238722533 + ], + "step": 366, + "time": 9.15 + }, + { + "observations": { + "radius": 34.81590618296044, + "x": -10.172612647168569, + "y": -6.977331985298257, + "z": 32.557366503424426 + }, + "state": [ + -10.172612647168569, + -6.977331985298257, + 32.557366503424426 + ], + "step": 367, + "time": 9.175 + }, + { + "observations": { + "radius": 33.784489789292856, + "x": -9.321953327494839, + "y": -5.771483362730478, + "z": 31.955952751820224 + }, + "state": [ + -9.321953327494839, + -5.771483362730478, + 31.955952751820224 + ], + "step": 368, + "time": 9.2 + }, + { + "observations": { + "radius": 32.51853851117008, + "x": -8.425669852734483, + "y": -4.857781791254602, + "z": 31.030072357371772 + }, + "state": [ + -8.425669852734483, + -4.857781791254602, + 31.030072357371772 + ], + "step": 369, + "time": 9.225 + }, + { + "observations": { + "radius": 31.13560239927132, + "x": -7.560737697683794, + "y": -4.247524090903276, + "z": 29.903503495903777 + }, + "state": [ + -7.560737697683794, + -4.247524090903276, + 29.903503495903777 + ], + "step": 370, + "time": 9.25 + }, + { + "observations": { + "radius": 29.72801207946063, + "x": -6.784551762091637, + "y": -3.9120749395869883, + "z": 28.677870026400353 + }, + "state": [ + -6.784551762091637, + -3.9120749395869883, + 28.677870026400353 + ], + "step": 371, + "time": 9.275 + }, + { + "observations": { + "radius": 28.361029247147087, + "x": -6.133154330633496, + "y": -3.8059166179031667, + "z": 27.427128843751266 + }, + "state": [ + -6.133154330633496, + -3.8059166179031667, + 27.427128843751266 + ], + "step": 372, + "time": 9.3 + }, + { + "observations": { + "radius": 27.07827538116592, + "x": -5.624286125142797, + "y": -3.883275845408202, + "z": 26.201537586738144 + }, + "state": [ + -5.624286125142797, + -3.883275845408202, + 26.201537586738144 + ], + "step": 373, + "time": 9.325 + }, + { + "observations": { + "radius": 25.909577273923635, + "x": -5.262532527749676, + "y": -4.10700922936751, + "z": 25.03486411182786 + }, + "state": [ + -5.262532527749676, + -4.10700922936751, + 25.03486411182786 + ], + "step": 374, + "time": 9.35 + }, + { + "observations": { + "radius": 24.8782287486223, + "x": -5.044570077776208, + "y": -4.451570282295509, + "z": 23.95124423534121 + }, + "state": [ + -5.044570077776208, + -4.451570282295509, + 23.95124423534121 + ], + "step": 375, + "time": 9.375 + }, + { + "observations": { + "radius": 24.006512063799377, + "x": -4.963462208168486, + "y": -4.902450514670716, + "z": 22.97047329352691 + }, + "state": [ + -4.963462208168486, + -4.902450514670716, + 22.97047329352691 + ], + "step": 376, + "time": 9.4 + }, + { + "observations": { + "radius": 23.319367758071916, + "x": -5.0116565343221176, + "y": -5.453890875640112, + "z": 22.11179064966924 + }, + "state": [ + -5.0116565343221176, + -5.453890875640112, + 22.11179064966924 + ], + "step": 377, + "time": 9.425 + }, + { + "observations": { + "radius": 22.846373216638977, + "x": -5.18271541558639, + "y": -6.105843196292175, + "z": 21.396609753353324 + }, + "state": [ + -5.18271541558639, + -6.105843196292175, + 21.396609753353324 + ], + "step": 378, + "time": 9.45 + }, + { + "observations": { + "radius": 22.62200448904825, + "x": -5.471940669996052, + "y": -6.860498635881687, + "z": 20.850575792376283 + }, + "state": [ + -5.471940669996052, + -6.860498635881687, + 20.850575792376283 + ], + "step": 379, + "time": 9.475 + }, + { + "observations": { + "radius": 22.683847272109457, + "x": -5.876033294253738, + "y": -7.718260672412099, + "z": 20.505063081636838 + }, + "state": [ + -5.876033294253738, + -7.718260672412099, + 20.505063081636838 + ], + "step": 380, + "time": 9.5 + }, + { + "observations": { + "radius": 23.06827874450622, + "x": -6.391840668229882, + "y": -8.672813338401163, + "z": 20.397847089912478 + }, + "state": [ + -6.391840668229882, + -8.672813338401163, + 20.397847089912478 + ], + "step": 381, + "time": 9.525 + }, + { + "observations": { + "radius": 23.80336088839815, + "x": -7.014151715672081, + "y": -9.704954274018311, + "z": 20.57220279484117 + }, + "state": [ + -7.014151715672081, + -9.704954274018311, + 20.57220279484117 + ], + "step": 382, + "time": 9.55 + }, + { + "observations": { + "radius": 24.899266815207586, + "x": -7.7324732785152355, + "y": -10.775264350496744, + "z": 21.07311137703352 + }, + "state": [ + -7.7324732785152355, + -10.775264350496744, + 21.07311137703352 + ], + "step": 383, + "time": 9.575 + }, + { + "observations": { + "radius": 26.33728655702637, + "x": -8.526856152464532, + "y": -11.816712496582914, + "z": 21.938794249347456 + }, + "state": [ + -8.526856152464532, + -11.816712496582914, + 21.938794249347456 + ], + "step": 384, + "time": 9.6 + }, + { + "observations": { + "radius": 28.059176240727624, + "x": -9.363264107818488, + "y": -12.730135755268611, + "z": 23.18599362131982 + }, + "state": [ + -9.363264107818488, + -12.730135755268611, + 23.18599362131982 + ], + "step": 385, + "time": 9.625 + }, + { + "observations": { + "radius": 29.959589204716707, + "x": -10.18978881535001, + "y": -13.38785628242239, + "z": 24.789322164495523 + }, + "state": [ + -10.18978881535001, + -13.38785628242239, + 24.789322164495523 + ], + "step": 386, + "time": 9.65 + }, + { + "observations": { + "radius": 31.88581047743216, + "x": -10.93606857712038, + "y": -13.65183984540662, + "z": 26.659605824441794 + }, + "state": [ + -10.93606857712038, + -13.65183984540662, + 26.659605824441794 + ], + "step": 387, + "time": 9.675 + }, + { + "observations": { + "radius": 33.65009953191539, + "x": -11.518897662770991, + "y": -13.409470358971564, + "z": 28.63267887980942 + }, + "state": [ + -11.518897662770991, + -13.409470358971564, + 28.63267887980942 + ], + "step": 388, + "time": 9.7 + }, + { + "observations": { + "radius": 35.05804399477914, + "x": -11.85595471094091, + "y": -12.619524714841097, + "z": 30.483608424914244 + }, + "state": [ + -11.85595471094091, + -12.619524714841097, + 30.483608424914244 + ], + "step": 389, + "time": 9.725 + }, + { + "observations": { + "radius": 35.94923118174231, + "x": -11.885869663148192, + "y": -11.346964955142381, + "z": 31.973734708597586 + }, + "state": [ + -11.885869663148192, + -11.346964955142381, + 31.973734708597586 + ], + "step": 390, + "time": 9.75 + }, + { + "observations": { + "radius": 36.236597230097416, + "x": -11.587699622245346, + "y": -9.760973820401844, + "z": 32.9171624894727 + }, + "state": [ + -11.587699622245346, + -9.760973820401844, + 32.9171624894727 + ], + "step": 391, + "time": 9.775 + }, + { + "observations": { + "radius": 35.926223047678256, + "x": -10.990370826319584, + "y": -8.08821889067951, + "z": 33.23380758727424 + }, + "state": [ + -10.990370826319584, + -8.08821889067951, + 33.23380758727424 + ], + "step": 392, + "time": 9.8 + }, + { + "observations": { + "radius": 35.1072233400744, + "x": -10.166447132213422, + "y": -6.543531804832764, + "z": 32.95971290646986 + }, + "state": [ + -10.166447132213422, + -6.543531804832764, + 32.95971290646986 + ], + "step": 393, + "time": 9.825 + }, + { + "observations": { + "radius": 33.91778487846516, + "x": -9.212978619078099, + "y": -5.2751074117996275, + "z": 32.21351265882419 + }, + "state": [ + -9.212978619078099, + -5.2751074117996275, + 32.21351265882419 + ], + "step": 394, + "time": 9.85 + }, + { + "observations": { + "radius": 32.50517145666727, + "x": -8.228583494615672, + "y": -4.346845642002139, + "z": 31.14452629378206 + }, + "state": [ + -8.228583494615672, + -4.346845642002139, + 31.14452629378206 + ], + "step": 395, + "time": 9.875 + }, + { + "observations": { + "radius": 30.996237215643635, + "x": -7.295773669753314, + "y": -3.75368509560845, + "z": 29.89060481641669 + }, + "state": [ + -7.295773669753314, + -3.75368509560845, + 29.89060481641669 + ], + "step": 396, + "time": 9.9 + }, + { + "observations": { + "radius": 29.484845163581596, + "x": -6.472572487339485, + "y": -3.450991261515076, + "z": 28.55788085676988 + }, + "state": [ + -6.472572487339485, + -3.450991261515076, + 28.55788085676988 + ], + "step": 397, + "time": 9.925 + }, + { + "observations": { + "radius": 28.03311950155608, + "x": -5.792420488382124, + "y": -3.3814539678877162, + "z": 27.218916637833903 + }, + "state": [ + -5.792420488382124, + -3.3814539678877162, + 27.218916637833903 + ], + "step": 398, + "time": 9.95 + }, + { + "observations": { + "radius": 26.679764518128962, + "x": -5.268996472429238, + "y": -3.492418406723849, + "z": 25.92007956370346 + }, + "state": [ + -5.268996472429238, + -3.492418406723849, + 25.92007956370346 + ], + "step": 399, + "time": 9.975 + }, + { + "observations": { + "radius": 25.449776247282312, + "x": -4.902685680763374, + "y": -3.743873622847267, + "z": 24.69085244475211 + }, + "state": [ + -4.902685680763374, + -3.743873622847267, + 24.69085244475211 + ], + "step": 400, + "time": 10.0 + }, + { + "observations": { + "radius": 24.36259936075494, + "x": -4.686597383391005, + "y": -4.110145188202125, + "z": 23.55161903374264 + }, + "state": [ + -4.686597383391005, + -4.110145188202125, + 23.55161903374264 + ], + "step": 401, + "time": 10.025 + }, + { + "observations": { + "radius": 23.437967797014277, + "x": -4.611198939155048, + "y": -4.578286038985852, + "z": 22.51920237802931 + }, + "state": [ + -4.611198939155048, + -4.578286038985852, + 22.51920237802931 + ], + "step": 402, + "time": 10.05 + }, + { + "observations": { + "radius": 22.699699638883928, + "x": -4.667388592106097, + "y": -5.145126595977481, + "z": 21.610634413112223 + }, + "state": [ + -4.667388592106097, + -5.145126595977481, + 21.610634413112223 + ], + "step": 403, + "time": 10.075 + }, + { + "observations": { + "radius": 22.177839387376917, + "x": -4.848180293292304, + "y": -5.813922389652059, + "z": 20.845863239096662 + }, + "state": [ + -4.848180293292304, + -5.813922389652059, + 20.845863239096662 + ], + "step": 404, + "time": 10.1 + }, + { + "observations": { + "radius": 21.909187954158142, + "x": -5.149252707805524, + "y": -6.590802738008603, + "z": 20.249914385755908 + }, + "state": [ + -5.149252707805524, + -6.590802738008603, + 20.249914385755908 + ], + "step": 405, + "time": 10.125 + }, + { + "observations": { + "radius": 21.93579971314919, + "x": -5.568545974590143, + "y": -7.4807579135322575, + "z": 19.854693798278443 + }, + "state": [ + -5.568545974590143, + -7.4807579135322575, + 19.854693798278443 + ], + "step": 406, + "time": 10.15 + }, + { + "observations": { + "radius": 22.30076447233882, + "x": -6.104957400656149, + "y": -8.482640469679332, + "z": 19.700213243745903 + }, + "state": [ + -6.104957400656149, + -8.482640469679332, + 19.700213243745903 + ], + "step": 407, + "time": 10.175 + }, + { + "observations": { + "radius": 23.040776577142726, + "x": -6.756049740778159, + "y": -9.58260814143186, + "z": 19.834485079923404 + }, + "state": [ + -6.756049740778159, + -9.58260814143186, + 19.834485079923404 + ], + "step": 408, + "time": 10.2 + }, + { + "observations": { + "radius": 24.175649522650396, + "x": -7.514605097696837, + "y": -10.745750016424031, + "z": 20.310627677455415 + }, + "state": [ + -7.514605097696837, + -10.745750016424031, + 20.310627677455415 + ], + "step": 409, + "time": 10.225 + }, + { + "observations": { + "radius": 25.69575888500278, + "x": -8.363936308864231, + "y": -11.90663772505092, + "z": 21.1789653236851 + }, + "state": [ + -8.363936308864231, + -11.90663772505092, + 21.1789653236851 + ], + "step": 410, + "time": 10.25 + }, + { + "observations": { + "radius": 27.549107344950347, + "x": -9.272267821743053, + "y": -12.961621888641302, + "z": 22.471642640478247 + }, + "state": [ + -9.272267821743053, + -12.961621888641302, + 22.471642640478247 + ], + "step": 411, + "time": 10.275 + }, + { + "observations": { + "radius": 29.630676246483958, + "x": -10.187401819118653, + "y": -13.768830591707696, + "z": 24.178774227338756 + }, + "state": [ + -10.187401819118653, + -13.768830591707696, + 24.178774227338756 + ], + "step": 412, + "time": 10.3 + }, + { + "observations": { + "radius": 31.778648745063975, + "x": -11.034277366487666, + "y": -14.164476426015302, + "z": 26.220122933320333 + }, + "state": [ + -11.034277366487666, + -14.164476426015302, + 26.220122933320333 + ], + "step": 413, + "time": 10.325 + }, + { + "observations": { + "radius": 33.78432494149527, + "x": -11.719266475752695, + "y": -14.002099228003967, + "z": 28.424999951309925 + }, + "state": [ + -11.719266475752695, + -14.002099228003967, + 28.424999951309925 + ], + "step": 414, + "time": 10.35 + }, + { + "observations": { + "radius": 35.4218002226494, + "x": -12.144528827591445, + "y": -13.20972170432666, + "z": 30.540425718436325 + }, + "state": [ + -12.144528827591445, + -13.20972170432666, + 30.540425718436325 + ], + "step": 415, + "time": 10.375 + }, + { + "observations": { + "radius": 36.49574363853912, + "x": -12.231686258307544, + "y": -11.840279747132355, + "z": 32.282083738785296 + }, + "state": [ + -12.231686258307544, + -11.840279747132355, + 32.282083738785296 + ], + "step": 416, + "time": 10.4 + }, + { + "observations": { + "radius": 36.89207746476992, + "x": -11.94713052220152, + "y": -10.079578660045714, + "z": 33.416964942795396 + }, + "state": [ + -11.94713052220152, + -10.079578660045714, + 33.416964942795396 + ], + "step": 417, + "time": 10.425 + }, + { + "observations": { + "radius": 36.60743348344412, + "x": -11.31654588449488, + "y": -8.194296591822734, + "z": 33.83627460070257 + }, + "state": [ + -11.31654588449488, + -8.194296591822734, + 33.83627460070257 + ], + "step": 418, + "time": 10.45 + }, + { + "observations": { + "radius": 35.740898807274505, + "x": -10.419793585802855, + "y": -6.444342782256724, + "z": 33.57544035877822 + }, + "state": [ + -10.419793585802855, + -6.444342782256724, + 33.57544035877822 + ], + "step": 419, + "time": 10.475 + }, + { + "observations": { + "radius": 34.453300559541354, + "x": -9.368310436971743, + "y": -5.009785213743693, + "z": 32.77448292673393 + }, + "state": [ + -9.368310436971743, + -5.009785213743693, + 32.77448292673393 + ], + "step": 420, + "time": 10.5 + }, + { + "observations": { + "radius": 32.916901515250096, + "x": -8.276630841854763, + "y": -3.966005249022495, + "z": 31.611557848942823 + }, + "state": [ + -8.276630841854763, + -3.966005249022495, + 31.611557848942823 + ], + "step": 421, + "time": 10.525 + }, + { + "observations": { + "radius": 31.278040176116466, + "x": -7.240176219719694, + "y": -3.303061756464804, + "z": 30.24872606572285 + }, + "state": [ + -7.240176219719694, + -3.303061756464804, + 30.24872606572285 + ], + "step": 422, + "time": 10.55 + }, + { + "observations": { + "radius": 29.641646037256564, + "x": -6.324876351723441, + "y": -2.9635114085558487, + "z": 28.806956088153026 + }, + "state": [ + -6.324876351723441, + -2.9635114085558487, + 28.806956088153026 + ], + "step": 423, + "time": 10.575 + }, + { + "observations": { + "radius": 28.07348793096703, + "x": -5.567287906918161, + "y": -2.8762757371217686, + "z": 27.365179843291347 + }, + "state": [ + -5.567287906918161, + -2.8762757371217686, + 27.365179843291347 + ], + "step": 424, + "time": 10.6 + }, + { + "observations": { + "radius": 26.61105568622345, + "x": -4.980739636553876, + "y": -2.9775897088323573, + "z": 25.97064644813452 + }, + "state": [ + -4.980739636553876, + -2.9775897088323573, + 25.97064644813452 + ], + "step": 425, + "time": 10.625 + }, + { + "observations": { + "radius": 25.275677607946072, + "x": -4.563303866850639, + "y": -3.2199682062314974, + "z": 24.650921709146512 + }, + "state": [ + -4.563303866850639, + -3.2199682062314974, + 24.650921709146512 + ], + "step": 426, + "time": 10.65 + }, + { + "observations": { + "radius": 24.082278995822996, + "x": -4.305026259934557, + "y": -3.5735507082942535, + "z": 23.42333549836959 + }, + "state": [ + -4.305026259934557, + -3.5735507082942535, + 23.42333549836959 + ], + "step": 427, + "time": 10.675 + }, + { + "observations": { + "radius": 23.046104529989996, + "x": -4.193371898625817, + "y": -4.0237793412525376, + "z": 22.301295162836396 + }, + "state": [ + -4.193371898625817, + -4.0237793412525376, + 22.301295162836396 + ], + "step": 428, + "time": 10.7 + }, + { + "observations": { + "radius": 22.187041030458694, + "x": -4.216781932405913, + "y": -4.567863439256689, + "z": 21.298313628597327 + }, + "state": [ + -4.216781932405913, + -4.567863439256689, + 21.298313628597327 + ], + "step": 429, + "time": 10.725 + }, + { + "observations": { + "radius": 21.532311606637144, + "x": -4.366640208790601, + "y": -5.211155941528915, + "z": 20.430779480121696 + }, + "state": [ + -4.366640208790601, + -5.211155941528915, + 20.430779480121696 + ], + "step": 430, + "time": 10.75 + }, + { + "observations": { + "radius": 21.1178540047539, + "x": -4.6380225532701616, + "y": -5.963684128100882, + "z": 19.72021744762708 + }, + "state": [ + -4.6380225532701616, + -5.963684128100882, + 19.72021744762708 + ], + "step": 431, + "time": 10.775 + }, + { + "observations": { + "radius": 20.9880543313077, + "x": -5.0295057821823885, + "y": -6.836540411321031, + "z": 19.195421626140238 + }, + "state": [ + -5.0295057821823885, + -6.836540411321031, + 19.195421626140238 + ], + "step": 432, + "time": 10.8 + }, + { + "observations": { + "radius": 21.192982354754083, + "x": -5.542146102496775, + "y": -7.837506423400808, + "z": 18.894459789331073 + }, + "state": [ + -5.542146102496775, + -7.837506423400808, + 18.894459789331073 + ], + "step": 433, + "time": 10.825 + }, + { + "observations": { + "radius": 21.78218009194481, + "x": -6.177548812758536, + "y": -8.965092306823914, + "z": 18.866064246525536 + }, + "state": [ + -6.177548812758536, + -8.965092306823914, + 18.866064246525536 + ], + "step": 434, + "time": 10.85 + }, + { + "observations": { + "radius": 22.794605521903588, + "x": -6.934785030321139, + "y": -10.200202321898523, + "z": 19.16921151416425 + }, + "state": [ + -6.934785030321139, + -10.200202321898523, + 19.16921151416425 + ], + "step": 435, + "time": 10.875 + }, + { + "observations": { + "radius": 24.245306867877936, + "x": -7.805839609794894, + "y": -11.495184293558413, + "z": 19.868681666402882 + }, + "state": [ + -7.805839609794894, + -11.495184293558413, + 19.868681666402882 + ], + "step": 436, + "time": 10.9 + }, + { + "observations": { + "radius": 26.110204472610544, + "x": -8.769451982055466, + "y": -12.761647058205943, + "z": 21.023316909986843 + }, + "state": [ + -8.769451982055466, + -12.761647058205943, + 21.023316909986843 + ], + "step": 437, + "time": 10.925 + }, + { + "observations": { + "radius": 28.31095441188931, + "x": -9.783896575422938, + "y": -13.861754657351511, + "z": 22.663566915490065 + }, + "state": [ + -9.783896575422938, + -13.861754657351511, + 22.663566915490065 + ], + "step": 438, + "time": 10.95 + }, + { + "observations": { + "radius": 30.703448636989148, + "x": -10.78070661234925, + "y": -14.612449688103323, + "z": 24.757916658219226 + }, + "state": [ + -10.78070661234925, + -14.612449688103323, + 24.757916658219226 + ], + "step": 439, + "time": 10.975 + }, + { + "observations": { + "radius": 33.07695285717802, + "x": -11.663423090978164, + "y": -14.815027822139614, + "z": 27.176539933296215 + }, + "state": [ + -11.663423090978164, + -14.815027822139614, + 27.176539933296215 + ], + "step": 440, + "time": 11.0 + }, + { + "observations": { + "radius": 35.17388712911144, + "x": -12.316831983155463, + "y": -14.316261935356495, + "z": 29.67393856346765 + }, + "state": [ + -12.316831983155463, + -14.316261935356495, + 29.67393856346765 + ], + "step": 441, + "time": 11.025 + }, + { + "observations": { + "radius": 36.736644854736674, + "x": -12.630074818093446, + "y": -13.085355900804974, + "z": 31.9192065412297 + }, + "state": [ + -12.630074818093446, + -13.085355900804974, + 31.9192065412297 + ], + "step": 442, + "time": 11.05 + }, + { + "observations": { + "radius": 37.57299709061962, + "x": -12.529420262976496, + "y": -11.262867950159812, + "z": 33.58409659024175 + }, + "state": [ + -12.529420262976496, + -11.262867950159812, + 33.58409659024175 + ], + "step": 443, + "time": 11.075 + }, + { + "observations": { + "radius": 37.612431250190276, + "x": -12.006663083625297, + "y": -9.13575613075329, + "z": 34.453925553788544 + }, + "state": [ + -12.006663083625297, + -9.13575613075329, + 34.453925553788544 + ], + "step": 444, + "time": 11.1 + }, + { + "observations": { + "radius": 36.92161367536553, + "x": -11.126608855029458, + "y": -7.038751229848272, + "z": 34.49434899957424 + }, + "state": [ + -11.126608855029458, + -7.038751229848272, + 34.49434899957424 + ], + "step": 445, + "time": 11.125 + }, + { + "observations": { + "radius": 35.669357828159974, + "x": -10.007963681347148, + "y": -5.2406988107714065, + "z": 33.83310252993262 + }, + "state": [ + -10.007963681347148, + -5.2406988107714065, + 33.83310252993262 + ], + "step": 446, + "time": 11.15 + }, + { + "observations": { + "radius": 34.063144654519036, + "x": -8.788300047539833, + "y": -3.881793120694403, + "z": 32.680197187245206 + }, + "state": [ + -8.788300047539833, + -3.881793120694403, + 32.680197187245206 + ], + "step": 447, + "time": 11.175 + }, + { + "observations": { + "radius": 32.29161762632077, + "x": -7.591005606499837, + "y": -2.9794024293380494, + "z": 31.244973419266223 + }, + "state": [ + -7.591005606499837, + -2.9794024293380494, + 31.244973419266223 + ], + "step": 448, + "time": 11.2 + }, + { + "observations": { + "radius": 30.494113640039565, + "x": -6.5061460318326505, + "y": -2.4736174755511477, + "z": 29.68909306612048 + }, + "state": [ + -6.5061460318326505, + -2.4736174755511477, + 29.68909306612048 + ], + "step": 449, + "time": 11.225 + }, + { + "observations": { + "radius": 28.75726987016722, + "x": -5.586533610615853, + "y": -2.275847784219575, + "z": 28.117463069525844 + }, + "state": [ + -5.586533610615853, + -2.275847784219575, + 28.117463069525844 + ], + "step": 450, + "time": 11.25 + }, + { + "observations": { + "radius": 27.127121770274815, + "x": -4.853734735574939, + "y": -2.3014642618846106, + "z": 26.589946538255 + }, + "state": [ + -4.853734735574939, + -2.3014642618846106, + 26.589946538255 + ], + "step": 451, + "time": 11.275 + }, + { + "observations": { + "radius": 25.62506625704684, + "x": -4.307874231112404, + "y": -2.484884821631731, + "z": 25.13785169242158 + }, + "state": [ + -4.307874231112404, + -2.484884821631731, + 25.13785169242158 + ], + "step": 452, + "time": 11.3 + }, + { + "observations": { + "radius": 24.261229306084655, + "x": -3.9371274646750973, + "y": -2.7828804644334575, + "z": 23.777339024583817 + }, + "state": [ + -3.9371274646750973, + -2.7828804644334575, + 23.777339024583817 + ], + "step": 453, + "time": 11.325 + }, + { + "observations": { + "radius": 23.043552410448818, + "x": -3.7250873941368337, + "y": -3.1721215372673215, + "z": 22.518141054535324 + }, + "state": [ + -3.7250873941368337, + -3.1721215372673215, + 22.518141054535324 + ], + "step": 454, + "time": 11.35 + }, + { + "observations": { + "radius": 21.98339256813766, + "x": -3.65569398051263, + "y": -3.6448634066161434, + "z": 21.368678505532447 + }, + "state": [ + -3.65569398051263, + -3.6448634066161434, + 21.368678505532447 + ], + "step": 455, + "time": 11.375 + }, + { + "observations": { + "radius": 21.09902054980044, + "x": -3.7161023713146952, + "y": -4.204666972068576, + "z": 20.339125521536225 + }, + "state": [ + -3.7161023713146952, + -4.204666972068576, + 20.339125521536225 + ], + "step": 456, + "time": 11.4 + }, + { + "observations": { + "radius": 20.418020831875783, + "x": -3.8980405332446835, + "y": -4.862756648776836, + "z": 19.443622411137067 + }, + "state": [ + -3.8980405332446835, + -4.862756648776836, + 19.443622411137067 + ], + "step": 457, + "time": 11.425 + }, + { + "observations": { + "radius": 19.978862234291416, + "x": -4.198127273621566, + "y": -5.634895705850237, + "z": 18.702369207013884 + }, + "state": [ + -4.198127273621566, + -5.634895705850237, + 18.702369207013884 + ], + "step": 458, + "time": 11.45 + }, + { + "observations": { + "radius": 19.831101741378795, + "x": -4.617439740112911, + "y": -6.538247232895196, + "z": 18.143956835400633 + }, + "state": [ + -4.617439740112911, + -6.538247232895196, + 18.143956835400633 + ], + "step": 459, + "time": 11.475 + }, + { + "observations": { + "radius": 20.033016386780087, + "x": -5.160403613695301, + "y": -7.587400537674572, + "z": 17.80795701863792 + }, + "state": [ + -5.160403613695301, + -7.587400537674572, + 17.80795701863792 + ], + "step": 460, + "time": 11.5 + }, + { + "observations": { + "radius": 20.645291995441006, + "x": -5.8328525807030775, + "y": -8.788498717884792, + "z": 17.747343537401402 + }, + "state": [ + -5.8328525807030775, + -8.788498717884792, + 17.747343537401402 + ], + "step": 461, + "time": 11.525 + }, + { + "observations": { + "radius": 21.72008227948661, + "x": -6.6388834852633245, + "y": -10.130276360706574, + "z": 18.02955077511572 + }, + "state": [ + -6.6388834852633245, + -10.130276360706574, + 18.02955077511572 + ], + "step": 462, + "time": 11.55 + }, + { + "observations": { + "radius": 23.286008873524274, + "x": -7.575976390675935, + "y": -11.571139758719614, + "z": 18.733699999464875 + }, + "state": [ + -7.575976390675935, + -11.571139758719614, + 18.733699999464875 + ], + "step": 463, + "time": 11.575 + }, + { + "observations": { + "radius": 25.33049421644915, + "x": -8.627917870924595, + "y": -13.0229447866557, + "z": 19.93980640693036 + }, + "state": [ + -8.627917870924595, + -13.0229447866557, + 19.93980640693036 + ], + "step": 464, + "time": 11.6 + }, + { + "observations": { + "radius": 27.78096813455948, + "x": -9.755703059733202, + "y": -14.33597750796056, + "z": 21.7045662752097 + }, + "state": [ + -9.755703059733202, + -14.33597750796056, + 21.7045662752097 + ], + "step": 465, + "time": 11.625 + }, + { + "observations": { + "radius": 30.487926137214526, + "x": -10.8882809293693, + "y": -15.296378940368376, + "z": 24.020403199447678 + }, + "state": [ + -10.8882809293693, + -15.296378940368376, + 24.020403199447678 + ], + "step": 466, + "time": 11.65 + }, + { + "observations": { + "radius": 33.21773256421658, + "x": -11.917920745261263, + "y": -15.653968452731215, + "z": 26.76442029072145 + }, + "state": [ + -11.917920745261263, + -15.653968452731215, + 26.76442029072145 + ], + "step": 467, + "time": 11.675 + }, + { + "observations": { + "radius": 35.669273015192175, + "x": -12.707821746917615, + "y": -15.19498512307062, + "z": 29.663457839411556 + }, + "state": [ + -12.707821746917615, + -15.19498512307062, + 29.663457839411556 + ], + "step": 468, + "time": 11.7 + }, + { + "observations": { + "radius": 37.52718581256284, + "x": -13.118491626445534, + "y": -13.847122481261323, + "z": 32.3179834062468 + }, + "state": [ + -13.118491626445534, + -13.847122481261323, + 32.3179834062468 + ], + "step": 469, + "time": 11.725 + }, + { + "observations": { + "radius": 38.54586369363051, + "x": -13.050017913901632, + "y": -11.759157850734248, + "z": 34.310389781760044 + }, + "state": [ + -13.050017913901632, + -11.759157850734248, + 34.310389781760044 + ], + "step": 470, + "time": 11.75 + }, + { + "observations": { + "radius": 38.62859353674846, + "x": -12.482289160096608, + "y": -9.281929156041457, + "z": 35.35825910721973 + }, + "state": [ + -12.482289160096608, + -9.281929156041457, + 35.35825910721973 + ], + "step": 471, + "time": 11.775 + }, + { + "observations": { + "radius": 37.85425482093986, + "x": -11.488632926039013, + "y": -6.838674227435416, + "z": 35.414523240478495 + }, + "state": [ + -11.488632926039013, + -6.838674227435416, + 35.414523240478495 + ], + "step": 472, + "time": 11.8 + }, + { + "observations": { + "radius": 36.433194825525405, + "x": -10.21238603105542, + "y": -4.766793497073039, + "z": 34.6462485199142 + }, + "state": [ + -10.21238603105542, + -4.766793497073039, + 34.6462485199142 + ], + "step": 473, + "time": 11.825 + }, + { + "observations": { + "radius": 34.622101213442896, + "x": -8.820589185124959, + "y": -3.231604083195288, + "z": 33.32332267212584 + }, + "state": [ + -8.820589185124959, + -3.231604083195288, + 33.32332267212584 + ], + "step": 474, + "time": 11.85 + }, + { + "observations": { + "radius": 32.64779471252126, + "x": -7.460567935497489, + "y": -2.2387119547344088, + "z": 31.704993210131544 + }, + "state": [ + -7.460567935497489, + -2.2387119547344088, + 31.704993210131544 + ], + "step": 475, + "time": 11.875 + }, + { + "observations": { + "radius": 30.669609223157995, + "x": -6.236121140485607, + "y": -1.6996740886733144, + "z": 29.980774356488844 + }, + "state": [ + -6.236121140485607, + -1.6996740886733144, + 29.980774356488844 + ], + "step": 476, + "time": 11.9 + }, + { + "observations": { + "radius": 28.77859747418442, + "x": -5.204192967909747, + "y": -1.4970803056875117, + "z": 28.26451483206841 + }, + "state": [ + -5.204192967909747, + -1.4970803056875117, + 28.26451483206841 + ], + "step": 477, + "time": 11.925 + }, + { + "observations": { + "radius": 27.015912345865083, + "x": -4.383955400865248, + "y": -1.52464230985093, + "z": 26.614205243623232 + }, + "state": [ + -4.383955400865248, + -1.52464230985093, + 26.614205243623232 + ], + "step": 478, + "time": 11.95 + }, + { + "observations": { + "radius": 25.39421736039145, + "x": -3.769826263492779, + "y": -1.703183143450789, + "z": 25.055016513060846 + }, + "state": [ + -3.769826263492779, + -1.703183143450789, + 25.055016513060846 + ], + "step": 479, + "time": 11.975 + }, + { + "observations": { + "radius": 23.914136289232694, + "x": -3.343288982060105, + "y": -1.982105996363054, + "z": 23.59617742477822 + }, + "state": [ + -3.343288982060105, + -1.982105996363054, + 23.59617742477822 + ], + "step": 480, + "time": 12.0 + }, + { + "observations": { + "radius": 22.574402362914512, + "x": -3.0815935553392526, + "y": -2.334715896102463, + "z": 22.24087509265178 + }, + "state": [ + -3.0815935553392526, + -2.334715896102463, + 22.24087509265178 + ], + "step": 481, + "time": 12.025 + }, + { + "observations": { + "radius": 21.377398823491383, + "x": -2.9632869653410356, + "y": -2.7522217916497924, + "z": 20.991364558532602 + }, + "state": [ + -2.9632869653410356, + -2.7522217916497924, + 20.991364558532602 + ], + "step": 482, + "time": 12.05 + }, + { + "observations": { + "radius": 20.33226786978554, + "x": -2.9712614129078916, + "y": -3.2385072845614036, + "z": 19.851569028989136 + }, + "state": [ + -2.9712614129078916, + -3.2385072845614036, + 19.851569028989136 + ], + "step": 483, + "time": 12.075 + }, + { + "observations": { + "radius": 19.457178870500176, + "x": -3.0941227005951193, + "y": -3.806227175227866, + "z": 18.828724040753727 + }, + "state": [ + -3.0941227005951193, + -3.806227175227866, + 18.828724040753727 + ], + "step": 484, + "time": 12.1 + }, + { + "observations": { + "radius": 18.781524583934843, + "x": -3.3265325287245173, + "y": -4.474058099924402, + "z": 17.934956123469814 + }, + "state": [ + -3.3265325287245173, + -4.474058099924402, + 17.934956123469814 + ], + "step": 485, + "time": 12.125 + }, + { + "observations": { + "radius": 18.34798286818948, + "x": -3.668952626879297, + "y": -5.264593750637782, + "z": 17.18927905974639 + }, + "state": [ + -3.668952626879297, + -5.264593750637782, + 17.18927905974639 + ], + "step": 486, + "time": 12.15 + }, + { + "observations": { + "radius": 18.213511489018742, + "x": -4.126986220381239, + "y": -6.202162255222749, + "z": 16.62026380227737 + }, + "state": [ + -4.126986220381239, + -6.202162255222749, + 16.62026380227737 + ], + "step": 487, + "time": 12.175 + }, + { + "observations": { + "radius": 18.447540301505946, + "x": -4.710282842581754, + "y": -7.309601196973873, + "z": 16.26944095719838 + }, + "state": [ + -4.710282842581754, + -7.309601196973873, + 16.26944095719838 + ], + "step": 488, + "time": 12.2 + }, + { + "observations": { + "radius": 19.125412169836405, + "x": -5.430729411984002, + "y": -8.602685884133034, + "z": 16.19513396977242 + }, + "state": [ + -5.430729411984002, + -8.602685884133034, + 16.19513396977242 + ], + "step": 489, + "time": 12.225 + }, + { + "observations": { + "radius": 20.31613462966197, + "x": -6.299378248909278, + "y": -10.080525234936161, + "z": 16.475623537685433 + }, + "state": [ + -6.299378248909278, + -10.080525234936161, + 16.475623537685433 + ], + "step": 490, + "time": 12.25 + }, + { + "observations": { + "radius": 22.065297966536324, + "x": -7.3212910223857826, + "y": -11.710165207598607, + "z": 17.208954149753332 + }, + "state": [ + -7.3212910223857826, + -11.710165207598607, + 17.208954149753332 + ], + "step": 491, + "time": 12.275 + }, + { + "observations": { + "radius": 24.374691748361318, + "x": -8.487369322159687, + "y": -13.40482735234007, + "z": 18.504074239768155 + }, + "state": [ + -8.487369322159687, + -13.40482735234007, + 18.504074239768155 + ], + "step": 492, + "time": 12.3 + }, + { + "observations": { + "radius": 27.179135139736577, + "x": -9.76273891632343, + "y": -14.999522969521863, + "z": 20.45503914644393 + }, + "state": [ + -9.76273891632343, + -14.999522969521863, + 20.45503914644393 + ], + "step": 493, + "time": 12.325 + }, + { + "observations": { + "radius": 30.32189271823674, + "x": -11.07316892814938, + "y": -16.237294831453756, + "z": 23.090092344149916 + }, + "state": [ + -11.07316892814938, + -16.237294831453756, + 23.090092344149916 + ], + "step": 494, + "time": 12.35 + }, + { + "observations": { + "radius": 33.53734363685272, + "x": -12.295117929172719, + "y": -16.7923632907543, + "z": 26.298289458354674 + }, + "state": [ + -12.295117929172719, + -16.7923632907543, + 26.298289458354674 + ], + "step": 495, + "time": 12.375 + }, + { + "observations": { + "radius": 36.46149483508549, + "x": -13.260321613299894, + "y": -16.35935804872281, + "z": 29.76534697520769 + }, + "state": [ + -13.260321613299894, + -16.35935804872281, + 29.76534697520769 + ], + "step": 496, + "time": 12.4 + }, + { + "observations": { + "radius": 38.69430615443321, + "x": -13.786887031342937, + "y": -14.80400926625405, + "z": 32.98503273308456 + }, + "state": [ + -13.786887031342937, + -14.80400926625405, + 32.98503273308456 + ], + "step": 497, + "time": 12.425 + }, + { + "observations": { + "radius": 39.91376247541703, + "x": -13.736888619672383, + "y": -12.29513530800038, + "z": 35.40107305933941 + }, + "state": [ + -13.736888619672383, + -12.29513530800038, + 35.40107305933941 + ], + "step": 498, + "time": 12.45 + }, + { + "observations": { + "radius": 39.99245417618899, + "x": -13.075955571749033, + "y": -9.293902901964085, + "z": 36.63385245601513 + }, + "state": [ + -13.075955571749033, + -9.293902901964085, + 36.63385245601513 + ], + "step": 499, + "time": 12.475 + }, + { + "observations": { + "radius": 39.0404435181123, + "x": -11.89589690839526, + "y": -6.365754306015048, + "z": 36.634970164464434 + }, + "state": [ + -11.89589690839526, + -6.365754306015048, + 36.634970164464434 + ], + "step": 500, + "time": 12.5 + }, + { + "observations": { + "radius": 37.34141629031518, + "x": -10.381812698742722, + "y": -3.944876264032603, + "z": 35.651609878325445 + }, + "state": [ + -10.381812698742722, + -3.944876264032603, + 35.651609878325445 + ], + "step": 501, + "time": 12.525 + }, + { + "observations": { + "radius": 35.229102942484886, + "x": -8.745810374600792, + "y": -2.2164580924438737, + "z": 34.05418929512436 + }, + "state": [ + -8.745810374600792, + -2.2164580924438737, + 34.05418929512436 + ], + "step": 502, + "time": 12.55 + }, + { + "observations": { + "radius": 32.98257434406766, + "x": -7.167683775297764, + "y": -1.1510349109393885, + "z": 32.17374144070102 + }, + "state": [ + -7.167683775297764, + -1.1510349109393885, + 32.17374144070102 + ], + "step": 503, + "time": 12.575 + }, + { + "observations": { + "radius": 30.782138938320614, + "x": -5.766179837425406, + "y": -0.6081358445001823, + "z": 30.231133265148642 + }, + "state": [ + -5.766179837425406, + -0.6081358445001823, + 30.231133265148642 + ], + "step": 504, + "time": 12.6 + }, + { + "observations": { + "radius": 28.71709119258789, + "x": -4.598990256907337, + "y": -0.42604530522881223, + "z": 28.343237298836787 + }, + "state": [ + -4.598990256907337, + -0.42604530522881223, + 28.343237298836787 + ], + "step": 505, + "time": 12.625 + }, + { + "observations": { + "radius": 26.81590788324605, + "x": -3.677793547292434, + "y": -0.46930047377823836, + "z": 26.558360402922904 + }, + "state": [ + -3.677793547292434, + -0.46930047377823836, + 26.558360402922904 + ], + "step": 506, + "time": 12.65 + }, + { + "observations": { + "radius": 25.075989044899394, + "x": -2.9862986270338823, + "y": -0.6425825074569168, + "z": 24.889241346638116 + }, + "state": [ + -2.9862986270338823, + -0.6425825074569168, + 24.889241346638116 + ], + "step": 507, + "time": 12.675 + }, + { + "observations": { + "radius": 23.483798611851313, + "x": -2.495129298945492, + "y": -0.88753825748792, + "z": 23.33399671862985 + }, + "state": [ + -2.495129298945492, + -0.88753825748792, + 23.33399671862985 + ], + "step": 508, + "time": 12.7 + }, + { + "observations": { + "radius": 22.02549414134907, + "x": -2.171926944335578, + "y": -1.174083670501479, + "z": 21.88667752432363 + }, + "state": [ + -2.171926944335578, + -1.174083670501479, + 21.88667752432363 + ], + "step": 509, + "time": 12.725 + }, + { + "observations": { + "radius": 20.691397213482862, + "x": -1.9872402020989575, + "y": -1.491757271191755, + "z": 20.541651717160782 + }, + "state": [ + -1.9872402020989575, + -1.491757271191755, + 20.541651717160782 + ], + "step": 510, + "time": 12.75 + }, + { + "observations": { + "radius": 19.477542866425473, + "x": -1.9174112717732106, + "y": -1.843042265732758, + "z": 19.295113509255174 + }, + "state": [ + -1.9174112717732106, + -1.843042265732758, + 19.295113509255174 + ], + "step": 511, + "time": 12.775 + }, + { + "observations": { + "radius": 18.38643864785286, + "x": -1.945604969566569, + "y": -2.2389010485897365, + "z": 18.1456074450066 + }, + "state": [ + -1.945604969566569, + -2.2389010485897365, + 18.1456074450066 + ], + "step": 512, + "time": 12.8 + }, + { + "observations": { + "radius": 17.42818368553575, + "x": -2.061844048864843, + "y": -2.6961551711630336, + "z": 17.094476680727784 + }, + "state": [ + -2.061844048864843, + -2.6961551711630336, + 17.094476680727784 + ], + "step": 513, + "time": 12.825 + }, + { + "observations": { + "radius": 16.622475686635724, + "x": -2.262619711178224, + "y": -3.2361916891231104, + "z": 16.146650220607185 + }, + "state": [ + -2.262619711178224, + -3.2361916891231104, + 16.146650220607185 + ], + "step": 514, + "time": 12.85 + }, + { + "observations": { + "radius": 16.00160020255521, + "x": -2.5504043437020996, + "y": -3.8844746702644106, + "z": 15.31200520056451 + }, + "state": [ + -2.5504043437020996, + -3.8844746702644106, + 15.31200520056451 + ], + "step": 515, + "time": 12.875 + }, + { + "observations": { + "radius": 15.61395292791173, + "x": -2.933206294499607, + "y": -4.670335979901045, + "z": 14.607525071133471 + }, + "state": [ + -2.933206294499607, + -4.670335979901045, + 14.607525071133471 + ], + "step": 516, + "time": 12.9 + }, + { + "observations": { + "radius": 15.526736873455059, + "x": -3.424150221437108, + "y": -5.626418494945272, + "z": 14.060518060095758 + }, + "state": [ + -3.424150221437108, + -5.626418494945272, + 14.060518060095758 + ], + "step": 517, + "time": 12.925 + }, + { + "observations": { + "radius": 15.82534189597762, + "x": -4.040903361365784, + "y": -6.7868654026765, + "z": 13.713169004815773 + }, + "state": [ + -4.040903361365784, + -6.7868654026765, + 13.713169004815773 + ], + "step": 518, + "time": 12.95 + }, + { + "observations": { + "radius": 16.606579761737766, + "x": -4.80455017714827, + "y": -8.182804387494347, + "z": 13.628517943423862 + }, + "state": [ + -4.80455017714827, + -8.182804387494347, + 13.628517943423862 + ], + "step": 519, + "time": 12.975 + }, + { + "observations": { + "radius": 17.964801210015715, + "x": -5.737191979033843, + "y": -9.832825189372905, + "z": 13.897275254751396 + }, + "state": [ + -5.737191979033843, + -9.832825189372905, + 13.897275254751396 + ], + "step": 520, + "time": 13.0 + }, + { + "observations": { + "radius": 19.972979183568395, + "x": -6.857086002774302, + "y": -11.72519510324604, + "z": 14.643089455734 + }, + "state": [ + -6.857086002774302, + -11.72519510324604, + 14.643089455734 + ], + "step": 521, + "time": 13.025 + }, + { + "observations": { + "radius": 22.66072762972546, + "x": -8.169638161679359, + "y": -13.788484761816257, + "z": 16.0200897934124 + }, + "state": [ + -8.169638161679359, + -13.788484761816257, + 16.0200897934124 + ], + "step": 522, + "time": 13.05 + }, + { + "observations": { + "radius": 25.986687489714548, + "x": -9.652505659822172, + "y": -15.85086578703652, + "z": 18.190302773086067 + }, + "state": [ + -9.652505659822172, + -15.85086578703652, + 18.190302773086067 + ], + "step": 523, + "time": 13.075 + }, + { + "observations": { + "radius": 29.801245564269035, + "x": -11.23472690494865, + "y": -17.60082771540623, + "z": 21.262784678533425 + }, + "state": [ + -11.23472690494865, + -17.60082771540623, + 21.262784678533425 + ], + "step": 524, + "time": 13.1 + }, + { + "observations": { + "radius": 33.80653973773888, + "x": -12.775331225148607, + "y": -18.58728615706689, + "z": 25.183046567926816 + }, + "state": [ + -12.775331225148607, + -18.58728615706689, + 25.183046567926816 + ], + "step": 525, + "time": 13.125 + }, + { + "observations": { + "radius": 37.544579005320024, + "x": -14.057211168029118, + "y": -18.321073387235934, + "z": 29.602846092963254 + }, + "state": [ + -14.057211168029118, + -18.321073387235934, + 29.602846092963254 + ], + "step": 526, + "time": 13.15 + }, + { + "observations": { + "radius": 40.46322689717818, + "x": -14.82044140275061, + "y": -16.509251172843513, + "z": 33.83891063955996 + }, + "state": [ + -14.82044140275061, + -16.509251172843513, + 33.83891063955996 + ], + "step": 527, + "time": 13.175 + }, + { + "observations": { + "radius": 42.08363116949369, + "x": -14.846787843432658, + "y": -13.315777610297594, + "z": 37.0579946809751 + }, + "state": [ + -14.846787843432658, + -13.315777610297594, + 37.0579946809751 + ], + "step": 528, + "time": 13.2 + }, + { + "observations": { + "radius": 42.20110418546442, + "x": -14.062415813789894, + "y": -9.401418436261272, + "z": 38.66257864316375 + }, + "state": [ + -14.062415813789894, + -9.401418436261272, + 38.66257864316375 + ], + "step": 529, + "time": 13.225 + }, + { + "observations": { + "radius": 40.97508200677958, + "x": -12.586129016595597, + "y": -5.619606587144957, + "z": 38.587131580951166 + }, + "state": [ + -12.586129016595597, + -5.619606587144957, + 38.587131580951166 + ], + "step": 530, + "time": 13.25 + }, + { + "observations": { + "radius": 38.829116662504475, + "x": -10.679889880138534, + "y": -2.6005577629009395, + "z": 37.24080225049284 + }, + "state": [ + -10.679889880138534, + -2.6005577629009395, + 37.24080225049284 + ], + "step": 531, + "time": 13.275 + }, + { + "observations": { + "radius": 36.2441643345098, + "x": -8.639973538138383, + "y": -0.5610273053880849, + "z": 35.19482282850461 + }, + "state": [ + -8.639973538138383, + -0.5610273053880849, + 35.19482282850461 + ], + "step": 532, + "time": 13.3 + }, + { + "observations": { + "radius": 33.59388622773512, + "x": -6.704507674052653, + "y": 0.6058166013934779, + "z": 32.91248630802688 + }, + "state": [ + -6.704507674052653, + 0.6058166013934779, + 32.91248630802688 + ], + "step": 533, + "time": 13.325 + }, + { + "observations": { + "radius": 31.09082684159136, + "x": -5.0164591789036885, + "y": 1.142114611127432, + "z": 30.662195375009595 + }, + "state": [ + -5.0164591789036885, + 1.142114611127432, + 30.662195375009595 + ], + "step": 534, + "time": 13.35 + }, + { + "observations": { + "radius": 28.815304872610422, + "x": -3.6320567136489825, + "y": 1.28864695231194, + "z": 28.556423935125707 + }, + "state": [ + -3.6320567136489825, + 1.28864695231194, + 28.556423935125707 + ], + "step": 535, + "time": 13.375 + }, + { + "observations": { + "radius": 26.77050948720201, + "x": -2.548018752765451, + "y": 1.2286533083869424, + "z": 26.620634659746905 + }, + "state": [ + -2.548018752765451, + 1.2286533083869424, + 26.620634659746905 + ], + "step": 536, + "time": 13.4 + }, + { + "observations": { + "radius": 24.927904105705544, + "x": -1.7287124996173993, + "y": 1.0819683719812387, + "z": 24.84434142091414 + }, + "state": [ + -1.7287124996173993, + 1.0819683719812387, + 24.84434142091414 + ], + "step": 537, + "time": 13.425 + }, + { + "observations": { + "radius": 23.253285938957077, + "x": -1.1259455077896074, + "y": 0.9184302756630289, + "z": 23.207844352742736 + }, + "state": [ + -1.1259455077896074, + 0.9184302756630289, + 23.207844352742736 + ], + "step": 538, + "time": 13.45 + }, + { + "observations": { + "radius": 21.717549548232757, + "x": -0.6909048763353451, + "y": 0.7741306951084339, + "z": 21.69274833898858 + }, + "state": [ + -0.6909048763353451, + 0.7741306951084339, + 21.69274833898858 + ], + "step": 539, + "time": 13.475 + }, + { + "observations": { + "radius": 20.299009489073438, + "x": -0.38015710334206276, + "y": 0.664687720325292, + "z": 20.284562037389932 + }, + "state": [ + -0.38015710334206276, + 0.664687720325292, + 20.284562037389932 + ], + "step": 540, + "time": 13.5 + }, + { + "observations": { + "radius": 18.982326821762165, + "x": -0.15784449791995475, + "y": 0.594560173764566, + "z": 18.972356598020202 + }, + "state": [ + -0.15784449791995475, + 0.594560173764566, + 18.972356598020202 + ], + "step": 541, + "time": 13.525 + }, + { + "observations": { + "radius": 17.756690699635467, + "x": 0.0042642147868568805, + "y": 0.563032340264472, + "z": 17.747761577247122 + }, + "state": [ + 0.0042642147868568805, + 0.563032340264472, + 17.747761577247122 + ], + "step": 542, + "time": 13.55 + }, + { + "observations": { + "radius": 16.614294075652758, + "x": 0.12776582424923413, + "y": 0.5678063297306291, + "z": 16.60409706964947 + }, + "state": [ + 0.12776582424923413, + 0.5678063297306291, + 16.60409706964947 + ], + "step": 543, + "time": 13.575 + }, + { + "observations": { + "radius": 15.549346866525852, + "x": 0.22899611997714445, + "y": 0.6070300390787261, + "z": 15.535805845987804 + }, + "state": [ + 0.22899611997714445, + 0.6070300390787261, + 15.535805845987804 + ], + "step": 544, + "time": 13.6 + }, + { + "observations": { + "radius": 14.55758170291949, + "x": 0.3204304707530469, + "y": 0.6803874084023064, + "z": 14.538142327170858 + }, + "state": [ + 0.3204304707530469, + 0.6803874084023064, + 14.538142327170858 + ], + "step": 545, + "time": 13.625 + }, + { + "observations": { + "radius": 13.636163237540508, + "x": 0.4119516362992803, + "y": 0.789689229987978, + "z": 13.607043566118342 + }, + "state": [ + 0.4119516362992803, + 0.789689229987978, + 13.607043566118342 + ], + "step": 546, + "time": 13.65 + }, + { + "observations": { + "radius": 12.78396460183547, + "x": 0.511939555982572, + "y": 0.9392551716728292, + "z": 12.739131389325118 + }, + "state": [ + 0.511939555982572, + 0.9392551716728292, + 12.739131389325118 + ], + "step": 547, + "time": 13.675 + }, + { + "observations": { + "radius": 12.002262681148427, + "x": 0.6281993164408073, + "y": 1.1362734224752231, + "z": 11.931829608047877 + }, + "state": [ + 0.6281993164408073, + 1.1362734224752231, + 11.931829608047877 + ], + "step": 548, + "time": 13.7 + }, + { + "observations": { + "radius": 11.296010463830402, + "x": 0.7687726836574734, + "y": 1.391256030837923, + "z": 11.183615140753242 + }, + "state": [ + 0.7687726836574734, + 1.391256030837923, + 11.183615140753242 + ], + "step": 549, + "time": 13.725 + }, + { + "observations": { + "radius": 10.675962011577374, + "x": 0.9426894637571732, + "y": 1.7186648598608307, + "z": 10.494460088401116 + }, + "state": [ + 0.9426894637571732, + 1.7186648598608307, + 10.494460088401116 + ], + "step": 550, + "time": 13.75 + }, + { + "observations": { + "radius": 10.162012032990162, + "x": 1.1607153554527723, + "y": 2.137752974545198, + "z": 9.866571878929182 + }, + "state": [ + 1.1607153554527723, + 2.137752974545198, + 9.866571878929182 + ], + "step": 551, + "time": 13.775 + }, + { + "observations": { + "radius": 9.788015751441323, + "x": 1.4361468022499875, + "y": 2.6736323796173798, + "z": 9.30561253284877 + }, + "state": [ + 1.4361468022499875, + 2.6736323796173798, + 9.30561253284877 + ], + "step": 552, + "time": 13.8 + }, + { + "observations": { + "radius": 9.60771541622505, + "x": 1.7856882228261608, + "y": 3.3585164616601895, + "z": 8.822691214520995 + }, + "state": [ + 1.7856882228261608, + 3.3585164616601895, + 8.822691214520995 + ], + "step": 553, + "time": 13.825 + }, + { + "observations": { + "radius": 9.699771686852479, + "x": 2.2304137789208434, + "y": 4.232947511657527, + "z": 8.437593289286784 + }, + "state": [ + 2.2304137789208434, + 4.232947511657527, + 8.437593289286784 + ], + "step": 554, + "time": 13.85 + }, + { + "observations": { + "radius": 10.167787793152547, + "x": 2.796743009385046, + "y": 5.346516666543131, + "z": 8.183941390333532 + }, + "state": [ + 2.796743009385046, + 5.346516666543131, + 8.183941390333532 + ], + "step": 555, + "time": 13.875 + }, + { + "observations": { + "radius": 11.131783092078583, + "x": 3.517200844720503, + "y": 6.756945360054818, + "z": 8.117239828181601 + }, + "state": [ + 3.517200844720503, + 6.756945360054818, + 8.117239828181601 + ], + "step": 556, + "time": 13.9 + }, + { + "observations": { + "radius": 12.713870184244984, + "x": 4.430402656655019, + "y": 8.525127935352756, + "z": 8.326837397692222 + }, + "state": [ + 4.430402656655019, + 8.525127935352756, + 8.326837397692222 + ], + "step": 557, + "time": 13.925 + }, + { + "observations": { + "radius": 15.026206815125718, + "x": 5.579053487025848, + "y": 10.701421415479562, + "z": 8.952130088875537 + }, + "state": [ + 5.579053487025848, + 10.701421415479562, + 8.952130088875537 + ], + "step": 558, + "time": 13.95 + }, + { + "observations": { + "radius": 18.161751724096263, + "x": 7.003587027922792, + "y": 13.294922278869562, + "z": 10.200197842632411 + }, + "state": [ + 7.003587027922792, + 13.294922278869562, + 10.200197842632411 + ], + "step": 559, + "time": 13.975 + }, + { + "observations": { + "radius": 22.173579368329545, + "x": 8.727346892899337, + "y": 16.214191135894716, + "z": 12.353179510688058 + }, + "state": [ + 8.727346892899337, + 16.214191135894716, + 12.353179510688058 + ], + "step": 560, + "time": 14.0 + }, + { + "observations": { + "radius": 27.02301645045842, + "x": 10.727796241798732, + "y": 19.172245144885984, + "z": 15.73476475771377 + }, + "state": [ + 10.727796241798732, + 19.172245144885984, + 15.73476475771377 + ], + "step": 561, + "time": 14.025 + }, + { + "observations": { + "radius": 32.48723440332699, + "x": 12.890758329517253, + "y": 21.580361386750994, + "z": 20.580008534593006 + }, + "state": [ + 12.890758329517253, + 21.580361386750994, + 20.580008534593006 + ], + "step": 562, + "time": 14.05 + }, + { + "observations": { + "radius": 38.05196222538756, + "x": 14.959412793914673, + "y": 22.538962134077956, + "z": 26.761221645922372 + }, + "state": [ + 14.959412793914673, + 22.538962134077956, + 26.761221645922372 + ], + "step": 563, + "time": 14.075 + }, + { + "observations": { + "radius": 42.88489736055275, + "x": 16.523056074189007, + "y": 21.12639080438726, + "z": 33.46309386734364 + }, + "state": [ + 16.523056074189007, + 21.12639080438726, + 33.46309386734364 + ], + "step": 564, + "time": 14.1 + }, + { + "observations": { + "radius": 46.036018062091166, + "x": 17.116946207479238, + "y": 17.051759010791056, + "z": 39.18625557745154 + }, + "state": [ + 17.116946207479238, + 17.051759010791056, + 39.18625557745154 + ], + "step": 565, + "time": 14.125 + }, + { + "observations": { + "radius": 46.88142471636583, + "x": 16.445128475314768, + "y": 11.184443106508411, + "z": 42.453904004978675 + }, + "state": [ + 16.445128475314768, + 11.184443106508411, + 42.453904004978675 + ], + "step": 566, + "time": 14.15 + }, + { + "observations": { + "radius": 45.50234463891357, + "x": 14.577746056478224, + "y": 5.191425311204058, + "z": 42.790206715900425 + }, + "state": [ + 14.577746056478224, + 5.191425311204058, + 42.790206715900425 + ], + "step": 567, + "time": 14.175 + }, + { + "observations": { + "radius": 42.61635415448523, + "x": 11.926102284451545, + "y": 0.4649559735443254, + "z": 40.910946477244636 + }, + "state": [ + 11.926102284451545, + 0.4649559735443254, + 40.910946477244636 + ], + "step": 568, + "time": 14.2 + }, + { + "observations": { + "radius": 39.12601435669144, + "x": 9.014698341150627, + "y": -2.5321831614701575, + "z": 37.98905449856377 + }, + "state": [ + 9.014698341150627, + -2.5321831614701575, + 37.98905449856377 + ], + "step": 569, + "time": 14.225 + }, + { + "observations": { + "radius": 35.710534592658874, + "x": 6.261023869740066, + "y": -4.071525170253355, + "z": 34.92083251848422 + }, + "state": [ + 6.261023869740066, + -4.071525170253355, + 34.92083251848422 + ], + "step": 570, + "time": 14.25 + }, + { + "observations": { + "radius": 32.70266990788808, + "x": 3.89412224624233, + "y": -4.6671517094482, + "z": 32.13282007475541 + }, + "state": [ + 3.89412224624233, + -4.6671517094482, + 32.13282007475541 + ], + "step": 571, + "time": 14.275 + }, + { + "observations": { + "radius": 30.174415797534245, + "x": 1.982905446586743, + "y": -4.768377293724995, + "z": 29.729211773894523 + }, + "state": [ + 1.982905446586743, + -4.768377293724995, + 29.729211773894523 + ], + "step": 572, + "time": 14.3 + }, + { + "observations": { + "radius": 28.071231105605523, + "x": 0.49850139601271126, + "y": -4.6768814211245, + "z": 27.674397776920618 + }, + "state": [ + 0.49850139601271126, + -4.6768814211245, + 27.674397776920618 + ], + "step": 573, + "time": 14.325 + }, + { + "observations": { + "radius": 26.307876503700847, + "x": -0.6330350454881709, + "y": -4.568447592156622, + "z": 25.900442454963528 + }, + "state": [ + -0.6330350454881709, + -4.568447592156622, + 25.900442454963528 + ], + "step": 574, + "time": 14.35 + }, + { + "observations": { + "radius": 24.81378696003328, + "x": -1.4978763204937464, + "y": -4.536024472510699, + "z": 24.349638022180244 + }, + "state": [ + -1.4978763204937464, + -4.536024472510699, + 24.349638022180244 + ], + "step": 575, + "time": 14.375 + }, + { + "observations": { + "radius": 23.54585195666457, + "x": -2.177663076870054, + "y": -4.624801143592772, + "z": 22.984258575621375 + }, + "state": [ + -2.177663076870054, + -4.624801143592772, + 22.984258575621375 + ], + "step": 576, + "time": 14.4 + }, + { + "observations": { + "radius": 22.487114196149992, + "x": -2.742795737373754, + "y": -4.85520798805227, + "z": 21.78472703080046 + }, + "state": [ + -2.742795737373754, + -4.85520798805227, + 21.78472703080046 + ], + "step": 577, + "time": 14.425 + }, + { + "observations": { + "radius": 21.642052177633598, + "x": -3.251154604199497, + "y": -5.236531980631222, + "z": 20.74577424476691 + }, + "state": [ + -3.251154604199497, + -5.236531980631222, + 20.74577424476691 + ], + "step": 578, + "time": 14.45 + }, + { + "observations": { + "radius": 21.032504371020348, + "x": -3.7493354843082605, + "y": -5.7741789787358995, + "z": 19.873791300721194 + }, + "state": [ + -3.7493354843082605, + -5.7741789787358995, + 19.873791300721194 + ], + "step": 579, + "time": 14.475 + }, + { + "observations": { + "radius": 20.69462029624992, + "x": -4.27469314475233, + "y": -6.472616542527774, + "z": 19.185920431857376 + }, + "state": [ + -4.27469314475233, + -6.472616542527774, + 19.185920431857376 + ], + "step": 580, + "time": 14.5 + }, + { + "observations": { + "radius": 20.67556758620012, + "x": -4.857196231699035, + "y": -7.335056132066304, + "z": 18.71052354472569 + }, + "state": [ + -4.857196231699035, + -7.335056132066304, + 18.71052354472569 + ], + "step": 581, + "time": 14.525 + }, + { + "observations": { + "radius": 21.028219746523007, + "x": -5.520461290527171, + "y": -8.360178239414388, + "z": 18.48831935717991 + }, + "state": [ + -5.520461290527171, + -8.360178239414388, + 18.48831935717991 + ], + "step": 582, + "time": 14.55 + }, + { + "observations": { + "radius": 21.80242008573515, + "x": -6.281474777933045, + "y": -9.535685672080737, + "z": 18.573079846173403 + }, + "state": [ + -6.281474777933045, + -9.535685672080737, + 18.573079846173403 + ], + "step": 583, + "time": 14.575 + }, + { + "observations": { + "radius": 23.032504209849012, + "x": -7.14854971300265, + "y": -10.828339173498406, + "z": 19.03001728641154 + }, + "state": [ + -7.14854971300265, + -10.828339173498406, + 19.03001728641154 + ], + "step": 584, + "time": 14.6 + }, + { + "observations": { + "radius": 24.721956060054733, + "x": -8.117144205387982, + "y": -12.170828234572836, + "z": 19.928823885737412 + }, + "state": [ + -8.117144205387982, + -12.170828234572836, + 19.928823885737412 + ], + "step": 585, + "time": 14.625 + }, + { + "observations": { + "radius": 26.82671291172141, + "x": -9.163556425460627, + "y": -13.448098707404409, + "z": 21.32722205166972 + }, + "state": [ + -9.163556425460627, + -13.448098707404409, + 21.32722205166972 + ], + "step": 586, + "time": 14.65 + }, + { + "observations": { + "radius": 29.2393602123538, + "x": -10.237560930136832, + "y": -14.490237839612913, + "z": 23.241461640373753 + }, + "state": [ + -10.237560930136832, + -14.490237839612913, + 23.241461640373753 + ], + "step": 587, + "time": 14.675 + }, + { + "observations": { + "radius": 31.77909381592823, + "x": -11.257043965517314, + "y": -15.084625353971644, + "z": 25.605543205530594 + }, + "state": [ + -11.257043965517314, + -15.084625353971644, + 25.605543205530594 + ], + "step": 588, + "time": 14.7 + }, + { + "observations": { + "radius": 34.19701290768732, + "x": -12.11013843712737, + "y": -15.02129407155628, + "z": 28.233684903993165 + }, + "state": [ + -12.11013843712737, + -15.02129407155628, + 28.233684903993165 + ], + "step": 589, + "time": 14.725 + }, + { + "observations": { + "radius": 36.20834811948769, + "x": -12.671060035216671, + "y": -14.17221331744173, + "z": 30.816182125806403 + }, + "state": [ + -12.671060035216671, + -14.17221331744173, + 30.816182125806403 + ], + "step": 590, + "time": 14.75 + }, + { + "observations": { + "radius": 37.554577260401636, + "x": -12.831243641357037, + "y": -12.573681561752117, + "z": 32.97890222259172 + }, + "state": [ + -12.831243641357037, + -12.573681561752117, + 32.97890222259172 + ], + "step": 591, + "time": 14.775 + }, + { + "observations": { + "radius": 38.07707189543035, + "x": -12.536579543184994, + "y": -10.453608491262829, + "z": 34.400866951263964 + }, + "state": [ + -12.536579543184994, + -10.453608491262829, + 34.400866951263964 + ], + "step": 592, + "time": 14.8 + }, + { + "observations": { + "radius": 37.76507198795439, + "x": -11.811780680355142, + "y": -8.164808659572241, + "z": 34.9287617726014 + }, + "state": [ + -11.811780680355142, + -8.164808659572241, + 34.9287617726014 + ], + "step": 593, + "time": 14.825 + }, + { + "observations": { + "radius": 36.74817806867463, + "x": -10.756077876255107, + "y": -6.055247109541093, + "z": 34.613138582471095 + }, + "state": [ + -10.756077876255107, + -6.055247109541093, + 34.613138582471095 + ], + "step": 594, + "time": 14.85 + }, + { + "observations": { + "radius": 35.23836035179166, + "x": -9.511846851189134, + "y": -4.35763158283768, + "z": 33.64933664651506 + }, + "state": [ + -9.511846851189134, + -4.35763158283768, + 33.64933664651506 + ], + "step": 595, + "time": 14.875 + }, + { + "observations": { + "radius": 33.45730467537754, + "x": -8.224128602180532, + "y": -3.155512523657124, + "z": 32.27689089099009 + }, + "state": [ + -8.224128602180532, + -3.155512523657124, + 32.27689089099009 + ], + "step": 596, + "time": 14.9 + }, + { + "observations": { + "radius": 31.58474177881074, + "x": -7.010089795724711, + "y": -2.4172430916669128, + "z": 30.70197860278418 + }, + "state": [ + -7.010089795724711, + -2.4172430916669128, + 30.70197860278418 + ], + "step": 597, + "time": 14.925 + }, + { + "observations": { + "radius": 29.740284233803468, + "x": -5.946325343688497, + "y": -2.053750683633263, + "z": 29.067298280781152 + }, + "state": [ + -5.946325343688497, + -2.053750683633263, + 29.067298280781152 + ], + "step": 598, + "time": 14.95 + }, + { + "observations": { + "radius": 27.990367035995035, + "x": -5.070925166945682, + "y": -1.9656500577151375, + "z": 27.45692234412952 + }, + "state": [ + -5.070925166945682, + -1.9656500577151375, + 27.45692234412952 + ], + "step": 599, + "time": 14.975 + }, + { + "observations": { + "radius": 26.365508252283636, + "x": -4.393069540874366, + "y": -2.0691080756196727, + "z": 25.914470034744756 + }, + "state": [ + -4.393069540874366, + -2.0691080756196727, + 25.914470034744756 + ], + "step": 600, + "time": 15.0 + }, + { + "observations": { + "radius": 24.877210023744887, + "x": -3.904118528408112, + "y": -2.304632182638214, + "z": 24.460623613971944 + }, + "state": [ + -3.904118528408112, + -2.304632182638214, + 24.460623613971944 + ], + "step": 601, + "time": 15.025 + }, + { + "observations": { + "radius": 23.530213903036564, + "x": -3.586971457901461, + "y": -2.6363962894757305, + "z": 23.105281142797075 + }, + "state": [ + -3.586971457901461, + -2.6363962894757305, + 23.105281142797075 + ], + "step": 602, + "time": 15.05 + }, + { + "observations": { + "radius": 22.33007255358977, + "x": -3.4227011719585607, + "y": -3.0478720814547193, + "z": 21.854695896103095 + }, + "state": [ + -3.4227011719585607, + -3.0478720814547193, + 21.854695896103095 + ], + "step": 603, + "time": 15.075 + }, + { + "observations": { + "radius": 21.287599423205634, + "x": -3.3946525589585024, + "y": -3.5368979751452816, + "z": 20.715418796641174 + }, + "state": [ + -3.3946525589585024, + -3.5368979751452816, + 20.715418796641174 + ], + "step": 604, + "time": 15.1 + }, + { + "observations": { + "radius": 20.421748861583335, + "x": -3.4906128063357476, + "y": -4.111444066979691, + "z": 19.69668694186722 + }, + "state": [ + -3.4906128063357476, + -4.111444066979691, + 19.69668694186722 + ], + "step": 605, + "time": 15.125 + }, + { + "observations": { + "radius": 19.761828913578032, + "x": -3.7036711834041633, + "y": -4.7862795332328165, + "z": 18.812342491154762 + }, + "state": [ + -3.7036711834041633, + -4.7862795332328165, + 18.812342491154762 + ], + "step": 606, + "time": 15.15 + }, + { + "observations": { + "radius": 19.349125595210566, + "x": -4.0322260640623515, + "y": -5.580204274793126, + "z": 18.08289618725688 + }, + "state": [ + -4.0322260640623515, + -5.580204274793126, + 18.08289618725688 + ], + "step": 607, + "time": 15.175 + }, + { + "observations": { + "radius": 19.237171480771757, + "x": -4.479381970471635, + "y": -6.513188768137754, + "z": 17.538023714598978 + }, + "state": [ + -4.479381970471635, + -6.513188768137754, + 17.538023714598978 + ], + "step": 608, + "time": 15.2 + }, + { + "observations": { + "radius": 19.48920286786267, + "x": -5.051750215368964, + "y": -7.6025017463099, + "z": 17.21948940542608 + }, + "state": [ + -5.051750215368964, + -7.6025017463099, + 17.21948940542608 + ], + "step": 609, + "time": 15.225 + }, + { + "observations": { + "radius": 20.17124989805508, + "x": -5.757428427046848, + "y": -8.856630227860972, + "z": 17.184046129016274 + }, + "state": [ + -5.757428427046848, + -8.856630227860972, + 17.184046129016274 + ], + "step": 610, + "time": 15.25 + }, + { + "observations": { + "radius": 21.3401956944725, + "x": -6.602693348590662, + "y": -10.265601362711738, + "z": 17.505022750192303 + }, + "state": [ + -6.602693348590662, + -10.265601362711738, + 17.505022750192303 + ], + "step": 611, + "time": 15.275 + }, + { + "observations": { + "radius": 23.02757733073785, + "x": -7.586753022374105, + "y": -11.786585782618262, + "z": 18.26983557368785 + }, + "state": [ + -7.586753022374105, + -11.786585782618262, + 18.26983557368785 + ], + "step": 612, + "time": 15.3 + }, + { + "observations": { + "radius": 25.220567683163022, + "x": -8.693952344502534, + "y": -13.325295513123415, + "z": 19.56856475014095 + }, + "state": [ + -8.693952344502534, + -13.325295513123415, + 19.56856475014095 + ], + "step": 613, + "time": 15.325 + }, + { + "observations": { + "radius": 27.841368974125036, + "x": -9.883518308071672, + "y": -14.718121046630653, + "z": 21.467063261287326 + }, + "state": [ + -9.883518308071672, + -14.718121046630653, + 21.467063261287326 + ], + "step": 614, + "time": 15.35 + }, + { + "observations": { + "radius": 30.727894687829618, + "x": -11.078881274663269, + "y": -15.728077126995924, + "z": 23.960164680893385 + }, + "state": [ + -11.078881274663269, + -15.728077126995924, + 23.960164680893385 + ], + "step": 615, + "time": 15.375 + }, + { + "observations": { + "radius": 33.62485411976689, + "x": -12.16210327429544, + "y": -16.07615391017149, + "z": 26.912289645763217 + }, + "state": [ + -12.16210327429544, + -16.07615391017149, + 26.912289645763217 + ], + "step": 616, + "time": 15.4 + }, + { + "observations": { + "radius": 36.202278451912285, + "x": -12.982477243021178, + "y": -15.52600983432173, + "z": 30.01671648213333 + }, + "state": [ + -12.982477243021178, + -15.52600983432173, + 30.01671648213333 + ], + "step": 617, + "time": 15.425 + }, + { + "observations": { + "radius": 38.11695847785272, + "x": -13.387117775674687, + "y": -14.006570028243338, + "z": 32.82534991902567 + }, + "state": [ + -13.387117775674687, + -14.006570028243338, + 32.82534991902567 + ], + "step": 618, + "time": 15.45 + }, + { + "observations": { + "radius": 39.10927196254479, + "x": -13.269817039252743, + "y": -11.70138649108751, + "z": 34.878713614054696 + }, + "state": [ + -13.269817039252743, + -11.70138649108751, + 34.878713614054696 + ], + "step": 619, + "time": 15.475 + }, + { + "observations": { + "radius": 39.091547040494035, + "x": -12.616135310259452, + "y": -9.017174471577508, + "z": 35.88415728983354 + }, + "state": [ + -12.616135310259452, + -9.017174471577508, + 35.88415728983354 + ], + "step": 620, + "time": 15.5 + }, + { + "observations": { + "radius": 38.17184269937323, + "x": -11.515773014235682, + "y": -6.424630242262407, + "z": 35.821790480104454 + }, + "state": [ + -11.515773014235682, + -6.424630242262407, + 35.821790480104454 + ], + "step": 621, + "time": 15.525 + }, + { + "observations": { + "radius": 36.59583252721078, + "x": -10.13200214232264, + "y": -4.278105993045387, + "z": 34.90408715408408 + }, + "state": [ + -10.13200214232264, + -4.278105993045387, + 34.90408715408408 + ], + "step": 622, + "time": 15.55 + }, + { + "observations": { + "radius": 34.64711197398071, + "x": -8.64753996706063, + "y": -2.730545998757807, + "z": 33.43929633237389 + }, + "state": [ + -8.64753996706063, + -2.730545998757807, + 33.43929633237389 + ], + "step": 623, + "time": 15.575 + }, + { + "observations": { + "radius": 32.56473614060113, + "x": -7.217341435602412, + "y": -1.7620626303828384, + "z": 31.705948303047457 + }, + "state": [ + -7.217341435602412, + -1.7620626303828384, + 31.705948303047457 + ], + "step": 624, + "time": 15.6 + }, + { + "observations": { + "radius": 30.507907704884452, + "x": -5.945507441406047, + "y": -1.260426640789792, + "z": 29.896399423293783 + }, + "state": [ + -5.945507441406047, + -1.260426640789792, + 29.896399423293783 + ], + "step": 625, + "time": 15.625 + }, + { + "observations": { + "radius": 28.56099906065235, + "x": -4.884836119698253, + "y": -1.092434688816995, + "z": 28.118954992619216 + }, + "state": [ + -4.884836119698253, + -1.092434688816995, + 28.118954992619216 + ], + "step": 626, + "time": 15.65 + }, + { + "observations": { + "radius": 26.75687402519484, + "x": -4.048711605941216, + "y": -1.1437887064772323, + "z": 26.424041880965113 + }, + "state": [ + -4.048711605941216, + -1.1437887064772323, + 26.424041880965113 + ], + "step": 627, + "time": 15.675 + }, + { + "observations": { + "radius": 25.100858343016963, + "x": -3.425922967921449, + "y": -1.332501882717269, + "z": 24.83023520038881 + }, + "state": [ + -3.425922967921449, + -1.332501882717269, + 24.83023520038881 + ], + "step": 628, + "time": 15.7 + }, + { + "observations": { + "radius": 23.58780813184974, + "x": -2.9932985657822284, + "y": -1.6078696851747827, + "z": 23.341799657193075 + }, + "state": [ + -2.9932985657822284, + -1.6078696851747827, + 23.341799657193075 + ], + "step": 629, + "time": 15.725 + }, + { + "observations": { + "radius": 22.21187749130673, + "x": -2.7245811316580006, + "y": -1.9441242143344857, + "z": 21.95824538493616 + }, + "state": [ + -2.7245811316580006, + -1.9441242143344857, + 21.95824538493616 + ], + "step": 630, + "time": 15.75 + }, + { + "observations": { + "radius": 20.971378591272657, + "x": -2.595818490896835, + "y": -2.3335457971404083, + "z": 20.678854184733147 + }, + "state": [ + -2.595818490896835, + -2.3335457971404083, + 20.678854184733147 + ], + "step": 631, + "time": 15.775 + }, + { + "observations": { + "radius": 19.871264160603758, + "x": -2.5881722784697705, + "y": -2.780880967975254, + "z": 19.50474825880634 + }, + "state": [ + -2.5881722784697705, + -2.780880967975254, + 19.50474825880634 + ], + "step": 632, + "time": 15.8 + }, + { + "observations": { + "radius": 18.924975219654474, + "x": -2.6890641900326173, + "y": -3.2994314308363384, + "z": 18.44010230664758 + }, + "state": [ + -2.6890641900326173, + -3.2994314308363384, + 18.44010230664758 + ], + "step": 633, + "time": 15.825 + }, + { + "observations": { + "radius": 18.156545091915806, + "x": -2.8923730436288215, + "y": -3.908544365087325, + "z": 17.493358419623302 + }, + "state": [ + -2.8923730436288215, + -3.908544365087325, + 17.493358419623302 + ], + "step": 634, + "time": 15.85 + }, + { + "observations": { + "radius": 17.603100275205538, + "x": -3.198145686723344, + "y": -4.631985787222156, + "z": 16.678900177541866 + }, + "state": [ + -3.198145686723344, + -4.631985787222156, + 16.678900177541866 + ], + "step": 635, + "time": 15.875 + }, + { + "observations": { + "radius": 17.31710698720287, + "x": -3.6120518025820694, + "y": -5.496542987016701, + "z": 16.01946601399596 + }, + "state": [ + -3.6120518025820694, + -5.496542987016701, + 16.01946601399596 + ], + "step": 636, + "time": 15.9 + }, + { + "observations": { + "radius": 17.366790584027733, + "x": -4.14459831125127, + "y": -6.530023273221395, + "z": 15.54948603906362 + }, + "state": [ + -4.14459831125127, + -6.530023273221395, + 15.54948603906362 + ], + "step": 637, + "time": 15.925 + }, + { + "observations": { + "radius": 17.832453083636132, + "x": -4.809897989047311, + "y": -7.757498373690064, + "z": 15.319349963273194 + }, + "state": [ + -4.809897989047311, + -7.757498373690064, + 15.319349963273194 + ], + "step": 638, + "time": 15.95 + }, + { + "observations": { + "radius": 18.79681941444892, + "x": -5.623524161077172, + "y": -9.194154831920343, + "z": 15.40012704609481 + }, + "state": [ + -5.623524161077172, + -9.194154831920343, + 15.40012704609481 + ], + "step": 639, + "time": 15.975 + }, + { + "observations": { + "radius": 20.329462786457405, + "x": -6.598661481168715, + "y": -10.83258739072736, + "z": 15.88709458224352 + }, + "state": [ + -6.598661481168715, + -10.83258739072736, + 15.88709458224352 + ], + "step": 640, + "time": 16.0 + }, + { + "observations": { + "radius": 22.467077298527524, + "x": -7.739442045351388, + "y": -12.622402576924607, + "z": 16.898093157238332 + }, + "state": [ + -7.739442045351388, + -12.622402576924607, + 16.898093157238332 + ], + "step": 641, + "time": 16.025 + }, + { + "observations": { + "radius": 25.190441299427302, + "x": -9.030315279137497, + "y": -14.442138234026267, + "z": 18.558997334138102 + }, + "state": [ + -9.030315279137497, + -14.442138234026267, + 18.558997334138102 + ], + "step": 642, + "time": 16.05 + }, + { + "observations": { + "radius": 28.39711868748206, + "x": -10.421250933035541, + "y": -16.07060199510276, + "z": 20.964961966496574 + }, + "state": [ + -10.421250933035541, + -16.07060199510276, + 20.964961966496574 + ], + "step": 643, + "time": 16.075 + }, + { + "observations": { + "radius": 31.87272284053905, + "x": -11.811726148581522, + "y": -17.17920898471537, + "z": 24.108678215949748 + }, + "state": [ + -11.811726148581522, + -17.17920898471537, + 24.108678215949748 + ], + "step": 644, + "time": 16.1 + }, + { + "observations": { + "radius": 35.276581203566664, + "x": -13.042565138182542, + "y": -17.38317968776337, + "z": 27.78765445249075 + }, + "state": [ + -13.042565138182542, + -17.38317968776337, + 27.78765445249075 + ], + "step": 645, + "time": 16.125 + }, + { + "observations": { + "radius": 38.17234980969137, + "x": -13.911010638075314, + "y": -16.381935757574194, + "z": 31.547492037490276 + }, + "state": [ + -13.911010638075314, + -16.381935757574194, + 31.547492037490276 + ], + "step": 646, + "time": 16.15 + }, + { + "observations": { + "radius": 40.1283966632997, + "x": -14.221231568950886, + "y": -14.15192267452195, + "z": 34.752954925354885 + }, + "state": [ + -14.221231568950886, + -14.15192267452195, + 34.752954925354885 + ], + "step": 647, + "time": 16.175 + }, + { + "observations": { + "radius": 40.86598391857295, + "x": -13.859556404987233, + "y": -11.05322131017231, + "z": 36.82075008142002 + }, + "state": [ + -13.859556404987233, + -11.05322131017231, + 36.82075008142002 + ], + "step": 648, + "time": 16.2 + }, + { + "observations": { + "radius": 40.37093256514254, + "x": -12.852277541989816, + "y": -7.713754206957419, + "z": 37.48505241022877 + }, + "state": [ + -12.852277541989816, + -7.713754206957419, + 37.48505241022877 + ], + "step": 649, + "time": 16.225 + }, + { + "observations": { + "radius": 38.88470544415831, + "x": -11.362215352831337, + "y": -4.742676463523998, + "z": 36.88397212499183 + }, + "state": [ + -11.362215352831337, + -4.742676463523998, + 36.88397212499183 + ], + "step": 650, + "time": 16.25 + }, + { + "observations": { + "radius": 36.78069065173343, + "x": -9.624264243298581, + "y": -2.4947916415197184, + "z": 35.411421282674866 + }, + "state": [ + -9.624264243298581, + -2.4947916415197184, + 35.411421282674866 + ], + "step": 651, + "time": 16.275 + }, + { + "observations": { + "radius": 34.416772628249845, + "x": -7.864951328129932, + "y": -1.031098791940593, + "z": 33.49020176159071 + }, + "state": [ + -7.864951328129932, + -1.031098791940593, + 33.49020176159071 + ], + "step": 652, + "time": 16.3 + }, + { + "observations": { + "radius": 32.04707250518658, + "x": -6.2499752221466105, + "y": -0.22410567394375247, + "z": 31.43091539427614 + }, + "state": [ + -6.2499752221466105, + -0.22410567394375247, + 31.43091539427614 + ], + "step": 653, + "time": 16.325 + }, + { + "observations": { + "radius": 29.80849611934241, + "x": -4.87099932252992, + "y": 0.11627425434252156, + "z": 29.4075889320179 + }, + "state": [ + -4.87099932252992, + 0.11627425434252156, + 29.4075889320179 + ], + "step": 654, + "time": 16.35 + }, + { + "observations": { + "radius": 27.7508190021838, + "x": -3.7582899239874132, + "y": 0.16402524579313776, + "z": 27.494659624333643 + }, + "state": [ + -3.7582899239874132, + 0.16402524579313776, + 27.494659624333643 + ], + "step": 655, + "time": 16.375 + }, + { + "observations": { + "radius": 25.87535126757779, + "x": -2.9019514552852064, + "y": 0.04784717437525973, + "z": 25.712063153695233 + }, + "state": [ + -2.9019514552852064, + 0.04784717437525973, + 25.712063153695233 + ], + "step": 656, + "time": 16.4 + }, + { + "observations": { + "radius": 24.16396001250679, + "x": -2.2712423188893993, + "y": -0.14960445714108417, + "z": 24.056517626649885 + }, + "state": [ + -2.2712423188893993, + -0.14960445714108417, + 24.056517626649885 + ], + "step": 657, + "time": 16.425 + }, + { + "observations": { + "radius": 22.595211500482343, + "x": -1.828323261336129, + "y": -0.38190670261600324, + "z": 22.517880985432082 + }, + "state": [ + -1.828323261336129, + -0.38190670261600324, + 22.517880985432082 + ], + "step": 658, + "time": 16.45 + }, + { + "observations": { + "radius": 21.15112948314705, + "x": -1.5365401051376089, + "y": -0.6277533818876482, + "z": 21.085901655126932 + }, + "state": [ + -1.5365401051376089, + -0.6277533818876482, + 21.085901655126932 + ], + "step": 659, + "time": 16.475 + }, + { + "observations": { + "radius": 19.818961730713408, + "x": -1.3646295136537048, + "y": -0.8819484679516605, + "z": 19.752245372965213 + }, + "state": [ + -1.3646295136537048, + -0.8819484679516605, + 19.752245372965213 + ], + "step": 660, + "time": 16.5 + }, + { + "observations": { + "radius": 18.591045948999316, + "x": -1.2883211902750231, + "y": -1.1491578636586741, + "z": 18.5107172792651 + }, + "state": [ + -1.2883211902750231, + -1.1491578636586741, + 18.5107172792651 + ], + "step": 661, + "time": 16.525 + }, + { + "observations": { + "radius": 17.464442397426463, + "x": -1.2904905353793803, + "y": -1.4400631440281526, + "z": 17.35706197984944 + }, + "state": [ + -1.2904905353793803, + -1.4400631440281526, + 17.35706197984944 + ], + "step": 662, + "time": 16.55 + }, + { + "observations": { + "radius": 16.441095012461595, + "x": -1.3606461384373552, + "y": -1.7693243827629939, + "z": 16.2888838943405 + }, + "state": [ + -1.3606461384373552, + -1.7693243827629939, + 16.2888838943405 + ], + "step": 663, + "time": 16.575 + }, + { + "observations": { + "radius": 15.528866638802205, + "x": -1.4942342007179523, + "y": -2.154802180373481, + "z": 15.305874388696862 + }, + "state": [ + -1.4942342007179523, + -2.154802180373481, + 15.305874388696862 + ], + "step": 664, + "time": 16.6 + }, + { + "observations": { + "radius": 14.743658057997143, + "x": -1.6920265532905105, + "y": -2.617603459289425, + "z": 14.410435496681561 + }, + "state": [ + -1.6920265532905105, + -2.617603459289425, + 14.410435496681561 + ], + "step": 665, + "time": 16.625 + }, + { + "observations": { + "radius": 14.112737622537619, + "x": -1.959715919886881, + "y": -3.1826139533729227, + "z": 13.608814979259828 + }, + "state": [ + -1.959715919886881, + -3.1826139533729227, + 13.608814979259828 + ], + "step": 666, + "time": 16.65 + }, + { + "observations": { + "radius": 13.679119027318439, + "x": -2.3077456479543925, + "y": -3.8792179644233307, + "z": 12.912949909776163 + }, + "state": [ + -2.3077456479543925, + -3.8792179644233307, + 12.912949909776163 + ], + "step": 667, + "time": 16.675 + }, + { + "observations": { + "radius": 13.506020930834985, + "x": -2.7513240920337587, + "y": -4.741840522384477, + "z": 12.343328788662312 + }, + "state": [ + -2.7513240920337587, + -4.741840522384477, + 12.343328788662312 + ], + "step": 668, + "time": 16.7 + }, + { + "observations": { + "radius": 13.679025916488154, + "x": -3.3104812086861797, + "y": -5.809717760800592, + "z": 11.933299783828797 + }, + "state": [ + -3.3104812086861797, + -5.809717760800592, + 11.933299783828797 + ], + "step": 669, + "time": 16.725 + }, + { + "observations": { + "radius": 14.302420888487289, + "x": -4.009874126034765, + "y": -7.124804327021976, + "z": 11.735302129320889 + }, + "state": [ + -4.009874126034765, + -7.124804327021976, + 11.735302129320889 + ], + "step": 670, + "time": 16.75 + }, + { + "observations": { + "radius": 15.487552631242918, + "x": -4.877776181114697, + "y": -8.725819033801068, + "z": 11.829271669119132 + }, + "state": [ + -4.877776181114697, + -8.725819033801068, + 11.829271669119132 + ], + "step": 671, + "time": 16.775 + }, + { + "observations": { + "radius": 17.335362192390047, + "x": -5.943212563539243, + "y": -10.635009698065307, + "z": 12.33246023662726 + }, + "state": [ + -5.943212563539243, + -10.635009698065307, + 12.33246023662726 + ], + "step": 672, + "time": 16.8 + }, + { + "observations": { + "radius": 19.91707268417763, + "x": -7.22948543959025, + "y": -12.832579971662657, + "z": 13.407058434140191 + }, + "state": [ + -7.22948543959025, + -12.832579971662657, + 13.407058434140191 + ], + "step": 673, + "time": 16.825 + }, + { + "observations": { + "radius": 23.250888677168035, + "x": -8.741526018675874, + "y": -15.213581372174712, + "z": 15.255703490009633 + }, + "state": [ + -8.741526018675874, + -15.213581372174712, + 15.255703490009633 + ], + "step": 674, + "time": 16.85 + }, + { + "observations": { + "radius": 27.265098437402376, + "x": -10.44447719383, + "y": -17.528573668696517, + "z": 18.08445725173652 + }, + "state": [ + -10.44447719383, + -17.528573668696517, + 18.08445725173652 + ], + "step": 675, + "time": 16.875 + }, + { + "observations": { + "radius": 31.742605222288706, + "x": -12.234004908384259, + "y": -19.33221465929046, + "z": 22.004262918053293 + }, + "state": [ + -12.234004908384259, + -19.33221465929046, + 22.004262918053293 + ], + "step": 676, + "time": 16.9 + }, + { + "observations": { + "radius": 36.26608675594182, + "x": -13.908870486881225, + "y": -20.008106682159625, + "z": 26.859784760194607 + }, + "state": [ + -13.908870486881225, + -20.008106682159625, + 26.859784760194607 + ], + "step": 677, + "time": 16.925 + }, + { + "observations": { + "radius": 40.2215905595225, + "x": -15.17354425110594, + "y": -18.9677085687596, + "z": 32.05878871149381 + }, + "state": [ + -15.17354425110594, + -18.9677085687596, + 32.05878871149381 + ], + "step": 678, + "time": 16.95 + }, + { + "observations": { + "radius": 42.93452249227974, + "x": -15.706735701021039, + "y": -16.027014298782692, + "z": 36.60336716649113 + }, + "state": [ + -15.706735701021039, + -16.027014298782692, + 36.60336716649113 + ], + "step": 679, + "time": 16.975 + }, + { + "observations": { + "radius": 43.935871264651624, + "x": -15.295941360176908, + "y": -11.701125875431982, + "z": 39.49023442494823 + }, + "state": [ + -15.295941360176908, + -11.701125875431982, + 39.49023442494823 + ], + "step": 680, + "time": 17.0 + }, + { + "observations": { + "radius": 43.197652609659244, + "x": -13.959472299399838, + "y": -7.040776126522851, + "z": 40.26906747918648 + }, + "state": [ + -13.959472299399838, + -7.040776126522851, + 40.26906747918648 + ], + "step": 681, + "time": 17.025 + }, + { + "observations": { + "radius": 41.13211995785992, + "x": -11.950611742261444, + "y": -3.0533125494243123, + "z": 39.23915714804575 + }, + "state": [ + -11.950611742261444, + -3.0533125494243123, + 39.23915714804575 + ], + "step": 682, + "time": 17.05 + }, + { + "observations": { + "radius": 38.35118118538633, + "x": -9.635532894555823, + "y": -0.2390983170974026, + "z": 37.12024294299573 + }, + "state": [ + -9.635532894555823, + -0.2390983170974026, + 37.12024294299573 + ], + "step": 683, + "time": 17.075 + }, + { + "observations": { + "radius": 35.39331606047847, + "x": -7.3465415412283255, + "y": 1.4238157692895155, + "z": 34.59317704107346 + }, + "state": [ + -7.3465415412283255, + 1.4238157692895155, + 34.59317704107346 + ], + "step": 684, + "time": 17.1 + }, + { + "observations": { + "radius": 32.589810066577144, + "x": -5.301479617355197, + "y": 2.2258212305769294, + "z": 32.078587155481976 + }, + "state": [ + -5.301479617355197, + 2.2258212305769294, + 32.078587155481976 + ], + "step": 685, + "time": 17.125 + }, + { + "observations": { + "radius": 30.075711474518545, + "x": -3.5983742810759454, + "y": 2.494486557994184, + "z": 29.7552963360099 + }, + "state": [ + -3.5983742810759454, + 2.494486557994184, + 29.7552963360099 + ], + "step": 686, + "time": 17.15 + }, + { + "observations": { + "radius": 27.863767571052, + "x": -2.2482100627769483, + "y": 2.487640697226783, + "z": 27.661285916036853 + }, + "state": [ + -2.2482100627769483, + 2.487640697226783, + 27.661285916036853 + ], + "step": 687, + "time": 17.175 + }, + { + "observations": { + "radius": 25.914560874497045, + "x": -1.212750468689236, + "y": 2.3754850527895313, + "z": 25.776942650025052 + }, + "state": [ + -1.212750468689236, + 2.3754850527895313, + 25.776942650025052 + ], + "step": 688, + "time": 17.2 + }, + { + "observations": { + "radius": 24.179146014769422, + "x": -0.4330662722487282, + "y": 2.258262138246361, + "z": 24.06956185148254 + }, + "state": [ + -0.4330662722487282, + 2.258262138246361, + 24.06956185148254 + ], + "step": 689, + "time": 17.225 + }, + { + "observations": { + "radius": 22.617336436845928, + "x": 0.15315518171145825, + "y": 2.1897886357660727, + "z": 22.510559227137453 + }, + "state": [ + 0.15315518171145825, + 2.1897886357660727, + 22.510559227137453 + ], + "step": 690, + "time": 17.25 + }, + { + "observations": { + "radius": 21.202117703845758, + "x": 0.6029119799225843, + "y": 2.1966394808212004, + "z": 21.079399120076765 + }, + "state": [ + 0.6029119799225843, + 2.1966394808212004, + 21.079399120076765 + ], + "step": 691, + "time": 17.275 + }, + { + "observations": { + "radius": 19.918580649231863, + "x": 0.9646721236598078, + "y": 2.2914597089818995, + "z": 19.76280534680996 + }, + "state": [ + 0.9646721236598078, + 2.2914597089818995, + 19.76280534680996 + ], + "step": 692, + "time": 17.3 + }, + { + "observations": { + "radius": 18.76195203697959, + "x": 1.278236611889225, + "y": 2.4815018045826096, + "z": 18.55314270402192 + }, + "state": [ + 1.278236611889225, + 2.4815018045826096, + 18.55314270402192 + ], + "step": 693, + "time": 17.325 + }, + { + "observations": { + "radius": 17.73661638221315, + "x": 1.57611327927718, + "y": 2.7738381540653996, + "z": 17.447327861759494 + }, + "state": [ + 1.57611327927718, + 2.7738381540653996, + 17.447327861759494 + ], + "step": 694, + "time": 17.35 + }, + { + "observations": { + "radius": 16.85668019677342, + "x": 1.8854741636649313, + "y": 3.1784262544780146, + "z": 16.44658812578737 + }, + "state": [ + 1.8854741636649313, + 3.1784262544780146, + 16.44658812578737 + ], + "step": 695, + "time": 17.375 + }, + { + "observations": { + "radius": 16.148058955083194, + "x": 2.230191638375597, + "y": 3.709829497575361, + "z": 15.557095434941633 + }, + "state": [ + 2.230191638375597, + 3.709829497575361, + 15.557095434941633 + ], + "step": 696, + "time": 17.4 + }, + { + "observations": { + "radius": 15.65167377633391, + "x": 2.6326958018923095, + "y": 4.388031638466005, + "z": 14.791517270222773 + }, + "state": [ + 2.6326958018923095, + 4.388031638466005, + 14.791517270222773 + ], + "step": 697, + "time": 17.425 + }, + { + "observations": { + "radius": 15.426682574885426, + "x": 3.1155069476231336, + "y": 5.238415375125532, + "z": 14.171632089608947 + }, + "state": [ + 3.1155069476231336, + 5.238415375125532, + 14.171632089608947 + ], + "step": 698, + "time": 17.45 + }, + { + "observations": { + "radius": 15.551606255527924, + "x": 3.7022977976457936, + "y": 6.290539526582421, + "z": 13.732245286515479 + }, + "state": [ + 3.7022977976457936, + 6.290539526582421, + 13.732245286515479 + ], + "step": 699, + "time": 17.475 + }, + { + "observations": { + "radius": 16.12037640072735, + "x": 4.418225651014884, + "y": 7.574754995030645, + "z": 13.52659987443628 + }, + "state": [ + 4.418225651014884, + 7.574754995030645, + 13.52659987443628 + ], + "step": 700, + "time": 17.5 + }, + { + "observations": { + "radius": 17.231226777355236, + "x": 5.289028177405983, + "y": 9.114852419890935, + "z": 13.633078249421809 + }, + "state": [ + 5.289028177405983, + 9.114852419890935, + 13.633078249421809 + ], + "step": 701, + "time": 17.525 + }, + { + "observations": { + "radius": 18.969399379481498, + "x": 6.337967976069358, + "y": 10.913873621773611, + "z": 14.16176674432066 + }, + "state": [ + 6.337967976069358, + 10.913873621773611, + 14.16176674432066 + ], + "step": 702, + "time": 17.55 + }, + { + "observations": { + "radius": 21.386420547696098, + "x": 7.579177111710229, + "y": 12.92948268561486, + "z": 15.25658990845042 + }, + "state": [ + 7.579177111710229, + 12.92948268561486, + 15.25658990845042 + ], + "step": 703, + "time": 17.575 + }, + { + "observations": { + "radius": 24.475419396245524, + "x": 9.005575043310667, + "y": 15.03676801416241, + "z": 17.08336560662664 + }, + "state": [ + 9.005575043310667, + 15.03676801416241, + 17.08336560662664 + ], + "step": 704, + "time": 17.6 + }, + { + "observations": { + "radius": 28.137705563067954, + "x": 10.570213958063738, + "y": 16.984372061823585, + "z": 19.78717152349487 + }, + "state": [ + 10.570213958063738, + 16.984372061823585, + 19.78717152349487 + ], + "step": 705, + "time": 17.625 + }, + { + "observations": { + "radius": 32.14088725567996, + "x": 12.163545007022952, + "y": 18.370170668843798, + "z": 23.401316972384443 + }, + "state": [ + 12.163545007022952, + 18.370170668843798, + 23.401316972384443 + ], + "step": 706, + "time": 17.65 + }, + { + "observations": { + "radius": 36.088586071665205, + "x": 13.597744799481838, + "y": 18.69210052373839, + "z": 27.714486447174366 + }, + "state": [ + 13.597744799481838, + 18.69210052373839, + 27.714486447174366 + ], + "step": 707, + "time": 17.675 + }, + { + "observations": { + "radius": 39.447337725383825, + "x": 14.62043809652588, + "y": 17.531840373912964, + "z": 32.17094677795137 + }, + "state": [ + 14.62043809652588, + 17.531840373912964, + 32.17094677795137 + ], + "step": 708, + "time": 17.7 + }, + { + "observations": { + "radius": 41.674927858488026, + "x": 14.979416288606128, + "y": 14.835251265781002, + "z": 35.94901972994488 + }, + "state": [ + 14.979416288606128, + 14.835251265781002, + 35.94901972994488 + ], + "step": 709, + "time": 17.725 + }, + { + "observations": { + "radius": 42.42634130540425, + "x": 14.527192726934025, + "y": 11.080170985727635, + "z": 38.29079418037978 + }, + "state": [ + 14.527192726934025, + 11.080170985727635, + 38.29079418037978 + ], + "step": 710, + "time": 17.75 + }, + { + "observations": { + "radius": 41.71079013552383, + "x": 13.302741871144367, + "y": 7.105905005715282, + "z": 38.88872827040201 + }, + "state": [ + 13.302741871144367, + 7.105905005715282, + 38.88872827040201 + ], + "step": 711, + "time": 17.775 + }, + { + "observations": { + "radius": 39.869824759607525, + "x": 11.522893172465546, + "y": 3.6886794392712026, + "z": 37.98972891838079 + }, + "state": [ + 11.522893172465546, + 3.6886794392712026, + 37.98972891838079 + ], + "step": 712, + "time": 17.8 + }, + { + "observations": { + "radius": 37.393020544670584, + "x": 9.48734161034809, + "y": 1.2235065338140667, + "z": 36.14873948541537 + }, + "state": [ + 9.48734161034809, + 1.2235065338140667, + 36.14873948541537 + ], + "step": 713, + "time": 17.825 + }, + { + "observations": { + "radius": 34.717062676307826, + "x": 7.469423921289167, + "y": -0.28652694268289325, + "z": 33.90280297358724 + }, + "state": [ + 7.469423921289167, + -0.28652694268289325, + 33.90280297358724 + ], + "step": 714, + "time": 17.85 + }, + { + "observations": { + "radius": 32.12364752098387, + "x": 5.654204335962058, + "y": -1.0535981924477273, + "z": 31.60456666731047 + }, + "state": [ + 5.654204335962058, + -1.0535981924477273, + 31.60456666731047 + ], + "step": 715, + "time": 17.875 + }, + { + "observations": { + "radius": 29.741645694150016, + "x": 4.131353424612516, + "y": -1.3341669388485446, + "z": 29.423076080800563 + }, + "state": [ + 4.131353424612516, + -1.3341669388485446, + 29.423076080800563 + ], + "step": 716, + "time": 17.9 + }, + { + "observations": { + "radius": 27.598671778033925, + "x": 2.918169163502192, + "y": -1.3406447023780454, + "z": 27.41119560374587 + }, + "state": [ + 2.918169163502192, + -1.3406447023780454, + 27.41119560374587 + ], + "step": 717, + "time": 17.925 + }, + { + "observations": { + "radius": 25.67390205156801, + "x": 1.9887299611832774, + "y": -1.2194210003150345, + "z": 25.567698608185108 + }, + "state": [ + 1.9887299611832774, + -1.2194210003150345, + 25.567698608185108 + ], + "step": 718, + "time": 17.95 + }, + { + "observations": { + "radius": 23.93255208663782, + "x": 1.2973464992803037, + "y": -1.0596379771032933, + "z": 23.873858272133514 + }, + "state": [ + 1.2973464992803037, + -1.0596379771032933, + 23.873858272133514 + ], + "step": 719, + "time": 17.975 + }, + { + "observations": { + "radius": 22.342219362669105, + "x": 0.7937035093476006, + "y": -0.9098277957866305, + "z": 22.309572254323694 + }, + "state": [ + 0.7937035093476006, + -0.9098277957866305, + 22.309572254323694 + ], + "step": 720, + "time": 18.0 + }, + { + "observations": { + "radius": 20.877887180247104, + "x": 0.43106676520204135, + "y": -0.7929592193154941, + "z": 20.85836930902239 + }, + "state": [ + 0.43106676520204135, + -0.7929592193154941, + 20.85836930902239 + ], + "step": 721, + "time": 18.025 + }, + { + "observations": { + "radius": 19.5217345316723, + "x": 0.16979571968292434, + "y": -0.7175009600488971, + "z": 19.507805640588924 + }, + "state": [ + 0.16979571968292434, + -0.7175009600488971, + 19.507805640588924 + ], + "step": 722, + "time": 18.05 + }, + { + "observations": { + "radius": 18.261381257881997, + "x": -0.021923574919514105, + "y": -0.6847537129923109, + "z": 18.248525341931874 + }, + "state": [ + -0.021923574919514105, + -0.6847537129923109, + 18.248525341931874 + ], + "step": 723, + "time": 18.075 + }, + { + "observations": { + "radius": 17.088175507192204, + "x": -0.16878827407477404, + "y": -0.6933769414145935, + "z": 17.073268026369554 + }, + "state": [ + -0.16878827407477404, + -0.6933769414145935, + 17.073268026369554 + ], + "step": 724, + "time": 18.1 + }, + { + "observations": { + "radius": 15.996019346749588, + "x": -0.2896998613126009, + "y": -0.7420257904828766, + "z": 15.976173091770157 + }, + "state": [ + -0.2896998613126009, + -0.7420257904828766, + 15.976173091770157 + ], + "step": 725, + "time": 18.125 + }, + { + "observations": { + "radius": 14.980772953715228, + "x": -0.3992306760225113, + "y": -0.8308220701951881, + "z": 14.95238803154081 + }, + "state": [ + -0.3992306760225113, + -0.8308220701951881, + 14.95238803154081 + ], + "step": 726, + "time": 18.15 + }, + { + "observations": { + "radius": 14.040168828718294, + "x": -0.5090090925938552, + "y": -0.9621793708444996, + "z": 13.99790917747686 + }, + "state": [ + -0.5090090925938552, + -0.9621793708444996, + 13.99790917747686 + ], + "step": 727, + "time": 18.175 + }, + { + "observations": { + "radius": 13.174208777677984, + "x": -0.628941845186133, + "y": -1.141334271757083, + "z": 13.109598207166162 + }, + "state": [ + -0.628941845186133, + -1.141334271757083, + 13.109598207166162 + ], + "step": 728, + "time": 18.2 + }, + { + "observations": { + "radius": 12.386115884199771, + "x": -0.7682725987309102, + "y": -1.376812422962547, + "z": 12.28535760419049 + }, + "state": [ + -0.7682725987309102, + -1.376812422962547, + 12.28535760419049 + ], + "step": 729, + "time": 18.225 + }, + { + "observations": { + "radius": 11.684035105640962, + "x": -0.9365164907798014, + "y": -1.6809731621271522, + "z": 11.524493153304233 + }, + "state": [ + -0.9365164907798014, + -1.6809731621271522, + 11.524493153304233 + ], + "step": 730, + "time": 18.25 + }, + { + "observations": { + "radius": 11.08378818600829, + "x": -1.1443262243098795, + "y": -2.0707179730638203, + "z": 10.828342676544924 + }, + "state": [ + -1.1443262243098795, + -2.0707179730638203, + 10.828342676544924 + ], + "step": 731, + "time": 18.275 + }, + { + "observations": { + "radius": 10.61299864738041, + "x": -1.404346115664055, + "y": -2.568399900024959, + "z": 10.201317279168876 + }, + "state": [ + -1.404346115664055, + -2.568399900024959, + 10.201317279168876 + ], + "step": 732, + "time": 18.3 + }, + { + "observations": { + "radius": 10.316561711443615, + "x": -1.732100068029645, + "y": -3.2029084799351057, + "z": 9.652598208229529 + }, + "state": [ + -1.732100068029645, + -3.2029084799351057, + 9.652598208229529 + ], + "step": 733, + "time": 18.325 + }, + { + "observations": { + "radius": 10.262311945349568, + "x": -2.146931185513509, + "y": -4.0107904862056305, + "z": 9.198874530294257 + }, + "state": [ + -2.146931185513509, + -4.0107904862056305, + 9.198874530294257 + ], + "step": 734, + "time": 18.35 + }, + { + "observations": { + "radius": 10.543728313103044, + "x": -2.672952478918449, + "y": -5.037025767894276, + "z": 8.868703580543414 + }, + "state": [ + -2.672952478918449, + -5.037025767894276, + 8.868703580543414 + ], + "step": 735, + "time": 18.375 + }, + { + "observations": { + "radius": 11.275345350623304, + "x": -3.339840853578907, + "y": -6.334579540069093, + "z": 8.709304099589469 + }, + "state": [ + -3.339840853578907, + -6.334579540069093, + 8.709304099589469 + ], + "step": 736, + "time": 18.4 + }, + { + "observations": { + "radius": 12.579961432578395, + "x": -4.18304801422471, + "y": -7.960859480878341, + "z": 8.79671843823366 + }, + "state": [ + -4.18304801422471, + -7.960859480878341, + 8.79671843823366 + ], + "step": 737, + "time": 18.425 + }, + { + "observations": { + "radius": 14.573685857123182, + "x": -5.242489716766193, + "y": -9.967377125056766, + "z": 9.249865635705639 + }, + "state": [ + -5.242489716766193, + -9.967377125056766, + 9.249865635705639 + ], + "step": 738, + "time": 18.45 + }, + { + "observations": { + "radius": 17.354223520850564, + "x": -6.557846429699552, + "y": -12.37598765280634, + "z": 10.246885079559778 + }, + "state": [ + -6.557846429699552, + -12.37598765280634, + 10.246885079559778 + ], + "step": 739, + "time": 18.475 + }, + { + "observations": { + "radius": 20.985061170640897, + "x": -8.157165964075912, + "y": -15.131840898116048, + "z": 12.035814339053438 + }, + "state": [ + -8.157165964075912, + -15.131840898116048, + 12.035814339053438 + ], + "step": 740, + "time": 18.5 + }, + { + "observations": { + "radius": 25.45744850032832, + "x": -10.033970093126634, + "y": -18.024323946737745, + "z": 14.917267664695338 + }, + "state": [ + -10.033970093126634, + -18.024323946737745, + 14.917267664695338 + ], + "step": 741, + "time": 18.525 + }, + { + "observations": { + "radius": 30.616002207794192, + "x": -12.108914381665327, + "y": -20.58689781469175, + "z": 19.1544621969033 + }, + "state": [ + -12.108914381665327, + -20.58689781469175, + 19.1544621969033 + ], + "step": 742, + "time": 18.55 + }, + { + "observations": { + "radius": 36.058662550051096, + "x": -14.181442452576821, + "y": -22.047825242364418, + "z": 24.758982954573636 + }, + "state": [ + -14.181442452576821, + -22.047825242364418, + 24.758982954573636 + ], + "step": 743, + "time": 18.575 + }, + { + "observations": { + "radius": 41.07730170610768, + "x": -15.902394368797975, + "y": -21.49606133604718, + "z": 31.18297477519932 + }, + "state": [ + -15.902394368797975, + -21.49606133604718, + 31.18297477519932 + ], + "step": 744, + "time": 18.6 + }, + { + "observations": { + "radius": 44.767435582680335, + "x": -16.829383207504574, + "y": -18.396481521547184, + "z": 37.18150907550377 + }, + "state": [ + -16.829383207504574, + -18.396481521547184, + 37.18150907550377 + ], + "step": 745, + "time": 18.625 + }, + { + "observations": { + "radius": 46.383585112808156, + "x": -16.604536085021866, + "y": -13.193944056821683, + "z": 41.25101440623958 + }, + "state": [ + -16.604536085021866, + -13.193944056821683, + 41.25101440623958 + ], + "step": 746, + "time": 18.65 + }, + { + "observations": { + "radius": 45.75596446358407, + "x": -15.167887021407775, + "y": -7.295422577311306, + "z": 42.54785889697664 + }, + "state": [ + -15.167887021407775, + -7.295422577311306, + 42.54785889697664 + ], + "step": 747, + "time": 18.675 + }, + { + "observations": { + "radius": 43.38748436071085, + "x": -12.815242950187978, + "y": -2.2089227978450334, + "z": 41.39280139531204 + }, + "state": [ + -12.815242950187978, + -2.2089227978450334, + 41.39280139531204 + ], + "step": 748, + "time": 18.7 + }, + { + "observations": { + "radius": 40.12165138157983, + "x": -10.034377433756948, + "y": 1.2974458428233955, + "z": 38.824925156230194 + }, + "state": [ + -10.034377433756948, + 1.2974458428233955, + 38.824925156230194 + ], + "step": 749, + "time": 18.725 + }, + { + "observations": { + "radius": 36.70724144861015, + "x": -7.275811024600044, + "y": 3.2703332402323912, + "z": 35.83000236113169 + }, + "state": [ + -7.275811024600044, + 3.2703332402323912, + 35.83000236113169 + ], + "step": 750, + "time": 18.75 + }, + { + "observations": { + "radius": 33.582544821974494, + "x": -4.826162239549048, + "y": 4.14998111725085, + "z": 32.97382494470331 + }, + "state": [ + -4.826162239549048, + 4.14998111725085, + 32.97382494470331 + ], + "step": 751, + "time": 18.775 + }, + { + "observations": { + "radius": 30.89915232939299, + "x": -2.8038255286064078, + "y": 4.400804617838771, + "z": 30.455362348784757 + }, + "state": [ + -2.8038255286064078, + 4.400804617838771, + 30.455362348784757 + ], + "step": 752, + "time": 18.8 + }, + { + "observations": { + "radius": 28.64258449720388, + "x": -1.2114254164846752, + "y": 4.364326774356591, + "z": 28.282198410774104 + }, + "state": [ + -1.2114254164846752, + 4.364326774356591, + 28.282198410774104 + ], + "step": 753, + "time": 18.825 + }, + { + "observations": { + "radius": 26.73905956219806, + "x": 0.009012466921737183, + "y": 4.251639579818033, + "z": 26.39887849757145 + }, + "state": [ + 0.009012466921737183, + 4.251639579818033, + 26.39887849757145 + ], + "step": 754, + "time": 18.85 + }, + { + "observations": { + "radius": 25.11504709924317, + "x": 0.9377546007013681, + "y": 4.1798020511126905, + "z": 24.74702935545154 + }, + "state": [ + 0.9377546007013681, + 4.1798020511126905, + 24.74702935545154 + ], + "step": 755, + "time": 18.875 + }, + { + "observations": { + "radius": 23.719308367757275, + "x": 1.656009253561332, + "y": 4.20846749982236, + "z": 23.28415822184299 + }, + "state": [ + 1.656009253561332, + 4.20846749982236, + 23.28415822184299 + ], + "step": 756, + "time": 18.9 + }, + { + "observations": { + "radius": 22.52580612048094, + "x": 2.236230664908343, + "y": 4.365994482729198, + "z": 21.985206525470677 + }, + "state": [ + 2.236230664908343, + 4.365994482729198, + 21.985206525470677 + ], + "step": 757, + "time": 18.925 + }, + { + "observations": { + "radius": 21.530327849825362, + "x": 2.739169219049544, + "y": 4.665787332233457, + "z": 20.83944331983815 + }, + "state": [ + 2.739169219049544, + 4.665787332233457, + 20.83944331983815 + ], + "step": 758, + "time": 18.95 + }, + { + "observations": { + "radius": 20.746794000861236, + "x": 3.2143376129469816, + "y": 5.11568133875891, + "z": 19.847601856759418 + }, + "state": [ + 3.2143376129469816, + 5.11568133875891, + 19.847601856759418 + ], + "step": 759, + "time": 18.975 + }, + { + "observations": { + "radius": 20.204824976953844, + "x": 3.701876360769605, + "y": 5.72263643185387, + "z": 19.020580854109895 + }, + "state": [ + 3.701876360769605, + 5.72263643185387, + 19.020580854109895 + ], + "step": 760, + "time": 19.0 + }, + { + "observations": { + "radius": 19.947914670846295, + "x": 4.2346432260699665, + "y": 6.494091381991246, + "z": 18.37971364264448 + }, + "state": [ + 4.2346432260699665, + 6.494091381991246, + 18.37971364264448 + ], + "step": 761, + "time": 19.025 + }, + { + "observations": { + "radius": 20.030539986703666, + "x": 4.839815324161472, + "y": 7.436531189903667, + "z": 17.958193774668324 + }, + "state": [ + 4.839815324161472, + 7.436531189903667, + 17.958193774668324 + ], + "step": 762, + "time": 19.05 + }, + { + "observations": { + "radius": 20.512306795196352, + "x": 5.539493846115413, + "y": 8.551160584646226, + "z": 17.802988250423038 + }, + "state": [ + 5.539493846115413, + 8.551160584646226, + 17.802988250423038 + ], + "step": 763, + "time": 19.075 + }, + { + "observations": { + "radius": 21.44786940930131, + "x": 6.349830371954956, + "y": 9.82609461893822, + "z": 17.976056880904515 + }, + "state": [ + 6.349830371954956, + 9.82609461893822, + 17.976056880904515 + ], + "step": 764, + "time": 19.1 + }, + { + "observations": { + "radius": 22.872703051803768, + "x": 7.278150401826538, + "y": 11.22441247613189, + "z": 18.55267194206916 + }, + "state": [ + 7.278150401826538, + 11.22441247613189, + 18.55267194206916 + ], + "step": 765, + "time": 19.125 + }, + { + "observations": { + "radius": 24.78593594537438, + "x": 8.317604976638126, + "y": 12.668382604054317, + "z": 19.61306070806136 + }, + "state": [ + 8.317604976638126, + 12.668382604054317, + 19.61306070806136 + ], + "step": 766, + "time": 19.15 + }, + { + "observations": { + "radius": 27.13171655152293, + "x": 9.439352800032871, + "y": 14.023198786405857, + "z": 21.222124246777 + }, + "state": [ + 9.439352800032871, + 14.023198786405857, + 21.222124246777 + ], + "step": 767, + "time": 19.175 + }, + { + "observations": { + "radius": 29.78141571707943, + "x": 10.583647033661833, + "y": 15.089526295958892, + "z": 23.392847918625296 + }, + "state": [ + 10.583647033661833, + 15.089526295958892, + 23.392847918625296 + ], + "step": 768, + "time": 19.2 + }, + { + "observations": { + "radius": 32.52290108916758, + "x": 11.653812765771365, + "y": 15.62141348092648, + "z": 26.03649715560929 + }, + "state": [ + 11.653812765771365, + 15.62141348092648, + 26.03649715560929 + ], + "step": 769, + "time": 19.225 + }, + { + "observations": { + "radius": 35.069548736734184, + "x": 12.520186750258786, + "y": 15.386631444141084, + "z": 28.920057834295342 + }, + "state": [ + 12.520186750258786, + 15.386631444141084, + 28.920057834295342 + ], + "step": 770, + "time": 19.25 + }, + { + "observations": { + "radius": 37.10333144955504, + "x": 13.041475778991703, + "y": 14.26639043449662, + "z": 31.67092070231013 + }, + "state": [ + 13.041475778991703, + 14.26639043449662, + 31.67092070231013 + ], + "step": 771, + "time": 19.275 + }, + { + "observations": { + "radius": 38.35269453662052, + "x": 13.103954613078159, + "y": 12.348423557453682, + "z": 33.8634314174366 + }, + "state": [ + 13.103954613078159, + 12.348423557453682, + 33.8634314174366 + ], + "step": 772, + "time": 19.3 + }, + { + "observations": { + "radius": 38.677221283649246, + "x": 12.664468392542021, + "y": 9.938349345181003, + "z": 35.16771102661949 + }, + "state": [ + 12.664468392542021, + 9.938349345181003, + 35.16771102661949 + ], + "step": 773, + "time": 19.325 + }, + { + "observations": { + "radius": 38.11133164147567, + "x": 11.772827276602907, + "y": 7.454710892878853, + "z": 35.472544635329065 + }, + "state": [ + 11.772827276602907, + 7.454710892878853, + 35.472544635329065 + ], + "step": 774, + "time": 19.35 + }, + { + "observations": { + "radius": 36.8376492682654, + "x": 10.557702527035888, + "y": 5.268126205238793, + "z": 34.89690770323397 + }, + "state": [ + 10.557702527035888, + 5.268126205238793, + 34.89690770323397 + ], + "step": 775, + "time": 19.375 + }, + { + "observations": { + "radius": 35.10818701821945, + "x": 9.184115578182793, + "y": 3.5904616986689106, + "z": 33.69488687535907 + }, + "state": [ + 9.184115578182793, + 3.5904616986689106, + 33.69488687535907 + ], + "step": 776, + "time": 19.4 + }, + { + "observations": { + "radius": 33.162062432311, + "x": 7.807267801187568, + "y": 2.4638716830170644, + "z": 32.13562338861126 + }, + "state": [ + 7.807267801187568, + 2.4638716830170644, + 32.13562338861126 + ], + "step": 777, + "time": 19.425 + }, + { + "observations": { + "radius": 31.17704825176912, + "x": 6.543070028048912, + "y": 1.8180408814523186, + "z": 30.42846199949245 + }, + "state": [ + 6.543070028048912, + 1.8180408814523186, + 30.42846199949245 + ], + "step": 778, + "time": 19.45 + }, + { + "observations": { + "radius": 29.260557451784898, + "x": 5.460065426671864, + "y": 1.5387399037967262, + "z": 28.70540345360314 + }, + "state": [ + 5.460065426671864, + 1.5387399037967262, + 28.70540345360314 + ], + "step": 779, + "time": 19.475 + }, + { + "observations": { + "radius": 27.464707623495922, + "x": 4.586120911993469, + "y": 1.5148827392546167, + "z": 27.03669340194913 + }, + "state": [ + 4.586120911993469, + 1.5148827392546167, + 27.03669340194913 + ], + "step": 780, + "time": 19.5 + }, + { + "observations": { + "radius": 25.80792777670887, + "x": 3.9209966524837325, + "y": 1.659954983365912, + "z": 25.454262331331293 + }, + "state": [ + 3.9209966524837325, + 1.659954983365912, + 25.454262331331293 + ], + "step": 781, + "time": 19.525 + }, + { + "observations": { + "radius": 24.292962404725433, + "x": 3.448721152847209, + "y": 1.9163723141277478, + "z": 23.970437250099387 + }, + "state": [ + 3.448721152847209, + 1.9163723141277478, + 23.970437250099387 + ], + "step": 782, + "time": 19.55 + }, + { + "observations": { + "radius": 22.918540865134254, + "x": 3.1471342800400426, + "y": 2.251852582430888, + "z": 22.589471466973833 + }, + "state": [ + 3.1471342800400426, + 2.251852582430888, + 22.589471466973833 + ], + "step": 783, + "time": 19.575 + }, + { + "observations": { + "radius": 21.685904198462616, + "x": 2.9941819177048297, + "y": 2.6535130350522977, + "z": 21.313661912524452 + }, + "state": [ + 2.9941819177048297, + 2.6535130350522977, + 21.313661912524452 + ], + "step": 784, + "time": 19.6 + }, + { + "observations": { + "radius": 20.602376827906205, + "x": 2.9715300312691544, + "y": 3.1223664833422977, + "z": 20.146433127876826 + }, + "state": [ + 2.9715300312691544, + 3.1223664833422977, + 20.146433127876826 + ], + "step": 785, + "time": 19.625 + }, + { + "observations": { + "radius": 19.683759042018767, + "x": 3.066301801768022, + "y": 3.669078330557995, + "z": 19.094135945073806 + }, + "state": [ + 3.066301801768022, + 3.669078330557995, + 19.094135945073806 + ], + "step": 786, + "time": 19.65 + }, + { + "observations": { + "radius": 18.95651716661694, + "x": 3.2716390446036363, + "y": 4.310953252211489, + "z": 18.16759761518608 + }, + "state": [ + 3.2716390446036363, + 4.310953252211489, + 18.16759761518608 + ], + "step": 787, + "time": 19.675 + }, + { + "observations": { + "radius": 18.459917687034626, + "x": 3.5865741739642556, + "y": 5.069710006468326, + "z": 17.383989391306628 + }, + "state": [ + 3.5865741739642556, + 5.069710006468326, + 17.383989391306628 + ], + "step": 788, + "time": 19.7 + }, + { + "observations": { + "radius": 18.24739229133864, + "x": 4.015466045434004, + "y": 5.969373434307799, + "z": 16.769315390729336 + }, + "state": [ + 4.015466045434004, + 5.969373434307799, + 16.769315390729336 + ], + "step": 789, + "time": 19.725 + }, + { + "observations": { + "radius": 18.385573727377523, + "x": 4.567023503195168, + "y": 7.033386267224861, + "z": 16.36163485786522 + }, + "state": [ + 4.567023503195168, + 7.033386267224861, + 16.36163485786522 + ], + "step": 790, + "time": 19.75 + }, + { + "observations": { + "radius": 18.94902164725572, + "x": 5.252702433811465, + "y": 8.2797295030819, + "z": 16.214827100089355 + }, + "state": [ + 5.252702433811465, + 8.2797295030819, + 16.214827100089355 + ], + "step": 791, + "time": 19.775 + }, + { + "observations": { + "radius": 20.009346370069146, + "x": 6.083997600393564, + "y": 9.712457135819607, + "z": 16.402045352353817 + }, + "state": [ + 6.083997600393564, + 9.712457135819607, + 16.402045352353817 + ], + "step": 792, + "time": 19.8 + }, + { + "observations": { + "radius": 21.619169647835704, + "x": 7.067872737713771, + "y": 11.307853493938438, + "z": 17.0166424592223 + }, + "state": [ + 7.067872737713771, + 11.307853493938438, + 17.0166424592223 + ], + "step": 793, + "time": 19.825 + }, + { + "observations": { + "radius": 23.79247917779594, + "x": 8.199401682993942, + "y": 12.994182926990892, + "z": 18.16598710576081 + }, + "state": [ + 8.199401682993942, + 12.994182926990892, + 18.16598710576081 + ], + "step": 794, + "time": 19.85 + }, + { + "observations": { + "radius": 26.482182281778005, + "x": 9.450988369652467, + "y": 14.627353734659392, + "z": 19.950571920703343 + }, + "state": [ + 9.450988369652467, + 14.627353734659392, + 19.950571920703343 + ], + "step": 795, + "time": 19.875 + }, + { + "observations": { + "radius": 29.55560530914581, + "x": 10.75901976107511, + "y": 15.972946768362714, + "z": 22.4196848886387 + }, + "state": [ + 10.75901976107511, + 15.972946768362714, + 22.4196848886387 + ], + "step": 796, + "time": 19.9 + }, + { + "observations": { + "radius": 32.774210153636915, + "x": 12.012351861865197, + "y": 16.717767279291344, + "z": 25.5023236419146 + }, + "state": [ + 12.012351861865197, + 16.717767279291344, + 25.5023236419146 + ], + "step": 797, + "time": 19.925 + }, + { + "observations": { + "radius": 35.79524717857277, + "x": 13.052305197109686, + "y": 16.541371842601702, + "z": 28.936483324367682 + }, + "state": [ + 13.052305197109686, + 16.541371842601702, + 28.936483324367682 + ], + "step": 798, + "time": 19.95 + }, + { + "observations": { + "radius": 38.220124283816645, + "x": 13.696642280458827, + "y": 15.255316123641057, + "z": 32.2560881149484 + }, + "state": [ + 13.696642280458827, + 15.255316123641057, + 32.2560881149484 + ], + "step": 799, + "time": 19.975 + }, + { + "observations": { + "radius": 39.69805113052592, + "x": 13.791775622572159, + "y": 12.949717948692623, + "z": 34.90024346315915 + }, + "state": [ + 13.791775622572159, + 12.949717948692623, + 34.90024346315915 + ], + "step": 800, + "time": 20.0 + }, + { + "observations": { + "radius": 40.04809364999028, + "x": 13.274926132096995, + "y": 10.02521261847842, + "z": 36.42967544653755 + }, + "state": [ + 13.274926132096995, + 10.02521261847842, + 36.42967544653755 + ], + "step": 801, + "time": 20.025 + }, + { + "observations": { + "radius": 39.32502397950288, + "x": 12.208404218707678, + "y": 7.042080428202545, + "z": 36.71268827890221 + }, + "state": [ + 12.208404218707678, + 7.042080428202545, + 36.71268827890221 + ], + "step": 802, + "time": 20.05 + }, + { + "observations": { + "radius": 37.77982085408291, + "x": 10.759591439865853, + "y": 4.480594769905831, + "z": 35.937032797960036 + }, + "state": [ + 10.759591439865853, + 4.480594769905831, + 35.937032797960036 + ], + "step": 803, + "time": 20.075 + }, + { + "observations": { + "radius": 35.74390534560875, + "x": 9.139421822183776, + "y": 2.586641807297347, + "z": 34.45877279115973 + }, + "state": [ + 9.139421822183776, + 2.586641807297347, + 34.45877279115973 + ], + "step": 804, + "time": 20.1 + }, + { + "observations": { + "radius": 33.51469880712275, + "x": 7.53859786303244, + "y": 1.374303777810783, + "z": 32.62691936910276 + }, + "state": [ + 7.53859786303244, + 1.374303777810783, + 32.62691936910276 + ], + "step": 805, + "time": 20.125 + }, + { + "observations": { + "radius": 31.296453795451622, + "x": 6.091025177862355, + "y": 0.7212606670517088, + "z": 30.689529411570476 + }, + "state": [ + 6.091025177862355, + 0.7212606670517088, + 30.689529411570476 + ], + "step": 806, + "time": 20.15 + }, + { + "observations": { + "radius": 29.197900283992222, + "x": 4.867947695310359, + "y": 0.46594406588617127, + "z": 28.785471376323528 + }, + "state": [ + 4.867947695310359, + 0.46594406588617127, + 28.785471376323528 + ], + "step": 807, + "time": 20.175 + }, + { + "observations": { + "radius": 27.25938291691271, + "x": 3.890546231691816, + "y": 0.46500239127535625, + "z": 26.976311456647466 + }, + "state": [ + 3.890546231691816, + 0.46500239127535625, + 26.976311456647466 + ], + "step": 808, + "time": 20.2 + }, + { + "observations": { + "radius": 25.48383247560223, + "x": 3.147931155124683, + "y": 0.6137376440022868, + "z": 25.28120988385423 + }, + "state": [ + 3.147931155124683, + 0.6137376440022868, + 25.28120988385423 + ], + "step": 809, + "time": 20.225 + }, + { + "observations": { + "radius": 23.859344759545735, + "x": 2.6129917108361536, + "y": 0.8458181202124517, + "z": 23.70074257025472 + }, + "state": [ + 2.6129917108361536, + 0.8458181202124517, + 23.70074257025472 + ], + "step": 810, + "time": 20.25 + }, + { + "observations": { + "radius": 22.371815236073502, + "x": 2.2536114267333582, + "y": 1.125299493262889, + "z": 22.229553606511526 + }, + "state": [ + 2.2536114267333582, + 1.125299493262889, + 22.229553606511526 + ], + "step": 811, + "time": 20.275 + }, + { + "observations": { + "radius": 21.0105798772133, + "x": 2.0394577016235766, + "y": 1.4377555037335599, + "z": 20.861877628141063 + }, + "state": [ + 2.0394577016235766, + 1.4377555037335599, + 20.861877628141063 + ], + "step": 812, + "time": 20.3 + }, + { + "observations": { + "radius": 19.770462847694496, + "x": 1.9454799946173735, + "y": 1.7831015467614504, + "z": 19.593541223488643 + }, + "state": [ + 1.9454799946173735, + 1.7831015467614504, + 19.593541223488643 + ], + "step": 813, + "time": 20.325 + }, + { + "observations": { + "radius": 18.652629075420716, + "x": 1.953303000207667, + "y": 2.1706374286446204, + "z": 18.42263585831238 + }, + "state": [ + 1.953303000207667, + 2.1706374286446204, + 18.42263585831238 + ], + "step": 814, + "time": 20.35 + }, + { + "observations": { + "radius": 17.665591226926725, + "x": 2.0514475942450954, + "y": 2.616036299110415, + "z": 17.349957643944645 + }, + "state": [ + 2.0514475942450954, + 2.616036299110415, + 17.349957643944645 + ], + "step": 815, + "time": 20.375 + }, + { + "observations": { + "radius": 16.82701815231614, + "x": 2.235013012460885, + "y": 3.139777746152297, + "z": 16.379714662877195 + }, + "state": [ + 2.235013012460885, + 3.139777746152297, + 16.379714662877195 + ], + "step": 816, + "time": 20.4 + }, + { + "observations": { + "radius": 16.166529135730343, + "x": 2.505198042528624, + "y": 3.766498762847123, + "z": 15.520764611758015 + }, + "state": [ + 2.505198042528624, + 3.766498762847123, + 15.520764611758015 + ], + "step": 817, + "time": 20.425 + }, + { + "observations": { + "radius": 15.7291519991529, + "x": 2.8688397368765135, + "y": 4.52473712653998, + "z": 14.788601526590833 + }, + "state": [ + 2.8688397368765135, + 4.52473712653998, + 14.788601526590833 + ], + "step": 818, + "time": 20.45 + }, + { + "observations": { + "radius": 15.578292777107835, + "x": 3.337985849913751, + "y": 5.446464716679699, + "z": 14.20834537886199 + }, + "state": [ + 3.337985849913751, + 5.446464716679699, + 14.20834537886199 + ], + "step": 819, + "time": 20.475 + }, + { + "observations": { + "radius": 15.795934992815896, + "x": 3.9293565642689554, + "y": 6.565570299171965, + "z": 13.819008862242368 + }, + "state": [ + 3.9293565642689554, + 6.565570299171965, + 13.819008862242368 + ], + "step": 820, + "time": 20.5 + }, + { + "observations": { + "radius": 16.47718852991222, + "x": 4.663346620219162, + "y": 7.913965636491732, + "z": 13.679184480603706 + }, + "state": [ + 4.663346620219162, + 7.913965636491732, + 13.679184480603706 + ], + "step": 821, + "time": 20.525 + }, + { + "observations": { + "radius": 17.717688538250243, + "x": 5.561917337770377, + "y": 9.513200960029232, + "z": 13.873736705024793 + }, + "state": [ + 5.561917337770377, + 9.513200960029232, + 13.873736705024793 + ], + "step": 822, + "time": 20.55 + }, + { + "observations": { + "radius": 19.595412012140613, + "x": 6.644293554993174, + "y": 11.35851952930107, + "z": 14.519558160739845 + }, + "state": [ + 6.644293554993174, + 11.35851952930107, + 14.519558160739845 + ], + "step": 823, + "time": 20.575 + }, + { + "observations": { + "radius": 22.149294905924254, + "x": 7.918875692411464, + "y": 13.39193632352078, + "z": 15.765110659443586 + }, + "state": [ + 7.918875692411464, + 13.39193632352078, + 15.765110659443586 + ], + "step": 824, + "time": 20.6 + }, + { + "observations": { + "radius": 25.353091923063225, + "x": 9.36958441092004, + "y": 15.463540452018682, + "z": 17.7727058917521 + }, + "state": [ + 9.36958441092004, + 15.463540452018682, + 17.7727058917521 + ], + "step": 825, + "time": 20.625 + }, + { + "observations": { + "radius": 29.080139698541945, + "x": 10.936066461893354, + "y": 17.290573036645903, + "z": 20.666229924497124 + }, + "state": [ + 10.936066461893354, + 17.290573036645903, + 20.666229924497124 + ], + "step": 826, + "time": 20.65 + }, + { + "observations": { + "radius": 33.062878215404865, + "x": 12.491825110863754, + "y": 18.446638285453933, + "z": 24.430099411421 + }, + "state": [ + 12.491825110863754, + 18.446638285453933, + 24.430099411421 + ], + "step": 827, + "time": 20.675 + }, + { + "observations": { + "radius": 36.87286954843775, + "x": 13.833841877840571, + "y": 18.43982667131237, + "z": 28.778570499018354 + }, + "state": [ + 13.833841877840571, + 18.43982667131237, + 28.778570499018354 + ], + "step": 828, + "time": 20.7 + }, + { + "observations": { + "radius": 39.968972911957245, + "x": 14.70692642533034, + "y": 16.92326460609639, + "z": 33.0881886151046 + }, + "state": [ + 14.70692642533034, + 16.92326460609639, + 33.0881886151046 + ], + "step": 829, + "time": 20.725 + }, + { + "observations": { + "radius": 41.84665662582789, + "x": 14.879015274266886, + "y": 13.964039329461297, + "z": 36.53441091400457 + }, + "state": [ + 14.879015274266886, + 13.964039329461297, + 36.53441091400457 + ], + "step": 830, + "time": 20.75 + }, + { + "observations": { + "radius": 42.24052951014604, + "x": 14.244361098660256, + "y": 10.140109191211224, + "z": 38.45177103565981 + }, + "state": [ + 14.244361098660256, + 10.140109191211224, + 38.45177103565981 + ], + "step": 831, + "time": 20.775 + }, + { + "observations": { + "radius": 41.243601236515794, + "x": 12.886391105369256, + "y": 6.295297725297238, + "z": 38.66968830733 + }, + "state": [ + 12.886391105369256, + 6.295297725297238, + 38.66968830733 + ], + "step": 832, + "time": 20.8 + }, + { + "observations": { + "radius": 39.24154532630518, + "x": 11.046165460845756, + "y": 3.1200088439263105, + "z": 37.525280185788134 + }, + "state": [ + 11.046165460845756, + 3.1200088439263105, + 37.525280185788134 + ], + "step": 833, + "time": 20.825 + }, + { + "observations": { + "radius": 36.71625973959345, + "x": 9.01984578705158, + "y": 0.906518528554727, + "z": 35.57954939850258 + }, + "state": [ + 9.01984578705158, + 0.906518528554727, + 35.57954939850258 + ], + "step": 834, + "time": 20.85 + }, + { + "observations": { + "radius": 34.06633106539228, + "x": 7.059438188031141, + "y": -0.4039553722587049, + "z": 33.32440644307866 + }, + "state": [ + 7.059438188031141, + -0.4039553722587049, + 33.32440644307866 + ], + "step": 835, + "time": 20.875 + }, + { + "observations": { + "radius": 31.532944497969112, + "x": 5.3253660375569, + "y": -1.0386496669915988, + "z": 31.062650758544322 + }, + "state": [ + 5.3253660375569, + -1.0386496669915988, + 31.062650758544322 + ], + "step": 836, + "time": 20.9 + }, + { + "observations": { + "radius": 29.217218696827413, + "x": 3.888210305530407, + "y": -1.2429819454260707, + "z": 28.93065303240757 + }, + "state": [ + 3.888210305530407, + -1.2429819454260707, + 28.93065303240757 + ], + "step": 837, + "time": 20.925 + }, + { + "observations": { + "radius": 27.13336061662366, + "x": 2.753922929427138, + "y": -1.2111976185107929, + "z": 26.966055832832378 + }, + "state": [ + 2.753922929427138, + -1.2111976185107929, + 26.966055832832378 + ], + "step": 838, + "time": 20.95 + }, + { + "observations": { + "radius": 25.256825382699503, + "x": 1.891612047092386, + "y": -1.0736354724131965, + "z": 25.16299543273505 + }, + "state": [ + 1.891612047092386, + -1.0736354724131965, + 25.16299543273505 + ], + "step": 839, + "time": 20.975 + }, + { + "observations": { + "radius": 23.553736990348963, + "x": 1.2547514428987734, + "y": -0.907936780039622, + "z": 23.502761025686485 + }, + "state": [ + 1.2547514428987734, + -0.907936780039622, + 23.502761025686485 + ], + "step": 840, + "time": 21.0 + }, + { + "observations": { + "radius": 21.993960589473105, + "x": 0.7944258878131488, + "y": -0.7552375004854237, + "z": 21.966629378171085 + }, + "state": [ + 0.7944258878131488, + -0.7552375004854237, + 21.966629378171085 + ], + "step": 841, + "time": 21.025 + }, + { + "observations": { + "radius": 20.55458125781392, + "x": 0.46626756925415835, + "y": -0.6340423385368011, + "z": 20.53950816234118 + }, + "state": [ + 0.46626756925415835, + -0.6340423385368011, + 20.53950816234118 + ], + "step": 842, + "time": 21.05 + }, + { + "observations": { + "radius": 19.219240940575926, + "x": 0.23323723529373955, + "y": -0.5501893841821837, + "z": 19.209948317616984 + }, + "state": [ + 0.23323723529373955, + -0.5501893841821837, + 19.209948317616984 + ], + "step": 843, + "time": 21.075 + }, + { + "observations": { + "radius": 17.97636841249386, + "x": 0.06600071583741948, + "y": -0.5033483836585676, + "z": 17.969198802725852 + }, + "state": [ + 0.06600071583741948, + -0.5033483836585676, + 17.969198802725852 + ], + "step": 844, + "time": 21.1 + }, + { + "observations": { + "radius": 16.817569317757563, + "x": -0.057903867552501376, + "y": -0.49096416441884977, + "z": 16.81030157638344 + }, + "state": [ + -0.057903867552501376, + -0.49096416441884977, + 16.81030157638344 + ], + "step": 845, + "time": 21.125 + }, + { + "observations": { + "radius": 15.736519420932462, + "x": -0.15537668521716466, + "y": -0.5104964409346183, + "z": 15.727469439006025 + }, + "state": [ + -0.15537668521716466, + -0.5104964409346183, + 15.727469439006025 + ], + "step": 846, + "time": 21.15 + }, + { + "observations": { + "radius": 14.72834153028757, + "x": -0.23914174319361234, + "y": -0.5606149627610963, + "z": 14.715725137518175 + }, + "state": [ + -0.23914174319361234, + -0.5606149627610963, + 14.715725137518175 + ], + "step": 847, + "time": 21.175 + }, + { + "observations": { + "radius": 13.789364922538986, + "x": -0.3190166730481645, + "y": -0.6418164652066345, + "z": 13.770725650969 + }, + "state": [ + -0.3190166730481645, + -0.6418164652066345, + 13.770725650969 + ], + "step": 848, + "time": 21.2 + }, + { + "observations": { + "radius": 12.91719794604843, + "x": -0.40300284002990544, + "y": -0.756774831919811, + "z": 12.88871146942542 + }, + "state": [ + -0.40300284002990544, + -0.756774831919811, + 12.88871146942542 + ], + "step": 849, + "time": 21.225 + }, + { + "observations": { + "radius": 12.111115000330043, + "x": -0.49820120042717086, + "y": -0.9106243169562869, + "z": 12.066551515179482 + }, + "state": [ + -0.49820120042717086, + -0.9106243169562869, + 12.066551515179482 + ], + "step": 850, + "time": 21.25 + }, + { + "observations": { + "radius": 11.372846154027057, + "x": -0.6115931774345839, + "y": -1.1113020563603362, + "z": 11.30188440783274 + }, + "state": [ + -0.6115931774345839, + -1.1113020563603362, + 11.30188440783274 + ], + "step": 851, + "time": 21.275 + }, + { + "observations": { + "radius": 10.707960956520571, + "x": -0.7507395721727744, + "y": -1.3700309863229276, + "z": 10.593386287569137 + }, + "state": [ + -0.7507395721727744, + -1.3700309863229276, + 10.593386287569137 + ], + "step": 852, + "time": 21.3 + }, + { + "observations": { + "radius": 10.12815260411043, + "x": -0.9244533676261153, + "y": -1.7019977405721423, + "z": 9.941230549299263 + }, + "state": [ + -0.9244533676261153, + -1.7019977405721423, + 9.941230549299263 + ], + "step": 853, + "time": 21.325 + }, + { + "observations": { + "radius": 9.654802771786043, + "x": -1.1434996144007328, + "y": -2.127260557084564, + "z": 9.347854711976707 + }, + "state": [ + -1.1434996144007328, + -2.127260557084564, + 9.347854711976707 + ], + "step": 854, + "time": 21.35 + }, + { + "observations": { + "radius": 9.324058195691126, + "x": -1.4213690287768592, + "y": -2.6718937906361218, + "z": 8.819226433890272 + }, + "state": [ + -1.4213690287768592, + -2.6718937906361218, + 8.819226433890272 + ], + "step": 855, + "time": 21.375 + }, + { + "observations": { + "radius": 9.19286790020328, + "x": -1.7751563569574225, + "y": -3.369314836923982, + "z": 8.366920441155482 + }, + "state": [ + -1.7751563569574225, + -3.369314836923982, + 8.366920441155482 + ], + "step": 856, + "time": 21.4 + }, + { + "observations": { + "radius": 9.343596273047973, + "x": -2.2265421726858072, + "y": -4.261594529778929, + "z": 8.011498819242618 + }, + "state": [ + -2.2265421726858072, + -4.261594529778929, + 8.011498819242618 + ], + "step": 857, + "time": 21.425 + }, + { + "observations": { + "radius": 9.882821040873392, + "x": -2.802799517276771, + "y": -5.400231674540024, + "z": 7.7879371115320115 + }, + "state": [ + -2.802799517276771, + -5.400231674540024, + 7.7879371115320115 + ], + "step": 858, + "time": 21.45 + }, + { + "observations": { + "radius": 10.931486189888853, + "x": -3.537580993745425, + "y": -6.845187692375844, + "z": 7.754116099760702 + }, + "state": [ + -3.537580993745425, + -6.845187692375844, + 7.754116099760702 + ], + "step": 859, + "time": 21.475 + }, + { + "observations": { + "radius": 12.61084914886483, + "x": -4.470887100879742, + "y": -8.659608632638381, + "z": 8.003490683204845 + }, + "state": [ + -4.470887100879742, + -8.659608632638381, + 8.003490683204845 + ], + "step": 860, + "time": 21.5 + }, + { + "observations": { + "radius": 15.032427407652515, + "x": -5.64691745117957, + "y": -10.895155230877075, + "z": 8.682268687445582 + }, + "state": [ + -5.64691745117957, + -10.895155230877075, + 8.682268687445582 + ], + "step": 861, + "time": 21.525 + }, + { + "observations": { + "radius": 18.289884663635576, + "x": -7.107247245472949, + "y": -13.559016551947046, + "z": 10.007996190288798 + }, + "state": [ + -7.107247245472949, + -13.559016551947046, + 10.007996190288798 + ], + "step": 862, + "time": 21.55 + }, + { + "observations": { + "radius": 22.436341232238487, + "x": -8.874912257000318, + "y": -16.5502042686162, + "z": 12.27664770965871 + }, + "state": [ + -8.874912257000318, + -16.5502042686162, + 12.27664770965871 + ], + "step": 863, + "time": 21.575 + }, + { + "observations": { + "radius": 27.427213207884943, + "x": -10.923512255626843, + "y": -19.557946417946667, + "z": 15.824526415178294 + }, + "state": [ + -10.923512255626843, + -19.557946417946667, + 15.824526415178294 + ], + "step": 864, + "time": 21.6 + }, + { + "observations": { + "radius": 33.02057908659903, + "x": -13.128443780691228, + "y": -21.951005850188015, + "z": 20.884346991864092 + }, + "state": [ + -13.128443780691228, + -21.951005850188015, + 20.884346991864092 + ], + "step": 865, + "time": 21.625 + }, + { + "observations": { + "radius": 38.66546997342807, + "x": -15.214017097570293, + "y": -22.77965172492083, + "z": 27.288087498251272 + }, + "state": [ + -15.214017097570293, + -22.77965172492083, + 27.288087498251272 + ], + "step": 866, + "time": 21.65 + }, + { + "observations": { + "radius": 43.48443032609003, + "x": -16.7466819692827, + "y": -21.106860979369152, + "z": 34.13128686999457 + }, + "state": [ + -16.7466819692827, + -21.106860979369152, + 34.13128686999457 + ], + "step": 867, + "time": 21.675 + }, + { + "observations": { + "radius": 46.504531893121424, + "x": -17.249903245775865, + "y": -16.71322467588091, + "z": 39.821858891107084 + }, + "state": [ + -17.249903245775865, + -16.71322467588091, + 39.821858891107084 + ], + "step": 868, + "time": 21.7 + }, + { + "observations": { + "radius": 47.13364253390984, + "x": -16.44350158452816, + "y": -10.606175218320683, + "z": 42.88007184453281 + }, + "state": [ + -16.44350158452816, + -10.606175218320683, + 42.88007184453281 + ], + "step": 869, + "time": 21.725 + }, + { + "observations": { + "radius": 45.52997247595393, + "x": -14.43724370748819, + "y": -4.542969243154621, + "z": 42.94072447278302 + }, + "state": [ + -14.43724370748819, + -4.542969243154621, + 42.94072447278302 + ], + "step": 870, + "time": 21.75 + }, + { + "observations": { + "radius": 42.4806317147553, + "x": -11.6796886026098, + "y": 0.11162218091537912, + "z": 40.84331628944285 + }, + "state": [ + -11.6796886026098, + 0.11162218091537912, + 40.84331628944285 + ], + "step": 871, + "time": 21.775 + }, + { + "observations": { + "radius": 38.91169310511786, + "x": -8.70955273844832, + "y": 2.9826640318910203, + "z": 37.80697378362791 + }, + "state": [ + -8.70955273844832, + 2.9826640318910203, + 37.80697378362791 + ], + "step": 872, + "time": 21.8 + }, + { + "observations": { + "radius": 35.48643517233224, + "x": -5.937385413058622, + "y": 4.408543763932875, + "z": 34.70733751785674 + }, + "state": [ + -5.937385413058622, + 4.408543763932875, + 34.70733751785674 + ], + "step": 873, + "time": 21.825 + }, + { + "observations": { + "radius": 32.50898620704428, + "x": -3.5770423044636455, + "y": 4.92782185373499, + "z": 31.933611201048414 + }, + "state": [ + -3.5770423044636455, + 4.92782185373499, + 31.933611201048414 + ], + "step": 874, + "time": 21.85 + }, + { + "observations": { + "radius": 30.028446055617383, + "x": -1.6835435019842682, + "y": 4.988618795035107, + "z": 29.56327005440826 + }, + "state": [ + -1.6835435019842682, + 4.988618795035107, + 29.56327005440826 + ], + "step": 875, + "time": 21.875 + }, + { + "observations": { + "radius": 27.97791112732269, + "x": -0.21862547958446965, + "y": 4.883376208798492, + "z": 27.547565241802843 + }, + "state": [ + -0.21862547958446965, + 4.883376208798492, + 27.547565241802843 + ], + "step": 876, + "time": 21.9 + }, + { + "observations": { + "radius": 26.26792495456083, + "x": 0.8968821676712396, + "y": 4.778947673448805, + "z": 25.81397185498952 + }, + "state": [ + 0.8968821676712396, + 4.778947673448805, + 25.81397185498952 + ], + "step": 877, + "time": 21.925 + }, + { + "observations": { + "radius": 24.828179812410927, + "x": 1.7515262967778173, + "y": 4.761865669487488, + "z": 24.304223990386152 + }, + "state": [ + 1.7515262967778173, + 4.761865669487488, + 24.304223990386152 + ], + "step": 878, + "time": 21.95 + }, + { + "observations": { + "radius": 23.617729335155833, + "x": 2.42765852597156, + "y": 4.873238308276817, + "z": 22.981626605197057 + }, + "state": [ + 2.42765852597156, + 4.873238308276817, + 22.981626605197057 + ], + "step": 879, + "time": 21.975 + }, + { + "observations": { + "radius": 22.62237282219202, + "x": 2.995526462009529, + "y": 5.130988732343846, + "z": 21.828227778503074 + }, + "state": [ + 2.995526462009529, + 5.130988732343846, + 21.828227778503074 + ], + "step": 880, + "time": 22.0 + }, + { + "observations": { + "radius": 21.84932557223022, + "x": 3.512442500537902, + "y": 5.542697812707267, + "z": 20.840688006847053 + }, + "state": [ + 3.512442500537902, + 5.542697812707267, + 20.840688006847053 + ], + "step": 881, + "time": 22.025 + }, + { + "observations": { + "radius": 21.32270051231363, + "x": 4.0242076397801885, + "y": 6.112175483012564, + "z": 20.027596482718913 + }, + "state": [ + 4.0242076397801885, + 6.112175483012564, + 20.027596482718913 + ], + "step": 882, + "time": 22.05 + }, + { + "observations": { + "radius": 21.079844623365016, + "x": 4.567153808157888, + "y": 6.841746328308287, + "z": 19.408540970843738 + }, + "state": [ + 4.567153808157888, + 6.841746328308287, + 19.408540970843738 + ], + "step": 883, + "time": 22.075 + }, + { + "observations": { + "radius": 21.16712804746049, + "x": 5.169849787920228, + "y": 7.731240301501209, + "z": 19.014412595407023 + }, + "state": [ + 5.169849787920228, + 7.731240301501209, + 19.014412595407023 + ], + "step": 884, + "time": 22.1 + }, + { + "observations": { + "radius": 21.633519427958017, + "x": 5.853858439781089, + "y": 8.773964002897369, + "z": 18.888066599911753 + }, + "state": [ + 5.853858439781089, + 8.773964002897369, + 18.888066599911753 + ], + "step": 885, + "time": 22.125 + }, + { + "observations": { + "radius": 22.52087282454746, + "x": 6.633076498996884, + "y": 9.949522270079232, + "z": 19.083998939821104 + }, + "state": [ + 6.633076498996884, + 9.949522270079232, + 19.083998939821104 + ], + "step": 886, + "time": 22.15 + }, + { + "observations": { + "radius": 23.85098391332365, + "x": 7.511261772891542, + "y": 11.21347372691821, + "z": 19.664902420008005 + }, + "state": [ + 7.511261772891542, + 11.21347372691821, + 19.664902420008005 + ], + "step": 887, + "time": 22.175 + }, + { + "observations": { + "radius": 25.61050516117233, + "x": 8.47754143747402, + "y": 12.484910966000252, + "z": 20.691937172662016 + }, + "state": [ + 8.47754143747402, + 12.484910966000252, + 20.691937172662016 + ], + "step": 888, + "time": 22.2 + }, + { + "observations": { + "radius": 27.735447779540845, + "x": 9.50026212362868, + "y": 13.635809024442905, + "z": 22.205062381423406 + }, + "state": [ + 9.50026212362868, + 13.635809024442905, + 22.205062381423406 + ], + "step": 889, + "time": 22.225 + }, + { + "observations": { + "radius": 30.09819217211394, + "x": 10.520807757081645, + "y": 14.490470258248404, + "z": 24.19173511476285 + }, + "state": [ + 10.520807757081645, + 14.490470258248404, + 24.19173511476285 + ], + "step": 890, + "time": 22.25 + }, + { + "observations": { + "radius": 32.50298232409451, + "x": 11.451005592045382, + "y": 14.84737065101786, + "z": 26.549461682727937 + }, + "state": [ + 11.451005592045382, + 14.84737065101786, + 26.549461682727937 + ], + "step": 891, + "time": 22.275 + }, + { + "observations": { + "radius": 34.6995270961194, + "x": 12.179523546292486, + "y": 14.532671118145908, + "z": 29.060589413352215 + }, + "state": [ + 12.179523546292486, + 14.532671118145908, + 29.060589413352215 + ], + "step": 892, + "time": 22.3 + }, + { + "observations": { + "radius": 36.42311030891634, + "x": 12.591755593391746, + "y": 13.476661754237991, + "z": 31.408123847400287 + }, + "state": [ + 12.591755593391746, + 13.476661754237991, + 31.408123847400287 + ], + "step": 893, + "time": 22.325 + }, + { + "observations": { + "radius": 37.45752251555642, + "x": 12.601430832919176, + "y": 11.775242324707772, + "z": 33.25076844466878 + }, + "state": [ + 12.601430832919176, + 11.775242324707772, + 33.25076844466878 + ], + "step": 894, + "time": 22.35 + }, + { + "observations": { + "radius": 37.69734449610716, + "x": 12.182099704345998, + "y": 9.686235049657963, + "z": 34.334575567703354 + }, + "state": [ + 12.182099704345998, + 9.686235049657963, + 34.334575567703354 + ], + "step": 895, + "time": 22.375 + }, + { + "observations": { + "radius": 37.17611554069781, + "x": 11.381256079310988, + "y": 7.545163922727563, + "z": 34.577464888733964 + }, + "state": [ + 11.381256079310988, + 7.545163922727563, + 34.577464888733964 + ], + "step": 896, + "time": 22.4 + }, + { + "observations": { + "radius": 36.04295133980843, + "x": 10.307512667676242, + "y": 5.647424518189318, + "z": 34.072806168568604 + }, + "state": [ + 10.307512667676242, + 5.647424518189318, + 34.072806168568604 + ], + "step": 897, + "time": 22.425 + }, + { + "observations": { + "radius": 34.50260790233253, + "x": 9.097769234069291, + "y": 4.168109335765953, + "z": 33.019500474580504 + }, + "state": [ + 9.097769234069291, + 4.168109335765953, + 33.019500474580504 + ], + "step": 898, + "time": 22.45 + }, + { + "observations": { + "radius": 32.753284489766834, + "x": 7.881954384773553, + "y": 3.152004966329446, + "z": 31.63411615070325 + }, + "state": [ + 7.881954384773553, + 3.152004966329446, + 31.63411615070325 + ], + "step": 899, + "time": 22.475 + }, + { + "observations": { + "radius": 30.948404965140448, + "x": 6.759767771069715, + "y": 2.5532464665170944, + "z": 30.09302646874779 + }, + "state": [ + 6.759767771069715, + 2.5532464665170944, + 30.09302646874779 + ], + "step": 900, + "time": 22.5 + }, + { + "observations": { + "radius": 29.18726914139304, + "x": 5.793259887641678, + "y": 2.2860955450160287, + "z": 28.515058950761684 + }, + "state": [ + 5.793259887641678, + 2.2860955450160287, + 28.515058950761684 + ], + "step": 901, + "time": 22.525 + }, + { + "observations": { + "radius": 27.52458338704505, + "x": 5.01100516724429, + "y": 2.262448458044278, + "z": 26.969869202851918 + }, + "state": [ + 5.01100516724429, + 2.262448458044278, + 26.969869202851918 + ], + "step": 902, + "time": 22.55 + }, + { + "observations": { + "radius": 25.986385928198764, + "x": 4.417496932781584, + "y": 2.410971210756816, + "z": 25.494414923254347 + }, + "state": [ + 4.417496932781584, + 2.410971210756816, + 25.494414923254347 + ], + "step": 903, + "time": 22.575 + }, + { + "observations": { + "radius": 24.584444745621862, + "x": 4.0030173070357, + "y": 2.6827247002341563, + "z": 24.107545791159676 + }, + "state": [ + 4.0030173070357, + 2.6827247002341563, + 24.107545791159676 + ], + "step": 904, + "time": 22.6 + }, + { + "observations": { + "radius": 23.326435069822303, + "x": 3.7516430498620403, + "y": 3.0496652063807863, + "z": 22.819888028253953 + }, + "state": [ + 3.7516430498620403, + 3.0496652063807863, + 22.819888028253953 + ], + "step": 905, + "time": 22.625 + }, + { + "observations": { + "radius": 22.222293720671345, + "x": 3.6467854547147733, + "y": 3.5005209040547247, + "z": 21.639723830385307 + }, + "state": [ + 3.6467854547147733, + 3.5005209040547247, + 21.639723830385307 + ], + "step": 906, + "time": 22.65 + }, + { + "observations": { + "radius": 21.288126759360868, + "x": 3.6745335760202087, + "y": 4.03638823173618, + "z": 20.57643589069832 + }, + "state": [ + 3.6745335760202087, + 4.03638823173618, + 20.57643589069832 + ], + "step": 907, + "time": 22.675 + }, + { + "observations": { + "radius": 20.54883251006172, + "x": 3.825344806775859, + "y": 4.666913182343522, + "z": 19.64284032374928 + }, + "state": [ + 3.825344806775859, + 4.666913182343522, + 19.64284032374928 + ], + "step": 908, + "time": 22.7 + }, + { + "observations": { + "radius": 20.039918061752044, + "x": 4.094591570138751, + "y": 5.407079950399845, + "z": 18.857256486707406 + }, + "state": [ + 4.094591570138751, + 5.407079950399845, + 18.857256486707406 + ], + "step": 909, + "time": 22.725 + }, + { + "observations": { + "radius": 19.80817919459829, + "x": 4.482306720402027, + "y": 6.27416155517569, + "z": 18.245760774741914 + }, + "state": [ + 4.482306720402027, + 6.27416155517569, + 18.245760774741914 + ], + "step": 910, + "time": 22.75 + }, + { + "observations": { + "radius": 19.91017790884084, + "x": 4.992259053313312, + "y": 7.284080148569951, + "z": 17.84473900889319 + }, + "state": [ + 4.992259053313312, + 7.284080148569951, + 17.84473900889319 + ], + "step": 911, + "time": 22.775 + }, + { + "observations": { + "radius": 20.40710517688483, + "x": 5.630264759901212, + "y": 8.44616847972184, + "z": 17.703454421270653 + }, + "state": [ + 5.630264759901212, + 8.44616847972184, + 17.703454421270653 + ], + "step": 912, + "time": 22.8 + }, + { + "observations": { + "radius": 21.355064257498547, + "x": 6.401414784775416, + "y": 9.755142755580808, + "z": 17.885688357270176 + }, + "state": [ + 6.401414784775416, + 9.755142755580808, + 17.885688357270176 + ], + "step": 913, + "time": 22.825 + }, + { + "observations": { + "radius": 22.79100383383684, + "x": 7.305711879560891, + "y": 11.179239586667197, + "z": 18.468379245366968 + }, + "state": [ + 7.305711879560891, + 11.179239586667197, + 18.468379245366968 + ], + "step": 914, + "time": 22.85 + }, + { + "observations": { + "radius": 24.71556730116707, + "x": 8.33159119044067, + "y": 12.644563126362197, + "z": 19.533532158760533 + }, + "state": [ + 8.33159119044067, + 12.644563126362197, + 19.533532158760533 + ], + "step": 915, + "time": 22.875 + }, + { + "observations": { + "radius": 27.074341623815894, + "x": 9.447235427647286, + "y": 14.018806725809315, + "z": 21.148115167127763 + }, + "state": [ + 9.447235427647286, + 14.018806725809315, + 21.148115167127763 + ], + "step": 916, + "time": 22.9 + }, + { + "observations": { + "radius": 29.73978325449712, + "x": 10.5909593529885, + "y": 15.103579655904463, + "z": 23.3274124065564 + }, + "state": [ + 10.5909593529885, + 15.103579655904463, + 23.3274124065564 + ], + "step": 917, + "time": 22.925 + }, + { + "observations": { + "radius": 32.500055981307504, + "x": 11.664579017489492, + "y": 15.652035261623526, + "z": 25.984707566215935 + }, + "state": [ + 11.664579017489492, + 15.652035261623526, + 25.984707566215935 + ], + "step": 918, + "time": 22.95 + }, + { + "observations": { + "radius": 35.067572679899676, + "x": 12.536849539101741, + "y": 15.429324011611817, + "z": 28.8876793432541 + }, + "state": [ + 12.536849539101741, + 15.429324011611817, + 28.8876793432541 + ], + "step": 919, + "time": 22.975 + }, + { + "observations": { + "radius": 37.12192751513908, + "x": 13.064563077286389, + "y": 14.313412117196213, + "z": 31.66197921170036 + }, + "state": [ + 13.064563077286389, + 14.313412117196213, + 31.66197921170036 + ], + "step": 920, + "time": 23.0 + }, + { + "observations": { + "radius": 38.38834338248803, + "x": 13.131910222790983, + "y": 12.390226591773194, + "z": 33.87772316075693 + }, + "state": [ + 13.131910222790983, + 12.390226591773194, + 33.87772316075693 + ], + "step": 921, + "time": 23.025 + }, + { + "observations": { + "radius": 38.72363356238041, + "x": 12.69405914827269, + "y": 9.96672494295887, + "z": 35.200071768748856 + }, + "state": [ + 12.69405914827269, + 9.96672494295887, + 35.200071768748856 + ], + "step": 922, + "time": 23.05 + }, + { + "observations": { + "radius": 38.161181140021206, + "x": 11.800164562810433, + "y": 7.465617699125347, + "z": 35.51473517658001 + }, + "state": [ + 11.800164562810433, + 7.465617699125347, + 35.51473517658001 + ], + "step": 923, + "time": 23.075 + }, + { + "observations": { + "radius": 36.884632919085476, + "x": 10.579423250606895, + "y": 5.262253921902787, + "z": 34.9408161456143 + }, + "state": [ + 10.579423250606895, + 5.262253921902787, + 34.9408161456143 + ], + "step": 924, + "time": 23.1 + }, + { + "observations": { + "radius": 35.14829317705409, + "x": 9.198149199329253, + "y": 3.5715683426761426, + "z": 33.73485533006803 + }, + "state": [ + 9.198149199329253, + 3.5715683426761426, + 33.73485533006803 + ], + "step": 925, + "time": 23.125 + }, + { + "observations": { + "radius": 33.19365540062878, + "x": 7.812960661842434, + "y": 2.43649083933151, + "z": 32.16892781772573 + }, + "state": [ + 7.812960661842434, + 2.43649083933151, + 32.16892781772573 + ], + "step": 926, + "time": 23.15 + }, + { + "observations": { + "radius": 31.200162679405636, + "x": 6.540843256631707, + "y": 1.7859118188343885, + "z": 30.45452412514271 + }, + "state": [ + 6.540843256631707, + 1.7859118188343885, + 30.45452412514271 + ], + "step": 927, + "time": 23.175 + }, + { + "observations": { + "radius": 29.276018601828333, + "x": 5.4509210176622656, + "y": 1.5042505347037867, + "z": 28.724727249578017 + }, + "state": [ + 5.4509210176622656, + 1.5042505347037867, + 28.724727249578017 + ], + "step": 928, + "time": 23.2 + }, + { + "observations": { + "radius": 27.473464038096775, + "x": 4.5712177830426475, + "y": 1.4791665846783193, + "z": 27.05008799333863 + }, + "state": [ + 4.5712177830426475, + 1.4791665846783193, + 27.05008799333863 + ], + "step": 929, + "time": 23.225 + }, + { + "observations": { + "radius": 25.81068285899377, + "x": 3.901375442890674, + "y": 1.623224915670515, + "z": 25.462438221315544 + }, + "state": [ + 3.901375442890674, + 1.623224915670515, + 25.462438221315544 + ], + "step": 930, + "time": 23.25 + }, + { + "observations": { + "radius": 24.290025447148935, + "x": 3.4251659668563734, + "y": 1.878250260185383, + "z": 23.973855557309616 + }, + "state": [ + 3.4251659668563734, + 1.878250260185383, + 23.973855557309616 + ], + "step": 931, + "time": 23.275 + }, + { + "observations": { + "radius": 22.909785175329702, + "x": 3.1201284220355703, + "y": 2.2116118428239635, + "z": 22.58831176662929 + }, + "state": [ + 3.1201284220355703, + 2.2116118428239635, + 22.58831176662929 + ], + "step": 932, + "time": 23.3 + }, + { + "observations": { + "radius": 21.670749914718257, + "x": 2.9639163258236043, + "y": 2.6102306381459157, + "z": 21.307822457854815 + }, + "state": [ + 2.9639163258236043, + 2.6102306381459157, + 21.307822457854815 + ], + "step": 933, + "time": 23.325 + }, + { + "observations": { + "radius": 20.579756494664906, + "x": 2.9379355603411663, + "y": 3.075011086293313, + "z": 20.135521320347245 + }, + "state": [ + 2.9379355603411663, + 3.075011086293313, + 20.135521320347245 + ], + "step": 934, + "time": 23.35 + }, + { + "observations": { + "radius": 19.65205675495677, + "x": 3.0290893644978283, + "y": 3.6165644310238294, + "z": 19.07743206089807 + }, + "state": [ + 3.0290893644978283, + 3.6165644310238294, + 19.07743206089807 + ], + "step": 935, + "time": 23.375 + }, + { + "observations": { + "radius": 18.91349957591071, + "x": 3.2303419262467847, + "y": 4.252192123771409, + "z": 18.14398576360892 + }, + "state": [ + 3.2303419262467847, + 4.252192123771409, + 18.14398576360892 + ], + "step": 936, + "time": 23.4 + }, + { + "observations": { + "radius": 18.402705663857073, + "x": 3.5405949426235006, + "y": 5.003689498525044, + "z": 17.35185450046122 + }, + "state": [ + 3.5405949426235006, + 5.003689498525044, + 17.35185450046122 + ], + "step": 937, + "time": 23.425 + }, + { + "observations": { + "radius": 18.172557219201593, + "x": 3.964137743350491, + "y": 5.895305697235849, + "z": 16.72641080964588 + }, + "state": [ + 3.964137743350491, + 5.895305697235849, + 16.72641080964588 + ], + "step": 938, + "time": 23.45 + }, + { + "observations": { + "radius": 18.289464724766574, + "x": 4.509702674614205, + "y": 6.95097521132443, + "z": 16.30493929202472 + }, + "state": [ + 4.509702674614205, + 6.95097521132443, + 16.30493929202472 + ], + "step": 939, + "time": 23.475 + }, + { + "observations": { + "radius": 18.82840206341508, + "x": 5.188920898375798, + "y": 8.189625013464884, + "z": 16.14044194905587 + }, + "state": [ + 5.188920898375798, + 8.189625013464884, + 16.14044194905587 + ], + "step": 940, + "time": 23.5 + }, + { + "observations": { + "radius": 19.862323298876497, + "x": 6.013709722938041, + "y": 9.61696782450794, + "z": 16.305247991358844 + }, + "state": [ + 6.013709722938041, + 9.61696782450794, + 16.305247991358844 + ], + "step": 941, + "time": 23.525 + }, + { + "observations": { + "radius": 21.446307027529507, + "x": 6.991839354412351, + "y": 11.211948991095543, + "z": 16.892319775040484 + }, + "state": [ + 6.991839354412351, + 11.211948991095543, + 16.892319775040484 + ], + "step": 942, + "time": 23.55 + }, + { + "observations": { + "radius": 23.597992521506622, + "x": 8.119734406636315, + "y": 12.906657824853237, + "z": 18.009812547689762 + }, + "state": [ + 8.119734406636315, + 12.906657824853237, + 18.009812547689762 + ], + "step": 943, + "time": 23.575 + }, + { + "observations": { + "radius": 26.27514521493078, + "x": 9.371805492532829, + "y": 14.56164401289002, + "z": 19.76135221885627 + }, + "state": [ + 9.371805492532829, + 14.56164401289002, + 19.76135221885627 + ], + "step": 944, + "time": 23.6 + }, + { + "observations": { + "radius": 29.350882142811148, + "x": 10.686993856993578, + "y": 15.946460024694707, + "z": 22.202992085360602 + }, + "state": [ + 10.686993856993578, + 15.946460024694707, + 22.202992085360602 + ], + "step": 945, + "time": 23.625 + }, + { + "observations": { + "radius": 32.59225136353096, + "x": 11.95665848049126, + "y": 16.7480943696483, + "z": 25.274384303279025 + }, + "state": [ + 11.95665848049126, + 16.7480943696483, + 25.274384303279025 + ], + "step": 946, + "time": 23.65 + }, + { + "observations": { + "radius": 35.65938558965146, + "x": 13.023285331940903, + "y": 16.638574746047748, + "z": 28.725313753107677 + }, + "state": [ + 13.023285331940903, + 16.638574746047748, + 28.725313753107677 + ], + "step": 947, + "time": 23.675 + }, + { + "observations": { + "radius": 38.15061369062647, + "x": 13.702812006201766, + "y": 15.412928653883608, + "z": 32.095854847696486 + }, + "state": [ + 13.702812006201766, + 15.412928653883608, + 32.095854847696486 + ], + "step": 948, + "time": 23.7 + }, + { + "observations": { + "radius": 39.704523593160395, + "x": 13.836015854601682, + "y": 13.141468075294013, + "z": 34.8183238519184 + }, + "state": [ + 13.836015854601682, + 13.141468075294013, + 34.8183238519184 + ], + "step": 949, + "time": 23.725 + }, + { + "observations": { + "radius": 40.12488119442594, + "x": 13.352086688240387, + "y": 10.213337896774261, + "z": 36.43371516799824 + }, + "state": [ + 13.352086688240387, + 10.213337896774261, + 36.43371516799824 + ], + "step": 950, + "time": 23.75 + }, + { + "observations": { + "radius": 39.4532145741305, + "x": 12.306349588780408, + "y": 7.193400504656065, + "z": 36.78810798628711 + }, + "state": [ + 12.306349588780408, + 7.193400504656065, + 36.78810798628711 + ], + "step": 951, + "time": 23.775 + }, + { + "observations": { + "radius": 37.93506101441594, + "x": 10.863316459249713, + "y": 4.578469193260889, + "z": 36.05682777949296 + }, + "state": [ + 10.863316459249713, + 4.578469193260889, + 36.05682777949296 + ], + "step": 952, + "time": 23.8 + }, + { + "observations": { + "radius": 35.90473036026357, + "x": 9.235628398208009, + "y": 2.6316487969564863, + "z": 34.59663646863556 + }, + "state": [ + 9.235628398208009, + 2.6316487969564863, + 34.59663646863556 + ], + "step": 953, + "time": 23.825 + }, + { + "observations": { + "radius": 33.66699407891286, + "x": 7.618378305625467, + "y": 1.3771202739451014, + "z": 32.764772882671075 + }, + "state": [ + 7.618378305625467, + 1.3771202739451014, + 32.764772882671075 + ], + "step": 954, + "time": 23.85 + }, + { + "observations": { + "radius": 31.433517587144713, + "x": 6.150196432350308, + "y": 0.6949563144267499, + "z": 30.818146398929965 + }, + "state": [ + 6.150196432350308, + 0.6949563144267499, + 30.818146398929965 + ], + "step": 955, + "time": 23.875 + }, + { + "observations": { + "radius": 29.31814252017043, + "x": 4.905947854281308, + "y": 0.4214577768480626, + "z": 28.90168731798253 + }, + "state": [ + 4.905947854281308, + 0.4214577768480626, + 28.90168731798253 + ], + "step": 956, + "time": 23.9 + }, + { + "observations": { + "radius": 27.363753262946393, + "x": 3.908952976235389, + "y": 0.409711545698911, + "z": 27.080015061190622 + }, + "state": [ + 3.908952976235389, + 0.409711545698911, + 27.080015061190622 + ], + "step": 957, + "time": 23.925 + }, + { + "observations": { + "radius": 25.573993633612083, + "x": 3.1492110259962907, + "y": 0.5517071452176965, + "z": 25.373356882992258 + }, + "state": [ + 3.1492110259962907, + 0.5517071452176965, + 25.373356882992258 + ], + "step": 958, + "time": 23.95 + }, + { + "observations": { + "radius": 23.936696072305935, + "x": 2.5996590778314865, + "y": 0.7785938573548337, + "z": 23.782367063483903 + }, + "state": [ + 2.5996590778314865, + 0.7785938573548337, + 23.782367063483903 + ], + "step": 959, + "time": 23.975 + }, + { + "observations": { + "radius": 22.437086798233878, + "x": 2.2277529914340133, + "y": 1.0526843271795716, + "z": 22.301386421205933 + }, + "state": [ + 2.2277529914340133, + 1.0526843271795716, + 22.301386421205933 + ], + "step": 960, + "time": 24.0 + }, + { + "observations": { + "radius": 21.063688496129064, + "x": 2.0025118438843226, + "y": 1.358383292102555, + "z": 20.92423748213539 + }, + "state": [ + 2.0025118438843226, + 1.358383292102555, + 20.92423748213539 + ], + "step": 961, + "time": 24.025 + }, + { + "observations": { + "radius": 19.810416644949306, + "x": 1.8981665134245094, + "y": 1.6947953115561825, + "z": 19.646303478917492 + }, + "state": [ + 1.8981665134245094, + 1.6947953115561825, + 19.646303478917492 + ], + "step": 962, + "time": 24.05 + }, + { + "observations": { + "radius": 18.67736110933729, + "x": 1.8956267538305829, + "y": 2.0705948466103488, + "z": 18.465184921899308 + }, + "state": [ + 1.8956267538305829, + 2.0705948466103488, + 18.465184921899308 + ], + "step": 963, + "time": 24.075 + }, + { + "observations": { + "radius": 17.67166174173548, + "x": 1.9827277417838454, + "y": 2.500896953841403, + "z": 17.381079766301777 + }, + "state": [ + 1.9827277417838454, + 2.500896953841403, + 17.381079766301777 + ], + "step": 964, + "time": 24.1 + }, + { + "observations": { + "radius": 16.80916403795274, + "x": 2.153912228424849, + "y": 3.0056256704397124, + "z": 16.397404431684894 + }, + "state": [ + 2.153912228424849, + 3.0056256704397124, + 16.397404431684894 + ], + "step": 965, + "time": 24.125 + }, + { + "observations": { + "radius": 16.11709089557536, + "x": 2.409743723122245, + "y": 3.608856391383592, + "z": 15.52191707462325 + }, + "state": [ + 2.409743723122245, + 3.608856391383592, + 15.52191707462325 + ], + "step": 966, + "time": 24.15 + }, + { + "observations": { + "radius": 15.637512955443633, + "x": 2.756444865161581, + "y": 4.3386223382633435, + "z": 14.768553732268916 + }, + "state": [ + 2.756444865161581, + 4.3386223382633435, + 14.768553732268916 + ], + "step": 967, + "time": 24.175 + }, + { + "observations": { + "radius": 15.430643707624212, + "x": 3.2054952254182005, + "y": 5.226620709011254, + "z": 14.160226041825691 + }, + "state": [ + 3.2054952254182005, + 5.226620709011254, + 14.160226041825691 + ], + "step": 968, + "time": 24.2 + }, + { + "observations": { + "radius": 15.575858701760955, + "x": 3.7731702197140975, + "y": 6.30705000161252, + "z": 13.732868639415607 + }, + "state": [ + 3.7731702197140975, + 6.30705000161252, + 13.732868639415607 + ], + "step": 969, + "time": 24.225 + }, + { + "observations": { + "radius": 16.167512493860684, + "x": 4.479713627642507, + "y": 7.613369472070261, + "z": 13.54094647117416 + }, + "state": [ + 4.479713627642507, + 7.613369472070261, + 13.54094647117416 + ], + "step": 970, + "time": 24.25 + }, + { + "observations": { + "radius": 17.30359165823056, + "x": 5.34755612643884, + "y": 9.171021818299238, + "z": 13.664197252588675 + }, + "state": [ + 5.34755612643884, + 9.171021818299238, + 13.664197252588675 + ], + "step": 971, + "time": 24.275 + }, + { + "observations": { + "radius": 19.06829034374802, + "x": 6.397576503488555, + "y": 10.983166059388063, + "z": 14.21410478459306 + }, + "state": [ + 6.397576503488555, + 10.983166059388063, + 14.21410478459306 + ], + "step": 972, + "time": 24.3 + }, + { + "observations": { + "radius": 21.51120096379841, + "x": 7.6418779006635935, + "y": 13.005818309530405, + "z": 15.335649942397442 + }, + "state": [ + 7.6418779006635935, + 13.005818309530405, + 15.335649942397442 + ], + "step": 973, + "time": 24.325 + }, + { + "observations": { + "radius": 24.62238922554239, + "x": 9.0712106670285, + "y": 15.110466900373215, + "z": 17.194446145811728 + }, + "state": [ + 9.0712106670285, + 15.110466900373215, + 17.194446145811728 + ], + "step": 974, + "time": 24.35 + }, + { + "observations": { + "radius": 28.298604137445693, + "x": 10.635948050954505, + "y": 17.040648512312416, + "z": 19.932483625105032 + }, + "state": [ + 10.635948050954505, + 17.040648512312416, + 19.932483625105032 + ], + "step": 975, + "time": 24.375 + }, + { + "observations": { + "radius": 32.301485396513094, + "x": 12.223337173568801, + "y": 18.389775428420922, + "z": 23.575244364685716 + }, + "state": [ + 12.223337173568801, + 18.389775428420922, + 23.575244364685716 + ], + "step": 976, + "time": 24.4 + }, + { + "observations": { + "radius": 36.22883222085991, + "x": 13.642573399096483, + "y": 18.656575624645228, + "z": 27.898757339698406 + }, + "state": [ + 13.642573399096483, + 18.656575624645228, + 27.898757339698406 + ], + "step": 977, + "time": 24.425 + }, + { + "observations": { + "radius": 39.54506208141946, + "x": 14.64026211063513, + "y": 17.433881511977575, + "z": 32.33472492200215 + }, + "state": [ + 14.64026211063513, + 17.433881511977575, + 32.33472492200215 + ], + "step": 978, + "time": 24.45 + }, + { + "observations": { + "radius": 41.713471488603105, + "x": 14.967083899487822, + "y": 14.688278085678915, + "z": 36.05904311062567 + }, + "state": [ + 14.967083899487822, + 14.688278085678915, + 36.05904311062567 + ], + "step": 979, + "time": 24.475 + }, + { + "observations": { + "radius": 42.40231953349442, + "x": 14.482458260080628, + "y": 10.916451704584091, + "z": 38.32813831569528 + }, + "state": [ + 14.482458260080628, + 10.916451704584091, + 38.32813831569528 + ], + "step": 980, + "time": 24.5 + }, + { + "observations": { + "radius": 41.63581257952101, + "x": 13.233266673048318, + "y": 6.960789946348615, + "z": 38.85831887305215 + }, + "state": [ + 13.233266673048318, + 6.960789946348615, + 38.85831887305215 + ], + "step": 981, + "time": 24.525 + }, + { + "observations": { + "radius": 39.76426597579007, + "x": 11.441107781051711, + "y": 3.583865984159863, + "z": 37.91376802618431 + }, + "state": [ + 11.441107781051711, + 3.583865984159863, + 37.91376802618431 + ], + "step": 982, + "time": 24.55 + }, + { + "observations": { + "radius": 37.27688076366317, + "x": 9.405586802938068, + "y": 1.162524220494921, + "z": 36.052036194888096 + }, + "state": [ + 9.405586802938068, + 1.162524220494921, + 36.052036194888096 + ], + "step": 983, + "time": 24.575 + }, + { + "observations": { + "radius": 34.60410106178563, + "x": 7.396575143965279, + "y": -0.3118763813031582, + "z": 33.802917323165076 + }, + "state": [ + 7.396575143965279, + -0.3118763813031582, + 33.802917323165076 + ], + "step": 984, + "time": 24.6 + }, + { + "observations": { + "radius": 32.02048895960693, + "x": 5.594841701670817, + "y": -1.0548955573257583, + "z": 31.510262691838808 + }, + "state": [ + 5.594841701670817, + -1.0548955573257583, + 31.510262691838808 + ], + "step": 985, + "time": 24.625 + }, + { + "observations": { + "radius": 29.649823395601285, + "x": 4.086609255665858, + "y": -1.321420687584189, + "z": 29.337101076082416 + }, + "state": [ + 4.086609255665858, + -1.321420687584189, + 29.337101076082416 + ], + "step": 986, + "time": 24.65 + }, + { + "observations": { + "radius": 27.517150160005972, + "x": 2.88706099324473, + "y": -1.3207783339475723, + "z": 27.333385746046467 + }, + "state": [ + 2.88706099324473, + -1.3207783339475723, + 27.333385746046467 + ], + "step": 987, + "time": 24.675 + }, + { + "observations": { + "radius": 25.600853904203806, + "x": 1.969299366373046, + "y": -1.1965297516846665, + "z": 25.49693897673451 + }, + "state": [ + 1.969299366373046, + -1.1965297516846665, + 25.49693897673451 + ], + "step": 988, + "time": 24.7 + }, + { + "observations": { + "radius": 23.866242517422652, + "x": 1.2874143541874654, + "y": -1.0357578138320847, + "z": 23.808975239017546 + }, + "state": [ + 1.2874143541874654, + -1.0357578138320847, + 23.808975239017546 + ], + "step": 989, + "time": 24.725 + }, + { + "observations": { + "radius": 22.28128803365496, + "x": 0.791287709780803, + "y": -0.8856605536206354, + "z": 22.249612706355272 + }, + "state": [ + 0.791287709780803, + -0.8856605536206354, + 22.249612706355272 + ], + "step": 990, + "time": 24.75 + }, + { + "observations": { + "radius": 20.82133960688095, + "x": 0.4345689541556551, + "y": -0.7684019969435267, + "z": 20.802617412725898 + }, + "state": [ + 0.4345689541556551, + -0.7684019969435267, + 20.802617412725898 + ], + "step": 991, + "time": 24.775 + }, + { + "observations": { + "radius": 19.46883712505549, + "x": 0.17805233585161742, + "y": -0.6919839691856798, + "z": 19.45572086955471 + }, + "state": [ + 0.17805233585161742, + -0.6919839691856798, + 19.45572086955471 + ], + "step": 992, + "time": 24.8 + }, + { + "observations": { + "radius": 18.211548039542222, + "x": -0.009658428676473652, + "y": -0.6574308693099841, + "z": 18.19967508950058 + }, + "state": [ + -0.009658428676473652, + -0.6574308693099841, + 18.19967508950058 + ], + "step": 993, + "time": 24.825 + }, + { + "observations": { + "radius": 17.040871375865713, + "x": -0.1528857189545256, + "y": -0.6632132692029434, + "z": 17.027274337523675 + }, + "state": [ + -0.1528857189545256, + -0.6632132692029434, + 17.027274337523675 + ], + "step": 994, + "time": 24.85 + }, + { + "observations": { + "radius": 15.950675794344846, + "x": -0.2702004548108653, + "y": -0.7078152706723624, + "z": 15.932672329308778 + }, + "state": [ + -0.2702004548108653, + -0.7078152706723624, + 15.932672329308778 + ], + "step": 995, + "time": 24.875 + }, + { + "observations": { + "radius": 14.936700712520555, + "x": -0.37587704736529026, + "y": -0.7911584915934313, + "z": 14.910996373879769 + }, + "state": [ + -0.37587704736529026, + -0.7911584915934313, + 14.910996373879769 + ], + "step": 996, + "time": 24.9 + }, + { + "observations": { + "radius": 13.996446297082235, + "x": -0.48126087529232137, + "y": -0.9153935298960094, + "z": 13.958185827765886 + }, + "state": [ + -0.48126087529232137, + -0.9153935298960094, + 13.958185827765886 + ], + "step": 997, + "time": 24.925 + }, + { + "observations": { + "radius": 13.129518704126589, + "x": -0.5959702074555409, + "y": -1.085404032756714, + "z": 13.070997628318613 + }, + "state": [ + -0.5959702074555409, + -1.085404032756714, + 13.070997628318613 + ], + "step": 998, + "time": 24.95 + }, + { + "observations": { + "radius": 12.338492747879393, + "x": -0.7289331721198464, + "y": -1.3092474596574877, + "z": 12.247160112019278 + }, + "state": [ + -0.7289331721198464, + -1.3092474596574877, + 12.247160112019278 + ], + "step": 999, + "time": 24.975 + }, + { + "observations": { + "radius": 11.630472431576743, + "x": -0.8892998317807409, + "y": -1.5986737785825442, + "z": 11.485698800705771 + }, + "state": [ + -0.8892998317807409, + -1.5986737785825442, + 11.485698800705771 + ], + "step": 1000, + "time": 25.0 + } + ], + "trace_sha256": "c96b1c9d3431171de4900ec109eb682c7f26d70e3faa2a324e630fb09cc29fc3" + }, + "comparison": { + "endpoint_time_atol": 1e-10, + "event_time_atol": 1e-08, + "expected_solver_success": true, + "invariant_measure_atol": 1e-06, + "max_unmatched_points": 0, + "mode": "tolerance", + "observable_atol": { + "radius": 2e-06, + "x": 1e-06, + "y": 1e-06, + "z": 1e-06 + }, + "require_classifier": true, + "require_invariants": true, + "retained_grid_time_atol": 1e-12, + "state_atol": 1e-06, + "state_rtol": 1e-06 + }, + "configuration": { + "adapter": { + "factory": "lorenz_adapter", + "kind": "python", + "module": "phaseprobe.examples.scipy_models", + "options": { + "atol": 1e-12, + "dense_output": false, + "identity": "phaseprobe-lorenz-scipy-v1", + "initial_state": [ + 1.0, + 1.0, + 1.0 + ], + "max_step": 0.05, + "method": "DOP853", + "rtol": 1e-09, + "state_names": [ + "x", + "y", + "z" + ], + "t_eval": { + "kind": "linspace", + "points": 1001 + }, + "t_span": [ + 0.0, + 25.0 + ], + "vectorized": false + } + }, + "classification_rule": "Classify only boundedness over the declared finite window; the finding is twin-trajectory separation, not a proof of chaos.", + "invalid_state_policy": "Abort on solver failure, invalid shape, NaN, infinity, or the declared hard-state-limit breach.", + "model": "lorenz-scipy", + "parameters": { + "beta": 2.6666666666666665, + "rho": 28.0, + "sigma": 10.0 + }, + "perturb": { + "dimension": "x", + "divergence_threshold": 1.0, + "points": 5, + "predicate": "finite-time-divergence", + "refine_iterations": 6, + "repeatability": 2, + "scale": "log", + "start": 1e-09, + "stop": 1e-05 + }, + "refinement_rule": "Search the declared positive x perturbations and repeat the smallest threshold crossing found in the bounded grid.", + "replay": { + "endpoint_time_atol": 1e-10, + "event_time_atol": 1e-08, + "expected_solver_success": true, + "invariant_measure_atol": 1e-06, + "max_unmatched_points": 0, + "mode": "tolerance", + "observable_atol": { + "radius": 2e-06, + "x": 1e-06, + "y": 1e-06, + "z": 1e-06 + }, + "require_classifier": true, + "require_invariants": true, + "retained_grid_time_atol": 1e-12, + "state_atol": 1e-06, + "state_rtol": 1e-06 + }, + "schema_version": "2.0", + "seed": 23, + "simulation": { + "hard_state_limit": 1000.0, + "trace_cap": 1001 + }, + "tolerances": { + "state_bound": 100.0 + } + }, + "created_by": "phaseprobe 0.2.0", + "finding": { + "baseline_regime": "bounded-finite-window", + "changed_regime": "bounded-finite-window", + "classification_rule": "Classify only boundedness over the declared finite window; the finding is twin-trajectory separation, not a proof of chaos.", + "dimension": "x", + "kind": "finite-time-divergence", + "metrics": { + "finite_time_divergence_rate": 0.5168266032200755, + "initial_separation": 3.3906249999999994e-06, + "max_trajectory_distance": 1.0294178989822826, + "rate_observation_window": 24.425, + "terminal_trajectory_distance": 0.6841738574618276 + }, + "minimality_statement": "Smallest reproducible perturbation found within the declared finite search; not a proof of global minimality.", + "refinement_rule": "Search the declared positive x perturbations and repeat the smallest threshold crossing found in the bounded grid.", + "repeatability": { + "runs": 2, + "stable": true, + "trace_sha256": "c96b1c9d3431171de4900ec109eb682c7f26d70e3faa2a324e630fb09cc29fc3" + }, + "search_bounds": [ + 1e-09, + 1e-05 + ], + "smallest_reproducible_change_found": 3.3906249999999994e-06, + "stable_bracket": [ + 3.25e-06, + 3.3906249999999994e-06 + ], + "target_classification": null + }, + "integrity_sha256": "98541876a5f95e7cdddcd7cf7c0b8517e7c58230f00f80a245e36115f8e31b98", + "model": "lorenz-scipy", + "model_identity": "phaseprobe-lorenz-scipy-v1:sha256:a8039a3ae54b4392", + "reproducible": true, + "schema_version": "2.0", + "seed": 23 +} diff --git a/tests/generated/fixtures/predator_prey_scipy-replay.json b/tests/generated/fixtures/predator_prey_scipy-replay.json new file mode 100644 index 0000000..1706865 --- /dev/null +++ b/tests/generated/fixtures/predator_prey_scipy-replay.json @@ -0,0 +1,15849 @@ +{ + "baseline": { + "classification": "positive-oscillation", + "execution_metadata": { + "adapter_configuration": { + "adapter": "scipy.solve_ivp", + "atol": [ + 1e-12, + 1e-12 + ], + "dense_output": false, + "events": [], + "identity": "phaseprobe-predator-prey-scipy-v1", + "initial_state": [ + 10.0, + 5.0 + ], + "max_step": 0.05, + "method": "DOP853", + "rtol": 1e-10, + "state_names": [ + "prey", + "predator" + ], + "t_eval": { + "kind": "linspace", + "points": 1201, + "start": 0.0, + "stop": 30.0 + }, + "t_span": [ + 0.0, + 30.0 + ], + "vectorized": false + }, + "atol": [ + 1e-12, + 1e-12 + ], + "dense_output": false, + "evaluation_grid": { + "kind": "linspace", + "points": 1201, + "start": 0.0, + "stop": 30.0 + }, + "event_configuration": [], + "events": [], + "initial_state": [ + 10.0, + 5.0 + ], + "maximum_step": 0.05, + "nfev": 9017, + "njev": 0, + "nlu": 0, + "numpy_version": "2.4.6", + "parameters": { + "alpha": 1.1, + "beta": 0.4, + "delta": 0.1, + "gamma": 0.4 + }, + "platform": { + "architecture_bits": 64, + "byteorder": "little", + "machine": "AMD64", + "release": "10", + "system": "Windows" + }, + "python_implementation": "CPython", + "python_version": "3.12.13", + "rtol": 1e-10, + "scipy_version": "1.18.0", + "seed": 31, + "solver_message": "The solver successfully reached the end of the integration interval.", + "solver_method": "DOP853", + "solver_status": 0, + "solver_success": true, + "t_span": [ + 0.0, + 30.0 + ], + "termination_time": 30.0, + "vectorized": false + }, + "final_state": [ + 6.089708434134617, + 0.9689812790552831 + ], + "initial_state": [ + 10.0, + 5.0 + ], + "invariant_violations": 0, + "invariants": [ + { + "detail": "Maximum absolute drift of the declared Lotka-Volterra first integral.", + "measured": 3.9968028886505635e-15, + "name": "lotka-volterra-first-integral-drift", + "passed": true, + "tolerance": 1e-08 + }, + { + "detail": "Minimum retained population; the policy requires a value strictly above zero.", + "measured": 0.508530245859438, + "name": "positive-populations", + "passed": true, + "tolerance": 0.0 + } + ], + "observations": { + "first_integral": 0.3085842591248713, + "predator": 0.9689812790552831, + "prey": 6.089708434134617 + }, + "parameters": { + "alpha": 1.1, + "beta": 0.4, + "delta": 0.1, + "gamma": 0.4 + }, + "solver_success": true, + "trace": [ + { + "observations": { + "first_integral": 0.3085842591248711, + "predator": 5.0, + "prey": 10.0 + }, + "state": [ + 10.0, + 5.0 + ], + "step": 0, + "time": 0.0 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 5.074133163663011, + "prey": 9.773874546635087 + }, + "state": [ + 9.773874546635087, + 5.074133163663011 + ], + "step": 1, + "time": 0.025 + }, + { + "observations": { + "first_integral": 0.3085842591248722, + "predator": 5.1464426002598405, + "prey": 9.54586913502657 + }, + "state": [ + 9.54586913502657, + 5.1464426002598405 + ], + "step": 2, + "time": 0.05 + }, + { + "observations": { + "first_integral": 0.30858425912486975, + "predator": 5.216798724886647, + "prey": 9.316533554144254 + }, + "state": [ + 9.316533554144254, + 5.216798724886647 + ], + "step": 3, + "time": 0.075 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 5.285079844593284, + "prey": 9.086406020664855 + }, + "state": [ + 9.086406020664855, + 5.285079844593284 + ], + "step": 4, + "time": 0.1 + }, + { + "observations": { + "first_integral": 0.30858425912487086, + "predator": 5.351172787522247, + "prey": 8.85600997091688 + }, + "state": [ + 8.85600997091688, + 5.351172787522247 + ], + "step": 5, + "time": 0.125 + }, + { + "observations": { + "first_integral": 0.3085842591248711, + "predator": 5.414973437433646, + "prey": 8.625851123418293 + }, + "state": [ + 8.625851123418293, + 5.414973437433646 + ], + "step": 6, + "time": 0.15 + }, + { + "observations": { + "first_integral": 0.308584259124872, + "predator": 5.476387169428795, + "prey": 8.39641484047756 + }, + "state": [ + 8.39641484047756, + 5.476387169428795 + ], + "step": 7, + "time": 0.175 + }, + { + "observations": { + "first_integral": 0.30858425912487086, + "predator": 5.535329184606116, + "prey": 8.168163810465579 + }, + "state": [ + 8.168163810465579, + 5.535329184606116 + ], + "step": 8, + "time": 0.2 + }, + { + "observations": { + "first_integral": 0.30858425912487264, + "predator": 5.591724743260831, + "prey": 7.941536065404665 + }, + "state": [ + 7.941536065404665, + 5.591724743260831 + ], + "step": 9, + "time": 0.225 + }, + { + "observations": { + "first_integral": 0.3085842591248711, + "predator": 5.645509298030837, + "prey": 7.716943341643901 + }, + "state": [ + 7.716943341643901, + 5.645509298030837 + ], + "step": 10, + "time": 0.25 + }, + { + "observations": { + "first_integral": 0.30858425912487375, + "predator": 5.696628530044439, + "prey": 7.494769784811863 + }, + "state": [ + 7.494769784811863, + 5.696628530044439 + ], + "step": 11, + "time": 0.275 + }, + { + "observations": { + "first_integral": 0.3085842591248704, + "predator": 5.745038292608519, + "prey": 7.275370994096826 + }, + "state": [ + 7.275370994096826, + 5.745038292608519 + ], + "step": 12, + "time": 0.3 + }, + { + "observations": { + "first_integral": 0.3085842591248742, + "predator": 5.790704468257873, + "prey": 7.059073395359596 + }, + "state": [ + 7.059073395359596, + 5.790704468257873 + ], + "step": 13, + "time": 0.325 + }, + { + "observations": { + "first_integral": 0.3085842591248702, + "predator": 5.8336027460488085, + "prey": 6.846173927716099 + }, + "state": [ + 6.846173927716099, + 5.8336027460488085 + ], + "step": 14, + "time": 0.35 + }, + { + "observations": { + "first_integral": 0.30858425912487397, + "predator": 5.873718326814117, + "prey": 6.636940024124751 + }, + "state": [ + 6.636940024124751, + 5.873718326814117 + ], + "step": 15, + "time": 0.375 + }, + { + "observations": { + "first_integral": 0.3085842591248704, + "predator": 5.911045564697067, + "prey": 6.431609863199175 + }, + "state": [ + 6.431609863199175, + 5.911045564697067 + ], + "step": 16, + "time": 0.4 + }, + { + "observations": { + "first_integral": 0.30858425912487397, + "predator": 5.945587553659845, + "prey": 6.2303928669606705 + }, + "state": [ + 6.2303928669606705, + 5.945587553659845 + ], + "step": 17, + "time": 0.425 + }, + { + "observations": { + "first_integral": 0.3085842591248704, + "predator": 5.9773556678230895, + "prey": 6.033470417518465 + }, + "state": [ + 6.033470417518465, + 5.9773556678230895 + ], + "step": 18, + "time": 0.45 + }, + { + "observations": { + "first_integral": 0.30858425912487375, + "predator": 6.0063690644627945, + "prey": 5.84099676468398 + }, + "state": [ + 5.84099676468398, + 6.0063690644627945 + ], + "step": 19, + "time": 0.475 + }, + { + "observations": { + "first_integral": 0.30858425912487064, + "predator": 6.032654158282586, + "prey": 5.653100096224693 + }, + "state": [ + 5.653100096224693, + 6.032654158282586 + ], + "step": 20, + "time": 0.5 + }, + { + "observations": { + "first_integral": 0.30858425912487375, + "predator": 6.0562440752261555, + "prey": 5.469883742771368 + }, + "state": [ + 5.469883742771368, + 6.0562440752261555 + ], + "step": 21, + "time": 0.525 + }, + { + "observations": { + "first_integral": 0.30858425912487064, + "predator": 6.077178093613576, + "prey": 5.291427490228015 + }, + "state": [ + 5.291427490228015, + 6.077178093613576 + ], + "step": 22, + "time": 0.55 + }, + { + "observations": { + "first_integral": 0.30858425912487286, + "predator": 6.095501079811229, + "prey": 5.117788973807082 + }, + "state": [ + 5.117788973807082, + 6.095501079811229 + ], + "step": 23, + "time": 0.575 + }, + { + "observations": { + "first_integral": 0.30858425912487086, + "predator": 6.1112629249953905, + "prey": 4.949005129439072 + }, + "state": [ + 4.949005129439072, + 6.1112629249953905 + ], + "step": 24, + "time": 0.6 + }, + { + "observations": { + "first_integral": 0.3085842591248722, + "predator": 6.1245179888760175, + "prey": 4.785093680195177 + }, + "state": [ + 4.785093680195177, + 6.1245179888760175 + ], + "step": 25, + "time": 0.625 + }, + { + "observations": { + "first_integral": 0.30858425912487064, + "predator": 6.135324555525222, + "prey": 4.626054637438406 + }, + "state": [ + 4.626054637438406, + 6.135324555525222 + ], + "step": 26, + "time": 0.65 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 6.143744305729821, + "prey": 4.471871798603091 + }, + "state": [ + 4.471871798603091, + 6.143744305729821 + ], + "step": 27, + "time": 0.675 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 6.149841809571392, + "prey": 4.322514225734764 + }, + "state": [ + 4.322514225734764, + 6.149841809571392 + ], + "step": 28, + "time": 0.7 + }, + { + "observations": { + "first_integral": 0.30858425912487086, + "predator": 6.15368404224826, + "prey": 4.177937691139691 + }, + "state": [ + 4.177937691139691, + 6.15368404224826 + ], + "step": 29, + "time": 0.725 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 6.155339925500433, + "prey": 4.038086078653668 + }, + "state": [ + 4.038086078653668, + 6.155339925500433 + ], + "step": 30, + "time": 0.75 + }, + { + "observations": { + "first_integral": 0.30858425912487, + "predator": 6.15487989639087, + "prey": 3.902892731100258 + }, + "state": [ + 3.902892731100258, + 6.15487989639087 + ], + "step": 31, + "time": 0.775 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 6.15237550464017, + "prey": 3.7722817364438224 + }, + "state": [ + 3.7722817364438224, + 6.15237550464017 + ], + "step": 32, + "time": 0.8 + }, + { + "observations": { + "first_integral": 0.30858425912486953, + "predator": 6.147899039210156, + "prey": 3.6461691469285133 + }, + "state": [ + 3.6461691469285133, + 6.147899039210156 + ], + "step": 33, + "time": 0.825 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 6.141523184388062, + "prey": 3.5244641271186405 + }, + "state": [ + 3.5244641271186405, + 6.141523184388062 + ], + "step": 34, + "time": 0.85 + }, + { + "observations": { + "first_integral": 0.30858425912486953, + "predator": 6.133320705235238, + "prey": 3.407070028210365 + }, + "state": [ + 3.407070028210365, + 6.133320705235238 + ], + "step": 35, + "time": 0.875 + }, + { + "observations": { + "first_integral": 0.3085842591248711, + "predator": 6.123364161933874, + "prey": 3.293885387267153 + }, + "state": [ + 3.293885387267153, + 6.123364161933874 + ], + "step": 36, + "time": 0.9 + }, + { + "observations": { + "first_integral": 0.3085842591248693, + "predator": 6.111725652286725, + "prey": 3.1848048511454556 + }, + "state": [ + 3.1848048511454556, + 6.111725652286725 + ], + "step": 37, + "time": 0.925 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 6.098476581398579, + "prey": 3.0797200258267186 + }, + "state": [ + 3.0797200258267186, + 6.098476581398579 + ], + "step": 38, + "time": 0.95 + }, + { + "observations": { + "first_integral": 0.30858425912486886, + "predator": 6.083687457386646, + "prey": 2.9785202526684116 + }, + "state": [ + 2.9785202526684116, + 6.083687457386646 + ], + "step": 39, + "time": 0.975 + }, + { + "observations": { + "first_integral": 0.3085842591248711, + "predator": 6.067427711830105, + "prey": 2.8810933137378245 + }, + "state": [ + 2.8810933137378245, + 6.067427711830105 + ], + "step": 40, + "time": 1.0 + }, + { + "observations": { + "first_integral": 0.3085842591248691, + "predator": 6.049765543568033, + "prey": 2.7873260689135297 + }, + "state": [ + 2.7873260689135297, + 6.049765543568033 + ], + "step": 41, + "time": 1.025 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 6.030767784390017, + "prey": 2.697105027839372 + }, + "state": [ + 2.697105027839372, + 6.030767784390017 + ], + "step": 42, + "time": 1.05 + }, + { + "observations": { + "first_integral": 0.3085842591248691, + "predator": 6.010499785125905, + "prey": 2.610316860111842 + }, + "state": [ + 2.610316860111842, + 6.010499785125905 + ], + "step": 43, + "time": 1.075 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 5.989025320630897, + "prey": 2.5268488472821686 + }, + "state": [ + 2.5268488472821686, + 5.989025320630897 + ], + "step": 44, + "time": 1.1 + }, + { + "observations": { + "first_integral": 0.30858425912486864, + "predator": 5.966406512170942, + "prey": 2.4465892803763416 + }, + "state": [ + 2.4465892803763416, + 5.966406512170942 + ], + "step": 45, + "time": 1.125 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 5.942703765742106, + "prey": 2.3694278066868226 + }, + "state": [ + 2.3694278066868226, + 5.942703765742106 + ], + "step": 46, + "time": 1.15 + }, + { + "observations": { + "first_integral": 0.3085842591248691, + "predator": 5.9179757248983655, + "prey": 2.2952557295843965 + }, + "state": [ + 2.2952557295843965, + 5.9179757248983655 + ], + "step": 47, + "time": 1.175 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 5.89227923671654, + "prey": 2.2239662650431695 + }, + "state": [ + 2.2239662650431695, + 5.89227923671654 + ], + "step": 48, + "time": 1.2 + }, + { + "observations": { + "first_integral": 0.30858425912486953, + "predator": 5.8656693295878775, + "prey": 2.15545475847947 + }, + "state": [ + 2.15545475847947, + 5.8656693295878775 + ], + "step": 49, + "time": 1.225 + }, + { + "observations": { + "first_integral": 0.3085842591248711, + "predator": 5.8381992015948505, + "prey": 2.0896188653805785 + }, + "state": [ + 2.0896188653805785, + 5.8381992015948505 + ], + "step": 50, + "time": 1.25 + }, + { + "observations": { + "first_integral": 0.30858425912486975, + "predator": 5.809920218303128, + "prey": 2.0263586990527065 + }, + "state": [ + 2.0263586990527065, + 5.809920218303128 + ], + "step": 51, + "time": 1.275 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 5.780881918874305, + "prey": 1.965576948652299 + }, + "state": [ + 1.965576948652299, + 5.780881918874305 + ], + "step": 52, + "time": 1.3 + }, + { + "observations": { + "first_integral": 0.30858425912486975, + "predator": 5.75113202948001, + "prey": 1.90717897048923 + }, + "state": [ + 1.90717897048923, + 5.75113202948001 + ], + "step": 53, + "time": 1.325 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 5.720716483074276, + "prey": 1.851072855406319 + }, + "state": [ + 1.851072855406319, + 5.720716483074276 + ], + "step": 54, + "time": 1.35 + }, + { + "observations": { + "first_integral": 0.30858425912487, + "predator": 5.689679444654809, + "prey": 1.7971694748536144 + }, + "state": [ + 1.7971694748536144, + 5.689679444654809 + ], + "step": 55, + "time": 1.375 + }, + { + "observations": { + "first_integral": 0.30858425912487064, + "predator": 5.658063341216719, + "prey": 1.7453825080884966 + }, + "state": [ + 1.7453825080884966, + 5.658063341216719 + ], + "step": 56, + "time": 1.4 + }, + { + "observations": { + "first_integral": 0.3085842591248704, + "predator": 5.625908895671534, + "prey": 1.6956284527490255 + }, + "state": [ + 1.6956284527490255, + 5.625908895671534 + ], + "step": 57, + "time": 1.425 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 5.5932551640714205, + "prey": 1.6478266208678074 + }, + "state": [ + 1.6478266208678074, + 5.5932551640714205 + ], + "step": 58, + "time": 1.45 + }, + { + "observations": { + "first_integral": 0.30858425912487064, + "predator": 5.560139575541411, + "prey": 1.6018991222206809 + }, + "state": [ + 1.6018991222206809, + 5.560139575541411 + ], + "step": 59, + "time": 1.475 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 5.526597974382386, + "prey": 1.5577708367380982 + }, + "state": [ + 1.5577708367380982, + 5.526597974382386 + ], + "step": 60, + "time": 1.5 + }, + { + "observations": { + "first_integral": 0.3085842591248704, + "predator": 5.4926646638631444, + "prey": 1.515369377549661 + }, + "state": [ + 1.515369377549661, + 5.4926646638631444 + ], + "step": 61, + "time": 1.525 + }, + { + "observations": { + "first_integral": 0.3085842591248711, + "predator": 5.458372451272209, + "prey": 1.4746250460830268 + }, + "state": [ + 1.4746250460830268, + 5.458372451272209 + ], + "step": 62, + "time": 1.55 + }, + { + "observations": { + "first_integral": 0.30858425912487064, + "predator": 5.423752693848061, + "prey": 1.435470780498934 + }, + "state": [ + 1.435470780498934, + 5.423752693848061 + ], + "step": 63, + "time": 1.575 + }, + { + "observations": { + "first_integral": 0.3085842591248711, + "predator": 5.388835345251259, + "prey": 1.3978420986133648 + }, + "state": [ + 1.3978420986133648, + 5.388835345251259 + ], + "step": 64, + "time": 1.6 + }, + { + "observations": { + "first_integral": 0.3085842591248702, + "predator": 5.353649002282669, + "prey": 1.3616770363369466 + }, + "state": [ + 1.3616770363369466, + 5.353649002282669 + ], + "step": 65, + "time": 1.625 + }, + { + "observations": { + "first_integral": 0.30858425912487086, + "predator": 5.318220951589647, + "prey": 1.3269160825494082 + }, + "state": [ + 1.3269160825494082, + 5.318220951589647 + ], + "step": 66, + "time": 1.65 + }, + { + "observations": { + "first_integral": 0.30858425912487086, + "predator": 5.282577216136045, + "prey": 1.2935021112239216 + }, + "state": [ + 1.2935021112239216, + 5.282577216136045 + ], + "step": 67, + "time": 1.675 + }, + { + "observations": { + "first_integral": 0.3085842591248711, + "predator": 5.246742601243054, + "prey": 1.2613803115213478 + }, + "state": [ + 1.2613803115213478, + 5.246742601243054 + ], + "step": 68, + "time": 1.7 + }, + { + "observations": { + "first_integral": 0.30858425912487086, + "predator": 5.210740740035821, + "prey": 1.2304981164880453 + }, + "state": [ + 1.2304981164880453, + 5.210740740035821 + ], + "step": 69, + "time": 1.725 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 5.174594138156213, + "prey": 1.2008051309120242 + }, + "state": [ + 1.2008051309120242, + 5.174594138156213 + ], + "step": 70, + "time": 1.75 + }, + { + "observations": { + "first_integral": 0.3085842591248711, + "predator": 5.138324217624677, + "prey": 1.1722530588208238 + }, + "state": [ + 1.1722530588208238, + 5.138324217624677 + ], + "step": 71, + "time": 1.775 + }, + { + "observations": { + "first_integral": 0.3085842591248711, + "predator": 5.10195135975463, + "prey": 1.1447956310397491 + }, + "state": [ + 1.1447956310397491, + 5.10195135975463 + ], + "step": 72, + "time": 1.8 + }, + { + "observations": { + "first_integral": 0.30858425912487064, + "predator": 5.06549494704077, + "prey": 1.1183885331708476 + }, + "state": [ + 1.1183885331708476, + 5.06549494704077 + ], + "step": 73, + "time": 1.825 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 5.028973403958968, + "prey": 1.0929893343005144 + }, + "state": [ + 1.0929893343005144, + 5.028973403958968 + ], + "step": 74, + "time": 1.85 + }, + { + "observations": { + "first_integral": 0.30858425912487086, + "predator": 4.992404236629523, + "prey": 1.0685574166967093 + }, + "state": [ + 1.0685574166967093, + 4.992404236629523 + ], + "step": 75, + "time": 1.875 + }, + { + "observations": { + "first_integral": 0.30858425912487086, + "predator": 4.955804071308199, + "prey": 1.0450539067147226 + }, + "state": [ + 1.0450539067147226, + 4.955804071308199 + ], + "step": 76, + "time": 1.9 + }, + { + "observations": { + "first_integral": 0.3085842591248711, + "predator": 4.919188691680432, + "prey": 1.0224416070931257 + }, + "state": [ + 1.0224416070931257, + 4.919188691680432 + ], + "step": 77, + "time": 1.925 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 4.882573074943743, + "prey": 1.00068493078831 + }, + "state": [ + 1.00068493078831, + 4.882573074943743 + ], + "step": 78, + "time": 1.95 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 4.84597142667175, + "prey": 0.9797498364667127 + }, + "state": [ + 0.9797498364667127, + 4.84597142667175 + ], + "step": 79, + "time": 1.975 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 4.809397214460387, + "prey": 0.9596037657479346 + }, + "state": [ + 0.9596037657479346, + 4.809397214460387 + ], + "step": 80, + "time": 2.0 + }, + { + "observations": { + "first_integral": 0.3085842591248711, + "predator": 4.772863200363152, + "prey": 0.9402155822692392 + }, + "state": [ + 0.9402155822692392, + 4.772863200363152 + ], + "step": 81, + "time": 2.025 + }, + { + "observations": { + "first_integral": 0.3085842591248711, + "predator": 4.736381472127491, + "prey": 0.921555512622048 + }, + "state": [ + 0.921555512622048, + 4.736381472127491 + ], + "step": 82, + "time": 2.05 + }, + { + "observations": { + "first_integral": 0.3085842591248711, + "predator": 4.69996347324889, + "prey": 0.9035950891937293 + }, + "state": [ + 0.9035950891937293, + 4.69996347324889 + ], + "step": 83, + "time": 2.075 + }, + { + "observations": { + "first_integral": 0.3085842591248711, + "predator": 4.663620031863015, + "prey": 0.8863070949329654 + }, + "state": [ + 0.8863070949329654, + 4.663620031863015 + ], + "step": 84, + "time": 2.1 + }, + { + "observations": { + "first_integral": 0.3085842591248711, + "predator": 4.627361388499289, + "prey": 0.8696655100440344 + }, + "state": [ + 0.8696655100440344, + 4.627361388499289 + ], + "step": 85, + "time": 2.125 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 4.591197222721887, + "prey": 0.8536454606042458 + }, + "state": [ + 0.8536454606042458, + 4.591197222721887 + ], + "step": 86, + "time": 2.15 + }, + { + "observations": { + "first_integral": 0.3085842591248711, + "predator": 4.555136678686093, + "prey": 0.8382231690893072 + }, + "state": [ + 0.8382231690893072, + 4.555136678686093 + ], + "step": 87, + "time": 2.175 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 4.519188389639574, + "prey": 0.8233759067834048 + }, + "state": [ + 0.8233759067834048, + 4.519188389639574 + ], + "step": 88, + "time": 2.2 + }, + { + "observations": { + "first_integral": 0.30858425912487086, + "predator": 4.483360501399294, + "prey": 0.8090819480440974 + }, + "state": [ + 0.8090819480440974, + 4.483360501399294 + ], + "step": 89, + "time": 2.225 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 4.447660694835671, + "prey": 0.7953205263865604 + }, + "state": [ + 0.7953205263865604, + 4.447660694835671 + ], + "step": 90, + "time": 2.25 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 4.412096207396081, + "prey": 0.7820717923472023 + }, + "state": [ + 0.7820717923472023, + 4.412096207396081 + ], + "step": 91, + "time": 2.275 + }, + { + "observations": { + "first_integral": 0.3085842591248711, + "predator": 4.376673853700182, + "prey": 0.7693167730830264 + }, + "state": [ + 0.7693167730830264, + 4.376673853700182 + ], + "step": 92, + "time": 2.3 + }, + { + "observations": { + "first_integral": 0.3085842591248711, + "predator": 4.341400045239543, + "prey": 0.7570373336602517 + }, + "state": [ + 0.7570373336602517, + 4.341400045239543 + ], + "step": 93, + "time": 2.325 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 4.3062808092140035, + "prey": 0.7452161399835389 + }, + "state": [ + 0.7452161399835389, + 4.3062808092140035 + ], + "step": 94, + "time": 2.35 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 4.271321806536887, + "prey": 0.7338366233155772 + }, + "state": [ + 0.7338366233155772, + 4.271321806536887 + ], + "step": 95, + "time": 2.375 + }, + { + "observations": { + "first_integral": 0.3085842591248711, + "predator": 4.2365283490408245, + "prey": 0.7228829463357346 + }, + "state": [ + 0.7228829463357346, + 4.2365283490408245 + ], + "step": 96, + "time": 2.4 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 4.201905415915382, + "prey": 0.7123399706858473 + }, + "state": [ + 0.7123399706858473, + 4.201905415915382 + ], + "step": 97, + "time": 2.425 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 4.167457669407134, + "prey": 0.7021932259509901 + }, + "state": [ + 0.7021932259509901, + 4.167457669407134 + ], + "step": 98, + "time": 2.45 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 4.133189469812088, + "prey": 0.6924288800231636 + }, + "state": [ + 0.6924288800231636, + 4.133189469812088 + ], + "step": 99, + "time": 2.475 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 4.099104889789651, + "prey": 0.6830337107961983 + }, + "state": [ + 0.6830337107961983, + 4.099104889789651 + ], + "step": 100, + "time": 2.5 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 4.0652077280265395, + "prey": 0.6739950791407803 + }, + "state": [ + 0.6739950791407803, + 4.0652077280265395 + ], + "step": 101, + "time": 2.525 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 4.0315015222781785, + "prey": 0.6653009031093026 + }, + "state": [ + 0.6653009031093026, + 4.0315015222781785 + ], + "step": 102, + "time": 2.55 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 3.997989561814321, + "prey": 0.6569396333212022 + }, + "state": [ + 0.6569396333212022, + 3.997989561814321 + ], + "step": 103, + "time": 2.575 + }, + { + "observations": { + "first_integral": 0.3085842591248711, + "predator": 3.9646748992947067, + "prey": 0.6489002294805357 + }, + "state": [ + 0.6489002294805357, + 3.9646748992947067 + ], + "step": 104, + "time": 2.6 + }, + { + "observations": { + "first_integral": 0.3085842591248711, + "predator": 3.9315603620997344, + "prey": 0.6411721379787392 + }, + "state": [ + 0.6411721379787392, + 3.9315603620997344 + ], + "step": 105, + "time": 2.625 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 3.8986485631402124, + "prey": 0.6337452705368025 + }, + "state": [ + 0.6337452705368025, + 3.8986485631402124 + ], + "step": 106, + "time": 2.65 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 3.8659419111693896, + "prey": 0.6266099838424243 + }, + "state": [ + 0.6266099838424243, + 3.8659419111693896 + ], + "step": 107, + "time": 2.675 + }, + { + "observations": { + "first_integral": 0.3085842591248711, + "predator": 3.8334426206195715, + "prey": 0.6197570601391009 + }, + "state": [ + 0.6197570601391009, + 3.8334426206195715 + ], + "step": 108, + "time": 2.7 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 3.8011527209847937, + "prey": 0.6131776887255248 + }, + "state": [ + 0.6131776887255248, + 3.8011527209847937 + ], + "step": 109, + "time": 2.725 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 3.7690740657701336, + "prey": 0.6068634483250952 + }, + "state": [ + 0.6068634483250952, + 3.7690740657701336 + ], + "step": 110, + "time": 2.75 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 3.737208341027452, + "prey": 0.6008062902867963 + }, + "state": [ + 0.6008062902867963, + 3.737208341027452 + ], + "step": 111, + "time": 2.775 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 3.705557073496503, + "prey": 0.5949985225801278 + }, + "state": [ + 0.5949985225801278, + 3.705557073496503 + ], + "step": 112, + "time": 2.8 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 3.6741216383695803, + "prey": 0.5894327945482082 + }, + "state": [ + 0.5894327945482082, + 3.6741216383695803 + ], + "step": 113, + "time": 2.825 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 3.642903266697086, + "prey": 0.5841020823845844 + }, + "state": [ + 0.5841020823845844, + 3.642903266697086 + ], + "step": 114, + "time": 2.85 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 3.611903052450656, + "prey": 0.578999675300665 + }, + "state": [ + 0.578999675300665, + 3.611903052450656 + ], + "step": 115, + "time": 2.875 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 3.581121959259757, + "prey": 0.5741191623520652 + }, + "state": [ + 0.5741191623520652, + 3.581121959259757 + ], + "step": 116, + "time": 2.9 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 3.550560826836965, + "prey": 0.5694544198934798 + }, + "state": [ + 0.5694544198934798, + 3.550560826836965 + ], + "step": 117, + "time": 2.925 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 3.520220377106454, + "prey": 0.5649995996329983 + }, + "state": [ + 0.5649995996329983, + 3.520220377106454 + ], + "step": 118, + "time": 2.95 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 3.490101220049575, + "prey": 0.5607491172580448 + }, + "state": [ + 0.5607491172580448, + 3.490101220049575 + ], + "step": 119, + "time": 2.975 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 3.4602038592807687, + "prey": 0.5566976416063426 + }, + "state": [ + 0.5566976416063426, + 3.4602038592807687 + ], + "step": 120, + "time": 3.0 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 3.4305286973664657, + "prey": 0.5528400843564988 + }, + "state": [ + 0.5528400843564988, + 3.4305286973664657 + ], + "step": 121, + "time": 3.025 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 3.401076040899033, + "prey": 0.5491715902139439 + }, + "state": [ + 0.5491715902139439, + 3.401076040899033 + ], + "step": 122, + "time": 3.05 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 3.3718461053372657, + "prey": 0.545687527569074 + }, + "state": [ + 0.545687527569074, + 3.3718461053372657 + ], + "step": 123, + "time": 3.075 + }, + { + "observations": { + "first_integral": 0.3085842591248711, + "predator": 3.3428390196244084, + "prey": 0.5423834796055051 + }, + "state": [ + 0.5423834796055051, + 3.3428390196244084 + ], + "step": 124, + "time": 3.1 + }, + { + "observations": { + "first_integral": 0.3085842591248711, + "predator": 3.314054830594153, + "prey": 0.53925523583738 + }, + "state": [ + 0.53925523583738, + 3.314054830594153 + ], + "step": 125, + "time": 3.125 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 3.285493507174588, + "prey": 0.5362987840556506 + }, + "state": [ + 0.5362987840556506, + 3.285493507174588 + ], + "step": 126, + "time": 3.15 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 3.257154944399598, + "prey": 0.533510302664212 + }, + "state": [ + 0.533510302664212, + 3.257154944399598 + ], + "step": 127, + "time": 3.175 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 3.2290389672367663, + "prey": 0.5308861533876656 + }, + "state": [ + 0.5308861533876656, + 3.2290389672367663 + ], + "step": 128, + "time": 3.2 + }, + { + "observations": { + "first_integral": 0.3085842591248711, + "predator": 3.2011453342404015, + "prey": 0.5284228743333688 + }, + "state": [ + 0.5284228743333688, + 3.2011453342404015 + ], + "step": 129, + "time": 3.225 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 3.173473741037899, + "prey": 0.5261171733912535 + }, + "state": [ + 0.5261171733912535, + 3.173473741037899 + ], + "step": 130, + "time": 3.25 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 3.1460238236572713, + "prey": 0.5239659219557038 + }, + "state": [ + 0.5239659219557038, + 3.1460238236572713 + ], + "step": 131, + "time": 3.275 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 3.118795161703286, + "prey": 0.5219661489545379 + }, + "state": [ + 0.5219661489545379, + 3.118795161703286 + ], + "step": 132, + "time": 3.3 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 3.091787281389317, + "prey": 0.520115035170873 + }, + "state": [ + 0.520115035170873, + 3.091787281389317 + ], + "step": 133, + "time": 3.325 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 3.06499965843166, + "prey": 0.5184099078443496 + }, + "state": [ + 0.5184099078443496, + 3.06499965843166 + ], + "step": 134, + "time": 3.35 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 3.0384317208127456, + "prey": 0.516848235538854 + }, + "state": [ + 0.516848235538854, + 3.0384317208127456 + ], + "step": 135, + "time": 3.375 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 3.0120828514193807, + "prey": 0.5154276232645124 + }, + "state": [ + 0.5154276232645124, + 3.0120828514193807 + ], + "step": 136, + "time": 3.4 + }, + { + "observations": { + "first_integral": 0.3085842591248711, + "predator": 2.9859523905618484, + "prey": 0.5141458078423397 + }, + "state": [ + 0.5141458078423397, + 2.9859523905618484 + ], + "step": 137, + "time": 3.425 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 2.960039638379421, + "prey": 0.5130006535004951 + }, + "state": [ + 0.5130006535004951, + 2.960039638379421 + ], + "step": 138, + "time": 3.45 + }, + { + "observations": { + "first_integral": 0.3085842591248711, + "predator": 2.9343438571375775, + "prey": 0.5119901476916566 + }, + "state": [ + 0.5119901476916566, + 2.9343438571375775 + ], + "step": 139, + "time": 3.475 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 2.908864273421953, + "prey": 0.5111123971215402 + }, + "state": [ + 0.5111123971215402, + 2.908864273421953 + ], + "step": 140, + "time": 3.5 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 2.883600080233825, + "prey": 0.510365623979097 + }, + "state": [ + 0.510365623979097, + 2.883600080233825 + ], + "step": 141, + "time": 3.525 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 2.8585504389916965, + "prey": 0.5097481623593911 + }, + "state": [ + 0.5097481623593911, + 2.8585504389916965 + ], + "step": 142, + "time": 3.55 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 2.833714481443322, + "prey": 0.5092584548706167 + }, + "state": [ + 0.5092584548706167, + 2.833714481443322 + ], + "step": 143, + "time": 3.575 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 2.809091311492328, + "prey": 0.5088950494171416 + }, + "state": [ + 0.5088950494171416, + 2.809091311492328 + ], + "step": 144, + "time": 3.6 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 2.78468000694335, + "prey": 0.5086565961508757 + }, + "state": [ + 0.5086565961508757, + 2.78468000694335 + ], + "step": 145, + "time": 3.625 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 2.7604796211694684, + "prey": 0.5085418445836505 + }, + "state": [ + 0.5085418445836505, + 2.7604796211694684 + ], + "step": 146, + "time": 3.65 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 2.7364891847054986, + "prey": 0.5085496408536696 + }, + "state": [ + 0.5085496408536696, + 2.7364891847054986 + ], + "step": 147, + "time": 3.675 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 2.712707706770553, + "prey": 0.5086789251394405 + }, + "state": [ + 0.5086789251394405, + 2.712707706770553 + ], + "step": 148, + "time": 3.7 + }, + { + "observations": { + "first_integral": 0.3085842591248711, + "predator": 2.689134176723127, + "prey": 0.5089287292149346 + }, + "state": [ + 0.5089287292149346, + 2.689134176723127 + ], + "step": 149, + "time": 3.725 + }, + { + "observations": { + "first_integral": 0.3085842591248711, + "predator": 2.6657675654517825, + "prey": 0.5092981741400422 + }, + "state": [ + 0.5092981741400422, + 2.6657675654517825 + ], + "step": 150, + "time": 3.75 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 2.6426068267044007, + "prey": 0.5097864680806905 + }, + "state": [ + 0.5097864680806905, + 2.6426068267044007 + ], + "step": 151, + "time": 3.775 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 2.6196508983587936, + "prey": 0.5103929042532847 + }, + "state": [ + 0.5103929042532847, + 2.6196508983587936 + ], + "step": 152, + "time": 3.8 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 2.5968987036373634, + "prey": 0.5111168589884025 + }, + "state": [ + 0.5111168589884025, + 2.5968987036373634 + ], + "step": 153, + "time": 3.825 + }, + { + "observations": { + "first_integral": 0.3085842591248711, + "predator": 2.5743491522683533, + "prey": 0.5119577899089383 + }, + "state": [ + 0.5119577899089383, + 2.5743491522683533 + ], + "step": 154, + "time": 3.85 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 2.5520011415961243, + "prey": 0.5129152342181362 + }, + "state": [ + 0.5129152342181362, + 2.5520011415961243 + ], + "step": 155, + "time": 3.875 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 2.529853557642782, + "prey": 0.513988807093192 + }, + "state": [ + 0.513988807093192, + 2.529853557642782 + ], + "step": 156, + "time": 3.9 + }, + { + "observations": { + "first_integral": 0.3085842591248711, + "predator": 2.5079052761233562, + "prey": 0.5151782001803239 + }, + "state": [ + 0.5151782001803239, + 2.5079052761233562 + ], + "step": 157, + "time": 3.925 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 2.4861551634166505, + "prey": 0.5164831801874302 + }, + "state": [ + 0.5164831801874302, + 2.4861551634166505 + ], + "step": 158, + "time": 3.95 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 2.4646020774937685, + "prey": 0.5179035875706506 + }, + "state": [ + 0.5179035875706506, + 2.4646020774937685 + ], + "step": 159, + "time": 3.975 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 2.4432448688062354, + "prey": 0.5194393353113419 + }, + "state": [ + 0.5194393353113419, + 2.4432448688062354 + ], + "step": 160, + "time": 4.0 + }, + { + "observations": { + "first_integral": 0.3085842591248712, + "predator": 2.422082381135552, + "prey": 0.5210904077801665 + }, + "state": [ + 0.5210904077801665, + 2.422082381135552 + ], + "step": 161, + "time": 4.025 + }, + { + "observations": { + "first_integral": 0.3085842591248712, + "predator": 2.4011134524059234, + "prey": 0.5228568596851586 + }, + "state": [ + 0.5228568596851586, + 2.4011134524059234 + ], + "step": 162, + "time": 4.05 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 2.3803369154618266, + "prey": 0.5247388151008082 + }, + "state": [ + 0.5247388151008082, + 2.3803369154618266 + ], + "step": 163, + "time": 4.075 + }, + { + "observations": { + "first_integral": 0.3085842591248712, + "predator": 2.3597515988120255, + "prey": 0.5267364665753518 + }, + "state": [ + 0.5267364665753518, + 2.3597515988120255 + ], + "step": 164, + "time": 4.1 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 2.3393563273415308, + "prey": 0.5288500743136183 + }, + "state": [ + 0.5288500743136183, + 2.3393563273415308 + ], + "step": 165, + "time": 4.125 + }, + { + "observations": { + "first_integral": 0.3085842591248714, + "predator": 2.319149922992978, + "prey": 0.5310799654329126 + }, + "state": [ + 0.5310799654329126, + 2.319149922992978 + ], + "step": 166, + "time": 4.15 + }, + { + "observations": { + "first_integral": 0.3085842591248712, + "predator": 2.299131205418799, + "prey": 0.5334265332895608 + }, + "state": [ + 0.5334265332895608, + 2.299131205418799 + ], + "step": 167, + "time": 4.175 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 2.27929899260551, + "prey": 0.5358902368738708 + }, + "state": [ + 0.5358902368738708, + 2.27929899260551 + ], + "step": 168, + "time": 4.2 + }, + { + "observations": { + "first_integral": 0.3085842591248712, + "predator": 2.2596521014714006, + "prey": 0.53847160027138 + }, + "state": [ + 0.53847160027138, + 2.2596521014714006 + ], + "step": 169, + "time": 4.225 + }, + { + "observations": { + "first_integral": 0.3085842591248711, + "predator": 2.240189348438806, + "prey": 0.5411712121883839 + }, + "state": [ + 0.5411712121883839, + 2.240189348438806 + ], + "step": 170, + "time": 4.25 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 2.2209095499821507, + "prey": 0.5439897255398499 + }, + "state": [ + 0.5439897255398499, + 2.2209095499821507 + ], + "step": 171, + "time": 4.275 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 2.2018115231528483, + "prey": 0.5469278570979235 + }, + "state": [ + 0.5469278570979235, + 2.2018115231528483 + ], + "step": 172, + "time": 4.3 + }, + { + "observations": { + "first_integral": 0.3085842591248712, + "predator": 2.182894086082121, + "prey": 0.54998638719934 + }, + "state": [ + 0.54998638719934, + 2.182894086082121 + ], + "step": 173, + "time": 4.325 + }, + { + "observations": { + "first_integral": 0.3085842591248714, + "predator": 2.164156058462768, + "prey": 0.5531661595101461 + }, + "state": [ + 0.5531661595101461, + 2.164156058462768 + ], + "step": 174, + "time": 4.35 + }, + { + "observations": { + "first_integral": 0.3085842591248712, + "predator": 2.145596262010826, + "prey": 0.5564680808462307 + }, + "state": [ + 0.5564680808462307, + 2.145596262010826 + ], + "step": 175, + "time": 4.375 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 2.127213520908078, + "prey": 0.5598931210482492 + }, + "state": [ + 0.5598931210482492, + 2.127213520908078 + ], + "step": 176, + "time": 4.4 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 2.1090066622262764, + "prey": 0.5634423129096092 + }, + "state": [ + 0.5634423129096092, + 2.1090066622262764 + ], + "step": 177, + "time": 4.425 + }, + { + "observations": { + "first_integral": 0.3085842591248712, + "predator": 2.090974516333949, + "prey": 0.5671167521562653 + }, + "state": [ + 0.5671167521562653, + 2.090974516333949 + ], + "step": 178, + "time": 4.45 + }, + { + "observations": { + "first_integral": 0.3085842591248714, + "predator": 2.0731159172866027, + "prey": 0.5709175974771409 + }, + "state": [ + 0.5709175974771409, + 2.0731159172866027 + ], + "step": 179, + "time": 4.475 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 2.0554297032010913, + "prey": 0.574846070604075 + }, + "state": [ + 0.574846070604075, + 2.0554297032010913 + ], + "step": 180, + "time": 4.5 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 2.0379147166149276, + "prey": 0.5789034564402503 + }, + "state": [ + 0.5789034564402503, + 2.0379147166149276 + ], + "step": 181, + "time": 4.525 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 2.020569804831234, + "prey": 0.5830911032361299 + }, + "state": [ + 0.5830911032361299, + 2.020569804831234 + ], + "step": 182, + "time": 4.55 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 2.0033938202500363, + "prey": 0.5874104228119894 + }, + "state": [ + 0.5874104228119894, + 2.0033938202500363 + ], + "step": 183, + "time": 4.575 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 1.9863856206865655, + "prey": 0.5918628908261868 + }, + "state": [ + 0.5918628908261868, + 1.9863856206865655 + ], + "step": 184, + "time": 4.6 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 1.9695440696771982, + "prey": 0.5964500470883745 + }, + "state": [ + 0.5964500470883745, + 1.9695440696771982 + ], + "step": 185, + "time": 4.625 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 1.9528680367736615, + "prey": 0.601173495916901 + }, + "state": [ + 0.601173495916901, + 1.9528680367736615 + ], + "step": 186, + "time": 4.65 + }, + { + "observations": { + "first_integral": 0.3085842591248714, + "predator": 1.9363563978260787, + "prey": 0.6060349065397109 + }, + "state": [ + 0.6060349065397109, + 1.9363563978260787 + ], + "step": 187, + "time": 4.675 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 1.9200080352554316, + "prey": 0.6110360135380893 + }, + "state": [ + 0.6110360135380893, + 1.9200080352554316 + ], + "step": 188, + "time": 4.7 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 1.9038218383159904, + "prey": 0.6161786173326455 + }, + "state": [ + 0.6161786173326455, + 1.9038218383159904 + ], + "step": 189, + "time": 4.725 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 1.887796703348223, + "prey": 0.6214645847109765 + }, + "state": [ + 0.6214645847109765, + 1.887796703348223 + ], + "step": 190, + "time": 4.75 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 1.871931534022711, + "prey": 0.6268958493964859 + }, + "state": [ + 0.6268958493964859, + 1.871931534022711 + ], + "step": 191, + "time": 4.775 + }, + { + "observations": { + "first_integral": 0.3085842591248714, + "predator": 1.8562252415755454, + "prey": 0.6324744126578732 + }, + "state": [ + 0.6324744126578732, + 1.8562252415755454 + ], + "step": 192, + "time": 4.8 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 1.8406767450356836, + "prey": 0.6382023439588488 + }, + "state": [ + 0.6382023439588488, + 1.8406767450356836 + ], + "step": 193, + "time": 4.825 + }, + { + "observations": { + "first_integral": 0.3085842591248714, + "predator": 1.8252849714447266, + "prey": 0.6440817816476531 + }, + "state": [ + 0.6440817816476531, + 1.8252849714447266 + ], + "step": 194, + "time": 4.85 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 1.8100488560695478, + "prey": 0.6501149336860054 + }, + "state": [ + 0.6501149336860054, + 1.8100488560695478 + ], + "step": 195, + "time": 4.875 + }, + { + "observations": { + "first_integral": 0.3085842591248714, + "predator": 1.7949673426082138, + "prey": 0.6563040784171205 + }, + "state": [ + 0.6563040784171205, + 1.7949673426082138 + ], + "step": 196, + "time": 4.9 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 1.7800393833896015, + "prey": 0.6626515653724745 + }, + "state": [ + 0.6626515653724745, + 1.7800393833896015 + ], + "step": 197, + "time": 4.925 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 1.7652639395671141, + "prey": 0.6691598161170168 + }, + "state": [ + 0.6691598161170168, + 1.7652639395671141 + ], + "step": 198, + "time": 4.95 + }, + { + "observations": { + "first_integral": 0.3085842591248714, + "predator": 1.7506399813068947, + "prey": 0.67583132513255 + }, + "state": [ + 0.67583132513255, + 1.7506399813068947 + ], + "step": 199, + "time": 4.975 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 1.7361664879708971, + "prey": 0.6826686607390317 + }, + "state": [ + 0.6826686607390317, + 1.7361664879708971 + ], + "step": 200, + "time": 5.0 + }, + { + "observations": { + "first_integral": 0.3085842591248714, + "predator": 1.7218424482952044, + "prey": 0.6896744660535568 + }, + "state": [ + 0.6896744660535568, + 1.7218424482952044 + ], + "step": 201, + "time": 5.025 + }, + { + "observations": { + "first_integral": 0.3085842591248714, + "predator": 1.7076668605639325, + "prey": 0.6968514599868114 + }, + "state": [ + 0.6968514599868114, + 1.7076668605639325 + ], + "step": 202, + "time": 5.05 + }, + { + "observations": { + "first_integral": 0.3085842591248714, + "predator": 1.6936387327790783, + "prey": 0.704202438276799 + }, + "state": [ + 0.704202438276799, + 1.6936387327790783 + ], + "step": 203, + "time": 5.075 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 1.6797570828266537, + "prey": 0.7117302745596535 + }, + "state": [ + 0.7117302745596535, + 1.6797570828266537 + ], + "step": 204, + "time": 5.1 + }, + { + "observations": { + "first_integral": 0.3085842591248714, + "predator": 1.6660209386394287, + "prey": 0.7194379214773771 + }, + "state": [ + 0.7194379214773771, + 1.6660209386394287 + ], + "step": 205, + "time": 5.125 + }, + { + "observations": { + "first_integral": 0.3085842591248714, + "predator": 1.6524293383566202, + "prey": 0.7273284118223344 + }, + "state": [ + 0.7273284118223344, + 1.6524293383566202 + ], + "step": 206, + "time": 5.15 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 1.6389813304808338, + "prey": 0.7354048597183658 + }, + "state": [ + 0.7354048597183658, + 1.6389813304808338 + ], + "step": 207, + "time": 5.175 + }, + { + "observations": { + "first_integral": 0.3085842591248714, + "predator": 1.6256759740325772, + "prey": 0.7436704618383735 + }, + "state": [ + 0.7436704618383735, + 1.6256759740325772 + ], + "step": 208, + "time": 5.2 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 1.6125123387026519, + "prey": 0.7521284986582458 + }, + "state": [ + 0.7521284986582458, + 1.6125123387026519 + ], + "step": 209, + "time": 5.225 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 1.5994895050027196, + "prey": 0.7607823357469975 + }, + "state": [ + 0.7607823357469975, + 1.5994895050027196 + ], + "step": 210, + "time": 5.25 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 1.5866065644143472, + "prey": 0.7696354250929882 + }, + "state": [ + 0.7696354250929882, + 1.5866065644143472 + ], + "step": 211, + "time": 5.275 + }, + { + "observations": { + "first_integral": 0.3085842591248715, + "predator": 1.5738626195368173, + "prey": 0.7786913064661032 + }, + "state": [ + 0.7786913064661032, + 1.5738626195368173 + ], + "step": 212, + "time": 5.3 + }, + { + "observations": { + "first_integral": 0.3085842591248715, + "predator": 1.5612567842339944, + "prey": 0.7879536088157648 + }, + "state": [ + 0.7879536088157648, + 1.5612567842339944 + ], + "step": 213, + "time": 5.325 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 1.5487881837805415, + "prey": 0.7974260517046395 + }, + "state": [ + 0.7974260517046395, + 1.5487881837805415 + ], + "step": 214, + "time": 5.35 + }, + { + "observations": { + "first_integral": 0.3085842591248716, + "predator": 1.5364559550077566, + "prey": 0.8071124467779158 + }, + "state": [ + 0.8071124467779158, + 1.5364559550077566 + ], + "step": 215, + "time": 5.375 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 1.5242592464493256, + "prey": 0.8170166992679966 + }, + "state": [ + 0.8170166992679966, + 1.5242592464493256 + ], + "step": 216, + "time": 5.4 + }, + { + "observations": { + "first_integral": 0.3085842591248715, + "predator": 1.5121972184872634, + "prey": 0.8271428095344651 + }, + "state": [ + 0.8271428095344651, + 1.5121972184872634 + ], + "step": 217, + "time": 5.425 + }, + { + "observations": { + "first_integral": 0.30858425912487164, + "predator": 1.5002690434983228, + "prey": 0.8374948746391553 + }, + "state": [ + 0.8374948746391553, + 1.5002690434983228 + ], + "step": 218, + "time": 5.45 + }, + { + "observations": { + "first_integral": 0.3085842591248716, + "predator": 1.4884739060011591, + "prey": 0.8480770899561461 + }, + "state": [ + 0.8480770899561461, + 1.4884739060011591 + ], + "step": 219, + "time": 5.475 + }, + { + "observations": { + "first_integral": 0.3085842591248715, + "predator": 1.4768110028045156, + "prey": 0.8588937508164946 + }, + "state": [ + 0.8588937508164946, + 1.4768110028045156 + ], + "step": 220, + "time": 5.5 + }, + { + "observations": { + "first_integral": 0.3085842591248716, + "predator": 1.4652795431567225, + "prey": 0.8699492541874857 + }, + "state": [ + 0.8699492541874857, + 1.4652795431567225 + ], + "step": 221, + "time": 5.525 + }, + { + "observations": { + "first_integral": 0.30858425912487164, + "predator": 1.4538787488967815, + "prey": 0.8812481003861727 + }, + "state": [ + 0.8812481003861727, + 1.4538787488967815 + ], + "step": 222, + "time": 5.55 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 1.4426078546073196, + "prey": 0.89279489482695 + }, + "state": [ + 0.89279489482695, + 1.4426078546073196 + ], + "step": 223, + "time": 5.575 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 1.4314661077696997, + "prey": 0.9045943498028695 + }, + "state": [ + 0.9045943498028695, + 1.4314661077696997 + ], + "step": 224, + "time": 5.6 + }, + { + "observations": { + "first_integral": 0.3085842591248716, + "predator": 1.4204527689215662, + "prey": 0.9166512863003988 + }, + "state": [ + 0.9166512863003988, + 1.4204527689215662 + ], + "step": 225, + "time": 5.625 + }, + { + "observations": { + "first_integral": 0.3085842591248716, + "predator": 1.4095671118171242, + "prey": 0.9289706358472661 + }, + "state": [ + 0.9289706358472661, + 1.4095671118171242 + ], + "step": 226, + "time": 5.65 + }, + { + "observations": { + "first_integral": 0.3085842591248717, + "predator": 1.3988084235904368, + "prey": 0.9415574423930188 + }, + "state": [ + 0.9415574423930188, + 1.3988084235904368 + ], + "step": 227, + "time": 5.675 + }, + { + "observations": { + "first_integral": 0.30858425912487164, + "predator": 1.3881760049220377, + "prey": 0.9544168642218792 + }, + "state": [ + 0.9544168642218792, + 1.3881760049220377 + ], + "step": 228, + "time": 5.7 + }, + { + "observations": { + "first_integral": 0.3085842591248717, + "predator": 1.377669170209168, + "prey": 0.9675541758974292 + }, + "state": [ + 0.9675541758974292, + 1.377669170209168 + ], + "step": 229, + "time": 5.725 + }, + { + "observations": { + "first_integral": 0.30858425912487164, + "predator": 1.367287247739929, + "prey": 0.980974770238633 + }, + "state": [ + 0.980974770238633, + 1.367287247739929 + ], + "step": 230, + "time": 5.75 + }, + { + "observations": { + "first_integral": 0.3085842591248717, + "predator": 1.357029579871675, + "prey": 0.9946841603266289 + }, + "state": [ + 0.9946841603266289, + 1.357029579871675 + ], + "step": 231, + "time": 5.775 + }, + { + "observations": { + "first_integral": 0.3085842591248717, + "predator": 1.346895523213956, + "prey": 1.008687981541698 + }, + "state": [ + 1.008687981541698, + 1.346895523213956 + ], + "step": 232, + "time": 5.8 + }, + { + "observations": { + "first_integral": 0.3085842591248717, + "predator": 1.3368844488163323, + "prey": 1.0229919936297414 + }, + "state": [ + 1.0229919936297414, + 1.3368844488163323 + ], + "step": 233, + "time": 5.825 + }, + { + "observations": { + "first_integral": 0.3085842591248717, + "predator": 1.326995742361403, + "prey": 1.0376020827975367 + }, + "state": [ + 1.0376020827975367, + 1.326995742361403 + ], + "step": 234, + "time": 5.85 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 1.3172288043633709, + "prey": 1.0525242638359986 + }, + "state": [ + 1.0525242638359986, + 1.3172288043633709 + ], + "step": 235, + "time": 5.875 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 1.3075830503725059, + "prey": 1.0677646822705686 + }, + "state": [ + 1.0677646822705686, + 1.3075830503725059 + ], + "step": 236, + "time": 5.9 + }, + { + "observations": { + "first_integral": 0.3085842591248718, + "predator": 1.298057911185853, + "prey": 1.083329616537816 + }, + "state": [ + 1.083329616537816, + 1.298057911185853 + ], + "step": 237, + "time": 5.925 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 1.2886528330645546, + "prey": 1.0992254801872259 + }, + "state": [ + 1.0992254801872259, + 1.2886528330645546 + ], + "step": 238, + "time": 5.95 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 1.279367277958164, + "prey": 1.1154588241070775 + }, + "state": [ + 1.1154588241070775, + 1.279367277958164 + ], + "step": 239, + "time": 5.975 + }, + { + "observations": { + "first_integral": 0.30858425912487186, + "predator": 1.2702007237363335, + "prey": 1.13203633877323 + }, + "state": [ + 1.13203633877323, + 1.2702007237363335 + ], + "step": 240, + "time": 6.0 + }, + { + "observations": { + "first_integral": 0.3085842591248718, + "predator": 1.2611526644282833, + "prey": 1.1489648565195174 + }, + "state": [ + 1.1489648565195174, + 1.2611526644282833 + ], + "step": 241, + "time": 6.025 + }, + { + "observations": { + "first_integral": 0.30858425912487186, + "predator": 1.2522226104704521, + "prey": 1.1662513538283754 + }, + "state": [ + 1.1662513538283754, + 1.2522226104704521 + ], + "step": 242, + "time": 6.05 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 1.2434100889627626, + "prey": 1.1839029536401953 + }, + "state": [ + 1.1839029536401953, + 1.2434100889627626 + ], + "step": 243, + "time": 6.075 + }, + { + "observations": { + "first_integral": 0.30858425912487186, + "predator": 1.2347146439339403, + "prey": 1.2019269276797837 + }, + "state": [ + 1.2019269276797837, + 1.2347146439339403 + ], + "step": 244, + "time": 6.1 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 1.226135836616332, + "prey": 1.2203306987982063 + }, + "state": [ + 1.2203306987982063, + 1.226135836616332 + ], + "step": 245, + "time": 6.125 + }, + { + "observations": { + "first_integral": 0.3085842591248718, + "predator": 1.2176732457307036, + "prey": 1.2391218433281206 + }, + "state": [ + 1.2391218433281206, + 1.2176732457307036 + ], + "step": 246, + "time": 6.15 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 1.2093264677814968, + "prey": 1.2583080934506106 + }, + "state": [ + 1.2583080934506106, + 1.2093264677814968 + ], + "step": 247, + "time": 6.175 + }, + { + "observations": { + "first_integral": 0.30858425912487186, + "predator": 1.2010951173630473, + "prey": 1.2778973395713562 + }, + "state": [ + 1.2778973395713562, + 1.2010951173630473 + ], + "step": 248, + "time": 6.2 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 1.1929788274772979, + "prey": 1.2978976327038143 + }, + "state": [ + 1.2978976327038143, + 1.1929788274772979 + ], + "step": 249, + "time": 6.225 + }, + { + "observations": { + "first_integral": 0.30858425912487186, + "predator": 1.1849772498635316, + "prey": 1.318317186856953 + }, + "state": [ + 1.318317186856953, + 1.1849772498635316 + ], + "step": 250, + "time": 6.25 + }, + { + "observations": { + "first_integral": 0.30858425912487186, + "predator": 1.1770900553407062, + "prey": 1.339164381424859 + }, + "state": [ + 1.339164381424859, + 1.1770900553407062 + ], + "step": 251, + "time": 6.275 + }, + { + "observations": { + "first_integral": 0.30858425912487186, + "predator": 1.1693169341629603, + "prey": 1.3604477635753969 + }, + "state": [ + 1.3604477635753969, + 1.1693169341629603 + ], + "step": 252, + "time": 6.3 + }, + { + "observations": { + "first_integral": 0.30858425912487186, + "predator": 1.1616575963889062, + "prey": 1.3821760506348704 + }, + "state": [ + 1.3821760506348704, + 1.1616575963889062 + ], + "step": 253, + "time": 6.325 + }, + { + "observations": { + "first_integral": 0.3085842591248719, + "predator": 1.1541117722653433, + "prey": 1.4043581324654373 + }, + "state": [ + 1.4043581324654373, + 1.1541117722653433 + ], + "step": 254, + "time": 6.35 + }, + { + "observations": { + "first_integral": 0.308584259124872, + "predator": 1.1466792126260423, + "prey": 1.4270030738318236 + }, + "state": [ + 1.4270030738318236, + 1.1466792126260423 + ], + "step": 255, + "time": 6.375 + }, + { + "observations": { + "first_integral": 0.308584259124872, + "predator": 1.139359689306293, + "prey": 1.4501201167536188 + }, + "state": [ + 1.4501201167536188, + 1.139359689306293 + ], + "step": 256, + "time": 6.4 + }, + { + "observations": { + "first_integral": 0.308584259124872, + "predator": 1.1321529955739231, + "prey": 1.4737186828392244 + }, + "state": [ + 1.4737186828392244, + 1.1321529955739231 + ], + "step": 257, + "time": 6.425 + }, + { + "observations": { + "first_integral": 0.308584259124872, + "predator": 1.1250589465775327, + "prey": 1.4978083755972382 + }, + "state": [ + 1.4978083755972382, + 1.1250589465775327 + ], + "step": 258, + "time": 6.45 + }, + { + "observations": { + "first_integral": 0.3085842591248721, + "predator": 1.1180773798127195, + "prey": 1.5223989827207918 + }, + "state": [ + 1.5223989827207918, + 1.1180773798127195 + ], + "step": 259, + "time": 6.475 + }, + { + "observations": { + "first_integral": 0.3085842591248721, + "predator": 1.1112081556070974, + "prey": 1.5475004783400854 + }, + "state": [ + 1.5475004783400854, + 1.1112081556070974 + ], + "step": 260, + "time": 6.5 + }, + { + "observations": { + "first_integral": 0.308584259124872, + "predator": 1.1044511576249563, + "prey": 1.5731230252380175 + }, + "state": [ + 1.5731230252380175, + 1.1044511576249563 + ], + "step": 261, + "time": 6.525 + }, + { + "observations": { + "first_integral": 0.30858425912487214, + "predator": 1.097806293392433, + "prey": 1.5992769770235324 + }, + "state": [ + 1.5992769770235324, + 1.097806293392433 + ], + "step": 262, + "time": 6.55 + }, + { + "observations": { + "first_integral": 0.30858425912487214, + "predator": 1.0912734948441167, + "prey": 1.625972880256931 + }, + "state": [ + 1.625972880256931, + 1.0912734948441167 + ], + "step": 263, + "time": 6.575 + }, + { + "observations": { + "first_integral": 0.30858425912487214, + "predator": 1.0848527188920387, + "prey": 1.6532214765210327 + }, + "state": [ + 1.6532214765210327, + 1.0848527188920387 + ], + "step": 264, + "time": 6.6 + }, + { + "observations": { + "first_integral": 0.308584259124872, + "predator": 1.078543948018047, + "prey": 1.681033704431727 + }, + "state": [ + 1.681033704431727, + 1.078543948018047 + ], + "step": 265, + "time": 6.625 + }, + { + "observations": { + "first_integral": 0.3085842591248722, + "predator": 1.0723471908906095, + "prey": 1.709420701581001 + }, + "state": [ + 1.709420701581001, + 1.0723471908906095 + ], + "step": 266, + "time": 6.65 + }, + { + "observations": { + "first_integral": 0.3085842591248721, + "predator": 1.0662624830071323, + "prey": 1.7383938064051603 + }, + "state": [ + 1.7383938064051603, + 1.0662624830071323 + ], + "step": 267, + "time": 6.675 + }, + { + "observations": { + "first_integral": 0.3085842591248721, + "predator": 1.0602898873629283, + "prey": 1.7679645599704696 + }, + "state": [ + 1.7679645599704696, + 1.0602898873629283 + ], + "step": 268, + "time": 6.7 + }, + { + "observations": { + "first_integral": 0.30858425912487203, + "predator": 1.0544294951480313, + "prey": 1.7981447076679886 + }, + "state": [ + 1.7981447076679886, + 1.0544294951480313 + ], + "step": 269, + "time": 6.725 + }, + { + "observations": { + "first_integral": 0.3085842591248721, + "predator": 1.0486814264730906, + "prey": 1.8289462008088915 + }, + "state": [ + 1.8289462008088915, + 1.0486814264730906 + ], + "step": 270, + "time": 6.75 + }, + { + "observations": { + "first_integral": 0.30858425912487203, + "predator": 1.0430458311256514, + "prey": 1.8603811981110026 + }, + "state": [ + 1.8603811981110026, + 1.0430458311256514 + ], + "step": 271, + "time": 6.775 + }, + { + "observations": { + "first_integral": 0.308584259124872, + "predator": 1.0375228893581723, + "prey": 1.8924620670667711 + }, + "state": [ + 1.8924620670667711, + 1.0375228893581723 + ], + "step": 272, + "time": 6.8 + }, + { + "observations": { + "first_integral": 0.30858425912487203, + "predator": 1.0321128127092059, + "prey": 1.9252013851822922 + }, + "state": [ + 1.9252013851822922, + 1.0321128127092059 + ], + "step": 273, + "time": 6.825 + }, + { + "observations": { + "first_integral": 0.30858425912487214, + "predator": 1.0268158448592253, + "prey": 1.9586119410763756 + }, + "state": [ + 1.9586119410763756, + 1.0268158448592253 + ], + "step": 274, + "time": 6.85 + }, + { + "observations": { + "first_integral": 0.308584259124872, + "predator": 1.0216322625226497, + "prey": 1.992706735428046 + }, + "state": [ + 1.992706735428046, + 1.0216322625226497 + ], + "step": 275, + "time": 6.875 + }, + { + "observations": { + "first_integral": 0.308584259124872, + "predator": 1.016562376377695, + "prey": 2.0274989817601234 + }, + "state": [ + 2.0274989817601234, + 1.016562376377695 + ], + "step": 276, + "time": 6.9 + }, + { + "observations": { + "first_integral": 0.30858425912487186, + "predator": 1.0116065320357526, + "prey": 2.063002107045879 + }, + "state": [ + 2.063002107045879, + 1.0116065320357526 + ], + "step": 277, + "time": 6.925 + }, + { + "observations": { + "first_integral": 0.3085842591248719, + "predator": 1.006765111052072, + "prey": 2.099229752124962 + }, + "state": [ + 2.099229752124962, + 1.006765111052072 + ], + "step": 278, + "time": 6.95 + }, + { + "observations": { + "first_integral": 0.308584259124872, + "predator": 1.0020385319796146, + "prey": 2.1361957719140072 + }, + "state": [ + 2.1361957719140072, + 1.0020385319796146 + ], + "step": 279, + "time": 6.975 + }, + { + "observations": { + "first_integral": 0.3085842591248719, + "predator": 0.9974272514680248, + "prey": 2.1739142353965257 + }, + "state": [ + 2.1739142353965257, + 0.9974272514680248 + ], + "step": 280, + "time": 7.0 + }, + { + "observations": { + "first_integral": 0.30858425912487186, + "predator": 0.9929317654097604, + "prey": 2.212399425375747 + }, + "state": [ + 2.212399425375747, + 0.9929317654097604 + ], + "step": 281, + "time": 7.025 + }, + { + "observations": { + "first_integral": 0.30858425912487186, + "predator": 0.9885526101355192, + "prey": 2.251665837973216 + }, + "state": [ + 2.251665837973216, + 0.9885526101355192 + ], + "step": 282, + "time": 7.05 + }, + { + "observations": { + "first_integral": 0.30858425912487186, + "predator": 0.9842903636611967, + "prey": 2.2917281818549324 + }, + "state": [ + 2.2917281818549324, + 0.9842903636611967 + ], + "step": 283, + "time": 7.075 + }, + { + "observations": { + "first_integral": 0.3085842591248717, + "predator": 0.9801456469887182, + "prey": 2.332601377165784 + }, + "state": [ + 2.332601377165784, + 0.9801456469887182 + ], + "step": 284, + "time": 7.1 + }, + { + "observations": { + "first_integral": 0.3085842591248718, + "predator": 0.9761191254631921, + "prey": 2.3743005541520166 + }, + "state": [ + 2.3743005541520166, + 0.9761191254631921 + ], + "step": 285, + "time": 7.125 + }, + { + "observations": { + "first_integral": 0.30858425912487186, + "predator": 0.9722115101889571, + "prey": 2.4168410514502443 + }, + "state": [ + 2.4168410514502443, + 0.9722115101889571 + ], + "step": 286, + "time": 7.15 + }, + { + "observations": { + "first_integral": 0.3085842591248718, + "predator": 0.9684235595072034, + "prey": 2.46023841402041 + }, + "state": [ + 2.46023841402041, + 0.9684235595072034 + ], + "step": 287, + "time": 7.175 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 0.9647560805379837, + "prey": 2.5045083906987937 + }, + "state": [ + 2.5045083906987937, + 0.9647560805379837 + ], + "step": 288, + "time": 7.2 + }, + { + "observations": { + "first_integral": 0.3085842591248717, + "predator": 0.9612099307895599, + "prey": 2.549666931345848 + }, + "state": [ + 2.549666931345848, + 0.9612099307895599 + ], + "step": 289, + "time": 7.225 + }, + { + "observations": { + "first_integral": 0.3085842591248718, + "predator": 0.9577860198381651, + "prey": 2.5957301835623054 + }, + "state": [ + 2.5957301835623054, + 0.9577860198381651 + ], + "step": 290, + "time": 7.25 + }, + { + "observations": { + "first_integral": 0.3085842591248718, + "predator": 0.954485311081413, + "prey": 2.6427144889454706 + }, + "state": [ + 2.6427144889454706, + 0.954485311081413 + ], + "step": 291, + "time": 7.275 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 0.9513088235687264, + "prey": 2.690636378856158 + }, + "state": [ + 2.690636378856158, + 0.9513088235687264 + ], + "step": 292, + "time": 7.3 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 0.9482576339123274, + "prey": 2.739512569665088 + }, + "state": [ + 2.739512569665088, + 0.9482576339123274 + ], + "step": 293, + "time": 7.325 + }, + { + "observations": { + "first_integral": 0.3085842591248718, + "predator": 0.9453328782824885, + "prey": 2.789359957445851 + }, + "state": [ + 2.789359957445851, + 0.9453328782824885 + ], + "step": 294, + "time": 7.35 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 0.9425357544909136, + "prey": 2.8401956120798624 + }, + "state": [ + 2.8401956120798624, + 0.9425357544909136 + ], + "step": 295, + "time": 7.375 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 0.9398675241663086, + "prey": 2.8920367707367625 + }, + "state": [ + 2.8920367707367625, + 0.9398675241663086 + ], + "step": 296, + "time": 7.4 + }, + { + "observations": { + "first_integral": 0.3085842591248718, + "predator": 0.9373295150263755, + "prey": 2.944900830691886 + }, + "state": [ + 2.944900830691886, + 0.9373295150263755 + ], + "step": 297, + "time": 7.425 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 0.9349231232506684, + "prey": 2.998805341440302 + }, + "state": [ + 2.998805341440302, + 0.9349231232506684 + ], + "step": 298, + "time": 7.45 + }, + { + "observations": { + "first_integral": 0.3085842591248718, + "predator": 0.9326498159589482, + "prey": 3.053767996064817 + }, + "state": [ + 3.053767996064817, + 0.9326498159589482 + ], + "step": 299, + "time": 7.475 + }, + { + "observations": { + "first_integral": 0.3085842591248718, + "predator": 0.9305111337998868, + "prey": 3.1098066218131266 + }, + "state": [ + 3.1098066218131266, + 0.9305111337998868 + ], + "step": 300, + "time": 7.5 + }, + { + "observations": { + "first_integral": 0.30858425912487186, + "predator": 0.9285086936551894, + "prey": 3.166939169836895 + }, + "state": [ + 3.166939169836895, + 0.9285086936551894 + ], + "step": 301, + "time": 7.525 + }, + { + "observations": { + "first_integral": 0.3085842591248718, + "predator": 0.9266441914644334, + "prey": 3.2251837040431535 + }, + "state": [ + 3.2251837040431535, + 0.9266441914644334 + ], + "step": 302, + "time": 7.55 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 0.9249194051761594, + "prey": 3.284558389005812 + }, + "state": [ + 3.284558389005812, + 0.9249194051761594 + ], + "step": 303, + "time": 7.575 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 0.9233361978309934, + "prey": 3.3450814768823696 + }, + "state": [ + 3.3450814768823696, + 0.9233361978309934 + ], + "step": 304, + "time": 7.6 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 0.9218965207828368, + "prey": 3.406771293278199 + }, + "state": [ + 3.406771293278199, + 0.9218965207828368 + ], + "step": 305, + "time": 7.625 + }, + { + "observations": { + "first_integral": 0.3085842591248718, + "predator": 0.9206024170644218, + "prey": 3.469646221997727 + }, + "state": [ + 3.469646221997727, + 0.9206024170644218 + ], + "step": 306, + "time": 7.65 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 0.9194560249038009, + "prey": 3.5337246886189124 + }, + "state": [ + 3.5337246886189124, + 0.9194560249038009 + ], + "step": 307, + "time": 7.675 + }, + { + "observations": { + "first_integral": 0.30858425912487186, + "predator": 0.9184595813986189, + "prey": 3.599025142824147 + }, + "state": [ + 3.599025142824147, + 0.9184595813986189 + ], + "step": 308, + "time": 7.7 + }, + { + "observations": { + "first_integral": 0.3085842591248717, + "predator": 0.9176154263553082, + "prey": 3.6655660394174143 + }, + "state": [ + 3.6655660394174143, + 0.9176154263553082 + ], + "step": 309, + "time": 7.725 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 0.9169260063006341, + "prey": 3.7333658179541445 + }, + "state": [ + 3.7333658179541445, + 0.9169260063006341 + ], + "step": 310, + "time": 7.75 + }, + { + "observations": { + "first_integral": 0.3085842591248717, + "predator": 0.91639387867333, + "prey": 3.802442880906514 + }, + "state": [ + 3.802442880906514, + 0.91639387867333 + ], + "step": 311, + "time": 7.775 + }, + { + "observations": { + "first_integral": 0.3085842591248718, + "predator": 0.9160217162038646, + "prey": 3.8728155702833185 + }, + "state": [ + 3.8728155702833185, + 0.9160217162038646 + ], + "step": 312, + "time": 7.8 + }, + { + "observations": { + "first_integral": 0.30858425912487164, + "predator": 0.9158123114907009, + "prey": 3.9445021426196227 + }, + "state": [ + 3.9445021426196227, + 0.9158123114907009 + ], + "step": 313, + "time": 7.825 + }, + { + "observations": { + "first_integral": 0.30858425912487164, + "predator": 0.9157685817817255, + "prey": 4.017520742247357 + }, + "state": [ + 4.017520742247357, + 0.9157685817817255 + ], + "step": 314, + "time": 7.85 + }, + { + "observations": { + "first_integral": 0.3085842591248717, + "predator": 0.9158935739698547, + "prey": 4.091889372753999 + }, + "state": [ + 4.091889372753999, + 0.9158935739698547 + ], + "step": 315, + "time": 7.875 + }, + { + "observations": { + "first_integral": 0.30858425912487164, + "predator": 0.9161904698121398, + "prey": 4.167625866532018 + }, + "state": [ + 4.167625866532018, + 0.9161904698121398 + ], + "step": 316, + "time": 7.9 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 0.9166625913820349, + "prey": 4.244747852317529 + }, + "state": [ + 4.244747852317529, + 0.9166625913820349 + ], + "step": 317, + "time": 7.925 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 0.9173134067648017, + "prey": 4.32327272061191 + }, + "state": [ + 4.32327272061191, + 0.9173134067648017 + ], + "step": 318, + "time": 7.95 + }, + { + "observations": { + "first_integral": 0.3085842591248717, + "predator": 0.9181465360063612, + "prey": 4.403217586875492 + }, + "state": [ + 4.403217586875492, + 0.9181465360063612 + ], + "step": 319, + "time": 7.975 + }, + { + "observations": { + "first_integral": 0.3085842591248717, + "predator": 0.9191657573262068, + "prey": 4.484599252377701 + }, + "state": [ + 4.484599252377701, + 0.9191657573262068 + ], + "step": 320, + "time": 8.0 + }, + { + "observations": { + "first_integral": 0.30858425912487164, + "predator": 0.9203750136053095, + "prey": 4.5674341625830035 + }, + "state": [ + 4.5674341625830035, + 0.9203750136053095 + ], + "step": 321, + "time": 8.025 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 0.9217784191602366, + "prey": 4.651738362947115 + }, + "state": [ + 4.651738362947115, + 0.9217784191602366 + ], + "step": 322, + "time": 8.05 + }, + { + "observations": { + "first_integral": 0.3085842591248716, + "predator": 0.9233802668149856, + "prey": 4.737527451992749 + }, + "state": [ + 4.737527451992749, + 0.9233802668149856 + ], + "step": 323, + "time": 8.075 + }, + { + "observations": { + "first_integral": 0.30858425912487164, + "predator": 0.9251850352822901, + "prey": 4.824816531529106 + }, + "state": [ + 4.824816531529106, + 0.9251850352822901 + ], + "step": 324, + "time": 8.1 + }, + { + "observations": { + "first_integral": 0.30858425912487164, + "predator": 0.9271973968663907, + "prey": 4.913620153873965 + }, + "state": [ + 4.913620153873965, + 0.9271973968663907 + ], + "step": 325, + "time": 8.125 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 0.9294222254994575, + "prey": 5.003952265932191 + }, + "state": [ + 5.003952265932191, + 0.9294222254994575 + ], + "step": 326, + "time": 8.15 + }, + { + "observations": { + "first_integral": 0.3085842591248716, + "predator": 0.9318646051240178, + "prey": 5.095826149979085 + }, + "state": [ + 5.095826149979085, + 0.9318646051240178 + ], + "step": 327, + "time": 8.175 + }, + { + "observations": { + "first_integral": 0.3085842591248716, + "predator": 0.9345298384338497, + "prey": 5.18925436099186 + }, + "state": [ + 5.18925436099186, + 0.9345298384338497 + ], + "step": 328, + "time": 8.2 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 0.9374234559858693, + "prey": 5.284248660367502 + }, + "state": [ + 5.284248660367502, + 0.9374234559858693 + ], + "step": 329, + "time": 8.225 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 0.9405512256955215, + "prey": 5.380819945860046 + }, + "state": [ + 5.380819945860046, + 0.9405512256955215 + ], + "step": 330, + "time": 8.25 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 0.9439191627281182, + "prey": 5.478978177565823 + }, + "state": [ + 5.478978177565823, + 0.9439191627281182 + ], + "step": 331, + "time": 8.275 + }, + { + "observations": { + "first_integral": 0.30858425912487164, + "predator": 0.9475335397983778, + "prey": 5.578732299780277 + }, + "state": [ + 5.578732299780277, + 0.9475335397983778 + ], + "step": 332, + "time": 8.3 + }, + { + "observations": { + "first_integral": 0.3085842591248717, + "predator": 0.951400897890167, + "prey": 5.680090158545903 + }, + "state": [ + 5.680090158545903, + 0.951400897890167 + ], + "step": 333, + "time": 8.325 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 0.9555280574080337, + "prey": 5.78305841470685 + }, + "state": [ + 5.78305841470685, + 0.9555280574080337 + ], + "step": 334, + "time": 8.35 + }, + { + "observations": { + "first_integral": 0.30858425912487164, + "predator": 0.9599221297716107, + "prey": 5.887642452282168 + }, + "state": [ + 5.887642452282168, + 0.9599221297716107 + ], + "step": 335, + "time": 8.375 + }, + { + "observations": { + "first_integral": 0.30858425912487164, + "predator": 0.9645905294632764, + "prey": 5.993846281967 + }, + "state": [ + 5.993846281967, + 0.9645905294632764 + ], + "step": 336, + "time": 8.4 + }, + { + "observations": { + "first_integral": 0.3085842591248716, + "predator": 0.9695409865386039, + "prey": 6.101672439568544 + }, + "state": [ + 6.101672439568544, + 0.9695409865386039 + ], + "step": 337, + "time": 8.425 + }, + { + "observations": { + "first_integral": 0.30858425912487164, + "predator": 0.9747815596080657, + "prey": 6.211121879182259 + }, + "state": [ + 6.211121879182259, + 0.9747815596080657 + ], + "step": 338, + "time": 8.45 + }, + { + "observations": { + "first_integral": 0.3085842591248716, + "predator": 0.9803206492971799, + "prey": 6.3221938609133685 + }, + "state": [ + 6.3221938609133685, + 0.9803206492971799 + ], + "step": 339, + "time": 8.475 + }, + { + "observations": { + "first_integral": 0.30858425912487164, + "predator": 0.9861670121907212, + "prey": 6.434885832949001 + }, + "state": [ + 6.434885832949001, + 0.9861670121907212 + ], + "step": 340, + "time": 8.5 + }, + { + "observations": { + "first_integral": 0.30858425912487164, + "predator": 0.9923297752648034, + "prey": 6.549193307788565 + }, + "state": [ + 6.549193307788565, + 0.9923297752648034 + ], + "step": 341, + "time": 8.525 + }, + { + "observations": { + "first_integral": 0.3085842591248717, + "predator": 0.9988184508084499, + "prey": 6.665109732442841 + }, + "state": [ + 6.665109732442841, + 0.9988184508084499 + ], + "step": 342, + "time": 8.55 + }, + { + "observations": { + "first_integral": 0.3085842591248718, + "predator": 1.005642951833755, + "prey": 6.782626352417543 + }, + "state": [ + 6.782626352417543, + 1.005642951833755 + ], + "step": 343, + "time": 8.575 + }, + { + "observations": { + "first_integral": 0.3085842591248717, + "predator": 1.012813607970778, + "prey": 6.901732069303873 + }, + "state": [ + 6.901732069303873, + 1.012813607970778 + ], + "step": 344, + "time": 8.6 + }, + { + "observations": { + "first_integral": 0.30858425912487164, + "predator": 1.0203411818399084, + "prey": 7.022413291807655 + }, + "state": [ + 7.022413291807655, + 1.0203411818399084 + ], + "step": 345, + "time": 8.625 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 1.028236885890526, + "prey": 7.144653780060345 + }, + "state": [ + 7.144653780060345, + 1.028236885890526 + ], + "step": 346, + "time": 8.65 + }, + { + "observations": { + "first_integral": 0.3085842591248716, + "predator": 1.0365123996902796, + "prey": 7.26843448306949 + }, + "state": [ + 7.26843448306949, + 1.0365123996902796 + ], + "step": 347, + "time": 8.675 + }, + { + "observations": { + "first_integral": 0.30858425912487164, + "predator": 1.0451798876441767, + "prey": 7.393733369183725 + }, + "state": [ + 7.393733369183725, + 1.0451798876441767 + ], + "step": 348, + "time": 8.7 + }, + { + "observations": { + "first_integral": 0.3085842591248718, + "predator": 1.054252017116865, + "prey": 7.5205252494687205 + }, + "state": [ + 7.5205252494687205, + 1.054252017116865 + ], + "step": 349, + "time": 8.725 + }, + { + "observations": { + "first_integral": 0.3085842591248717, + "predator": 1.0637419769248477, + "prey": 7.648781593915245 + }, + "state": [ + 7.648781593915245, + 1.0637419769248477 + ], + "step": 350, + "time": 8.75 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 1.0736634961579532, + "prey": 7.778470340430511 + }, + "state": [ + 7.778470340430511, + 1.0736634961579532 + ], + "step": 351, + "time": 8.775 + }, + { + "observations": { + "first_integral": 0.30858425912487164, + "predator": 1.0840308632809361, + "prey": 7.909555696598081 + }, + "state": [ + 7.909555696598081, + 1.0840308632809361 + ], + "step": 352, + "time": 8.8 + }, + { + "observations": { + "first_integral": 0.3085842591248716, + "predator": 1.0948589454566813, + "prey": 8.041997934231896 + }, + "state": [ + 8.041997934231896, + 1.0948589454566813 + ], + "step": 353, + "time": 8.825 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 1.1061632080219022, + "prey": 8.175753176796041 + }, + "state": [ + 8.175753176796041, + 1.1061632080219022 + ], + "step": 354, + "time": 8.85 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 1.117959734034438, + "prey": 8.31077317981459 + }, + "state": [ + 8.31077317981459, + 1.117959734034438 + ], + "step": 355, + "time": 8.875 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 1.1302652437981342, + "prey": 8.447005104456343 + }, + "state": [ + 8.447005104456343, + 1.1302652437981342 + ], + "step": 356, + "time": 8.9 + }, + { + "observations": { + "first_integral": 0.3085842591248717, + "predator": 1.1430971142567046, + "prey": 8.584391284547403 + }, + "state": [ + 8.584391284547403, + 1.1430971142567046 + ], + "step": 357, + "time": 8.925 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 1.1564733981318474, + "prey": 8.722868987341785 + }, + "state": [ + 8.722868987341785, + 1.1564733981318474 + ], + "step": 358, + "time": 8.95 + }, + { + "observations": { + "first_integral": 0.3085842591248714, + "predator": 1.1704128426630889, + "prey": 8.86237016846718 + }, + "state": [ + 8.86237016846718, + 1.1704128426630889 + ], + "step": 359, + "time": 8.975 + }, + { + "observations": { + "first_integral": 0.30858425912487164, + "predator": 1.184934907787202, + "prey": 9.00282122155999 + }, + "state": [ + 9.00282122155999, + 1.184934907787202 + ], + "step": 360, + "time": 9.0 + }, + { + "observations": { + "first_integral": 0.3085842591248715, + "predator": 1.2000597835735836, + "prey": 9.14414272321268 + }, + "state": [ + 9.14414272321268, + 1.2000597835735836 + ], + "step": 361, + "time": 9.025 + }, + { + "observations": { + "first_integral": 0.3085842591248715, + "predator": 1.2158084067084214, + "prey": 9.286249173976744 + }, + "state": [ + 9.286249173976744, + 1.2158084067084214 + ], + "step": 362, + "time": 9.05 + }, + { + "observations": { + "first_integral": 0.3085842591248714, + "predator": 1.232202475794862, + "prey": 9.429048736298382 + }, + "state": [ + 9.429048736298382, + 1.232202475794862 + ], + "step": 363, + "time": 9.075 + }, + { + "observations": { + "first_integral": 0.30858425912487164, + "predator": 1.2492644652085465, + "prey": 9.572442970411386 + }, + "state": [ + 9.572442970411386, + 1.2492644652085465 + ], + "step": 364, + "time": 9.1 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 1.2670176372177293, + "prey": 9.716326569373328 + }, + "state": [ + 9.716326569373328, + 1.2670176372177293 + ], + "step": 365, + "time": 9.125 + }, + { + "observations": { + "first_integral": 0.3085842591248716, + "predator": 1.2854860520447609, + "prey": 9.860587094608869 + }, + "state": [ + 9.860587094608869, + 1.2854860520447609 + ], + "step": 366, + "time": 9.15 + }, + { + "observations": { + "first_integral": 0.3085842591248715, + "predator": 1.30469457551083, + "prey": 10.005104713516511 + }, + "state": [ + 10.005104713516511, + 1.30469457551083 + ], + "step": 367, + "time": 9.175 + }, + { + "observations": { + "first_integral": 0.3085842591248715, + "predator": 1.3246688838686929, + "prey": 10.149751940905096 + }, + "state": [ + 10.149751940905096, + 1.3246688838686929 + ], + "step": 368, + "time": 9.2 + }, + { + "observations": { + "first_integral": 0.3085842591248715, + "predator": 1.345435465388584, + "prey": 10.294393386252398 + }, + "state": [ + 10.294393386252398, + 1.345435465388584 + ], + "step": 369, + "time": 9.225 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 1.3670216182207724, + "prey": 10.438885509021452 + }, + "state": [ + 10.438885509021452, + 1.3670216182207724 + ], + "step": 370, + "time": 9.25 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 1.3894554440144802, + "prey": 10.583076384530273 + }, + "state": [ + 10.583076384530273, + 1.3894554440144802 + ], + "step": 371, + "time": 9.275 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 1.4127658367272968, + "prey": 10.726805483147146 + }, + "state": [ + 10.726805483147146, + 1.4127658367272968 + ], + "step": 372, + "time": 9.3 + }, + { + "observations": { + "first_integral": 0.30858425912487164, + "predator": 1.4369824660121602, + "prey": 10.869903465875225 + }, + "state": [ + 10.869903465875225, + 1.4369824660121602 + ], + "step": 373, + "time": 9.325 + }, + { + "observations": { + "first_integral": 0.3085842591248716, + "predator": 1.4621357545209708, + "prey": 11.012191999697034 + }, + "state": [ + 11.012191999697034, + 1.4621357545209708 + ], + "step": 374, + "time": 9.35 + }, + { + "observations": { + "first_integral": 0.30858425912487136, + "predator": 1.4882568484152348, + "prey": 11.15348359636722 + }, + "state": [ + 11.15348359636722, + 1.4882568484152348 + ], + "step": 375, + "time": 9.375 + }, + { + "observations": { + "first_integral": 0.3085842591248716, + "predator": 1.5153775803259661, + "prey": 11.293581478671639 + }, + "state": [ + 11.293581478671639, + 1.5153775803259661 + ], + "step": 376, + "time": 9.4 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 1.5435304239576229, + "prey": 11.432279478505063 + }, + "state": [ + 11.432279478505063, + 1.5435304239576229 + ], + "step": 377, + "time": 9.425 + }, + { + "observations": { + "first_integral": 0.3085842591248715, + "predator": 1.5727484394858628, + "prey": 11.569361971459102 + }, + "state": [ + 11.569361971459102, + 1.5727484394858628 + ], + "step": 378, + "time": 9.45 + }, + { + "observations": { + "first_integral": 0.30858425912487164, + "predator": 1.6030652088568684, + "prey": 11.70460385294691 + }, + "state": [ + 11.70460385294691, + 1.6030652088568684 + ], + "step": 379, + "time": 9.475 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 1.6345147600589982, + "prey": 11.83777056121988 + }, + "state": [ + 11.83777056121988, + 1.6345147600589982 + ], + "step": 380, + "time": 9.5 + }, + { + "observations": { + "first_integral": 0.3085842591248714, + "predator": 1.6671314794066117, + "prey": 11.968618152943227 + }, + "state": [ + 11.968618152943227, + 1.6671314794066117 + ], + "step": 381, + "time": 9.525 + }, + { + "observations": { + "first_integral": 0.308584259124872, + "predator": 1.7009500108535964, + "prey": 12.09689343728701 + }, + "state": [ + 12.09689343728701, + 1.7009500108535964 + ], + "step": 382, + "time": 9.55 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 1.7360051413417539, + "prey": 12.22233417474346 + }, + "state": [ + 12.22233417474346, + 1.7360051413417539 + ], + "step": 383, + "time": 9.575 + }, + { + "observations": { + "first_integral": 0.30858425912487164, + "predator": 1.7723316711901804, + "prey": 12.34466934709397 + }, + "state": [ + 12.34466934709397, + 1.7723316711901804 + ], + "step": 384, + "time": 9.6 + }, + { + "observations": { + "first_integral": 0.30858425912487164, + "predator": 1.8099642685474027, + "prey": 12.463619505101672 + }, + "state": [ + 12.463619505101672, + 1.8099642685474027 + ], + "step": 385, + "time": 9.625 + }, + { + "observations": { + "first_integral": 0.3085842591248721, + "predator": 1.8489373069627484, + "prey": 12.578897200591104 + }, + "state": [ + 12.578897200591104, + 1.8489373069627484 + ], + "step": 386, + "time": 9.65 + }, + { + "observations": { + "first_integral": 0.3085842591248721, + "predator": 1.8892846851884568, + "prey": 12.690207509572538 + }, + "state": [ + 12.690207509572538, + 1.8892846851884568 + ], + "step": 387, + "time": 9.675 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 1.931039628404539, + "prey": 12.79724865296621 + }, + "state": [ + 12.79724865296621, + 1.931039628404539 + ], + "step": 388, + "time": 9.7 + }, + { + "observations": { + "first_integral": 0.30858425912487186, + "predator": 1.9742344701656895, + "prey": 12.89971272125678 + }, + "state": [ + 12.89971272125678, + 1.9742344701656895 + ], + "step": 389, + "time": 9.725 + }, + { + "observations": { + "first_integral": 0.30858425912487164, + "predator": 2.0189004145089453, + "prey": 12.997286509048793 + }, + "state": [ + 12.997286509048793, + 2.0189004145089453 + ], + "step": 390, + "time": 9.75 + }, + { + "observations": { + "first_integral": 0.3085842591248721, + "predator": 2.065067277833596, + "prey": 13.089652464976348 + }, + "state": [ + 13.089652464976348, + 2.065067277833596 + ], + "step": 391, + "time": 9.775 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 2.112763210376125, + "prey": 13.17648976173024 + }, + "state": [ + 13.17648976173024, + 2.112763210376125 + ], + "step": 392, + "time": 9.8 + }, + { + "observations": { + "first_integral": 0.30858425912487275, + "predator": 2.1620143973532957, + "prey": 13.257475490083023 + }, + "state": [ + 13.257475490083023, + 2.1620143973532957 + ], + "step": 393, + "time": 9.825 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 2.212844740140547, + "prey": 13.332285979703114 + }, + "state": [ + 13.332285979703114, + 2.212844740140547 + ], + "step": 394, + "time": 9.85 + }, + { + "observations": { + "first_integral": 0.30858425912487275, + "predator": 2.2652755181893496, + "prey": 13.400598248237499 + }, + "state": [ + 13.400598248237499, + 2.2652755181893496 + ], + "step": 395, + "time": 9.875 + }, + { + "observations": { + "first_integral": 0.30858425912487164, + "predator": 2.319325032769868, + "prey": 13.462091578599896 + }, + "state": [ + 13.462091578599896, + 2.319325032769868 + ], + "step": 396, + "time": 9.9 + }, + { + "observations": { + "first_integral": 0.308584259124873, + "predator": 2.375008234050175, + "prey": 13.51644922262069 + }, + "state": [ + 13.51644922262069, + 2.375008234050175 + ], + "step": 397, + "time": 9.925 + }, + { + "observations": { + "first_integral": 0.3085842591248714, + "predator": 2.4323363334919446, + "prey": 13.563360227195446 + }, + "state": [ + 13.563360227195446, + 2.4323363334919446 + ], + "step": 398, + "time": 9.95 + }, + { + "observations": { + "first_integral": 0.30858425912487353, + "predator": 2.491316404048047, + "prey": 13.602521376818983 + }, + "state": [ + 13.602521376818983, + 2.491316404048047 + ], + "step": 399, + "time": 9.975 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 2.551950971187369, + "prey": 13.633639243921726 + }, + "state": [ + 13.633639243921726, + 2.551950971187369 + ], + "step": 400, + "time": 10.0 + }, + { + "observations": { + "first_integral": 0.30858425912487375, + "predator": 2.6142375983362633, + "prey": 13.656432335764206 + }, + "state": [ + 13.656432335764206, + 2.6142375983362633 + ], + "step": 401, + "time": 10.025 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 2.6781684709067615, + "prey": 13.67063332381905 + }, + "state": [ + 13.67063332381905, + 2.6781684709067615 + ], + "step": 402, + "time": 10.05 + }, + { + "observations": { + "first_integral": 0.3085842591248742, + "predator": 2.7437299836648497, + "prey": 13.675991338632805 + }, + "state": [ + 13.675991338632805, + 2.7437299836648497 + ], + "step": 403, + "time": 10.075 + }, + { + "observations": { + "first_integral": 0.3085842591248711, + "predator": 2.810902336765031, + "prey": 13.672274310155832 + }, + "state": [ + 13.672274310155832, + 2.810902336765031 + ], + "step": 404, + "time": 10.1 + }, + { + "observations": { + "first_integral": 0.3085842591248742, + "predator": 2.8796591463214303, + "prey": 13.65927133053922 + }, + "state": [ + 13.65927133053922, + 2.8796591463214303 + ], + "step": 405, + "time": 10.125 + }, + { + "observations": { + "first_integral": 0.3085842591248711, + "predator": 2.9499670758833667, + "prey": 13.636795013485976 + }, + "state": [ + 13.636795013485976, + 2.9499670758833667 + ], + "step": 406, + "time": 10.15 + }, + { + "observations": { + "first_integral": 0.3085842591248742, + "predator": 3.021785495612826, + "prey": 13.6046838215158 + }, + "state": [ + 13.6046838215158, + 3.021785495612826 + ], + "step": 407, + "time": 10.175 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 3.0950661763008283, + "prey": 13.562804330037661 + }, + "state": [ + 13.562804330037661, + 3.0950661763008283 + ], + "step": 408, + "time": 10.2 + }, + { + "observations": { + "first_integral": 0.30858425912487375, + "predator": 3.169753025587539, + "prey": 13.511053395044415 + }, + "state": [ + 13.511053395044415, + 3.169753025587539 + ], + "step": 409, + "time": 10.225 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 3.2457818738425455, + "prey": 13.449360189636439 + }, + "state": [ + 13.449360189636439, + 3.2457818738425455 + ], + "step": 410, + "time": 10.25 + }, + { + "observations": { + "first_integral": 0.3085842591248733, + "predator": 3.323080317099368, + "prey": 13.37768807357011 + }, + "state": [ + 13.37768807357011, + 3.323080317099368 + ], + "step": 411, + "time": 10.275 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 3.401567624198049, + "prey": 13.29603625969562 + }, + "state": [ + 13.29603625969562, + 3.401567624198049 + ], + "step": 412, + "time": 10.3 + }, + { + "observations": { + "first_integral": 0.3085842591248724, + "predator": 3.481154714862184, + "prey": 13.204441241600883 + }, + "state": [ + 13.204441241600883, + 3.481154714862184 + ], + "step": 413, + "time": 10.325 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 3.561744214804054, + "prey": 13.102977948076717 + }, + "state": [ + 13.102977948076717, + 3.561744214804054 + ], + "step": 414, + "time": 10.35 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 3.6432305931161126, + "prey": 12.991760592224471 + }, + "state": [ + 12.991760592224471, + 3.6432305931161126 + ], + "step": 415, + "time": 10.375 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 3.7255003861623313, + "prey": 12.870943186163323 + }, + "state": [ + 12.870943186163323, + 3.7255003861623313 + ], + "step": 416, + "time": 10.4 + }, + { + "observations": { + "first_integral": 0.30858425912487064, + "predator": 3.808432510946863, + "prey": 12.74071969635765 + }, + "state": [ + 12.74071969635765, + 3.808432510946863 + ], + "step": 417, + "time": 10.425 + }, + { + "observations": { + "first_integral": 0.308584259124872, + "predator": 3.8918986695179534, + "prey": 12.60132381954313 + }, + "state": [ + 12.60132381954313, + 3.8918986695179534 + ], + "step": 418, + "time": 10.45 + }, + { + "observations": { + "first_integral": 0.30858425912486953, + "predator": 3.9757638443982155, + "prey": 12.453028365000236 + }, + "state": [ + 12.453028365000236, + 3.9757638443982155 + ], + "step": 419, + "time": 10.475 + }, + { + "observations": { + "first_integral": 0.3085842591248722, + "predator": 4.059886883340957, + "prey": 12.296144235412955 + }, + "state": [ + 12.296144235412955, + 4.059886883340957 + ], + "step": 420, + "time": 10.5 + }, + { + "observations": { + "first_integral": 0.30858425912486886, + "predator": 4.144121169949339, + "prey": 12.131019005592421 + }, + "state": [ + 12.131019005592421, + 4.144121169949339 + ], + "step": 421, + "time": 10.525 + }, + { + "observations": { + "first_integral": 0.3085842591248724, + "predator": 4.228315374896751, + "prey": 11.958035105792078 + }, + "state": [ + 11.958035105792078, + 4.228315374896751 + ], + "step": 422, + "time": 10.55 + }, + { + "observations": { + "first_integral": 0.3085842591248682, + "predator": 4.3123142807165395, + "prey": 11.777607623958398 + }, + "state": [ + 11.777607623958398, + 4.3123142807165395 + ], + "step": 423, + "time": 10.575 + }, + { + "observations": { + "first_integral": 0.30858425912487264, + "predator": 4.3959596714327125, + "prey": 11.590181748863658 + }, + "state": [ + 11.590181748863658, + 4.3959596714327125 + ], + "step": 424, + "time": 10.6 + }, + { + "observations": { + "first_integral": 0.30858425912486775, + "predator": 4.479091276744151, + "prey": 11.396229883385649 + }, + "state": [ + 11.396229883385649, + 4.479091276744151 + ], + "step": 425, + "time": 10.625 + }, + { + "observations": { + "first_integral": 0.30858425912487264, + "predator": 4.561547759101458, + "prey": 11.196248464038769 + }, + "state": [ + 11.196248464038769, + 4.561547759101458 + ], + "step": 426, + "time": 10.65 + }, + { + "observations": { + "first_integral": 0.3085842591248673, + "predator": 4.643167730880603, + "prey": 10.990754528961578 + }, + "state": [ + 10.990754528961578, + 4.643167730880603 + ], + "step": 427, + "time": 10.675 + }, + { + "observations": { + "first_integral": 0.30858425912487286, + "predator": 4.723790788002231, + "prey": 10.780282081760793 + }, + "state": [ + 10.780282081760793, + 4.723790788002231 + ], + "step": 428, + "time": 10.7 + }, + { + "observations": { + "first_integral": 0.30858425912486775, + "predator": 4.803258545802614, + "prey": 10.565378302692928 + }, + "state": [ + 10.565378302692928, + 4.803258545802614 + ], + "step": 429, + "time": 10.725 + }, + { + "observations": { + "first_integral": 0.3085842591248724, + "predator": 4.88141566275674, + "prey": 10.346599661529366 + }, + "state": [ + 10.346599661529366, + 4.88141566275674 + ], + "step": 430, + "time": 10.75 + }, + { + "observations": { + "first_integral": 0.30858425912486864, + "predator": 4.958110837792125, + "prey": 10.124507987979104 + }, + "state": [ + 10.124507987979104, + 4.958110837792125 + ], + "step": 431, + "time": 10.775 + }, + { + "observations": { + "first_integral": 0.3085842591248722, + "predator": 5.03319776741734, + "prey": 9.899666555718262 + }, + "state": [ + 9.899666555718262, + 5.03319776741734 + ], + "step": 432, + "time": 10.8 + }, + { + "observations": { + "first_integral": 0.30858425912486975, + "predator": 5.106536049699113, + "prey": 9.672636234887412 + }, + "state": [ + 9.672636234887412, + 5.106536049699113 + ], + "step": 433, + "time": 10.825 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 5.177992023238801, + "prey": 9.443971765436908 + }, + "state": [ + 9.443971765436908, + 5.177992023238801 + ], + "step": 434, + "time": 10.85 + }, + { + "observations": { + "first_integral": 0.3085842591248704, + "predator": 5.247439530674232, + "prey": 9.214218200027998 + }, + "state": [ + 9.214218200027998, + 5.247439530674232 + ], + "step": 435, + "time": 10.875 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 5.3147605978321035, + "prey": 8.983907560475318 + }, + "state": [ + 8.983907560475318, + 5.3147605978321035 + ], + "step": 436, + "time": 10.9 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 5.379846021413453, + "prey": 8.75355574613331 + }, + "state": [ + 8.75355574613331, + 5.379846021413453 + ], + "step": 437, + "time": 10.925 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 5.442595859965588, + "prey": 8.523659726371244 + }, + "state": [ + 8.523659726371244, + 5.442595859965588 + ], + "step": 438, + "time": 10.95 + }, + { + "observations": { + "first_integral": 0.3085842591248724, + "predator": 5.5029198248080835, + "prey": 8.294695042584209 + }, + "state": [ + 8.294695042584209, + 5.5029198248080835 + ], + "step": 439, + "time": 10.975 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 5.5607375694906755, + "prey": 8.067113638248873 + }, + "state": [ + 8.067113638248873, + 5.5607375694906755 + ], + "step": 440, + "time": 11.0 + }, + { + "observations": { + "first_integral": 0.3085842591248731, + "predator": 5.6159788782048015, + "prey": 7.841342028589519 + }, + "state": [ + 7.841342028589519, + 5.6159788782048015 + ], + "step": 441, + "time": 11.025 + }, + { + "observations": { + "first_integral": 0.30858425912487064, + "predator": 5.668583755306046, + "prey": 7.617779814648878 + }, + "state": [ + 7.617779814648878, + 5.668583755306046 + ], + "step": 442, + "time": 11.05 + }, + { + "observations": { + "first_integral": 0.30858425912487397, + "predator": 5.718502419685914, + "prey": 7.396798540160937 + }, + "state": [ + 7.396798540160937, + 5.718502419685914 + ], + "step": 443, + "time": 11.075 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 5.765695209127946, + "prey": 7.178740883727523 + }, + "state": [ + 7.178740883727523, + 5.765695209127946 + ], + "step": 444, + "time": 11.1 + }, + { + "observations": { + "first_integral": 0.3085842591248744, + "predator": 5.810132400969653, + "prey": 6.963920173550523 + }, + "state": [ + 6.963920173550523, + 5.810132400969653 + ], + "step": 445, + "time": 11.125 + }, + { + "observations": { + "first_integral": 0.30858425912487064, + "predator": 5.851793956352681, + "prey": 6.752620207433444 + }, + "state": [ + 6.752620207433444, + 5.851793956352681 + ], + "step": 446, + "time": 11.15 + }, + { + "observations": { + "first_integral": 0.3085842591248751, + "predator": 5.89066919607445, + "prey": 6.5450953570150325 + }, + "state": [ + 6.5450953570150325, + 5.89066919607445 + ], + "step": 447, + "time": 11.175 + }, + { + "observations": { + "first_integral": 0.3085842591248711, + "predator": 5.926756416553494, + "prey": 6.34157093224097 + }, + "state": [ + 6.34157093224097, + 5.926756416553494 + ], + "step": 448, + "time": 11.2 + }, + { + "observations": { + "first_integral": 0.30858425912487464, + "predator": 5.960062454701908, + "prey": 6.142243779925724 + }, + "state": [ + 6.142243779925724, + 5.960062454701908 + ], + "step": 449, + "time": 11.225 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 5.99060221056998, + "prey": 5.947283088867301 + }, + "state": [ + 5.947283088867301, + 5.99060221056998 + ], + "step": 450, + "time": 11.25 + }, + { + "observations": { + "first_integral": 0.30858425912487464, + "predator": 6.018398136517703, + "prey": 5.756831373306936 + }, + "state": [ + 5.756831373306936, + 6.018398136517703 + ], + "step": 451, + "time": 11.275 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 6.043479701389926, + "prey": 5.5710056065064295 + }, + "state": [ + 5.5710056065064295, + 6.043479701389926 + ], + "step": 452, + "time": 11.3 + }, + { + "observations": { + "first_integral": 0.3085842591248742, + "predator": 6.065882837760545, + "prey": 5.389898476768267 + }, + "state": [ + 5.389898476768267, + 6.065882837760545 + ], + "step": 453, + "time": 11.325 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 6.0856493797836855, + "prey": 5.213579739265796 + }, + "state": [ + 5.213579739265796, + 6.0856493797836855 + ], + "step": 454, + "time": 11.35 + }, + { + "observations": { + "first_integral": 0.3085842591248731, + "predator": 6.102826498580703, + "prey": 5.042097638491034 + }, + "state": [ + 5.042097638491034, + 6.102826498580703 + ], + "step": 455, + "time": 11.375 + }, + { + "observations": { + "first_integral": 0.3085842591248711, + "predator": 6.117466141418357, + "prey": 4.875480377882475 + }, + "state": [ + 4.875480377882475, + 6.117466141418357 + ], + "step": 456, + "time": 11.4 + }, + { + "observations": { + "first_integral": 0.3085842591248722, + "predator": 6.1296244802259094, + "prey": 4.7137376151767585 + }, + "state": [ + 4.7137376151767585, + 6.1296244802259094 + ], + "step": 457, + "time": 11.425 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 6.139361374272233, + "prey": 4.5568619641625885 + }, + "state": [ + 4.5568619641625885, + 6.139361374272233 + ], + "step": 458, + "time": 11.45 + }, + { + "observations": { + "first_integral": 0.308584259124872, + "predator": 6.146739851101847, + "prey": 4.404830485727208 + }, + "state": [ + 4.404830485727208, + 6.146739851101847 + ], + "step": 459, + "time": 11.475 + }, + { + "observations": { + "first_integral": 0.308584259124872, + "predator": 6.151825609122661, + "prey": 4.257606153319116 + }, + "state": [ + 4.257606153319116, + 6.151825609122661 + ], + "step": 460, + "time": 11.5 + }, + { + "observations": { + "first_integral": 0.3085842591248711, + "predator": 6.154686544564198, + "prey": 4.115139280146562 + }, + "state": [ + 4.115139280146562, + 6.154686544564198 + ], + "step": 461, + "time": 11.525 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 6.155392304890956, + "prey": 3.9773688975526853 + }, + "state": [ + 3.9773688975526853, + 6.155392304890956 + ], + "step": 462, + "time": 11.55 + }, + { + "observations": { + "first_integral": 0.30858425912487086, + "predator": 6.154013870170102, + "prey": 3.844224076015234 + }, + "state": [ + 3.844224076015234, + 6.154013870170102 + ], + "step": 463, + "time": 11.575 + }, + { + "observations": { + "first_integral": 0.308584259124872, + "predator": 6.150623163360637, + "prey": 3.7156251820901014 + }, + "state": [ + 3.7156251820901014, + 6.150623163360637 + ], + "step": 464, + "time": 11.6 + }, + { + "observations": { + "first_integral": 0.3085842591248704, + "predator": 6.145292690014738, + "prey": 3.5914850663331657 + }, + "state": [ + 3.5914850663331657, + 6.145292690014738 + ], + "step": 465, + "time": 11.625 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 6.138095207463773, + "prey": 3.4717101787838853 + }, + "state": [ + 3.4717101787838853, + 6.138095207463773 + ], + "step": 466, + "time": 11.65 + }, + { + "observations": { + "first_integral": 0.30858425912487, + "predator": 6.129103423198743, + "prey": 3.3562016099726204 + }, + "state": [ + 3.3562016099726204, + 6.129103423198743 + ], + "step": 467, + "time": 11.675 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 6.11838972184871, + "prey": 3.2448560566200526 + }, + "state": [ + 3.2448560566200526, + 6.11838972184871 + ], + "step": 468, + "time": 11.7 + }, + { + "observations": { + "first_integral": 0.30858425912486953, + "predator": 6.106025919905064, + "prey": 3.1375667122376325 + }, + "state": [ + 3.1375667122376325, + 6.106025919905064 + ], + "step": 469, + "time": 11.725 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 6.092083047134594, + "prey": 3.034224083717759 + }, + "state": [ + 3.034224083717759, + 6.092083047134594 + ], + "step": 470, + "time": 11.75 + }, + { + "observations": { + "first_integral": 0.30858425912486953, + "predator": 6.0766311534620625, + "prey": 2.934716735733377 + }, + "state": [ + 2.934716735733377, + 6.0766311534620625 + ], + "step": 471, + "time": 11.775 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 6.059739139983695, + "prey": 2.838931965357797 + }, + "state": [ + 2.838931965357797, + 6.059739139983695 + ], + "step": 472, + "time": 11.8 + }, + { + "observations": { + "first_integral": 0.30858425912486953, + "predator": 6.041474612687477, + "prey": 2.746756409781928 + }, + "state": [ + 2.746756409781928, + 6.041474612687477 + ], + "step": 473, + "time": 11.825 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 6.02190375740484, + "prey": 2.658076590357311 + }, + "state": [ + 2.658076590357311, + 6.02190375740484 + ], + "step": 474, + "time": 11.85 + }, + { + "observations": { + "first_integral": 0.30858425912486953, + "predator": 6.0010912344922955, + "prey": 2.572779396446339 + }, + "state": [ + 2.572779396446339, + 6.0010912344922955 + ], + "step": 475, + "time": 11.875 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 5.9791000917411345, + "prey": 2.4907525127238777 + }, + "state": [ + 2.4907525127238777, + 5.9791000917411345 + ], + "step": 476, + "time": 11.9 + }, + { + "observations": { + "first_integral": 0.30858425912486953, + "predator": 5.955991694030534, + "prey": 2.411884793664418 + }, + "state": [ + 2.411884793664418, + 5.955991694030534 + ], + "step": 477, + "time": 11.925 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 5.931825668274731, + "prey": 2.336066588972203 + }, + "state": [ + 2.336066588972203, + 5.931825668274731 + ], + "step": 478, + "time": 11.95 + }, + { + "observations": { + "first_integral": 0.30858425912486953, + "predator": 5.90665986226118, + "prey": 2.2631900236839058 + }, + "state": [ + 2.2631900236839058, + 5.90665986226118 + ], + "step": 479, + "time": 11.975 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 5.880550316035, + "prey": 2.193149236599748 + }, + "state": [ + 2.193149236599748, + 5.880550316035 + ], + "step": 480, + "time": 12.0 + }, + { + "observations": { + "first_integral": 0.30858425912487, + "predator": 5.853551244548854, + "prey": 2.1258405805919356 + }, + "state": [ + 2.1258405805919356, + 5.853551244548854 + ], + "step": 481, + "time": 12.025 + }, + { + "observations": { + "first_integral": 0.308584259124872, + "predator": 5.825715030368564, + "prey": 2.0611627882033394 + }, + "state": [ + 2.0611627882033394, + 5.825715030368564 + ], + "step": 482, + "time": 12.05 + }, + { + "observations": { + "first_integral": 0.30858425912487064, + "predator": 5.7970922252975425, + "prey": 1.9990171057944002 + }, + "state": [ + 1.9990171057944002, + 5.7970922252975425 + ], + "step": 483, + "time": 12.075 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 5.767731559859204, + "prey": 1.9393073993250456 + }, + "state": [ + 1.9393073993250456, + 5.767731559859204 + ], + "step": 484, + "time": 12.1 + }, + { + "observations": { + "first_integral": 0.3085842591248704, + "predator": 5.737679959651802, + "prey": 1.881940234679287 + }, + "state": [ + 1.881940234679287, + 5.737679959651802 + ], + "step": 485, + "time": 12.125 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 5.706982567665758, + "prey": 1.8268249352539954 + }, + "state": [ + 1.8268249352539954, + 5.706982567665758 + ], + "step": 486, + "time": 12.15 + }, + { + "observations": { + "first_integral": 0.3085842591248704, + "predator": 5.675682771726679, + "prey": 1.7738736193471107 + }, + "state": [ + 1.7738736193471107, + 5.675682771726679 + ], + "step": 487, + "time": 12.175 + }, + { + "observations": { + "first_integral": 0.308584259124872, + "predator": 5.643822236298981, + "prey": 1.7230012196939313 + }, + "state": [ + 1.7230012196939313, + 5.643822236298981 + ], + "step": 488, + "time": 12.2 + }, + { + "observations": { + "first_integral": 0.30858425912487086, + "predator": 5.611440937952997, + "prey": 1.6741254873182894 + }, + "state": [ + 1.6741254873182894, + 5.611440937952997 + ], + "step": 489, + "time": 12.225 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 5.5785772038641035, + "prey": 1.6271669816879404 + }, + "state": [ + 1.6271669816879404, + 5.5785772038641035 + ], + "step": 490, + "time": 12.25 + }, + { + "observations": { + "first_integral": 0.30858425912487086, + "predator": 5.545267752773606, + "prey": 1.5820490489935692 + }, + "state": [ + 1.5820490489935692, + 5.545267752773606 + ], + "step": 491, + "time": 12.275 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 5.511547737899488, + "prey": 1.5386977902080767 + }, + "state": [ + 1.5386977902080767, + 5.511547737899488 + ], + "step": 492, + "time": 12.3 + }, + { + "observations": { + "first_integral": 0.30858425912487086, + "predator": 5.477450791338975, + "prey": 1.4970420204292274 + }, + "state": [ + 1.4970420204292274, + 5.477450791338975 + ], + "step": 493, + "time": 12.325 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 5.4430090695554965, + "prey": 1.4570132208635338 + }, + "state": [ + 1.4570132208635338, + 5.4430090695554965 + ], + "step": 494, + "time": 12.35 + }, + { + "observations": { + "first_integral": 0.3085842591248711, + "predator": 5.408253299589044, + "prey": 1.4185454846739776 + }, + "state": [ + 1.4185454846739776, + 5.408253299589044 + ], + "step": 495, + "time": 12.375 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 5.373212825671998, + "prey": 1.3815754577874864 + }, + "state": [ + 1.3815754577874864, + 5.373212825671998 + ], + "step": 496, + "time": 12.4 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 5.337915655971764, + "prey": 1.3460422756413397 + }, + "state": [ + 1.3460422756413397, + 5.337915655971764 + ], + "step": 497, + "time": 12.425 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 5.302388509217651, + "prey": 1.3118874967393246 + }, + "state": [ + 1.3118874967393246, + 5.302388509217651 + ], + "step": 498, + "time": 12.45 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 5.26665686100203, + "prey": 1.2790550337893227 + }, + "state": [ + 1.2790550337893227, + 5.26665686100203 + ], + "step": 499, + "time": 12.475 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 5.2307449895756415, + "prey": 1.2474910831029147 + }, + "state": [ + 1.2474910831029147, + 5.2307449895756415 + ], + "step": 500, + "time": 12.5 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 5.194676020983553, + "prey": 1.2171440528546507 + }, + "state": [ + 1.2171440528546507, + 5.194676020983553 + ], + "step": 501, + "time": 12.525 + }, + { + "observations": { + "first_integral": 0.3085842591248722, + "predator": 5.158471973412555, + "prey": 1.1879644907231168 + }, + "state": [ + 1.1879644907231168, + 5.158471973412555 + ], + "step": 502, + "time": 12.55 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 5.122153800642303, + "prey": 1.1599050113675902 + }, + "state": [ + 1.1599050113675902, + 5.122153800642303 + ], + "step": 503, + "time": 12.575 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 5.085741434511903, + "prey": 1.1329202241321947 + }, + "state": [ + 1.1329202241321947, + 5.085741434511903 + ], + "step": 504, + "time": 12.6 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 5.049253826330827, + "prey": 1.106966661313949 + }, + "state": [ + 1.106966661313949, + 5.049253826330827 + ], + "step": 505, + "time": 12.625 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 5.012708987178279, + "prey": 1.0820027072810134 + }, + "state": [ + 1.0820027072810134, + 5.012708987178279 + ], + "step": 506, + "time": 12.65 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 4.976124027048652, + "prey": 1.0579885286828685 + }, + "state": [ + 1.0579885286828685, + 4.976124027048652 + ], + "step": 507, + "time": 12.675 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 4.939515192812541, + "prey": 1.0348860059542033 + }, + "state": [ + 1.0348860059542033, + 4.939515192812541 + ], + "step": 508, + "time": 12.7 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 4.902897904973149, + "prey": 1.0126586662788657 + }, + "state": [ + 1.0126586662788657, + 4.902897904973149 + ], + "step": 509, + "time": 12.725 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 4.866286793207023, + "prey": 0.9912716181488104 + }, + "state": [ + 0.9912716181488104, + 4.866286793207023 + ], + "step": 510, + "time": 12.75 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 4.829695730685802, + "prey": 0.9706914876251861 + }, + "state": [ + 0.9706914876251861, + 4.829695730685802 + ], + "step": 511, + "time": 12.775 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 4.793137867182507, + "prey": 0.9508863563843093 + }, + "state": [ + 0.9508863563843093, + 4.793137867182507 + ], + "step": 512, + "time": 12.8 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 4.75662566097166, + "prey": 0.9318257016098374 + }, + "state": [ + 0.9318257016098374, + 4.75662566097166 + ], + "step": 513, + "time": 12.825 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 4.720170909537373, + "prey": 0.9134803377737356 + }, + "state": [ + 0.9134803377737356, + 4.720170909537373 + ], + "step": 514, + "time": 12.85 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 4.683784779107809, + "prey": 0.8958223603324159 + }, + "state": [ + 0.8958223603324159, + 4.683784779107809 + ], + "step": 515, + "time": 12.875 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 4.6474778330377156, + "prey": 0.8788250913502942 + }, + "state": [ + 0.8788250913502942, + 4.6474778330377156 + ], + "step": 516, + "time": 12.9 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 4.611260059063704, + "prey": 0.8624630270509797 + }, + "state": [ + 0.8624630270509797, + 4.611260059063704 + ], + "step": 517, + "time": 12.925 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 4.57514089545913, + "prey": 0.8467117872859178 + }, + "state": [ + 0.8467117872859178, + 4.57514089545913 + ], + "step": 518, + "time": 12.95 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 4.539129256117327, + "prey": 0.8315480669015384 + }, + "state": [ + 0.8315480669015384, + 4.539129256117327 + ], + "step": 519, + "time": 12.975 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 4.503233554593309, + "prey": 0.8169495889785796 + }, + "state": [ + 0.8169495889785796, + 4.503233554593309 + ], + "step": 520, + "time": 13.0 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 4.467461727135068, + "prey": 0.8028950599110587 + }, + "state": [ + 0.8028950599110587, + 4.467461727135068 + ], + "step": 521, + "time": 13.025 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 4.431821254736354, + "prey": 0.7893641262873182 + }, + "state": [ + 0.7893641262873182, + 4.431821254736354 + ], + "step": 522, + "time": 13.05 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 4.396319184243235, + "prey": 0.7763373335314335 + }, + "state": [ + 0.7763373335314335, + 4.396319184243235 + ], + "step": 523, + "time": 13.075 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 4.360962148546904, + "prey": 0.7637960862599911 + }, + "state": [ + 0.7637960862599911, + 4.360962148546904 + ], + "step": 524, + "time": 13.1 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 4.325756385895277, + "prey": 0.7517226103067202 + }, + "state": [ + 0.7517226103067202, + 4.325756385895277 + ], + "step": 525, + "time": 13.125 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 4.290707758355624, + "prey": 0.7400999163655296 + }, + "state": [ + 0.7400999163655296, + 4.290707758355624 + ], + "step": 526, + "time": 13.15 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 4.255821769460257, + "prey": 0.7289117652011937 + }, + "state": [ + 0.7289117652011937, + 4.255821769460257 + ], + "step": 527, + "time": 13.175 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 4.221103581066767, + "prey": 0.7181426343760497 + }, + "state": [ + 0.7181426343760497, + 4.221103581066767 + ], + "step": 528, + "time": 13.2 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 4.186558029463773, + "prey": 0.7077776864406372 + }, + "state": [ + 0.7077776864406372, + 4.186558029463773 + ], + "step": 529, + "time": 13.225 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 4.152189640752529, + "prey": 0.6978027385361334 + }, + "state": [ + 0.6978027385361334, + 4.152189640752529 + ], + "step": 530, + "time": 13.25 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 4.118002645533941, + "prey": 0.6882042333566352 + }, + "state": [ + 0.6882042333566352, + 4.118002645533941 + ], + "step": 531, + "time": 13.275 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 4.084000992929877, + "prey": 0.6789692114198458 + }, + "state": [ + 0.6789692114198458, + 4.084000992929877 + ], + "step": 532, + "time": 13.3 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 4.050188363966774, + "prey": 0.6700852845953963 + }, + "state": [ + 0.6700852845953963, + 4.050188363966774 + ], + "step": 533, + "time": 13.325 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 4.016568184348727, + "prey": 0.6615406108409114 + }, + "state": [ + 0.6615406108409114, + 4.016568184348727 + ], + "step": 534, + "time": 13.35 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 3.98314363664641, + "prey": 0.6533238700969618 + }, + "state": [ + 0.6533238700969618, + 3.98314363664641 + ], + "step": 535, + "time": 13.375 + }, + { + "observations": { + "first_integral": 0.308584259124872, + "predator": 3.9499176719272384, + "prey": 0.6454242412931618 + }, + "state": [ + 0.6454242412931618, + 3.9499176719272384 + ], + "step": 536, + "time": 13.4 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 3.9168930208513713, + "prey": 0.6378313804189294 + }, + "state": [ + 0.6378313804189294, + 3.9168930208513713 + ], + "step": 537, + "time": 13.425 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 3.8840722042572193, + "prey": 0.6305353996137237 + }, + "state": [ + 0.6305353996137237, + 3.8840722042572193 + ], + "step": 538, + "time": 13.45 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 3.851457543259256, + "prey": 0.6235268472329364 + }, + "state": [ + 0.6235268472329364, + 3.851457543259256 + ], + "step": 539, + "time": 13.475 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 3.8190511688800948, + "prey": 0.6167966888470268 + }, + "state": [ + 0.6167966888470268, + 3.8190511688800948 + ], + "step": 540, + "time": 13.5 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 3.7868550312378586, + "prey": 0.6103362891329012 + }, + "state": [ + 0.6103362891329012, + 3.7868550312378586 + ], + "step": 541, + "time": 13.525 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 3.7548709083091105, + "prey": 0.6041373946179904 + }, + "state": [ + 0.6041373946179904, + 3.7548709083091105 + ], + "step": 542, + "time": 13.55 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 3.723100414286735, + "prey": 0.5981921172389176 + }, + "state": [ + 0.5981921172389176, + 3.723100414286735 + ], + "step": 543, + "time": 13.575 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 3.691545007551359, + "prey": 0.5924929186780765 + }, + "state": [ + 0.5924929186780765, + 3.691545007551359 + ], + "step": 544, + "time": 13.6 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 3.6602059982741575, + "prey": 0.5870325954428817 + }, + "state": [ + 0.5870325954428817, + 3.6602059982741575 + ], + "step": 545, + "time": 13.625 + }, + { + "observations": { + "first_integral": 0.308584259124872, + "predator": 3.6290845556680544, + "prey": 0.5818042646538302 + }, + "state": [ + 0.5818042646538302, + 3.6290845556680544 + ], + "step": 546, + "time": 13.65 + }, + { + "observations": { + "first_integral": 0.308584259124872, + "predator": 3.5981817149036575, + "prey": 0.5768013505089163 + }, + "state": [ + 0.5768013505089163, + 3.5981817149036575 + ], + "step": 547, + "time": 13.675 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 3.567498383705519, + "prey": 0.5720175713932768 + }, + "state": [ + 0.5720175713932768, + 3.567498383705519 + ], + "step": 548, + "time": 13.7 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 3.5370353486436104, + "prey": 0.5674469276042636 + }, + "state": [ + 0.5674469276042636, + 3.5370353486436104 + ], + "step": 549, + "time": 13.725 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 3.506793281134283, + "prey": 0.5630836896634339 + }, + "state": [ + 0.5630836896634339, + 3.506793281134283 + ], + "step": 550, + "time": 13.75 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 3.4767727431642683, + "prey": 0.5589223871881774 + }, + "state": [ + 0.5589223871881774, + 3.4767727431642683 + ], + "step": 551, + "time": 13.775 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 3.446974192750725, + "prey": 0.5549577982969239 + }, + "state": [ + 0.5549577982969239, + 3.446974192750725 + ], + "step": 552, + "time": 13.8 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 3.4173979891497073, + "prey": 0.5511849395230364 + }, + "state": [ + 0.5511849395230364, + 3.4173979891497073 + ], + "step": 553, + "time": 13.825 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 3.38804439782485, + "prey": 0.5475990562136227 + }, + "state": [ + 0.5475990562136227, + 3.38804439782485 + ], + "step": 554, + "time": 13.85 + }, + { + "observations": { + "first_integral": 0.3085842591248722, + "predator": 3.3589135951875777, + "prey": 0.5441956133905959 + }, + "state": [ + 0.5441956133905959, + 3.3589135951875777 + ], + "step": 555, + "time": 13.875 + }, + { + "observations": { + "first_integral": 0.308584259124872, + "predator": 3.330005673119526, + "prey": 0.5409702870523501 + }, + "state": [ + 0.5409702870523501, + 3.330005673119526 + ], + "step": 556, + "time": 13.9 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 3.301320643287451, + "prey": 0.5379189558954386 + }, + "state": [ + 0.5379189558954386, + 3.301320643287451 + ], + "step": 557, + "time": 13.925 + }, + { + "observations": { + "first_integral": 0.3085842591248722, + "predator": 3.2728584412603707, + "prey": 0.535037693436605 + }, + "state": [ + 0.535037693436605, + 3.2728584412603707 + ], + "step": 558, + "time": 13.95 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 3.244618930438228, + "prey": 0.5323227605164477 + }, + "state": [ + 0.5323227605164477, + 3.244618930438228 + ], + "step": 559, + "time": 13.975 + }, + { + "observations": { + "first_integral": 0.308584259124872, + "predator": 3.2166019058009634, + "prey": 0.5297705981668941 + }, + "state": [ + 0.5297705981668941, + 3.2166019058009634 + ], + "step": 560, + "time": 14.0 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 3.188807097486398, + "prey": 0.5273778208255117 + }, + "state": [ + 0.5273778208255117, + 3.188807097486398 + ], + "step": 561, + "time": 14.025 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 3.1612341742049885, + "prey": 0.5251412098805012 + }, + "state": [ + 0.5251412098805012, + 3.1612341742049885 + ], + "step": 562, + "time": 14.05 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 3.1338827464991112, + "prey": 0.5230577075310048 + }, + "state": [ + 0.5230577075310048, + 3.1338827464991112 + ], + "step": 563, + "time": 14.075 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 3.1067523698541404, + "prey": 0.5211244109481022 + }, + "state": [ + 0.5211244109481022, + 3.1067523698541404 + ], + "step": 564, + "time": 14.1 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 3.0798425476683104, + "prey": 0.519338566722591 + }, + "state": [ + 0.519338566722591, + 3.0798425476683104 + ], + "step": 565, + "time": 14.125 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 3.05315273408792, + "prey": 0.5176975655863221 + }, + "state": [ + 0.5176975655863221, + 3.05315273408792 + ], + "step": 566, + "time": 14.15 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 3.0266823367142126, + "prey": 0.5161989373945187 + }, + "state": [ + 0.5161989373945187, + 3.0266823367142126 + ], + "step": 567, + "time": 14.175 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 3.000430719187908, + "prey": 0.5148403463571254 + }, + "state": [ + 0.5148403463571254, + 3.000430719187908 + ], + "step": 568, + "time": 14.2 + }, + { + "observations": { + "first_integral": 0.308584259124872, + "predator": 2.9743972036570936, + "prey": 0.5136195865078262 + }, + "state": [ + 0.5136195865078262, + 2.9743972036570936 + ], + "step": 569, + "time": 14.225 + }, + { + "observations": { + "first_integral": 0.308584259124872, + "predator": 2.9485810731339304, + "prey": 0.5125345773999391 + }, + "state": [ + 0.5125345773999391, + 2.9485810731339304 + ], + "step": 570, + "time": 14.25 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 2.922981573745311, + "prey": 0.511583360018927 + }, + "state": [ + 0.511583360018927, + 2.922981573745311 + ], + "step": 571, + "time": 14.275 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 2.8975979168824315, + "prey": 0.510764092901782 + }, + "state": [ + 0.510764092901782, + 2.8975979168824315 + ], + "step": 572, + "time": 14.3 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 2.872429281253948, + "prey": 0.5100750484540282 + }, + "state": [ + 0.5100750484540282, + 2.872429281253948 + ], + "step": 573, + "time": 14.325 + }, + { + "observations": { + "first_integral": 0.308584259124872, + "predator": 2.8474748148471893, + "prey": 0.5095146094555496 + }, + "state": [ + 0.5095146094555496, + 2.8474748148471893 + ], + "step": 574, + "time": 14.35 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 2.822733636801693, + "prey": 0.5090812657468975 + }, + "state": [ + 0.5090812657468975, + 2.822733636801693 + ], + "step": 575, + "time": 14.375 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 2.7982048391990966, + "prey": 0.5087736110881471 + }, + "state": [ + 0.5087736110881471, + 2.7982048391990966 + ], + "step": 576, + "time": 14.4 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 2.7738874887732528, + "prey": 0.5085903401827786 + }, + "state": [ + 0.5085903401827786, + 2.7738874887732528 + ], + "step": 577, + "time": 14.425 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 2.7497806285442494, + "prey": 0.508530245859438 + }, + "state": [ + 0.508530245859438, + 2.7497806285442494 + ], + "step": 578, + "time": 14.45 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 2.7258832793798153, + "prey": 0.508592216404793 + }, + "state": [ + 0.508592216404793, + 2.7258832793798153 + ], + "step": 579, + "time": 14.475 + }, + { + "observations": { + "first_integral": 0.308584259124872, + "predator": 2.7021944414874812, + "prey": 0.5087752330410498 + }, + "state": [ + 0.5087752330410498, + 2.7021944414874812 + ], + "step": 580, + "time": 14.5 + }, + { + "observations": { + "first_integral": 0.308584259124872, + "predator": 2.678713095840633, + "prey": 0.5090783675420177 + }, + "state": [ + 0.5090783675420177, + 2.678713095840633 + ], + "step": 581, + "time": 14.525 + }, + { + "observations": { + "first_integral": 0.308584259124872, + "predator": 2.655438205541513, + "prey": 0.509500779981929 + }, + "state": [ + 0.509500779981929, + 2.655438205541513 + ], + "step": 582, + "time": 14.55 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 2.632368717124047, + "prey": 0.5100417166115092 + }, + "state": [ + 0.5100417166115092, + 2.632368717124047 + ], + "step": 583, + "time": 14.575 + }, + { + "observations": { + "first_integral": 0.308584259124872, + "predator": 2.609503561799232, + "prey": 0.5107005078560832 + }, + "state": [ + 0.5107005078560832, + 2.609503561799232 + ], + "step": 584, + "time": 14.6 + }, + { + "observations": { + "first_integral": 0.308584259124872, + "predator": 2.5868416566457366, + "prey": 0.5114765664307661 + }, + "state": [ + 0.5114765664307661, + 2.5868416566457366 + ], + "step": 585, + "time": 14.625 + }, + { + "observations": { + "first_integral": 0.308584259124872, + "predator": 2.5643819057481743, + "prey": 0.5123693855680439 + }, + "state": [ + 0.5123693855680439, + 2.5643819057481743 + ], + "step": 586, + "time": 14.65 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 2.5421232012854595, + "prey": 0.5133785373532936 + }, + "state": [ + 0.5133785373532936, + 2.5421232012854595 + ], + "step": 587, + "time": 14.675 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 2.5200644245715043, + "prey": 0.5145036711640208 + }, + "state": [ + 0.5145036711640208, + 2.5200644245715043 + ], + "step": 588, + "time": 14.7 + }, + { + "observations": { + "first_integral": 0.308584259124872, + "predator": 2.498204447050413, + "prey": 0.5157445122088136 + }, + "state": [ + 0.5157445122088136, + 2.498204447050413 + ], + "step": 589, + "time": 14.725 + }, + { + "observations": { + "first_integral": 0.30858425912487186, + "predator": 2.476542131248273, + "prey": 0.517100860162219 + }, + "state": [ + 0.517100860162219, + 2.476542131248273 + ], + "step": 590, + "time": 14.75 + }, + { + "observations": { + "first_integral": 0.308584259124872, + "predator": 2.4550763316834643, + "prey": 0.5185725878919497 + }, + "state": [ + 0.5185725878919497, + 2.4550763316834643 + ], + "step": 591, + "time": 14.775 + }, + { + "observations": { + "first_integral": 0.308584259124872, + "predator": 2.4338058957374047, + "prey": 0.5201596402750123 + }, + "state": [ + 0.5201596402750123, + 2.4338058957374047 + ], + "step": 592, + "time": 14.8 + }, + { + "observations": { + "first_integral": 0.30858425912487186, + "predator": 2.4127296644875105, + "prey": 0.5218620330995329 + }, + "state": [ + 0.5218620330995329, + 2.4127296644875105 + ], + "step": 593, + "time": 14.825 + }, + { + "observations": { + "first_integral": 0.308584259124872, + "predator": 2.3918464735040756, + "prey": 0.523679852049225 + }, + "state": [ + 0.523679852049225, + 2.3918464735040756 + ], + "step": 594, + "time": 14.85 + }, + { + "observations": { + "first_integral": 0.30858425912487186, + "predator": 2.371155153612728, + "prey": 0.5256132517676031 + }, + "state": [ + 0.5256132517676031, + 2.371155153612728 + ], + "step": 595, + "time": 14.875 + }, + { + "observations": { + "first_integral": 0.30858425912487186, + "predator": 2.3506545316239955, + "prey": 0.5276624549992075 + }, + "state": [ + 0.5276624549992075, + 2.3506545316239955 + ], + "step": 596, + "time": 14.9 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 2.3303434310314826, + "prey": 0.5298277518052454 + }, + "state": [ + 0.5298277518052454, + 2.3303434310314826 + ], + "step": 597, + "time": 14.925 + }, + { + "observations": { + "first_integral": 0.308584259124872, + "predator": 2.310220672680093, + "prey": 0.5321094988511974 + }, + "state": [ + 0.5321094988511974, + 2.310220672680093 + ], + "step": 598, + "time": 14.95 + }, + { + "observations": { + "first_integral": 0.30858425912487186, + "predator": 2.2902850754056274, + "prey": 0.5345081187640707 + }, + "state": [ + 0.5345081187640707, + 2.2902850754056274 + ], + "step": 599, + "time": 14.975 + }, + { + "observations": { + "first_integral": 0.308584259124872, + "predator": 2.270535456647095, + "prey": 0.5370240995571041 + }, + "state": [ + 0.5370240995571041, + 2.270535456647095 + ], + "step": 600, + "time": 15.0 + }, + { + "observations": { + "first_integral": 0.30858425912487186, + "predator": 2.2509706330329413, + "prey": 0.5396579941198562 + }, + "state": [ + 0.5396579941198562, + 2.2509706330329413 + ], + "step": 601, + "time": 15.025 + }, + { + "observations": { + "first_integral": 0.30858425912487186, + "predator": 2.231589420942405, + "prey": 0.5424104197717158 + }, + "state": [ + 0.5424104197717158, + 2.231589420942405 + ], + "step": 602, + "time": 15.05 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 2.21239063704313, + "prey": 0.5452820578769875 + }, + "state": [ + 0.5452820578769875, + 2.21239063704313 + ], + "step": 603, + "time": 15.075 + }, + { + "observations": { + "first_integral": 0.30858425912487186, + "predator": 2.1933730988061093, + "prey": 0.5482736535198083 + }, + "state": [ + 0.5482736535198083, + 2.1933730988061093 + ], + "step": 604, + "time": 15.1 + }, + { + "observations": { + "first_integral": 0.308584259124872, + "predator": 2.1745356249990273, + "prey": 0.5513860152372455 + }, + "state": [ + 0.5513860152372455, + 2.1745356249990273 + ], + "step": 605, + "time": 15.125 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 2.1558770361589565, + "prey": 0.5546200148090287 + }, + "state": [ + 0.5546200148090287, + 2.1558770361589565 + ], + "step": 606, + "time": 15.15 + }, + { + "observations": { + "first_integral": 0.30858425912487186, + "predator": 2.1373961550453875, + "prey": 0.5579765871024489 + }, + "state": [ + 0.5579765871024489, + 2.1373961550453875 + ], + "step": 607, + "time": 15.175 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 2.1190918070744966, + "prey": 0.5614567299710498 + }, + "state": [ + 0.5614567299710498, + 2.1190918070744966 + ], + "step": 608, + "time": 15.2 + }, + { + "observations": { + "first_integral": 0.30858425912487186, + "predator": 2.1009628207355124, + "prey": 0.5650615042058125 + }, + "state": [ + 0.5650615042058125, + 2.1009628207355124 + ], + "step": 609, + "time": 15.225 + }, + { + "observations": { + "first_integral": 0.308584259124872, + "predator": 2.083008027990044, + "prey": 0.5687920335376145 + }, + "state": [ + 0.5687920335376145, + 2.083008027990044 + ], + "step": 610, + "time": 15.25 + }, + { + "observations": { + "first_integral": 0.308584259124872, + "predator": 2.0652262646551387, + "prey": 0.572649504689819 + }, + "state": [ + 0.572649504689819, + 2.0652262646551387 + ], + "step": 611, + "time": 15.275 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 2.047616370770864, + "prey": 0.5766351674799132 + }, + "state": [ + 0.5766351674799132, + 2.047616370770864 + ], + "step": 612, + "time": 15.3 + }, + { + "observations": { + "first_integral": 0.30858425912487186, + "predator": 2.0301771909531428, + "prey": 0.5807503349691898 + }, + "state": [ + 0.5807503349691898, + 2.0301771909531428 + ], + "step": 613, + "time": 15.325 + }, + { + "observations": { + "first_integral": 0.30858425912487186, + "predator": 2.012907574732539, + "prey": 0.5849963836595241 + }, + "state": [ + 0.5849963836595241, + 2.012907574732539 + ], + "step": 614, + "time": 15.35 + }, + { + "observations": { + "first_integral": 0.30858425912487186, + "predator": 1.9958063768797007, + "prey": 0.5893747537363545 + }, + "state": [ + 0.5893747537363545, + 1.9958063768797007 + ], + "step": 615, + "time": 15.375 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 1.9788724577180787, + "prey": 0.5938869493570438 + }, + "state": [ + 0.5938869493570438, + 1.9788724577180787 + ], + "step": 616, + "time": 15.4 + }, + { + "observations": { + "first_integral": 0.30858425912487164, + "predator": 1.9621046834245726, + "prey": 0.5985345389838391 + }, + "state": [ + 0.5985345389838391, + 1.9621046834245726 + ], + "step": 617, + "time": 15.425 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 1.9455019263187003, + "prey": 0.6033191557607097 + }, + "state": [ + 0.6033191557607097, + 1.9455019263187003 + ], + "step": 618, + "time": 15.45 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 1.9290630651408631, + "prey": 0.6082424979333857 + }, + "state": [ + 0.6082424979333857, + 1.9290630651408631 + ], + "step": 619, + "time": 15.475 + }, + { + "observations": { + "first_integral": 0.308584259124872, + "predator": 1.9127869853202843, + "prey": 0.6133063293119645 + }, + "state": [ + 0.6133063293119645, + 1.9127869853202843 + ], + "step": 620, + "time": 15.5 + }, + { + "observations": { + "first_integral": 0.308584259124872, + "predator": 1.8966725792331358, + "prey": 0.6185124797755068 + }, + "state": [ + 0.6185124797755068, + 1.8966725792331358 + ], + "step": 621, + "time": 15.525 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 1.880718746451385, + "prey": 0.623862845818071 + }, + "state": [ + 0.623862845818071, + 1.880718746451385 + ], + "step": 622, + "time": 15.55 + }, + { + "observations": { + "first_integral": 0.30858425912487186, + "predator": 1.864924393982862, + "prey": 0.6293593911356831 + }, + "state": [ + 0.6293593911356831, + 1.864924393982862 + ], + "step": 623, + "time": 15.575 + }, + { + "observations": { + "first_integral": 0.3085842591248721, + "predator": 1.8492884365030178, + "prey": 0.6350041472537767 + }, + "state": [ + 0.6350041472537767, + 1.8492884365030178 + ], + "step": 624, + "time": 15.6 + }, + { + "observations": { + "first_integral": 0.30858425912487186, + "predator": 1.83380979657886, + "prey": 0.6407992141946645 + }, + "state": [ + 0.6407992141946645, + 1.83380979657886 + ], + "step": 625, + "time": 15.625 + }, + { + "observations": { + "first_integral": 0.30858425912487186, + "predator": 1.8184874048854909, + "prey": 0.6467467611846449 + }, + "state": [ + 0.6467467611846449, + 1.8184874048854909 + ], + "step": 626, + "time": 15.65 + }, + { + "observations": { + "first_integral": 0.3085842591248721, + "predator": 1.8033202004157018, + "prey": 0.6528490274003749 + }, + "state": [ + 0.6528490274003749, + 1.8033202004157018 + ], + "step": 627, + "time": 15.675 + }, + { + "observations": { + "first_integral": 0.30858425912487186, + "predator": 1.78830713068304, + "prey": 0.6591083227541628 + }, + "state": [ + 0.6591083227541628, + 1.78830713068304 + ], + "step": 628, + "time": 15.7 + }, + { + "observations": { + "first_integral": 0.308584259124872, + "predator": 1.7734471519187471, + "prey": 0.6655270287178762 + }, + "state": [ + 0.6655270287178762, + 1.7734471519187471 + ], + "step": 629, + "time": 15.725 + }, + { + "observations": { + "first_integral": 0.308584259124872, + "predator": 1.758739229262987, + "prey": 0.6721075991851644 + }, + "state": [ + 0.6721075991851644, + 1.758739229262987 + ], + "step": 630, + "time": 15.75 + }, + { + "observations": { + "first_integral": 0.308584259124872, + "predator": 1.7441823369507201, + "prey": 0.6788525613717417 + }, + "state": [ + 0.6788525613717417, + 1.7441823369507201 + ], + "step": 631, + "time": 15.775 + }, + { + "observations": { + "first_integral": 0.308584259124872, + "predator": 1.729775458492617, + "prey": 0.6857645167534792 + }, + "state": [ + 0.6857645167534792, + 1.729775458492617 + ], + "step": 632, + "time": 15.8 + }, + { + "observations": { + "first_integral": 0.30858425912487186, + "predator": 1.7155175868513686, + "prey": 0.692846142042084 + }, + "state": [ + 0.692846142042084, + 1.7155175868513686 + ], + "step": 633, + "time": 15.825 + }, + { + "observations": { + "first_integral": 0.30858425912487186, + "predator": 1.7014077246137416, + "prey": 0.7001001901981592 + }, + "state": [ + 0.7001001901981592, + 1.7014077246137416 + ], + "step": 634, + "time": 15.85 + }, + { + "observations": { + "first_integral": 0.308584259124872, + "predator": 1.6874448841587366, + "prey": 0.7075294914814502 + }, + "state": [ + 0.7075294914814502, + 1.6874448841587366 + ], + "step": 635, + "time": 15.875 + }, + { + "observations": { + "first_integral": 0.30858425912487186, + "predator": 1.6736280878221699, + "prey": 0.7151369545381057 + }, + "state": [ + 0.7151369545381057, + 1.6736280878221699 + ], + "step": 636, + "time": 15.9 + }, + { + "observations": { + "first_integral": 0.308584259124872, + "predator": 1.6599563680580187, + "prey": 0.7229255675247872 + }, + "state": [ + 0.7229255675247872, + 1.6599563680580187 + ], + "step": 637, + "time": 15.925 + }, + { + "observations": { + "first_integral": 0.308584259124872, + "predator": 1.64642876759685, + "prey": 0.7308983992694728 + }, + "state": [ + 0.7308983992694728, + 1.64642876759685 + ], + "step": 638, + "time": 15.95 + }, + { + "observations": { + "first_integral": 0.308584259124872, + "predator": 1.6330443396016396, + "prey": 0.7390586004688142 + }, + "state": [ + 0.7390586004688142, + 1.6330443396016396 + ], + "step": 639, + "time": 15.975 + }, + { + "observations": { + "first_integral": 0.30858425912487186, + "predator": 1.6198021478213105, + "prey": 0.7474094049219038 + }, + "state": [ + 0.7474094049219038, + 1.6198021478213105 + ], + "step": 640, + "time": 16.0 + }, + { + "observations": { + "first_integral": 0.308584259124872, + "predator": 1.6067012667422724, + "prey": 0.7559541308003274 + }, + "state": [ + 0.7559541308003274, + 1.6067012667422724 + ], + "step": 641, + "time": 16.025 + }, + { + "observations": { + "first_integral": 0.3085842591248721, + "predator": 1.5937407817382707, + "prey": 0.7646961819543738 + }, + "state": [ + 0.7646961819543738, + 1.5937407817382707 + ], + "step": 642, + "time": 16.05 + }, + { + "observations": { + "first_integral": 0.308584259124872, + "predator": 1.580919789218857, + "prey": 0.7736390492552625 + }, + "state": [ + 0.7736390492552625, + 1.580919789218857 + ], + "step": 643, + "time": 16.075 + }, + { + "observations": { + "first_integral": 0.308584259124872, + "predator": 1.5682373967767298, + "prey": 0.7827863119732884 + }, + "state": [ + 0.7827863119732884, + 1.5682373967767298 + ], + "step": 644, + "time": 16.1 + }, + { + "observations": { + "first_integral": 0.3085842591248721, + "predator": 1.5556927233342916, + "prey": 0.7921416391917216 + }, + "state": [ + 0.7921416391917216, + 1.5556927233342916 + ], + "step": 645, + "time": 16.125 + }, + { + "observations": { + "first_integral": 0.30858425912487214, + "predator": 1.5432848992896484, + "prey": 0.8017087912563655 + }, + "state": [ + 0.8017087912563655, + 1.5432848992896484 + ], + "step": 646, + "time": 16.15 + }, + { + "observations": { + "first_integral": 0.3085842591248719, + "predator": 1.53101306666238, + "prey": 0.8114916212606039 + }, + "state": [ + 0.8114916212606039, + 1.53101306666238 + ], + "step": 647, + "time": 16.175 + }, + { + "observations": { + "first_integral": 0.3085842591248719, + "predator": 1.518876379239346, + "prey": 0.8214940765658028 + }, + "state": [ + 0.8214940765658028, + 1.518876379239346 + ], + "step": 648, + "time": 16.2 + }, + { + "observations": { + "first_integral": 0.30858425912487203, + "predator": 1.5068740027207903, + "prey": 0.8317202003569233 + }, + "state": [ + 0.8317202003569233, + 1.5068740027207903 + ], + "step": 649, + "time": 16.225 + }, + { + "observations": { + "first_integral": 0.308584259124872, + "predator": 1.4950051148670647, + "prey": 0.8421741332331418 + }, + "state": [ + 0.8421741332331418, + 1.4950051148670647 + ], + "step": 650, + "time": 16.25 + }, + { + "observations": { + "first_integral": 0.30858425912487203, + "predator": 1.4832689056462, + "prey": 0.8528601148333341 + }, + "state": [ + 0.8528601148333341, + 1.4832689056462 + ], + "step": 651, + "time": 16.275 + }, + { + "observations": { + "first_integral": 0.3085842591248719, + "predator": 1.4716645773826496, + "prey": 0.8637824854961874 + }, + "state": [ + 0.8637824854961874, + 1.4716645773826496 + ], + "step": 652, + "time": 16.3 + }, + { + "observations": { + "first_integral": 0.30858425912487203, + "predator": 1.46019134490746, + "prey": 0.8749456879547318 + }, + "state": [ + 0.8749456879547318, + 1.46019134490746 + ], + "step": 653, + "time": 16.325 + }, + { + "observations": { + "first_integral": 0.3085842591248721, + "predator": 1.4488484357101443, + "prey": 0.886354269065065 + }, + "state": [ + 0.886354269065065, + 1.4488484357101443 + ], + "step": 654, + "time": 16.35 + }, + { + "observations": { + "first_integral": 0.3085842591248721, + "predator": 1.437635090092571, + "prey": 0.898012881568961 + }, + "state": [ + 0.898012881568961, + 1.437635090092571 + ], + "step": 655, + "time": 16.375 + }, + { + "observations": { + "first_integral": 0.30858425912487203, + "predator": 1.4265505613251117, + "prey": 0.9099262858901169 + }, + "state": [ + 0.9099262858901169, + 1.4265505613251117 + ], + "step": 656, + "time": 16.4 + }, + { + "observations": { + "first_integral": 0.30858425912487203, + "predator": 1.4155941158053729, + "prey": 0.9220993519636704 + }, + "state": [ + 0.9220993519636704, + 1.4155941158053729 + ], + "step": 657, + "time": 16.425 + }, + { + "observations": { + "first_integral": 0.308584259124872, + "predator": 1.404765033219784, + "prey": 0.9345370610986429 + }, + "state": [ + 0.9345370610986429, + 1.404765033219784 + ], + "step": 658, + "time": 16.45 + }, + { + "observations": { + "first_integral": 0.308584259124872, + "predator": 1.394062606708325, + "prey": 0.947244507872932 + }, + "state": [ + 0.947244507872932, + 1.394062606708325 + ], + "step": 659, + "time": 16.475 + }, + { + "observations": { + "first_integral": 0.308584259124872, + "predator": 1.3834861430327234, + "prey": 0.9602269020603739 + }, + "state": [ + 0.9602269020603739, + 1.3834861430327234 + ], + "step": 660, + "time": 16.5 + }, + { + "observations": { + "first_integral": 0.30858425912487186, + "predator": 1.373034962748386, + "prey": 0.9734895705894466 + }, + "state": [ + 0.9734895705894466, + 1.373034962748386 + ], + "step": 661, + "time": 16.525 + }, + { + "observations": { + "first_integral": 0.30858425912487203, + "predator": 1.3627084003804038, + "prey": 0.9870379595330488 + }, + "state": [ + 0.9870379595330488, + 1.3627084003804038 + ], + "step": 662, + "time": 16.55 + }, + { + "observations": { + "first_integral": 0.3085842591248721, + "predator": 1.3525058046039333, + "prey": 1.0008776361287892 + }, + "state": [ + 1.0008776361287892, + 1.3525058046039333 + ], + "step": 663, + "time": 16.575 + }, + { + "observations": { + "first_integral": 0.308584259124872, + "predator": 1.3424265384292564, + "prey": 1.015014290829181 + }, + "state": [ + 1.015014290829181, + 1.3424265384292564 + ], + "step": 664, + "time": 16.6 + }, + { + "observations": { + "first_integral": 0.30858425912487203, + "predator": 1.332469979391885, + "prey": 1.0294537393810013 + }, + "state": [ + 1.0294537393810013, + 1.332469979391885 + ], + "step": 665, + "time": 16.625 + }, + { + "observations": { + "first_integral": 0.3085842591248721, + "predator": 1.3226355197480002, + "prey": 1.0442019249331205 + }, + "state": [ + 1.0442019249331205, + 1.3226355197480002 + ], + "step": 666, + "time": 16.65 + }, + { + "observations": { + "first_integral": 0.308584259124872, + "predator": 1.3129225666756021, + "prey": 1.0592649201719389 + }, + "state": [ + 1.0592649201719389, + 1.3129225666756021 + ], + "step": 667, + "time": 16.675 + }, + { + "observations": { + "first_integral": 0.30858425912487203, + "predator": 1.3033305424817108, + "prey": 1.0746489294835495 + }, + "state": [ + 1.0746489294835495, + 1.3033305424817108 + ], + "step": 668, + "time": 16.7 + }, + { + "observations": { + "first_integral": 0.30858425912487203, + "predator": 1.2938588848159618, + "prey": 1.0903602911416899 + }, + "state": [ + 1.0903602911416899, + 1.2938588848159618 + ], + "step": 669, + "time": 16.725 + }, + { + "observations": { + "first_integral": 0.3085842591248719, + "predator": 1.2845070468910034, + "prey": 1.1064054795203706 + }, + "state": [ + 1.1064054795203706, + 1.2845070468910034 + ], + "step": 670, + "time": 16.75 + }, + { + "observations": { + "first_integral": 0.308584259124872, + "predator": 1.2752744977100319, + "prey": 1.1227911073301142 + }, + "state": [ + 1.1227911073301142, + 1.2752744977100319 + ], + "step": 671, + "time": 16.775 + }, + { + "observations": { + "first_integral": 0.308584259124872, + "predator": 1.2661607223018956, + "prey": 1.1395239278765115 + }, + "state": [ + 1.1395239278765115, + 1.2661607223018956 + ], + "step": 672, + "time": 16.8 + }, + { + "observations": { + "first_integral": 0.3085842591248719, + "predator": 1.2571652219641558, + "prey": 1.1566108373397903 + }, + "state": [ + 1.1566108373397903, + 1.2571652219641558 + ], + "step": 673, + "time": 16.825 + }, + { + "observations": { + "first_integral": 0.308584259124872, + "predator": 1.2482875145145091, + "prey": 1.1740588770739795 + }, + "state": [ + 1.1740588770739795, + 1.2482875145145091 + ], + "step": 674, + "time": 16.85 + }, + { + "observations": { + "first_integral": 0.308584259124872, + "predator": 1.2395271345510341, + "prey": 1.1918752359240632 + }, + "state": [ + 1.1918752359240632, + 1.2395271345510341 + ], + "step": 675, + "time": 16.875 + }, + { + "observations": { + "first_integral": 0.308584259124872, + "predator": 1.2308836337216715, + "prey": 1.210067252559522 + }, + "state": [ + 1.210067252559522, + 1.2308836337216715 + ], + "step": 676, + "time": 16.9 + }, + { + "observations": { + "first_integral": 0.30858425912487186, + "predator": 1.2223565810034276, + "prey": 1.228642417822411 + }, + "state": [ + 1.228642417822411, + 1.2223565810034276 + ], + "step": 677, + "time": 16.925 + }, + { + "observations": { + "first_integral": 0.3085842591248719, + "predator": 1.2139455629917664, + "prey": 1.2476083770880586 + }, + "state": [ + 1.2476083770880586, + 1.2139455629917664 + ], + "step": 678, + "time": 16.95 + }, + { + "observations": { + "first_integral": 0.30858425912487186, + "predator": 1.2056501842006726, + "prey": 1.266972932636348 + }, + "state": [ + 1.266972932636348, + 1.2056501842006726 + ], + "step": 679, + "time": 16.975 + }, + { + "observations": { + "first_integral": 0.3085842591248719, + "predator": 1.1974700673739267, + "prey": 1.2867440460312776 + }, + "state": [ + 1.2867440460312776, + 1.1974700673739267 + ], + "step": 680, + "time": 17.0 + }, + { + "observations": { + "first_integral": 0.3085842591248719, + "predator": 1.1894048538080901, + "prey": 1.3069298405065073 + }, + "state": [ + 1.3069298405065073, + 1.1894048538080901 + ], + "step": 681, + "time": 17.025 + }, + { + "observations": { + "first_integral": 0.308584259124872, + "predator": 1.1814542036877764, + "prey": 1.327538603354253 + }, + "state": [ + 1.327538603354253, + 1.1814542036877764 + ], + "step": 682, + "time": 17.05 + }, + { + "observations": { + "first_integral": 0.308584259124872, + "predator": 1.1736177964337757, + "prey": 1.34857878831483 + }, + "state": [ + 1.34857878831483, + 1.1736177964337757 + ], + "step": 683, + "time": 17.075 + }, + { + "observations": { + "first_integral": 0.308584259124872, + "predator": 1.1658953310646107, + "prey": 1.3700590179639358 + }, + "state": [ + 1.3700590179639358, + 1.1658953310646107 + ], + "step": 684, + "time": 17.1 + }, + { + "observations": { + "first_integral": 0.308584259124872, + "predator": 1.1582865265721738, + "prey": 1.3919880860944822 + }, + "state": [ + 1.3919880860944822, + 1.1582865265721738 + ], + "step": 685, + "time": 17.125 + }, + { + "observations": { + "first_integral": 0.3085842591248721, + "predator": 1.150791122312055, + "prey": 1.41437496008971 + }, + "state": [ + 1.41437496008971, + 1.150791122312055 + ], + "step": 686, + "time": 17.15 + }, + { + "observations": { + "first_integral": 0.3085842591248719, + "predator": 1.1434088784092566, + "prey": 1.4372287832839514 + }, + "state": [ + 1.4372287832839514, + 1.1434088784092566 + ], + "step": 687, + "time": 17.175 + }, + { + "observations": { + "first_integral": 0.3085842591248719, + "predator": 1.1361395761799817, + "prey": 1.460558877307255 + }, + "state": [ + 1.460558877307255, + 1.1361395761799817 + ], + "step": 688, + "time": 17.2 + }, + { + "observations": { + "first_integral": 0.3085842591248721, + "predator": 1.1289830185702112, + "prey": 1.484374744409855 + }, + "state": [ + 1.484374744409855, + 1.1289830185702112 + ], + "step": 689, + "time": 17.225 + }, + { + "observations": { + "first_integral": 0.308584259124872, + "predator": 1.1219390306118542, + "prey": 1.508686069762064 + }, + "state": [ + 1.508686069762064, + 1.1219390306118542 + ], + "step": 690, + "time": 17.25 + }, + { + "observations": { + "first_integral": 0.30858425912487203, + "predator": 1.1150074598972235, + "prey": 1.5335027237250953 + }, + "state": [ + 1.5335027237250953, + 1.1150074598972235 + ], + "step": 691, + "time": 17.275 + }, + { + "observations": { + "first_integral": 0.308584259124872, + "predator": 1.1081881770726911, + "prey": 1.558834764087812 + }, + "state": [ + 1.558834764087812, + 1.1081881770726911 + ], + "step": 692, + "time": 17.3 + }, + { + "observations": { + "first_integral": 0.308584259124872, + "predator": 1.1014810763523648, + "prey": 1.5846924382642247 + }, + "state": [ + 1.5846924382642247, + 1.1014810763523648 + ], + "step": 693, + "time": 17.325 + }, + { + "observations": { + "first_integral": 0.308584259124872, + "predator": 1.0948860760526726, + "prey": 1.6110861854462208 + }, + "state": [ + 1.6110861854462208, + 1.0948860760526726 + ], + "step": 694, + "time": 17.35 + }, + { + "observations": { + "first_integral": 0.3085842591248721, + "predator": 1.0884031191488146, + "prey": 1.6380266387055318 + }, + "state": [ + 1.6380266387055318, + 1.0884031191488146 + ], + "step": 695, + "time": 17.375 + }, + { + "observations": { + "first_integral": 0.3085842591248719, + "predator": 1.082032173854024, + "prey": 1.6655246270387811 + }, + "state": [ + 1.6655246270387811, + 1.082032173854024 + ], + "step": 696, + "time": 17.4 + }, + { + "observations": { + "first_integral": 0.30858425912487186, + "predator": 1.0757732342226807, + "prey": 1.6935911773488592 + }, + "state": [ + 1.6935911773488592, + 1.0757732342226807 + ], + "step": 697, + "time": 17.425 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 1.0696263207783314, + "prey": 1.722237516355586 + }, + "state": [ + 1.722237516355586, + 1.0696263207783314 + ], + "step": 698, + "time": 17.45 + }, + { + "observations": { + "first_integral": 0.30858425912487186, + "predator": 1.0635914811677147, + "prey": 1.7514750724282058 + }, + "state": [ + 1.7514750724282058, + 1.0635914811677147 + ], + "step": 699, + "time": 17.475 + }, + { + "observations": { + "first_integral": 0.30858425912487186, + "predator": 1.0576687908419757, + "prey": 1.7813154773316406 + }, + "state": [ + 1.7813154773316406, + 1.0576687908419757 + ], + "step": 700, + "time": 17.5 + }, + { + "observations": { + "first_integral": 0.308584259124872, + "predator": 1.0518583537662545, + "prey": 1.8117705678781917 + }, + "state": [ + 1.8117705678781917, + 1.0518583537662545 + ], + "step": 701, + "time": 17.525 + }, + { + "observations": { + "first_integral": 0.308584259124872, + "predator": 1.0461603031589375, + "prey": 1.842852387475621 + }, + "state": [ + 1.842852387475621, + 1.0461603031589375 + ], + "step": 702, + "time": 17.55 + }, + { + "observations": { + "first_integral": 0.3085842591248719, + "predator": 1.040574802261889, + "prey": 1.8745731875621732 + }, + "state": [ + 1.8745731875621732, + 1.040574802261889 + ], + "step": 703, + "time": 17.575 + }, + { + "observations": { + "first_integral": 0.3085842591248719, + "predator": 1.0351020451430377, + "prey": 1.9069454289185257 + }, + "state": [ + 1.9069454289185257, + 1.0351020451430377 + ], + "step": 704, + "time": 17.6 + }, + { + "observations": { + "first_integral": 0.30858425912487203, + "predator": 1.0297422575327901, + "prey": 1.9399817828459078 + }, + "state": [ + 1.9399817828459078, + 1.0297422575327901 + ], + "step": 705, + "time": 17.625 + }, + { + "observations": { + "first_integral": 0.30858425912487186, + "predator": 1.02449569769576, + "prey": 1.9736951321992449 + }, + "state": [ + 1.9736951321992449, + 1.02449569769576 + ], + "step": 706, + "time": 17.65 + }, + { + "observations": { + "first_integral": 0.308584259124872, + "predator": 1.0193626573394186, + "prey": 2.008098572263282 + }, + "state": [ + 2.008098572263282, + 1.0193626573394186 + ], + "step": 707, + "time": 17.675 + }, + { + "observations": { + "first_integral": 0.3085842591248718, + "predator": 1.01434346256132, + "prey": 2.0432054114590934 + }, + "state": [ + 2.0432054114590934, + 1.01434346256132 + ], + "step": 708, + "time": 17.7 + }, + { + "observations": { + "first_integral": 0.3085842591248719, + "predator": 1.0094384748366239, + "prey": 2.079029171867664 + }, + "state": [ + 2.079029171867664, + 1.0094384748366239 + ], + "step": 709, + "time": 17.725 + }, + { + "observations": { + "first_integral": 0.30858425912487186, + "predator": 1.0046480920477576, + "prey": 2.115583589556285 + }, + "state": [ + 2.115583589556285, + 1.0046480920477576 + ], + "step": 710, + "time": 17.75 + }, + { + "observations": { + "first_integral": 0.30858425912487186, + "predator": 0.9999727495580891, + "prey": 2.152882614692954 + }, + "state": [ + 2.152882614692954, + 0.9999727495580891 + ], + "step": 711, + "time": 17.775 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 0.9954129213316244, + "prey": 2.1909404114328583 + }, + "state": [ + 2.1909404114328583, + 0.9954129213316244 + ], + "step": 712, + "time": 17.8 + }, + { + "observations": { + "first_integral": 0.3085842591248718, + "predator": 0.9909691211008016, + "prey": 2.229771357560276 + }, + "state": [ + 2.229771357560276, + 0.9909691211008016 + ], + "step": 713, + "time": 17.825 + }, + { + "observations": { + "first_integral": 0.30858425912487186, + "predator": 0.9866419035845564, + "prey": 2.2693900438682992 + }, + "state": [ + 2.2693900438682992, + 0.9866419035845564 + ], + "step": 714, + "time": 17.85 + }, + { + "observations": { + "first_integral": 0.30858425912487186, + "predator": 0.9824318657589576, + "prey": 2.3098112732575924 + }, + "state": [ + 2.3098112732575924, + 0.9824318657589576 + ], + "step": 715, + "time": 17.875 + }, + { + "observations": { + "first_integral": 0.3085842591248718, + "predator": 0.978339648182782, + "prey": 2.3510500595346486 + }, + "state": [ + 2.3510500595346486, + 0.978339648182782 + ], + "step": 716, + "time": 17.9 + }, + { + "observations": { + "first_integral": 0.3085842591248718, + "predator": 0.9743659363805475, + "prey": 2.3931216258886043 + }, + "state": [ + 2.3931216258886043, + 0.9743659363805475 + ], + "step": 717, + "time": 17.925 + }, + { + "observations": { + "first_integral": 0.3085842591248718, + "predator": 0.9705114622856161, + "prey": 2.4360414030247 + }, + "state": [ + 2.4360414030247, + 0.9705114622856161 + ], + "step": 718, + "time": 17.95 + }, + { + "observations": { + "first_integral": 0.3085842591248718, + "predator": 0.9667770057461027, + "prey": 2.479825026931269 + }, + "state": [ + 2.479825026931269, + 0.9667770057461027 + ], + "step": 719, + "time": 17.975 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 0.963163396096476, + "prey": 2.5244883362556325 + }, + "state": [ + 2.5244883362556325, + 0.963163396096476 + ], + "step": 720, + "time": 18.0 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 0.9596715137978397, + "prey": 2.5700473692632766 + }, + "state": [ + 2.5700473692632766, + 0.9596715137978397 + ], + "step": 721, + "time": 18.025 + }, + { + "observations": { + "first_integral": 0.3085842591248718, + "predator": 0.9563022921500529, + "prey": 2.616518360352922 + }, + "state": [ + 2.616518360352922, + 0.9563022921500529 + ], + "step": 722, + "time": 18.05 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 0.9530567190789804, + "prey": 2.6639177360988406 + }, + "state": [ + 2.6639177360988406, + 0.9530567190789804 + ], + "step": 723, + "time": 18.075 + }, + { + "observations": { + "first_integral": 0.3085842591248718, + "predator": 0.9499358390023125, + "prey": 2.7122621107901943 + }, + "state": [ + 2.7122621107901943, + 0.9499358390023125 + ], + "step": 724, + "time": 18.1 + }, + { + "observations": { + "first_integral": 0.3085842591248718, + "predator": 0.9469407547775791, + "prey": 2.761568281435326 + }, + "state": [ + 2.761568281435326, + 0.9469407547775791 + ], + "step": 725, + "time": 18.125 + }, + { + "observations": { + "first_integral": 0.3085842591248717, + "predator": 0.9440726297361163, + "prey": 2.811853222197555 + }, + "state": [ + 2.811853222197555, + 0.9440726297361163 + ], + "step": 726, + "time": 18.15 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 0.9413326898069524, + "prey": 2.863134078226873 + }, + "state": [ + 2.863134078226873, + 0.9413326898069524 + ], + "step": 727, + "time": 18.175 + }, + { + "observations": { + "first_integral": 0.30858425912487186, + "predator": 0.9387222257347424, + "prey": 2.9154281588502546 + }, + "state": [ + 2.9154281588502546, + 0.9387222257347424 + ], + "step": 728, + "time": 18.2 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 0.9362425953960721, + "prey": 2.968752930081348 + }, + "state": [ + 2.968752930081348, + 0.9362425953960721 + ], + "step": 729, + "time": 18.225 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 0.9338952262186678, + "prey": 3.023126006407943 + }, + "state": [ + 3.023126006407943, + 0.9338952262186678 + ], + "step": 730, + "time": 18.25 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 0.9316816177082299, + "prey": 3.0785651418138604 + }, + "state": [ + 3.0785651418138604, + 0.9316816177082299 + ], + "step": 731, + "time": 18.275 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 0.9296033440878475, + "prey": 3.135088219989197 + }, + "state": [ + 3.135088219989197, + 0.9296033440878475 + ], + "step": 732, + "time": 18.3 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 0.927662057055159, + "prey": 3.192713243680745 + }, + "state": [ + 3.192713243680745, + 0.927662057055159 + ], + "step": 733, + "time": 18.325 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 0.9258594886626598, + "prey": 3.251458323131892 + }, + "state": [ + 3.251458323131892, + 0.9258594886626598 + ], + "step": 734, + "time": 18.35 + }, + { + "observations": { + "first_integral": 0.3085842591248717, + "predator": 0.9241974543268057, + "prey": 3.3113416635584407 + }, + "state": [ + 3.3113416635584407, + 0.9241974543268057 + ], + "step": 735, + "time": 18.375 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 0.9226778559717981, + "prey": 3.372381551604449 + }, + "state": [ + 3.372381551604449, + 0.9226778559717981 + ], + "step": 736, + "time": 18.4 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 0.9213026853142083, + "prey": 3.434596340718947 + }, + "state": [ + 3.434596340718947, + 0.9213026853142083 + ], + "step": 737, + "time": 18.425 + }, + { + "observations": { + "first_integral": 0.30858425912487186, + "predator": 0.9200740272948542, + "prey": 3.4980044353916324 + }, + "state": [ + 3.4980044353916324, + 0.9200740272948542 + ], + "step": 738, + "time": 18.45 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 0.9189940636646229, + "prey": 3.5626242741826024 + }, + "state": [ + 3.5626242741826024, + 0.9189940636646229 + ], + "step": 739, + "time": 18.475 + }, + { + "observations": { + "first_integral": 0.30858425912487186, + "predator": 0.9180650767312171, + "prey": 3.6284743114775733 + }, + "state": [ + 3.6284743114775733, + 0.9180650767312171 + ], + "step": 740, + "time": 18.5 + }, + { + "observations": { + "first_integral": 0.3085842591248718, + "predator": 0.9172894532740913, + "prey": 3.695572997897206 + }, + "state": [ + 3.695572997897206, + 0.9172894532740913 + ], + "step": 741, + "time": 18.525 + }, + { + "observations": { + "first_integral": 0.30858425912487186, + "predator": 0.9166696886351446, + "prey": 3.763938759285115 + }, + "state": [ + 3.763938759285115, + 0.9166696886351446 + ], + "step": 742, + "time": 18.55 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 0.9162083909930424, + "prey": 3.833589974195815 + }, + "state": [ + 3.833589974195815, + 0.9162083909930424 + ], + "step": 743, + "time": 18.575 + }, + { + "observations": { + "first_integral": 0.3085842591248719, + "predator": 0.9159082858293486, + "prey": 3.90454494980009 + }, + "state": [ + 3.90454494980009, + 0.9159082858293486 + ], + "step": 744, + "time": 18.6 + }, + { + "observations": { + "first_integral": 0.30858425912487186, + "predator": 0.9157722205949737, + "prey": 3.9768218961209847 + }, + "state": [ + 3.9768218961209847, + 0.9157722205949737 + ], + "step": 745, + "time": 18.625 + }, + { + "observations": { + "first_integral": 0.3085842591248718, + "predator": 0.9158031695857569, + "prey": 4.050438898510089 + }, + "state": [ + 4.050438898510089, + 0.9158031695857569 + ], + "step": 746, + "time": 18.65 + }, + { + "observations": { + "first_integral": 0.3085842591248717, + "predator": 0.9160042390363347, + "prey": 4.125413888269059 + }, + "state": [ + 4.125413888269059, + 0.9160042390363347 + ], + "step": 747, + "time": 18.675 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 0.9163786724417653, + "prey": 4.201764611317267 + }, + "state": [ + 4.201764611317267, + 0.9163786724417653 + ], + "step": 748, + "time": 18.7 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 0.9169298561167154, + "prey": 4.279508594802061 + }, + "state": [ + 4.279508594802061, + 0.9169298561167154 + ], + "step": 749, + "time": 18.725 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 0.9176613250023286, + "prey": 4.358663111543087 + }, + "state": [ + 4.358663111543087, + 0.9176613250023286 + ], + "step": 750, + "time": 18.75 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 0.9185767687312264, + "prey": 4.439245142198016 + }, + "state": [ + 4.439245142198016, + 0.9185767687312264 + ], + "step": 751, + "time": 18.775 + }, + { + "observations": { + "first_integral": 0.30858425912487186, + "predator": 0.9196800379613952, + "prey": 4.521271335031524 + }, + "state": [ + 4.521271335031524, + 0.9196800379613952 + ], + "step": 752, + "time": 18.8 + }, + { + "observations": { + "first_integral": 0.3085842591248718, + "predator": 0.9209751509900231, + "prey": 4.604757963164879 + }, + "state": [ + 4.604757963164879, + 0.9209751509900231 + ], + "step": 753, + "time": 18.825 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 0.922466300658633, + "prey": 4.689720879178353 + }, + "state": [ + 4.689720879178353, + 0.922466300658633 + ], + "step": 754, + "time": 18.85 + }, + { + "observations": { + "first_integral": 0.3085842591248717, + "predator": 0.9241578615611307, + "prey": 4.776175466933241 + }, + "state": [ + 4.776175466933241, + 0.9241578615611307 + ], + "step": 755, + "time": 18.875 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 0.9260543975666355, + "prey": 4.864136590475638 + }, + "state": [ + 4.864136590475638, + 0.9260543975666355 + ], + "step": 756, + "time": 18.9 + }, + { + "observations": { + "first_integral": 0.3085842591248718, + "predator": 0.9281606696691741, + "prey": 4.953618539878344 + }, + "state": [ + 4.953618539878344, + 0.9281606696691741 + ], + "step": 757, + "time": 18.925 + }, + { + "observations": { + "first_integral": 0.30858425912487186, + "predator": 0.9304816441765025, + "prey": 5.044634973872338 + }, + "state": [ + 5.044634973872338, + 0.9304816441765025 + ], + "step": 758, + "time": 18.95 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 0.9330225012504713, + "prey": 5.137198859114186 + }, + "state": [ + 5.137198859114186, + 0.9330225012504713 + ], + "step": 759, + "time": 18.975 + }, + { + "observations": { + "first_integral": 0.3085842591248718, + "predator": 0.9357886438114192, + "prey": 5.231322405930014 + }, + "state": [ + 5.231322405930014, + 0.9357886438114192 + ], + "step": 760, + "time": 19.0 + }, + { + "observations": { + "first_integral": 0.3085842591248718, + "predator": 0.9387857068191392, + "prey": 5.327017000372416 + }, + "state": [ + 5.327017000372416, + 0.9387857068191392 + ], + "step": 761, + "time": 19.025 + }, + { + "observations": { + "first_integral": 0.3085842591248718, + "predator": 0.9420195669428927, + "prey": 5.4242931324209485 + }, + "state": [ + 5.4242931324209485, + 0.9420195669428927 + ], + "step": 762, + "time": 19.05 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 0.9454963526328515, + "prey": 5.523160320152644 + }, + "state": [ + 5.523160320152644, + 0.9454963526328515 + ], + "step": 763, + "time": 19.075 + }, + { + "observations": { + "first_integral": 0.3085842591248718, + "predator": 0.9492224546051242, + "prey": 5.623627029704492 + }, + "state": [ + 5.623627029704492, + 0.9492224546051242 + ], + "step": 764, + "time": 19.1 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 0.9532045367521897, + "prey": 5.72570059084521 + }, + "state": [ + 5.72570059084521, + 0.9532045367521897 + ], + "step": 765, + "time": 19.125 + }, + { + "observations": { + "first_integral": 0.3085842591248719, + "predator": 0.9574495474901321, + "prey": 5.829387107970637 + }, + "state": [ + 5.829387107970637, + 0.9574495474901321 + ], + "step": 766, + "time": 19.15 + }, + { + "observations": { + "first_integral": 0.3085842591248718, + "predator": 0.961964731553458, + "prey": 5.934691366333153 + }, + "state": [ + 5.934691366333153, + 0.961964731553458 + ], + "step": 767, + "time": 19.175 + }, + { + "observations": { + "first_integral": 0.308584259124872, + "predator": 0.9667576422475246, + "prey": 6.041616733313258 + }, + "state": [ + 6.041616733313258, + 0.9667576422475246 + ], + "step": 768, + "time": 19.2 + }, + { + "observations": { + "first_integral": 0.30858425912487186, + "predator": 0.9718361541676788, + "prey": 6.150165054539732 + }, + "state": [ + 6.150165054539732, + 0.9718361541676788 + ], + "step": 769, + "time": 19.225 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 0.9772084763930065, + "prey": 6.260336544663017 + }, + "state": [ + 6.260336544663017, + 0.9772084763930065 + ], + "step": 770, + "time": 19.25 + }, + { + "observations": { + "first_integral": 0.30858425912487186, + "predator": 0.9828831661612492, + "prey": 6.372129672587431 + }, + "state": [ + 6.372129672587431, + 0.9828831661612492 + ], + "step": 771, + "time": 19.275 + }, + { + "observations": { + "first_integral": 0.3085842591248719, + "predator": 0.9888691430297131, + "prey": 6.485541040967948 + }, + "state": [ + 6.485541040967948, + 0.9888691430297131 + ], + "step": 772, + "time": 19.3 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 0.9951757035250599, + "prey": 6.6005652597803754 + }, + "state": [ + 6.6005652597803754, + 0.9951757035250599 + ], + "step": 773, + "time": 19.325 + }, + { + "observations": { + "first_integral": 0.3085842591248718, + "predator": 1.0018125362825283, + "prey": 6.717194813777726 + }, + "state": [ + 6.717194813777726, + 1.0018125362825283 + ], + "step": 774, + "time": 19.35 + }, + { + "observations": { + "first_integral": 0.3085842591248717, + "predator": 1.0087897376724095, + "prey": 6.835419923650888 + }, + "state": [ + 6.835419923650888, + 1.0087897376724095 + ], + "step": 775, + "time": 19.375 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 1.0161178279084866, + "prey": 6.955228400720328 + }, + "state": [ + 6.955228400720328, + 1.0161178279084866 + ], + "step": 776, + "time": 19.4 + }, + { + "observations": { + "first_integral": 0.30858425912487164, + "predator": 1.0238077676294841, + "prey": 7.076605494994947 + }, + "state": [ + 7.076605494994947, + 1.0238077676294841 + ], + "step": 777, + "time": 19.425 + }, + { + "observations": { + "first_integral": 0.30858425912487164, + "predator": 1.0318709749404222, + "prey": 7.19953373644743 + }, + "state": [ + 7.19953373644743, + 1.0318709749404222 + ], + "step": 778, + "time": 19.45 + }, + { + "observations": { + "first_integral": 0.30858425912487164, + "predator": 1.0403193428960238, + "prey": 7.3239927693713245 + }, + "state": [ + 7.3239927693713245, + 1.0403193428960238 + ], + "step": 779, + "time": 19.475 + }, + { + "observations": { + "first_integral": 0.30858425912487186, + "predator": 1.0491652574028303, + "prey": 7.449959179703435 + }, + "state": [ + 7.449959179703435, + 1.0491652574028303 + ], + "step": 780, + "time": 19.5 + }, + { + "observations": { + "first_integral": 0.3085842591248716, + "predator": 1.0584216155106028, + "prey": 7.577406315219046 + }, + "state": [ + 7.577406315219046, + 1.0584216155106028 + ], + "step": 781, + "time": 19.525 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 1.0681018440565169, + "prey": 7.706304098533406 + }, + "state": [ + 7.706304098533406, + 1.0681018440565169 + ], + "step": 782, + "time": 19.55 + }, + { + "observations": { + "first_integral": 0.3085842591248717, + "predator": 1.078219918617857, + "prey": 7.8366188328753585 + }, + "state": [ + 7.8366188328753585, + 1.078219918617857 + ], + "step": 783, + "time": 19.575 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 1.088790382720045, + "prey": 7.968313000635812 + }, + "state": [ + 7.968313000635812, + 1.088790382720045 + ], + "step": 784, + "time": 19.6 + }, + { + "observations": { + "first_integral": 0.30858425912487164, + "predator": 1.0998283672368807, + "prey": 8.101345054735823 + }, + "state": [ + 8.101345054735823, + 1.0998283672368807 + ], + "step": 785, + "time": 19.625 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 1.1113496099088416, + "prey": 8.235669202909067 + }, + "state": [ + 8.235669202909067, + 1.1113496099088416 + ], + "step": 786, + "time": 19.65 + }, + { + "observations": { + "first_integral": 0.3085842591248715, + "predator": 1.1233704748928461, + "prey": 8.371235185048553 + }, + "state": [ + 8.371235185048553, + 1.1233704748928461 + ], + "step": 787, + "time": 19.675 + }, + { + "observations": { + "first_integral": 0.30858425912487164, + "predator": 1.1359079722431702, + "prey": 8.507988043831768 + }, + "state": [ + 8.507988043831768, + 1.1359079722431702 + ], + "step": 788, + "time": 19.7 + }, + { + "observations": { + "first_integral": 0.3085842591248715, + "predator": 1.148979777207964, + "prey": 8.645867888910683 + }, + "state": [ + 8.645867888910683, + 1.148979777207964 + ], + "step": 789, + "time": 19.725 + }, + { + "observations": { + "first_integral": 0.30858425912487164, + "predator": 1.1626042492088882, + "prey": 8.78480965503377 + }, + "state": [ + 8.78480965503377, + 1.1626042492088882 + ], + "step": 790, + "time": 19.75 + }, + { + "observations": { + "first_integral": 0.3085842591248715, + "predator": 1.1768004503528962, + "prey": 8.924742854559499 + }, + "state": [ + 8.924742854559499, + 1.1768004503528962 + ], + "step": 791, + "time": 19.775 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 1.1915881633046592, + "prey": 9.065591324922048 + }, + "state": [ + 9.065591324922048, + 1.1915881633046592 + ], + "step": 792, + "time": 19.8 + }, + { + "observations": { + "first_integral": 0.3085842591248715, + "predator": 1.2069879083258057, + "prey": 9.207272971724304 + }, + "state": [ + 9.207272971724304, + 1.2069879083258057 + ], + "step": 793, + "time": 19.825 + }, + { + "observations": { + "first_integral": 0.3085842591248716, + "predator": 1.223020959262701, + "prey": 9.349699508259642 + }, + "state": [ + 9.349699508259642, + 1.223020959262701 + ], + "step": 794, + "time": 19.85 + }, + { + "observations": { + "first_integral": 0.3085842591248716, + "predator": 1.2397093582378174, + "prey": 9.492776192402818 + }, + "state": [ + 9.492776192402818, + 1.2397093582378174 + ], + "step": 795, + "time": 19.875 + }, + { + "observations": { + "first_integral": 0.3085842591248717, + "predator": 1.2570759287709952, + "prey": 9.636401561965217 + }, + "state": [ + 9.636401561965217, + 1.2570759287709952 + ], + "step": 796, + "time": 19.9 + }, + { + "observations": { + "first_integral": 0.3085842591248716, + "predator": 1.2751442870256202, + "prey": 9.780467169777113 + }, + "state": [ + 9.780467169777113, + 1.2751442870256202 + ], + "step": 797, + "time": 19.925 + }, + { + "observations": { + "first_integral": 0.3085842591248716, + "predator": 1.2939388508412861, + "prey": 9.924857319944637 + }, + "state": [ + 9.924857319944637, + 1.2939388508412861 + ], + "step": 798, + "time": 19.95 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 1.3134848461786235, + "prey": 10.069448806929325 + }, + "state": [ + 10.069448806929325, + 1.3134848461786235 + ], + "step": 799, + "time": 19.975 + }, + { + "observations": { + "first_integral": 0.3085842591248718, + "predator": 1.3338083105636511, + "prey": 10.214110659314569 + }, + "state": [ + 10.214110659314569, + 1.3338083105636511 + ], + "step": 800, + "time": 20.0 + }, + { + "observations": { + "first_integral": 0.3085842591248716, + "predator": 1.3549360930786154, + "prey": 10.35870389035799 + }, + "state": [ + 10.35870389035799, + 1.3549360930786154 + ], + "step": 801, + "time": 20.025 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 1.3768958504035118, + "prey": 10.503081257678646 + }, + "state": [ + 10.503081257678646, + 1.3768958504035118 + ], + "step": 802, + "time": 20.05 + }, + { + "observations": { + "first_integral": 0.3085842591248717, + "predator": 1.3997160383679186, + "prey": 10.647087034695723 + }, + "state": [ + 10.647087034695723, + 1.3997160383679186 + ], + "step": 803, + "time": 20.075 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 1.4234258984265786, + "prey": 10.790556796719248 + }, + "state": [ + 10.790556796719248, + 1.4234258984265786 + ], + "step": 804, + "time": 20.1 + }, + { + "observations": { + "first_integral": 0.3085842591248716, + "predator": 1.4480554384244075, + "prey": 10.933317224890597 + }, + "state": [ + 10.933317224890597, + 1.4480554384244075 + ], + "step": 805, + "time": 20.125 + }, + { + "observations": { + "first_integral": 0.30858425912487164, + "predator": 1.4736354069685182, + "prey": 11.075185931484292 + }, + "state": [ + 11.075185931484292, + 1.4736354069685182 + ], + "step": 806, + "time": 20.15 + }, + { + "observations": { + "first_integral": 0.3085842591248717, + "predator": 1.5001972606760128, + "prey": 11.21597131040421 + }, + "state": [ + 11.21597131040421, + 1.5001972606760128 + ], + "step": 807, + "time": 20.175 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 1.527773123518561, + "prey": 11.355472417040913 + }, + "state": [ + 11.355472417040913, + 1.527773123518561 + ], + "step": 808, + "time": 20.2 + }, + { + "observations": { + "first_integral": 0.30858425912487164, + "predator": 1.5563957374381785, + "prey": 11.493478881993104 + }, + "state": [ + 11.493478881993104, + 1.5563957374381785 + ], + "step": 809, + "time": 20.225 + }, + { + "observations": { + "first_integral": 0.308584259124872, + "predator": 1.5860984033647738, + "prey": 11.629770863494327 + }, + "state": [ + 11.629770863494327, + 1.5860984033647738 + ], + "step": 810, + "time": 20.25 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 1.6169149117261141, + "prey": 11.764119043719255 + }, + "state": [ + 11.764119043719255, + 1.6169149117261141 + ], + "step": 811, + "time": 20.275 + }, + { + "observations": { + "first_integral": 0.30858425912487164, + "predator": 1.6488794615063276, + "prey": 11.896284674465829 + }, + "state": [ + 11.896284674465829, + 1.6488794615063276 + ], + "step": 812, + "time": 20.3 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 1.682026566881628, + "prey": 12.026019678012048 + }, + "state": [ + 12.026019678012048, + 1.682026566881628 + ], + "step": 813, + "time": 20.325 + }, + { + "observations": { + "first_integral": 0.30858425912487186, + "predator": 1.716390950444059, + "prey": 12.153066809222727 + }, + "state": [ + 12.153066809222727, + 1.716390950444059 + ], + "step": 814, + "time": 20.35 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 1.752007422016855, + "prey": 12.277159885216617 + }, + "state": [ + 12.277159885216617, + 1.752007422016855 + ], + "step": 815, + "time": 20.375 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 1.788910742072752, + "prey": 12.398024089094214 + }, + "state": [ + 12.398024089094214, + 1.788910742072752 + ], + "step": 816, + "time": 20.4 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 1.8271354687897265, + "prey": 12.515376354348682 + }, + "state": [ + 12.515376354348682, + 1.8271354687897265 + ], + "step": 817, + "time": 20.425 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 1.8667157878225473, + "prey": 12.628925836631993 + }, + "state": [ + 12.628925836631993, + 1.8667157878225473 + ], + "step": 818, + "time": 20.45 + }, + { + "observations": { + "first_integral": 0.30858425912487164, + "predator": 1.907685323934088, + "prey": 12.738374479501502 + }, + "state": [ + 12.738374479501502, + 1.907685323934088 + ], + "step": 819, + "time": 20.475 + }, + { + "observations": { + "first_integral": 0.30858425912487164, + "predator": 1.9500769337226103, + "prey": 12.843417680618105 + }, + "state": [ + 12.843417680618105, + 1.9500769337226103 + ], + "step": 820, + "time": 20.5 + }, + { + "observations": { + "first_integral": 0.308584259124872, + "predator": 1.9939224788022107, + "prey": 12.94374506458434 + }, + "state": [ + 12.94374506458434, + 1.9939224788022107 + ], + "step": 821, + "time": 20.525 + }, + { + "observations": { + "first_integral": 0.30858425912487186, + "predator": 2.0392525789477056, + "prey": 13.03904136818338 + }, + "state": [ + 13.03904136818338, + 2.0392525789477056 + ], + "step": 822, + "time": 20.55 + }, + { + "observations": { + "first_integral": 0.3085842591248724, + "predator": 2.0860963449044063, + "prey": 13.128987443187444 + }, + "state": [ + 13.128987443187444, + 2.0860963449044063 + ], + "step": 823, + "time": 20.575 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 2.1344810907922205, + "prey": 13.21326138113129 + }, + "state": [ + 13.21326138113129, + 2.1344810907922205 + ], + "step": 824, + "time": 20.6 + }, + { + "observations": { + "first_integral": 0.30858425912487286, + "predator": 2.1844320263021646, + "prey": 13.291539763472526 + }, + "state": [ + 13.291539763472526, + 2.1844320263021646 + ], + "step": 825, + "time": 20.625 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 2.235971929197216, + "prey": 13.363499039374924 + }, + "state": [ + 13.363499039374924, + 2.235971929197216 + ], + "step": 826, + "time": 20.65 + }, + { + "observations": { + "first_integral": 0.3085842591248731, + "predator": 2.2891207989854023, + "prey": 13.42881703193675 + }, + "state": [ + 13.42881703193675, + 2.2891207989854023 + ], + "step": 827, + "time": 20.675 + }, + { + "observations": { + "first_integral": 0.3085842591248721, + "predator": 2.3438954930355567, + "prey": 13.487174572038269 + }, + "state": [ + 13.487174572038269, + 2.3438954930355567 + ], + "step": 828, + "time": 20.7 + }, + { + "observations": { + "first_integral": 0.3085842591248734, + "predator": 2.400309346850235, + "prey": 13.538257257096006 + }, + "state": [ + 13.538257257096006, + 2.400309346850235 + ], + "step": 829, + "time": 20.725 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 2.458371780696267, + "prey": 13.581757329886779 + }, + "state": [ + 13.581757329886779, + 2.458371780696267 + ], + "step": 830, + "time": 20.75 + }, + { + "observations": { + "first_integral": 0.30858425912487353, + "predator": 2.5180878953148254, + "prey": 13.617375670256315 + }, + "state": [ + 13.617375670256315, + 2.5180878953148254 + ], + "step": 831, + "time": 20.775 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 2.5794580599847725, + "prey": 13.644823889966368 + }, + "state": [ + 13.644823889966368, + 2.5794580599847725 + ], + "step": 832, + "time": 20.8 + }, + { + "observations": { + "first_integral": 0.30858425912487397, + "predator": 2.6424774967855966, + "prey": 13.663826518197524 + }, + "state": [ + 13.663826518197524, + 2.6424774967855966 + ], + "step": 833, + "time": 20.825 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 2.707135865490234, + "prey": 13.674123262340295 + }, + "state": [ + 13.674123262340295, + 2.707135865490234 + ], + "step": 834, + "time": 20.85 + }, + { + "observations": { + "first_integral": 0.3085842591248742, + "predator": 2.7734168540979063, + "prey": 13.675471325735575 + }, + "state": [ + 13.675471325735575, + 2.7734168540979063 + ], + "step": 835, + "time": 20.875 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 2.841297780580132, + "prey": 13.667647761015736 + }, + "state": [ + 13.667647761015736, + 2.841297780580132 + ], + "step": 836, + "time": 20.9 + }, + { + "observations": { + "first_integral": 0.30858425912487397, + "predator": 2.910749211938379, + "prey": 13.65045183473618 + }, + "state": [ + 13.65045183473618, + 2.910749211938379 + ], + "step": 837, + "time": 20.925 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 2.981734607141976, + "prey": 13.623707376141684 + }, + "state": [ + 13.623707376141684, + 2.981734607141976 + ], + "step": 838, + "time": 20.95 + }, + { + "observations": { + "first_integral": 0.3085842591248742, + "predator": 3.0542099909075606, + "prey": 13.587265080292628 + }, + "state": [ + 13.587265080292628, + 3.0542099909075606 + ], + "step": 839, + "time": 20.975 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 3.128123665573067, + "prey": 13.541004733465202 + }, + "state": [ + 13.541004733465202, + 3.128123665573067 + ], + "step": 840, + "time": 21.0 + }, + { + "observations": { + "first_integral": 0.30858425912487375, + "predator": 3.2034159684905528, + "prey": 13.484837326860829 + }, + "state": [ + 13.484837326860829, + 3.2034159684905528 + ], + "step": 841, + "time": 21.025 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 3.280019082386201, + "prey": 13.418707023301561 + }, + "state": [ + 13.418707023301561, + 3.280019082386201 + ], + "step": 842, + "time": 21.05 + }, + { + "observations": { + "first_integral": 0.3085842591248731, + "predator": 3.3578569059980823, + "prey": 13.342592940870835 + }, + "state": [ + 13.342592940870835, + 3.3578569059980823 + ], + "step": 843, + "time": 21.075 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 3.436844991978977, + "prey": 13.256510717463227 + }, + "state": [ + 13.256510717463227, + 3.436844991978977 + ], + "step": 844, + "time": 21.1 + }, + { + "observations": { + "first_integral": 0.30858425912487264, + "predator": 3.5168905585351014, + "prey": 13.160513821029806 + }, + "state": [ + 13.160513821029806, + 3.5168905585351014 + ], + "step": 845, + "time": 21.125 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 3.5978925805476476, + "prey": 13.054694572001189 + }, + "state": [ + 13.054694572001189, + 3.5978925805476476 + ], + "step": 846, + "time": 21.15 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 3.6797419649963974, + "prey": 12.939184846989079 + }, + "state": [ + 12.939184846989079, + 3.6797419649963974 + ], + "step": 847, + "time": 21.175 + }, + { + "observations": { + "first_integral": 0.308584259124872, + "predator": 3.762321814371231, + "prey": 12.814156436418799 + }, + "state": [ + 12.814156436418799, + 3.762321814371231 + ], + "step": 848, + "time": 21.2 + }, + { + "observations": { + "first_integral": 0.3085842591248704, + "predator": 3.845507780439571, + "prey": 12.679821033210771 + }, + "state": [ + 12.679821033210771, + 3.845507780439571 + ], + "step": 849, + "time": 21.225 + }, + { + "observations": { + "first_integral": 0.3085842591248722, + "predator": 3.9291685092460535, + "prey": 12.536429834963842 + }, + "state": [ + 12.536429834963842, + 3.9291685092460535 + ], + "step": 850, + "time": 21.25 + }, + { + "observations": { + "first_integral": 0.30858425912486953, + "predator": 4.0131661765970525, + "prey": 12.38427274819292 + }, + "state": [ + 12.38427274819292, + 4.0131661765970525 + ], + "step": 851, + "time": 21.275 + }, + { + "observations": { + "first_integral": 0.30858425912487264, + "predator": 4.097357111550796, + "prey": 12.22367718993536 + }, + "state": [ + 12.22367718993536, + 4.097357111550796 + ], + "step": 852, + "time": 21.3 + }, + { + "observations": { + "first_integral": 0.30858425912486864, + "predator": 4.181592503651583, + "prey": 12.055006489278323 + }, + "state": [ + 12.055006489278323, + 4.181592503651583 + ], + "step": 853, + "time": 21.325 + }, + { + "observations": { + "first_integral": 0.30858425912487264, + "predator": 4.265719187852051, + "prey": 11.87865789891601 + }, + "state": [ + 11.87865789891601, + 4.265719187852051 + ], + "step": 854, + "time": 21.35 + }, + { + "observations": { + "first_integral": 0.308584259124868, + "predator": 4.349580499324326, + "prey": 11.695060234477209 + }, + "state": [ + 11.695060234477209, + 4.349580499324326 + ], + "step": 855, + "time": 21.375 + }, + { + "observations": { + "first_integral": 0.30858425912487264, + "predator": 4.433017188718017, + "prey": 11.504671166875806 + }, + "state": [ + 11.504671166875806, + 4.433017188718017 + ], + "step": 856, + "time": 21.4 + }, + { + "observations": { + "first_integral": 0.30858425912486775, + "predator": 4.515868386940371, + "prey": 11.307974200063315 + }, + "state": [ + 11.307974200063315, + 4.515868386940371 + ], + "step": 857, + "time": 21.425 + }, + { + "observations": { + "first_integral": 0.3085842591248724, + "predator": 4.597972607260719, + "prey": 11.10547537310762 + }, + "state": [ + 11.10547537310762, + 4.597972607260719 + ], + "step": 858, + "time": 21.45 + }, + { + "observations": { + "first_integral": 0.3085842591248673, + "predator": 4.679168771526134, + "prey": 10.897699731235074 + }, + "state": [ + 10.897699731235074, + 4.679168771526134 + ], + "step": 859, + "time": 21.475 + }, + { + "observations": { + "first_integral": 0.30858425912487286, + "predator": 4.759297246555394, + "prey": 10.685187615200228 + }, + "state": [ + 10.685187615200228, + 4.759297246555394 + ], + "step": 860, + "time": 21.5 + }, + { + "observations": { + "first_integral": 0.30858425912486775, + "predator": 4.838200876383226, + "prey": 10.468490821893734 + }, + "state": [ + 10.468490821893734, + 4.838200876383226 + ], + "step": 861, + "time": 21.525 + }, + { + "observations": { + "first_integral": 0.3085842591248724, + "predator": 4.915725995974386, + "prey": 10.248168691384063 + }, + "state": [ + 10.248168691384063, + 4.915725995974386 + ], + "step": 862, + "time": 21.55 + }, + { + "observations": { + "first_integral": 0.3085842591248684, + "predator": 4.991723412319322, + "prey": 10.024784176512481 + }, + "state": [ + 10.024784176512481, + 4.991723412319322 + ], + "step": 863, + "time": 21.575 + }, + { + "observations": { + "first_integral": 0.308584259124872, + "predator": 5.066049339457788, + "prey": 9.798899950727217 + }, + "state": [ + 9.798899950727217, + 5.066049339457788 + ], + "step": 864, + "time": 21.6 + }, + { + "observations": { + "first_integral": 0.30858425912486975, + "predator": 5.138566274924307, + "prey": 9.571074608069774 + }, + "state": [ + 9.571074608069774, + 5.138566274924307 + ], + "step": 865, + "time": 21.625 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 5.209143806349788, + "prey": 9.341859006197517 + }, + "state": [ + 9.341859006197517, + 5.209143806349788 + ], + "step": 866, + "time": 21.65 + }, + { + "observations": { + "first_integral": 0.3085842591248704, + "predator": 5.2776593384312545, + "prey": 9.111792799170706 + }, + "state": [ + 9.111792799170706, + 5.2776593384312545 + ], + "step": 867, + "time": 21.675 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 5.343998732161132, + "prey": 8.881401201599273 + }, + "state": [ + 8.881401201599273, + 5.343998732161132 + ], + "step": 868, + "time": 21.7 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 5.408056850020051, + "prey": 8.651192019839169 + }, + "state": [ + 8.651192019839169, + 5.408056850020051 + ], + "step": 869, + "time": 21.725 + }, + { + "observations": { + "first_integral": 0.30858425912487086, + "predator": 5.469738002736433, + "prey": 8.421652979444254 + }, + "state": [ + 8.421652979444254, + 5.469738002736433 + ], + "step": 870, + "time": 21.75 + }, + { + "observations": { + "first_integral": 0.30858425912487264, + "predator": 5.528956295134081, + "prey": 8.193249371251277 + }, + "state": [ + 8.193249371251277, + 5.528956295134081 + ], + "step": 871, + "time": 21.775 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 5.585635870477198, + "prey": 7.9664220315054735 + }, + "state": [ + 7.9664220315054735, + 5.585635870477198 + ], + "step": 872, + "time": 21.8 + }, + { + "observations": { + "first_integral": 0.30858425912487375, + "predator": 5.63971105452262, + "prey": 7.741585664548596 + }, + "state": [ + 7.741585664548596, + 5.63971105452262 + ], + "step": 873, + "time": 21.825 + }, + { + "observations": { + "first_integral": 0.30858425912487064, + "predator": 5.691126402161365, + "prey": 7.5191275099603 + }, + "state": [ + 7.5191275099603, + 5.691126402161365 + ], + "step": 874, + "time": 21.85 + }, + { + "observations": { + "first_integral": 0.30858425912487397, + "predator": 5.739836651033542, + "prey": 7.29940634985927 + }, + "state": [ + 7.29940634985927, + 5.739836651033542 + ], + "step": 875, + "time": 21.875 + }, + { + "observations": { + "first_integral": 0.3085842591248711, + "predator": 5.785806587806582, + "prey": 7.082751846442741 + }, + "state": [ + 7.082751846442741, + 5.785806587806582 + ], + "step": 876, + "time": 21.9 + }, + { + "observations": { + "first_integral": 0.30858425912487464, + "predator": 5.82901083389434, + "prey": 6.869464194906683 + }, + "state": [ + 6.869464194906683, + 5.82901083389434 + ], + "step": 877, + "time": 21.925 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 5.869433558252755, + "prey": 6.65981407269167 + }, + "state": [ + 6.65981407269167, + 5.869433558252755 + ], + "step": 878, + "time": 21.95 + }, + { + "observations": { + "first_integral": 0.30858425912487486, + "predator": 5.907068125516098, + "prey": 6.4540428626030995 + }, + "state": [ + 6.4540428626030995, + 5.907068125516098 + ], + "step": 879, + "time": 21.975 + }, + { + "observations": { + "first_integral": 0.3085842591248711, + "predator": 5.941916688136627, + "prey": 6.252363124756314 + }, + "state": [ + 6.252363124756314, + 5.941916688136627 + ], + "step": 880, + "time": 22.0 + }, + { + "observations": { + "first_integral": 0.30858425912487464, + "predator": 5.973989731378378, + "prey": 6.054959290487898 + }, + "state": [ + 6.054959290487898, + 5.973989731378378 + ], + "step": 881, + "time": 22.025 + }, + { + "observations": { + "first_integral": 0.30858425912487086, + "predator": 6.003305580001649, + "prey": 5.861988550313097 + }, + "state": [ + 5.861988550313097, + 6.003305580001649 + ], + "step": 882, + "time": 22.05 + }, + { + "observations": { + "first_integral": 0.30858425912487375, + "predator": 6.029889875288924, + "prey": 5.673581907636494 + }, + "state": [ + 5.673581907636494, + 6.029889875288924 + ], + "step": 883, + "time": 22.075 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 6.05377503072056, + "prey": 5.4898453701686085 + }, + "state": [ + 5.4898453701686085, + 6.05377503072056 + ], + "step": 884, + "time": 22.1 + }, + { + "observations": { + "first_integral": 0.30858425912487353, + "predator": 6.0749996741440215, + "prey": 5.310861251782337 + }, + "state": [ + 5.310861251782337, + 6.0749996741440215 + ], + "step": 885, + "time": 22.125 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 6.093608083711954, + "prey": 5.13668955877296 + }, + "state": [ + 5.13668955877296, + 6.093608083711954 + ], + "step": 886, + "time": 22.15 + }, + { + "observations": { + "first_integral": 0.30858425912487286, + "predator": 6.10964962422504, + "prey": 4.9673694360764085 + }, + "state": [ + 4.9673694360764085, + 6.10964962422504 + ], + "step": 887, + "time": 22.175 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 6.1231781898228546, + "prey": 4.802920650866801 + }, + "state": [ + 4.802920650866801, + 6.1231781898228546 + ], + "step": 888, + "time": 22.2 + }, + { + "observations": { + "first_integral": 0.3085842591248724, + "predator": 6.134251658248621, + "prey": 4.643345093011492 + }, + "state": [ + 4.643345093011492, + 6.134251658248621 + ], + "step": 889, + "time": 22.225 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 6.14293136118588, + "prey": 4.488628274041382 + }, + "state": [ + 4.488628274041382, + 6.14293136118588 + ], + "step": 890, + "time": 22.25 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 6.149281574449211, + "prey": 4.338740808520158 + }, + "state": [ + 4.338740808520158, + 6.149281574449211 + ], + "step": 891, + "time": 22.275 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 6.153369031117194, + "prey": 4.19363986392117 + }, + "state": [ + 4.19363986392117, + 6.153369031117194 + ], + "step": 892, + "time": 22.3 + }, + { + "observations": { + "first_integral": 0.30858425912487086, + "predator": 6.155262460038852, + "prey": 4.053270567286455 + }, + "state": [ + 4.053270567286455, + 6.155262460038852 + ], + "step": 893, + "time": 22.325 + }, + { + "observations": { + "first_integral": 0.308584259124872, + "predator": 6.155032151531475, + "prey": 3.917567359017271 + }, + "state": [ + 3.917567359017271, + 6.155032151531475 + ], + "step": 894, + "time": 22.35 + }, + { + "observations": { + "first_integral": 0.3085842591248704, + "predator": 6.1527495515253845, + "prey": 3.786455286095168 + }, + "state": [ + 3.786455286095168, + 6.1527495515253845 + ], + "step": 895, + "time": 22.375 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 6.148486884903989, + "prey": 3.659851228835345 + }, + "state": [ + 3.659851228835345, + 6.148486884903989 + ], + "step": 896, + "time": 22.4 + }, + { + "observations": { + "first_integral": 0.30858425912487, + "predator": 6.1423168083364095, + "prey": 3.537665056917375 + }, + "state": [ + 3.537665056917375, + 6.1423168083364095 + ], + "step": 897, + "time": 22.425 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 6.134312092507237, + "prey": 3.4198007119109826 + }, + "state": [ + 3.4198007119109826, + 6.134312092507237 + ], + "step": 898, + "time": 22.45 + }, + { + "observations": { + "first_integral": 0.30858425912486975, + "predator": 6.124545333309862, + "prey": 3.306157214816528 + }, + "state": [ + 3.306157214816528, + 6.124545333309862 + ], + "step": 899, + "time": 22.475 + }, + { + "observations": { + "first_integral": 0.308584259124872, + "predator": 6.113088691287401, + "prey": 3.1966295982719233 + }, + "state": [ + 3.1966295982719233, + 6.113088691287401 + ], + "step": 900, + "time": 22.5 + }, + { + "observations": { + "first_integral": 0.30858425912486975, + "predator": 6.100013658371598, + "prey": 3.091109764045312 + }, + "state": [ + 3.091109764045312, + 6.100013658371598 + ], + "step": 901, + "time": 22.525 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 6.0853908507857195, + "prey": 2.9894872672453263 + }, + "state": [ + 2.9894872672453263, + 6.0853908507857195 + ], + "step": 902, + "time": 22.55 + }, + { + "observations": { + "first_integral": 0.30858425912486953, + "predator": 6.069289826833797, + "prey": 2.8916500293482725 + }, + "state": [ + 2.8916500293482725, + 6.069289826833797 + ], + "step": 903, + "time": 22.575 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 6.05177892819587, + "prey": 2.797484982674727 + }, + "state": [ + 2.797484982674727, + 6.05177892819587 + ], + "step": 904, + "time": 22.6 + }, + { + "observations": { + "first_integral": 0.30858425912486975, + "predator": 6.032925143278149, + "prey": 2.706878649363077 + }, + "state": [ + 2.706878649363077, + 6.032925143278149 + ], + "step": 905, + "time": 22.625 + }, + { + "observations": { + "first_integral": 0.308584259124872, + "predator": 6.012793991128412, + "prey": 2.619717658191643 + }, + "state": [ + 2.619717658191643, + 6.012793991128412 + ], + "step": 906, + "time": 22.65 + }, + { + "observations": { + "first_integral": 0.30858425912486975, + "predator": 5.991449424411857, + "prey": 2.5358892028141375 + }, + "state": [ + 2.5358892028141375, + 5.991449424411857 + ], + "step": 907, + "time": 22.675 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 5.968953749951493, + "prey": 2.455281445100704 + }, + "state": [ + 2.455281445100704, + 5.968953749951493 + ], + "step": 908, + "time": 22.7 + }, + { + "observations": { + "first_integral": 0.30858425912486975, + "predator": 5.945367565361775, + "prey": 2.3777838673366287 + }, + "state": [ + 2.3777838673366287, + 5.945367565361775 + ], + "step": 909, + "time": 22.725 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 5.92074971034587, + "prey": 2.3032875770296295 + }, + "state": [ + 2.3032875770296295, + 5.92074971034587 + ], + "step": 910, + "time": 22.75 + }, + { + "observations": { + "first_integral": 0.30858425912486975, + "predator": 5.895157231277822, + "prey": 2.2316855680274705 + }, + "state": [ + 2.2316855680274705, + 5.895157231277822 + ], + "step": 911, + "time": 22.775 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 5.868645357753007, + "prey": 2.1628729415578887 + }, + "state": [ + 2.1628729415578887, + 5.868645357753007 + ], + "step": 912, + "time": 22.8 + }, + { + "observations": { + "first_integral": 0.30858425912487, + "predator": 5.841267489856764, + "prey": 2.0967470906824834 + }, + "state": [ + 2.0967470906824834, + 5.841267489856764 + ], + "step": 913, + "time": 22.825 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 5.813075194973839, + "prey": 2.0332078515102334 + }, + "state": [ + 2.0332078515102334, + 5.813075194973839 + ], + "step": 914, + "time": 22.85 + }, + { + "observations": { + "first_integral": 0.3085842591248702, + "predator": 5.784118213035241, + "prey": 1.9721576243545602 + }, + "state": [ + 1.9721576243545602, + 5.784118213035241 + ], + "step": 915, + "time": 22.875 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 5.754444469175341, + "prey": 1.9135014678413267 + }, + "state": [ + 1.9135014678413267, + 5.754444469175341 + ], + "step": 916, + "time": 22.9 + }, + { + "observations": { + "first_integral": 0.3085842591248704, + "predator": 5.724100092847278, + "prey": 1.8571471687935763 + }, + "state": [ + 1.8571471687935763, + 5.724100092847278 + ], + "step": 917, + "time": 22.925 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 5.693129442519741, + "prey": 1.8030052905313316 + }, + "state": [ + 1.8030052905313316, + 5.693129442519741 + ], + "step": 918, + "time": 22.95 + }, + { + "observations": { + "first_integral": 0.3085842591248711, + "predator": 5.661575135150257, + "prey": 1.7509892020385456 + }, + "state": [ + 1.7509892020385456, + 5.661575135150257 + ], + "step": 919, + "time": 22.975 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 5.629478079700845, + "prey": 1.7010150902643797 + }, + "state": [ + 1.7010150902643797, + 5.629478079700845 + ], + "step": 920, + "time": 23.0 + }, + { + "observations": { + "first_integral": 0.30858425912487086, + "predator": 5.596877514028223, + "prey": 1.6530019576458725 + }, + "state": [ + 1.6530019576458725, + 5.596877514028223 + ], + "step": 921, + "time": 23.025 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 5.563811044545046, + "prey": 1.6068716067648163 + }, + "state": [ + 1.6068716067648163, + 5.563811044545046 + ], + "step": 922, + "time": 23.05 + }, + { + "observations": { + "first_integral": 0.30858425912487086, + "predator": 5.53031468810818, + "prey": 1.5625486138849358 + }, + "state": [ + 1.5625486138849358, + 5.53031468810818 + ], + "step": 923, + "time": 23.075 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 5.4964229156465985, + "prey": 1.5199602929563862 + }, + "state": [ + 1.5199602929563862, + 5.4964229156465985 + ], + "step": 924, + "time": 23.1 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 5.462168697093863, + "prey": 1.4790366515252256 + }, + "state": [ + 1.4790366515252256, + 5.462168697093863 + ], + "step": 925, + "time": 23.125 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 5.427583547238833, + "prey": 1.4397103398440854 + }, + "state": [ + 1.4397103398440854, + 5.427583547238833 + ], + "step": 926, + "time": 23.15 + }, + { + "observations": { + "first_integral": 0.30858425912487086, + "predator": 5.392697572153255, + "prey": 1.4019165943493999 + }, + "state": [ + 1.4019165943493999, + 5.392697572153255 + ], + "step": 927, + "time": 23.175 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 5.3575395158962165, + "prey": 1.3655931765478897 + }, + "state": [ + 1.3655931765478897, + 5.3575395158962165 + ], + "step": 928, + "time": 23.2 + }, + { + "observations": { + "first_integral": 0.30858425912487086, + "predator": 5.322136807233181, + "prey": 1.3306803082421959 + }, + "state": [ + 1.3306803082421959, + 5.322136807233181 + ], + "step": 929, + "time": 23.225 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 5.286515606142091, + "prey": 1.2971206039213852 + }, + "state": [ + 1.2971206039213852, + 5.286515606142091 + ], + "step": 930, + "time": 23.25 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 5.250700849910028, + "prey": 1.2648590010463716 + }, + "state": [ + 1.2648590010463716, + 5.250700849910028 + ], + "step": 931, + "time": 23.275 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 5.214716298652649, + "prey": 1.2338426888730598 + }, + "state": [ + 1.2338426888730598, + 5.214716298652649 + ], + "step": 932, + "time": 23.3 + }, + { + "observations": { + "first_integral": 0.3085842591248711, + "predator": 5.178584580113954, + "prey": 1.2040210363763586 + }, + "state": [ + 1.2040210363763586, + 5.178584580113954 + ], + "step": 933, + "time": 23.325 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 5.142327233627008, + "prey": 1.1753455197658522 + }, + "state": [ + 1.1753455197658522, + 5.142327233627008 + ], + "step": 934, + "time": 23.35 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 5.105964753136939, + "prey": 1.147769650018759 + }, + "state": [ + 1.147769650018759, + 5.105964753136939 + ], + "step": 935, + "time": 23.375 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 5.069516629205657, + "prey": 1.1212489007964879 + }, + "state": [ + 1.1212489007964879, + 5.069516629205657 + ], + "step": 936, + "time": 23.4 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 5.0330013899343236, + "prey": 1.0957406370583598 + }, + "state": [ + 1.0957406370583598, + 5.0330013899343236 + ], + "step": 937, + "time": 23.425 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 4.996436640753867, + "prey": 1.0712040446382902 + }, + "state": [ + 1.0712040446382902, + 4.996436640753867 + ], + "step": 938, + "time": 23.45 + }, + { + "observations": { + "first_integral": 0.308584259124872, + "predator": 4.959839103046569, + "prey": 1.0476000610077911 + }, + "state": [ + 1.0476000610077911, + 4.959839103046569 + ], + "step": 939, + "time": 23.475 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 4.923224651573126, + "prey": 1.0248913074108708 + }, + "state": [ + 1.0248913074108708, + 4.923224651573126 + ], + "step": 940, + "time": 23.5 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 4.886608350689056, + "prey": 1.003042022522634 + }, + "state": [ + 1.003042022522634, + 4.886608350689056 + ], + "step": 941, + "time": 23.525 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 4.850004489343105, + "prey": 0.9820179977537962 + }, + "state": [ + 0.9820179977537962, + 4.850004489343105 + ], + "step": 942, + "time": 23.55 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 4.813426614857475, + "prey": 0.9617865142969859 + }, + "state": [ + 0.9617865142969859, + 4.813426614857475 + ], + "step": 943, + "time": 23.575 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 4.7768875654960015, + "prey": 0.9423162819876556 + }, + "state": [ + 0.9423162819876556, + 4.7768875654960015 + ], + "step": 944, + "time": 23.6 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 4.740399501831979, + "prey": 0.9235773800323446 + }, + "state": [ + 0.9235773800323446, + 4.740399501831979 + ], + "step": 945, + "time": 23.625 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 4.703973936931593, + "prey": 0.9055411996392998 + }, + "state": [ + 0.9055411996392998, + 4.703973936931593 + ], + "step": 946, + "time": 23.65 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 4.66762176537304, + "prey": 0.888180388571358 + }, + "state": [ + 0.888180388571358, + 4.66762176537304 + ], + "step": 947, + "time": 23.675 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 4.631353291124389, + "prey": 0.8714687976277288 + }, + "state": [ + 0.8714687976277288, + 4.631353291124389 + ], + "step": 948, + "time": 23.7 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 4.595178254305823, + "prey": 0.8553814290500358 + }, + "state": [ + 0.8553814290500358, + 4.595178254305823 + ], + "step": 949, + "time": 23.725 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 4.559105856864161, + "prey": 0.8398943868384161 + }, + "state": [ + 0.8398943868384161, + 4.559105856864161 + ], + "step": 950, + "time": 23.75 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 4.523144787188897, + "prey": 0.8249848289552129 + }, + "state": [ + 0.8249848289552129, + 4.523144787188897 + ], + "step": 951, + "time": 23.775 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 4.487303243700498, + "prey": 0.8106309213870865 + }, + "state": [ + 0.8106309213870865, + 4.487303243700498 + ], + "step": 952, + "time": 23.8 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 4.451588957442424, + "prey": 0.796811794030627 + }, + "state": [ + 0.796811794030627, + 4.451588957442424 + ], + "step": 953, + "time": 23.825 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 4.416009213708898, + "prey": 0.7835074983619174 + }, + "state": [ + 0.7835074983619174, + 4.416009213708898 + ], + "step": 954, + "time": 23.85 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 4.380570872740974, + "prey": 0.770698966846833 + }, + "state": [ + 0.770698966846833, + 4.380570872740974 + ], + "step": 955, + "time": 23.875 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 4.345280389523258, + "prey": 0.7583679740458148 + }, + "state": [ + 0.7583679740458148, + 4.345280389523258 + ], + "step": 956, + "time": 23.9 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 4.31014383271385, + "prey": 0.7464970993647144 + }, + "state": [ + 0.7464970993647144, + 4.31014383271385 + ], + "step": 957, + "time": 23.925 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 4.275166902739621, + "prey": 0.735069691401601 + }, + "state": [ + 0.735069691401601, + 4.275166902739621 + ], + "step": 958, + "time": 23.95 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 4.240354949088558, + "prey": 0.7240698338383051 + }, + "state": [ + 0.7240698338383051, + 4.240354949088558 + ], + "step": 959, + "time": 23.975 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 4.205712986830597, + "prey": 0.7134823128248666 + }, + "state": [ + 0.7134823128248666, + 4.205712986830597 + ], + "step": 960, + "time": 24.0 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 4.171245712397468, + "prey": 0.7032925858046906 + }, + "state": [ + 0.7032925858046906, + 4.171245712397468 + ], + "step": 961, + "time": 24.025 + }, + { + "observations": { + "first_integral": 0.30858425912487175, + "predator": 4.136957518651684, + "prey": 0.6934867517283606 + }, + "state": [ + 0.6934867517283606, + 4.136957518651684 + ], + "step": 962, + "time": 24.05 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 4.1028525092739, + "prey": 0.6840515226043407 + }, + "state": [ + 0.6840515226043407, + 4.1028525092739 + ], + "step": 963, + "time": 24.075 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 4.06893451249706, + "prey": 0.6749741963353808 + }, + "state": [ + 0.6749741963353808, + 4.06893451249706 + ], + "step": 964, + "time": 24.1 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 4.035207094215136, + "prey": 0.6662426307902681 + }, + "state": [ + 0.6662426307902681, + 4.035207094215136 + ], + "step": 965, + "time": 24.125 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 4.0016735704930815, + "prey": 0.65784521906143 + }, + "state": [ + 0.65784521906143, + 4.0016735704930815 + ], + "step": 966, + "time": 24.15 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 3.968337019504092, + "prey": 0.6497708658600494 + }, + "state": [ + 0.6497708658600494, + 3.968337019504092 + ], + "step": 967, + "time": 24.175 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 3.9352002929191654, + "prey": 0.6420089650014901 + }, + "state": [ + 0.6420089650014901, + 3.9352002929191654 + ], + "step": 968, + "time": 24.2 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 3.902266026773075, + "prey": 0.6345493779351046 + }, + "state": [ + 0.6345493779351046, + 3.902266026773075 + ], + "step": 969, + "time": 24.225 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 3.869536651830188, + "prey": 0.6273824132738677 + }, + "state": [ + 0.6273824132738677, + 3.869536651830188 + ], + "step": 970, + "time": 24.25 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 3.8370144034723848, + "prey": 0.6204988072806058 + }, + "state": [ + 0.6204988072806058, + 3.8370144034723848 + ], + "step": 971, + "time": 24.275 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 3.8047013311307456, + "prey": 0.6138897052690617 + }, + "state": [ + 0.6138897052690617, + 3.8047013311307456 + ], + "step": 972, + "time": 24.3 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 3.772599307281663, + "prey": 0.6075466438794334 + }, + "state": [ + 0.6075466438794334, + 3.772599307281663 + ], + "step": 973, + "time": 24.325 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 3.7407100360271874, + "prey": 0.6014615341894685 + }, + "state": [ + 0.6014615341894685, + 3.7407100360271874 + ], + "step": 974, + "time": 24.35 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 3.709035061278764, + "prey": 0.5956266456236681 + }, + "state": [ + 0.5956266456236681, + 3.709035061278764 + ], + "step": 975, + "time": 24.375 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 3.677575774562476, + "prey": 0.5900345906245363 + }, + "state": [ + 0.5900345906245363, + 3.677575774562476 + ], + "step": 976, + "time": 24.4 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 3.6463334224633717, + "prey": 0.5846783100512722 + }, + "state": [ + 0.5846783100512722, + 3.6463334224633717 + ], + "step": 977, + "time": 24.425 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 3.615309113725555, + "prey": 0.5795510592726668 + }, + "state": [ + 0.5795510592726668, + 3.615309113725555 + ], + "step": 978, + "time": 24.45 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 3.584503826023985, + "prey": 0.574646394922332 + }, + "state": [ + 0.574646394922332, + 3.584503826023985 + ], + "step": 979, + "time": 24.475 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 3.553918412423375, + "prey": 0.5699581622857536 + }, + "state": [ + 0.5699581622857536, + 3.553918412423375 + ], + "step": 980, + "time": 24.5 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 3.5235536075386693, + "prey": 0.5654804832899188 + }, + "state": [ + 0.5654804832899188, + 3.5235536075386693 + ], + "step": 981, + "time": 24.525 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 3.4934100334111577, + "prey": 0.5612077450675805 + }, + "state": [ + 0.5612077450675805, + 3.4934100334111577 + ], + "step": 982, + "time": 24.55 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 3.4634882051134945, + "prey": 0.55713458906942 + }, + "state": [ + 0.55713458906942, + 3.4634882051134945 + ], + "step": 983, + "time": 24.575 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 3.433788536096291, + "prey": 0.5532559006985643 + }, + "state": [ + 0.5532559006985643, + 3.433788536096291 + ], + "step": 984, + "time": 24.6 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 3.4043113432885224, + "prey": 0.5495667994430903 + }, + "state": [ + 0.5495667994430903, + 3.4043113432885224 + ], + "step": 985, + "time": 24.625 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 3.375056851963172, + "prey": 0.5460626294832184 + }, + "state": [ + 0.5460626294832184, + 3.375056851963172 + ], + "step": 986, + "time": 24.65 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 3.3460252003792634, + "prey": 0.5427389507510098 + }, + "state": [ + 0.5427389507510098, + 3.3460252003792634 + ], + "step": 987, + "time": 24.675 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 3.3172164442107452, + "prey": 0.5395915304213862 + }, + "state": [ + 0.5395915304213862, + 3.3172164442107452 + ], + "step": 988, + "time": 24.7 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 3.288630560772202, + "prey": 0.5366163348142889 + }, + "state": [ + 0.5366163348142889, + 3.288630560772202 + ], + "step": 989, + "time": 24.725 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 3.260267453051061, + "prey": 0.5338095216887553 + }, + "state": [ + 0.5338095216887553, + 3.260267453051061 + ], + "step": 990, + "time": 24.75 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 3.2321269535552597, + "prey": 0.5311674329105858 + }, + "state": [ + 0.5311674329105858, + 3.2321269535552597 + ], + "step": 991, + "time": 24.775 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 3.2042088279851466, + "prey": 0.5286865874761701 + }, + "state": [ + 0.5286865874761701, + 3.2042088279851466 + ], + "step": 992, + "time": 24.8 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 3.176512778737837, + "prey": 0.5263636748758639 + }, + "state": [ + 0.5263636748758639, + 3.176512778737837 + ], + "step": 993, + "time": 24.825 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 3.149038448251848, + "prey": 0.524195548781113 + }, + "state": [ + 0.524195548781113, + 3.149038448251848 + ], + "step": 994, + "time": 24.85 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 3.121785422199601, + "prey": 0.5221792210403003 + }, + "state": [ + 0.5221792210403003, + 3.121785422199601 + ], + "step": 995, + "time": 24.875 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 3.0947532325348104, + "prey": 0.5203118559690032 + }, + "state": [ + 0.5203118559690032, + 3.0947532325348104 + ], + "step": 996, + "time": 24.9 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 3.0679413604016466, + "prey": 0.5185907649210704 + }, + "state": [ + 0.5185907649210704, + 3.0679413604016466 + ], + "step": 997, + "time": 24.925 + }, + { + "observations": { + "first_integral": 0.3085842591248711, + "predator": 3.0413492389121077, + "prey": 0.5170134011275825 + }, + "state": [ + 0.5170134011275825, + 3.0413492389121077 + ], + "step": 998, + "time": 24.95 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 3.014976255797716, + "prey": 0.515577354791401 + }, + "state": [ + 0.515577354791401, + 3.014976255797716 + ], + "step": 999, + "time": 24.975 + }, + { + "observations": { + "first_integral": 0.3085842591248711, + "predator": 2.9888217559415047, + "prey": 0.5142803484256235 + }, + "state": [ + 0.5142803484256235, + 2.9888217559415047 + ], + "step": 1000, + "time": 25.0 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 2.962885043795754, + "prey": 0.5131202324248373 + }, + "state": [ + 0.5131202324248373, + 2.962885043795754 + ], + "step": 1001, + "time": 25.025 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 2.937165385690911, + "prey": 0.5120949808586189 + }, + "state": [ + 0.5120949808586189, + 2.937165385690911 + ], + "step": 1002, + "time": 25.05 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 2.911662012040688, + "prey": 0.5112026874772568 + }, + "state": [ + 0.5112026874772568, + 2.911662012040688 + ], + "step": 1003, + "time": 25.075 + }, + { + "observations": { + "first_integral": 0.3085842591248711, + "predator": 2.886374119448152, + "prey": 0.5104415619201675 + }, + "state": [ + 0.5104415619201675, + 2.886374119448152 + ], + "step": 1004, + "time": 25.1 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 2.8613008727174645, + "prey": 0.5098099261179645 + }, + "state": [ + 0.5098099261179645, + 2.8613008727174645 + ], + "step": 1005, + "time": 25.125 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 2.836441406775553, + "prey": 0.5093062108795846 + }, + "state": [ + 0.5093062108795846, + 2.836441406775553 + ], + "step": 1006, + "time": 25.15 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 2.811794828507951, + "prey": 0.5089289526563157 + }, + "state": [ + 0.5089289526563157, + 2.811794828507951 + ], + "step": 1007, + "time": 25.175 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 2.7873602185127453, + "prey": 0.5086767904749776 + }, + "state": [ + 0.5086767904749776, + 2.7873602185127453 + ], + "step": 1008, + "time": 25.2 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 2.7631366327763693, + "prey": 0.508548463032903 + }, + "state": [ + 0.508548463032903, + 2.7631366327763693 + ], + "step": 1009, + "time": 25.225 + }, + { + "observations": { + "first_integral": 0.3085842591248711, + "predator": 2.739123104274926, + "prey": 0.5085428059477348 + }, + "state": [ + 0.5085428059477348, + 2.739123104274926 + ], + "step": 1010, + "time": 25.25 + }, + { + "observations": { + "first_integral": 0.3085842591248711, + "predator": 2.715318644504356, + "prey": 0.5086587491554162 + }, + "state": [ + 0.5086587491554162, + 2.715318644504356 + ], + "step": 1011, + "time": 25.275 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 2.691722244942818, + "prey": 0.5088953144500811 + }, + "state": [ + 0.5088953144500811, + 2.691722244942818 + ], + "step": 1012, + "time": 25.3 + }, + { + "observations": { + "first_integral": 0.3085842591248711, + "predator": 2.6683328784483344, + "prey": 0.5092516131598784 + }, + "state": [ + 0.5092516131598784, + 2.6683328784483344 + ], + "step": 1013, + "time": 25.325 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 2.64514950059465, + "prey": 0.5097268439530664 + }, + "state": [ + 0.5097268439530664, + 2.64514950059465 + ], + "step": 1014, + "time": 25.35 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 2.6221710509482024, + "prey": 0.5103202907690036 + }, + "state": [ + 0.5103202907690036, + 2.6221710509482024 + ], + "step": 1015, + "time": 25.375 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 2.5993964542887933, + "prey": 0.5110313208689408 + }, + "state": [ + 0.5110313208689408, + 2.5993964542887933 + ], + "step": 1016, + "time": 25.4 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 2.5768246217766175, + "prey": 0.5118593830017776 + }, + "state": [ + 0.5118593830017776, + 2.5768246217766175 + ], + "step": 1017, + "time": 25.425 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 2.5544544520680526, + "prey": 0.5128040056802006 + }, + "state": [ + 0.5128040056802006, + 2.5544544520680526 + ], + "step": 1018, + "time": 25.45 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 2.532284832382513, + "prey": 0.5138647955628544 + }, + "state": [ + 0.5138647955628544, + 2.532284832382513 + ], + "step": 1019, + "time": 25.475 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 2.51031463952267, + "prey": 0.5150414359384228 + }, + "state": [ + 0.5150414359384228, + 2.51031463952267 + ], + "step": 1020, + "time": 25.5 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 2.4885427408500655, + "prey": 0.5163336853077147 + }, + "state": [ + 0.5163336853077147, + 2.4885427408500655 + ], + "step": 1021, + "time": 25.525 + }, + { + "observations": { + "first_integral": 0.3085842591248712, + "predator": 2.4669679952182144, + "prey": 0.5177413760600506 + }, + "state": [ + 0.5177413760600506, + 2.4669679952182144 + ], + "step": 1022, + "time": 25.55 + }, + { + "observations": { + "first_integral": 0.3085842591248712, + "predator": 2.4455892538651014, + "prey": 0.5192644132404368 + }, + "state": [ + 0.5192644132404368, + 2.4455892538651014 + ], + "step": 1023, + "time": 25.575 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 2.424405361266874, + "prey": 0.5209027734042112 + }, + "state": [ + 0.5209027734042112, + 2.424405361266874 + ], + "step": 1024, + "time": 25.6 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 2.4034151559545704, + "prey": 0.5226565035559997 + }, + "state": [ + 0.5226565035559997, + 2.4034151559545704 + ], + "step": 1025, + "time": 25.625 + }, + { + "observations": { + "first_integral": 0.3085842591248712, + "predator": 2.3826174712954673, + "prey": 0.5245257201700126 + }, + "state": [ + 0.5245257201700126, + 2.3826174712954673 + ], + "step": 1026, + "time": 25.65 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 2.3620111362407186, + "prey": 0.5265106082888485 + }, + "state": [ + 0.5265106082888485, + 2.3620111362407186 + ], + "step": 1027, + "time": 25.675 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 2.341594976040791, + "prey": 0.5286114206981366 + }, + "state": [ + 0.5286114206981366, + 2.341594976040791 + ], + "step": 1028, + "time": 25.7 + }, + { + "observations": { + "first_integral": 0.3085842591248712, + "predator": 2.3213678129301205, + "prey": 0.530828477174491 + }, + "state": [ + 0.530828477174491, + 2.3213678129301205 + ], + "step": 1029, + "time": 25.725 + }, + { + "observations": { + "first_integral": 0.3085842591248712, + "predator": 2.3013284667824583, + "prey": 0.5331621638043795 + }, + "state": [ + 0.5331621638043795, + 2.3013284667824583 + ], + "step": 1030, + "time": 25.75 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 2.281475755738154, + "prey": 0.5356129323716502 + }, + "state": [ + 0.5356129323716502, + 2.281475755738154 + ], + "step": 1031, + "time": 25.775 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 2.261808496804719, + "prey": 0.5381812998115738 + }, + "state": [ + 0.5381812998115738, + 2.261808496804719 + ], + "step": 1032, + "time": 25.8 + }, + { + "observations": { + "first_integral": 0.3085842591248712, + "predator": 2.2423255064318544, + "prey": 0.5408678477293812 + }, + "state": [ + 0.5408678477293812, + 2.2423255064318544 + ], + "step": 1033, + "time": 25.825 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 2.223025601062089, + "prey": 0.5436732219813929 + }, + "state": [ + 0.5436732219813929, + 2.223025601062089 + ], + "step": 1034, + "time": 25.85 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 2.2039075976581977, + "prey": 0.546598132316929 + }, + "state": [ + 0.546598132316929, + 2.2039075976581977 + ], + "step": 1035, + "time": 25.875 + }, + { + "observations": { + "first_integral": 0.3085842591248714, + "predator": 2.1849703142083907, + "prey": 0.5496433520793107 + }, + "state": [ + 0.5496433520793107, + 2.1849703142083907 + ], + "step": 1036, + "time": 25.9 + }, + { + "observations": { + "first_integral": 0.3085842591248714, + "predator": 2.166212570210354, + "prey": 0.5528097179643396 + }, + "state": [ + 0.5528097179643396, + 2.166212570210354 + ], + "step": 1037, + "time": 25.925 + }, + { + "observations": { + "first_integral": 0.3085842591248714, + "predator": 2.147633187135095, + "prey": 0.5560981298347469 + }, + "state": [ + 0.5560981298347469, + 2.147633187135095 + ], + "step": 1038, + "time": 25.95 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 2.1292309888714938, + "prey": 0.5595095505891922 + }, + "state": [ + 0.5595095505891922, + 2.1292309888714938 + ], + "step": 1039, + "time": 25.975 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 2.1110048021525247, + "prey": 0.5630450060844603 + }, + "state": [ + 0.5630450060844603, + 2.1110048021525247 + ], + "step": 1040, + "time": 26.0 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 2.0929534569639205, + "prey": 0.5667055851096079 + }, + "state": [ + 0.5667055851096079, + 2.0929534569639205 + ], + "step": 1041, + "time": 26.025 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 2.0750757869361736, + "prey": 0.5704924394108598 + }, + "state": [ + 0.5704924394108598, + 2.0750757869361736 + ], + "step": 1042, + "time": 26.05 + }, + { + "observations": { + "first_integral": 0.3085842591248714, + "predator": 2.057370629720624, + "prey": 0.5744067837661476 + }, + "state": [ + 0.5744067837661476, + 2.057370629720624 + ], + "step": 1043, + "time": 26.075 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 2.0398368273503724, + "prey": 0.5784498961082469 + }, + "state": [ + 0.5784498961082469, + 2.0398368273503724 + ], + "step": 1044, + "time": 26.1 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 2.0224732265868015, + "prey": 0.5826231176955193 + }, + "state": [ + 0.5826231176955193, + 2.0224732265868015 + ], + "step": 1045, + "time": 26.125 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 2.005278679252325, + "prey": 0.5869278533293552 + }, + "state": [ + 0.5869278533293552, + 2.005278679252325 + ], + "step": 1046, + "time": 26.15 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 1.988252042550096, + "prey": 0.5913655716174419 + }, + "state": [ + 0.5913655716174419, + 1.988252042550096 + ], + "step": 1047, + "time": 26.175 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 1.9713921793712876, + "prey": 0.5959378052820572 + }, + "state": [ + 0.5959378052820572, + 1.9713921793712876 + ], + "step": 1048, + "time": 26.2 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 1.954697958590544, + "prey": 0.6006461515126408 + }, + "state": [ + 0.6006461515126408, + 1.954697958590544 + ], + "step": 1049, + "time": 26.225 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 1.9381682553502464, + "prey": 0.6054922723619267 + }, + "state": [ + 0.6054922723619267, + 1.9381682553502464 + ], + "step": 1050, + "time": 26.25 + }, + { + "observations": { + "first_integral": 0.3085842591248714, + "predator": 1.9218019513341014, + "prey": 0.6104778951850006 + }, + "state": [ + 0.6104778951850006, + 1.9218019513341014 + ], + "step": 1051, + "time": 26.275 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 1.9055979350306527, + "prey": 0.6156048131206548 + }, + "state": [ + 0.6156048131206548, + 1.9055979350306527 + ], + "step": 1052, + "time": 26.3 + }, + { + "observations": { + "first_integral": 0.3085842591248714, + "predator": 1.889555101987226, + "prey": 0.620874885614482 + }, + "state": [ + 0.620874885614482, + 1.889555101987226 + ], + "step": 1053, + "time": 26.325 + }, + { + "observations": { + "first_integral": 0.30858425912487164, + "predator": 1.8736723550547925, + "prey": 0.626290038983187 + }, + "state": [ + 0.626290038983187, + 1.8736723550547925 + ], + "step": 1054, + "time": 26.35 + }, + { + "observations": { + "first_integral": 0.3085842591248714, + "predator": 1.8579486046243, + "prey": 0.6318522670196112 + }, + "state": [ + 0.6318522670196112, + 1.8579486046243 + ], + "step": 1055, + "time": 26.375 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 1.8423827688548773, + "prey": 0.6375636316380382 + }, + "state": [ + 0.6375636316380382, + 1.8423827688548773 + ], + "step": 1056, + "time": 26.4 + }, + { + "observations": { + "first_integral": 0.30858425912487153, + "predator": 1.826973773894431, + "prey": 0.6434262635593454 + }, + "state": [ + 0.6434262635593454, + 1.826973773894431 + ], + "step": 1057, + "time": 26.425 + }, + { + "observations": { + "first_integral": 0.3085842591248714, + "predator": 1.8117205540930486, + "prey": 0.6494423630356203 + }, + "state": [ + 0.6494423630356203, + 1.8117205540930486 + ], + "step": 1058, + "time": 26.45 + }, + { + "observations": { + "first_integral": 0.3085842591248714, + "predator": 1.796622052209622, + "prey": 0.6556142006138946 + }, + "state": [ + 0.6556142006138946, + 1.796622052209622 + ], + "step": 1059, + "time": 26.475 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 1.7816772196121557, + "prey": 0.6619441179386475 + }, + "state": [ + 0.6619441179386475, + 1.7816772196121557 + ], + "step": 1060, + "time": 26.5 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 1.766885016472103, + "prey": 0.6684345285927983 + }, + "state": [ + 0.6684345285927983, + 1.766885016472103 + ], + "step": 1061, + "time": 26.525 + }, + { + "observations": { + "first_integral": 0.3085842591248714, + "predator": 1.752244411953168, + "prey": 0.675087918976893 + }, + "state": [ + 0.675087918976893, + 1.752244411953168 + ], + "step": 1062, + "time": 26.55 + }, + { + "observations": { + "first_integral": 0.3085842591248714, + "predator": 1.7377543843949361, + "prey": 0.6819068492262326 + }, + "state": [ + 0.6819068492262326, + 1.7377543843949361 + ], + "step": 1063, + "time": 26.575 + }, + { + "observations": { + "first_integral": 0.3085842591248714, + "predator": 1.7234139214916822, + "prey": 0.688893954165721 + }, + "state": [ + 0.688893954165721, + 1.7234139214916822 + ], + "step": 1064, + "time": 26.6 + }, + { + "observations": { + "first_integral": 0.3085842591248714, + "predator": 1.709222020466758, + "prey": 0.6960519443021912 + }, + "state": [ + 0.6960519443021912, + 1.709222020466758 + ], + "step": 1065, + "time": 26.625 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 1.695177688242861, + "prey": 0.7033836068540386 + }, + "state": [ + 0.7033836068540386, + 1.695177688242861 + ], + "step": 1066, + "time": 26.65 + }, + { + "observations": { + "first_integral": 0.3085842591248714, + "predator": 1.6812799416085629, + "prey": 0.7108918068179533 + }, + "state": [ + 0.7108918068179533, + 1.6812799416085629 + ], + "step": 1067, + "time": 26.675 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 1.6675278073814186, + "prey": 0.7185794880725912 + }, + "state": [ + 0.7185794880725912, + 1.6675278073814186 + ], + "step": 1068, + "time": 26.7 + }, + { + "observations": { + "first_integral": 0.3085842591248712, + "predator": 1.6539203225679617, + "prey": 0.7264496745190338 + }, + "state": [ + 0.7264496745190338, + 1.6539203225679617 + ], + "step": 1069, + "time": 26.725 + }, + { + "observations": { + "first_integral": 0.3085842591248714, + "predator": 1.6404565345209483, + "prey": 0.7345054712578621 + }, + "state": [ + 0.7345054712578621, + 1.6404565345209483 + ], + "step": 1070, + "time": 26.75 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 1.6271355010941115, + "prey": 0.7427500658027378 + }, + "state": [ + 0.7427500658027378, + 1.6271355010941115 + ], + "step": 1071, + "time": 26.775 + }, + { + "observations": { + "first_integral": 0.3085842591248712, + "predator": 1.6139562907947762, + "prey": 0.7511867293303262 + }, + "state": [ + 0.7511867293303262, + 1.6139562907947762 + ], + "step": 1072, + "time": 26.8 + }, + { + "observations": { + "first_integral": 0.3085842591248712, + "predator": 1.600917982934618, + "prey": 0.7598188179664451 + }, + "state": [ + 0.7598188179664451, + 1.600917982934618 + ], + "step": 1073, + "time": 26.825 + }, + { + "observations": { + "first_integral": 0.3085842591248712, + "predator": 1.5880196677788485, + "prey": 0.7686497741083246 + }, + "state": [ + 0.7686497741083246, + 1.5880196677788485 + ], + "step": 1074, + "time": 26.85 + }, + { + "observations": { + "first_integral": 0.30858425912487136, + "predator": 1.5752604466941618, + "prey": 0.7776831277828189 + }, + "state": [ + 0.7776831277828189, + 1.5752604466941618 + ], + "step": 1075, + "time": 26.875 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 1.5626394322956798, + "prey": 0.7869224980404825 + }, + "state": [ + 0.7869224980404825, + 1.5626394322956798 + ], + "step": 1076, + "time": 26.9 + }, + { + "observations": { + "first_integral": 0.30858425912487125, + "predator": 1.5501557485932296, + "prey": 0.7963715943853487 + }, + "state": [ + 0.7963715943853487, + 1.5501557485932296 + ], + "step": 1077, + "time": 26.925 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 1.5378085311372145, + "prey": 0.8060342182402861 + }, + "state": [ + 0.8060342182402861, + 1.5378085311372145 + ], + "step": 1078, + "time": 26.95 + }, + { + "observations": { + "first_integral": 0.3085842591248712, + "predator": 1.52559692716435, + "prey": 0.8159142644478079 + }, + "state": [ + 0.8159142644478079, + 1.52559692716435 + ], + "step": 1079, + "time": 26.975 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 1.5135200957435828, + "prey": 0.8260157228061449 + }, + "state": [ + 0.8260157228061449, + 1.5135200957435828 + ], + "step": 1080, + "time": 27.0 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 1.5015772079224263, + "prey": 0.8363426796404644 + }, + "state": [ + 0.8363426796404644, + 1.5015772079224263 + ], + "step": 1081, + "time": 27.025 + }, + { + "observations": { + "first_integral": 0.3085842591248712, + "predator": 1.4897674468740285, + "prey": 0.8468993194090225 + }, + "state": [ + 0.8468993194090225, + 1.4897674468740285 + ], + "step": 1082, + "time": 27.05 + }, + { + "observations": { + "first_integral": 0.30858425912487125, + "predator": 1.47809000804524, + "prey": 0.8576899263440714 + }, + "state": [ + 0.8576899263440714, + 1.47809000804524 + ], + "step": 1083, + "time": 27.075 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 1.4665440993059407, + "prey": 0.868718886127328 + }, + "state": [ + 0.868718886127328, + 1.4665440993059407 + ], + "step": 1084, + "time": 27.1 + }, + { + "observations": { + "first_integral": 0.3085842591248712, + "predator": 1.45512894109995, + "prey": 0.879990687599735 + }, + "state": [ + 0.879990687599735, + 1.45512894109995 + ], + "step": 1085, + "time": 27.125 + }, + { + "observations": { + "first_integral": 0.30858425912487125, + "predator": 1.4438437665977488, + "prey": 0.8915099245053046 + }, + "state": [ + 0.8915099245053046, + 1.4438437665977488 + ], + "step": 1086, + "time": 27.15 + }, + { + "observations": { + "first_integral": 0.30858425912487125, + "predator": 1.4326878218513437, + "prey": 0.9032812972687295 + }, + "state": [ + 0.9032812972687295, + 1.4326878218513437 + ], + "step": 1087, + "time": 27.175 + }, + { + "observations": { + "first_integral": 0.30858425912487125, + "predator": 1.4216603659515348, + "prey": 0.9153096148064628 + }, + "state": [ + 0.9153096148064628, + 1.4216603659515348 + ], + "step": 1088, + "time": 27.2 + }, + { + "observations": { + "first_integral": 0.30858425912487136, + "predator": 1.4107606711878675, + "prey": 0.9275997963709481 + }, + "state": [ + 0.9275997963709481, + 1.4107606711878675 + ], + "step": 1089, + "time": 27.225 + }, + { + "observations": { + "first_integral": 0.30858425912487136, + "predator": 1.3999880232115958, + "prey": 0.9401568734275786 + }, + "state": [ + 0.9401568734275786, + 1.3999880232115958 + ], + "step": 1090, + "time": 27.25 + }, + { + "observations": { + "first_integral": 0.30858425912487136, + "predator": 1.3893417212019052, + "prey": 0.9529859915640249 + }, + "state": [ + 0.9529859915640249, + 1.3893417212019052 + ], + "step": 1091, + "time": 27.275 + }, + { + "observations": { + "first_integral": 0.3085842591248714, + "predator": 1.3788210780357375, + "prey": 0.9660924124314333 + }, + "state": [ + 0.9660924124314333, + 1.3788210780357375 + ], + "step": 1092, + "time": 27.3 + }, + { + "observations": { + "first_integral": 0.3085842591248714, + "predator": 1.3684254204615027, + "prey": 0.9794815157170116 + }, + "state": [ + 0.9794815157170116, + 1.3684254204615027 + ], + "step": 1093, + "time": 27.325 + }, + { + "observations": { + "first_integral": 0.30858425912487136, + "predator": 1.3581540892769786, + "prey": 0.9931588011474746 + }, + "state": [ + 0.9931588011474746, + 1.3581540892769786 + ], + "step": 1094, + "time": 27.35 + }, + { + "observations": { + "first_integral": 0.30858425912487136, + "predator": 1.3480064395117468, + "prey": 1.007129890522702 + }, + "state": [ + 1.007129890522702, + 1.3480064395117468 + ], + "step": 1095, + "time": 27.375 + }, + { + "observations": { + "first_integral": 0.3085842591248714, + "predator": 1.3379818406144468, + "prey": 1.0214005297790085 + }, + "state": [ + 1.0214005297790085, + 1.3379818406144468 + ], + "step": 1096, + "time": 27.4 + }, + { + "observations": { + "first_integral": 0.30858425912487136, + "predator": 1.3280796766452145, + "prey": 1.0359765910812646 + }, + "state": [ + 1.0359765910812646, + 1.3280796766452145 + ], + "step": 1097, + "time": 27.425 + }, + { + "observations": { + "first_integral": 0.30858425912487136, + "predator": 1.3182993464736268, + "prey": 1.0508640749431006 + }, + "state": [ + 1.0508640749431006, + 1.3182993464736268 + ], + "step": 1098, + "time": 27.45 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 1.3086402639824857, + "prey": 1.0660691123743693 + }, + "state": [ + 1.0660691123743693, + 1.3086402639824857 + ], + "step": 1099, + "time": 27.475 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 1.2991018582778326, + "prey": 1.081597967054886 + }, + "state": [ + 1.081597967054886, + 1.2991018582778326 + ], + "step": 1100, + "time": 27.5 + }, + { + "observations": { + "first_integral": 0.3085842591248714, + "predator": 1.2896835739055137, + "prey": 1.0974570375335095 + }, + "state": [ + 1.0974570375335095, + 1.2896835739055137 + ], + "step": 1101, + "time": 27.525 + }, + { + "observations": { + "first_integral": 0.30858425912487136, + "predator": 1.2803848710747079, + "prey": 1.1136528594514152 + }, + "state": [ + 1.1136528594514152, + 1.2803848710747079 + ], + "step": 1102, + "time": 27.55 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 1.2712052258887878, + "prey": 1.1301921077884087 + }, + "state": [ + 1.1301921077884087, + 1.2712052258887878 + ], + "step": 1103, + "time": 27.575 + }, + { + "observations": { + "first_integral": 0.30858425912487136, + "predator": 1.2621441305838994, + "prey": 1.1470815991310248 + }, + "state": [ + 1.1470815991310248, + 1.2621441305838994 + ], + "step": 1104, + "time": 27.6 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 1.2532010937757028, + "prey": 1.1643282939609745 + }, + "state": [ + 1.1643282939609745, + 1.2532010937757028 + ], + "step": 1105, + "time": 27.625 + }, + { + "observations": { + "first_integral": 0.3085842591248714, + "predator": 1.244375640714658, + "prey": 1.181939298962528 + }, + "state": [ + 1.181939298962528, + 1.244375640714658 + ], + "step": 1106, + "time": 27.65 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 1.2356673135503264, + "prey": 1.1999218693471685 + }, + "state": [ + 1.1999218693471685, + 1.2356673135503264 + ], + "step": 1107, + "time": 27.675 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 1.2270756716051245, + "prey": 1.2182834111938168 + }, + "state": [ + 1.2182834111938168, + 1.2270756716051245 + ], + "step": 1108, + "time": 27.7 + }, + { + "observations": { + "first_integral": 0.3085842591248714, + "predator": 1.2186002916579892, + "prey": 1.2370314838027956 + }, + "state": [ + 1.2370314838027956, + 1.2186002916579892 + ], + "step": 1109, + "time": 27.725 + }, + { + "observations": { + "first_integral": 0.3085842591248712, + "predator": 1.210240768238466, + "prey": 1.2561738020614779 + }, + "state": [ + 1.2561738020614779, + 1.210240768238466 + ], + "step": 1110, + "time": 27.75 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 1.2019967139316876, + "prey": 1.2757182388195527 + }, + "state": [ + 1.2757182388195527, + 1.2019967139316876 + ], + "step": 1111, + "time": 27.775 + }, + { + "observations": { + "first_integral": 0.30858425912487125, + "predator": 1.1938677596947953, + "prey": 1.29567282727155 + }, + "state": [ + 1.29567282727155, + 1.1938677596947953 + ], + "step": 1112, + "time": 27.8 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 1.185853555185325, + "prey": 1.3160457633441862 + }, + "state": [ + 1.3160457633441862, + 1.185853555185325 + ], + "step": 1113, + "time": 27.825 + }, + { + "observations": { + "first_integral": 0.30858425912487136, + "predator": 1.1779537691021156, + "prey": 1.336845408085925 + }, + "state": [ + 1.336845408085925, + 1.1779537691021156 + ], + "step": 1114, + "time": 27.85 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 1.170168089539343, + "prey": 1.3580802900558604 + }, + "state": [ + 1.3580802900558604, + 1.170168089539343 + ], + "step": 1115, + "time": 27.875 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 1.162496224354256, + "prey": 1.379759107708995 + }, + "state": [ + 1.379759107708995, + 1.162496224354256 + ], + "step": 1116, + "time": 27.9 + }, + { + "observations": { + "first_integral": 0.3085842591248714, + "predator": 1.1549379015492711, + "prey": 1.401890731774613 + }, + "state": [ + 1.401890731774613, + 1.1549379015492711 + ], + "step": 1117, + "time": 27.925 + }, + { + "observations": { + "first_integral": 0.3085842591248714, + "predator": 1.1474928696690658, + "prey": 1.4244842076243376 + }, + "state": [ + 1.4244842076243376, + 1.1474928696690658 + ], + "step": 1118, + "time": 27.95 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 1.140160898213347, + "prey": 1.447548757626231 + }, + "state": [ + 1.447548757626231, + 1.140160898213347 + ], + "step": 1119, + "time": 27.975 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 1.1329417780660274, + "prey": 1.4710937834809363 + }, + "state": [ + 1.4710937834809363, + 1.1329417780660274 + ], + "step": 1120, + "time": 28.0 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 1.1258353219415171, + "prey": 1.495128868535789 + }, + "state": [ + 1.495128868535789, + 1.1258353219415171 + ], + "step": 1121, + "time": 28.025 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 1.118841364848931, + "prey": 1.519663780072355 + }, + "state": [ + 1.519663780072355, + 1.118841364848931 + ], + "step": 1122, + "time": 28.05 + }, + { + "observations": { + "first_integral": 0.3085842591248712, + "predator": 1.1119597645749983, + "prey": 1.5447084715626984 + }, + "state": [ + 1.5447084715626984, + 1.1119597645749983 + ], + "step": 1123, + "time": 28.075 + }, + { + "observations": { + "first_integral": 0.30858425912487114, + "predator": 1.1051904021865067, + "prey": 1.5702730848893698 + }, + "state": [ + 1.5702730848893698, + 1.1051904021865067 + ], + "step": 1124, + "time": 28.1 + }, + { + "observations": { + "first_integral": 0.30858425912487114, + "predator": 1.0985331825531783, + "prey": 1.596367952523656 + }, + "state": [ + 1.596367952523656, + 1.0985331825531783 + ], + "step": 1125, + "time": 28.125 + }, + { + "observations": { + "first_integral": 0.3085842591248712, + "predator": 1.0919880348918583, + "prey": 1.6230035996565013 + }, + "state": [ + 1.6230035996565013, + 1.0919880348918583 + ], + "step": 1126, + "time": 28.15 + }, + { + "observations": { + "first_integral": 0.3085842591248711, + "predator": 1.085554913332993, + "prey": 1.6501907462759444 + }, + "state": [ + 1.6501907462759444, + 1.085554913332993 + ], + "step": 1127, + "time": 28.175 + }, + { + "observations": { + "first_integral": 0.3085842591248711, + "predator": 1.0792337975103792, + "prey": 1.677940309184661 + }, + "state": [ + 1.677940309184661, + 1.0792337975103792 + ], + "step": 1128, + "time": 28.2 + }, + { + "observations": { + "first_integral": 0.3085842591248711, + "predator": 1.073024693175216, + "prey": 1.7062634039508187 + }, + "state": [ + 1.7062634039508187, + 1.073024693175216 + ], + "step": 1129, + "time": 28.225 + }, + { + "observations": { + "first_integral": 0.30858425912487103, + "predator": 1.0669276328355632, + "prey": 1.7351713467848788 + }, + "state": [ + 1.7351713467848788, + 1.0669276328355632 + ], + "step": 1130, + "time": 28.25 + }, + { + "observations": { + "first_integral": 0.3085842591248712, + "predator": 1.0609426764223087, + "prey": 1.7646756563347614 + }, + "state": [ + 1.7646756563347614, + 1.0609426764223087 + ], + "step": 1131, + "time": 28.275 + }, + { + "observations": { + "first_integral": 0.30858425912487103, + "predator": 1.055069911982857, + "prey": 1.7947880553911 + }, + "state": [ + 1.7947880553911, + 1.055069911982857 + ], + "step": 1132, + "time": 28.3 + }, + { + "observations": { + "first_integral": 0.30858425912487114, + "predator": 1.0493094564037582, + "prey": 1.825520472493954 + }, + "state": [ + 1.825520472493954, + 1.0493094564037582 + ], + "step": 1133, + "time": 28.325 + }, + { + "observations": { + "first_integral": 0.3085842591248711, + "predator": 1.043661456163567, + "prey": 1.8568850434318418 + }, + "state": [ + 1.8568850434318418, + 1.043661456163567 + ], + "step": 1134, + "time": 28.35 + }, + { + "observations": { + "first_integral": 0.308584259124871, + "predator": 1.0381260881173022, + "prey": 1.888894112623242 + }, + "state": [ + 1.888894112623242, + 1.0381260881173022 + ], + "step": 1135, + "time": 28.375 + }, + { + "observations": { + "first_integral": 0.30858425912487103, + "predator": 1.0327035603138928, + "prey": 1.9215602343703855 + }, + "state": [ + 1.9215602343703855, + 1.0327035603138928 + ], + "step": 1136, + "time": 28.4 + }, + { + "observations": { + "first_integral": 0.30858425912487114, + "predator": 1.0273941128481148, + "prey": 1.9548961739742994 + }, + "state": [ + 1.9548961739742994, + 1.0273941128481148 + ], + "step": 1137, + "time": 28.425 + }, + { + "observations": { + "first_integral": 0.30858425912487114, + "predator": 1.0221980187485504, + "prey": 1.9889149086995834 + }, + "state": [ + 1.9889149086995834, + 1.0221980187485504 + ], + "step": 1138, + "time": 28.45 + }, + { + "observations": { + "first_integral": 0.3085842591248711, + "predator": 1.0171155849031825, + "prey": 2.0236296285767232 + }, + "state": [ + 2.0236296285767232, + 1.0171155849031825 + ], + "step": 1139, + "time": 28.475 + }, + { + "observations": { + "first_integral": 0.3085842591248711, + "predator": 1.0121471530243364, + "prey": 2.0590537370288664 + }, + "state": [ + 2.0590537370288664, + 1.0121471530243364 + ], + "step": 1140, + "time": 28.5 + }, + { + "observations": { + "first_integral": 0.308584259124871, + "predator": 1.007293100654716, + "prey": 2.0952008513095057 + }, + "state": [ + 2.0952008513095057, + 1.007293100654716 + ], + "step": 1141, + "time": 28.525 + }, + { + "observations": { + "first_integral": 0.3085842591248711, + "predator": 1.002553842216406, + "prey": 2.1320848027364443 + }, + "state": [ + 2.1320848027364443, + 1.002553842216406 + ], + "step": 1142, + "time": 28.55 + }, + { + "observations": { + "first_integral": 0.3085842591248711, + "predator": 0.9979298301047757, + "prey": 2.1697196367067773 + }, + "state": [ + 2.1697196367067773, + 0.9979298301047757 + ], + "step": 1143, + "time": 28.575 + }, + { + "observations": { + "first_integral": 0.3085842591248711, + "predator": 0.9934215558293026, + "prey": 2.2081196124767293 + }, + "state": [ + 2.2081196124767293, + 0.9934215558293026 + ], + "step": 1144, + "time": 28.6 + }, + { + "observations": { + "first_integral": 0.3085842591248712, + "predator": 0.9890295512034635, + "prey": 2.247299202689106 + }, + "state": [ + 2.247299202689106, + 0.9890295512034635 + ], + "step": 1145, + "time": 28.625 + }, + { + "observations": { + "first_integral": 0.30858425912487114, + "predator": 0.9847543895858958, + "prey": 2.2872730926304157 + }, + "state": [ + 2.2872730926304157, + 0.9847543895858958 + ], + "step": 1146, + "time": 28.65 + }, + { + "observations": { + "first_integral": 0.3085842591248711, + "predator": 0.980596687175174, + "prey": 2.3280561791984296 + }, + "state": [ + 2.3280561791984296, + 0.980596687175174 + ], + "step": 1147, + "time": 28.675 + }, + { + "observations": { + "first_integral": 0.30858425912487103, + "predator": 0.9765571043606351, + "prey": 2.369663569560031 + }, + "state": [ + 2.369663569560031, + 0.9765571043606351 + ], + "step": 1148, + "time": 28.7 + }, + { + "observations": { + "first_integral": 0.30858425912487103, + "predator": 0.9726363471318, + "prey": 2.412110579478121 + }, + "state": [ + 2.412110579478121, + 0.9726363471318 + ], + "step": 1149, + "time": 28.725 + }, + { + "observations": { + "first_integral": 0.3085842591248711, + "predator": 0.9688351685490768, + "prey": 2.4554127312849165 + }, + "state": [ + 2.4554127312849165, + 0.9688351685490768 + ], + "step": 1150, + "time": 28.75 + }, + { + "observations": { + "first_integral": 0.3085842591248711, + "predator": 0.9651543702785302, + "prey": 2.4995857514780893 + }, + "state": [ + 2.4995857514780893, + 0.9651543702785302 + ], + "step": 1151, + "time": 28.775 + }, + { + "observations": { + "first_integral": 0.30858425912487103, + "predator": 0.9615948041936586, + "prey": 2.5446455679145226 + }, + "state": [ + 2.5446455679145226, + 0.9615948041936586 + ], + "step": 1152, + "time": 28.8 + }, + { + "observations": { + "first_integral": 0.30858425912487103, + "predator": 0.9581573740472421, + "prey": 2.590608306575327 + }, + "state": [ + 2.590608306575327, + 0.9581573740472421 + ], + "step": 1153, + "time": 28.825 + }, + { + "observations": { + "first_integral": 0.30858425912487103, + "predator": 0.9548430372164662, + "prey": 2.6374902878742845 + }, + "state": [ + 2.6374902878742845, + 0.9548430372164662 + ], + "step": 1154, + "time": 28.85 + }, + { + "observations": { + "first_integral": 0.308584259124871, + "predator": 0.9516528065246971, + "prey": 2.685308022480168 + }, + "state": [ + 2.685308022480168, + 0.9516528065246971 + ], + "step": 1155, + "time": 28.875 + }, + { + "observations": { + "first_integral": 0.3085842591248711, + "predator": 0.9485877521434096, + "prey": 2.7340782066221294 + }, + "state": [ + 2.7340782066221294, + 0.9485877521434096 + ], + "step": 1156, + "time": 28.9 + }, + { + "observations": { + "first_integral": 0.3085842591248712, + "predator": 0.9456490035779657, + "prey": 2.7838177168453213 + }, + "state": [ + 2.7838177168453213, + 0.9456490035779657 + ], + "step": 1157, + "time": 28.925 + }, + { + "observations": { + "first_integral": 0.30858425912487114, + "predator": 0.9428377517410887, + "prey": 2.834543604182379 + }, + "state": [ + 2.834543604182379, + 0.9428377517410887 + ], + "step": 1158, + "time": 28.95 + }, + { + "observations": { + "first_integral": 0.30858425912487114, + "predator": 0.9401552511180649, + "prey": 2.886273087704571 + }, + "state": [ + 2.886273087704571, + 0.9401552511180649 + ], + "step": 1159, + "time": 28.975 + }, + { + "observations": { + "first_integral": 0.30858425912487125, + "predator": 0.937602822027899, + "prey": 2.9390235474142137 + }, + "state": [ + 2.9390235474142137, + 0.937602822027899 + ], + "step": 1160, + "time": 29.0 + }, + { + "observations": { + "first_integral": 0.30858425912487114, + "predator": 0.935181852984828, + "prey": 2.9928125164383457 + }, + "state": [ + 2.9928125164383457, + 0.935181852984828 + ], + "step": 1161, + "time": 29.025 + }, + { + "observations": { + "first_integral": 0.3085842591248711, + "predator": 0.9328938031648145, + "prey": 3.0476576724810953 + }, + "state": [ + 3.0476576724810953, + 0.9328938031648145 + ], + "step": 1162, + "time": 29.05 + }, + { + "observations": { + "first_integral": 0.30858425912487114, + "predator": 0.9307402049818448, + "prey": 3.1035768284902425 + }, + "state": [ + 3.1035768284902425, + 0.9307402049818448 + ], + "step": 1163, + "time": 29.075 + }, + { + "observations": { + "first_integral": 0.3085842591248711, + "predator": 0.9287226667790728, + "prey": 3.160587922491114 + }, + "state": [ + 3.160587922491114, + 0.9287226667790728 + ], + "step": 1164, + "time": 29.1 + }, + { + "observations": { + "first_integral": 0.3085842591248711, + "predator": 0.9268428756400884, + "prey": 3.2187090065382735 + }, + "state": [ + 3.2187090065382735, + 0.9268428756400884 + ], + "step": 1165, + "time": 29.125 + }, + { + "observations": { + "first_integral": 0.30858425912487114, + "predator": 0.9251026003258124, + "prey": 3.277958234733309 + }, + "state": [ + 3.277958234733309, + 0.9251026003258124 + ], + "step": 1166, + "time": 29.15 + }, + { + "observations": { + "first_integral": 0.30858425912487103, + "predator": 0.9235036943427769, + "prey": 3.3383538502539634 + }, + "state": [ + 3.3383538502539634, + 0.9235036943427769 + ], + "step": 1167, + "time": 29.175 + }, + { + "observations": { + "first_integral": 0.3085842591248711, + "predator": 0.9220480991487934, + "prey": 3.3999141713372834 + }, + "state": [ + 3.3999141713372834, + 0.9220480991487934 + ], + "step": 1168, + "time": 29.2 + }, + { + "observations": { + "first_integral": 0.308584259124871, + "predator": 0.9207378475022784, + "prey": 3.4626575761566314 + }, + "state": [ + 3.4626575761566314, + 0.9207378475022784 + ], + "step": 1169, + "time": 29.225 + }, + { + "observations": { + "first_integral": 0.3085842591248712, + "predator": 0.9195750669617772, + "prey": 3.526602486528994 + }, + "state": [ + 3.526602486528994, + 0.9195750669617772 + ], + "step": 1170, + "time": 29.25 + }, + { + "observations": { + "first_integral": 0.3085842591248711, + "predator": 0.9185619835425014, + "prey": 3.5917673503863874 + }, + "state": [ + 3.5917673503863874, + 0.9185619835425014 + ], + "step": 1171, + "time": 29.275 + }, + { + "observations": { + "first_integral": 0.3085842591248711, + "predator": 0.9177009255369859, + "prey": 3.6581706229413435 + }, + "state": [ + 3.6581706229413435, + 0.9177009255369859 + ], + "step": 1172, + "time": 29.3 + }, + { + "observations": { + "first_integral": 0.30858425912487114, + "predator": 0.9169943275072661, + "prey": 3.7258307464733496 + }, + "state": [ + 3.7258307464733496, + 0.9169943275072661 + ], + "step": 1173, + "time": 29.325 + }, + { + "observations": { + "first_integral": 0.3085842591248712, + "predator": 0.916444734456274, + "prey": 3.7947661286595427 + }, + "state": [ + 3.7947661286595427, + 0.916444734456274 + ], + "step": 1174, + "time": 29.35 + }, + { + "observations": { + "first_integral": 0.3085842591248712, + "predator": 0.9160548061864661, + "prey": 3.864995119368927 + }, + "state": [ + 3.864995119368927, + 0.9160548061864661 + ], + "step": 1175, + "time": 29.375 + }, + { + "observations": { + "first_integral": 0.3085842591248712, + "predator": 0.9158273218540054, + "prey": 3.9365359858360387 + }, + "state": [ + 3.9365359858360387, + 0.9158273218540054 + ], + "step": 1176, + "time": 29.4 + }, + { + "observations": { + "first_integral": 0.30858425912487103, + "predator": 0.9157651847271427, + "prey": 4.009406886125487 + }, + "state": [ + 4.009406886125487, + 0.9157651847271427 + ], + "step": 1177, + "time": 29.425 + }, + { + "observations": { + "first_integral": 0.3085842591248712, + "predator": 0.9158714271577626, + "prey": 4.083625840794975 + }, + "state": [ + 4.083625840794975, + 0.9158714271577626 + ], + "step": 1178, + "time": 29.45 + }, + { + "observations": { + "first_integral": 0.3085842591248711, + "predator": 0.9161492157753907, + "prey": 4.1592107026601735 + }, + "state": [ + 4.1592107026601735, + 0.9161492157753907 + ], + "step": 1179, + "time": 29.475 + }, + { + "observations": { + "first_integral": 0.3085842591248711, + "predator": 0.9166018569132757, + "prey": 4.23617912456003 + }, + "state": [ + 4.23617912456003, + 0.9166018569132757 + ], + "step": 1180, + "time": 29.5 + }, + { + "observations": { + "first_integral": 0.30858425912487114, + "predator": 0.9172328022765004, + "prey": 4.314548525017145 + }, + "state": [ + 4.314548525017145, + 0.9172328022765004 + ], + "step": 1181, + "time": 29.525 + }, + { + "observations": { + "first_integral": 0.3085842591248712, + "predator": 0.9180456548623803, + "prey": 4.394336051682578 + }, + "state": [ + 4.394336051682578, + 0.9180456548623803 + ], + "step": 1182, + "time": 29.55 + }, + { + "observations": { + "first_integral": 0.30858425912487114, + "predator": 0.919044175143744, + "prey": 4.475558542450081 + }, + "state": [ + 4.475558542450081, + 0.919044175143744 + ], + "step": 1183, + "time": 29.575 + }, + { + "observations": { + "first_integral": 0.3085842591248712, + "predator": 0.9202322875259841, + "prey": 4.558232484119783 + }, + "state": [ + 4.558232484119783, + 0.9202322875259841 + ], + "step": 1184, + "time": 29.6 + }, + { + "observations": { + "first_integral": 0.30858425912487103, + "predator": 0.9216140870890699, + "prey": 4.642373968486067 + }, + "state": [ + 4.642373968486067, + 0.9216140870890699 + ], + "step": 1185, + "time": 29.625 + }, + { + "observations": { + "first_integral": 0.30858425912487114, + "predator": 0.9231938466259961, + "prey": 4.7279986457198095 + }, + "state": [ + 4.7279986457198095, + 0.9231938466259961 + ], + "step": 1186, + "time": 29.65 + }, + { + "observations": { + "first_integral": 0.30858425912487114, + "predator": 0.9249760239893965, + "prey": 4.815121674909451 + }, + "state": [ + 4.815121674909451, + 0.9249760239893965 + ], + "step": 1187, + "time": 29.675 + }, + { + "observations": { + "first_integral": 0.30858425912487114, + "predator": 0.9269652697582857, + "prey": 4.903757671620524 + }, + "state": [ + 4.903757671620524, + 0.9269652697582857 + ], + "step": 1188, + "time": 29.7 + }, + { + "observations": { + "first_integral": 0.30858425912487103, + "predator": 0.9291664352371088, + "prey": 4.99392065232805 + }, + "state": [ + 4.99392065232805, + 0.9291664352371088 + ], + "step": 1189, + "time": 29.725 + }, + { + "observations": { + "first_integral": 0.30858425912487114, + "predator": 0.9315845807994189, + "prey": 5.085623975570561 + }, + "state": [ + 5.085623975570561, + 0.9315845807994189 + ], + "step": 1190, + "time": 29.75 + }, + { + "observations": { + "first_integral": 0.3085842591248712, + "predator": 0.9342249845886512, + "prey": 5.178880279669983 + }, + "state": [ + 5.178880279669983, + 0.9342249845886512 + ], + "step": 1191, + "time": 29.775 + }, + { + "observations": { + "first_integral": 0.3085842591248712, + "predator": 0.9370931515885033, + "prey": 5.273701416855796 + }, + "state": [ + 5.273701416855796, + 0.9370931515885033 + ], + "step": 1192, + "time": 29.8 + }, + { + "observations": { + "first_integral": 0.3085842591248712, + "predator": 0.9401948230754454, + "prey": 5.370098383627349 + }, + "state": [ + 5.370098383627349, + 0.9401948230754454 + ], + "step": 1193, + "time": 29.825 + }, + { + "observations": { + "first_integral": 0.30858425912487125, + "predator": 0.9435359864658136, + "prey": 5.4680812471833 + }, + "state": [ + 5.4680812471833, + 0.9435359864658136 + ], + "step": 1194, + "time": 29.85 + }, + { + "observations": { + "first_integral": 0.30858425912487114, + "predator": 0.9471228855697629, + "prey": 5.567659067742156 + }, + "state": [ + 5.567659067742156, + 0.9471228855697629 + ], + "step": 1195, + "time": 29.875 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 0.9509620312641187, + "prey": 5.668839816574188 + }, + "state": [ + 5.668839816574188, + 0.9509620312641187 + ], + "step": 1196, + "time": 29.9 + }, + { + "observations": { + "first_integral": 0.30858425912487125, + "predator": 0.9550602125957659, + "prey": 5.771630289560393 + }, + "state": [ + 5.771630289560393, + 0.9550602125957659 + ], + "step": 1197, + "time": 29.925 + }, + { + "observations": { + "first_integral": 0.30858425912487114, + "predator": 0.9594245083267131, + "prey": 5.876036016090995 + }, + "state": [ + 5.876036016090995, + 0.9594245083267131 + ], + "step": 1198, + "time": 29.95 + }, + { + "observations": { + "first_integral": 0.30858425912487125, + "predator": 0.9640622989313176, + "prey": 5.98206116311316 + }, + "state": [ + 5.98206116311316, + 0.9640622989313176 + ], + "step": 1199, + "time": 29.975 + }, + { + "observations": { + "first_integral": 0.3085842591248713, + "predator": 0.9689812790552831, + "prey": 6.089708434134617 + }, + "state": [ + 6.089708434134617, + 0.9689812790552831 + ], + "step": 1200, + "time": 30.0 + } + ], + "trace_sha256": "b67250eb64257ffcb68dda5dc6101dccdc13576ee67caab191675add9df54ca6" + }, + "changed": null, + "comparison": { + "endpoint_time_atol": 1e-10, + "event_time_atol": 1e-08, + "expected_solver_success": true, + "invariant_measure_atol": 1e-08, + "max_unmatched_points": 0, + "mode": "tolerance", + "observable_atol": { + "first_integral": 1e-08, + "predator": 1e-07, + "prey": 1e-07 + }, + "require_classifier": true, + "require_invariants": true, + "retained_grid_time_atol": 1e-12, + "state_atol": 1e-07, + "state_rtol": 1e-07 + }, + "configuration": { + "adapter": { + "factory": "predator_prey_adapter", + "kind": "python", + "module": "phaseprobe.examples.scipy_models", + "options": { + "atol": [ + 1e-12, + 1e-12 + ], + "dense_output": false, + "identity": "phaseprobe-predator-prey-scipy-v1", + "initial_state": [ + 10.0, + 5.0 + ], + "max_step": 0.05, + "method": "DOP853", + "rtol": 1e-10, + "state_names": [ + "prey", + "predator" + ], + "t_eval": { + "kind": "linspace", + "points": 1201 + }, + "t_span": [ + 0.0, + 30.0 + ], + "vectorized": false + } + }, + "check": { + "analysis": "invariants" + }, + "classification_rule": "Require both populations to remain positive over the declared retained grid.", + "invalid_state_policy": "Abort on solver failure, invalid shape, NaN, infinity, or non-finite observables.", + "model": "predator-prey-scipy", + "parameters": { + "alpha": 1.1, + "beta": 0.4, + "delta": 0.1, + "gamma": 0.4 + }, + "policy": { + "forbid_findings": true, + "require_finding": false, + "require_invariants": true + }, + "refinement_rule": "DOP853 with tight tolerances and a bounded maximum step; compare with the committed coarse negative control.", + "replay": { + "endpoint_time_atol": 1e-10, + "event_time_atol": 1e-08, + "expected_solver_success": true, + "invariant_measure_atol": 1e-08, + "max_unmatched_points": 0, + "mode": "tolerance", + "observable_atol": { + "first_integral": 1e-08, + "predator": 1e-07, + "prey": 1e-07 + }, + "require_classifier": true, + "require_invariants": true, + "retained_grid_time_atol": 1e-12, + "state_atol": 1e-07, + "state_rtol": 1e-07 + }, + "schema_version": "2.0", + "seed": 31, + "simulation": { + "hard_state_limit": 1000.0, + "trace_cap": 1201 + }, + "tolerances": { + "invariant_drift": 1e-08 + } + }, + "created_by": "phaseprobe 0.2.0", + "finding": null, + "integrity_sha256": "df0bfa46914f2b7e1a021e77a575b9bec0f45035035f0e4339d28723718e752a", + "model": "predator-prey-scipy", + "model_identity": "phaseprobe-predator-prey-scipy-v1:sha256:ae5c91eec0f48a4f", + "reproducible": true, + "schema_version": "2.0", + "seed": 31 +} diff --git a/tests/generated/test_lorenz_scipy_transition.py b/tests/generated/test_lorenz_scipy_transition.py new file mode 100644 index 0000000..5cb7e69 --- /dev/null +++ b/tests/generated/test_lorenz_scipy_transition.py @@ -0,0 +1,19 @@ +"""Generated by PhaseProbe from a validated replay fixture.""" + +from pathlib import Path + +import pytest + +from phaseprobe.replay import verify_replay + +pytest.importorskip("scipy") +pytestmark = pytest.mark.scipy + + +FIXTURE = Path(__file__).parent / "fixtures" / "lorenz_scipy-replay.json" + + +def test_lorenz_scipy_transition_replays() -> None: + """Re-execute model/config/seed and verify the fixture's declared replay policy.""" + result = verify_replay(FIXTURE) + assert result.ok, result.as_dict() diff --git a/tests/generated/test_predator_prey_scipy_transition.py b/tests/generated/test_predator_prey_scipy_transition.py new file mode 100644 index 0000000..8313ca1 --- /dev/null +++ b/tests/generated/test_predator_prey_scipy_transition.py @@ -0,0 +1,19 @@ +"""Generated by PhaseProbe from a validated replay fixture.""" + +from pathlib import Path + +import pytest + +from phaseprobe.replay import verify_replay + +pytest.importorskip("scipy") +pytestmark = pytest.mark.scipy + + +FIXTURE = Path(__file__).parent / "fixtures" / "predator_prey_scipy-replay.json" + + +def test_predator_prey_scipy_transition_replays() -> None: + """Re-execute model/config/seed and verify the fixture's declared replay policy.""" + result = verify_replay(FIXTURE) + assert result.ok, result.as_dict() diff --git a/tests/test_artifacts_replay.py b/tests/test_artifacts_replay.py index 2ba1875..93e26f9 100644 --- a/tests/test_artifacts_replay.py +++ b/tests/test_artifacts_replay.py @@ -83,4 +83,4 @@ def test_report_command_source_regenerates_json_and_html(artifact_run: Path) -> json_path, html_path = regenerate_reports(artifact_run) assert json_path.exists() assert html_path.exists() - assert json.loads(json_path.read_text(encoding="utf-8"))["schema_version"] == "1.0" + assert json.loads(json_path.read_text(encoding="utf-8"))["schema_version"] == "2.0" diff --git a/tests/test_cli.py b/tests/test_cli.py index ffabb2f..226fd7d 100644 --- a/tests/test_cli.py +++ b/tests/test_cli.py @@ -94,7 +94,7 @@ def test_json_output_is_versioned(tmp_path: Path, capsys: pytest.CaptureFixture[ ) assert code == ExitCode.OK payload = json.loads(capsys.readouterr().out) - assert payload["schema_version"] == "1.0" + assert payload["schema_version"] == "2.0" assert payload["artifacts"]["replay"].endswith("replay.json") diff --git a/tests/test_optional_dependency.py b/tests/test_optional_dependency.py new file mode 100644 index 0000000..7c04003 --- /dev/null +++ b/tests/test_optional_dependency.py @@ -0,0 +1,167 @@ +"""Core-only import, schema compatibility, and configured-loader safety tests.""" + +from __future__ import annotations + +import json +import os +import subprocess +import sys +from pathlib import Path +from types import SimpleNamespace + +import pytest + +from phaseprobe.adapters.loader import load_configured_adapter +from phaseprobe.config import parse_config +from phaseprobe.errors import ConfigurationError +from phaseprobe.models import get_model + +ROOT = Path(__file__).resolve().parents[1] + + +def _isolated(command: str) -> subprocess.CompletedProcess[str]: + environment = dict(os.environ) + environment["PYTHONPATH"] = str(ROOT / "src") + return subprocess.run( + [sys.executable, "-S", "-c", command], + check=False, + capture_output=True, + env=environment, + text=True, + timeout=20, + ) + + +def test_core_imports_without_site_packages_or_scipy() -> None: + completed = _isolated("import phaseprobe; print(phaseprobe.__version__)") + assert completed.returncode == 0, completed.stderr + assert completed.stdout.strip() == "0.2.0" + + +def test_scipy_adapter_import_has_actionable_optional_extra_error() -> None: + completed = _isolated("from phaseprobe.adapters.scipy import SolveIVPAdapter") + assert completed.returncode != 0 + assert "phaseprobe[scipy]" in completed.stderr + assert "optional" in completed.stderr.lower() + + +@pytest.mark.parametrize( + ("module", "factory"), + [ + ("../untrusted", "build"), + ("module.py", "build-model"), + ("os;system", "build"), + ("valid.module", "factory()"), + ], +) +def test_malicious_or_path_like_adapter_references_are_rejected(module: str, factory: str) -> None: + payload = { + "schema_version": "2.0", + "model": "external", + "adapter": { + "kind": "python", + "module": module, + "factory": factory, + }, + } + with pytest.raises(ConfigurationError, match="adapter"): + parse_config(json.dumps(payload), "malicious test") + + +def test_v1_and_v2_configuration_schemas_remain_readable() -> None: + for version in ("1.0", "2.0"): + config = parse_config( + json.dumps({"schema_version": version, "model": "logistic-map"}), + f"schema {version}", + ) + assert config.data["schema_version"] == version + + +def test_configured_loader_reports_import_and_factory_contract_errors( + monkeypatch: pytest.MonkeyPatch, +) -> None: + missing_reference = parse_config( + json.dumps({"schema_version": "2.0", "model": "external"}), "missing adapter" + ) + with pytest.raises(ConfigurationError, match="adapter must be a JSON object"): + load_configured_adapter(missing_reference) + + reference = parse_config( + json.dumps( + { + "schema_version": "2.0", + "model": "external", + "adapter": { + "kind": "python", + "module": "trusted.adapters", + "factory": "build", + }, + } + ), + "loader contract", + ) + + def fail_import(name: str) -> object: + raise ImportError(f"no module named {name}") + + monkeypatch.setattr("phaseprobe.adapters.loader.importlib.import_module", fail_import) + with pytest.raises(ConfigurationError, match="cannot import"): + load_configured_adapter(reference) + + monkeypatch.setattr( + "phaseprobe.adapters.loader.importlib.import_module", + lambda name: SimpleNamespace(build=42), + ) + with pytest.raises(ConfigurationError, match="not callable"): + load_configured_adapter(reference) + + def rejected_factory(values: object) -> object: + raise ConfigurationError("factory rejected its configuration") + + monkeypatch.setattr( + "phaseprobe.adapters.loader.importlib.import_module", + lambda name: SimpleNamespace(build=rejected_factory), + ) + with pytest.raises(ConfigurationError, match="factory rejected"): + load_configured_adapter(reference) + + def failed_factory(values: object) -> object: + raise RuntimeError("factory bug") + + monkeypatch.setattr( + "phaseprobe.adapters.loader.importlib.import_module", + lambda name: SimpleNamespace(build=failed_factory), + ) + with pytest.raises(ConfigurationError, match="factory bug"): + load_configured_adapter(reference) + + monkeypatch.setattr( + "phaseprobe.adapters.loader.importlib.import_module", + lambda name: SimpleNamespace(build=lambda values: object()), + ) + with pytest.raises(ConfigurationError, match="did not return"): + load_configured_adapter(reference) + + model = get_model("logistic-map") + monkeypatch.setattr( + "phaseprobe.adapters.loader.importlib.import_module", + lambda name: SimpleNamespace(build=lambda values: model), + ) + with pytest.raises(ConfigurationError, match="does not match"): + load_configured_adapter(reference) + + matching = parse_config( + json.dumps( + { + "schema_version": "2.0", + "model": "logistic-map", + "adapter": { + "kind": "python", + "module": "trusted.adapters", + "factory": "build", + }, + } + ), + "matching loader", + ) + assert load_configured_adapter(matching) is model diff --git a/tests/test_scipy_adapter.py b/tests/test_scipy_adapter.py new file mode 100644 index 0000000..6180af6 --- /dev/null +++ b/tests/test_scipy_adapter.py @@ -0,0 +1,502 @@ +"""Optional SciPy adapter, numerical controls, and tolerance-replay tests.""" + +from __future__ import annotations + +import os +import subprocess +import sys +from pathlib import Path +from types import SimpleNamespace + +import pytest + +pytest.importorskip("numpy") +pytest.importorskip("scipy") + +import numpy as np +import numpy.typing as npt +import scipy + +from phaseprobe import run_perturbation, run_simulation +from phaseprobe.adapters.scipy import EventSpec, SolveIVPAdapter +from phaseprobe.artifacts import write_artifacts +from phaseprobe.config import ProbeConfig, load_config, parse_config +from phaseprobe.engine import ProbeOutcome, run_check, run_perturb, simulate +from phaseprobe.errors import ConfigurationError, NumericalFailure +from phaseprobe.generate import generate_regression_test +from phaseprobe.replay import verify_replay +from phaseprobe.types import Parameters + +pytestmark = pytest.mark.scipy +ROOT = Path(__file__).resolve().parents[1] +FloatArray = npt.NDArray[np.float64] + + +def exponential_rhs(time: float, state: FloatArray, parameters: Parameters) -> tuple[float, ...]: + return (-parameters.get("rate", 1.0) * float(state[0]),) + + +def _adapter( + *, + atol: float | tuple[float, ...] = 1e-10, + method: str = "DOP853", + points: int = 21, + events: tuple[EventSpec, ...] = (), + vectorized: bool = False, +) -> SolveIVPAdapter: + return SolveIVPAdapter( + name="exponential-scipy", + identity="test-exponential-v1", + rhs=exponential_rhs, + state_names=("value",), + initial_state=(1.0,), + t_span=(0.0, 2.0), + t_eval=points, + method=method, + rtol=1e-9, + atol=atol, + max_step=0.1, + events=events, + vectorized=vectorized, + ) + + +def _engine_config() -> ProbeConfig: + return parse_config( + """{ + "schema_version":"2.0", + "model":"exponential-scipy", + "seed":7, + "parameters":{"rate":1.0}, + "simulation":{"trace_cap":16,"hard_state_limit":100.0}, + "tolerances":{} + }""", + "test adapter", + ) + + +def test_adapter_construction_and_configuration_serialization() -> None: + scalar = _adapter(atol=1e-10, method="RK45") + vector = _adapter(atol=(1e-10,)) + assert scalar.configuration()["atol"] == 1e-10 + assert vector.configuration()["atol"] == [1e-10] + assert scalar.configuration()["t_eval"] == { + "kind": "linspace", + "start": 0.0, + "stop": 2.0, + "points": 21, + } + assert scalar.identity.startswith("test-exponential-v1:sha256:") + assert "rhs" not in scalar.configuration() + + +def test_t_eval_must_be_controlled_and_strictly_ordered() -> None: + with pytest.raises(ConfigurationError, match="t_eval"): + SolveIVPAdapter( + name="bad-grid", + identity="bad-grid-v1", + rhs=exponential_rhs, + state_names=("value",), + initial_state=(1.0,), + t_span=(0.0, 2.0), + t_eval=(0.0, 1.0, 1.0, 2.0), + ) + + +@pytest.mark.parametrize( + ("changes", "message"), + [ + ({"name": ""}, "name must be"), + ({"state_names": ("value", "value"), "initial_state": (1.0, 2.0)}, "unique"), + ({"initial_state": (1.0, 2.0)}, "length must match"), + ({"t_span": (0.0, 0.0)}, "endpoints must differ"), + ({"method": "not-a-method"}, "method must be"), + ({"rtol": 0.0}, "rtol must be positive"), + ({"atol": 0.0}, "atol must be positive"), + ({"atol": (1e-9, 1e-9)}, "one positive value per state"), + ({"max_step": 0.0}, "max_step must be positive"), + ({"vectorized": 1}, "must be booleans"), + ({"t_eval": True}, "integer point count"), + ({"t_eval": 1}, "point count must be between"), + ({"t_eval": (0.1, 2.0)}, "include both"), + ], +) +def test_adapter_rejects_invalid_numerical_configuration( + changes: dict[str, object], message: str +) -> None: + arguments: dict[str, object] = { + "name": "exponential-scipy", + "identity": "validation-v1", + "rhs": exponential_rhs, + "state_names": ("value",), + "initial_state": (1.0,), + "t_span": (0.0, 2.0), + "t_eval": 21, + } + arguments.update(changes) + with pytest.raises(ConfigurationError, match=message): + SolveIVPAdapter(**arguments) # type: ignore[arg-type] + + +def test_event_policy_validation() -> None: + def event(time: float, state: FloatArray, parameters: Parameters) -> float: + return float(state[0]) + + with pytest.raises(ConfigurationError, match="name"): + EventSpec("", event) + with pytest.raises(ConfigurationError, match="terminal"): + EventSpec("bad-terminal", event, terminal=0) + with pytest.raises(ConfigurationError, match="direction"): + EventSpec("bad-direction", event, direction=float("nan")) + duplicate = EventSpec("duplicate", event) + with pytest.raises(ConfigurationError, match="event names must be unique"): + _adapter(events=(duplicate, duplicate)) + + +def test_from_config_accepts_serialized_options_and_rejects_bad_shapes() -> None: + options: dict[str, object] = { + "identity": "serialized-v1", + "state_names": ["value"], + "initial_state": [1.0], + "t_span": [0.0, 2.0], + "t_eval": {"kind": "linspace", "points": 5}, + "method": "RK45", + } + adapter = SolveIVPAdapter.from_config( + name="serialized-scipy", rhs=exponential_rhs, values={"options": options} + ) + assert adapter.configuration()["t_eval"] == { + "kind": "linspace", + "start": 0.0, + "stop": 2.0, + "points": 5, + } + + invalid: list[tuple[object, str]] = [ + (None, "must be an object"), + ({**options, "state_names": "value"}, "array of strings"), + ({**options, "t_span": [0.0]}, "contain two values"), + ( + {**options, "t_eval": {"kind": "explicit", "points": 5}}, + "kind must be 'linspace'", + ), + ({**options, "t_eval": {"kind": "linspace", "points": True}}, "must be an integer"), + ({**options, "t_eval": "automatic"}, "array or linspace object"), + ({**options, "vectorized": "yes"}, "must be booleans"), + ] + for raw_options, message in invalid: + with pytest.raises(ConfigurationError, match=message): + SolveIVPAdapter.from_config( + name="serialized-scipy", + rhs=exponential_rhs, + values={"options": raw_options}, + ) + + +def test_callback_and_solver_result_validation(monkeypatch: pytest.MonkeyPatch) -> None: + adapter = _adapter() + with pytest.raises(NumericalFailure, match="initial state"): + adapter.simulate((1.0, 2.0), {}, {}, 0) + + def complex_rhs(time: float, state: FloatArray, parameters: Parameters) -> object: + return np.array([1.0j]) + + complex_adapter = SolveIVPAdapter( + name="complex", + identity="complex-v1", + rhs=complex_rhs, + state_names=("value",), + initial_state=(1.0,), + t_span=(0.0, 1.0), + ) + with pytest.raises(NumericalFailure, match="real-valued states"): + complex_adapter._checked_rhs({})(0.0, np.array([1.0])) + + def wrong_shape_rhs(time: float, state: FloatArray, parameters: Parameters) -> object: + return np.array([1.0, 2.0]) + + shape_adapter = SolveIVPAdapter( + name="shape", + identity="shape-v1", + rhs=wrong_shape_rhs, + state_names=("value",), + initial_state=(1.0,), + t_span=(0.0, 1.0), + ) + with pytest.raises(NumericalFailure, match="RHS returned shape"): + shape_adapter._checked_rhs({})(0.0, np.array([1.0])) + + def failed_solve(*args: object, **kwargs: object) -> object: + raise ValueError("invalid public solver input") + + monkeypatch.setattr("phaseprobe.adapters.scipy.solve_ivp", failed_solve) + with pytest.raises(NumericalFailure, match="failed before returning"): + adapter.simulate((1.0,), {}, {}, 0) + + +@pytest.mark.parametrize( + ("observable", "message"), + [ + (lambda time, state, parameters: {"": 1.0}, "names must be non-empty"), + (lambda time, state, parameters: {"value": float("nan")}, "NaN or infinite"), + (lambda time, state, parameters: {"value": object()}, "finite number or string"), + ], +) +def test_observable_and_classifier_contracts_are_validated( + observable: object, message: str +) -> None: + adapter = SolveIVPAdapter( + name="callbacks", + identity="callbacks-v1", + rhs=exponential_rhs, + state_names=("value",), + initial_state=(1.0,), + t_span=(0.0, 1.0), + observable=observable, # type: ignore[arg-type] + ) + with pytest.raises(NumericalFailure, match=message): + adapter._point(0, 0.0, np.array([1.0]), {}) + + invalid_classifier = SolveIVPAdapter( + name="classifier", + identity="classifier-v1", + rhs=exponential_rhs, + state_names=("value",), + initial_state=(1.0,), + t_span=(0.0, 1.0), + classifier=lambda trace, tolerances: "", + ) + trace = _adapter().simulate((1.0,), {}, {}, 0) + with pytest.raises(NumericalFailure, match="classifier"): + invalid_classifier.classify(trace, {}) + + +def test_solver_method_vectorization_and_tolerances_are_forwarded( + monkeypatch: pytest.MonkeyPatch, +) -> None: + captured: dict[str, object] = {} + + def fake_solve_ivp(*args: object, **kwargs: object) -> SimpleNamespace: + captured.update(kwargs) + return SimpleNamespace( + t=np.array([0.0, 2.0]), + y=np.array([[1.0, 0.1]]), + t_events=None, + y_events=None, + success=True, + status=0, + message="finished", + nfev=4, + njev=0, + nlu=0, + ) + + monkeypatch.setattr("phaseprobe.adapters.scipy.solve_ivp", fake_solve_ivp) + adapter = _adapter(atol=(1e-11,), method="BDF", vectorized=True) + trace = adapter.simulate((1.0,), {"rate": 1.0}, {}, 7) + assert trace.success + assert captured["method"] == "BDF" + assert captured["vectorized"] is True + captured_atol = captured["atol"] + assert isinstance(captured_atol, np.ndarray) + np.testing.assert_allclose(captured_atol, np.array([1e-11])) + + +def test_successful_solve_records_versions_status_and_function_evaluations() -> None: + result = simulate(_engine_config(), adapter=_adapter()) + assert result.trace[-1].state[0] == pytest.approx(np.exp(-2.0), rel=1e-8) + assert result.execution_metadata["scipy_version"] == scipy.__version__ + assert result.execution_metadata["solver_status"] == 0 + assert result.execution_metadata["solver_success"] is True + nfev = result.execution_metadata["nfev"] + assert isinstance(nfev, int) and nfev > 0 + assert result.replay_mode == "tolerance" + + +def test_public_python_api_accepts_a_supplied_trajectory_adapter() -> None: + adapter = _adapter() + result = run_simulation( + adapter, + { + "parameters": {"rate": 1.0}, + "simulation": {"trace_cap": 21, "hard_state_limit": 100.0}, + "tolerances": {}, + }, + ) + assert result.model == "exponential-scipy" + outcome = run_perturbation( + adapter, + { + "parameters": {"rate": 1.0}, + "simulation": {"trace_cap": 21, "hard_state_limit": 100.0}, + "tolerances": {}, + "perturb": { + "dimension": "value", + "start": 1e-8, + "stop": 1e-6, + "points": 2, + "predicate": "finite-time-divergence", + "divergence_threshold": 1.0, + "refine_iterations": 0, + "repeatability": 1, + }, + "classification_rule": "test bounded finite-time distance", + "refinement_rule": "test declared grid", + }, + ) + assert outcome.finding is None + + +def test_event_handling_retains_terminal_event_evidence() -> None: + def half_value(time: float, state: FloatArray, parameters: Parameters) -> float: + return float(state[0] - 0.5) + + adapter = _adapter(events=(EventSpec("half-value", half_value, terminal=True, direction=-1),)) + trace = adapter.simulate((1.0,), {"rate": 1.0}, {}, 7) + assert trace.status == 1 + assert trace.success + assert trace.metadata["termination_time"] == pytest.approx(np.log(2.0), rel=1e-8) + events = trace.metadata["events"] + assert isinstance(events, list) + assert events[0]["name"] == "half-value" + assert trace.final_state[0] == pytest.approx(0.5, rel=1e-8) + + +def test_invalid_initial_state_and_nan_rhs_are_rejected() -> None: + with pytest.raises(ConfigurationError, match="finite"): + SolveIVPAdapter( + name="invalid", + identity="invalid-v1", + rhs=exponential_rhs, + state_names=("value",), + initial_state=(float("nan"),), + t_span=(0.0, 1.0), + ) + + def nan_rhs(time: float, state: FloatArray, parameters: Parameters) -> tuple[float, ...]: + return (float("nan"),) + + adapter = SolveIVPAdapter( + name="nan-scipy", + identity="nan-v1", + rhs=nan_rhs, + state_names=("value",), + initial_state=(1.0,), + t_span=(0.0, 1.0), + ) + with pytest.raises(NumericalFailure, match="NaN or infinite"): + adapter.simulate((1.0,), {}, {}, 0) + + +def test_unsuccessful_solver_termination_is_not_classified( + monkeypatch: pytest.MonkeyPatch, +) -> None: + def failed_solve(*args: object, **kwargs: object) -> SimpleNamespace: + return SimpleNamespace( + t=np.array([0.0, 0.1]), + y=np.array([[1.0, 0.9]]), + t_events=None, + y_events=None, + success=False, + status=-1, + message="required step size is too small", + nfev=20, + njev=0, + nlu=0, + ) + + monkeypatch.setattr("phaseprobe.adapters.scipy.solve_ivp", failed_solve) + with pytest.raises(NumericalFailure, match="status -1"): + simulate(_engine_config(), adapter=_adapter()) + + +def test_engine_enforces_bounded_trace_retention() -> None: + result = simulate(_engine_config(), adapter=_adapter(points=101)) + assert len(result.trace) == 16 + assert result.trace[0].time == 0.0 + assert result.trace[-1].time == 2.0 + assert result.execution_metadata["retention"] == { + "points_produced": 101, + "points_retained": 16, + "strategy": "uniform-in-index-with-endpoints", + } + + +@pytest.fixture(scope="session") +def lorenz_positive() -> ProbeOutcome: + return run_perturb(load_config(ROOT / "examples" / "scipy" / "lorenz.json")) + + +@pytest.fixture(scope="session") +def lorenz_negative() -> ProbeOutcome: + return run_perturb(load_config(ROOT / "examples" / "scipy" / "lorenz-negative.json")) + + +@pytest.fixture(scope="session") +def predator_prey_tight() -> ProbeOutcome: + return run_check(load_config(ROOT / "examples" / "scipy" / "predator-prey.json")) + + +@pytest.fixture(scope="session") +def predator_prey_coarse() -> ProbeOutcome: + return run_check(load_config(ROOT / "examples" / "scipy" / "predator-prey-coarse.json")) + + +def test_lorenz_positive_is_only_finite_time_divergence(lorenz_positive: ProbeOutcome) -> None: + assert lorenz_positive.status == "FINITE-TIME TRAJECTORY DIVERGENCE FOUND" + assert lorenz_positive.finding is not None + assert lorenz_positive.finding["kind"] == "finite-time-divergence" + assert lorenz_positive.reproducible + + +def test_lorenz_short_window_is_a_negative_control(lorenz_negative: ProbeOutcome) -> None: + assert lorenz_negative.status == "NO SENSITIVE PERTURBATION FOUND" + assert lorenz_negative.finding is None + + +def test_predator_prey_refinement_and_coarse_negative_control( + predator_prey_tight: ProbeOutcome, predator_prey_coarse: ProbeOutcome +) -> None: + tight = predator_prey_tight.baseline.invariants[0] + coarse = predator_prey_coarse.baseline.invariants[0] + assert predator_prey_tight.policy_failed is False + assert tight.passed + assert predator_prey_coarse.policy_failed is True + assert not coarse.passed + assert tight.measured < coarse.measured * 1e-6 + + +def test_tolerance_replay_preserves_integrity_and_executes_generated_pytest( + predator_prey_tight: ProbeOutcome, tmp_path: Path +) -> None: + bundle = write_artifacts(predator_prey_tight, tmp_path / "runs") + verification = verify_replay(bundle.replay_json) + assert verification.ok + assert verification.mode == "tolerance" + assert verification.comparisons[0]["state_tolerance_match"] is True + assert verification.comparisons[0]["artifact_trace_sha256_equal"] is True + + generated = generate_regression_test(bundle.replay_json, tmp_path / "generated") + environment = { + name: value + for name, value in os.environ.items() + if not name.startswith("COV_CORE") and name != "COVERAGE_PROCESS_START" + } + completed = subprocess.run( + [sys.executable, "-m", "pytest", "-q", generated.test_path.name], + check=False, + capture_output=True, + cwd=generated.test_path.parent, + env=environment, + text=True, + timeout=60, + ) + assert completed.returncode == 0, completed.stdout + completed.stderr + assert "1 passed" in completed.stdout + + +def test_committed_v1_fixture_remains_exact_replay_compatible() -> None: + fixture = ROOT / "tests" / "generated" / "fixtures" / "logistic_map-replay.json" + verification = verify_replay(fixture) + assert verification.ok + assert verification.mode == "exact" diff --git a/uv.lock b/uv.lock index 9f9f8a4..36b4750 100644 --- a/uv.lock +++ b/uv.lock @@ -1,6 +1,11 @@ version = 1 revision = 3 requires-python = ">=3.10" +resolution-markers = [ + "python_full_version >= '3.12'", + "python_full_version == '3.11.*'", + "python_full_version < '3.11'", +] [[package]] name = "build" @@ -217,6 +222,154 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/79/7b/2c79738432f5c924bef5071f933bcc9efd0473bac3b4aa584a6f7c1c8df8/mypy_extensions-1.1.0-py3-none-any.whl", hash = "sha256:1be4cccdb0f2482337c4743e60421de3a356cd97508abadd57d47403e94f5505", size = 4963, upload-time = "2025-04-22T14:54:22.983Z" }, ] +[[package]] +name = "numpy" +version = "2.2.6" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version < '3.11'", +] +sdist = { url = "https://files.pythonhosted.org/packages/76/21/7d2a95e4bba9dc13d043ee156a356c0a8f0c6309dff6b21b4d71a073b8a8/numpy-2.2.6.tar.gz", hash = "sha256:e29554e2bef54a90aa5cc07da6ce955accb83f21ab5de01a62c8478897b264fd", size = 20276440, upload-time = "2025-05-17T22:38:04.611Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9a/3e/ed6db5be21ce87955c0cbd3009f2803f59fa08df21b5df06862e2d8e2bdd/numpy-2.2.6-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b412caa66f72040e6d268491a59f2c43bf03eb6c96dd8f0307829feb7fa2b6fb", size = 21165245, upload-time = "2025-05-17T21:27:58.555Z" }, + { url = "https://files.pythonhosted.org/packages/22/c2/4b9221495b2a132cc9d2eb862e21d42a009f5a60e45fc44b00118c174bff/numpy-2.2.6-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8e41fd67c52b86603a91c1a505ebaef50b3314de0213461c7a6e99c9a3beff90", size = 14360048, upload-time = "2025-05-17T21:28:21.406Z" }, + { url = "https://files.pythonhosted.org/packages/fd/77/dc2fcfc66943c6410e2bf598062f5959372735ffda175b39906d54f02349/numpy-2.2.6-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:37e990a01ae6ec7fe7fa1c26c55ecb672dd98b19c3d0e1d1f326fa13cb38d163", size = 5340542, upload-time = "2025-05-17T21:28:30.931Z" }, + { url = "https://files.pythonhosted.org/packages/7a/4f/1cb5fdc353a5f5cc7feb692db9b8ec2c3d6405453f982435efc52561df58/numpy-2.2.6-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:5a6429d4be8ca66d889b7cf70f536a397dc45ba6faeb5f8c5427935d9592e9cf", size = 6878301, upload-time = "2025-05-17T21:28:41.613Z" }, + { url = "https://files.pythonhosted.org/packages/eb/17/96a3acd228cec142fcb8723bd3cc39c2a474f7dcf0a5d16731980bcafa95/numpy-2.2.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:efd28d4e9cd7d7a8d39074a4d44c63eda73401580c5c76acda2ce969e0a38e83", size = 14297320, upload-time = "2025-05-17T21:29:02.78Z" }, + { url = "https://files.pythonhosted.org/packages/b4/63/3de6a34ad7ad6646ac7d2f55ebc6ad439dbbf9c4370017c50cf403fb19b5/numpy-2.2.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fc7b73d02efb0e18c000e9ad8b83480dfcd5dfd11065997ed4c6747470ae8915", size = 16801050, upload-time = "2025-05-17T21:29:27.675Z" }, + { url = "https://files.pythonhosted.org/packages/07/b6/89d837eddef52b3d0cec5c6ba0456c1bf1b9ef6a6672fc2b7873c3ec4e2e/numpy-2.2.6-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:74d4531beb257d2c3f4b261bfb0fc09e0f9ebb8842d82a7b4209415896adc680", size = 15807034, upload-time = "2025-05-17T21:29:51.102Z" }, + { url = "https://files.pythonhosted.org/packages/01/c8/dc6ae86e3c61cfec1f178e5c9f7858584049b6093f843bca541f94120920/numpy-2.2.6-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:8fc377d995680230e83241d8a96def29f204b5782f371c532579b4f20607a289", size = 18614185, upload-time = "2025-05-17T21:30:18.703Z" }, + { url = "https://files.pythonhosted.org/packages/5b/c5/0064b1b7e7c89137b471ccec1fd2282fceaae0ab3a9550f2568782d80357/numpy-2.2.6-cp310-cp310-win32.whl", hash = "sha256:b093dd74e50a8cba3e873868d9e93a85b78e0daf2e98c6797566ad8044e8363d", size = 6527149, upload-time = "2025-05-17T21:30:29.788Z" }, + { url = "https://files.pythonhosted.org/packages/a3/dd/4b822569d6b96c39d1215dbae0582fd99954dcbcf0c1a13c61783feaca3f/numpy-2.2.6-cp310-cp310-win_amd64.whl", hash = "sha256:f0fd6321b839904e15c46e0d257fdd101dd7f530fe03fd6359c1ea63738703f3", size = 12904620, upload-time = "2025-05-17T21:30:48.994Z" }, + { url = "https://files.pythonhosted.org/packages/da/a8/4f83e2aa666a9fbf56d6118faaaf5f1974d456b1823fda0a176eff722839/numpy-2.2.6-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f9f1adb22318e121c5c69a09142811a201ef17ab257a1e66ca3025065b7f53ae", size = 21176963, upload-time = "2025-05-17T21:31:19.36Z" }, + { url = "https://files.pythonhosted.org/packages/b3/2b/64e1affc7972decb74c9e29e5649fac940514910960ba25cd9af4488b66c/numpy-2.2.6-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c820a93b0255bc360f53eca31a0e676fd1101f673dda8da93454a12e23fc5f7a", size = 14406743, upload-time = "2025-05-17T21:31:41.087Z" }, + { url = "https://files.pythonhosted.org/packages/4a/9f/0121e375000b5e50ffdd8b25bf78d8e1a5aa4cca3f185d41265198c7b834/numpy-2.2.6-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:3d70692235e759f260c3d837193090014aebdf026dfd167834bcba43e30c2a42", size = 5352616, upload-time = "2025-05-17T21:31:50.072Z" }, + { url = "https://files.pythonhosted.org/packages/31/0d/b48c405c91693635fbe2dcd7bc84a33a602add5f63286e024d3b6741411c/numpy-2.2.6-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:481b49095335f8eed42e39e8041327c05b0f6f4780488f61286ed3c01368d491", size = 6889579, upload-time = "2025-05-17T21:32:01.712Z" }, + { url = "https://files.pythonhosted.org/packages/52/b8/7f0554d49b565d0171eab6e99001846882000883998e7b7d9f0d98b1f934/numpy-2.2.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b64d8d4d17135e00c8e346e0a738deb17e754230d7e0810ac5012750bbd85a5a", size = 14312005, upload-time = "2025-05-17T21:32:23.332Z" }, + { url = "https://files.pythonhosted.org/packages/b3/dd/2238b898e51bd6d389b7389ffb20d7f4c10066d80351187ec8e303a5a475/numpy-2.2.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba10f8411898fc418a521833e014a77d3ca01c15b0c6cdcce6a0d2897e6dbbdf", size = 16821570, upload-time = "2025-05-17T21:32:47.991Z" }, + { url = "https://files.pythonhosted.org/packages/83/6c/44d0325722cf644f191042bf47eedad61c1e6df2432ed65cbe28509d404e/numpy-2.2.6-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:bd48227a919f1bafbdda0583705e547892342c26fb127219d60a5c36882609d1", size = 15818548, upload-time = "2025-05-17T21:33:11.728Z" }, + { url = "https://files.pythonhosted.org/packages/ae/9d/81e8216030ce66be25279098789b665d49ff19eef08bfa8cb96d4957f422/numpy-2.2.6-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:9551a499bf125c1d4f9e250377c1ee2eddd02e01eac6644c080162c0c51778ab", size = 18620521, upload-time = "2025-05-17T21:33:39.139Z" }, + { url = "https://files.pythonhosted.org/packages/6a/fd/e19617b9530b031db51b0926eed5345ce8ddc669bb3bc0044b23e275ebe8/numpy-2.2.6-cp311-cp311-win32.whl", hash = "sha256:0678000bb9ac1475cd454c6b8c799206af8107e310843532b04d49649c717a47", size = 6525866, upload-time = "2025-05-17T21:33:50.273Z" }, + { url = "https://files.pythonhosted.org/packages/31/0a/f354fb7176b81747d870f7991dc763e157a934c717b67b58456bc63da3df/numpy-2.2.6-cp311-cp311-win_amd64.whl", hash = "sha256:e8213002e427c69c45a52bbd94163084025f533a55a59d6f9c5b820774ef3303", size = 12907455, upload-time = "2025-05-17T21:34:09.135Z" }, + { url = "https://files.pythonhosted.org/packages/82/5d/c00588b6cf18e1da539b45d3598d3557084990dcc4331960c15ee776ee41/numpy-2.2.6-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:41c5a21f4a04fa86436124d388f6ed60a9343a6f767fced1a8a71c3fbca038ff", size = 20875348, upload-time = "2025-05-17T21:34:39.648Z" }, + { url = "https://files.pythonhosted.org/packages/66/ee/560deadcdde6c2f90200450d5938f63a34b37e27ebff162810f716f6a230/numpy-2.2.6-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:de749064336d37e340f640b05f24e9e3dd678c57318c7289d222a8a2f543e90c", size = 14119362, upload-time = "2025-05-17T21:35:01.241Z" }, + { url = "https://files.pythonhosted.org/packages/3c/65/4baa99f1c53b30adf0acd9a5519078871ddde8d2339dc5a7fde80d9d87da/numpy-2.2.6-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:894b3a42502226a1cac872f840030665f33326fc3dac8e57c607905773cdcde3", size = 5084103, upload-time = "2025-05-17T21:35:10.622Z" }, + { url = "https://files.pythonhosted.org/packages/cc/89/e5a34c071a0570cc40c9a54eb472d113eea6d002e9ae12bb3a8407fb912e/numpy-2.2.6-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:71594f7c51a18e728451bb50cc60a3ce4e6538822731b2933209a1f3614e9282", size = 6625382, upload-time = "2025-05-17T21:35:21.414Z" }, + { url = "https://files.pythonhosted.org/packages/f8/35/8c80729f1ff76b3921d5c9487c7ac3de9b2a103b1cd05e905b3090513510/numpy-2.2.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f2618db89be1b4e05f7a1a847a9c1c0abd63e63a1607d892dd54668dd92faf87", size = 14018462, upload-time = "2025-05-17T21:35:42.174Z" }, + { url = "https://files.pythonhosted.org/packages/8c/3d/1e1db36cfd41f895d266b103df00ca5b3cbe965184df824dec5c08c6b803/numpy-2.2.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd83c01228a688733f1ded5201c678f0c53ecc1006ffbc404db9f7a899ac6249", size = 16527618, upload-time = "2025-05-17T21:36:06.711Z" }, + { url = "https://files.pythonhosted.org/packages/61/c6/03ed30992602c85aa3cd95b9070a514f8b3c33e31124694438d88809ae36/numpy-2.2.6-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:37c0ca431f82cd5fa716eca9506aefcabc247fb27ba69c5062a6d3ade8cf8f49", size = 15505511, upload-time = "2025-05-17T21:36:29.965Z" }, + { url = "https://files.pythonhosted.org/packages/b7/25/5761d832a81df431e260719ec45de696414266613c9ee268394dd5ad8236/numpy-2.2.6-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:fe27749d33bb772c80dcd84ae7e8df2adc920ae8297400dabec45f0dedb3f6de", size = 18313783, upload-time = "2025-05-17T21:36:56.883Z" }, + { url = "https://files.pythonhosted.org/packages/57/0a/72d5a3527c5ebffcd47bde9162c39fae1f90138c961e5296491ce778e682/numpy-2.2.6-cp312-cp312-win32.whl", hash = "sha256:4eeaae00d789f66c7a25ac5f34b71a7035bb474e679f410e5e1a94deb24cf2d4", size = 6246506, upload-time = "2025-05-17T21:37:07.368Z" }, + { url = "https://files.pythonhosted.org/packages/36/fa/8c9210162ca1b88529ab76b41ba02d433fd54fecaf6feb70ef9f124683f1/numpy-2.2.6-cp312-cp312-win_amd64.whl", hash = "sha256:c1f9540be57940698ed329904db803cf7a402f3fc200bfe599334c9bd84a40b2", size = 12614190, upload-time = "2025-05-17T21:37:26.213Z" }, + { url = "https://files.pythonhosted.org/packages/f9/5c/6657823f4f594f72b5471f1db1ab12e26e890bb2e41897522d134d2a3e81/numpy-2.2.6-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:0811bb762109d9708cca4d0b13c4f67146e3c3b7cf8d34018c722adb2d957c84", size = 20867828, upload-time = "2025-05-17T21:37:56.699Z" }, + { url = "https://files.pythonhosted.org/packages/dc/9e/14520dc3dadf3c803473bd07e9b2bd1b69bc583cb2497b47000fed2fa92f/numpy-2.2.6-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:287cc3162b6f01463ccd86be154f284d0893d2b3ed7292439ea97eafa8170e0b", size = 14143006, upload-time = "2025-05-17T21:38:18.291Z" }, + { url = "https://files.pythonhosted.org/packages/4f/06/7e96c57d90bebdce9918412087fc22ca9851cceaf5567a45c1f404480e9e/numpy-2.2.6-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:f1372f041402e37e5e633e586f62aa53de2eac8d98cbfb822806ce4bbefcb74d", size = 5076765, upload-time = "2025-05-17T21:38:27.319Z" }, + { url = "https://files.pythonhosted.org/packages/73/ed/63d920c23b4289fdac96ddbdd6132e9427790977d5457cd132f18e76eae0/numpy-2.2.6-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:55a4d33fa519660d69614a9fad433be87e5252f4b03850642f88993f7b2ca566", size = 6617736, upload-time = "2025-05-17T21:38:38.141Z" }, + { url = "https://files.pythonhosted.org/packages/85/c5/e19c8f99d83fd377ec8c7e0cf627a8049746da54afc24ef0a0cb73d5dfb5/numpy-2.2.6-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f92729c95468a2f4f15e9bb94c432a9229d0d50de67304399627a943201baa2f", size = 14010719, upload-time = "2025-05-17T21:38:58.433Z" }, + { url = "https://files.pythonhosted.org/packages/19/49/4df9123aafa7b539317bf6d342cb6d227e49f7a35b99c287a6109b13dd93/numpy-2.2.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1bc23a79bfabc5d056d106f9befb8d50c31ced2fbc70eedb8155aec74a45798f", size = 16526072, upload-time = "2025-05-17T21:39:22.638Z" }, + { url = "https://files.pythonhosted.org/packages/b2/6c/04b5f47f4f32f7c2b0e7260442a8cbcf8168b0e1a41ff1495da42f42a14f/numpy-2.2.6-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:e3143e4451880bed956e706a3220b4e5cf6172ef05fcc397f6f36a550b1dd868", size = 15503213, upload-time = "2025-05-17T21:39:45.865Z" }, + { url = "https://files.pythonhosted.org/packages/17/0a/5cd92e352c1307640d5b6fec1b2ffb06cd0dabe7d7b8227f97933d378422/numpy-2.2.6-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:b4f13750ce79751586ae2eb824ba7e1e8dba64784086c98cdbbcc6a42112ce0d", size = 18316632, upload-time = "2025-05-17T21:40:13.331Z" }, + { url = "https://files.pythonhosted.org/packages/f0/3b/5cba2b1d88760ef86596ad0f3d484b1cbff7c115ae2429678465057c5155/numpy-2.2.6-cp313-cp313-win32.whl", hash = "sha256:5beb72339d9d4fa36522fc63802f469b13cdbe4fdab4a288f0c441b74272ebfd", size = 6244532, upload-time = "2025-05-17T21:43:46.099Z" }, + { url = "https://files.pythonhosted.org/packages/cb/3b/d58c12eafcb298d4e6d0d40216866ab15f59e55d148a5658bb3132311fcf/numpy-2.2.6-cp313-cp313-win_amd64.whl", hash = "sha256:b0544343a702fa80c95ad5d3d608ea3599dd54d4632df855e4c8d24eb6ecfa1c", size = 12610885, upload-time = "2025-05-17T21:44:05.145Z" }, + { url = "https://files.pythonhosted.org/packages/6b/9e/4bf918b818e516322db999ac25d00c75788ddfd2d2ade4fa66f1f38097e1/numpy-2.2.6-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:0bca768cd85ae743b2affdc762d617eddf3bcf8724435498a1e80132d04879e6", size = 20963467, upload-time = "2025-05-17T21:40:44Z" }, + { url = "https://files.pythonhosted.org/packages/61/66/d2de6b291507517ff2e438e13ff7b1e2cdbdb7cb40b3ed475377aece69f9/numpy-2.2.6-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:fc0c5673685c508a142ca65209b4e79ed6740a4ed6b2267dbba90f34b0b3cfda", size = 14225144, upload-time = "2025-05-17T21:41:05.695Z" }, + { url = "https://files.pythonhosted.org/packages/e4/25/480387655407ead912e28ba3a820bc69af9adf13bcbe40b299d454ec011f/numpy-2.2.6-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:5bd4fc3ac8926b3819797a7c0e2631eb889b4118a9898c84f585a54d475b7e40", size = 5200217, upload-time = "2025-05-17T21:41:15.903Z" }, + { url = "https://files.pythonhosted.org/packages/aa/4a/6e313b5108f53dcbf3aca0c0f3e9c92f4c10ce57a0a721851f9785872895/numpy-2.2.6-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:fee4236c876c4e8369388054d02d0e9bb84821feb1a64dd59e137e6511a551f8", size = 6712014, upload-time = "2025-05-17T21:41:27.321Z" }, + { url = "https://files.pythonhosted.org/packages/b7/30/172c2d5c4be71fdf476e9de553443cf8e25feddbe185e0bd88b096915bcc/numpy-2.2.6-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e1dda9c7e08dc141e0247a5b8f49cf05984955246a327d4c48bda16821947b2f", size = 14077935, upload-time = "2025-05-17T21:41:49.738Z" }, + { url = "https://files.pythonhosted.org/packages/12/fb/9e743f8d4e4d3c710902cf87af3512082ae3d43b945d5d16563f26ec251d/numpy-2.2.6-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f447e6acb680fd307f40d3da4852208af94afdfab89cf850986c3ca00562f4fa", size = 16600122, upload-time = "2025-05-17T21:42:14.046Z" }, + { url = "https://files.pythonhosted.org/packages/12/75/ee20da0e58d3a66f204f38916757e01e33a9737d0b22373b3eb5a27358f9/numpy-2.2.6-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:389d771b1623ec92636b0786bc4ae56abafad4a4c513d36a55dce14bd9ce8571", size = 15586143, upload-time = "2025-05-17T21:42:37.464Z" }, + { url = "https://files.pythonhosted.org/packages/76/95/bef5b37f29fc5e739947e9ce5179ad402875633308504a52d188302319c8/numpy-2.2.6-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:8e9ace4a37db23421249ed236fdcdd457d671e25146786dfc96835cd951aa7c1", size = 18385260, upload-time = "2025-05-17T21:43:05.189Z" }, + { url = "https://files.pythonhosted.org/packages/09/04/f2f83279d287407cf36a7a8053a5abe7be3622a4363337338f2585e4afda/numpy-2.2.6-cp313-cp313t-win32.whl", hash = "sha256:038613e9fb8c72b0a41f025a7e4c3f0b7a1b5d768ece4796b674c8f3fe13efff", size = 6377225, upload-time = "2025-05-17T21:43:16.254Z" }, + { url = "https://files.pythonhosted.org/packages/67/0e/35082d13c09c02c011cf21570543d202ad929d961c02a147493cb0c2bdf5/numpy-2.2.6-cp313-cp313t-win_amd64.whl", hash = "sha256:6031dd6dfecc0cf9f668681a37648373bddd6421fff6c66ec1624eed0180ee06", size = 12771374, upload-time = "2025-05-17T21:43:35.479Z" }, + { url = "https://files.pythonhosted.org/packages/9e/3b/d94a75f4dbf1ef5d321523ecac21ef23a3cd2ac8b78ae2aac40873590229/numpy-2.2.6-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:0b605b275d7bd0c640cad4e5d30fa701a8d59302e127e5f79138ad62762c3e3d", size = 21040391, upload-time = "2025-05-17T21:44:35.948Z" }, + { url = "https://files.pythonhosted.org/packages/17/f4/09b2fa1b58f0fb4f7c7963a1649c64c4d315752240377ed74d9cd878f7b5/numpy-2.2.6-pp310-pypy310_pp73-macosx_14_0_x86_64.whl", hash = "sha256:7befc596a7dc9da8a337f79802ee8adb30a552a94f792b9c9d18c840055907db", size = 6786754, upload-time = "2025-05-17T21:44:47.446Z" }, + { url = "https://files.pythonhosted.org/packages/af/30/feba75f143bdc868a1cc3f44ccfa6c4b9ec522b36458e738cd00f67b573f/numpy-2.2.6-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ce47521a4754c8f4593837384bd3424880629f718d87c5d44f8ed763edd63543", size = 16643476, upload-time = "2025-05-17T21:45:11.871Z" }, + { url = "https://files.pythonhosted.org/packages/37/48/ac2a9584402fb6c0cd5b5d1a91dcf176b15760130dd386bbafdbfe3640bf/numpy-2.2.6-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:d042d24c90c41b54fd506da306759e06e568864df8ec17ccc17e9e884634fd00", size = 12812666, upload-time = "2025-05-17T21:45:31.426Z" }, +] + +[[package]] +name = "numpy" +version = "2.4.6" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.12'", + "python_full_version == '3.11.*'", +] +sdist = { url = "https://files.pythonhosted.org/packages/d0/ad/fed0499ce6a338d2a03ebae59cd15093910c8875328855781952abf6c2fe/numpy-2.4.6.tar.gz", hash = "sha256:f3a3570c4a2a16746ac2c31a7c7c7b0c186b95ce902e33db6f28094ed7387dda", size = 20735807, upload-time = "2026-05-18T23:37:14.07Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b3/49/ec46835a70be8fa6446c495126ac84fdb28cb2558e1620ffb87a10c8b64c/numpy-2.4.6-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:0280e0356c0829a18d9de1cb7eee50ec22ca639878d7240307ca0943d73cd2c4", size = 16969194, upload-time = "2026-05-18T23:33:13.503Z" }, + { url = "https://files.pythonhosted.org/packages/0e/0d/f5957185c0ee2f3e12f78715aa9e3b353fd83633316c8532b38faa37e3f6/numpy-2.4.6-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:110f8b71aacb688ec69062bb7f6938a0f8acb01b7c1c4beb453c65b6d234584d", size = 14964111, upload-time = "2026-05-18T23:33:17.795Z" }, + { url = "https://files.pythonhosted.org/packages/ad/40/40a40ee0ddf7ceb782c49af278894b686e586d65d8c1889c8b5da01a3d7d/numpy-2.4.6-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:4cfe66903cc32a9921a6733d96b19bb6abf310397581bbad89c228f5abaf0ee8", size = 5469159, upload-time = "2026-05-18T23:33:20.654Z" }, + { url = "https://files.pythonhosted.org/packages/63/13/f9a8046535cb21deae82f8d03de9617e08882d274fad2539630761888228/numpy-2.4.6-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:8155154c7c691289fe18f510b5d4657c68c67989f293f0535a91360392ff6538", size = 6798936, upload-time = "2026-05-18T23:33:22.987Z" }, + { url = "https://files.pythonhosted.org/packages/33/a8/6fa8c1a345a8c85dbb21932c447bee07c30a2c2a3f31e369c0a84b300147/numpy-2.4.6-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0ab0a9c4ffb1a6d95ef519fe4247dba8eb6b18ad93999f76b7f657039acabd47", size = 15966692, upload-time = "2026-05-18T23:33:26.62Z" }, + { url = "https://files.pythonhosted.org/packages/02/03/74fe2a4cb3817d94d86402f2506554130a2f01414e299b5a843e5a8a957f/numpy-2.4.6-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:89cd468399cfd2504718f0ba50e410dca55a170b61a02ad92bb18c8a65186e93", size = 16918164, upload-time = "2026-05-18T23:33:29.955Z" }, + { url = "https://files.pythonhosted.org/packages/c5/80/3615be3313f7e7696609bc194b9f0101da809df79e859bdb84e0cd043f46/numpy-2.4.6-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c2d37ab77531417474168eb79d6d80b14f821a966818505d03013d0833edb7a8", size = 17322877, upload-time = "2026-05-18T23:33:34.724Z" }, + { url = "https://files.pythonhosted.org/packages/ca/ac/a691e0fe2675e370d0e08ff905adc49a1c8830e8cae03efe4477e92cd55d/numpy-2.4.6-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:f407cb6b8e9d6d8c626bc73c945db1706035af8fd632295547bf1c9e46d092d6", size = 18651487, upload-time = "2026-05-18T23:33:38.217Z" }, + { url = "https://files.pythonhosted.org/packages/15/a7/9bc1cd626d7bf6869bfedf27b91b6ab5dd607758bf8e959d6fa80c6a59cb/numpy-2.4.6-cp311-cp311-win32.whl", hash = "sha256:ddea102b48f9e339f3948bf22040944184627a30fdf7f858667673b9c5f033c8", size = 6233945, upload-time = "2026-05-18T23:33:41.331Z" }, + { url = "https://files.pythonhosted.org/packages/c5/31/7fc6239c12bce7e931463251cca4426c465e1876ba3cc785402ef4dd8f4e/numpy-2.4.6-cp311-cp311-win_amd64.whl", hash = "sha256:1e254a00cdf42b1e4d5b3d68d33af63268d41340d8885df2ab6470f2e1500147", size = 12608406, upload-time = "2026-05-18T23:33:44.131Z" }, + { url = "https://files.pythonhosted.org/packages/27/83/140f85a466595a16382996a1bf06b2b54bcd597488921b0c9daaeeda72af/numpy-2.4.6-cp311-cp311-win_arm64.whl", hash = "sha256:ed9749eef4cbd126da3dc1d6bcb3a57f5eb7ac6a6484146bdbf743f552dfc577", size = 10479528, upload-time = "2026-05-18T23:33:50.725Z" }, + { url = "https://files.pythonhosted.org/packages/95/2a/3d7b5ac8aac24feaf9ad7ed58f45b0bbc06d37e4338ae84c9f2298b570f9/numpy-2.4.6-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:001fbb8e08d942dd57599e781f2472269ee7f2755fae407b4f67b2f0b17da3f1", size = 16689119, upload-time = "2026-05-18T23:33:54.065Z" }, + { url = "https://files.pythonhosted.org/packages/ea/12/92c4c131527599e8288d6918e888d88726f84d805d784b771f32408aeaef/numpy-2.4.6-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ebfb099f8dcf083deef3ac1ca4c1503f387cf76296fcb3816b66f5ecb5f54fdb", size = 14699246, upload-time = "2026-05-18T23:33:57.621Z" }, + { url = "https://files.pythonhosted.org/packages/ad/fe/c0a6b7b2ca128a8fb228575147073b660656734b8ebe4d76c8fd748dcc79/numpy-2.4.6-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:3213d622a0283a39a93d188f3cf72b26862df52fbb4ca3697f51705016523d41", size = 5204410, upload-time = "2026-05-18T23:34:00.302Z" }, + { url = "https://files.pythonhosted.org/packages/f3/d4/9770d14ba719432bb90a421bfd443872ed0f70f7264b64bec12ea363d5fd/numpy-2.4.6-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:357cc07a6d7b0b182ff02249616a03742827ebb1277546b5c7cd7f7620a45698", size = 6551240, upload-time = "2026-05-18T23:34:02.852Z" }, + { url = "https://files.pythonhosted.org/packages/c9/c6/50a46a6205feba2343f1d6d17438107c5dc491ed1c736e6ea68689fd906b/numpy-2.4.6-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5f9fb9157b4ce2971008323afe46053787b526ef624fea915b261468a8421a0f", size = 15671012, upload-time = "2026-05-18T23:34:05.485Z" }, + { url = "https://files.pythonhosted.org/packages/99/60/14115e6364fa676c5397c2ad3004e527e9aa487abf5d0706ec81bbd08529/numpy-2.4.6-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:90f9849678c75fe7afa2d348ac842c168b0a4d3d61919687216dfc547976d853", size = 16645538, upload-time = "2026-05-18T23:34:09.265Z" }, + { url = "https://files.pythonhosted.org/packages/ae/c5/693cbe59e57db94d2231fa519ca3978dc9e19da5a8f088588f5c6e947ff2/numpy-2.4.6-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:c1a2af6c6ef86344a6b0db6b97834208bf598db514f2b155042439b62605601a", size = 17020706, upload-time = "2026-05-18T23:34:13.053Z" }, + { url = "https://files.pythonhosted.org/packages/ef/fc/85b7c4eff9b4966ade25c2273cf7e7012e92366c032058653934b37de044/numpy-2.4.6-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e5805d5a22fd19c8ccff10a9561f9df94436b0545619ea579db2d3c35294bce2", size = 18368541, upload-time = "2026-05-18T23:34:17.024Z" }, + { url = "https://files.pythonhosted.org/packages/f6/81/e1b27545deedce7f4a0b348618c6b62d74e36a4dc9ccd42f3eb2f85eee32/numpy-2.4.6-cp312-cp312-win32.whl", hash = "sha256:e3eeb0aabd6bd5ce64faae67e9935203a6991b4bc2a485a767fbafb2c5125f45", size = 5962825, upload-time = "2026-05-18T23:34:20.3Z" }, + { url = "https://files.pythonhosted.org/packages/ab/ca/feab00bd44aa5fe1ad2c18f08b4d3bb92e26484b0b1d1443897809ed528c/numpy-2.4.6-cp312-cp312-win_amd64.whl", hash = "sha256:d8e8286dd7cea7895157318d1b91cdacac64c479f3cbc8dce548331728484751", size = 12321687, upload-time = "2026-05-18T23:34:23.095Z" }, + { url = "https://files.pythonhosted.org/packages/63/cf/5a6d34850a39d1093558564f77ee8e8e0bee5061151b8f05a55711001ec7/numpy-2.4.6-cp312-cp312-win_arm64.whl", hash = "sha256:4081eb135ac24158bd51cdfbef16f1c64df7063b1143f24731387137c092bec8", size = 10221482, upload-time = "2026-05-18T23:34:25.876Z" }, + { url = "https://files.pythonhosted.org/packages/fb/82/bdab26d7438c6791ca31b7c024ca37c1eab8b726ba236129005cd4a06e45/numpy-2.4.6-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:511dbaf848decaaaf4b4ca48032619fb3138710c4bf7da7617765edad1ef96b0", size = 16684648, upload-time = "2026-05-18T23:34:29.41Z" }, + { url = "https://files.pythonhosted.org/packages/1b/30/a80189bcc7f5e4258b3fbc3968d909d1756f54d023299ecc39ad6fdb9ef8/numpy-2.4.6-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:bf162abab1c1a736333192707cef898e735a5ca00f38f27eeedf44b39d9e85eb", size = 14693902, upload-time = "2026-05-18T23:34:33.013Z" }, + { url = "https://files.pythonhosted.org/packages/97/12/70b5d0d7c15e1ebb8a6a84a8caa1d19e181d84fb58bb6d70aca29099dec1/numpy-2.4.6-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:043191bfa8eab18c776647b62723ac9dddece59743b13f49b2016094129c2b3f", size = 5198992, upload-time = "2026-05-18T23:34:36.132Z" }, + { url = "https://files.pythonhosted.org/packages/ba/8c/ebd2a8f8a83541f8d38cc5667e8c2b69cecfd30da6e45693e8158857d44b/numpy-2.4.6-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:6180d8b35af935aed8ece3a85e0a43f87393ae0ac87c8d2c8bd2c993f7270ef3", size = 6546944, upload-time = "2026-05-18T23:34:38.484Z" }, + { url = "https://files.pythonhosted.org/packages/bb/c5/7b863a97a91671a0338f4253bd3b5a3d3852f0692dae91711c9f4a10e787/numpy-2.4.6-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:72fbe16c6fac95aedf5937fa873445cec2110be35d8a4e9433d7501fd98dae6b", size = 15669392, upload-time = "2026-05-18T23:34:41.257Z" }, + { url = "https://files.pythonhosted.org/packages/a5/9d/3584b9984ca4c047aea75214ce1a4c4c73d849bd71b604264b7f5653f8a8/numpy-2.4.6-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a7830bab239b79cda9c08c2da014761cafb48da6150e1da17ac06283f43b6089", size = 16633220, upload-time = "2026-05-18T23:34:45.075Z" }, + { url = "https://files.pythonhosted.org/packages/05/ae/7c67fba23bd98caec7c99261f3a16072ade14813486b0282cb29846de832/numpy-2.4.6-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ef4aea96ce4d3b074422cb4f2f64e216bf9e213004bb58ecfdf50ea02ea8eb9a", size = 17020800, upload-time = "2026-05-18T23:34:49.065Z" }, + { url = "https://files.pythonhosted.org/packages/d9/5d/3b6725cb31d983c5e66916f5d36f6d7e5521129e4c4404d64f918292a5b6/numpy-2.4.6-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:dfa20cc6ca228e6b155b11da03825975ce66aea520985dbbddf0f2a5a495c605", size = 18357600, upload-time = "2026-05-18T23:34:52.709Z" }, + { url = "https://files.pythonhosted.org/packages/f7/da/2ccc6c2fe8898dee01d90c75c5f5f914a23daf99e3e0f59516a08760c8b5/numpy-2.4.6-cp313-cp313-win32.whl", hash = "sha256:56b39e5e0622a09a25bf5baf62f4bcf0cb8a41ae6e2819cf49bbc5a74c083f91", size = 5961134, upload-time = "2026-05-18T23:34:55.618Z" }, + { url = "https://files.pythonhosted.org/packages/b5/cd/9cc4dc876fb065d5c220aae4d5e14826b2715331bb7618ce1fb07a679d99/numpy-2.4.6-cp313-cp313-win_amd64.whl", hash = "sha256:c4fc99836233ea196540b17ab0983aff60ed07941751930f5f4d05bc3b3b7359", size = 12318598, upload-time = "2026-05-18T23:34:58.928Z" }, + { url = "https://files.pythonhosted.org/packages/39/1e/c0bcba1f8694116485fe28fd1be698c278fcda4141c5b0e53a2aed8b12a8/numpy-2.4.6-cp313-cp313-win_arm64.whl", hash = "sha256:a7c711e21628b52034bb5ab8d1bce291f752fcc5e92accc615778acee1ff4778", size = 10222272, upload-time = "2026-05-18T23:35:02.167Z" }, + { url = "https://files.pythonhosted.org/packages/63/6d/cc5619247c8f4204e507f5883528372e4ac4bb189e579fb859a12e480b1f/numpy-2.4.6-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:112b06a867b235ef466ed3508ddf0238050df9c727cafb5301ac385b899189a1", size = 14821197, upload-time = "2026-05-18T23:35:05.468Z" }, + { url = "https://files.pythonhosted.org/packages/00/58/f1c39161c87d9e9bed660f1ed4bafc0e403d5ec9650b6dd77aead07d489b/numpy-2.4.6-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:eaf7fa2de5c0be8ae6ff8e9bea2ccd725e980541244521d8d4b5f3354a27babe", size = 5326287, upload-time = "2026-05-18T23:35:08.693Z" }, + { url = "https://files.pythonhosted.org/packages/af/57/3917ab0fd97f271a8694513581b8a36c655f111c446852c302f04ccdb6fc/numpy-2.4.6-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:7265a2f3d436e54ef9f2b52b5c937e6be778781bd97a590319d7348f1c1ca997", size = 6646763, upload-time = "2026-05-18T23:35:11.459Z" }, + { url = "https://files.pythonhosted.org/packages/eb/0f/037e64c494b67581ae18193d770adef354c41f3f2c8ebf865602d949bf8f/numpy-2.4.6-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f74a575920ab21fe304421a3fc28793d82e299cae9eccb37084e9fc7f3617c20", size = 15728070, upload-time = "2026-05-18T23:35:14.79Z" }, + { url = "https://files.pythonhosted.org/packages/21/a6/5d2bae9c9542eb4df16dc9c46dc79c186e9bad53805dfa5399a6023c6db0/numpy-2.4.6-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ede83e07a75dd06bc501566c1eca2afc0d61677c1472ac9ad93fdee6e638a48d", size = 16681752, upload-time = "2026-05-18T23:35:18.836Z" }, + { url = "https://files.pythonhosted.org/packages/92/14/23d1dfb410ae362cd59ce53e936b1513d545eb40db3949ced632e19a459e/numpy-2.4.6-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:68bb27509ac1b9a3443094260f6326150663b06abe40b73a2f81160623da5b67", size = 17086024, upload-time = "2026-05-18T23:35:22.52Z" }, + { url = "https://files.pythonhosted.org/packages/4b/6e/23595a2c642cdf3bc567877064bdd7f91c8b0038a4453cf2daf7248eafe9/numpy-2.4.6-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:a0df0043bdb289bde1f62da130d20df23d58b45429f752bc7a8fc5325a225ecd", size = 18403398, upload-time = "2026-05-18T23:35:26.398Z" }, + { url = "https://files.pythonhosted.org/packages/8a/90/0ac3bc947217e66dec77e7cbc6a1979d1af70b6461b82f620d3bccd5e4c8/numpy-2.4.6-cp313-cp313t-win32.whl", hash = "sha256:29a287e0cf63ff528da061de6b9f64a4618da591ca1046aafc54062e40ca7eab", size = 6084971, upload-time = "2026-05-18T23:35:29.387Z" }, + { url = "https://files.pythonhosted.org/packages/77/71/5673e351671a1d2bd6063b91b44f70c0affea7d1516fa7a6572941ba4aa1/numpy-2.4.6-cp313-cp313t-win_amd64.whl", hash = "sha256:25c692919ac5a01f170a3bfcd62d745b24fd095c353d50812637d6fcab442e75", size = 12458532, upload-time = "2026-05-18T23:35:32.175Z" }, + { url = "https://files.pythonhosted.org/packages/3f/88/19d3503c5046e688f049274b27a3ef3d771152fa80d3ba3d01a3dff61abe/numpy-2.4.6-cp313-cp313t-win_arm64.whl", hash = "sha256:1e978ec1e8bd0e0e4de6bb75de9d30cbb74db6b6a2bb727618613703ca0167dd", size = 10291881, upload-time = "2026-05-18T23:35:35.465Z" }, + { url = "https://files.pythonhosted.org/packages/f8/91/3ab2044d05fd16d343c5ac2e69b127f1b2854040dd20b193257c78028bd3/numpy-2.4.6-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:06ca2f61ec4385a07a6977c55ba998a4466c123642b4a32694d3128fce18c079", size = 16683458, upload-time = "2026-05-18T23:35:38.353Z" }, + { url = "https://files.pythonhosted.org/packages/8e/62/764ce66fa4147ae6d73071a3abf804ffe606f174618697c571acdf26a7c9/numpy-2.4.6-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:38efbc8de75c7a0fc1ac190162d892787f3f47b57cc291231aafee36b80982b7", size = 14704559, upload-time = "2026-05-18T23:35:42.14Z" }, + { url = "https://files.pythonhosted.org/packages/60/61/23f27c172f022e04025b7dc2367f4d63c1a398120607ec896228649a6f48/numpy-2.4.6-cp314-cp314-macosx_14_0_arm64.whl", hash = "sha256:d581b735e177fdcdce6fed8e7e8880a3fb6ee4e3653a3ac6af01c6f4c03effc5", size = 5209716, upload-time = "2026-05-18T23:35:45.377Z" }, + { url = "https://files.pythonhosted.org/packages/03/71/21cf70dc6ea3e3acb95fc53a265b2fc248b981f0194ceb5b475271b8809d/numpy-2.4.6-cp314-cp314-macosx_14_0_x86_64.whl", hash = "sha256:0a041d3d761dc3c35cc56ce0351506a02bcbc25f7b169f652435141a17db9096", size = 6543947, upload-time = "2026-05-18T23:35:47.926Z" }, + { url = "https://files.pythonhosted.org/packages/d5/91/64288395ee1799bd2e0b04a305dce9666da90c961e1f3fe982a05ee1c036/numpy-2.4.6-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:40fdc1ae7125e518ea98e53e69a4ebc27e1fd50510c47b7ea130cf21e5e1d42b", size = 15685197, upload-time = "2026-05-18T23:35:50.863Z" }, + { url = "https://files.pythonhosted.org/packages/f3/eb/ebffaa97dc55502df69584a8f0dcf07f69a3e0b3e2323670a2722db9aa39/numpy-2.4.6-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a2c306dea656c12c68f51f4cea133cbe78ca7435eb28c735eac1d3ebe73be6e8", size = 16638245, upload-time = "2026-05-18T23:35:54.752Z" }, + { url = "https://files.pythonhosted.org/packages/b8/0b/54f9da33128d7e350fab89c7455902eeae70349ee52bddb448dc4a576f45/numpy-2.4.6-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:33111801a01c12a8a1e3721f0a9232f8cfc8ae2c6b7098167e6f623c6073f402", size = 17036587, upload-time = "2026-05-18T23:35:58.355Z" }, + { url = "https://files.pythonhosted.org/packages/b6/f0/fdebc1052db1cc37c64beb22072d67cd6d1c71adca1299f53dec2b5e20d3/numpy-2.4.6-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:ae506e6902902557576a26ff33eda8695e7ecb3cb36c3b573a0765dee114ebdb", size = 18363226, upload-time = "2026-05-18T23:36:02.845Z" }, + { url = "https://files.pythonhosted.org/packages/aa/b4/298628d98c72b57e57f7165ae6a481a1deaf6f3c28262a6e4c739c275930/numpy-2.4.6-cp314-cp314-win32.whl", hash = "sha256:aaf159caa35993cb1f56fb9b8e4610d35758e7ca005412eb1daa856a78c9c4b1", size = 6010196, upload-time = "2026-05-18T23:36:05.92Z" }, + { url = "https://files.pythonhosted.org/packages/df/ac/46de6dda46478f7942f839e094970be2d4a861e005c4b3bf07c92e291a09/numpy-2.4.6-cp314-cp314-win_amd64.whl", hash = "sha256:b507f5c4c1d508876d1819b6bf9a49d365b96320b5d4993426b33a23ca4b8261", size = 12450334, upload-time = "2026-05-18T23:36:09.107Z" }, + { url = "https://files.pythonhosted.org/packages/78/92/b8b798ac784102c0da830d2257d59358e3d3d90d1e2b3f2575dad976c5cf/numpy-2.4.6-cp314-cp314-win_arm64.whl", hash = "sha256:6f41ae150c4e32db4f3310cdaf64b1593a03dbabe29eec77fc9b50fe64061df6", size = 10495678, upload-time = "2026-05-18T23:36:12.766Z" }, + { url = "https://files.pythonhosted.org/packages/30/34/ec28d1aa8115971537c01469ab2011ee96827930f0a124de1000cc2a7ed7/numpy-2.4.6-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:ece3d2cfe132e7d51f44a832b303895e6f2d499c5e74dfbdb06ee246147a304a", size = 14823672, upload-time = "2026-05-18T23:36:16.473Z" }, + { url = "https://files.pythonhosted.org/packages/16/bd/f6d1fede4e54e8042a7ff97bb495510f3c220f94bcd9e8b228e87c92cc0d/numpy-2.4.6-cp314-cp314t-macosx_14_0_arm64.whl", hash = "sha256:e3e5193ef5a3dc73bceee50f7fdc2c90dbb76c42df8d8fae3d1067a583df579e", size = 5328731, upload-time = "2026-05-18T23:36:19.767Z" }, + { url = "https://files.pythonhosted.org/packages/f4/f0/e105b9e2fd728a9910103884decd6951d9dd73896b914a98d9a231de02ee/numpy-2.4.6-cp314-cp314t-macosx_14_0_x86_64.whl", hash = "sha256:17f9ade344e7d9b464a084d69bcf18fc691cb1db67c62ed80820bf4926d78f0e", size = 6649805, upload-time = "2026-05-18T23:36:22.266Z" }, + { url = "https://files.pythonhosted.org/packages/82/dd/1206a7ca6ab15e3f02069707ca96222e202af681bb73756da7527f3cb837/numpy-2.4.6-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9cd5ffd25db4e7ba6a375693b3fc0fc1791ec636c17db3720da19bde7180ec43", size = 15730496, upload-time = "2026-05-18T23:36:25.713Z" }, + { url = "https://files.pythonhosted.org/packages/51/e7/38d3ea825dcab85a591734decb2f6c67caa7c8367d374df1a1c3842f9b07/numpy-2.4.6-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7d92c3819208a60205a12a245c91ad70cb0a85336659b19b834205573ac8456e", size = 16679616, upload-time = "2026-05-18T23:36:29.652Z" }, + { url = "https://files.pythonhosted.org/packages/93/b7/caabfdf53edf663e0b4eb74d7d405d83baef09eb5e83bcd32d601d72b93e/numpy-2.4.6-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:e85b752a1e912b70eaad4fafbd4d1238007ab221de2009b9a2f5ae7461239895", size = 17085145, upload-time = "2026-05-18T23:36:33.449Z" }, + { url = "https://files.pythonhosted.org/packages/f9/45/68d7c33a6bcf3e5aa3bdbd57a367e6f615286dfd6482f97e8ffeb734306e/numpy-2.4.6-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:29cb7f67d10b479ff07c17d33e39f78c07f71c40ef30d63c153d340e96cd3fb4", size = 18403813, upload-time = "2026-05-18T23:36:37.369Z" }, + { url = "https://files.pythonhosted.org/packages/9c/50/0753655aa844c99cd9e018aacf76f130f1bd81d881bb74bc0aef5d73a8ba/numpy-2.4.6-cp314-cp314t-win32.whl", hash = "sha256:260a5d70215b61ab4fadf5c7baacd64821842975eea312125ed3c39a6391b063", size = 6156982, upload-time = "2026-05-18T23:36:40.817Z" }, + { url = "https://files.pythonhosted.org/packages/b2/d4/7c67becf668f973cb490cec3e98dfd799d866f9c989a54d355672cfa0db6/numpy-2.4.6-cp314-cp314t-win_amd64.whl", hash = "sha256:81a1cca95ed5bb92aa8b10dd2cdc9a0d3853a50fad926c28b5d7e8ea54389627", size = 12638908, upload-time = "2026-05-18T23:36:43.996Z" }, + { url = "https://files.pythonhosted.org/packages/43/bb/e1c71a4295b1b1d1393d50dbb4f2a36283c6859d9d3892e84f00ec5a91d5/numpy-2.4.6-cp314-cp314t-win_arm64.whl", hash = "sha256:0c9136e14ed34a9e343a31c533d78a9813a69a3148332bce5e9821cb2f996e66", size = 10565867, upload-time = "2026-05-18T23:36:47.114Z" }, + { url = "https://files.pythonhosted.org/packages/de/12/b422cc84439adc0d00de605bf4a308890ae5c26f2c71fbd73e5d08fbb0dd/numpy-2.4.6-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:55cced7c52e981362f708ad635198e97a752dfba412cc03c23bbf3bd8d5cd662", size = 16847511, upload-time = "2026-05-18T23:36:50.673Z" }, + { url = "https://files.pythonhosted.org/packages/44/53/f481bef68011740f8849418d82db07230e825013f31f4eef5ba5b805316a/numpy-2.4.6-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:d6da64deb6b8ed903e7560180a92f2d804ee1ba5eeb849ac2748b8c1aba1f6d7", size = 14889064, upload-time = "2026-05-18T23:36:53.879Z" }, + { url = "https://files.pythonhosted.org/packages/7f/57/42ed575c10ced8af951d426bc4e1f8aff16fd851db33f067036215a7f860/numpy-2.4.6-pp311-pypy311_pp73-macosx_14_0_arm64.whl", hash = "sha256:68a5124b13fa6cc2086764a20005d30bc0548146f7f5322f02fce212ca14317f", size = 5394157, upload-time = "2026-05-18T23:36:57.194Z" }, + { url = "https://files.pythonhosted.org/packages/6a/ef/f66cc724fcc36c1e364c67f51ae9146090b8b584f27d58b97fdae3edd737/numpy-2.4.6-pp311-pypy311_pp73-macosx_14_0_x86_64.whl", hash = "sha256:948424b06129ce883307e8cff868c31396d8dc7630a59c61d70d98dbe70f222c", size = 6708728, upload-time = "2026-05-18T23:36:59.575Z" }, + { url = "https://files.pythonhosted.org/packages/1a/9c/c531f2293b91265d8b48e9b329f54fdd7ffae73cb4134ea10cca4237e9cc/numpy-2.4.6-pp311-pypy311_pp73-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5dbbdb29840ca3d91ee0fece42fc29278886d908280bfec0a5846c6f901a3eb0", size = 15798374, upload-time = "2026-05-18T23:37:02.674Z" }, + { url = "https://files.pythonhosted.org/packages/1a/b0/413077f6b1153ed3cba361401c6783bbad6114804a000cc22eb71c13e190/numpy-2.4.6-pp311-pypy311_pp73-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8ad03c0965fb3c692200e74d458ca28c1dbb4ce96f9a479a8aa041ad5fabca02", size = 16747286, upload-time = "2026-05-18T23:37:06.327Z" }, + { url = "https://files.pythonhosted.org/packages/15/ce/e5ec180bc41812edcd8daeb8639d205622c0e8c02259d8ab25a0201b3c2a/numpy-2.4.6-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:2803abfebfc990042cd494d8ce2d5f82e9d847af6d35ec486923aa19dbad5e73", size = 12504263, upload-time = "2026-05-18T23:37:09.715Z" }, +] + [[package]] name = "packaging" version = "26.2" @@ -237,7 +390,7 @@ wheels = [ [[package]] name = "phaseprobe" -version = "0.1.0" +version = "0.2.0" source = { editable = "." } [package.optional-dependencies] @@ -251,17 +404,26 @@ dev = [ { name = "pytest-cov" }, { name = "ruff" }, ] +scipy = [ + { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "numpy", version = "2.4.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "scipy", version = "1.15.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "scipy", version = "1.17.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.11.*'" }, + { name = "scipy", version = "1.18.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12'" }, +] [package.metadata] requires-dist = [ { name = "build", marker = "extra == 'dev'", specifier = "==1.3.0" }, { name = "mypy", marker = "extra == 'dev'", specifier = "==1.17.1" }, + { name = "numpy", marker = "extra == 'scipy'", specifier = ">=1.23.5,<2.5" }, { name = "pillow", marker = "extra == 'demo'", specifier = "==11.3.0" }, { name = "pytest", marker = "extra == 'dev'", specifier = "==8.4.1" }, { name = "pytest-cov", marker = "extra == 'dev'", specifier = "==6.2.1" }, { name = "ruff", marker = "extra == 'dev'", specifier = "==0.12.7" }, + { name = "scipy", marker = "extra == 'scipy'", specifier = ">=1.15,<1.19" }, ] -provides-extras = ["dev", "demo"] +provides-extras = ["scipy", "dev", "demo"] [[package]] name = "pillow" @@ -449,6 +611,193 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/4c/9b/0b8aa09817b63e78d94b4977f18b1fcaead3165a5ee49251c5d5c245bb2d/ruff-0.12.7-py3-none-win_arm64.whl", hash = "sha256:dfce05101dbd11833a0776716d5d1578641b7fddb537fe7fa956ab85d1769b69", size = 11982083, upload-time = "2025-07-29T22:32:33.881Z" }, ] +[[package]] +name = "scipy" +version = "1.15.3" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version < '3.11'", +] +dependencies = [ + { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/0f/37/6964b830433e654ec7485e45a00fc9a27cf868d622838f6b6d9c5ec0d532/scipy-1.15.3.tar.gz", hash = "sha256:eae3cf522bc7df64b42cad3925c876e1b0b6c35c1337c93e12c0f366f55b0eaf", size = 59419214, upload-time = "2025-05-08T16:13:05.955Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/78/2f/4966032c5f8cc7e6a60f1b2e0ad686293b9474b65246b0c642e3ef3badd0/scipy-1.15.3-cp310-cp310-macosx_10_13_x86_64.whl", hash = "sha256:a345928c86d535060c9c2b25e71e87c39ab2f22fc96e9636bd74d1dbf9de448c", size = 38702770, upload-time = "2025-05-08T16:04:20.849Z" }, + { url = "https://files.pythonhosted.org/packages/a0/6e/0c3bf90fae0e910c274db43304ebe25a6b391327f3f10b5dcc638c090795/scipy-1.15.3-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:ad3432cb0f9ed87477a8d97f03b763fd1d57709f1bbde3c9369b1dff5503b253", size = 30094511, upload-time = "2025-05-08T16:04:27.103Z" }, + { url = "https://files.pythonhosted.org/packages/ea/b1/4deb37252311c1acff7f101f6453f0440794f51b6eacb1aad4459a134081/scipy-1.15.3-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:aef683a9ae6eb00728a542b796f52a5477b78252edede72b8327a886ab63293f", size = 22368151, upload-time = "2025-05-08T16:04:31.731Z" }, + { url = "https://files.pythonhosted.org/packages/38/7d/f457626e3cd3c29b3a49ca115a304cebb8cc6f31b04678f03b216899d3c6/scipy-1.15.3-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:1c832e1bd78dea67d5c16f786681b28dd695a8cb1fb90af2e27580d3d0967e92", size = 25121732, upload-time = "2025-05-08T16:04:36.596Z" }, + { url = "https://files.pythonhosted.org/packages/db/0a/92b1de4a7adc7a15dcf5bddc6e191f6f29ee663b30511ce20467ef9b82e4/scipy-1.15.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:263961f658ce2165bbd7b99fa5135195c3a12d9bef045345016b8b50c315cb82", size = 35547617, upload-time = "2025-05-08T16:04:43.546Z" }, + { url = "https://files.pythonhosted.org/packages/8e/6d/41991e503e51fc1134502694c5fa7a1671501a17ffa12716a4a9151af3df/scipy-1.15.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9e2abc762b0811e09a0d3258abee2d98e0c703eee49464ce0069590846f31d40", size = 37662964, upload-time = "2025-05-08T16:04:49.431Z" }, + { url = "https://files.pythonhosted.org/packages/25/e1/3df8f83cb15f3500478c889be8fb18700813b95e9e087328230b98d547ff/scipy-1.15.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:ed7284b21a7a0c8f1b6e5977ac05396c0d008b89e05498c8b7e8f4a1423bba0e", size = 37238749, upload-time = "2025-05-08T16:04:55.215Z" }, + { url = "https://files.pythonhosted.org/packages/93/3e/b3257cf446f2a3533ed7809757039016b74cd6f38271de91682aa844cfc5/scipy-1.15.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:5380741e53df2c566f4d234b100a484b420af85deb39ea35a1cc1be84ff53a5c", size = 40022383, upload-time = "2025-05-08T16:05:01.914Z" }, + { url = "https://files.pythonhosted.org/packages/d1/84/55bc4881973d3f79b479a5a2e2df61c8c9a04fcb986a213ac9c02cfb659b/scipy-1.15.3-cp310-cp310-win_amd64.whl", hash = "sha256:9d61e97b186a57350f6d6fd72640f9e99d5a4a2b8fbf4b9ee9a841eab327dc13", size = 41259201, upload-time = "2025-05-08T16:05:08.166Z" }, + { url = "https://files.pythonhosted.org/packages/96/ab/5cc9f80f28f6a7dff646c5756e559823614a42b1939d86dd0ed550470210/scipy-1.15.3-cp311-cp311-macosx_10_13_x86_64.whl", hash = "sha256:993439ce220d25e3696d1b23b233dd010169b62f6456488567e830654ee37a6b", size = 38714255, upload-time = "2025-05-08T16:05:14.596Z" }, + { url = "https://files.pythonhosted.org/packages/4a/4a/66ba30abe5ad1a3ad15bfb0b59d22174012e8056ff448cb1644deccbfed2/scipy-1.15.3-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:34716e281f181a02341ddeaad584205bd2fd3c242063bd3423d61ac259ca7eba", size = 30111035, upload-time = "2025-05-08T16:05:20.152Z" }, + { url = "https://files.pythonhosted.org/packages/4b/fa/a7e5b95afd80d24313307f03624acc65801846fa75599034f8ceb9e2cbf6/scipy-1.15.3-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:3b0334816afb8b91dab859281b1b9786934392aa3d527cd847e41bb6f45bee65", size = 22384499, upload-time = "2025-05-08T16:05:24.494Z" }, + { url = "https://files.pythonhosted.org/packages/17/99/f3aaddccf3588bb4aea70ba35328c204cadd89517a1612ecfda5b2dd9d7a/scipy-1.15.3-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:6db907c7368e3092e24919b5e31c76998b0ce1684d51a90943cb0ed1b4ffd6c1", size = 25152602, upload-time = "2025-05-08T16:05:29.313Z" }, + { url = "https://files.pythonhosted.org/packages/56/c5/1032cdb565f146109212153339f9cb8b993701e9fe56b1c97699eee12586/scipy-1.15.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:721d6b4ef5dc82ca8968c25b111e307083d7ca9091bc38163fb89243e85e3889", size = 35503415, upload-time = "2025-05-08T16:05:34.699Z" }, + { url = "https://files.pythonhosted.org/packages/bd/37/89f19c8c05505d0601ed5650156e50eb881ae3918786c8fd7262b4ee66d3/scipy-1.15.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:39cb9c62e471b1bb3750066ecc3a3f3052b37751c7c3dfd0fd7e48900ed52982", size = 37652622, upload-time = "2025-05-08T16:05:40.762Z" }, + { url = "https://files.pythonhosted.org/packages/7e/31/be59513aa9695519b18e1851bb9e487de66f2d31f835201f1b42f5d4d475/scipy-1.15.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:795c46999bae845966368a3c013e0e00947932d68e235702b5c3f6ea799aa8c9", size = 37244796, upload-time = "2025-05-08T16:05:48.119Z" }, + { url = "https://files.pythonhosted.org/packages/10/c0/4f5f3eeccc235632aab79b27a74a9130c6c35df358129f7ac8b29f562ac7/scipy-1.15.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:18aaacb735ab38b38db42cb01f6b92a2d0d4b6aabefeb07f02849e47f8fb3594", size = 40047684, upload-time = "2025-05-08T16:05:54.22Z" }, + { url = "https://files.pythonhosted.org/packages/ab/a7/0ddaf514ce8a8714f6ed243a2b391b41dbb65251affe21ee3077ec45ea9a/scipy-1.15.3-cp311-cp311-win_amd64.whl", hash = "sha256:ae48a786a28412d744c62fd7816a4118ef97e5be0bee968ce8f0a2fba7acf3bb", size = 41246504, upload-time = "2025-05-08T16:06:00.437Z" }, + { url = "https://files.pythonhosted.org/packages/37/4b/683aa044c4162e10ed7a7ea30527f2cbd92e6999c10a8ed8edb253836e9c/scipy-1.15.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:6ac6310fdbfb7aa6612408bd2f07295bcbd3fda00d2d702178434751fe48e019", size = 38766735, upload-time = "2025-05-08T16:06:06.471Z" }, + { url = "https://files.pythonhosted.org/packages/7b/7e/f30be3d03de07f25dc0ec926d1681fed5c732d759ac8f51079708c79e680/scipy-1.15.3-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:185cd3d6d05ca4b44a8f1595af87f9c372bb6acf9c808e99aa3e9aa03bd98cf6", size = 30173284, upload-time = "2025-05-08T16:06:11.686Z" }, + { url = "https://files.pythonhosted.org/packages/07/9c/0ddb0d0abdabe0d181c1793db51f02cd59e4901da6f9f7848e1f96759f0d/scipy-1.15.3-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:05dc6abcd105e1a29f95eada46d4a3f251743cfd7d3ae8ddb4088047f24ea477", size = 22446958, upload-time = "2025-05-08T16:06:15.97Z" }, + { url = "https://files.pythonhosted.org/packages/af/43/0bce905a965f36c58ff80d8bea33f1f9351b05fad4beaad4eae34699b7a1/scipy-1.15.3-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:06efcba926324df1696931a57a176c80848ccd67ce6ad020c810736bfd58eb1c", size = 25242454, upload-time = "2025-05-08T16:06:20.394Z" }, + { url = "https://files.pythonhosted.org/packages/56/30/a6f08f84ee5b7b28b4c597aca4cbe545535c39fe911845a96414700b64ba/scipy-1.15.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c05045d8b9bfd807ee1b9f38761993297b10b245f012b11b13b91ba8945f7e45", size = 35210199, upload-time = "2025-05-08T16:06:26.159Z" }, + { url = "https://files.pythonhosted.org/packages/0b/1f/03f52c282437a168ee2c7c14a1a0d0781a9a4a8962d84ac05c06b4c5b555/scipy-1.15.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:271e3713e645149ea5ea3e97b57fdab61ce61333f97cfae392c28ba786f9bb49", size = 37309455, upload-time = "2025-05-08T16:06:32.778Z" }, + { url = "https://files.pythonhosted.org/packages/89/b1/fbb53137f42c4bf630b1ffdfc2151a62d1d1b903b249f030d2b1c0280af8/scipy-1.15.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6cfd56fc1a8e53f6e89ba3a7a7251f7396412d655bca2aa5611c8ec9a6784a1e", size = 36885140, upload-time = "2025-05-08T16:06:39.249Z" }, + { url = "https://files.pythonhosted.org/packages/2e/2e/025e39e339f5090df1ff266d021892694dbb7e63568edcfe43f892fa381d/scipy-1.15.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:0ff17c0bb1cb32952c09217d8d1eed9b53d1463e5f1dd6052c7857f83127d539", size = 39710549, upload-time = "2025-05-08T16:06:45.729Z" }, + { url = "https://files.pythonhosted.org/packages/e6/eb/3bf6ea8ab7f1503dca3a10df2e4b9c3f6b3316df07f6c0ded94b281c7101/scipy-1.15.3-cp312-cp312-win_amd64.whl", hash = "sha256:52092bc0472cfd17df49ff17e70624345efece4e1a12b23783a1ac59a1b728ed", size = 40966184, upload-time = "2025-05-08T16:06:52.623Z" }, + { url = "https://files.pythonhosted.org/packages/73/18/ec27848c9baae6e0d6573eda6e01a602e5649ee72c27c3a8aad673ebecfd/scipy-1.15.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:2c620736bcc334782e24d173c0fdbb7590a0a436d2fdf39310a8902505008759", size = 38728256, upload-time = "2025-05-08T16:06:58.696Z" }, + { url = "https://files.pythonhosted.org/packages/74/cd/1aef2184948728b4b6e21267d53b3339762c285a46a274ebb7863c9e4742/scipy-1.15.3-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:7e11270a000969409d37ed399585ee530b9ef6aa99d50c019de4cb01e8e54e62", size = 30109540, upload-time = "2025-05-08T16:07:04.209Z" }, + { url = "https://files.pythonhosted.org/packages/5b/d8/59e452c0a255ec352bd0a833537a3bc1bfb679944c4938ab375b0a6b3a3e/scipy-1.15.3-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:8c9ed3ba2c8a2ce098163a9bdb26f891746d02136995df25227a20e71c396ebb", size = 22383115, upload-time = "2025-05-08T16:07:08.998Z" }, + { url = "https://files.pythonhosted.org/packages/08/f5/456f56bbbfccf696263b47095291040655e3cbaf05d063bdc7c7517f32ac/scipy-1.15.3-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:0bdd905264c0c9cfa74a4772cdb2070171790381a5c4d312c973382fc6eaf730", size = 25163884, upload-time = "2025-05-08T16:07:14.091Z" }, + { url = "https://files.pythonhosted.org/packages/a2/66/a9618b6a435a0f0c0b8a6d0a2efb32d4ec5a85f023c2b79d39512040355b/scipy-1.15.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:79167bba085c31f38603e11a267d862957cbb3ce018d8b38f79ac043bc92d825", size = 35174018, upload-time = "2025-05-08T16:07:19.427Z" }, + { url = "https://files.pythonhosted.org/packages/b5/09/c5b6734a50ad4882432b6bb7c02baf757f5b2f256041da5df242e2d7e6b6/scipy-1.15.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c9deabd6d547aee2c9a81dee6cc96c6d7e9a9b1953f74850c179f91fdc729cb7", size = 37269716, upload-time = "2025-05-08T16:07:25.712Z" }, + { url = "https://files.pythonhosted.org/packages/77/0a/eac00ff741f23bcabd352731ed9b8995a0a60ef57f5fd788d611d43d69a1/scipy-1.15.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:dde4fc32993071ac0c7dd2d82569e544f0bdaff66269cb475e0f369adad13f11", size = 36872342, upload-time = "2025-05-08T16:07:31.468Z" }, + { url = "https://files.pythonhosted.org/packages/fe/54/4379be86dd74b6ad81551689107360d9a3e18f24d20767a2d5b9253a3f0a/scipy-1.15.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:f77f853d584e72e874d87357ad70f44b437331507d1c311457bed8ed2b956126", size = 39670869, upload-time = "2025-05-08T16:07:38.002Z" }, + { url = "https://files.pythonhosted.org/packages/87/2e/892ad2862ba54f084ffe8cc4a22667eaf9c2bcec6d2bff1d15713c6c0703/scipy-1.15.3-cp313-cp313-win_amd64.whl", hash = "sha256:b90ab29d0c37ec9bf55424c064312930ca5f4bde15ee8619ee44e69319aab163", size = 40988851, upload-time = "2025-05-08T16:08:33.671Z" }, + { url = "https://files.pythonhosted.org/packages/1b/e9/7a879c137f7e55b30d75d90ce3eb468197646bc7b443ac036ae3fe109055/scipy-1.15.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:3ac07623267feb3ae308487c260ac684b32ea35fd81e12845039952f558047b8", size = 38863011, upload-time = "2025-05-08T16:07:44.039Z" }, + { url = "https://files.pythonhosted.org/packages/51/d1/226a806bbd69f62ce5ef5f3ffadc35286e9fbc802f606a07eb83bf2359de/scipy-1.15.3-cp313-cp313t-macosx_12_0_arm64.whl", hash = "sha256:6487aa99c2a3d509a5227d9a5e889ff05830a06b2ce08ec30df6d79db5fcd5c5", size = 30266407, upload-time = "2025-05-08T16:07:49.891Z" }, + { url = "https://files.pythonhosted.org/packages/e5/9b/f32d1d6093ab9eeabbd839b0f7619c62e46cc4b7b6dbf05b6e615bbd4400/scipy-1.15.3-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:50f9e62461c95d933d5c5ef4a1f2ebf9a2b4e83b0db374cb3f1de104d935922e", size = 22540030, upload-time = "2025-05-08T16:07:54.121Z" }, + { url = "https://files.pythonhosted.org/packages/e7/29/c278f699b095c1a884f29fda126340fcc201461ee8bfea5c8bdb1c7c958b/scipy-1.15.3-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:14ed70039d182f411ffc74789a16df3835e05dc469b898233a245cdfd7f162cb", size = 25218709, upload-time = "2025-05-08T16:07:58.506Z" }, + { url = "https://files.pythonhosted.org/packages/24/18/9e5374b617aba742a990581373cd6b68a2945d65cc588482749ef2e64467/scipy-1.15.3-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0a769105537aa07a69468a0eefcd121be52006db61cdd8cac8a0e68980bbb723", size = 34809045, upload-time = "2025-05-08T16:08:03.929Z" }, + { url = "https://files.pythonhosted.org/packages/e1/fe/9c4361e7ba2927074360856db6135ef4904d505e9b3afbbcb073c4008328/scipy-1.15.3-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9db984639887e3dffb3928d118145ffe40eff2fa40cb241a306ec57c219ebbbb", size = 36703062, upload-time = "2025-05-08T16:08:09.558Z" }, + { url = "https://files.pythonhosted.org/packages/b7/8e/038ccfe29d272b30086b25a4960f757f97122cb2ec42e62b460d02fe98e9/scipy-1.15.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:40e54d5c7e7ebf1aa596c374c49fa3135f04648a0caabcb66c52884b943f02b4", size = 36393132, upload-time = "2025-05-08T16:08:15.34Z" }, + { url = "https://files.pythonhosted.org/packages/10/7e/5c12285452970be5bdbe8352c619250b97ebf7917d7a9a9e96b8a8140f17/scipy-1.15.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:5e721fed53187e71d0ccf382b6bf977644c533e506c4d33c3fb24de89f5c3ed5", size = 38979503, upload-time = "2025-05-08T16:08:21.513Z" }, + { url = "https://files.pythonhosted.org/packages/81/06/0a5e5349474e1cbc5757975b21bd4fad0e72ebf138c5592f191646154e06/scipy-1.15.3-cp313-cp313t-win_amd64.whl", hash = "sha256:76ad1fb5f8752eabf0fa02e4cc0336b4e8f021e2d5f061ed37d6d264db35e3ca", size = 40308097, upload-time = "2025-05-08T16:08:27.627Z" }, +] + +[[package]] +name = "scipy" +version = "1.17.1" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version == '3.11.*'", +] +dependencies = [ + { name = "numpy", version = "2.4.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.11.*'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/7a/97/5a3609c4f8d58b039179648e62dd220f89864f56f7357f5d4f45c29eb2cc/scipy-1.17.1.tar.gz", hash = "sha256:95d8e012d8cb8816c226aef832200b1d45109ed4464303e997c5b13122b297c0", size = 30573822, upload-time = "2026-02-23T00:26:24.851Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/df/75/b4ce781849931fef6fd529afa6b63711d5a733065722d0c3e2724af9e40a/scipy-1.17.1-cp311-cp311-macosx_10_14_x86_64.whl", hash = "sha256:1f95b894f13729334fb990162e911c9e5dc1ab390c58aa6cbecb389c5b5e28ec", size = 31613675, upload-time = "2026-02-23T00:16:00.13Z" }, + { url = "https://files.pythonhosted.org/packages/f7/58/bccc2861b305abdd1b8663d6130c0b3d7cc22e8d86663edbc8401bfd40d4/scipy-1.17.1-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:e18f12c6b0bc5a592ed23d3f7b891f68fd7f8241d69b7883769eb5d5dfb52696", size = 28162057, upload-time = "2026-02-23T00:16:09.456Z" }, + { url = "https://files.pythonhosted.org/packages/6d/ee/18146b7757ed4976276b9c9819108adbc73c5aad636e5353e20746b73069/scipy-1.17.1-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:a3472cfbca0a54177d0faa68f697d8ba4c80bbdc19908c3465556d9f7efce9ee", size = 20334032, upload-time = "2026-02-23T00:16:17.358Z" }, + { url = "https://files.pythonhosted.org/packages/ec/e6/cef1cf3557f0c54954198554a10016b6a03b2ec9e22a4e1df734936bd99c/scipy-1.17.1-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:766e0dc5a616d026a3a1cffa379af959671729083882f50307e18175797b3dfd", size = 22709533, upload-time = "2026-02-23T00:16:25.791Z" }, + { url = "https://files.pythonhosted.org/packages/4d/60/8804678875fc59362b0fb759ab3ecce1f09c10a735680318ac30da8cd76b/scipy-1.17.1-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:744b2bf3640d907b79f3fd7874efe432d1cf171ee721243e350f55234b4cec4c", size = 33062057, upload-time = "2026-02-23T00:16:36.931Z" }, + { url = "https://files.pythonhosted.org/packages/09/7d/af933f0f6e0767995b4e2d705a0665e454d1c19402aa7e895de3951ebb04/scipy-1.17.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:43af8d1f3bea642559019edfe64e9b11192a8978efbd1539d7bc2aaa23d92de4", size = 35349300, upload-time = "2026-02-23T00:16:49.108Z" }, + { url = "https://files.pythonhosted.org/packages/b4/3d/7ccbbdcbb54c8fdc20d3b6930137c782a163fa626f0aef920349873421ba/scipy-1.17.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:cd96a1898c0a47be4520327e01f874acfd61fb48a9420f8aa9f6483412ffa444", size = 35127333, upload-time = "2026-02-23T00:17:01.293Z" }, + { url = "https://files.pythonhosted.org/packages/e8/19/f926cb11c42b15ba08e3a71e376d816ac08614f769b4f47e06c3580c836a/scipy-1.17.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:4eb6c25dd62ee8d5edf68a8e1c171dd71c292fdae95d8aeb3dd7d7de4c364082", size = 37741314, upload-time = "2026-02-23T00:17:12.576Z" }, + { url = "https://files.pythonhosted.org/packages/95/da/0d1df507cf574b3f224ccc3d45244c9a1d732c81dcb26b1e8a766ae271a8/scipy-1.17.1-cp311-cp311-win_amd64.whl", hash = "sha256:d30e57c72013c2a4fe441c2fcb8e77b14e152ad48b5464858e07e2ad9fbfceff", size = 36607512, upload-time = "2026-02-23T00:17:23.424Z" }, + { url = "https://files.pythonhosted.org/packages/68/7f/bdd79ceaad24b671543ffe0ef61ed8e659440eb683b66f033454dcee90eb/scipy-1.17.1-cp311-cp311-win_arm64.whl", hash = "sha256:9ecb4efb1cd6e8c4afea0daa91a87fbddbce1b99d2895d151596716c0b2e859d", size = 24599248, upload-time = "2026-02-23T00:17:34.561Z" }, + { url = "https://files.pythonhosted.org/packages/35/48/b992b488d6f299dbe3f11a20b24d3dda3d46f1a635ede1c46b5b17a7b163/scipy-1.17.1-cp312-cp312-macosx_10_14_x86_64.whl", hash = "sha256:35c3a56d2ef83efc372eaec584314bd0ef2e2f0d2adb21c55e6ad5b344c0dcb8", size = 31610954, upload-time = "2026-02-23T00:17:49.855Z" }, + { url = "https://files.pythonhosted.org/packages/b2/02/cf107b01494c19dc100f1d0b7ac3cc08666e96ba2d64db7626066cee895e/scipy-1.17.1-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:fcb310ddb270a06114bb64bbe53c94926b943f5b7f0842194d585c65eb4edd76", size = 28172662, upload-time = "2026-02-23T00:18:01.64Z" }, + { url = "https://files.pythonhosted.org/packages/cf/a9/599c28631bad314d219cf9ffd40e985b24d603fc8a2f4ccc5ae8419a535b/scipy-1.17.1-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:cc90d2e9c7e5c7f1a482c9875007c095c3194b1cfedca3c2f3291cdc2bc7c086", size = 20344366, upload-time = "2026-02-23T00:18:12.015Z" }, + { url = "https://files.pythonhosted.org/packages/35/f5/906eda513271c8deb5af284e5ef0206d17a96239af79f9fa0aebfe0e36b4/scipy-1.17.1-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:c80be5ede8f3f8eded4eff73cc99a25c388ce98e555b17d31da05287015ffa5b", size = 22704017, upload-time = "2026-02-23T00:18:21.502Z" }, + { url = "https://files.pythonhosted.org/packages/da/34/16f10e3042d2f1d6b66e0428308ab52224b6a23049cb2f5c1756f713815f/scipy-1.17.1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e19ebea31758fac5893a2ac360fedd00116cbb7628e650842a6691ba7ca28a21", size = 32927842, upload-time = "2026-02-23T00:18:35.367Z" }, + { url = "https://files.pythonhosted.org/packages/01/8e/1e35281b8ab6d5d72ebe9911edcdffa3f36b04ed9d51dec6dd140396e220/scipy-1.17.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:02ae3b274fde71c5e92ac4d54bc06c42d80e399fec704383dcd99b301df37458", size = 35235890, upload-time = "2026-02-23T00:18:49.188Z" }, + { url = "https://files.pythonhosted.org/packages/c5/5c/9d7f4c88bea6e0d5a4f1bc0506a53a00e9fcb198de372bfe4d3652cef482/scipy-1.17.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8a604bae87c6195d8b1045eddece0514d041604b14f2727bbc2b3020172045eb", size = 35003557, upload-time = "2026-02-23T00:18:54.74Z" }, + { url = "https://files.pythonhosted.org/packages/65/94/7698add8f276dbab7a9de9fb6b0e02fc13ee61d51c7c3f85ac28b65e1239/scipy-1.17.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:f590cd684941912d10becc07325a3eeb77886fe981415660d9265c4c418d0bea", size = 37625856, upload-time = "2026-02-23T00:19:00.307Z" }, + { url = "https://files.pythonhosted.org/packages/a2/84/dc08d77fbf3d87d3ee27f6a0c6dcce1de5829a64f2eae85a0ecc1f0daa73/scipy-1.17.1-cp312-cp312-win_amd64.whl", hash = "sha256:41b71f4a3a4cab9d366cd9065b288efc4d4f3c0b37a91a8e0947fb5bd7f31d87", size = 36549682, upload-time = "2026-02-23T00:19:07.67Z" }, + { url = "https://files.pythonhosted.org/packages/bc/98/fe9ae9ffb3b54b62559f52dedaebe204b408db8109a8c66fdd04869e6424/scipy-1.17.1-cp312-cp312-win_arm64.whl", hash = "sha256:f4115102802df98b2b0db3cce5cb9b92572633a1197c77b7553e5203f284a5b3", size = 24547340, upload-time = "2026-02-23T00:19:12.024Z" }, + { url = "https://files.pythonhosted.org/packages/76/27/07ee1b57b65e92645f219b37148a7e7928b82e2b5dbeccecb4dff7c64f0b/scipy-1.17.1-cp313-cp313-macosx_10_14_x86_64.whl", hash = "sha256:5e3c5c011904115f88a39308379c17f91546f77c1667cea98739fe0fccea804c", size = 31590199, upload-time = "2026-02-23T00:19:17.192Z" }, + { url = "https://files.pythonhosted.org/packages/ec/ae/db19f8ab842e9b724bf5dbb7db29302a91f1e55bc4d04b1025d6d605a2c5/scipy-1.17.1-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:6fac755ca3d2c3edcb22f479fceaa241704111414831ddd3bc6056e18516892f", size = 28154001, upload-time = "2026-02-23T00:19:22.241Z" }, + { url = "https://files.pythonhosted.org/packages/5b/58/3ce96251560107b381cbd6e8413c483bbb1228a6b919fa8652b0d4090e7f/scipy-1.17.1-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:7ff200bf9d24f2e4d5dc6ee8c3ac64d739d3a89e2326ba68aaf6c4a2b838fd7d", size = 20325719, upload-time = "2026-02-23T00:19:26.329Z" }, + { url = "https://files.pythonhosted.org/packages/b2/83/15087d945e0e4d48ce2377498abf5ad171ae013232ae31d06f336e64c999/scipy-1.17.1-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:4b400bdc6f79fa02a4d86640310dde87a21fba0c979efff5248908c6f15fad1b", size = 22683595, upload-time = "2026-02-23T00:19:30.304Z" }, + { url = "https://files.pythonhosted.org/packages/b4/e0/e58fbde4a1a594c8be8114eb4aac1a55bcd6587047efc18a61eb1f5c0d30/scipy-1.17.1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2b64ca7d4aee0102a97f3ba22124052b4bd2152522355073580bf4845e2550b6", size = 32896429, upload-time = "2026-02-23T00:19:35.536Z" }, + { url = "https://files.pythonhosted.org/packages/f5/5f/f17563f28ff03c7b6799c50d01d5d856a1d55f2676f537ca8d28c7f627cd/scipy-1.17.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:581b2264fc0aa555f3f435a5944da7504ea3a065d7029ad60e7c3d1ae09c5464", size = 35203952, upload-time = "2026-02-23T00:19:42.259Z" }, + { url = "https://files.pythonhosted.org/packages/8d/a5/9afd17de24f657fdfe4df9a3f1ea049b39aef7c06000c13db1530d81ccca/scipy-1.17.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:beeda3d4ae615106d7094f7e7cef6218392e4465cc95d25f900bebabfded0950", size = 34979063, upload-time = "2026-02-23T00:19:47.547Z" }, + { url = "https://files.pythonhosted.org/packages/8b/13/88b1d2384b424bf7c924f2038c1c409f8d88bb2a8d49d097861dd64a57b2/scipy-1.17.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6609bc224e9568f65064cfa72edc0f24ee6655b47575954ec6339534b2798369", size = 37598449, upload-time = "2026-02-23T00:19:53.238Z" }, + { url = "https://files.pythonhosted.org/packages/35/e5/d6d0e51fc888f692a35134336866341c08655d92614f492c6860dc45bb2c/scipy-1.17.1-cp313-cp313-win_amd64.whl", hash = "sha256:37425bc9175607b0268f493d79a292c39f9d001a357bebb6b88fdfaff13f6448", size = 36510943, upload-time = "2026-02-23T00:20:50.89Z" }, + { url = "https://files.pythonhosted.org/packages/2a/fd/3be73c564e2a01e690e19cc618811540ba5354c67c8680dce3281123fb79/scipy-1.17.1-cp313-cp313-win_arm64.whl", hash = "sha256:5cf36e801231b6a2059bf354720274b7558746f3b1a4efb43fcf557ccd484a87", size = 24545621, upload-time = "2026-02-23T00:20:55.871Z" }, + { url = "https://files.pythonhosted.org/packages/6f/6b/17787db8b8114933a66f9dcc479a8272e4b4da75fe03b0c282f7b0ade8cd/scipy-1.17.1-cp313-cp313t-macosx_10_14_x86_64.whl", hash = "sha256:d59c30000a16d8edc7e64152e30220bfbd724c9bbb08368c054e24c651314f0a", size = 31936708, upload-time = "2026-02-23T00:19:58.694Z" }, + { url = "https://files.pythonhosted.org/packages/38/2e/524405c2b6392765ab1e2b722a41d5da33dc5c7b7278184a8ad29b6cb206/scipy-1.17.1-cp313-cp313t-macosx_12_0_arm64.whl", hash = "sha256:010f4333c96c9bb1a4516269e33cb5917b08ef2166d5556ca2fd9f082a9e6ea0", size = 28570135, upload-time = "2026-02-23T00:20:03.934Z" }, + { url = "https://files.pythonhosted.org/packages/fd/c3/5bd7199f4ea8556c0c8e39f04ccb014ac37d1468e6cfa6a95c6b3562b76e/scipy-1.17.1-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:2ceb2d3e01c5f1d83c4189737a42d9cb2fc38a6eeed225e7515eef71ad301dce", size = 20741977, upload-time = "2026-02-23T00:20:07.935Z" }, + { url = "https://files.pythonhosted.org/packages/d9/b8/8ccd9b766ad14c78386599708eb745f6b44f08400a5fd0ade7cf89b6fc93/scipy-1.17.1-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:844e165636711ef41f80b4103ed234181646b98a53c8f05da12ca5ca289134f6", size = 23029601, upload-time = "2026-02-23T00:20:12.161Z" }, + { url = "https://files.pythonhosted.org/packages/6d/a0/3cb6f4d2fb3e17428ad2880333cac878909ad1a89f678527b5328b93c1d4/scipy-1.17.1-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:158dd96d2207e21c966063e1635b1063cd7787b627b6f07305315dd73d9c679e", size = 33019667, upload-time = "2026-02-23T00:20:17.208Z" }, + { url = "https://files.pythonhosted.org/packages/f3/c3/2d834a5ac7bf3a0c806ad1508efc02dda3c8c61472a56132d7894c312dea/scipy-1.17.1-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:74cbb80d93260fe2ffa334efa24cb8f2f0f622a9b9febf8b483c0b865bfb3475", size = 35264159, upload-time = "2026-02-23T00:20:23.087Z" }, + { url = "https://files.pythonhosted.org/packages/4d/77/d3ed4becfdbd217c52062fafe35a72388d1bd82c2d0ba5ca19d6fcc93e11/scipy-1.17.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:dbc12c9f3d185f5c737d801da555fb74b3dcfa1a50b66a1a93e09190f41fab50", size = 35102771, upload-time = "2026-02-23T00:20:28.636Z" }, + { url = "https://files.pythonhosted.org/packages/bd/12/d19da97efde68ca1ee5538bb261d5d2c062f0c055575128f11a2730e3ac1/scipy-1.17.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:94055a11dfebe37c656e70317e1996dc197e1a15bbcc351bcdd4610e128fe1ca", size = 37665910, upload-time = "2026-02-23T00:20:34.743Z" }, + { url = "https://files.pythonhosted.org/packages/06/1c/1172a88d507a4baaf72c5a09bb6c018fe2ae0ab622e5830b703a46cc9e44/scipy-1.17.1-cp313-cp313t-win_amd64.whl", hash = "sha256:e30bdeaa5deed6bc27b4cc490823cd0347d7dae09119b8803ae576ea0ce52e4c", size = 36562980, upload-time = "2026-02-23T00:20:40.575Z" }, + { url = "https://files.pythonhosted.org/packages/70/b0/eb757336e5a76dfa7911f63252e3b7d1de00935d7705cf772db5b45ec238/scipy-1.17.1-cp313-cp313t-win_arm64.whl", hash = "sha256:a720477885a9d2411f94a93d16f9d89bad0f28ca23c3f8daa521e2dcc3f44d49", size = 24856543, upload-time = "2026-02-23T00:20:45.313Z" }, + { url = "https://files.pythonhosted.org/packages/cf/83/333afb452af6f0fd70414dc04f898647ee1423979ce02efa75c3b0f2c28e/scipy-1.17.1-cp314-cp314-macosx_10_14_x86_64.whl", hash = "sha256:a48a72c77a310327f6a3a920092fa2b8fd03d7deaa60f093038f22d98e096717", size = 31584510, upload-time = "2026-02-23T00:21:01.015Z" }, + { url = "https://files.pythonhosted.org/packages/ed/a6/d05a85fd51daeb2e4ea71d102f15b34fedca8e931af02594193ae4fd25f7/scipy-1.17.1-cp314-cp314-macosx_12_0_arm64.whl", hash = "sha256:45abad819184f07240d8a696117a7aacd39787af9e0b719d00285549ed19a1e9", size = 28170131, upload-time = "2026-02-23T00:21:05.888Z" }, + { url = "https://files.pythonhosted.org/packages/db/7b/8624a203326675d7746a254083a187398090a179335b2e4a20e2ddc46e83/scipy-1.17.1-cp314-cp314-macosx_14_0_arm64.whl", hash = "sha256:3fd1fcdab3ea951b610dc4cef356d416d5802991e7e32b5254828d342f7b7e0b", size = 20342032, upload-time = "2026-02-23T00:21:09.904Z" }, + { url = "https://files.pythonhosted.org/packages/c9/35/2c342897c00775d688d8ff3987aced3426858fd89d5a0e26e020b660b301/scipy-1.17.1-cp314-cp314-macosx_14_0_x86_64.whl", hash = "sha256:7bdf2da170b67fdf10bca777614b1c7d96ae3ca5794fd9587dce41eb2966e866", size = 22678766, upload-time = "2026-02-23T00:21:14.313Z" }, + { url = "https://files.pythonhosted.org/packages/ef/f2/7cdb8eb308a1a6ae1e19f945913c82c23c0c442a462a46480ce487fdc0ac/scipy-1.17.1-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:adb2642e060a6549c343603a3851ba76ef0b74cc8c079a9a58121c7ec9fe2350", size = 32957007, upload-time = "2026-02-23T00:21:19.663Z" }, + { url = "https://files.pythonhosted.org/packages/0b/2e/7eea398450457ecb54e18e9d10110993fa65561c4f3add5e8eccd2b9cd41/scipy-1.17.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:eee2cfda04c00a857206a4330f0c5e3e56535494e30ca445eb19ec624ae75118", size = 35221333, upload-time = "2026-02-23T00:21:25.278Z" }, + { url = "https://files.pythonhosted.org/packages/d9/77/5b8509d03b77f093a0d52e606d3c4f79e8b06d1d38c441dacb1e26cacf46/scipy-1.17.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:d2650c1fb97e184d12d8ba010493ee7b322864f7d3d00d3f9bb97d9c21de4068", size = 35042066, upload-time = "2026-02-23T00:21:31.358Z" }, + { url = "https://files.pythonhosted.org/packages/f9/df/18f80fb99df40b4070328d5ae5c596f2f00fffb50167e31439e932f29e7d/scipy-1.17.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:08b900519463543aa604a06bec02461558a6e1cef8fdbb8098f77a48a83c8118", size = 37612763, upload-time = "2026-02-23T00:21:37.247Z" }, + { url = "https://files.pythonhosted.org/packages/4b/39/f0e8ea762a764a9dc52aa7dabcfad51a354819de1f0d4652b6a1122424d6/scipy-1.17.1-cp314-cp314-win_amd64.whl", hash = "sha256:3877ac408e14da24a6196de0ddcace62092bfc12a83823e92e49e40747e52c19", size = 37290984, upload-time = "2026-02-23T00:22:35.023Z" }, + { url = "https://files.pythonhosted.org/packages/7c/56/fe201e3b0f93d1a8bcf75d3379affd228a63d7e2d80ab45467a74b494947/scipy-1.17.1-cp314-cp314-win_arm64.whl", hash = "sha256:f8885db0bc2bffa59d5c1b72fad7a6a92d3e80e7257f967dd81abb553a90d293", size = 25192877, upload-time = "2026-02-23T00:22:39.798Z" }, + { url = "https://files.pythonhosted.org/packages/96/ad/f8c414e121f82e02d76f310f16db9899c4fcde36710329502a6b2a3c0392/scipy-1.17.1-cp314-cp314t-macosx_10_14_x86_64.whl", hash = "sha256:1cc682cea2ae55524432f3cdff9e9a3be743d52a7443d0cba9017c23c87ae2f6", size = 31949750, upload-time = "2026-02-23T00:21:42.289Z" }, + { url = "https://files.pythonhosted.org/packages/7c/b0/c741e8865d61b67c81e255f4f0a832846c064e426636cd7de84e74d209be/scipy-1.17.1-cp314-cp314t-macosx_12_0_arm64.whl", hash = "sha256:2040ad4d1795a0ae89bfc7e8429677f365d45aa9fd5e4587cf1ea737f927b4a1", size = 28585858, upload-time = "2026-02-23T00:21:47.706Z" }, + { url = "https://files.pythonhosted.org/packages/ed/1b/3985219c6177866628fa7c2595bfd23f193ceebbe472c98a08824b9466ff/scipy-1.17.1-cp314-cp314t-macosx_14_0_arm64.whl", hash = "sha256:131f5aaea57602008f9822e2115029b55d4b5f7c070287699fe45c661d051e39", size = 20757723, upload-time = "2026-02-23T00:21:52.039Z" }, + { url = "https://files.pythonhosted.org/packages/c0/19/2a04aa25050d656d6f7b9e7b685cc83d6957fb101665bfd9369ca6534563/scipy-1.17.1-cp314-cp314t-macosx_14_0_x86_64.whl", hash = "sha256:9cdc1a2fcfd5c52cfb3045feb399f7b3ce822abdde3a193a6b9a60b3cb5854ca", size = 23043098, upload-time = "2026-02-23T00:21:56.185Z" }, + { url = "https://files.pythonhosted.org/packages/86/f1/3383beb9b5d0dbddd030335bf8a8b32d4317185efe495374f134d8be6cce/scipy-1.17.1-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6e3dcd57ab780c741fde8dc68619de988b966db759a3c3152e8e9142c26295ad", size = 33030397, upload-time = "2026-02-23T00:22:01.404Z" }, + { url = "https://files.pythonhosted.org/packages/41/68/8f21e8a65a5a03f25a79165ec9d2b28c00e66dc80546cf5eb803aeeff35b/scipy-1.17.1-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a9956e4d4f4a301ebf6cde39850333a6b6110799d470dbbb1e25326ac447f52a", size = 35281163, upload-time = "2026-02-23T00:22:07.024Z" }, + { url = "https://files.pythonhosted.org/packages/84/8d/c8a5e19479554007a5632ed7529e665c315ae7492b4f946b0deb39870e39/scipy-1.17.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:a4328d245944d09fd639771de275701ccadf5f781ba0ff092ad141e017eccda4", size = 35116291, upload-time = "2026-02-23T00:22:12.585Z" }, + { url = "https://files.pythonhosted.org/packages/52/52/e57eceff0e342a1f50e274264ed47497b59e6a4e3118808ee58ddda7b74a/scipy-1.17.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:a77cbd07b940d326d39a1d1b37817e2ee4d79cb30e7338f3d0cddffae70fcaa2", size = 37682317, upload-time = "2026-02-23T00:22:18.513Z" }, + { url = "https://files.pythonhosted.org/packages/11/2f/b29eafe4a3fbc3d6de9662b36e028d5f039e72d345e05c250e121a230dd4/scipy-1.17.1-cp314-cp314t-win_amd64.whl", hash = "sha256:eb092099205ef62cd1782b006658db09e2fed75bffcae7cc0d44052d8aa0f484", size = 37345327, upload-time = "2026-02-23T00:22:24.442Z" }, + { url = "https://files.pythonhosted.org/packages/07/39/338d9219c4e87f3e708f18857ecd24d22a0c3094752393319553096b98af/scipy-1.17.1-cp314-cp314t-win_arm64.whl", hash = "sha256:200e1050faffacc162be6a486a984a0497866ec54149a01270adc8a59b7c7d21", size = 25489165, upload-time = "2026-02-23T00:22:29.563Z" }, +] + +[[package]] +name = "scipy" +version = "1.18.0" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.12'", +] +dependencies = [ + { name = "numpy", version = "2.4.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a7/25/c2700dfaf6442b4effaa91af24ebce5dc9d31bb4a69706313aae70d72cd0/scipy-1.18.0.tar.gz", hash = "sha256:67b2ad2ad54c72ca6d04975a9b2df8c3638c34ddd5b28738e94fc2b57929d378", size = 30774447, upload-time = "2026-06-19T15:01:43.456Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6a/19/ca10ead60b0acc80b2b833c2c4a4f2ff753d0f58b811f70d911c7e94a25c/scipy-1.18.0-cp312-cp312-macosx_10_15_x86_64.whl", hash = "sha256:7bd21faaf5a1a3b2eff922d02db5f191b99a6518db9078a8fb23169f6d22259a", size = 31056519, upload-time = "2026-06-19T14:59:45.203Z" }, + { url = "https://files.pythonhosted.org/packages/96/72/1e6442a00cd2924d361aa1b642ab6373ec35c6fabf311a760be9f76e0f13/scipy-1.18.0-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:265915e79107de9f946b855e50d7470d5893ec3f54b342e1aa6201cbdcd8bb6b", size = 28681889, upload-time = "2026-06-19T14:59:48.103Z" }, + { url = "https://files.pythonhosted.org/packages/9b/2d/11dd93d21e147a73ba22bd75c0b9208d3a2e0ec76d53170ce7d9029b1015/scipy-1.18.0-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:9ab7b758be6940954a713ee466e2043e9f6e2ed965c1fce5c91039f4be3d90a9", size = 20423580, upload-time = "2026-06-19T14:59:50.665Z" }, + { url = "https://files.pythonhosted.org/packages/9c/01/93552f75e0d2a7dd115a45e59209c51e8d514daff02fc887d2623be06fe1/scipy-1.18.0-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:97b6cddaaee0a779ef6b5ca83c9604b27cc16b2b8fc22c142652df8793319fb8", size = 23054441, upload-time = "2026-06-19T14:59:53.564Z" }, + { url = "https://files.pythonhosted.org/packages/3c/23/21f5e703643d66f21faa6b4c73195bfcad70c55efcb4f1ab327cd7c4101a/scipy-1.18.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:52a96e21517c7292375c0e27dd796a811f03fcea5fd4d108fdfea8145dcf17ab", size = 33968720, upload-time = "2026-06-19T14:59:56.415Z" }, + { url = "https://files.pythonhosted.org/packages/dd/aa/1b939f6c67ed68635bb538e6752d3dacc02f66535182e939a89581a44e9c/scipy-1.18.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1f55797419e16e7f30cf88ffb3113ce0467f00cfe3f70d5c281730b21769bfc2", size = 35287115, upload-time = "2026-06-19T14:59:59.411Z" }, + { url = "https://files.pythonhosted.org/packages/b6/ff/eec46be7e9234208f801062b53e1983085eddebd693f6c9bfb03b459830d/scipy-1.18.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:ad033410e2e0672ffdc1042110cef20e1c46f8fd0616cee1d44d8d58fad8fc11", size = 35577989, upload-time = "2026-06-19T15:00:02.235Z" }, + { url = "https://files.pythonhosted.org/packages/84/ca/210d4759c7210bb7d269437421959b39a33434e2776b60c5cb8a763bb30a/scipy-1.18.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:4a55985d54c769c872e64b7f4c8a81cc30ef700cc04296abbbf3705439c126de", size = 37421717, upload-time = "2026-06-19T15:00:05.102Z" }, + { url = "https://files.pythonhosted.org/packages/2b/54/9a9edb45345bd6744da5ddfb6628e5d5185920494c6a67ec45b6381004cb/scipy-1.18.0-cp312-cp312-win_amd64.whl", hash = "sha256:71ccc8faa2dd16ac310233203474a8b5cb67f10dedd54a3116d34943f4b19132", size = 36597428, upload-time = "2026-06-19T15:00:08.112Z" }, + { url = "https://files.pythonhosted.org/packages/99/0e/33f32a2a58987e26aec0f7df252cbbad1e90ae77bdbc76f40dd4ed0cf0ea/scipy-1.18.0-cp312-cp312-win_arm64.whl", hash = "sha256:d88363fd9d8fbd3511bd273f1a49efb2a540773ddf92a91d57498ce7dd7f3e76", size = 24351481, upload-time = "2026-06-19T15:00:11.103Z" }, + { url = "https://files.pythonhosted.org/packages/05/52/9c0136c2de7ae0779b7b366447766cec6d9f0702c56bb8ffeb04c8fd3af4/scipy-1.18.0-cp313-cp313-macosx_10_15_x86_64.whl", hash = "sha256:09143f676d157d9f546d663504ef9c1becb819824f1afc018814176411942446", size = 31036107, upload-time = "2026-06-19T15:00:14.03Z" }, + { url = "https://files.pythonhosted.org/packages/02/73/0291a64843270f4efb86cdcf2ee0f2048631b65ec6b405398b2b4dbf11bf/scipy-1.18.0-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:5efe260f69417b97ddae455bfb5a95e8359f7f66ad7fa9522a60feb66f169520", size = 28663303, upload-time = "2026-06-19T15:00:16.819Z" }, + { url = "https://files.pythonhosted.org/packages/d3/0f/10ffa0b697a572f4e0d48b92a88895d366422f019f723e7e14a84c050dac/scipy-1.18.0-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:68363b7eaacd8b5dd426df56d782cc156468ac79a127a1b87ca597d6e2e82197", size = 20404960, upload-time = "2026-06-19T15:00:19.635Z" }, + { url = "https://files.pythonhosted.org/packages/7e/d2/e896cea21ba8edd6c81d4c55b1ffcc717e79698dcbebf9641b4cfb4c6622/scipy-1.18.0-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:c5557d8be5da8e41353fcd4d21491fdbab83b062fc579e94dc09a7c8ab4f669b", size = 23034074, upload-time = "2026-06-19T15:00:22.107Z" }, + { url = "https://files.pythonhosted.org/packages/ea/b2/e83ea34279a52c03374477c74006256ec78df65fc877baa4617d6de1d202/scipy-1.18.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0d13bca67c096d89fb95ced0d8921807300fce0275643aef9533cc63a0773468", size = 33942038, upload-time = "2026-06-19T15:00:24.964Z" }, + { url = "https://files.pythonhosted.org/packages/f6/af/e8fe5fb136f51e2b01678b92cb4106d10d8cd68ec147ead2e7cb0ac75398/scipy-1.18.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a46f9273dbd0eb1cefba61c9b8648b4dfe3cbc14a080176f9a73e44b8336dc7f", size = 35266390, upload-time = "2026-06-19T15:00:28.059Z" }, + { url = "https://files.pythonhosted.org/packages/3a/49/2c5cbb907b56695fc67517811d1db234dfd83381a84814ec220aded2794d/scipy-1.18.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:5aba46108853ddfc77906b6557aac839d2b52e900c1d72a1180adaaab58d265f", size = 35551324, upload-time = "2026-06-19T15:00:31.014Z" }, + { url = "https://files.pythonhosted.org/packages/bb/73/eda39f7a2d306ff0ffc574afd13c0bbb6d10a603d9a413998ee269487a80/scipy-1.18.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:b6f758e35f12757b5d95c00bc6de2438e229c2664b7a92e96f205959d9f2dfa4", size = 37404785, upload-time = "2026-06-19T15:00:34.072Z" }, + { url = "https://files.pythonhosted.org/packages/b7/d2/ae881ee28d014f38e0ccbfd974a06a919ba9af34f1f74bf42b5301891d63/scipy-1.18.0-cp313-cp313-win_amd64.whl", hash = "sha256:1afac4a847207c7ff8efd321734a50b06d0280b3b2a2c0fc2f413101747ad7c7", size = 36554943, upload-time = "2026-06-19T15:00:36.903Z" }, + { url = "https://files.pythonhosted.org/packages/70/3a/21154e2d54eb3639c6bf4dbae2e531c68356bfe95990daa30df33b30d556/scipy-1.18.0-cp313-cp313-win_arm64.whl", hash = "sha256:c5dbddf60e58c2312316d097271a8e73d40eaf2eabfa4d95ed7d3695bbf2ce7b", size = 24350911, upload-time = "2026-06-19T15:00:40.062Z" }, + { url = "https://files.pythonhosted.org/packages/78/b5/915a19b3de2f7430062b509653563db1633ddbb6f021b06731521115d4e2/scipy-1.18.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:4c256ee70c0d1a8a2ace807e199ccd4e3f57037433842abb3fb36bc17eaa9578", size = 31036253, upload-time = "2026-06-19T15:00:43.216Z" }, + { url = "https://files.pythonhosted.org/packages/d7/88/b72def7262e150d16be13fca37a96481138d624e700340bc3362a7588929/scipy-1.18.0-cp314-cp314-macosx_12_0_arm64.whl", hash = "sha256:2ef3abc54a4ffc53765374b0d5728532dfdd2585ed23f6b11c206a1f0b1b9af8", size = 28673758, upload-time = "2026-06-19T15:00:46.663Z" }, + { url = "https://files.pythonhosted.org/packages/91/02/2e636a61a525632c373cf6a9c24442a3ffb79e364d38e98b32042964ac32/scipy-1.18.0-cp314-cp314-macosx_14_0_arm64.whl", hash = "sha256:f2a6af57bd9e4a75d70e4117e78a1bbee84f79ae3fbb6d0111005d6ebcc4cb8d", size = 20415514, upload-time = "2026-06-19T15:00:49.399Z" }, + { url = "https://files.pythonhosted.org/packages/c9/b6/2135974442f6aba159d9d39d774a1c8cb19947016725d69fecc685df45bf/scipy-1.18.0-cp314-cp314-macosx_14_0_x86_64.whl", hash = "sha256:3f1ac564d3bf6c03d861d2cd87a1bea0da2887136f7fb1bf519c05a8971452d6", size = 23034398, upload-time = "2026-06-19T15:00:51.941Z" }, + { url = "https://files.pythonhosted.org/packages/f6/e6/ba89ec5abf6ee9257c0d1ec985573f3ae32742c24bc03e016388a40b1b15/scipy-1.18.0-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:40395a5fcd1abee49a5c7aaa98c29db393eedc835138560a588c47ec16156690", size = 33998032, upload-time = "2026-06-19T15:00:54.838Z" }, + { url = "https://files.pythonhosted.org/packages/7f/c4/bc41eb19b0fd0db868f4132920879019318d80cc522ad8f2bca4611af808/scipy-1.18.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8ca01e8ae69f1b18e9a58d91afead31be3cef0dd905a10249dac559ee15460a0", size = 35283333, upload-time = "2026-06-19T15:00:58.152Z" }, + { url = "https://files.pythonhosted.org/packages/53/a4/cbdeef6eb3830a8462a9d4ada814de5fc984345cc9ecf17cbec51a036f1e/scipy-1.18.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:7a7f3b01647384dbc3a711e8c6778e0aabbe93959249fef5c7393396bcac0867", size = 35610216, upload-time = "2026-06-19T15:01:01.155Z" }, + { url = "https://files.pythonhosted.org/packages/80/4d/b2b82502b65f661d1b789c1665dcdf315d5f12194e06fc0b37946294ebae/scipy-1.18.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:6aa94e78ec192a30063a5e72e561c28af769dc311190b24fe91774eff1969709", size = 37418960, upload-time = "2026-06-19T15:01:04.155Z" }, + { url = "https://files.pythonhosted.org/packages/93/3e/902d836831474b0ab5a37d16404f7bc5fafd9efba632890e271ba952635f/scipy-1.18.0-cp314-cp314-win_amd64.whl", hash = "sha256:2d8bbdc6c817f5b4006a54d799d4f5bab6f910193cbb9a1ff310833d4d270f61", size = 37288845, upload-time = "2026-06-19T15:01:07.822Z" }, + { url = "https://files.pythonhosted.org/packages/b6/43/8d73b337a3bdb14daa0314f0434210747c02d79d729ce1777574a817dcf6/scipy-1.18.0-cp314-cp314-win_arm64.whl", hash = "sha256:18e9575f1569b2c54174e6159d32942e03731177f63dce7975f0a0c88d102f5b", size = 24988971, upload-time = "2026-06-19T15:01:11.076Z" }, + { url = "https://files.pythonhosted.org/packages/b4/b4/f11918b0508a2787031a0499a03fbe3546f3bb5ca05d01038c45b278c09a/scipy-1.18.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:f351e0dd702687d12a402b867a1b4146a256923e1c38317cbc472f6372b94707", size = 31399325, upload-time = "2026-06-19T15:01:13.723Z" }, + { url = "https://files.pythonhosted.org/packages/7b/d1/1f287b57c0ff0ee5185dff3946d92c8017d39b0e431f0ae79a3ff1859512/scipy-1.18.0-cp314-cp314t-macosx_12_0_arm64.whl", hash = "sha256:7c7a51b33ce387193c97f228320cf8e87361daa1bba750638677729598b3e677", size = 29092110, upload-time = "2026-06-19T15:01:16.908Z" }, + { url = "https://files.pythonhosted.org/packages/ff/1a/7b74eb6c392fdcb27d414c0e7558a6d0231eb3b6d73571f479bb81ea8794/scipy-1.18.0-cp314-cp314t-macosx_14_0_arm64.whl", hash = "sha256:84031d7b052a54fae2f8632e0ec802073d385476eb9a63079bce6e23ef9283d4", size = 20833811, upload-time = "2026-06-19T15:01:20.488Z" }, + { url = "https://files.pythonhosted.org/packages/7c/ad/f3941716320a7b9cb4d68734a903b45fe16eff5fb7da7e16f2e619304979/scipy-1.18.0-cp314-cp314t-macosx_14_0_x86_64.whl", hash = "sha256:56abf29a7c067dde59be8b9a22d606a4ea1b2f2a4b756d9d903c62818f5dacce", size = 23396644, upload-time = "2026-06-19T15:01:23.364Z" }, + { url = "https://files.pythonhosted.org/packages/22/22/1446b62ffe07f9719b7d9b1b6a4e05a772833ae8f441fe4c22c34c9b250f/scipy-1.18.0-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1ad44305cfa24b1ba5803cbbebf033590ccbac1aa5d612d727b785325ab408b0", size = 34079318, upload-time = "2026-06-19T15:01:26.002Z" }, + { url = "https://files.pythonhosted.org/packages/56/3b/b87da667098bb470fa30c7011b0ba351ee976dd395c78798c66e941665a3/scipy-1.18.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:945c1761b93f38d7f99ae81ae80c63e621471608c7eeead563f6df025585cd58", size = 35324320, upload-time = "2026-06-19T15:01:28.881Z" }, + { url = "https://files.pythonhosted.org/packages/f8/a1/c7932f91909759b0267f75fdea34e91309f96b895757534b76a90b6b4344/scipy-1.18.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:1a4441f15d620578772a49e5ab48c0ee1f7a0220e387110283062729136b2553", size = 35699541, upload-time = "2026-06-19T15:01:31.968Z" }, + { url = "https://files.pythonhosted.org/packages/f7/86/5185061a1fcc41d18c5dc2463969b3a3964b31d9ac67b2fb05d4c7ff7670/scipy-1.18.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:9aac6192fac56bf2ca534389d24623f07b39ff83317d58287285e7fbd622ff76", size = 37472480, upload-time = "2026-06-19T15:01:35.136Z" }, + { url = "https://files.pythonhosted.org/packages/31/8e/f04c68e39919a010d34f2ee1367fd705b0a25a02f609d755f0bfbc0a15fc/scipy-1.18.0-cp314-cp314t-win_amd64.whl", hash = "sha256:e40baea28ae7f5475c779741e2d90b1247c78531207b49c7030e698ff81cee3f", size = 37365390, upload-time = "2026-06-19T15:01:38.091Z" }, + { url = "https://files.pythonhosted.org/packages/d5/19/969dc072906c84dd0a3b05dcf57ea750936087d7873549e408b35cfc3f97/scipy-1.18.0-cp314-cp314t-win_arm64.whl", hash = "sha256:368e0a705903c466aa5f08eefb39e6b1b6b2d659e7352a31fd9e2438365be0f8", size = 25279661, upload-time = "2026-06-19T15:01:40.817Z" }, +] + [[package]] name = "tomli" version = "2.4.1"